File :
- advtrains : init.lua wagons.lua
- advtrains_line_automation : scheduler.lua stoprail.lua
Actions :
- Conversion of attrans() to S()
- Insertion of S() function calls where needed.
Miscellaneous :
- Removing of personnal tries on update-translastions.sh which should
not have been committed.
---
advtrains/init.lua | 50 ++---
advtrains/po/advtrains.pot | 244 +++++++++++++++++++++-
advtrains/po/de.po | 248 +++++++++++++++++++++-
advtrains/po/fr.po | 264 +++++++++++++++++++++++-
advtrains/po/update-translations.sh | 1 -
advtrains/po/zh_CN.po | 248 +++++++++++++++++++++-
advtrains/po/zh_TW.po | 248 +++++++++++++++++++++-
advtrains/wagons.lua | 119 +++++------
advtrains_line_automation/scheduler.lua | 2 +-
advtrains_line_automation/stoprail.lua | 42 ++--
10 files changed, 1349 insertions(+), 117 deletions(-)
diff --git a/advtrains/init.lua b/advtrains/init.lua
index 4a0b928..4881e15 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -67,7 +67,7 @@ end
local no_action=false
local function reload_saves()
- atwarn("Restoring saved state in 1 second...")
+ atwarn(S("Restoring saved state in 1 second..."))
no_action=true
advtrains.lock_path_inval = false
--read last save state and continue, as if server was restarted
@@ -78,7 +78,7 @@ local function reload_saves()
end
minetest.after(1, function()
advtrains.load()
- atwarn("Reload successful!")
+ atwarn(S("Reload successful!"))
advtrains.ndb.restore_all()
end)
end
@@ -338,7 +338,7 @@ function advtrains.avt_load()
end
end
for wid, _ in pairs(todel) do
- atwarn("Removing unused wagon", wid, "from wagon_save table.")
+ atwarn(S("Removing unused wagon"), wid, S("from wagon_save table."))
advtrains.wagon_save[wid]=nil
end
else
@@ -403,7 +403,7 @@ function advtrains.load_version_4()
end
end
for wid, _ in pairs(todel) do
- atwarn("Removing unused wagon", wid, "from wagon_save table.")
+ atwarn(S("Removing unused wagon"), wid, S("from wagon_save table."))
advtrains.wagon_save[wid]=nil
end
end
@@ -481,7 +481,7 @@ advtrains.avt_save = function(remove_players_from_wagons)
--then save it
tmp_trains[id]=v
else
- atwarn("Train",id,"had no wagons left because of some bug. It is being deleted. Wave it goodbye!")
+ atwarn(S("Train"),id,S("had no wagons left because of some bug. It is being deleted. Wave it goodbye!"))
advtrains.remove_train(id)
end
end
@@ -562,7 +562,7 @@ advtrains.avt_save = function(remove_players_from_wagons)
local succ, err = serialize_lib.save_atomic_multiple(parts_table, advtrains.fpath.."_", callbacks_table)
if not succ then
- atwarn("Saving failed: "..err)
+ atwarn(S("Saving failed: ")..err)
else
-- store version
advtrains.save_component(4, "version")
@@ -665,7 +665,7 @@ end
function advtrains.save(remove_players_from_wagons)
if not init_load then
--wait... we haven't loaded yet?!
- atwarn("Instructed to save() but load() was never called!")
+ atwarn(S("Instructed to save() but load() was never called!"))
return
end
@@ -694,7 +694,7 @@ function advtrains.save(remove_players_from_wagons)
end
minetest.register_on_shutdown(function()
if within_mainstep then
- atwarn("Crash during advtrains main step - skipping the shutdown save operation to not save inconsistent data!")
+ atwarn(S("Crash during advtrains main step - skipping the shutdown save operation to not save inconsistent data!"))
else
advtrains.save()
end
@@ -706,10 +706,10 @@ end)
minetest.register_chatcommand("at_empty_seats",
{
params = "", -- Short parameter description
- description = "Detach all players, especially the offline ones, from all trains. Use only when no one serious is on a train.", -- Full description
+ description = S("Detach all players, especially the offline ones, from all trains. Use only when no one serious is on a train."), -- Full description
privs = {train_operator=true, server=true}, -- Require the "privs" privilege to run
func = function(name, param)
- atwarn("Data is being saved. While saving, advtrains will remove the players from trains. Save files will be reloaded afterwards!")
+ atwarn(S("Data is being saved. While saving, advtrains will remove the players from trains. Save files will be reloaded afterwards!"))
advtrains.save(true)
reload_saves()
end,
@@ -718,60 +718,60 @@ minetest.register_chatcommand("at_empty_seats",
minetest.register_chatcommand("at_reroute",
{
params = "",
- description = "Delete all train routes, force them to recalculate",
+ description = S("Delete all train routes, force them to recalculate"),
privs = {train_operator=true}, -- Only train operator is required, since this is relatively safe.
func = function(name, param)
advtrains.invalidate_all_paths()
- return true, "Successfully invalidated train routes"
+ return true, S("Successfully invalidated train routes")
end,
})
minetest.register_chatcommand("at_whereis",
{
params = "<train id>",
- description = "Returns the position of the train with the given id",
+ description = S("Returns the position of the train with the given id"),
privs = {train_operator = true},
func = function(name,param)
local train = advtrains.trains[param]
if not train or not train.last_pos then
- return false, "Train "..param.." does not exist or is invalid"
+ return false, S("Train ")..param..S(" does not exist or is invalid")
else
- return true, "Train "..param.." is at "..minetest.pos_to_string(train.last_pos)
+ return true, S("Train ")..param..S(" is at ")..minetest.pos_to_string(train.last_pos)
end
end,
})
minetest.register_chatcommand("at_tp",
{
params = "<train id>",
- description = "Teleports you to the position of the train with the given id",
+ description = S("Teleports you to the position of the train with the given id"),
privs = {train_operator = true, teleport = true},
func = function(name,param)
local train = advtrains.trains[param]
if not train or not train.last_pos then
- return false, "Train "..param.." does not exist or is invalid"
+ return false, S("Train ")..param..S(" does not exist or is invalid")
else
minetest.get_player_by_name(name):set_pos(train.last_pos)
- return true, "Teleporting to train "..param
+ return true, S("Teleporting to train ")..param
end
end,
})
minetest.register_chatcommand("at_disable_step",
{
params = "<yes/no>",
- description = "Disable the advtrains globalstep temporarily",
+ description = S("Disable the advtrains globalstep temporarily"),
privs = {server=true},
func = function(name, param)
if minetest.is_yes(param) then
-- disable everything, and turn off saving
no_action = true;
- atwarn("The advtrains globalstep has been disabled. Trains are not moving, and no data is saved! Run '/at_disable_step no' to enable again!")
- return true, "Disabled advtrains successfully"
+ atwarn(S("The advtrains globalstep has been disabled. Trains are not moving, and no data is saved! Run '/at_disable_step no' to enable again!"))
+ return true, S("Disabled advtrains successfully")
elseif no_action then
- atwarn("Re-enabling advtrains globalstep...")
+ atwarn(S("Re-enabling advtrains globalstep..."))
reload_saves()
return true
else
- return false, "Advtrains is already running normally!"
+ return false, S("Advtrains is already running normally!")
end
end,
})
@@ -779,10 +779,10 @@ minetest.register_chatcommand("at_disable_step",
minetest.register_chatcommand("at_status",
{
params = "",
- description = "Print advtrains status info",
+ description = S("Print advtrains status info"),
privs = {train_operator = true},
func = function(name, param)
- return true, advtrains.print_concat_table({"Advtrains Status: no_action",no_action,"slowdown",advtrains.global_slowdown,"(log",math.log(advtrains.global_slowdown),")"})
+ return true, advtrains.print_concat_table({S("Advtrains Status: no_action"),no_action,S("slowdown"),advtrains.global_slowdown,S("(log"),math.log(advtrains.global_slowdown),")"})
end,
})
diff --git a/advtrains/po/advtrains.pot b/advtrains/po/advtrains.pot
index ade6a33..2d6ce43 100644
--- a/advtrains/po/advtrains.pot
+++ b/advtrains/po/advtrains.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2024-12-08 15:21+0100\n"
+"POT-Creation-Date: 2024-12-09 18:15+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -39,7 +39,8 @@ msgstr ""
msgid "Digiline channel"
msgstr ""
-#: advtrains/atc.lua advtrains_line_automation/stoprail.lua
+#: advtrains/atc.lua advtrains/wagons.lua
+#: advtrains_line_automation/stoprail.lua
#: advtrains_luaautomation/active_common.lua
msgid "Save"
msgstr ""
@@ -149,6 +150,127 @@ msgstr ""
msgid "Chimney"
msgstr ""
+#: advtrains/init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Train"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"had no wagons left because of some bug. It is being deleted. Wave it goodbye!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Saving failed: "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid " does not exist or is invalid"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Train "
+msgstr ""
+
+#: advtrains/init.lua
+msgid " is at "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleporting to train "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"The advtrains globalstep has been disabled. Trains are not moving, and no "
+"data is saved! Run '/at_disable_step no' to enable again!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "(log"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains Status: no_action"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "slowdown"
+msgstr ""
+
#: advtrains/misc_nodes.lua
msgid "@1 Platform (low)"
msgstr ""
@@ -313,10 +435,24 @@ msgstr ""
msgid "Insufficient privileges to use this!"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Uninitialized init="
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized, removing"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "This wagon is owned by @1, you can't destroy it."
msgstr ""
+#: advtrains/wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "The wagon's inventory is not empty."
msgstr ""
@@ -331,6 +467,26 @@ msgid ""
"sure, hold Sneak and left-click the wagon."
msgstr ""
+#: advtrains/wagons.lua
+msgid " wagon:destroy(): data is not set!"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid " units"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Liquid: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Liquid: empty"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Show Inventory"
msgstr ""
@@ -379,6 +535,30 @@ msgstr ""
msgid "This Wagon ID"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Wagon road number:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Prev FC"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Current FC: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Next FC:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Save wagon properties"
msgstr ""
@@ -403,6 +583,22 @@ msgstr ""
msgid "Routingcode"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Remote Routesetting"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr ""
+
#: advtrains/wagons.lua
msgid ""
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
@@ -413,6 +609,30 @@ msgstr ""
msgid "You are not allowed to access the driver stand."
msgstr ""
+#: advtrains/wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Not allowed to do this."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid ", using placeholder"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Unable to load wagon type"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "You don't have the train_operator privilege."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr ""
+
#: advtrains_interlocking/routesetting.lua
msgid "Route state changed."
msgstr ""
@@ -437,6 +657,10 @@ msgstr ""
msgid "Point Speed Restriction Track"
msgstr ""
+#: advtrains_line_automation/scheduler.lua
+msgid "No callback to handle schedule"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Station Code"
msgstr ""
@@ -465,6 +689,10 @@ msgstr ""
msgid "Door Side"
msgstr ""
+#: advtrains_line_automation/stoprail.lua
+msgid "Left,Right,Closed;"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Reverse train"
msgstr ""
@@ -473,6 +701,10 @@ msgstr ""
msgid "Kick out passengers"
msgstr ""
+#: advtrains_line_automation/stoprail.lua
+msgid "Trains stopping here (ARS rules);"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Station code \"@1\" already exists and is owned by @2."
msgstr ""
@@ -481,6 +713,14 @@ msgstr ""
msgid "This station is owned by @1. You are not allowed to edit its name."
msgstr ""
+#: advtrains_line_automation/stoprail.lua
+msgid "Unknown Station"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Next Stop:\n"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Station/Stop Track"
msgstr ""
diff --git a/advtrains/po/de.po b/advtrains/po/de.po
index 8a7e009..4bdb0b1 100644
--- a/advtrains/po/de.po
+++ b/advtrains/po/de.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2024-12-08 15:21+0100\n"
+"POT-Creation-Date: 2024-12-09 18:15+0100\n"
"PO-Revision-Date: 2023-10-09 11:18+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: German\n"
@@ -58,7 +58,8 @@ msgstr "Befehl (wenn aktiviert)"
msgid "Digiline channel"
msgstr "Digiline-Kanal"
-#: advtrains/atc.lua advtrains_line_automation/stoprail.lua
+#: advtrains/atc.lua advtrains/wagons.lua
+#: advtrains_line_automation/stoprail.lua
#: advtrains_luaautomation/active_common.lua
msgid "Save"
msgstr "Speichern"
@@ -162,6 +163,128 @@ msgstr "Führerstand"
msgid "Wheel"
msgstr ""
+#: advtrains/init.lua
+msgid " does not exist or is invalid"
+msgstr ""
+
+#: advtrains/init.lua
+msgid " is at "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "(log"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains Status: no_action"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Saving failed: "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleporting to train "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"The advtrains globalstep has been disabled. Trains are not moving, and no "
+"data is saved! Run '/at_disable_step no' to enable again!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Train"
+msgstr ""
+
+#: advtrains/init.lua
+#, fuzzy
+msgid "Train "
+msgstr "Der Zug wurde Kopiert."
+
+#: advtrains/init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"had no wagons left because of some bug. It is being deleted. Wave it goodbye!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "slowdown"
+msgstr ""
+
#: advtrains/misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "Hoher @1-Bahnsteig (45°)"
@@ -340,10 +463,44 @@ msgid ""
"Punch a wagon to view and edit the Wagon Properties"
msgstr ""
+#: advtrains/wagons.lua
+msgid " units"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid " wagon:destroy(): data is not set!"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "(Doors closed)"
msgstr "(Türen geschlossen)"
+#: advtrains/wagons.lua
+msgid ", using placeholder"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Current FC: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Doors are closed! (Try holding sneak key!)"
msgstr "Die Türen sind geschlossen."
@@ -356,6 +513,10 @@ msgstr ""
"Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz "
"geschlossener Türen auszusteigen."
+#: advtrains/wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Get off"
msgstr "Aussteigen"
@@ -368,10 +529,39 @@ msgstr "Ausstieg zwingen"
msgid "Line"
msgstr "Linie"
+#: advtrains/wagons.lua
+msgid "Liquid: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Liquid: empty"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Next FC:"
+msgstr ""
+
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "Not allowed to do this."
+msgstr "Sie dürfen dieses Gleis nicht konfigurieren."
+
#: advtrains/wagons.lua
msgid "Onboard Computer"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Prev FC"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Remote Routesetting"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Routingcode"
msgstr ""
@@ -396,6 +586,11 @@ msgstr "Innere Anzeige"
msgid "Text displayed outside on train"
msgstr "Äußere Anzeige"
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz."
+
#: advtrains/wagons.lua
msgid "The wagon's inventory is not empty."
msgstr "Das Inventar dieses Waggons ist nicht leer."
@@ -421,6 +616,26 @@ msgstr "Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen."
msgid "Train ID"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Unable to load wagon type"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized init="
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized, removing"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können."
@@ -429,6 +644,10 @@ msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können."
msgid "Wagon properties"
msgstr "Waggon-Einstellungen"
+#: advtrains/wagons.lua
+msgid "Wagon road number:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid ""
"Warning: If you destroy this wagon, you only get some steel back! If you are "
@@ -445,6 +664,11 @@ msgstr "Sie haben keinen Zugang zum Führerstand."
msgid "You can't get on this wagon."
msgstr "Sie können nicht in diesen Waggon einsteigen."
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "Ihnen fehlt das „@1“-Privileg."
+
#: advtrains_interlocking/routesetting.lua
msgid "Route state changed."
msgstr ""
@@ -469,6 +693,10 @@ msgstr "Sie dürfen ohne das „@1“-Privileg dieses Gleis nicht konfigurieren.
msgid "You are not allowed to configure this track."
msgstr "Sie dürfen dieses Gleis nicht konfigurieren."
+#: advtrains_line_automation/scheduler.lua
+msgid "No callback to handle schedule"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Dep. Speed"
msgstr "Zielgeschwindigkeit bei Abfahrt"
@@ -485,6 +713,14 @@ msgstr "Türseite"
msgid "Kick out passengers"
msgstr "Fahrgäste zum Ausstieg zwingen"
+#: advtrains_line_automation/stoprail.lua
+msgid "Left,Right,Closed;"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Next Stop:\n"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Reverse train"
msgstr "Zug Umkehren"
@@ -520,6 +756,14 @@ msgstr ""
msgid "Track"
msgstr "Gleis"
+#: advtrains_line_automation/stoprail.lua
+msgid "Trains stopping here (ARS rules);"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Unknown Station"
+msgstr ""
+
#: advtrains_luaautomation/active_common.lua
msgid "Clear Local Environment"
msgstr ""
diff --git a/advtrains/po/fr.po b/advtrains/po/fr.po
index 3c8f5f6..985f8af 100644
--- a/advtrains/po/fr.po
+++ b/advtrains/po/fr.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2024-12-08 15:21+0100\n"
-"PO-Revision-Date: 2024-12-04 15:55+0100\n"
+"POT-Creation-Date: 2024-12-09 18:15+0100\n"
+"PO-Revision-Date: 2024-12-09 18:17+0100\n"
"Last-Translator: Tanavit <tanavit@posto.ovh>\n"
"Language-Team: French\n"
"Language: fr\n"
@@ -53,7 +53,8 @@ msgstr "Commande (marche)"
msgid "Digiline channel"
msgstr "Canal Digiline"
-#: advtrains/atc.lua advtrains_line_automation/stoprail.lua
+#: advtrains/atc.lua advtrains/wagons.lua
+#: advtrains_line_automation/stoprail.lua
#: advtrains_luaautomation/active_common.lua
msgid "Save"
msgstr "Sauvegarder"
@@ -156,6 +157,141 @@ msgstr "Cabine de pilotage"
msgid "Wheel"
msgstr "Roue"
+#: advtrains/init.lua
+msgid " does not exist or is invalid"
+msgstr " n'existe pas ou est invalide"
+
+#: advtrains/init.lua
+msgid " is at "
+msgstr " est à la position "
+
+#: advtrains/init.lua
+msgid "(log"
+msgstr "(log"
+
+#: advtrains/init.lua
+msgid "Advtrains Status: no_action"
+msgstr "État d'advtrains : aucune action"
+
+#: advtrains/init.lua
+msgid "Advtrains is already running normally!"
+msgstr "Advtrains fonctionne déjà correctement !"
+
+#: advtrains/init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+"Crash durant le pas principal d'advtrains - saut de l'opération de "
+"sauvegarde de terminaison pour éviter l'enregistrement de données "
+"corrompues !"
+
+#: advtrains/init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+"Données en cours de sauvegarde. Durant cette phase, advtrains débarquera les "
+"joueurs des trains. Les fichiers de sauvegarde seront ultérieurement "
+"rechargés !"
+
+# Routage est il le bon terme ?
+#: advtrains/init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr "Suppression et recalcul de tous les routages"
+
+#: advtrains/init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+"Débarque tous les joueurs, en particulier ceux déconnectés, de tous les "
+"trains. À n'utiliser que quand aucun joueur sérieux n'a embarqué."
+
+#: advtrains/init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr "Désactive temporairement le pas global d'advtrains"
+
+#: advtrains/init.lua
+msgid "Disabled advtrains successfully"
+msgstr "Succès de la désactivation d'advtrains"
+
+#: advtrains/init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr "Appel de save() requis sans appel préalable de load() !"
+
+#: advtrains/init.lua
+msgid "Print advtrains status info"
+msgstr "Affiche les informations d'état d'advtrains"
+
+#: advtrains/init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr "Réacivation du pas global d'advtrains..."
+
+#: advtrains/init.lua
+msgid "Reload successful!"
+msgstr "Succès du rechargement !"
+
+#: advtrains/init.lua
+msgid "Removing unused wagon"
+msgstr "Suppression d'un wagon inutilisé"
+
+#: advtrains/init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr "Restauration du l'état sauvegardé dans une seconde..."
+
+#: advtrains/init.lua
+msgid "Returns the position of the train with the given id"
+msgstr "Affiche la position du train identifié"
+
+#: advtrains/init.lua
+msgid "Saving failed: "
+msgstr "Échec de sauvegarde : "
+
+# Routage est il le bon terme ?
+#: advtrains/init.lua
+msgid "Successfully invalidated train routes"
+msgstr "Succès d'invalidation des routages des trains"
+
+#: advtrains/init.lua
+msgid "Teleporting to train "
+msgstr "Téléportation au train "
+
+#: advtrains/init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr "Vous téléporte à la position du train identifié"
+
+#: advtrains/init.lua
+msgid ""
+"The advtrains globalstep has been disabled. Trains are not moving, and no "
+"data is saved! Run '/at_disable_step no' to enable again!"
+msgstr ""
+"Le pas global d'advtrains est désactivé. Les trains sont immobiles et aucune "
+"donnée n'est sauvegardée. Exécutez '/at_disable_step no ' pour le réactiver !"
+
+#: advtrains/init.lua
+msgid "Train"
+msgstr "Identificateur du train"
+
+#: advtrains/init.lua
+msgid "Train "
+msgstr "Identificateur du train "
+
+#: advtrains/init.lua
+msgid "from wagon_save table."
+msgstr "de la table wagon_save."
+
+#: advtrains/init.lua
+msgid ""
+"had no wagons left because of some bug. It is being deleted. Wave it goodbye!"
+msgstr ""
+"n'a plus de wagon à cause d'un bug quelconque. Il est détruit. Faites lui "
+"coucou !"
+
+#: advtrains/init.lua
+msgid "slowdown"
+msgstr "ralentissement"
+
#: advtrains/misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "Quai @1 (haut, 45°)"
@@ -341,10 +477,44 @@ msgstr ""
"Outil de propriété du wagon\n"
"Frappez un wagon pour voir et modifier ses propriétés"
+#: advtrains/wagons.lua
+msgid " units"
+msgstr " Unités"
+
+#: advtrains/wagons.lua
+msgid " wagon:destroy(): data is not set!"
+msgstr " Appel de wagon:destroy() : données non définies !"
+
+#: advtrains/wagons.lua
+msgid "!!! Train off track !!!"
+msgstr "!!! Train hors voie !!!"
+
#: advtrains/wagons.lua
msgid "(Doors closed)"
msgstr "(Portes closes)"
+#: advtrains/wagons.lua
+msgid ", using placeholder"
+msgstr ", dans un espace réservé"
+
+#: advtrains/wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr "Autoriser ces joueurs à embarquer :"
+
+#: advtrains/wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr "Effacer le drapeau \"Désactiver l'ARS\""
+
+#: advtrains/wagons.lua
+msgid "Current FC: "
+msgstr "Code de fret courant: "
+
+#: advtrains/wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr "Desctruction d'un wagon avec inventaire introuvable ? Anomalie !"
+
#: advtrains/wagons.lua
msgid "Doors are closed! (Try holding sneak key!)"
msgstr "Portes closes : (Essayez la \"sneak key\"!\")"
@@ -357,6 +527,10 @@ msgstr ""
"Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour "
"franchir les portes et débarquer."
+#: advtrains/wagons.lua
+msgid "Freight Code:"
+msgstr "Code de frêt :"
+
#: advtrains/wagons.lua
msgid "Get off"
msgstr "Débarquer"
@@ -369,10 +543,38 @@ msgstr "Débarquer (de force)"
msgid "Line"
msgstr "Ligne"
+#: advtrains/wagons.lua
+msgid "Liquid: "
+msgstr "Liquide : "
+
+#: advtrains/wagons.lua
+msgid "Liquid: empty"
+msgstr "Liquide : vide"
+
+#: advtrains/wagons.lua
+msgid "Missing train_operator privilege"
+msgstr "Privilège \"train_operator\" manquant"
+
+#: advtrains/wagons.lua
+msgid "Next FC:"
+msgstr "Code de fret suivant :"
+
+#: advtrains/wagons.lua
+msgid "Not allowed to do this."
+msgstr "Vous n'êtes pas autorisé effectuer ceci."
+
#: advtrains/wagons.lua
msgid "Onboard Computer"
msgstr "Ordinateur embarqué"
+#: advtrains/wagons.lua
+msgid "Prev FC"
+msgstr "Code de fret précédent"
+
+#: advtrains/wagons.lua
+msgid "Remote Routesetting"
+msgstr "Routage à distance"
+
#: advtrains/wagons.lua
msgid "Routingcode"
msgstr "Code de routage"
@@ -397,6 +599,10 @@ msgstr "Texte affiché à l'intérieur du train"
msgid "Text displayed outside on train"
msgstr "Texte affiché à l'extérieur du train"
+#: advtrains/wagons.lua
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte !"
+
#: advtrains/wagons.lua
msgid "The wagon's inventory is not empty."
msgstr "Le stock de ce wagon n'est pas vide."
@@ -421,6 +627,28 @@ msgstr "Ce wagon est la propriété de @1, vous ne pouvez pas le détruire."
msgid "Train ID"
msgstr "Identificateur du train"
+#: advtrains/wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr ""
+"Aperçu du train / commande d'accouplement montré uniquement à l'arrêt du "
+"train."
+
+#: advtrains/wagons.lua
+msgid "Train overview /coupling control:"
+msgstr "Aperçu du train / commande d'accouplement :"
+
+#: advtrains/wagons.lua
+msgid "Unable to load wagon type"
+msgstr "Impossible de charger le type du wagon"
+
+#: advtrains/wagons.lua
+msgid "Uninitialized init="
+msgstr "Variable init non initialisée"
+
+#: advtrains/wagons.lua
+msgid "Uninitialized, removing"
+msgstr "Non initialisé, retiré"
+
#: advtrains/wagons.lua
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
@@ -430,6 +658,10 @@ msgstr ""
msgid "Wagon properties"
msgstr "Propriétés du wagon"
+#: advtrains/wagons.lua
+msgid "Wagon road number:"
+msgstr "Immatriculation du wagon :"
+
#: advtrains/wagons.lua
msgid ""
"Warning: If you destroy this wagon, you only get some steel back! If you are "
@@ -447,9 +679,13 @@ msgstr "Accès interdit au poste de pilotage."
msgid "You can't get on this wagon."
msgstr "Montée impossible dans ce wagon."
+#: advtrains/wagons.lua
+msgid "You don't have the train_operator privilege."
+msgstr "Vous ne possédez pas le privilège \"train_operator\"."
+
#: advtrains_interlocking/routesetting.lua
msgid "Route state changed."
-msgstr ""
+msgstr "Changement d'état de l'itinéraire."
#: advtrains_interlocking/tsr_rail.lua
msgid "Point Speed Restriction Track"
@@ -471,6 +707,10 @@ msgstr "Vous n'êtes pas autorisé à configurer cette voie sans le privilège @
msgid "You are not allowed to configure this track."
msgstr "Vous n'êtes pas autorisé à configurer cette voie."
+#: advtrains_line_automation/scheduler.lua
+msgid "No callback to handle schedule"
+msgstr "Absence de fonction de gestion de planning"
+
#: advtrains_line_automation/stoprail.lua
msgid "Dep. Speed"
msgstr "Vitesse de départ"
@@ -487,6 +727,14 @@ msgstr "Coté d'ouvertures des portes"
msgid "Kick out passengers"
msgstr "Éjecter les passagers"
+#: advtrains_line_automation/stoprail.lua
+msgid "Left,Right,Closed;"
+msgstr "Gauche,Droit,Fermé;"
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Next Stop:\n"
+msgstr "Prochain arrêt :\n"
+
#: advtrains_line_automation/stoprail.lua
msgid "Reverse train"
msgstr "Inversion du sens de marche"
@@ -521,6 +769,14 @@ msgstr ""
msgid "Track"
msgstr "Voie"
+#: advtrains_line_automation/stoprail.lua
+msgid "Trains stopping here (ARS rules);"
+msgstr "Trains marquant l'arrêt (règles ARS) ;"
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Unknown Station"
+msgstr "Gare inconnue"
+
#: advtrains_luaautomation/active_common.lua
msgid "Clear Local Environment"
msgstr "Effacer l'environnement LuaATC"
diff --git a/advtrains/po/update-translations.sh b/advtrains/po/update-translations.sh
index 1b919d9..4c22c85 100755
--- a/advtrains/po/update-translations.sh
+++ b/advtrains/po/update-translations.sh
@@ -7,7 +7,6 @@ BTDIR="$ATDIR/../basic_trains"
POTFILE="$PODIR/advtrains.pot"
xgettext \
- -v -v -v \
-D "$ATDIR" \
-D "$BTDIR" \
-d advtrains \
diff --git a/advtrains/po/zh_CN.po b/advtrains/po/zh_CN.po
index 1dbf08f..4cfd9dd 100644
--- a/advtrains/po/zh_CN.po
+++ b/advtrains/po/zh_CN.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2024-12-08 15:21+0100\n"
+"POT-Creation-Date: 2024-12-09 18:15+0100\n"
"PO-Revision-Date: 2023-10-09 11:24+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: Chinese (Simplified)\n"
@@ -53,7 +53,8 @@ msgstr "命令 (激活时)"
msgid "Digiline channel"
msgstr "Digiline 频道"
-#: advtrains/atc.lua advtrains_line_automation/stoprail.lua
+#: advtrains/atc.lua advtrains/wagons.lua
+#: advtrains_line_automation/stoprail.lua
#: advtrains_luaautomation/active_common.lua
msgid "Save"
msgstr "保存"
@@ -151,6 +152,128 @@ msgstr "驾驶室"
msgid "Wheel"
msgstr "车轮"
+#: advtrains/init.lua
+msgid " does not exist or is invalid"
+msgstr ""
+
+#: advtrains/init.lua
+msgid " is at "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "(log"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains Status: no_action"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Saving failed: "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleporting to train "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"The advtrains globalstep has been disabled. Trains are not moving, and no "
+"data is saved! Run '/at_disable_step no' to enable again!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Train"
+msgstr ""
+
+#: advtrains/init.lua
+#, fuzzy
+msgid "Train "
+msgstr "已复制列车。"
+
+#: advtrains/init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"had no wagons left because of some bug. It is being deleted. Wave it goodbye!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "slowdown"
+msgstr ""
+
#: advtrains/misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "较高的@1站台 (45°)"
@@ -320,10 +443,44 @@ msgid ""
"Punch a wagon to view and edit the Wagon Properties"
msgstr ""
+#: advtrains/wagons.lua
+msgid " units"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid " wagon:destroy(): data is not set!"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "(Doors closed)"
msgstr "(车门已关闭)"
+#: advtrains/wagons.lua
+msgid ", using placeholder"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Current FC: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Doors are closed! (Try holding sneak key!)"
msgstr ""
@@ -334,6 +491,10 @@ msgid ""
"off."
msgstr "车门已关闭,请使用潜行+右键单击下车。"
+#: advtrains/wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Get off"
msgstr "下车"
@@ -346,10 +507,39 @@ msgstr "强制下车"
msgid "Line"
msgstr "火车线路"
+#: advtrains/wagons.lua
+msgid "Liquid: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Liquid: empty"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Next FC:"
+msgstr ""
+
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "Not allowed to do this."
+msgstr "您不能调整这段轨道。"
+
#: advtrains/wagons.lua
msgid "Onboard Computer"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Prev FC"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Remote Routesetting"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Routingcode"
msgstr "路由码"
@@ -374,6 +564,11 @@ msgstr "车厢内部显示"
msgid "Text displayed outside on train"
msgstr "车厢外部显示"
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "轨道太短。"
+
#: advtrains/wagons.lua
msgid "The wagon's inventory is not empty."
msgstr ""
@@ -399,6 +594,26 @@ msgstr "这是 @1 的车厢,您不能摧毁它。"
msgid "Train ID"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Unable to load wagon type"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized init="
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized, removing"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
@@ -407,6 +622,10 @@ msgstr ""
msgid "Wagon properties"
msgstr "车厢属性"
+#: advtrains/wagons.lua
+msgid "Wagon road number:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid ""
"Warning: If you destroy this wagon, you only get some steel back! If you are "
@@ -423,6 +642,11 @@ msgstr ""
msgid "You can't get on this wagon."
msgstr ""
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "您没有“@1”权限。"
+
#: advtrains_interlocking/routesetting.lua
msgid "Route state changed."
msgstr ""
@@ -447,6 +671,10 @@ msgstr "您没有“@1”权限,不能调整这段轨道。"
msgid "You are not allowed to configure this track."
msgstr "您不能调整这段轨道。"
+#: advtrains_line_automation/scheduler.lua
+msgid "No callback to handle schedule"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Dep. Speed"
msgstr "出发速度"
@@ -463,6 +691,14 @@ msgstr ""
msgid "Kick out passengers"
msgstr "踢出乘客"
+#: advtrains_line_automation/stoprail.lua
+msgid "Left,Right,Closed;"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Next Stop:\n"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Reverse train"
msgstr "改变行车方向"
@@ -495,6 +731,14 @@ msgstr ""
msgid "Track"
msgstr "轨道"
+#: advtrains_line_automation/stoprail.lua
+msgid "Trains stopping here (ARS rules);"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Unknown Station"
+msgstr ""
+
#: advtrains_luaautomation/active_common.lua
msgid "Clear Local Environment"
msgstr ""
diff --git a/advtrains/po/zh_TW.po b/advtrains/po/zh_TW.po
index 56b6531..3eaf1b5 100644
--- a/advtrains/po/zh_TW.po
+++ b/advtrains/po/zh_TW.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2024-12-08 15:21+0100\n"
+"POT-Creation-Date: 2024-12-09 18:15+0100\n"
"PO-Revision-Date: 2023-10-09 11:31+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: Chinese (Traditional)\n"
@@ -53,7 +53,8 @@ msgstr "命令 (啟用時)"
msgid "Digiline channel"
msgstr "Digiline 頻道"
-#: advtrains/atc.lua advtrains_line_automation/stoprail.lua
+#: advtrains/atc.lua advtrains/wagons.lua
+#: advtrains_line_automation/stoprail.lua
#: advtrains_luaautomation/active_common.lua
msgid "Save"
msgstr "儲存"
@@ -151,6 +152,128 @@ msgstr "駕駛室"
msgid "Wheel"
msgstr "車輪"
+#: advtrains/init.lua
+msgid " does not exist or is invalid"
+msgstr ""
+
+#: advtrains/init.lua
+msgid " is at "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "(log"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains Status: no_action"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Saving failed: "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleporting to train "
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"The advtrains globalstep has been disabled. Trains are not moving, and no "
+"data is saved! Run '/at_disable_step no' to enable again!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "Train"
+msgstr ""
+
+#: advtrains/init.lua
+#, fuzzy
+msgid "Train "
+msgstr "已複製火車。"
+
+#: advtrains/init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: advtrains/init.lua
+msgid ""
+"had no wagons left because of some bug. It is being deleted. Wave it goodbye!"
+msgstr ""
+
+#: advtrains/init.lua
+msgid "slowdown"
+msgstr ""
+
#: advtrains/misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "較高的@1月臺 (45°)"
@@ -320,10 +443,44 @@ msgid ""
"Punch a wagon to view and edit the Wagon Properties"
msgstr ""
+#: advtrains/wagons.lua
+msgid " units"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid " wagon:destroy(): data is not set!"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "(Doors closed)"
msgstr "(車門已關閉)"
+#: advtrains/wagons.lua
+msgid ", using placeholder"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Current FC: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Doors are closed! (Try holding sneak key!)"
msgstr ""
@@ -334,6 +491,10 @@ msgid ""
"off."
msgstr "車門已關閉,請使用潛行+右鍵單擊下車。"
+#: advtrains/wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Get off"
msgstr "下車"
@@ -346,10 +507,39 @@ msgstr "強制下車"
msgid "Line"
msgstr "火車線路"
+#: advtrains/wagons.lua
+msgid "Liquid: "
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Liquid: empty"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Next FC:"
+msgstr ""
+
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "Not allowed to do this."
+msgstr "您不能調整這段軌道。"
+
#: advtrains/wagons.lua
msgid "Onboard Computer"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Prev FC"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Remote Routesetting"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Routingcode"
msgstr "路由碼"
@@ -374,6 +564,11 @@ msgstr "車廂內部顯示"
msgid "Text displayed outside on train"
msgstr "車廂外部顯示"
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "軌道太短。"
+
#: advtrains/wagons.lua
msgid "The wagon's inventory is not empty."
msgstr ""
@@ -399,6 +594,26 @@ msgstr "這是 @1 的車廂,您不能摧毀它。"
msgid "Train ID"
msgstr ""
+#: advtrains/wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Unable to load wagon type"
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized init="
+msgstr ""
+
+#: advtrains/wagons.lua
+msgid "Uninitialized, removing"
+msgstr ""
+
#: advtrains/wagons.lua
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
@@ -407,6 +622,10 @@ msgstr ""
msgid "Wagon properties"
msgstr "車廂屬性"
+#: advtrains/wagons.lua
+msgid "Wagon road number:"
+msgstr ""
+
#: advtrains/wagons.lua
msgid ""
"Warning: If you destroy this wagon, you only get some steel back! If you are "
@@ -423,6 +642,11 @@ msgstr ""
msgid "You can't get on this wagon."
msgstr ""
+#: advtrains/wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "您沒有「@1」許可權。"
+
#: advtrains_interlocking/routesetting.lua
msgid "Route state changed."
msgstr ""
@@ -447,6 +671,10 @@ msgstr "您沒有「@1」許可權,不能調整這段軌道。"
msgid "You are not allowed to configure this track."
msgstr "您不能調整這段軌道。"
+#: advtrains_line_automation/scheduler.lua
+msgid "No callback to handle schedule"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Dep. Speed"
msgstr "出發速度"
@@ -463,6 +691,14 @@ msgstr ""
msgid "Kick out passengers"
msgstr "踢出乘客"
+#: advtrains_line_automation/stoprail.lua
+msgid "Left,Right,Closed;"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Next Stop:\n"
+msgstr ""
+
#: advtrains_line_automation/stoprail.lua
msgid "Reverse train"
msgstr "改變行車方向"
@@ -495,6 +731,14 @@ msgstr ""
msgid "Track"
msgstr "軌道"
+#: advtrains_line_automation/stoprail.lua
+msgid "Trains stopping here (ARS rules);"
+msgstr ""
+
+#: advtrains_line_automation/stoprail.lua
+msgid "Unknown Station"
+msgstr ""
+
#: advtrains_luaautomation/active_common.lua
msgid "Clear Local Environment"
msgstr ""
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index cf15871..13374a0 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -7,6 +7,9 @@
-- An entity is ONLY spawned by update_trainpart_properties when it finds it useful.
-- Only data that are only important to the entity itself are stored in the luaentity
+-- Translation
+S = attrans
+
-- TP delay when getting off wagon
local GETOFF_TP_DELAY = 0.5
@@ -154,12 +157,12 @@ function wagon:ensure_init()
end
end
if not self.noninitticks then
- atwarn("wagon",self.id,"uninitialized init=",self.initialized)
+ atwarn("Wagon",self.id,S("Uninitialized init="),self.initialized)
self.noninitticks=0
end
self.noninitticks=self.noninitticks+1
if self.noninitticks>20 then
- atwarn("wagon",self.id,"uninitialized, removing")
+ atwarn("Wagon",self.id,S("Uninitialized, removing"))
self:destroy()
else
self.object:set_velocity({x=0,y=0,z=0})
@@ -182,7 +185,7 @@ function wagon:on_punch(puncher, time_from_last_punch, tool_capabilities, direct
return
end
if data.owner and puncher:get_player_name()~=data.owner and (not minetest.check_player_privs(puncher, {train_admin = true })) then
- minetest.chat_send_player(puncher:get_player_name(), attrans("This wagon is owned by @1, you can't destroy it.", data.owner));
+ minetest.chat_send_player(puncher:get_player_name(), S("This wagon is owned by @1, you can't destroy it.", data.owner));
return
end
@@ -201,25 +204,25 @@ function wagon:on_punch(puncher, time_from_last_punch, tool_capabilities, direct
if self.has_inventory then
local inv=minetest.get_inventory({type="detached", name="advtrains_wgn_"..self.id})
if not inv then -- inventory is not initialized when wagon was never loaded - should never happen
- atwarn("Destroying wagon with inventory, but inventory is not found? Shouldn't happen!")
+ atwarn(S("Destroying wagon with inventory, but inventory is not found? Shouldn't happen!"))
return
end
for listname, _ in pairs(inv:get_lists()) do
if not inv:is_empty(listname) then
- minetest.chat_send_player(puncher:get_player_name(), attrans("The wagon's inventory is not empty."));
+ minetest.chat_send_player(puncher:get_player_name(), S("The wagon's inventory is not empty."));
return
end
end
end
if #(self:train().trainparts)>1 then
- minetest.chat_send_player(puncher:get_player_name(), attrans("Wagon needs to be decoupled from other wagons in order to destroy it."));
+ minetest.chat_send_player(puncher:get_player_name(), S("Wagon needs to be decoupled from other wagons in order to destroy it."));
return
end
local pc=puncher:get_player_control()
if not pc.sneak then
- minetest.chat_send_player(puncher:get_player_name(), attrans("Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon."))
+ minetest.chat_send_player(puncher:get_player_name(), S("Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon."))
return
end
@@ -240,7 +243,7 @@ function wagon:destroy()
if self.id then
local data = advtrains.wagons[self.id]
if not data then
- atwarn("wagon:destroy(): data is not set!")
+ atwarn(S(" wagon:destroy(): data is not set!"))
return
end
@@ -367,15 +370,15 @@ function wagon:on_step(dtime)
--show off-track information in outside text instead of notifying the whole server about this
if train.off_track then
- outside = outside .."\n!!! Train off track !!!"
+ outside = outside .."\n"..S("!!! Train off track !!!")
end
-- liquid container: display liquid contents in infotext
if self.techage_liquid_capacity then
if data.techage_liquid and data.techage_liquid.name then
- outside = outside .."\nLiquid: "..data.techage_liquid.name..", "..data.techage_liquid.amount.." units"
+ outside = outside .."\n"..S("Liquid: ")..data.techage_liquid.name..", "..data.techage_liquid.amount..S(" units")
else
- outside = outside .."\nLiquid: empty"
+ outside = outside .."\n"..S("Liquid: empty")
end
end
@@ -661,21 +664,21 @@ function wagon:on_rightclick(clicker)
end
end
if self.has_inventory and self.get_inventory_formspec and advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist) then
- poss[#poss+1]={name=attrans("Show Inventory"), key="inv"}
+ poss[#poss+1]={name=S("Show Inventory"), key="inv"}
end
if self.seat_groups[sgr].driving_ctrl_access and advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist) then
- poss[#poss+1]={name=attrans("Onboard Computer"), key="bordcom"}
+ poss[#poss+1]={name=S("Onboard Computer"), key="bordcom"}
end
if data.owner==pname then
- poss[#poss+1]={name=attrans("Wagon properties"), key="prop"}
+ poss[#poss+1]={name=S("Wagon properties"), key="prop"}
end
if not self.seat_groups[sgr].require_doors_open or self:train().door_open~=0 then
- poss[#poss+1]={name=attrans("Get off"), key="off"}
+ poss[#poss+1]={name=S("Get off"), key="off"}
else
if clicker:get_player_control().sneak then
- poss[#poss+1]={name=attrans("Get off (forced)"), key="off"}
+ poss[#poss+1]={name=S("Get off (forced)"), key="off"}
else
- poss[#poss+1]={name=attrans("(Doors closed)"), key="dcwarn"}
+ poss[#poss+1]={name=S("(Doors closed)"), key="dcwarn"}
end
end
if #poss==0 then
@@ -685,7 +688,7 @@ function wagon:on_rightclick(clicker)
else
local form = "size[5,"..1+(#poss).."]"
for pos,ent in ipairs(poss) do
- form = form .. "button_exit[0.5,"..(pos-0.5)..";4,1;"..ent.key..";"..ent.name.."]"
+ form = form.. "button_exit[0.5,"..(pos-0.5)..";4,1;"..ent.key..";"..ent.name.."]"
end
minetest.show_formspec(pname, "advtrains_seating_"..self.id, form)
end
@@ -704,7 +707,7 @@ function wagon:on_rightclick(clicker)
end
local doors_open = self:train().door_open~=0 or clicker:get_player_control().sneak
- local allow, rsn=false, attrans("This wagon has no seats.")
+ local allow, rsn=false, S("This wagon has no seats.")
for _,sgr in ipairs(self.assign_to_seat_group) do
allow, rsn = self:check_seat_group_access(pname, sgr)
if allow then
@@ -715,16 +718,16 @@ function wagon:on_rightclick(clicker)
self:get_on(clicker, seatid)
return
else
- rsn=attrans("This wagon is full.")
+ rsn=S("This wagon is full.")
end
else
- rsn=attrans("Doors are closed! (Try holding sneak key!)")
+ rsn=S("Doors are closed! (Try holding sneak key!)")
end
end
end
end
end
- minetest.chat_send_player(pname, rsn or attrans("You can't get on this wagon."))
+ minetest.chat_send_player(pname, rsn or S("You can't get on this wagon."))
else
self:show_get_on_form(pname)
end
@@ -850,7 +853,7 @@ function wagon:show_get_on_form(pname)
end
return
end
- local form, comma="size[5,8]label[0.5,0.5;"..attrans("Select seat:").."]textlist[0.5,1;4,6;seat;", ""
+ local form, comma="size[5,8]label[0.5,0.5;"..S("Select seat:").."]textlist[0.5,1;4,6;seat;", ""
for seatno, seattbl in ipairs(self.seats) do
local addtext, colorcode="", ""
if data.seatp and data.seatp[seatno] then
@@ -862,7 +865,7 @@ function wagon:show_get_on_form(pname)
end
form=form..";0,false]"
if self.has_inventory and self.get_inventory_formspec then
- form=form.."button_exit[1,7;3,1;inv;"..attrans("Show Inventory").."]"
+ form=form.."button_exit[1,7;3,1;inv;"..S("Show Inventory").."]"
end
minetest.show_formspec(pname, "advtrains_geton_"..self.id, form)
end
@@ -874,26 +877,26 @@ function wagon:show_wagon_properties(pname)
]]
local data = advtrains.wagons[self.id]
local form="size[5,5]"
- form=form.."label[0.2,0;"..attrans("This Wagon ID")..": "..self.id.."]"
- form = form .. "field[0.5,1;4.5,1;whitelist;Allow these players to access your wagon:;"..minetest.formspec_escape(data.whitelist or "").."]"
- form = form .. "field[0.5,2;4.5,1;roadnumber;Wagon road number:;"..minetest.formspec_escape(data.roadnumber or "").."]"
+ form=form.."label[0.2,0;"..S("This Wagon ID")..": "..self.id.."]"
+ form = form.. "field[0.5,1;4.5,1;whitelist;"..S("Allow these players to access your wagon:")..";"..minetest.formspec_escape(data.whitelist or "").."]"
+ form = form.. "field[0.5,2;4.5,1;roadnumber;"..S("Wagon road number:")..";"..minetest.formspec_escape(data.roadnumber or "").."]"
local fc = ""
if data.fc then
fc = table.concat(data.fc, "!")
end
- form = form .. "field[0.5,3;4.5,1;fc;Freight Code:;"..fc.."]"
+ form = form.. "field[0.5,3;4.5,1;fc;"..S("Freight Code:")..";"..fc.."]"
if data.fc then
if not data.fcind then data.fcind = 1 end
if data.fcind > 1 then
- form=form.."button[0.5,3.5;1,1;fcp;prev FC]"
+ form=form.."button[0.5,3.5;1,1;fcp;"..S("Prev FC").."]"
end
- form=form.."label[1.5,3.5;Current FC:]"
+ form=form.."label[1.5,3.5;"..S("Current FC: ").."]"
local cur = data.fc[data.fcind] or ""
form=form.."label[1.5,3.75;"..minetest.formspec_escape(cur).."]"
- form=form.."button[3.5,3.5;1,1;fcn;next FC]"
+ form=form.."button[3.5,3.5;1,1;fcn;"..S("Next FC:").."]"
end
- form=form.."button_exit[0.5,4.5;4,1;save;"..attrans("Save wagon properties").."]"
+ form=form.."button_exit[0.5,4.5;4,1;save;"..S("Save wagon properties").."]"
minetest.show_formspec(pname, "advtrains_prop_"..self.id, form)
end
@@ -978,30 +981,30 @@ function wagon:show_bordcom(pname)
local linhei
local form = "size[11,9]label[0.5,0;AdvTrains Boardcom v0.1]"
- form=form.."textarea[7.5,0.05;10,1;;"..attrans("Train ID")..": "..(minetest.formspec_escape(train.id or ""))..";]"
- form=form.."textarea[0.5,1.5;7,1;text_outside;"..attrans("Text displayed outside on train")..";"..(minetest.formspec_escape(train.text_outside or "")).."]"
- form=form.."textarea[0.5,3;7,1;text_inside;"..attrans("Text displayed inside train")..";"..(minetest.formspec_escape(train.text_inside or "")).."]"
- form=form.."field[7.5,1.75;3,1;line;"..attrans("Line")..";"..(minetest.formspec_escape(train.line or "")).."]"
- form=form.."field[7.5,3.25;3,1;routingcode;"..attrans("Routingcode")..";"..(minetest.formspec_escape(train.routingcode or "")).."]"
+ form=form.."textarea[7.5,0.05;10,1;;"..S("Train ID")..": "..(minetest.formspec_escape(train.id or ""))..";]"
+ form=form.."textarea[0.5,1.5;7,1;text_outside;"..S("Text displayed outside on train")..";"..(minetest.formspec_escape(train.text_outside or "")).."]"
+ form=form.."textarea[0.5,3;7,1;text_inside;"..S("Text displayed inside train")..";"..(minetest.formspec_escape(train.text_inside or "")).."]"
+ form=form.."field[7.5,1.75;3,1;line;"..S("Line")..";"..(minetest.formspec_escape(train.line or "")).."]"
+ form=form.."field[7.5,3.25;3,1;routingcode;"..S("Routingcode")..";"..(minetest.formspec_escape(train.routingcode or "")).."]"
--row 5 : train overview and autocoupling
if train.velocity==0 then
- form=form.."label[0.5,4;Train overview /coupling control:]"
+ form=form.."label[0.5,4;"..S("Train overview /coupling control:").."])"
linhei=5
local pre_own, pre_wl, owns_any = nil, nil, minetest.check_player_privs(pname, "train_admin")
for i, tpid in ipairs(train.trainparts) do
local ent = advtrains.wagons[tpid]
if ent then
local roadnumber = ent.roadnumber or ""
- form = form .. string.format("button[%d,%d;%d,%d;%s;%s]", i, linhei, 1, 0.2, "wgprp"..i, roadnumber)
+ form = form.. string.format("button[%d,%d;%d,%d;%s;%s]", i, linhei, 1, 0.2, "wgprp"..i, roadnumber)
local ename = ent.type
- form = form .. "item_image["..i..","..(linhei+0.5)..";1,1;"..ename.."]"
+ form = form.. "item_image["..i..","..(linhei+0.5)..";1,1;"..ename.."]"
if i~=1 then
if checklock(pname, ent.owner, pre_own, ent.whitelist, pre_wl) then
- form = form .. "image_button["..(i-0.5)..","..(linhei+1.5)..";1,1;advtrains_discouple.png;dcpl_"..i..";]"
+ form = form.. "image_button["..(i-0.5)..","..(linhei+1.5)..";1,1;advtrains_discouple.png;dcpl_"..i..";]"
end
end
if i == data.pos_in_trainparts then
- form = form .. "box["..(i-0.1)..","..(linhei+0.4)..";1,1;green]"
+ form = form.. "box["..(i-0.1)..","..(linhei+0.4)..";1,1;green]"
end
pre_own = ent.owner
pre_wl = ent.whitelist
@@ -1010,24 +1013,24 @@ function wagon:show_bordcom(pname)
end
if train.movedir==1 then
- form = form .. "label["..(#train.trainparts+1)..","..(linhei)..";-->]"
+ form = form.. "label["..(#train.trainparts+1)..","..(linhei)..";-->]"
else
- form = form .. "label[0.5,"..(linhei)..";<--]"
+ form = form.. "label[0.5,"..(linhei)..";<--]"
end
--check cpl_eid_front and _back of train
local couple_front = checkcouple(train.cpl_front)
local couple_back = checkcouple(train.cpl_back)
if couple_front then
- form = form .. "image_button[0.5,"..(linhei+1)..";1,1;advtrains_couple.png;cpl_f;]"
+ form = form.. "image_button[0.5,"..(linhei+1)..";1,1;advtrains_couple.png;cpl_f;]"
end
if couple_back then
- form = form .. "image_button["..(#train.trainparts+0.5)..","..(linhei+1)..";1,1;advtrains_couple.png;cpl_b;]"
+ form = form.. "image_button["..(#train.trainparts+0.5)..","..(linhei+1)..";1,1;advtrains_couple.png;cpl_b;]"
end
else
- form=form.."label[0.5,4.5;Train overview / coupling control is only shown when the train stands.]"
+ form=form.."label[0.5,4.5;"..S("Train overview / coupling control is only shown when the train stands.").."]"
end
- form = form .. "button[0.5,8;3,1;save;Save]"
+ form = form.. "button[0.5,8;3,1;save;"..S("Save").."]"
-- Interlocking functionality: If the interlocking module is loaded, you can set the signal aspect
-- from inside the train
@@ -1037,14 +1040,14 @@ function wagon:show_bordcom(pname)
local oci = train.lzb.checkpoints[i]
if oci.udata and oci.udata.signal_pos then
if advtrains.interlocking.db.get_sigd_for_signal(oci.udata.signal_pos) then
- form = form .. "button[4.5,8;5,1;ilrs;Remote Routesetting]"
+ form = form.. "button[4.5,8;5,1;ilrs;"..S("Remote Routesetting").."]"
break
end
end
i=i+1
end
if train.ars_disable then
- form = form .. "button[4.5,7;5,1;ilarsenable;Clear 'Disable ARS' flag]"
+ form = form.. "button[4.5,7;5,1;ilarsenable;"..S("Clear 'Disable ARS' flag").."]"
end
end
@@ -1261,7 +1264,7 @@ function wagon:seating_from_key_helper(pname, fields, no)
self:show_bordcom(pname)
end
if fields.dcwarn then
- minetest.chat_send_player(pname, attrans("Doors are closed. Use Sneak+rightclick to ignore the closed doors and get off."))
+ minetest.chat_send_player(pname, S("Doors are closed. Use Sneak+rightclick to ignore the closed doors and get off."))
end
if fields.off then
self:get_off(no)
@@ -1270,7 +1273,7 @@ end
function wagon:check_seat_group_access(pname, sgr)
local data = advtrains.wagons[self.id]
if self.seat_groups[sgr].driving_ctrl_access and not (advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist)) then
- return false, attrans("You are not allowed to access the driver stand.")
+ return false, S("You are not allowed to access the driver stand.")
end
if self.seat_groups[sgr].driving_ctrl_access then
advtrains.log("Drive", pname, self.object:get_pos(), self:train().text_outside)
@@ -1290,7 +1293,7 @@ end
function advtrains.safe_decouple_wagon(w_id, pname, try_run)
if not minetest.check_player_privs(pname, "train_operator") then
- minetest.chat_send_player(pname, "Missing train_operator privilege")
+ minetest.chat_send_player(pname, S("Missing train_operator privilege"))
return false
end
local data = advtrains.wagons[w_id]
@@ -1308,7 +1311,7 @@ function advtrains.safe_decouple_wagon(w_id, pname, try_run)
end
if not checklock(pname, data.owner, owdata.owner, data.whitelist, owdata.whitelist) then
- minetest.chat_send_player(pname, "Not allowed to do this.")
+ minetest.chat_send_player(pname, S("Not allowed to do this."))
return false
end
@@ -1333,7 +1336,7 @@ function advtrains.get_wagon_prototype(data)
end
local rt, proto = advtrains.resolve_wagon_alias(wt)
if not rt then
- atwarn("Unable to load wagon type",wt,", using placeholder")
+ atwarn(S("Unable to load wagon type"),wt,S(", using placeholder"))
rt = "advtrains:wagon_placeholder"
proto = advtrains.wagon_prototypes[rt]
end
@@ -1370,7 +1373,7 @@ function advtrains.standard_inventory_formspec(self, pname, invname)
local r = "size[8,11]"..
"list["..invname..";box;0,0;8,3;]"
if data.owner==pname then
- r = r .. "button_exit[0,9;4,1;prop;"..attrans("Wagon properties").."]"
+ r = r .. "button_exit[0,9;4,1;prop;"..S("Wagon properties").."]"
end
r = r .. "list[current_player;main;0,5;8,4;]"..
"listring[]"
@@ -1427,7 +1430,7 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati
return itemstack
end
if not minetest.check_player_privs(placer, {train_operator = true }) then
- minetest.chat_send_player(pname, "You don't have the train_operator privilege.")
+ minetest.chat_send_player(pname, S("You don't have the train_operator privilege."))
return itemstack
end
if not minetest.check_player_privs(placer, {train_admin = true }) and minetest.is_protected(pos, placer:get_player_name()) then
@@ -1439,7 +1442,7 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati
local prevpos = advtrains.get_adjacent_rail(pos, tconns, plconnid, prototype.drives_on)
if not prevpos then
- minetest.chat_send_player(pname, "The track you are trying to place the wagon on is not long enough!")
+ minetest.chat_send_player(pname, S("The track you are trying to place the wagon on is not long enough!"))
return
end
diff --git a/advtrains_line_automation/scheduler.lua b/advtrains_line_automation/scheduler.lua
index 6025b02..5cba0a0 100644
--- a/advtrains_line_automation/scheduler.lua
+++ b/advtrains_line_automation/scheduler.lua
@@ -59,7 +59,7 @@ function sched.run()
-- run it
callbacks[elem.e](elem.d)
else
- atwarn("[lines][scheduler] No callback to handle schedule",elem)
+ atwarn("[lines][scheduler] "..S("No callback to handle schedule"),elem)
end
cnt=cnt+1
ucn = units_cnt[elem.u]
diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua
index 6c74a3d..4616e07 100644
--- a/advtrains_line_automation/stoprail.lua
+++ b/advtrains_line_automation/stoprail.lua
@@ -1,6 +1,8 @@
-- stoprail.lua
-- adds "stop rail". Recognized by lzb. (part of behavior is implemented there)
+-- Translation
+S = attrans
local function to_int(n)
--- Disallow floating-point numbers
@@ -28,7 +30,7 @@ local function show_stoprailform(pos, player)
local pe = advtrains.encode_pos(pos)
local pname = player:get_player_name()
if minetest.is_protected(pos, pname) then
- minetest.chat_send_player(pname, attrans("You are not allowed to configure this track."))
+ minetest.chat_send_player(pname, S("You are not allowed to configure this track."))
return
end
@@ -51,18 +53,18 @@ local function show_stoprailform(pos, player)
local form = "size[8,7]"
form = form.."style[stn,ars;font=mono]"
- form = form.."field[0.8,0.8;2,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]"
- form = form.."field[2.8,0.8;5,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]"
- form = form.."field[0.80,2.0;1.75,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]"
- form = form.."field[2.55,2.0;1.75,1;speed;"..attrans("Dep. Speed")..";"..minetest.formspec_escape(stdata.speed).."]"
- form = form.."field[4.30,2.0;1.75,1;track;"..attrans("Track")..";"..minetest.formspec_escape(stdata.track).."]"
- form = form.."field[6.05,2.0;1.75,1;wait;"..attrans("Stop Time")..";"..stdata.wait.."]"
- form = form.."label[0.5,2.6;"..attrans("Door Side").."]"
- form = form.."dropdown[0.51,3.0;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]"
- form = form.."checkbox[3.00,2.7;reverse;"..attrans("Reverse train")..";"..(stdata.reverse and "true" or "false").."]"
- form = form.."checkbox[3.00,3.1;kick;"..attrans("Kick out passengers")..";"..(stdata.kick and "true" or "false").."]"
- form = form.."textarea[0.8,4.2;7,2;ars;Trains stopping here (ARS rules);"..advtrains.interlocking.ars_to_text(stdata.ars).."]"
- form = form.."button[0.5,6;7,1;save;"..attrans("Save").."]"
+ form = form.."field[0.8,0.8;2,1;stn;"..S("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]"
+ form = form.."field[2.8,0.8;5,1;stnname;"..S("Station Name")..";"..minetest.formspec_escape(stnname).."]"
+ form = form.."field[0.80,2.0;1.75,1;ddelay;"..S("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]"
+ form = form.."field[2.55,2.0;1.75,1;speed;"..S("Dep. Speed")..";"..minetest.formspec_escape(stdata.speed).."]"
+ form = form.."field[4.30,2.0;1.75,1;track;"..S("Track")..";"..minetest.formspec_escape(stdata.track).."]"
+ form = form.."field[6.05,2.0;1.75,1;wait;"..S("Stop Time")..";"..stdata.wait.."]"
+ form = form.."label[0.5,2.6;"..S("Door Side").."]"
+ form = form.."dropdown[0.51,3.0;2;doors;"..S("Left,Right,Closed;")..door_dropdown[stdata.doors].."]"
+ form = form.."checkbox[3.00,2.7;reverse;"..S("Reverse train")..";"..(stdata.reverse and "true" or "false").."]"
+ form = form.."checkbox[3.00,3.1;kick;"..S("Kick out passengers")..";"..(stdata.kick and "true" or "false").."]"
+ form = form.."textarea[0.8,4.2;7,2;ars;"..S("Trains stopping here (ARS rules);")..advtrains.interlocking.ars_to_text(stdata.ars).."]"
+ form = form.."button[0.5,6;7,1;save;"..S("Save").."]"
minetest.show_formspec(pname, "at_lines_stop_"..pe, form)
end
@@ -73,7 +75,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local pos = advtrains.decode_pos(pe)
if pos then
if minetest.is_protected(pos, pname) then
- minetest.chat_send_player(pname, attrans("You are not allowed to configure this track."))
+ minetest.chat_send_player(pname, S("You are not allowed to configure this track."))
return
end
@@ -94,7 +96,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
stdata.stn = fields.stn
else
- minetest.chat_send_player(pname, attrans("Station code \"@1\" already exists and is owned by @2.", fields.stn, stn.owner))
+ minetest.chat_send_player(pname, S("Station code \"@1\" already exists and is owned by @2.", fields.stn, stn.owner))
show_stoprailform(pos,player)
return
end
@@ -108,7 +110,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
stn.name = fields.stnname
else
- minetest.chat_send_player(pname, attrans("This station is owned by @1. You are not allowed to edit its name.", stn.owner))
+ minetest.chat_send_player(pname, S("This station is owned by @1. You are not allowed to edit its name.", stn.owner))
end
end
@@ -179,8 +181,8 @@ local adefunc = function(def, preset, suffix, rotation)
if stdata.ars and (stdata.ars.default or advtrains.interlocking.ars_check_rule_match(stdata.ars, train) ) then
advtrains.lzb_add_checkpoint(train, index, 2, nil)
local stn = advtrains.lines.stations[stdata.stn]
- local stnname = stn and stn.name or "Unknown Station"
- train.text_inside = "Next Stop:\n"..stnname
+ local stnname = stn and stn.name or S("Unknown Station")
+ train.text_inside = S("Next Stop:\n")..stnname
advtrains.interlocking.ars_set_disable(train, true)
end
end
@@ -196,7 +198,7 @@ local adefunc = function(def, preset, suffix, rotation)
if stdata.ars and (stdata.ars.default or advtrains.interlocking.ars_check_rule_match(stdata.ars, train) ) then
local stn = advtrains.lines.stations[stdata.stn]
- local stnname = stn and stn.name or "Unknown Station"
+ local stnname = stn and stn.name or S("Unknown Station")
-- Send ATC command and set text
advtrains.atc.train_set_command(train, "B0 W O"..stdata.doors..(stdata.kick and "K" or "").." D"..stdata.wait.." OC "..(stdata.reverse and "R" or "").."D"..(stdata.ddelay or 1) .. " A1 S" ..(stdata.speed or "M"), true)
@@ -218,7 +220,7 @@ if minetest.get_modpath("advtrains_train_track") ~= nil then
models_prefix="advtrains_dtrack",
models_suffix=".b3d",
shared_texture="advtrains_dtrack_shared_stop.png",
- description=attrans("Station/Stop Track"),
+ description=S("Station/Stop Track"),
formats={},
get_additional_definiton = adefunc,
}, advtrains.trackpresets.t_30deg_straightonly)
--
2.30.2