Change translation symbol N to NS

This commit is contained in:
Wuzzy 2023-02-20 16:03:34 +01:00
parent 0662ab274c
commit d865bb2d2e
6 changed files with 149 additions and 149 deletions

View File

@ -1,5 +1,5 @@
local S = minetest.get_translator("hades_core")
local N = function(s) return s end
local NS = function(s) return s end
local WATER_VISC = 1
local LAVA_VISC = 7
@ -112,7 +112,7 @@ minetest.register_node("hades_core:lava_flowing", {
post_effect_color = {a=192, r=255, g=64, b=0},
groups = {lava=3, liquid=2, igniter=1, not_in_creative_inventory=1},
sounds = hades_sounds.node_sound_lava_defaults(),
_hades_node_death_message = { N("Overheating in lava") },
_hades_node_death_message = { NS("Overheating in lava") },
})
@ -149,6 +149,6 @@ minetest.register_node("hades_core:lava_source", {
post_effect_color = {a=192, r=255, g=64, b=0},
groups = {lava=3, liquid=2, igniter=1},
sounds = hades_sounds.node_sound_lava_defaults(),
_hades_node_death_message = { N("Overheating in lava") },
_hades_node_death_message = { NS("Overheating in lava") },
})

View File

@ -1,58 +1,58 @@
local S = minetest.get_translator("hades_death_messages")
local N = function(s) return s end
local NS = function(s) return s end
hades_death_messages = {}
-- Death messages
local msgs = {
["drown"] = {
N("Drowning"),
NS("Drowning"),
},
["drown_water"] = {
N("Drowning in water"),
NS("Drowning in water"),
},
["drown_lava"] = {
N("Drowning in lava"),
NS("Drowning in lava"),
},
["node"] = {
N("Damage from a block"),
NS("Damage from a block"),
},
["projectile_mese_arrow"] = {
N("Shot by a mese monster crystal shard"),
NS("Shot by a mese monster crystal shard"),
},
["projectile_fireball"] = {
N("Shot by a fireball"),
NS("Shot by a fireball"),
},
["murder"] = {
N("Melee attack from an unknown source"),
NS("Melee attack from an unknown source"),
},
["murder_any"] = {
N("Melee attack from an unknown source"),
NS("Melee attack from an unknown source"),
},
["mob_kill"] = {
N("Hit from a hostile creature"),
NS("Hit from a hostile creature"),
},
["fall"] = {
N("Falling"),
NS("Falling"),
},
["other"] = {
N("Unknown"),
NS("Unknown"),
}
}
local mobkills = {
["mobs_hades:mutant"] = N("Punch from a mutant"),
["mobs_hades:cave_master"] = N("Hit from a cave master"),
["mobs_hades:cave_elder"] = N("Hit from a cave elder"),
["mobs_hades:mese_monster"] = N("Headbutt from a mese monster"),
["mobs_hades:deep_mese_monster"] = N("Headbutt from a deep mese monster"),
["mobs_hades:oerkki"] = N("Hit from an oerkki"),
["mobs_hades:stone_monster"] = N("Hit from a stone monster"),
["mobs_hades:deep_stone_monster"] = N("Hit from a deep stone monster"),
["mobs_hades:spider_gold"] = N("Bite from a gold spider"),
["mobs_hades:spider_sapphire"] = N("Bite from a sapphire spider"),
["mobs_hades:spider_ruby"] = N("Bite from a ruby spider"),
["mobs_hades:spider_mese"] = N("Bite from a mese spider"),
["mobs_hades:mutant"] = NS("Punch from a mutant"),
["mobs_hades:cave_master"] = NS("Hit from a cave master"),
["mobs_hades:cave_elder"] = NS("Hit from a cave elder"),
["mobs_hades:mese_monster"] = NS("Headbutt from a mese monster"),
["mobs_hades:deep_mese_monster"] = NS("Headbutt from a deep mese monster"),
["mobs_hades:oerkki"] = NS("Hit from an oerkki"),
["mobs_hades:stone_monster"] = NS("Hit from a stone monster"),
["mobs_hades:deep_stone_monster"] = NS("Hit from a deep stone monster"),
["mobs_hades:spider_gold"] = NS("Bite from a gold spider"),
["mobs_hades:spider_sapphire"] = NS("Bite from a sapphire spider"),
["mobs_hades:spider_ruby"] = NS("Bite from a ruby spider"),
["mobs_hades:spider_mese"] = NS("Bite from a mese spider"),
}
-- Select death message

View File

@ -1,10 +1,10 @@
local S = minetest.get_translator("hades_farming")
local N = function(s) return s end
local NS = function(s) return s end
-- WHEAT
hades_farming.register_plant("hades_farming:wheat", {
description_seed = S("Wheat Seed"),
description_plant = N("Wheat Plant (@1)"),
description_plant = NS("Wheat Plant (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
inventory_image = "hades_farming_wheat_seed.png",
steps = 3,
@ -63,7 +63,7 @@ minetest.register_craft({
-- COTTON
hades_farming.register_plant("hades_farming:cotton", {
description_seed = S("Cotton Seed"),
description_plant = N("Cotton Plant (@1)"),
description_plant = NS("Cotton Plant (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
description_harvest = S("String"),
inventory_image = "hades_farming_cotton_seed.png",
@ -88,7 +88,7 @@ minetest.register_alias("hades_farming:string", "hades_farming:cotton")
-- TOMATO
hades_farming.register_plant("hades_farming:tomato", {
description_seed = S("Tomato Seed"),
description_plant = N("Tomato Plant (@1)"),
description_plant = NS("Tomato Plant (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
inventory_image = "hades_farming_tomato_seed.png",
steps = 3,
@ -109,7 +109,7 @@ minetest.register_craft({
-- POTATO
hades_farming.register_plant("hades_farming:potato", {
description_seed = S("Sprouting Potato"),
description_plant = N("Potato Plant (@1)"),
description_plant = NS("Potato Plant (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
inventory_image = "hades_farming_potato_seed.png",
steps = 3,
@ -130,7 +130,7 @@ minetest.register_craft({
-- STRAWBERRY
hades_farming.register_plant("hades_farming:strawberry", {
description_seed = S("Strawberry Seed"),
description_plant = N("Strawberry Bush (@1)"),
description_plant = NS("Strawberry Bush (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
inventory_image = "hades_farming_strawberry_seed.png",
steps = 3,
@ -152,7 +152,7 @@ minetest.register_craft({
-- SPICE
hades_farming.register_plant("hades_farming:spice", {
description_seed = S("Spice Seed"),
description_plant = N("Spice Shrub (@1)"),
description_plant = NS("Spice Shrub (@1)"),
_tt_help = S("Grows on Wet Soil in light"),
inventory_image = "hades_farming_spice_seed.png",
steps = 3,

View File

@ -1,11 +1,11 @@
local S = minetest.get_translator("hades_info")
local F = minetest.formspec_escape
local N = function(s) return s end
local NS = function(s) return s end
local region_classes = {
["6"] = { N("The region class 6 designates regions with a highly erratic shape. Its main feature are steep stone spires, separated by large lava lakes and oceans. Its chaotic terrain can be pretty challenging and dangerous to traverse, so watch your step! On the upside, the landmass is almost exclusively covered by volcanic ash, crucial for development. The patient explorer will occassionally find small streches of flat land, on which it is easier to build."), },
["6F"] = { N("The region class 6F designates very flat regions. They might have occassional lava lakes and that's it.") },
["Z"] = { N("The region class Z is designated to unknown and unclassified regions.") },
["6"] = { NS("The region class 6 designates regions with a highly erratic shape. Its main feature are steep stone spires, separated by large lava lakes and oceans. Its chaotic terrain can be pretty challenging and dangerous to traverse, so watch your step! On the upside, the landmass is almost exclusively covered by volcanic ash, crucial for development. The patient explorer will occassionally find small streches of flat land, on which it is easier to build."), },
["6F"] = { NS("The region class 6F designates very flat regions. They might have occassional lava lakes and that's it.") },
["Z"] = { NS("The region class Z is designated to unknown and unclassified regions.") },
}
-- line types
@ -95,70 +95,70 @@ local get_info_planet = function(player_name)
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true)
local mobs
if mobs_spawn then
mobs = { T_N, N("Signs of intelligent mutated organisms on surface (increased activity at night)") }
mobs = { T_N, NS("Signs of intelligent mutated organisms on surface (increased activity at night)") }
else
mobs = { T_N, N("No signs of intelligent life forms") }
mobs = { T_N, NS("No signs of intelligent life forms") }
end
local mg_flags = minetest.settings:get_flags("mg_flags")
local ores, rocks, ores_i, rocks_i
if mg_flags.ores then
ores = { T_D, N("Ores detected"), N("Coal, Iron, Copper, Tin, Emerald, Unknown") }
ores = { T_D, NS("Ores detected"), NS("Coal, Iron, Copper, Tin, Emerald, Unknown") }
ores_i = { T_I, {"hades_core:stone_with_coal", "hades_core:stone_with_iron", "hades_core:stone_with_tin", "hades_core:stone_with_emerald", "hades_info:unknown" } }
rocks = { T_D, N("Rocks detected"), N("Stone, Tuff, Chondrite, Unknown") }
rocks = { T_D, NS("Rocks detected"), NS("Stone, Tuff, Chondrite, Unknown") }
rocks_i = { T_I, {"hades_core:stone", "hades_core:tuff", "hades_core:chondrite", "hades_info:unknown" }}
else
ores = { T_D, N("Ores detected"), N("None") }
ores = { T_D, NS("Ores detected"), NS("None") }
ores_i = { T_X }
rocks = { T_D, N("Rocks detected"), N("Stone") }
rocks = { T_D, NS("Rocks detected"), NS("Stone") }
rocks_i = { T_I, {"hades_core:stone"}}
end
local caves
if mg_flags.caves then
caves = { T_D, N("Structure"), N("Deep, complex cave systems") }
caves = { T_D, NS("Structure"), NS("Deep, complex cave systems") }
else
caves = { T_D, N("Structure"), N("Very high underground solidity, no cavities detected" ) }
caves = { T_D, NS("Structure"), NS("Very high underground solidity, no cavities detected" ) }
end
local day_length, year_length
local time_speed = tonumber(minetest.settings:get("time_speed")) or 72
if time_speed == 0 then
day_length = { T_D, N("Day length (in minutes)"), N("N/A (time anomaly)") }
year_length = { T_D, N("Year length (in Hades days)"), N("N/A (time anomaly)") }
day_length = { T_D, NS("Day length (in minutes)"), NS("N/A (time anomaly)") }
year_length = { T_D, NS("Year length (in Hades days)"), NS("N/A (time anomaly)") }
else
day_length = { T_D, N("Day length (in minutes)"), 1440 / time_speed }
year_length = { T_D, N("Year length (in Hades days)"), hades_seasons.YEAR_LENGTH }
day_length = { T_D, NS("Day length (in minutes)"), 1440 / time_speed }
year_length = { T_D, NS("Year length (in Hades days)"), hades_seasons.YEAR_LENGTH }
end
local lines = {
{ T_C0, N("Planetary Data") },
{ T_D, N("Name"), N("Hades") },
{ T_D, N("Star"), N("Apollo") },
{ T_D, N("Moons"), "0" },
{ T_D, N("Gravity (in m/s²)"), tonumber(minetest.settings:get("movement_gravity")) or 10 },
{ T_C1, N("Planet Motion") },
{ T_C0, NS("Planetary Data") },
{ T_D, NS("Name"), NS("Hades") },
{ T_D, NS("Star"), NS("Apollo") },
{ T_D, NS("Moons"), "0" },
{ T_D, NS("Gravity (in m/s²)"), tonumber(minetest.settings:get("movement_gravity")) or 10 },
{ T_C1, NS("Planet Motion") },
year_length,
day_length,
{ T_D, N("Seasons"), N("3 (Spring, Summer, Fall)") },
{ T_D, N("Season length (in Hades days)"), tostring(hades_seasons.SEASON_LENGTH) },
{ T_C1, N("Atmosphere") },
{ T_N, N("Sulphuric composition") },
{ T_D, N("Weather"), N("Permanently overcast by sulphuric clouds") },
{ T_C0, N("Planetary Scan Reports") },
{ T_P, N("Note: This scan report was created before the first terraforming missions were started. It might be outdated.") },
{ T_D, NS("Seasons"), NS("3 (Spring, Summer, Fall)") },
{ T_D, NS("Season length (in Hades days)"), tostring(hades_seasons.SEASON_LENGTH) },
{ T_C1, NS("Atmosphere") },
{ T_N, NS("Sulphuric composition") },
{ T_D, NS("Weather"), NS("Permanently overcast by sulphuric clouds") },
{ T_C0, NS("Planetary Scan Reports") },
{ T_P, NS("Note: This scan report was created before the first terraforming missions were started. It might be outdated.") },
{ T_C1, N("Regional Topography Scan") },
{ T_D, N("Region class"), region_class },
{ T_D, N("Dominant blocks"), N("Volcanic Ash, Lava, Stone, Tuff") },
{ T_C1, NS("Regional Topography Scan") },
{ T_D, NS("Region class"), region_class },
{ T_D, NS("Dominant blocks"), NS("Volcanic Ash, Lava, Stone, Tuff") },
{ T_I, {"hades_core:ash", "hades_core:lava_source", "hades_core:stone", "hades_core:tuff"} },
{ T_D, N("Water prelavence"), N("Rare lakes and springs") },
{ T_D, NS("Water prelavence"), NS("Rare lakes and springs") },
{ T_I, {"hades_core:water_source"} },
{ T_C1, N("Underground Scan") },
{ T_C1, NS("Underground Scan") },
caves,
rocks,
rocks_i,
ores,
ores_i,
{ T_C1, N("Life Scan") },
{ T_C1, NS("Life Scan") },
mobs,
}
local hypert = get_hypertext(lines)
@ -181,14 +181,14 @@ get_info_region = function(player_name)
end
local msg
if class == "6" then
msg = N("Your region has been assigned the region class 6.")
msg = NS("Your region has been assigned the region class 6.")
elseif class == "6F" then
msg = N("Your region has been assigned the region class 6F.")
msg = NS("Your region has been assigned the region class 6F.")
elseif class == "Z" then
msg = N("Your region has been assigned the region class Z.")
msg = NS("Your region has been assigned the region class Z.")
end
lines = {
{ T_C0, N("Region class") },
{ T_C0, NS("Region class") },
{ T_P, msg },
{ T_P, region_classes[class][1] },
}
@ -199,107 +199,107 @@ end
local static_lines = {}
static_lines.mission = {
{ T_C0, N("Mission Briefing") },
{ T_P, N("Thank you for volunteering for the Galactic Builders Terraforming Collective! It is our mission to create more habitable worlds to build a thriving society, one block at a time! You are at the forefront of intergalactic terraforming and about to embark on an exciting adventure.") },
{ T_P, N("You have arrived at the fiery world of Hades, a planet with sulphuric sky and high volcanic activity. It might not seem like the best place to terraform, but previous exploration missions discovered small amounts of water. With your help, evolution can be sped up.") },
{ T_P, N("But be warned: The landscape is tricky and dangerous. Watch your step and don't fall into the lava!") },
{ T_P, N("Your primary mission is turn this fiery and dangerous landscape into a nice habitable zone. How exactly you do this is completely up to you. Good luck!") },
{ T_C0, NS("Mission Briefing") },
{ T_P, NS("Thank you for volunteering for the Galactic Builders Terraforming Collective! It is our mission to create more habitable worlds to build a thriving society, one block at a time! You are at the forefront of intergalactic terraforming and about to embark on an exciting adventure.") },
{ T_P, NS("You have arrived at the fiery world of Hades, a planet with sulphuric sky and high volcanic activity. It might not seem like the best place to terraform, but previous exploration missions discovered small amounts of water. With your help, evolution can be sped up.") },
{ T_P, NS("But be warned: The landscape is tricky and dangerous. Watch your step and don't fall into the lava!") },
{ T_P, NS("Your primary mission is turn this fiery and dangerous landscape into a nice habitable zone. How exactly you do this is completely up to you. Good luck!") },
}
static_lines.planet_description = {
{ T_C0, N("Planet Hades") },
{ T_P, N("Hades is a very large volcanic planet that revolves around Apollo, its main star. It's surrounded by a thick sulphuric atmosphere and has a surface consisting of volcanic ash, stone and lava. At first, it seems to be hostile to life, but that impression is false. Small traces of water have been detected, which is, of course, where all life begins. It would only be a question of time until Hades develops complex life forms on its own, but we're here to speed up this process.") },
{ T_C0, NS("Planet Hades") },
{ T_P, NS("Hades is a very large volcanic planet that revolves around Apollo, its main star. It's surrounded by a thick sulphuric atmosphere and has a surface consisting of volcanic ash, stone and lava. At first, it seems to be hostile to life, but that impression is false. Small traces of water have been detected, which is, of course, where all life begins. It would only be a question of time until Hades develops complex life forms on its own, but we're here to speed up this process.") },
{ T_P, N("Hades is in an elliptic orbit around Apollo, its star, with a low orbital eccentricity. When you follow Appolo in the sky throughout the year, you will see how Appollo will notably change in its apparent size. On Summer Solstice, Apollo appears about twice at large in the sky than on New Year's Day.") },
{ T_P, NS("Hades is in an elliptic orbit around Apollo, its star, with a low orbital eccentricity. When you follow Appolo in the sky throughout the year, you will see how Appollo will notably change in its apparent size. On Summer Solstice, Apollo appears about twice at large in the sky than on New Year's Day.") },
{ T_C1, N("Seasons") },
{ T_P, N("The Science Division has crunched the numbers and determined that seasonal variations can occur thanks to its orbit. They've classified the Hades year into three seasons: spring, summer and fall.") },
{ T_P, N("The year begins on New Year's Day, which is the beginning of spring. On the first day, Hades is furthest from Apollo. In spring, Hades moves rapidly closer and closer to Apollo, until summer is reached. Summer is the hottest season, during which Hades remains rather close to Apollo. Summer Solstice occurs in the middle of summer. Summer is followed by fall, in which Hades rapidly moves further away from Apollo and returns to its starting point. The next year begins, and the cycle starts again.") },
{ T_P, N("There's no winter, it's hot in the entire year and the time in which Hades is furthest away from Apollo is too short to justify a season in its own right.") },
{ T_C1, NS("Seasons") },
{ T_P, NS("The Science Division has crunched the numbers and determined that seasonal variations can occur thanks to its orbit. They've classified the Hades year into three seasons: spring, summer and fall.") },
{ T_P, NS("The year begins on New Year's Day, which is the beginning of spring. On the first day, Hades is furthest from Apollo. In spring, Hades moves rapidly closer and closer to Apollo, until summer is reached. Summer is the hottest season, during which Hades remains rather close to Apollo. Summer Solstice occurs in the middle of summer. Summer is followed by fall, in which Hades rapidly moves further away from Apollo and returns to its starting point. The next year begins, and the cycle starts again.") },
{ T_P, NS("There's no winter, it's hot in the entire year and the time in which Hades is furthest away from Apollo is too short to justify a season in its own right.") },
{ T_C1, N("Why was Hades chosen?") },
{ T_P, N("In one word, compromise.") },
{ T_P, N("Many people have criticized the decision to terraform Hades and indeed, there were are many downsides, and many clearly superior candidates are known. However, due to material costs for transport and fuel, pretty much all of the more promising worlds are simply out of reach. There are many worlds that are even worse than Hades, and it's also a fact that early explorers discovered traces of water, something that's very critical for worldbuilding.") },
{ T_P, N("The people who were against visiting Hades were mainly coming from the Terraforming Collective, stating it would be an overly dangerous endeavor.") },
{ T_P, N("Those in favor of it agreed that it will be a tough experiment, but one that might be worth it. Also, the dangerous conditions can be alleviated by the Science Division by strongly focusing on researching technologies specifically made for the Hades project. Several people in the Science Division already announced they would be more than happy to assist the Hades project.") },
{ T_P, N("After lots of hefty debating, discussion and arguing, Hades was eventually chosen. Although the opponents were not entirely convinced, they grudgingly agreed to support the ambitious project. Especially the 'water' argument was one too hard to argue against.") },
{ T_P, N("And that's how Hades was chosen.") },
{ T_P, N("A few people still argue that Hades was the wrong choice, but a decision has been made, and the alternatives currently don't look bright anyway. Everyone agrees, though, that this is a high-risk high-reward project. And maybe, just maybe, even one scorching hot wasteland such as Hades can actually be turned into a blooming wonderland. At least some regions of it.") },
{ T_C1, NS("Why was Hades chosen?") },
{ T_P, NS("In one word, compromise.") },
{ T_P, NS("Many people have criticized the decision to terraform Hades and indeed, there were are many downsides, and many clearly superior candidates are known. However, due to material costs for transport and fuel, pretty much all of the more promising worlds are simply out of reach. There are many worlds that are even worse than Hades, and it's also a fact that early explorers discovered traces of water, something that's very critical for worldbuilding.") },
{ T_P, NS("The people who were against visiting Hades were mainly coming from the Terraforming Collective, stating it would be an overly dangerous endeavor.") },
{ T_P, NS("Those in favor of it agreed that it will be a tough experiment, but one that might be worth it. Also, the dangerous conditions can be alleviated by the Science Division by strongly focusing on researching technologies specifically made for the Hades project. Several people in the Science Division already announced they would be more than happy to assist the Hades project.") },
{ T_P, NS("After lots of hefty debating, discussion and arguing, Hades was eventually chosen. Although the opponents were not entirely convinced, they grudgingly agreed to support the ambitious project. Especially the 'water' argument was one too hard to argue against.") },
{ T_P, NS("And that's how Hades was chosen.") },
{ T_P, NS("A few people still argue that Hades was the wrong choice, but a decision has been made, and the alternatives currently don't look bright anyway. Everyone agrees, though, that this is a high-risk high-reward project. And maybe, just maybe, even one scorching hot wasteland such as Hades can actually be turned into a blooming wonderland. At least some regions of it.") },
}
static_lines.equipment = {
{ T_C0, N("Special Equipment") },
{ T_P, N("To the first explorers, visiting planet Hades is quite dangerous. Thus, the Science Division has developed special technologies to aid with the unique challenges the explorers will face.") },
{ T_C0, NS("Special Equipment") },
{ T_P, NS("To the first explorers, visiting planet Hades is quite dangerous. Thus, the Science Division has developed special technologies to aid with the unique challenges the explorers will face.") },
{ T_C1, N("Safety Teleport") },
{ T_P, N([[Since there is a lot of lava on the surface of Hades, there's a low chance you might end up in lava when you arrive. So the Science Division has developed the Safety Teleport mechanism. It detects when you arrive at a dangerous spot and tries to teleport you at a safe nearby place. This mechanism is fully automatic. However, it is not perfect, it might fail if no safe spot could be found.]]) },
{ T_C1, NS("Safety Teleport") },
{ T_P, NS([[Since there is a lot of lava on the surface of Hades, there's a low chance you might end up in lava when you arrive. So the Science Division has developed the Safety Teleport mechanism. It detects when you arrive at a dangerous spot and tries to teleport you at a safe nearby place. This mechanism is fully automatic. However, it is not perfect, it might fail if no safe spot could be found.]]) },
{ T_C1, N("Breathing Apparatus") },
{ T_P, N("Since the atmosphere of Hades is highly sulphuric, every GBTC volunteer has been surgically enhanced with the implanted breathing apparatus. It filters out all toxins and allows you to breathe in safely. It is fully automatic and requires no maintenance.") },
{ T_C1, NS("Breathing Apparatus") },
{ T_P, NS("Since the atmosphere of Hades is highly sulphuric, every GBTC volunteer has been surgically enhanced with the implanted breathing apparatus. It filters out all toxins and allows you to breathe in safely. It is fully automatic and requires no maintenance.") },
{ T_C1, N("Heat-resistant Skin Spray") },
{ T_P, N([[To deal with the extreme environment temperatures of Hades, the Heat-Resistant Skin Spray was developed. This spray is strong enough to protect you from the heat of the environment. However, direct contact with lava is still harmful, so be careful.]]) },
{ T_P, N([[All GBTC candidates are required to undergo this skin treatment before being permitted to enter the GBTC.]]) },
{ T_C1, NS("Heat-resistant Skin Spray") },
{ T_P, NS([[To deal with the extreme environment temperatures of Hades, the Heat-Resistant Skin Spray was developed. This spray is strong enough to protect you from the heat of the environment. However, direct contact with lava is still harmful, so be careful.]]) },
{ T_P, NS([[All GBTC candidates are required to undergo this skin treatment before being permitted to enter the GBTC.]]) },
}
static_lines.galactic_builders = {
{ T_C0, N("Galactic Builders") },
{ T_PG, N("The Galactic Builders is an interplanetary group of people who have banded together with one shared goal: To build and maintain habitable settlements all across the galaxy for the betterment of society."), "hades_info_galactic_builders.png" },
{ T_P, N("The group as a whole is difficult to pin down, as there is no hierarchy, leadership or anything like that and people tend to disagree all the time with everything. That having said, that doesn't mean there isn't any form of organization.") },
{ T_P, N("Although not \"official\", the Galactic Builders recognize several \"divisions\", smaller groups that aim at a specific task. The biggest known divisions are:") },
{ T_P, N("Terraforming Collective (GBTC): They visit planets to transform them to habitable places via terraforming, building, etc.") },
{ T_P, N("Science Division (GBTC): They research and develop technologies required for the goals of the Galactic Builders. Also includes the search for suitable planets.") },
{ T_P, N("Piloting Division (GBPD): Responsible for transportation of materials to support the planets. Also includes the construction of space outposts close to the planets.") },
{ T_C0, NS("Galactic Builders") },
{ T_PG, NS("The Galactic Builders is an interplanetary group of people who have banded together with one shared goal: To build and maintain habitable settlements all across the galaxy for the betterment of society."), "hades_info_galactic_builders.png" },
{ T_P, NS("The group as a whole is difficult to pin down, as there is no hierarchy, leadership or anything like that and people tend to disagree all the time with everything. That having said, that doesn't mean there isn't any form of organization.") },
{ T_P, NS("Although not \"official\", the Galactic Builders recognize several \"divisions\", smaller groups that aim at a specific task. The biggest known divisions are:") },
{ T_P, NS("Terraforming Collective (GBTC): They visit planets to transform them to habitable places via terraforming, building, etc.") },
{ T_P, NS("Science Division (GBTC): They research and develop technologies required for the goals of the Galactic Builders. Also includes the search for suitable planets.") },
{ T_P, NS("Piloting Division (GBPD): Responsible for transportation of materials to support the planets. Also includes the construction of space outposts close to the planets.") },
}
static_lines.divisions = {
{ T_C0, N("Divisions") },
{ T_P, N("These are the largest 3 divisions of the Galactic Builders:") },
{ T_C1, N("Terraforming Collective (GBTC)")},
{ T_PG, N("This is your division. Members of the Terraforming Collective visit planets that have been chosen to be suitable and transform them into habitable places via terraforming, building and other means.", "hades_info_galactic_builders_terraforming_collective.png"), "hades_info_galactic_builders_terraforming_collective.png" } ,
{ T_P, N("The terms \"suitable\" and \"habitable\" are applied very loosely here and every GBTC builder has their own idea of how to achieve these goals, and it\'s not uncommon those ideas contradicti each other. Many attempts have been made to formalize the goals of the GBTC, but they all have failed.") },
{ T_P, N("Whether you build primitive huts, astonishing mansions, an excentric and undifinable mess of random blocks, strange underground bases, efficient food farms, or anything else, it's generally considered to be working towards the goal.") },
{ T_P, N("If the GBTC has any principles at all, it is probably the idea that if at least one person (including the builder) believes the construction is useful, it is useful.") },
{ T_P, N("Given its chaotic nature, the other divisions rarely dare to question the motives of the GBTC. They don't really have a choice anyway.") },
{ T_C0, NS("Divisions") },
{ T_P, NS("These are the largest 3 divisions of the Galactic Builders:") },
{ T_C1, NS("Terraforming Collective (GBTC)")},
{ T_PG, NS("This is your division. Members of the Terraforming Collective visit planets that have been chosen to be suitable and transform them into habitable places via terraforming, building and other means.", "hades_info_galactic_builders_terraforming_collective.png"), "hades_info_galactic_builders_terraforming_collective.png" } ,
{ T_P, NS("The terms \"suitable\" and \"habitable\" are applied very loosely here and every GBTC builder has their own idea of how to achieve these goals, and it\'s not uncommon those ideas contradicti each other. Many attempts have been made to formalize the goals of the GBTC, but they all have failed.") },
{ T_P, NS("Whether you build primitive huts, astonishing mansions, an excentric and undifinable mess of random blocks, strange underground bases, efficient food farms, or anything else, it's generally considered to be working towards the goal.") },
{ T_P, NS("If the GBTC has any principles at all, it is probably the idea that if at least one person (including the builder) believes the construction is useful, it is useful.") },
{ T_P, NS("Given its chaotic nature, the other divisions rarely dare to question the motives of the GBTC. They don't really have a choice anyway.") },
{ T_C1, N("Science Division (GBSD)"), },
{ T_PG, N("Scientists of various disciplines come together to research the technologies neccessary for the tasks needed. This division also includes the search for suitable planets."), "hades_info_galactic_builders_science_division.png" },
{ T_P, N("The Science Division stricly focuses on research that benefits the Galactic Builders only, other research is not done. Yet it is one of the most renowned science groups in the galaxy because many of their findings turn out to be of great use outside of terraforming.") },
{ T_P, N("It is standard practice to publish all scientific findings galaxy-wide, although this is not an official rule. If anyone is caught hiding something, that's almost universally very frowned upon; such people tend to not get invited into parties. This one of the few principles that pretty much everyone in the Galactic Builders agrees upon.") },
{ T_P, N("Apart from scientists, there's also a small yet highly dedicated group in the GBSD of mostly non-scientists who do nothing else than observe other scientific groups in the galaxy in order to transmit any useful results directly back to the Galactic Builders. Not all science groups in the galaxy are as transparent as the GBSD, so they are infiltrated in order to extract the knowledge that others rather keep hidden, for the benefit of all, of course.") },
{ T_C1, NS("Science Division (GBSD)"), },
{ T_PG, NS("Scientists of various disciplines come together to research the technologies neccessary for the tasks needed. This division also includes the search for suitable planets."), "hades_info_galactic_builders_science_division.png" },
{ T_P, NS("The Science Division stricly focuses on research that benefits the Galactic Builders only, other research is not done. Yet it is one of the most renowned science groups in the galaxy because many of their findings turn out to be of great use outside of terraforming.") },
{ T_P, NS("It is standard practice to publish all scientific findings galaxy-wide, although this is not an official rule. If anyone is caught hiding something, that's almost universally very frowned upon; such people tend to not get invited into parties. This one of the few principles that pretty much everyone in the Galactic Builders agrees upon.") },
{ T_P, NS("Apart from scientists, there's also a small yet highly dedicated group in the GBSD of mostly non-scientists who do nothing else than observe other scientific groups in the galaxy in order to transmit any useful results directly back to the Galactic Builders. Not all science groups in the galaxy are as transparent as the GBSD, so they are infiltrated in order to extract the knowledge that others rather keep hidden, for the benefit of all, of course.") },
{ T_C1, N("Piloting Division (GBPD)"), },
{ T_PG, N("This division is responsible for the transportation of materials to support the planets that are going to be terraformed. This division also includes engineers who construct outposts in space above the target planets."), "hades_info_galactic_builders_piloting_division.png" },
{ T_P, N("Unlike the other division, this one actually does have fairly strict rules due to flight safety regulations. Reckless flying maneuvers in the past has often lead to disaster and people decided to put an end to it. They say, every rule in the book was written with blood.") },
{ T_P, N("While there are no formal punishments for violating any rules, reckless pilots will soon find themselves in deep trouble. They will learn soon enough that nobody wants to assign them any tasks anymore, which basically means they have to reconsider their life choices.") },
{ T_P, N("Within the Piloting Division, there's a group of people dedicated (some might say even obsessed) only to track every single action of the pilots and to let everyone in the whole Galactic Builders association know of reckless behavior.") },
{ T_P, N("Despite these circumstances, work as a pilot remains popular, many pilots say it's very rewarding to know they contribute to something greater.") },
{ T_C1, NS("Piloting Division (GBPD)"), },
{ T_PG, NS("This division is responsible for the transportation of materials to support the planets that are going to be terraformed. This division also includes engineers who construct outposts in space above the target planets."), "hades_info_galactic_builders_piloting_division.png" },
{ T_P, NS("Unlike the other division, this one actually does have fairly strict rules due to flight safety regulations. Reckless flying maneuvers in the past has often lead to disaster and people decided to put an end to it. They say, every rule in the book was written with blood.") },
{ T_P, NS("While there are no formal punishments for violating any rules, reckless pilots will soon find themselves in deep trouble. They will learn soon enough that nobody wants to assign them any tasks anymore, which basically means they have to reconsider their life choices.") },
{ T_P, NS("Within the Piloting Division, there's a group of people dedicated (some might say even obsessed) only to track every single action of the pilots and to let everyone in the whole Galactic Builders association know of reckless behavior.") },
{ T_P, NS("Despite these circumstances, work as a pilot remains popular, many pilots say it's very rewarding to know they contribute to something greater.") },
{ T_X },
}
static_lines.first_tree = {
{ T_C0, N("The First Tree") },
{ T_P, N("As you already know from your GBTC training program, growing your first tree is crucial for your success.") },
{ T_P, N("As a quick reminder, here's a quick checklist of what you need to do:") },
{ T_N, N("Bring a pickaxe and apples with you") },
{ T_N, N("On the surface, find some water") },
{ T_N, N("Craft volcanic ash, then fertile sand") },
{ T_N, N("Place fertile sand next to water, eventually it will become dirt") },
{ T_N, N("Craft a sapling using dirt and an apple") },
{ T_N, N("Place the sapling on dirt in light and let it grow") },
{ T_C0, NS("The First Tree") },
{ T_P, NS("As you already know from your GBTC training program, growing your first tree is crucial for your success.") },
{ T_P, NS("As a quick reminder, here's a quick checklist of what you need to do:") },
{ T_N, NS("Bring a pickaxe and apples with you") },
{ T_N, NS("On the surface, find some water") },
{ T_N, NS("Craft volcanic ash, then fertile sand") },
{ T_N, NS("Place fertile sand next to water, eventually it will become dirt") },
{ T_N, NS("Craft a sapling using dirt and an apple") },
{ T_N, NS("Place the sapling on dirt in light and let it grow") },
{ T_X },
{ T_P, N("And that's your first tree!") },
{ T_P, N("If you don't have apples or a pickaxe, try fighting those mutants who wander around; they might carry those things.") },
{ T_P, N("Remember, in your inventory there is a crafting grid, use it to combine items. Use your crafting guide to see what you can craft and how.") },
{ T_P, NS("And that's your first tree!") },
{ T_P, NS("If you don't have apples or a pickaxe, try fighting those mutants who wander around; they might carry those things.") },
{ T_P, NS("Remember, in your inventory there is a crafting grid, use it to combine items. Use your crafting guide to see what you can craft and how.") },
}
static_lines.dangers = {
{ T_C0, N("Dangers of Hades") },
{ T_C1, N("Lava") },
{ T_P, N("The most obvious threat you have to watch out for is lava. Only direct contact with lava is harmful, but it'll melt you to goo within seconds. So just keep a safe distance from lava. When mining, keep an eye out for burned stone. This is usually a sign that lava is right next to this block.") },
{ T_C0, NS("Dangers of Hades") },
{ T_C1, NS("Lava") },
{ T_P, NS("The most obvious threat you have to watch out for is lava. Only direct contact with lava is harmful, but it'll melt you to goo within seconds. So just keep a safe distance from lava. When mining, keep an eye out for burned stone. This is usually a sign that lava is right next to this block.") },
{ T_C1, N("Mutants") },
{ T_P, N("Our sensors have detected life signatures which have been classified as 'mutants'. We're afraid those mutants were previous explorers that couldn't make it and now walk the surface aimlessly. They tend to come out at night more often and might still carry some basic tools and food. If you've lost all your supplies, fighting those mutants might be your only chance to start over.") },
{ T_C1, NS("Mutants") },
{ T_P, NS("Our sensors have detected life signatures which have been classified as 'mutants'. We're afraid those mutants were previous explorers that couldn't make it and now walk the surface aimlessly. They tend to come out at night more often and might still carry some basic tools and food. If you've lost all your supplies, fighting those mutants might be your only chance to start over.") },
}
get_info_static = function(id, player_name, menu_type)

View File

@ -77,10 +77,10 @@ for more information.
Example (mostly) from `hbarmor` mod:
```
hb.register_hudbar("armor", 0xFFFFFF, minetest.translator("hbarmor", "Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, N("@1: @2%"), { order = { "label", "value" }, textdomain = "hbarmor" } )
hb.register_hudbar("armor", 0xFFFFFF, minetest.translator("hbarmor", "Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, NS("@1: @2%"), { order = { "label", "value" }, textdomain = "hbarmor" } )
```
Displays an armor HUD bar with a label of the form „Armor: 53%“. (`N` is a dummy function that returns its argument, used to make the string visible for translator scripts.)
Displays an armor HUD bar with a label of the form „Armor: 53%“. (`NS` is a dummy function that returns its argument, used to make the string visible for translator scripts.)
#### Return value
Always `nil`.

View File

@ -1,5 +1,5 @@
local S = minetest.get_translator("hudbars")
local N = function(s) return s end
local NS = function(s) return s end
hb = {}
@ -153,7 +153,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
end
end
if format_string == nil then
format_string = N("@1: @2/@3")
format_string = NS("@1: @2/@3")
end
if format_string_config == nil then
format_string_config = {}