aboutsummaryrefslogtreecommitdiff
path: root/advtrains
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains')
-rw-r--r--advtrains/atc.lua44
-rw-r--r--advtrains/copytool.lua25
-rw-r--r--advtrains/couple.lua15
-rw-r--r--advtrains/craft_items.lua11
-rw-r--r--advtrains/formspec.lua5
-rw-r--r--advtrains/init.lua73
-rw-r--r--advtrains/misc_nodes.lua11
-rw-r--r--advtrains/po/advtrains.pot579
-rw-r--r--advtrains/po/de.po1149
-rw-r--r--advtrains/po/fr.po1234
-rwxr-xr-xadvtrains/po/update-translations.sh18
-rw-r--r--advtrains/po/zh_CN.po1029
-rw-r--r--advtrains/po/zh_TW.po1029
-rw-r--r--advtrains/protection.lua16
-rw-r--r--advtrains/signals.lua23
-rw-r--r--advtrains/track_reg_helper.lua27
-rw-r--r--advtrains/trackplacer.lua13
-rw-r--r--advtrains/tracks.lua10
-rw-r--r--advtrains/trainhud.lua5
-rw-r--r--advtrains/trainlogic.lua3
-rw-r--r--advtrains/wagonprop_tool.lua12
-rw-r--r--advtrains/wagons.lua137
22 files changed, 3161 insertions, 2307 deletions
diff --git a/advtrains/atc.lua b/advtrains/atc.lua
index 8e54b08..e14e5c1 100644
--- a/advtrains/atc.lua
+++ b/advtrains/atc.lua
@@ -1,6 +1,9 @@
--atc.lua
--registers and controls the ATC system
+-- Get current translator
+local S = advtrains.translate
+
local atc={}
local eval_conditional
@@ -107,7 +110,7 @@ local apn_func=function(pos)
-- FIX for long-persisting ndb bug: there's no node in parameter 2 of this function!
local meta=minetest.get_meta(pos)
if meta then
- meta:set_string("infotext", attrans("Unconfigured ATC controller"))
+ meta:set_string("infotext", S("Unconfigured ATC controller"))
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
end
end
@@ -129,27 +132,15 @@ advtrains.atc_function = function(def, preset, suffix, rotation)
local meta=minetest.get_meta(pos)
if meta then
if not fields.save then
- --[[--maybe only the dropdown changed
- if fields.mode then
- meta:set_string("mode", idxtrans[fields.mode])
- if fields.mode=="digiline" then
- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
- else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", fields.mode, meta:get_string("command")) )
- end
- meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
- end]]--
return
end
--meta:set_string("mode", idxtrans[fields.mode])
meta:set_string("command", fields.command)
--meta:set_string("command_on", fields.command_on)
meta:set_string("channel", fields.channel)
- --if fields.mode=="digiline" then
- -- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
- --else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", "-", meta:get_string("command")) )
- --end
+
+ meta:set_string("infotext", S("ATC controller, Command: @1", meta:get_string("command")) )
+
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
local pts=minetest.pos_to_string(pos)
@@ -178,16 +169,11 @@ function atc.get_atc_controller_formspec(pos, meta)
if mode<3 then
formspec=formspec
.."style[command;font=mono]"
- .."field[0.8,1.5;7,1;command;"..attrans("Command")..";"..minetest.formspec_escape(command).."]"
- if tonumber(mode)==2 then
- formspec=formspec
- .."style[command_on;font=mono]"
- .."field[0.8,3;7,1;command_on;"..attrans("Command (on)")..";"..minetest.formspec_escape(command_on).."]"
- end
+ .."field[0.8,1.5;7,1;command;"..S("Command")..";"..minetest.formspec_escape(command).."]"
else
- formspec=formspec.."field[0.8,1.5;7,1;channel;"..attrans("Digiline channel")..";"..minetest.formspec_escape(channel).."]"
+ formspec=formspec.."field[0.8,1.5;7,1;channel;"..S("Digiline channel")..";"..minetest.formspec_escape(channel).."]"
end
- return formspec.."button_exit[0.5,4.5;7,1;save;"..attrans("Save").."]"
+ return formspec.."button_exit[0.5,4.5;7,1;save;"..S("Save").."]"
end
--from trainlogic.lua train step
@@ -234,7 +220,7 @@ local matchptn={
advtrains.train_ensure_init(id, train)
-- no one minds if this failed... this shouldn't even be called without train being initialized...
else
- atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving."))
+ atwarn(sid(id), S("ATC Reverse command warning: didn't reverse train, train moving."))
end
return 1
end,
@@ -246,11 +232,11 @@ local matchptn={
end,
["K"] = function(id, train)
if train.door_open == 0 then
- atwarn(sid(id), attrans("ATC Kick command warning: doors are closed."))
+ atwarn(sid(id), S("ATC Kick command warning: doors are closed."))
return 1
end
if train.velocity > 0 then
- atwarn(sid(id), attrans("ATC Kick command warning: train moving."))
+ atwarn(sid(id), S("ATC Kick command warning: train moving."))
return 1
end
local tp = train.trainparts
@@ -324,7 +310,7 @@ eval_conditional = function(command, arrow, speed)
local nest, pos, elsepos=0, 1
while nest>=0 do
if pos>#rest then
- atwarn(sid(id), attrans("ATC command syntax error: I statement not closed: @1",command))
+ atwarn(sid(id), S("ATC command syntax error: I statement not closed: @1",command))
return ""
end
local char=string.sub(rest, pos, pos)
@@ -388,7 +374,7 @@ function atc.execute_atc_command(id, train)
return
end
end
- atwarn(sid(id), attrans("ATC command parse error: Unknown command: @1", command))
+ atwarn(sid(id), S("ATC command parse error: Unknown command: @1", command))
atc.train_reset_command(train, true)
end
diff --git a/advtrains/copytool.lua b/advtrains/copytool.lua
index c63551e..cdfbd2e 100644
--- a/advtrains/copytool.lua
+++ b/advtrains/copytool.lua
@@ -4,8 +4,11 @@
-- 4.712389 = 1.5pi; sin(1.5pi) = -1
-- 7.853981 = 2.5pi; sin(2.5pi) = 1
+-- Get current translator
+local S = advtrains.translate
+
minetest.register_tool("advtrains:copytool", {
- description = attrans("Train copy/paste tool\n\nLeft-click: copy train\nRight-click: paste train"),
+ description = S("Train copy/paste tool\n\nLeft-click: copy train\nRight-click: paste train"),
inventory_image = "advtrains_copytool.png",
wield_image = "advtrains_copytool.png",
stack_max = 1,
@@ -38,23 +41,23 @@ minetest.register_tool("advtrains:copytool", {
local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, {default=true})
if not prevpos then
- minetest.chat_send_player(pname, attrans("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
local meta = itemstack:get_meta()
if not meta then
- minetest.chat_send_player(pname, attrans("The clipboard couldn't access the metadata. Paste failed."))
+ minetest.chat_send_player(pname, S("The clipboard couldn't access the metadata. Paste failed."))
return
end
local clipboard = meta:get_string("clipboard")
if (clipboard == "") then
- minetest.chat_send_player(pname, attrans("The clipboard is empty."));
+ minetest.chat_send_player(pname, S("The clipboard is empty."));
return
end
clipboard = minetest.deserialize(clipboard)
if (clipboard.wagons == nil) then
- minetest.chat_send_player(pname, attrans("The clipboard is empty."));
+ minetest.chat_send_player(pname, S("The clipboard is empty."));
return
end
@@ -71,7 +74,7 @@ minetest.register_tool("advtrains:copytool", {
local train = advtrains.trains[id]
train.off_track = train.end_index<train.path_trk_b
if (train.off_track) then
- minetest.chat_send_player(pname, attrans("Back of train would end up off track, cancelling."))
+ minetest.chat_send_player(pname, S("Back of train would end up off track, cancelling."))
advtrains.remove_train(id)
return
end
@@ -89,19 +92,19 @@ minetest.register_tool("advtrains:copytool", {
local le = pointed_thing.ref:get_luaentity()
if (le == nil) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such lua entity."))
+ minetest.chat_send_player(user:get_player_name(), S("No such lua entity."))
return
end
local wagon = advtrains.wagons[le.id]
if (not (le.id and advtrains.wagons[le.id])) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such wagon: @1.", le.id))
+ minetest.chat_send_player(user:get_player_name(), S("No such wagon: @1.", le.id))
return
end
local train = advtrains.trains[wagon.train_id]
if (not train) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such train: @1.", wagon.train_id))
+ minetest.chat_send_player(user:get_player_name(), S("No such train: @1.", wagon.train_id))
return
end
@@ -173,11 +176,11 @@ minetest.register_tool("advtrains:copytool", {
local meta = itemstack:get_meta()
if not meta then
- minetest.chat_send_player(pname, attrans("The clipboard couldn't access the metadata. Copy failed."))
+ minetest.chat_send_player(pname, S("The clipboard couldn't access the metadata. Copy failed."))
return
end
meta:set_string("clipboard", minetest.serialize(clipboard))
- minetest.chat_send_player(user:get_player_name(), attrans("Train copied."))
+ minetest.chat_send_player(user:get_player_name(), S("Train copied."))
return itemstack
end
})
diff --git a/advtrains/couple.lua b/advtrains/couple.lua
index 4933dd8..cb325a0 100644
--- a/advtrains/couple.lua
+++ b/advtrains/couple.lua
@@ -18,6 +18,9 @@
-- train.couple_* contain references to ObjectRefs of couple objects, which contain all relevant information
-- These objectRefs will delete themselves once the couples no longer match (see below)
+-- Get current translator
+local S = advtrains.translate
+
advtrains.coupler_types = {}
function advtrains.register_coupler_type(code, name)
@@ -25,8 +28,8 @@ function advtrains.register_coupler_type(code, name)
end
-- Register some default couplers
-advtrains.register_coupler_type("chain", attrans("Buffer and Chain Coupler"))
-advtrains.register_coupler_type("scharfenberg", attrans("Scharfenberg Coupler"))
+advtrains.register_coupler_type("chain", S("Buffer and Chain Coupler"))
+advtrains.register_coupler_type("scharfenberg", S("Scharfenberg Coupler"))
for _, name in pairs {"couple", "decouple"} do
local t = {}
@@ -245,7 +248,7 @@ function advtrains.couple_trains(init_train, invert_init_train, stat_train, stat
-- sanity check, prevent coupling if train would be longer than 20 after coupling
local tot_len = init_wagoncnt + stat_wagoncnt
if tot_len > advtrains.TRAIN_MAX_WAGONS then
- atwarn("Cannot couple",stat_train.id,"and",init_train.id,"- train would have length",tot_len,"which is above the limit of",advtrains.TRAIN_MAX_WAGONS)
+ atwarn(S("Cannot couple @1 and @2 - train would have length @3 which is above the limit of @4", stat_train.id, init_train.id, tot_len, advtrains.TRAIN_MAX_WAGONS))
return
end
@@ -351,12 +354,12 @@ function advtrains.check_matching_coupler_types(t1, t1_front, t2, t2_front)
for typ,_ in pairs(t1_cplt) do
table.insert(t1_cplhr, advtrains.coupler_types[typ] or typ)
end
- if #t1_cplhr==0 then t1_cplhr[1]=attrans("<No coupler>") end
+ if #t1_cplhr==0 then t1_cplhr[1]=S("<No coupler>") end
for typ,_ in pairs(t2_cplt) do
table.insert(t2_cplhr, advtrains.coupler_types[typ] or typ)
end
- if #t2_cplhr==0 then t2_cplhr[1]=attrans("<No coupler>") end
- return false, attrans("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
+ if #t2_cplhr==0 then t2_cplhr[1]=S("<No coupler>") end
+ return false, S("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
end
-- DECOUPLING --
diff --git a/advtrains/craft_items.lua b/advtrains/craft_items.lua
index 1188b64..6b1dcef 100644
--- a/advtrains/craft_items.lua
+++ b/advtrains/craft_items.lua
@@ -1,23 +1,26 @@
+-- Get current translator
+local S = advtrains.translate
+
core.register_craftitem("advtrains:boiler", {
- description = attrans("Boiler"),
+ description = S("Boiler"),
inventory_image = "advtrains_boiler.png",
})
core.register_craftitem("advtrains:driver_cab", {
- description = attrans("Driver's cab"),
+ description = S("Driver's cab"),
inventory_image = "advtrains_driver_cab.png",
})
core.register_craftitem("advtrains:wheel", {
- description = attrans("Wheel"),
+ description = S("Wheel"),
inventory_image = "advtrains_wheel.png",
})
core.register_craftitem("advtrains:chimney", {
- description = attrans("Chimney"),
+ description = S("Chimney"),
inventory_image = "advtrains_chimney.png",
})
diff --git a/advtrains/formspec.lua b/advtrains/formspec.lua
index 8894354..86d8b27 100644
--- a/advtrains/formspec.lua
+++ b/advtrains/formspec.lua
@@ -1,6 +1,9 @@
local sformat = string.format
local fsescape = minetest.formspec_escape
+-- Get current translator
+local S = advtrains.translate
+
local function make_list(entries)
local t = {}
for k, v in ipairs(entries) do
@@ -12,7 +15,7 @@ end
local function S_wrapper(f, i0)
return function(...)
local args = {...}
- args[i0] = attrans(unpack(args,i0))
+ args[i0] = S(unpack(args,i0))
return f(unpack(args,1,i0))
end
end
diff --git a/advtrains/init.lua b/advtrains/init.lua
index 0d76ec0..cd63104 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -22,12 +22,6 @@ Copyright (C) 2016-2020 Moritz Blei (orwell96) and contributors
local lot = os.clock()
minetest.log("action", "[advtrains] Loading...")
--- There is no need to support 0.4.x anymore given that the compatitability with it is already broken by 1bb1d825f46af3562554c12fba35a31b9f7973ff
-attrans = minetest.get_translator ("advtrains")
-function attrans_formspec(...)
- return minetest.formspec_escape(attrans(...))
-end
-
--advtrains
advtrains = {trains={}, player_to_train_mapping={}}
@@ -56,6 +50,17 @@ advtrains.TRAIN_MAX_WAGONS = 20
-- ==========================================================================
+advtrains.modpath = minetest.get_modpath("advtrains")
+
+-- Initialize internationalization (using ywang's poconvert)
+advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua")
+advtrains.poconvert.from_flat("advtrains")
+-- ask engine for translator instance, this will load the translation files
+advtrains.translate = core.get_translator("advtrains")
+
+-- Get current translator
+local S = advtrains.translate
+
-- Use a global slowdown factor to slow down train movements. Now a setting
advtrains.DTIME_LIMIT = tonumber(minetest.settings:get("advtrains_dtime_limit")) or 0.2
advtrains.SAVE_INTERVAL = tonumber(minetest.settings:get("advtrains_save_interval")) or 60
@@ -73,7 +78,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
@@ -84,13 +89,11 @@ local function reload_saves()
end
minetest.after(1, function()
advtrains.load()
- atwarn("Reload successful!")
+ atwarn(S("Reload successful!"))
advtrains.ndb.restore_all()
end)
end
-advtrains.modpath = minetest.get_modpath("advtrains")
-
--Advtrains dump (special treatment of pos and sigd)
function atdump(t, intend)
local str
@@ -204,10 +207,6 @@ advtrains.meseconrules =
advtrains.fpath=minetest.get_worldpath().."/advtrains"
-advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua")
-advtrains.poconvert.from_flat("advtrains")
-attrans = minetest.get_translator("advtrains")
-
advtrains.speed = dofile(advtrains.modpath.."/speed.lua")
advtrains.formspec = dofile(advtrains.modpath.."/formspec.lua")
advtrains.texture = dofile(advtrains.modpath.."/texture.lua")
@@ -349,7 +348,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
@@ -414,7 +413,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
@@ -502,7 +501,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 @1 had no wagons left because of some bug. It is being deleted. Wave it goodbye!", id))
advtrains.remove_train(id)
end
end
@@ -583,7 +582,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: @1", err))
else
-- store version
advtrains.save_component(4, "version")
@@ -686,7 +685,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
@@ -715,7 +714,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
@@ -727,10 +726,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,
@@ -739,60 +738,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 @1 does not exist or is invalid", param)
else
- return true, "Train "..param.." is at "..minetest.pos_to_string(train.last_pos)
+ return true, S("Train @1 is at @2", param, 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 @1 does not exist or is invalid", param)
else
minetest.get_player_by_name(name):set_pos(train.last_pos)
- return true, "Teleporting to train "..param
+ return true, S("Teleporting to train @1", 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,
})
@@ -800,10 +799,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, S("Advtrains Status: no_action @1 slowdown @2 (log @3)", no_action, advtrains.global_slowdown, math.log(advtrains.global_slowdown))
end,
})
diff --git a/advtrains/misc_nodes.lua b/advtrains/misc_nodes.lua
index bcf7329..8720272 100644
--- a/advtrains/misc_nodes.lua
+++ b/advtrains/misc_nodes.lua
@@ -1,5 +1,8 @@
--all nodes that do not fit in any other category
+-- Get current translator
+local S = advtrains.translate
+
function advtrains.register_platform(modprefix, preset)
local ndef=minetest.registered_nodes[preset]
if not ndef then
@@ -13,7 +16,7 @@ function advtrains.register_platform(modprefix, preset)
local desc=ndef.description or ""
local nodename=string.match(preset, ":(.+)$")
minetest.register_node(modprefix .. ":platform_low_"..nodename, {
- description = attrans("@1 Platform (low)", desc),
+ description = S("@1 Platform (low)", desc),
tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
groups = {cracky = 1, not_blocking_trains = 1, platform=1},
sounds = ndef.sounds,
@@ -30,7 +33,7 @@ function advtrains.register_platform(modprefix, preset)
sunlight_propagates = true,
})
minetest.register_node(modprefix .. ":platform_high_"..nodename, {
- description = attrans("@1 Platform (high)", desc),
+ description = S("@1 Platform (high)", desc),
tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
@@ -56,7 +59,7 @@ function advtrains.register_platform(modprefix, preset)
}
}
minetest.register_node(modprefix..":platform_45_"..nodename, {
- description = attrans("@1 Platform (45 degree)", desc),
+ description = S("@1 Platform (45 degree)", desc),
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
drawtype = "mesh",
@@ -78,7 +81,7 @@ function advtrains.register_platform(modprefix, preset)
}
}
minetest.register_node(modprefix..":platform_45_low_"..nodename, {
- description = attrans("@1 Platform (low, 45 degree)", desc),
+ description = S("@1 Platform (low, 45 degree)", desc),
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
drawtype = "mesh",
diff --git a/advtrains/po/advtrains.pot b/advtrains/po/advtrains.pot
index 6fda1d7..db19fc9 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: 2023-10-09 11:02+0200\n"
+"POT-Creation-Date: 2025-06-10 21:40+0200\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"
@@ -17,54 +17,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: advtrains/atc.lua:109
+#: atc.lua
msgid "Unconfigured ATC controller"
msgstr ""
-#: advtrains/atc.lua:150
-msgid ""
-"ATC controller, mode @1\n"
-"Command: @2"
+#: atc.lua
+msgid "ATC controller, Command: @1"
msgstr ""
-#: advtrains/atc.lua:180
+#: atc.lua
msgid "Command"
msgstr ""
-#: advtrains/atc.lua:184
-msgid "Command (on)"
-msgstr ""
-
-#: advtrains/atc.lua:187
+#: atc.lua
msgid "Digiline channel"
msgstr ""
-#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
-#: advtrains_luaautomation/active_common.lua:48
+#: atc.lua wagons.lua
msgid "Save"
msgstr ""
-#: advtrains/atc.lua:236
+#: atc.lua
msgid "ATC Reverse command warning: didn't reverse train, train moving."
msgstr ""
-#: advtrains/atc.lua:248
+#: atc.lua
msgid "ATC Kick command warning: doors are closed."
msgstr ""
-#: advtrains/atc.lua:252
+#: atc.lua
msgid "ATC Kick command warning: train moving."
msgstr ""
-#: advtrains/atc.lua:322
+#: atc.lua
msgid "ATC command syntax error: I statement not closed: @1"
msgstr ""
-#: advtrains/atc.lua:385
+#: atc.lua
msgid "ATC command parse error: Unknown command: @1"
msgstr ""
-#: advtrains/copytool.lua:8
+#: copytool.lua
msgid ""
"Train copy/paste tool\n"
"\n"
@@ -72,561 +65,561 @@ msgid ""
"Right-click: paste train"
msgstr ""
-#: advtrains/copytool.lua:29
+#: copytool.lua
msgid "You do not have the @1 privilege."
msgstr ""
-#: advtrains/copytool.lua:41
+#: copytool.lua
msgid "The track you are trying to place the wagon on is not long enough."
msgstr ""
-#: advtrains/copytool.lua:47
+#: copytool.lua
msgid "The clipboard couldn't access the metadata. Paste failed."
msgstr ""
-#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
+#: copytool.lua
msgid "The clipboard is empty."
msgstr ""
-#: advtrains/copytool.lua:74
+#: copytool.lua
msgid "Back of train would end up off track, cancelling."
msgstr ""
-#: advtrains/copytool.lua:92
+#: copytool.lua
msgid "No such lua entity."
msgstr ""
-#: advtrains/copytool.lua:98
+#: copytool.lua
msgid "No such wagon: @1."
msgstr ""
-#: advtrains/copytool.lua:104
+#: copytool.lua
msgid "No such train: @1."
msgstr ""
-#: advtrains/copytool.lua:176
+#: copytool.lua
msgid "The clipboard couldn't access the metadata. Copy failed."
msgstr ""
-#: advtrains/copytool.lua:180
+#: copytool.lua
msgid "Train copied."
msgstr ""
-#: advtrains/couple.lua:28
+#: couple.lua
msgid "Buffer and Chain Coupler"
msgstr ""
-#: advtrains/couple.lua:29
+#: couple.lua
msgid "Scharfenberg Coupler"
msgstr ""
-#: advtrains/couple.lua:185
+#: couple.lua
msgid ""
"You are not allowed to couple trains without the train_operator privilege."
msgstr ""
-#: advtrains/couple.lua:329 advtrains/couple.lua:333
+#: couple.lua
+msgid ""
+"Cannot couple @1 and @2 - train would have length @3 which is above the "
+"limit of @4"
+msgstr ""
+
+#: couple.lua
msgid "<No coupler>"
msgstr ""
-#: advtrains/couple.lua:334
+#: couple.lua
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
msgstr ""
-#: advtrains/craft_items.lua:3
+#: craft_items.lua
msgid "Boiler"
msgstr ""
-#: advtrains/craft_items.lua:9
+#: craft_items.lua
msgid "Driver's cab"
msgstr ""
-#: advtrains/craft_items.lua:15
+#: craft_items.lua
msgid "Wheel"
msgstr ""
-#: advtrains/craft_items.lua:21
+#: craft_items.lua
msgid "Chimney"
msgstr ""
-#: advtrains/misc_nodes.lua:16
-msgid "@1 Platform (low)"
-msgstr ""
-
-#: advtrains/misc_nodes.lua:33
-msgid "@1 Platform (high)"
+#: init.lua
+msgid "Restoring saved state in 1 second..."
msgstr ""
-#: advtrains/misc_nodes.lua:59
-msgid "@1 Platform (45 degree)"
+#: init.lua
+msgid "Reload successful!"
msgstr ""
-#: advtrains/misc_nodes.lua:81
-msgid "@1 Platform (low, 45 degree)"
+#: init.lua
+msgid "Removing unused wagon"
msgstr ""
-#: advtrains/protection.lua:7
-msgid "Can place, remove and operate trains"
+#: init.lua
+msgid "from wagon_save table."
msgstr ""
-#: advtrains/protection.lua:12
+#: init.lua
msgid ""
-"Can place, remove and operate any train, regardless of owner, whitelist, or "
-"protection"
+"Train @1 had no wagons left because of some bug. It is being deleted. Wave "
+"it goodbye!"
msgstr ""
-#: advtrains/protection.lua:18
-msgid "Can place and dig tracks in unprotected areas"
+#: init.lua
+msgid "Saving failed: @1"
msgstr ""
-#: advtrains/protection.lua:24
-msgid "Can operate turnouts and signals in unprotected areas"
+#: init.lua
+msgid "Instructed to save() but load() was never called!"
msgstr ""
-#: advtrains/protection.lua:148
+#: init.lua
msgid ""
-"You are not allowed to build near tracks without the track_builder privilege."
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
msgstr ""
-#: advtrains/protection.lua:148
+#: init.lua
msgid ""
-"You are not allowed to build tracks without the track_builder privilege."
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
msgstr ""
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build near tracks at this protected position."
+#: init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
msgstr ""
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build tracks at this protected position."
+#: init.lua
+msgid "Delete all train routes, force them to recalculate"
msgstr ""
-#: advtrains/protection.lua:184
-msgid ""
-"You are not allowed to operate turnouts and signals without the "
-"railway_operator privilege."
+#: init.lua
+msgid "Successfully invalidated train routes"
msgstr ""
-#: advtrains/signals.lua:63
-msgid "Lampless Signal"
+#: init.lua
+msgid "Returns the position of the train with the given id"
msgstr ""
-#: advtrains/signals.lua:127
-msgid "Signal"
+#: init.lua
+msgid "Train @1 does not exist or is invalid"
msgstr ""
-#: advtrains/signals.lua:191
-msgid "Wallmounted Signal (left)"
+#: init.lua
+msgid "Train @1 is at @2"
msgstr ""
-#: advtrains/signals.lua:192
-msgid "Wallmounted Signal (right)"
+#: init.lua
+msgid "Teleports you to the position of the train with the given id"
msgstr ""
-#: advtrains/signals.lua:193
-msgid "Wallmounted Signal (top)"
+#: init.lua
+msgid "Teleporting to train @1"
msgstr ""
-#: advtrains/signals.lua:281 advtrains/signals.lua:322
-msgid "Andrew's Cross"
+#: init.lua
+msgid "Disable the advtrains globalstep temporarily"
msgstr ""
-#: advtrains/trackplacer.lua:313
+#: init.lua
msgid ""
-"Track Worker Tool\n"
-"\n"
-"Left-click: change rail type (straight/curve/switch)\n"
-"Right-click: rotate object"
+"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/trackplacer.lua:340 advtrains/trackplacer.lua:377
-msgid "This node can't be rotated using the trackworker."
+#: init.lua
+msgid "Disabled advtrains successfully"
msgstr ""
-#: advtrains/trackplacer.lua:350
-msgid "This track can not be rotated."
+#: init.lua
+msgid "Re-enabling advtrains globalstep..."
msgstr ""
-#: advtrains/trackplacer.lua:404
-msgid "This node can't be changed using the trackworker."
+#: init.lua
+msgid "Advtrains is already running normally!"
msgstr ""
-#: advtrains/trackplacer.lua:414
-msgid "This track can not be changed."
+#: init.lua
+msgid "Print advtrains status info"
msgstr ""
-#: advtrains/tracks.lua:449
-msgid "This track can not be removed."
+#: init.lua
+msgid "Advtrains Status: no_action @1 slowdown @2 (log @3)"
msgstr ""
-#: advtrains/tracks.lua:616
-msgid "Position is occupied by a train."
+#: misc_nodes.lua
+msgid "@1 Platform (low)"
msgstr ""
-#: advtrains/tracks.lua:622
-msgid "There's a Track Circuit Break here."
+#: misc_nodes.lua
+msgid "@1 Platform (high)"
msgstr ""
-#: advtrains/tracks.lua:626
-msgid "There's a Signal Influence Point here."
+#: misc_nodes.lua
+msgid "@1 Platform (45 degree)"
msgstr ""
-#: advtrains/tracks.lua:637
-msgid "@1 Slope"
+#: misc_nodes.lua
+msgid "@1 Platform (low, 45 degree)"
msgstr ""
-#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
-msgid "Can't place slope: not pointing at node."
+#: protection.lua
+msgid "Can place, remove and operate trains"
msgstr ""
-#: advtrains/tracks.lua:658
-msgid "Can't place slope: space occupied."
+#: protection.lua
+msgid ""
+"Can place, remove and operate any train, regardless of owner, whitelist, or "
+"protection"
msgstr ""
-#: advtrains/tracks.lua:711
-msgid "Can't place slope: Not enough slope items left (@1 required)."
+#: protection.lua
+msgid "Can place and dig tracks in unprotected areas"
msgstr ""
-#: advtrains/tracks.lua:714
-msgid "Can't place slope: There's no slope of length @1."
+#: protection.lua
+msgid "Can operate turnouts and signals in unprotected areas"
msgstr ""
-#: advtrains/tracks.lua:721
-msgid "Can't place slope: no supporting node at upper end."
+#: protection.lua
+msgid ""
+"You are not allowed to build near tracks without the track_builder privilege."
msgstr ""
-#: advtrains/trainhud.lua:305
-msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
+#: protection.lua
+msgid ""
+"You are not allowed to build tracks without the track_builder privilege."
msgstr ""
-#: advtrains/wagons.lua:179
-msgid "This wagon is owned by @1, you can't destroy it."
+#: protection.lua
+msgid "You are not allowed to build near tracks at this protected position."
msgstr ""
-#: advtrains/wagons.lua:203
-msgid "The wagon's inventory is not empty."
+#: protection.lua
+msgid "You are not allowed to build tracks at this protected position."
msgstr ""
-#: advtrains/wagons.lua:210
-msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
+#: protection.lua
+msgid ""
+"You are not allowed to operate turnouts and signals without the "
+"railway_operator privilege."
msgstr ""
-#: advtrains/wagons.lua:216
-msgid ""
-"Warning: If you destroy this wagon, you only get some steel back! If you are "
-"sure, hold Sneak and left-click the wagon."
+#: signals.lua
+msgid "Lampless Signal (deprecated!)"
msgstr ""
-#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
-msgid "Show Inventory"
+#: signals.lua
+msgid "Signal (deprecated!)"
msgstr ""
-#: advtrains/wagons.lua:652
-msgid "Onboard Computer"
+#: signals.lua
+msgid "Wallmounted Signal (left) (deprecated!)"
msgstr ""
-#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
-msgid "Wagon properties"
+#: signals.lua
+msgid "Wallmounted Signal (right) (deprecated!)"
msgstr ""
-#: advtrains/wagons.lua:658
-msgid "Get off"
+#: signals.lua
+msgid "Wallmounted Signal (top) (deprecated!)"
msgstr ""
-#: advtrains/wagons.lua:661
-msgid "Get off (forced)"
+#: signals.lua
+msgid "Andrew's Cross"
msgstr ""
-#: advtrains/wagons.lua:663
-msgid "(Doors closed)"
+#: track_reg_helper.lua tracks.lua
+msgid "This track can not be removed!"
msgstr ""
-#: advtrains/wagons.lua:692
-msgid "This wagon has no seats."
+#: track_reg_helper.lua
+msgid "@1 Slope"
msgstr ""
-#: advtrains/wagons.lua:703
-msgid "This wagon is full."
+#: track_reg_helper.lua
+msgid "Can't place: not pointing at node"
msgstr ""
-#: advtrains/wagons.lua:706
-msgid "Doors are closed! (Try holding sneak key!)"
+#: track_reg_helper.lua
+msgid "Can't place: space occupied!"
msgstr ""
-#: advtrains/wagons.lua:712
-msgid "You can't get on this wagon."
+#: track_reg_helper.lua
+msgid "Can't place: Not enough slope items left (@1 required)"
msgstr ""
-#: advtrains/wagons.lua:838
-msgid "Select seat:"
+#: track_reg_helper.lua
+msgid "Can't place: There's no slope of length @1"
msgstr ""
-#: advtrains/wagons.lua:880
-msgid "Save wagon properties"
+#: track_reg_helper.lua
+msgid "Can't place: no supporting node at upper end."
msgstr ""
-#: advtrains/wagons.lua:965
-msgid "Text displayed outside on train"
+#: trackplacer.lua
+msgid ""
+"Track Worker Tool\n"
+"\n"
+"Left-click: change rail type (straight/curve/switch)\n"
+"Right-click: rotate object"
msgstr ""
-#: advtrains/wagons.lua:966
-msgid "Text displayed inside train"
+#: trackplacer.lua
+msgid "This node can't be rotated using the trackworker!"
msgstr ""
-#: advtrains/wagons.lua:967
-msgid "Line"
+#: trackplacer.lua
+msgid "This track can not be rotated!"
msgstr ""
-#: advtrains/wagons.lua:968
-msgid "Routingcode"
+#: trackplacer.lua
+msgid "This node can't be changed using the trackworker!"
msgstr ""
-#: advtrains/wagons.lua:1241
-msgid ""
-"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
-"off."
+#: tracks.lua
+msgid "Position is occupied by a train."
msgstr ""
-#: advtrains/wagons.lua:1250
-msgid "You are not allowed to access the driver stand."
+#: tracks.lua
+msgid "There's a Track Circuit Break here."
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:13
-msgid "Point speed restriction: @1"
+#: tracks.lua
+msgid "There's a Signal Influence Point here."
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:14
-msgid "Set point speed restriction:"
+#: trainhud.lua
+msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:30
-msgid "You are not allowed to configure this track without the @1 privilege."
+#: wagonprop_tool.lua
+msgid ""
+"Wagon Properties Tool\n"
+"Punch a wagon to view and edit the Wagon Properties"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:34
-#: advtrains_line_automation/stoprail.lua:31
-#: advtrains_line_automation/stoprail.lua:76
-msgid "You are not allowed to configure this track."
+#: wagonprop_tool.lua
+msgid "Wagon Properties Tool"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:64
-msgid "Point Speed Restriction Track"
+#: wagonprop_tool.lua
+msgid "Insufficient privileges to use this!"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:54
-msgid "Station Code"
+#: wagons.lua
+msgid "Uninitialized, removing"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:55
-msgid "Station Name"
+#: wagons.lua
+msgid "This wagon is owned by @1, you can't destroy it."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:56
-msgid "Door Delay"
+#: wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:57
-msgid "Dep. Speed"
+#: wagons.lua
+msgid "The wagon's inventory is not empty."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
-#: advtrains_train_track/init.lua:156
-msgid "Track"
+#: wagons.lua
+msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:59
-msgid "Stop Time"
+#: wagons.lua
+msgid ""
+"Warning: If you destroy this wagon, you only get some steel back! If you are "
+"sure, hold Sneak and left-click the wagon."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:60
-msgid "Door Side"
+#: wagons.lua
+msgid "!!! Train off track !!!"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:62
-msgid "Reverse train"
+#: wagons.lua
+msgid " units"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:63
-msgid "Kick out passengers"
+#: wagons.lua
+msgid "Liquid: "
msgstr ""
-#: advtrains_line_automation/stoprail.lua:97
-msgid "Station code \"@1\" already exists and is owned by @2."
+#: wagons.lua
+msgid "Liquid: empty"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:111
-msgid "This station is owned by @1. You are not allowed to edit its name."
+#: wagons.lua
+msgid "Show Inventory"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:221
-msgid "Station/Stop Track"
+#: wagons.lua
+msgid "Onboard Computer"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:17
-msgid "Unconfigured LuaATC component"
+#: wagons.lua
+msgid "Wagon properties"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:46
-msgid "LuaATC Environment"
+#: wagons.lua
+msgid "Get off"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:49
-msgid "Clear Local Environment"
+#: wagons.lua
+msgid "Get off (forced)"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:50
-msgid "Code"
+#: wagons.lua
+msgid "(Doors closed)"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:64
-msgid ""
-"You are not allowed to configure this LuaATC component without the @1 "
-"privilege."
+#: wagons.lua
+msgid "This wagon has no seats."
msgstr ""
-#: advtrains_luaautomation/active_common.lua:94
-msgid "LuaATC component assigned to environment '@1'"
+#: wagons.lua
+msgid "This wagon is full."
msgstr ""
-#: advtrains_luaautomation/active_common.lua:96
-msgid "LuaATC component assigned to an invalid environment"
+#: wagons.lua
+msgid "Doors are closed! (Try holding sneak key!)"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:171
-msgid "LuaATC component with error: @1"
+#: wagons.lua
+msgid "You can't get on this wagon."
msgstr ""
-#: advtrains_luaautomation/init.lua:13
-msgid ""
-"Can place and configure LuaATC components, including execute potentially "
-"harmful Lua code"
+#: wagons.lua
+msgid "Select seat:"
msgstr ""
-#: advtrains_luaautomation/mesecon_controller.lua:211
-msgid "LuaATC Mesecon Controller"
+#: wagons.lua
+msgid "This Wagon ID"
msgstr ""
-#: advtrains_luaautomation/operation_panel.lua:11
-msgid "LuaATC Operation Panel"
+#: wagons.lua
+msgid "Allow these players to access your wagon:"
msgstr ""
-#: advtrains_luaautomation/pcnaming.lua:28
-msgid ""
-"Passive Component Naming Tool\n"
-"\n"
-"Right-click to name a passive component."
+#: wagons.lua
+msgid "Wagon road number:"
msgstr ""
-#: advtrains_luaautomation/pcnaming.lua:39
-msgid ""
-"You are not allowed to name LuaATC passive components without the @1 "
-"privilege."
+#: wagons.lua
+msgid "Freight Code:"
msgstr ""
-#: advtrains_luaautomation/pcnaming.lua:62
-msgid "Set name of component (empty to clear)"
+#: wagons.lua
+msgid "Prev FC"
msgstr ""
-#: advtrains_train_industrial/init.lua:10
-#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
-#: advtrains_train_steam/init.lua:91
-msgid "Driver Stand (right)"
+#: wagons.lua
+msgid "Current FC: "
msgstr ""
-#: advtrains_train_industrial/init.lua:17
-#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
-#: advtrains_train_steam/init.lua:85
-msgid "Driver Stand (left)"
+#: wagons.lua
+msgid "Next FC:"
msgstr ""
-#: advtrains_train_industrial/init.lua:40
-msgid "Industrial Train Engine"
+#: wagons.lua
+msgid "Save wagon properties"
msgstr ""
-#: advtrains_train_industrial/init.lua:79
-msgid "Big Industrial Train Engine"
+#: wagons.lua
+msgid "Train ID"
msgstr ""
-#: advtrains_train_industrial/init.lua:98
-msgid "Industrial tank wagon"
+#: wagons.lua
+msgid "Text displayed outside on train"
msgstr ""
-#: advtrains_train_industrial/init.lua:116
-msgid "Industrial wood wagon"
+#: wagons.lua
+msgid "Text displayed inside train"
msgstr ""
-#: advtrains_train_japan/init.lua:4
-msgid "Japanese Train Inter-Wagon Connection"
+#: wagons.lua
+msgid "Line"
msgstr ""
-#: advtrains_train_japan/init.lua:37
-msgid "Driver stand"
+#: wagons.lua
+msgid "Routingcode"
msgstr ""
-#: advtrains_train_japan/init.lua:101
-msgid "Japanese Train Engine"
+#: wagons.lua
+msgid "Train overview /coupling control:"
msgstr ""
-#: advtrains_train_japan/init.lua:176
-msgid "Japanese Train Wagon"
+#: wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
msgstr ""
-#: advtrains_train_steam/init.lua:75
-msgid "Steam Engine"
+#: wagons.lua
+msgid "Remote Routesetting"
msgstr ""
-#: advtrains_train_steam/init.lua:159
-msgid "Detailed Steam Engine"
+#: wagons.lua
+msgid "Clear 'Disable ARS' flag"
msgstr ""
-#: advtrains_train_steam/init.lua:206
-msgid "Passenger Wagon"
+#: wagons.lua
+msgid ""
+"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
+"off."
msgstr ""
-#: advtrains_train_steam/init.lua:226
-msgid "Box Wagon"
+#: wagons.lua
+msgid "You are not allowed to access the driver stand."
msgstr ""
-#: advtrains_train_subway/init.lua:144
-msgid "Subway Passenger Wagon"
+#: wagons.lua
+msgid "Missing train_operator privilege"
msgstr ""
-#: advtrains_train_track/init.lua:31
-msgid "Y-turnout"
+#: wagons.lua
+msgid "Not allowed to do this."
msgstr ""
-#: advtrains_train_track/init.lua:49
-msgid "3-way turnout"
+#: wagons.lua
+msgid "You don't have the train_operator privilege."
msgstr ""
-#: advtrains_train_track/init.lua:69
-msgid "Perpendicular Diamond Crossing Track"
+#: wagons.lua
+msgid "The track you are trying to place the wagon on is not long enough!"
msgstr ""
-#: advtrains_train_track/init.lua:91
-msgid "90+Angle Diamond Crossing Track"
+#: wagons.lua
+msgid "Wagon placeholder"
msgstr ""
-#: advtrains_train_track/init.lua:132
-msgid "Diagonal Diamond Crossing Track"
+#: wagons.lua
+msgid "Please specify a player name to transfer ownership to."
msgstr ""
-#: advtrains_train_track/init.lua:179
-msgid "Bumper"
+#: wagons.lua
+msgid "That player does not exist!"
msgstr ""
-#: advtrains_train_track/init.lua:201
-msgid "ATC controller"
+#: wagons.lua
+msgid "Not a valid wagon id."
msgstr ""
-#: advtrains_train_track/init.lua:317
-msgid "Unloading Track"
+#: wagons.lua
+msgid "That wagon does not exist!"
msgstr ""
-#: advtrains_train_track/init.lua:342
-msgid "Loading Track"
+#: wagons.lua
+msgid "You have been given ownership of wagon @1"
msgstr ""
-#: advtrains_train_track/init.lua:406
-msgid "Detector Rail"
+#: wagons.lua
+msgid "Wagon @1 ownership changed from @2 to @3"
msgstr ""
diff --git a/advtrains/po/de.po b/advtrains/po/de.po
index 8821fe3..f83b760 100644
--- a/advtrains/po/de.po
+++ b/advtrains/po/de.po
@@ -2,414 +2,508 @@ msgid ""
msgstr ""
"Project-Id-Version: advtrains\n"
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
-"POT-Creation-Date: 2023-10-09 11:02+0200\n"
-"PO-Revision-Date: 2023-10-09 11:18+0200\n"
+"POT-Creation-Date: 2025-06-10 21:40+0200\n"
+"PO-Revision-Date: 2025-06-11 22:55+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.3.2\n"
+"X-Generator: Poedit 3.2.2\n"
-#: advtrains/atc.lua:109
-msgid "Unconfigured ATC controller"
-msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis"
-
-#: advtrains/atc.lua:150
-msgid ""
-"ATC controller, mode @1\n"
-"Command: @2"
-msgstr ""
-"Zugbeeinflussungsgleis in Betriebsart „@1“\n"
-"Befehl: @2"
-
-#: advtrains/atc.lua:180
-msgid "Command"
-msgstr "Befehl"
-
-#: advtrains/atc.lua:184
-msgid "Command (on)"
-msgstr "Befehl (wenn aktiviert)"
-
-#: advtrains/atc.lua:187
-msgid "Digiline channel"
-msgstr "Digiline-Kanal"
-
-#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
-#: advtrains_luaautomation/active_common.lua:48
-msgid "Save"
-msgstr "Speichern"
-
-#: advtrains/atc.lua:236
-msgid "ATC Reverse command warning: didn't reverse train, train moving."
-msgstr ""
-"Zugbeeinflussung: Der Zug befindet sich in Bewegung und kann nicht umgekehrt "
-"werden."
-
-#: advtrains/atc.lua:248
+#: atc.lua
msgid "ATC Kick command warning: doors are closed."
msgstr ""
"Zugbeeinflussung: Wegen geschlossener Türen werden Fahrgäste nicht zum "
"Ausstieg gezwungen."
-#: advtrains/atc.lua:252
+#: atc.lua
msgid "ATC Kick command warning: train moving."
msgstr ""
"Zugbeeinflussung: Der Zug befindet sich in Bewegung, Fahrgäste werden nicht "
"zum Ausstieg gezwungen."
-#: advtrains/atc.lua:322
-msgid "ATC command syntax error: I statement not closed: @1"
-msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1"
+#: atc.lua
+msgid "ATC Reverse command warning: didn't reverse train, train moving."
+msgstr ""
+"Zugbeeinflussung: Der Zug befindet sich in Bewegung und kann nicht umgekehrt "
+"werden."
-#: advtrains/atc.lua:385
+#: atc.lua
msgid "ATC command parse error: Unknown command: @1"
msgstr "Zugbeeinflussung: Unbekannter Befehl: @1"
-#: advtrains/copytool.lua:8
-msgid ""
-"Train copy/paste tool\n"
-"\n"
-"Left-click: copy train\n"
-"Right-click: paste train"
-msgstr ""
-"Werkzeug zur Erstellung von Zugkopien\n"
-"\n"
-"Linksklick: Zug ins Clipboard kopieren\n"
-"Right-click: Kopierten Zug einfügen"
+#: atc.lua
+msgid "ATC command syntax error: I statement not closed: @1"
+msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1"
-#: advtrains/copytool.lua:29
-msgid "You do not have the @1 privilege."
-msgstr "Ihnen fehlt das „@1“-Privileg."
+#: atc.lua
+msgid "ATC controller, Command: @1"
+msgstr "Zugbeeinflussungsgleis, Befehl: @1"
-#: advtrains/copytool.lua:41
-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."
+#: atc.lua
+msgid "Command"
+msgstr "Befehl"
-#: advtrains/copytool.lua:47
-msgid "The clipboard couldn't access the metadata. Paste failed."
-msgstr ""
-"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des "
-"Zuges nicht eingefügt werden."
+#: atc.lua
+msgid "Digiline channel"
+msgstr "Digiline-Kanal"
-#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
-msgid "The clipboard is empty."
-msgstr "Das Clipboard ist leer."
+#: atc.lua wagons.lua
+msgid "Save"
+msgstr "Speichern"
+
+#: atc.lua
+msgid "Unconfigured ATC controller"
+msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis"
-#: advtrains/copytool.lua:74
+#: copytool.lua
msgid "Back of train would end up off track, cancelling."
msgstr "Der hinterer Teil dez Zuges wäre nicht auf dem Gleis."
-#: advtrains/copytool.lua:92
+#: copytool.lua
msgid "No such lua entity."
msgstr ""
"Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden "
"kann."
-#: advtrains/copytool.lua:98
-msgid "No such wagon: @1."
-msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon."
-
-#: advtrains/copytool.lua:104
+#: copytool.lua
msgid "No such train: @1."
msgstr "Es gibt keinen mit „@1“ identifizierbaren Zug."
-#: advtrains/copytool.lua:176
+#: copytool.lua
+msgid "No such wagon: @1."
+msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon."
+
+#: copytool.lua
msgid "The clipboard couldn't access the metadata. Copy failed."
msgstr ""
"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte der Zug nicht "
"kopiert werden."
-#: advtrains/copytool.lua:180
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Paste failed."
+msgstr ""
+"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des "
+"Zuges nicht eingefügt werden."
+
+#: copytool.lua
+msgid "The clipboard is empty."
+msgstr "Das Clipboard ist leer."
+
+#: copytool.lua
+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."
+
+#: copytool.lua
msgid "Train copied."
-msgstr "Der Zug wurde Kopiert."
+msgstr "Der Zug wurde kopiert."
-#: advtrains/couple.lua:28
+#: copytool.lua
+msgid ""
+"Train copy/paste tool\n"
+"\n"
+"Left-click: copy train\n"
+"Right-click: paste train"
+msgstr ""
+"Werkzeug zur Erstellung von Zugkopien\n"
+"\n"
+"Linksklick: Zug ins Clipboard kopieren\n"
+"Right-click: Kopierten Zug einfügen"
+
+#: copytool.lua
+msgid "You do not have the @1 privilege."
+msgstr "Ihnen fehlt das „@1“-Privileg."
+
+#: couple.lua
+msgid "<No coupler>"
+msgstr "<Keine Kupplung vorhanden>"
+
+#: couple.lua
msgid "Buffer and Chain Coupler"
msgstr "Schraubenkupplung"
-#: advtrains/couple.lua:29
+#: couple.lua
+msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
+msgstr "Die Kupplungen der Züge passen nicht zueinander (@1 und @2)."
+
+#: couple.lua
+msgid ""
+"Cannot couple @1 and @2 - train would have length @3 which is above the "
+"limit of @4"
+msgstr ""
+"Züge @1 und @2 können nicht gekuppelt werden - die resultierende Zuglänge @3 "
+"wäre länger als das Maximum von @4"
+
+#: couple.lua
msgid "Scharfenberg Coupler"
msgstr "Scharfenbergkupplung"
-#: advtrains/couple.lua:185
+#: couple.lua
msgid ""
"You are not allowed to couple trains without the train_operator privilege."
msgstr "Sie dürfen ohne das „train_operator“-Privileg keine Züge ankuppeln."
-#: advtrains/couple.lua:329 advtrains/couple.lua:333
-msgid "<No coupler>"
-msgstr "<Keine Kupplung vorhanden>"
-
-#: advtrains/couple.lua:334
-msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
-msgstr "Die Kupplungen der Züge passen nicht zueinander (@1 und @2)."
-
-#: advtrains/craft_items.lua:3
+#: craft_items.lua
msgid "Boiler"
-msgstr ""
+msgstr "Kessel"
+
+#: craft_items.lua
+msgid "Chimney"
+msgstr "Schornstein"
-#: advtrains/craft_items.lua:9
+#: craft_items.lua
msgid "Driver's cab"
msgstr "Führerstand"
-#: advtrains/craft_items.lua:15
+#: craft_items.lua
msgid "Wheel"
+msgstr "Rad"
+
+#: init.lua
+msgid "Advtrains Status: no_action @1 slowdown @2 (log @3)"
msgstr ""
+"Advtrains Status: keine Aktion: @1 Verlangsamungsfaktor: @2 (logarithmisch "
+"@3)"
-#: advtrains/craft_items.lua:21
-msgid "Chimney"
+#: init.lua
+msgid "Advtrains is already running normally!"
+msgstr "Advtrains läuft bereits normal!"
+
+#: init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
msgstr ""
+"Advtrains ist während der Ausführung des Main Step abgestürzt - Daten werden "
+"nicht gespeichert um Inkonsistenzen zu verhindern!"
-#: advtrains/misc_nodes.lua:16
-msgid "@1 Platform (low)"
-msgstr "Niedriger @1-Bahnsteig"
+#: init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+"Daten werden gespeichert. Beim Speichern werden alle Spieler aus Waggons "
+"entfernt. Anschließend werden die Speicherdateien neu geladen!"
-#: advtrains/misc_nodes.lua:33
-msgid "@1 Platform (high)"
-msgstr "Hoher @1-Bahnsteig"
+#: init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr "Erzwingt die Neuberechnung der Bewegungspfade aller Züge"
+
+#: init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+"Bewirkt, dass alle Spieler (insbesondere Offline-Spieler) aus Waggons "
+"entfernt werden. Nur benutzen, wenn niemand ernsthaft in einem Zug sitzt."
+
+#: init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr "Advtrains-Schrittverarbeitung temporär deaktivieren"
+
+#: init.lua
+msgid "Disabled advtrains successfully"
+msgstr "Advtrains erfolgreich deaktiviert"
+
+#: init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr "Speichern angefordert, aber Speicherdateien wurden nie geladen!"
+
+#: init.lua
+msgid "Print advtrains status info"
+msgstr "Advtrains-Statusinformationen ausgeben"
+
+#: init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr "Advtrains-Schrittverarbeitung wird wieder aktiviert..."
+
+#: init.lua
+msgid "Reload successful!"
+msgstr "Neu Laden Erfolgreich!"
+
+#: init.lua
+msgid "Removing unused wagon"
+msgstr "Ungenutzer Waggon wird entfernt"
+
+#: init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr "Speicherstand wird in 1 Sekunde wiederhergestellt..."
+
+#: init.lua
+msgid "Returns the position of the train with the given id"
+msgstr "Gibt die Position des Zugs mit der gegebenen ID aus"
+
+#: init.lua
+msgid "Saving failed: @1"
+msgstr "Speichern ist fehlgeschlagen: @1"
+
+#: init.lua
+msgid "Successfully invalidated train routes"
+msgstr "Bewegungspfade der Züge erfolgreich invalidiert"
+
+#: init.lua
+msgid "Teleporting to train @1"
+msgstr "Teleportiere zu Zug @1"
+
+#: init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr "Teleportiere dich zu dem Zug mit der gegebenen ID"
+
+#: 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-Schrittverarbeitung ist deaktiviert. Züge bewegen sich nicht und "
+"Änderungen werden nicht gespeichert. Führe '/at_disable_step no' aus um sie "
+"wieder zu aktivieren!"
+
+#: init.lua
+msgid "Train @1 does not exist or is invalid"
+msgstr "Zug @1 existiert nicht oder ist ungültig"
+
+#: init.lua
+msgid ""
+"Train @1 had no wagons left because of some bug. It is being deleted. Wave "
+"it goodbye!"
+msgstr ""
+"Zug @1 hat keine Wagen mehr und sollte nicht mehr existieren. Er wird "
+"gelöscht. Auf Wiedersehen!"
+
+#: init.lua
+msgid "Train @1 is at @2"
+msgstr "Zug @1 ist bei @2"
-#: advtrains/misc_nodes.lua:59
+#: init.lua
+msgid "from wagon_save table."
+msgstr "aus der wagon_save table"
+
+#: misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "Hoher @1-Bahnsteig (45°)"
-#: advtrains/misc_nodes.lua:81
+#: misc_nodes.lua
+msgid "@1 Platform (high)"
+msgstr "Hoher @1-Bahnsteig"
+
+#: misc_nodes.lua
+msgid "@1 Platform (low)"
+msgstr "Niedriger @1-Bahnsteig"
+
+#: misc_nodes.lua
msgid "@1 Platform (low, 45 degree)"
msgstr "Niedriger @1-Bahnsteig (45°)"
-#: advtrains/protection.lua:7
-msgid "Can place, remove and operate trains"
-msgstr ""
+#: protection.lua
+msgid "Can operate turnouts and signals in unprotected areas"
+msgstr "Darf Weichen und Signale in ungeschütztem Gebiet stellen"
-#: advtrains/protection.lua:12
+#: protection.lua
+msgid "Can place and dig tracks in unprotected areas"
+msgstr "Darf Gleise in ungeschütztem Gebiet verlegen und entfernen"
+
+#: protection.lua
msgid ""
"Can place, remove and operate any train, regardless of owner, whitelist, or "
"protection"
-msgstr ""
+msgstr "Darf, unabhängig von Besitzer oder Schutz, sämtliche Züge steuern"
-#: advtrains/protection.lua:18
-msgid "Can place and dig tracks in unprotected areas"
-msgstr ""
+#: protection.lua
+msgid "Can place, remove and operate trains"
+msgstr "Darf Züge platzieren, entfernen und steuern"
-#: advtrains/protection.lua:24
-msgid "Can operate turnouts and signals in unprotected areas"
-msgstr ""
+#: protection.lua
+msgid "You are not allowed to build near tracks at this protected position."
+msgstr "Sie dürfen an geschützten Stellen nicht in der Nähe von Gleisen bauen."
-#: advtrains/protection.lua:148
+#: protection.lua
msgid ""
"You are not allowed to build near tracks without the track_builder privilege."
msgstr ""
"Sie dürfen ohne das „track_builder“-Privileg nicht in der Nähe von Gleisen "
"bauen."
-#: advtrains/protection.lua:148
+#: protection.lua
+msgid "You are not allowed to build tracks at this protected position."
+msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen."
+
+#: protection.lua
msgid ""
"You are not allowed to build tracks without the track_builder privilege."
msgstr "Sie dürfen ohne das „track_builder“-Privileg kein Gleis bauen."
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build near tracks at this protected position."
-msgstr "Sie dürfen an geschützten Stellen nicht in der Nähe von Gleisen bauen."
-
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build tracks at this protected position."
-msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen."
-
-#: advtrains/protection.lua:184
+#: protection.lua
msgid ""
"You are not allowed to operate turnouts and signals without the "
"railway_operator privilege."
msgstr ""
"Sie dürfen ohne das „railway_operator“-Privileg keine Bahnanlage operieren."
-#: advtrains/signals.lua:63
-msgid "Lampless Signal"
-msgstr "Mechanisches Signal"
-
-#: advtrains/signals.lua:127
-msgid "Signal"
-msgstr "Lichtsignal"
-
-#: advtrains/signals.lua:191
-msgid "Wallmounted Signal (left)"
-msgstr "An der linken Seite montiertes Signal"
-
-#: advtrains/signals.lua:192
-msgid "Wallmounted Signal (right)"
-msgstr "An der rechten Seite montiertes Signal"
-
-#: advtrains/signals.lua:193
-msgid "Wallmounted Signal (top)"
-msgstr "An der Decke montiertes Signal"
-
-#: advtrains/signals.lua:281 advtrains/signals.lua:322
+#: signals.lua
msgid "Andrew's Cross"
msgstr "Andreaskreuz"
-#: advtrains/trackplacer.lua:313
-msgid ""
-"Track Worker Tool\n"
-"\n"
-"Left-click: change rail type (straight/curve/switch)\n"
-"Right-click: rotate object"
-msgstr ""
-"Gleiswerkzeug\n"
-"\n"
-"Linksklick: Gleistyp ändern\n"
-"Rechtsklick: Objekt drehen"
+#: signals.lua
+msgid "Lampless Signal (deprecated!)"
+msgstr "Mechanisches Signal (veraltet!)"
-#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
-msgid "This node can't be rotated using the trackworker."
-msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden."
+#: signals.lua
+msgid "Signal (deprecated!)"
+msgstr "Signal (veraltet!)"
-#: advtrains/trackplacer.lua:350
-msgid "This track can not be rotated."
-msgstr "Dieses Gleis kann nicht gedreht werden."
+#: signals.lua
+msgid "Wallmounted Signal (left) (deprecated!)"
+msgstr "An der linken Seite montiertes Signal (veraltet!)"
-#: advtrains/trackplacer.lua:404
-msgid "This node can't be changed using the trackworker."
-msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden."
+#: signals.lua
+msgid "Wallmounted Signal (right) (deprecated!)"
+msgstr "An der rechten Seite montiertes Signal (veraltet!)"
-#: advtrains/trackplacer.lua:414
-msgid "This track can not be changed."
-msgstr "Dieses Gleis kann nicht geändert werden."
+#: signals.lua
+msgid "Wallmounted Signal (top) (deprecated!)"
+msgstr "An der Decke montiertes Signal (veraltet!)"
-#: advtrains/tracks.lua:449
-msgid "This track can not be removed."
-msgstr "Dieses Gleis kann nicht entfernt werden."
-
-#: advtrains/tracks.lua:616
-msgid "Position is occupied by a train."
-msgstr "Ein Zug steht an dieser Position."
-
-#: advtrains/tracks.lua:622
-msgid "There's a Track Circuit Break here."
-msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)."
-
-#: advtrains/tracks.lua:626
-msgid "There's a Signal Influence Point here."
-msgstr "Hier ist ein Signal-Beeinflussungspunkt."
-
-#: advtrains/tracks.lua:637
+#: track_reg_helper.lua
msgid "@1 Slope"
msgstr "@1 Steigung"
-#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
-msgid "Can't place slope: not pointing at node."
-msgstr "Es kann nicht platziert werden: Sie zeigen nicht auf einem Block."
-
-#: advtrains/tracks.lua:658
-msgid "Can't place slope: space occupied."
-msgstr "Es kann nicht platziert werden: Diese Position ist besetzt."
-
-#: advtrains/tracks.lua:711
-msgid "Can't place slope: Not enough slope items left (@1 required)."
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: Not enough slope items left (@1 required)"
msgstr ""
"Es kann nicht platziert werden: Sie haben nicht genug Steigungsblöcke, es "
"werden insgesamt @1 benötigt."
-#: advtrains/tracks.lua:714
-msgid "Can't place slope: There's no slope of length @1."
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: There's no slope of length @1"
msgstr ""
"Es kann nicht platziert werden: die Steigung der Länge @1 ist nicht "
"definiert."
-#: advtrains/tracks.lua:721
-msgid "Can't place slope: no supporting node at upper end."
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: no supporting node at upper end."
msgstr ""
"Es kann nicht platziert werden: es gibt keinen unterstützenden Block am Ende "
"der Steigung."
-#: advtrains/trainhud.lua:305
-msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
-msgstr ""
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: not pointing at node"
+msgstr "Es kann nicht platziert werden: Sie zeigen nicht auf einem Block."
-#: advtrains/wagons.lua:179
-msgid "This wagon is owned by @1, you can't destroy it."
-msgstr "Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen."
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: space occupied!"
+msgstr "Es kann nicht platziert werden: Diese Position ist besetzt."
-#: advtrains/wagons.lua:203
-msgid "The wagon's inventory is not empty."
-msgstr "Das Inventar dieses Waggons ist nicht leer."
+#: track_reg_helper.lua tracks.lua
+#, fuzzy
+msgid "This track can not be removed!"
+msgstr "Dieses Gleis kann nicht entfernt werden."
-#: advtrains/wagons.lua:210
-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."
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be changed using the trackworker!"
+msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden."
-#: advtrains/wagons.lua:216
-msgid ""
-"Warning: If you destroy this wagon, you only get some steel back! If you are "
-"sure, hold Sneak and left-click the wagon."
-msgstr ""
-"Warnung: Durch den Abbau des Waggons erhalten Sie nur etwas Stahl zurück. "
-"Nutzen Sie Schleichen+Linksklick, um dem Waggon abzubauen."
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be rotated using the trackworker!"
+msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden."
-#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
-msgid "Show Inventory"
-msgstr "Inventar Zeigen"
+#: trackplacer.lua
+#, fuzzy
+msgid "This track can not be rotated!"
+msgstr "Dieses Gleis kann nicht gedreht werden."
-#: advtrains/wagons.lua:652
-msgid "Onboard Computer"
+#: trackplacer.lua
+msgid ""
+"Track Worker Tool\n"
+"\n"
+"Left-click: change rail type (straight/curve/switch)\n"
+"Right-click: rotate object"
msgstr ""
+"Gleiswerkzeug\n"
+"\n"
+"Linksklick: Gleistyp ändern\n"
+"Rechtsklick: Objekt drehen"
-#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
-msgid "Wagon properties"
-msgstr "Waggon-Einstellungen"
+#: tracks.lua
+msgid "Position is occupied by a train."
+msgstr "Ein Zug steht an dieser Position."
-#: advtrains/wagons.lua:658
-msgid "Get off"
-msgstr "Aussteigen"
+#: tracks.lua
+msgid "There's a Signal Influence Point here."
+msgstr "Hier ist ein Signal-Beeinflussungspunkt."
-#: advtrains/wagons.lua:661
-msgid "Get off (forced)"
-msgstr "Ausstieg zwingen"
+#: tracks.lua
+msgid "There's a Track Circuit Break here."
+msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)."
-#: advtrains/wagons.lua:663
-msgid "(Doors closed)"
-msgstr "(Türen geschlossen)"
+#: trainhud.lua
+msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
+msgstr ""
+"ROTES SIGNAL ÜBERFAHREN! Situation überprüfen und Fahrtrichtung wechseln, um "
+"Bewegungssperre aufzuheben."
-#: advtrains/wagons.lua:692
-msgid "This wagon has no seats."
-msgstr "In diesem Waggon ist kein Sitzplatz vorhanden."
+#: wagonprop_tool.lua
+msgid "Insufficient privileges to use this!"
+msgstr "Unzureichende Privilegien, um dies zu benutzen!"
-#: advtrains/wagons.lua:703
-msgid "This wagon is full."
-msgstr "Der Waggon ist voll."
+#: wagonprop_tool.lua
+#, fuzzy
+msgid "Wagon Properties Tool"
+msgstr "Waggon-Einstellungen"
-#: advtrains/wagons.lua:706
-msgid "Doors are closed! (Try holding sneak key!)"
-msgstr "Die Türen sind geschlossen."
+#: wagonprop_tool.lua
+msgid ""
+"Wagon Properties Tool\n"
+"Punch a wagon to view and edit the Wagon Properties"
+msgstr ""
+"Waggon-Einstellungstool\n"
+"Auf Waggon anwenden um Waggon-Einstellungen aufzurufen"
-#: advtrains/wagons.lua:712
-msgid "You can't get on this wagon."
-msgstr "Sie können nicht in diesen Waggon einsteigen."
+#: wagons.lua
+msgid " units"
+msgstr " Einheiten"
-#: advtrains/wagons.lua:838
-msgid "Select seat:"
-msgstr "Wählen Sie einen Sitzplatz aus:"
+#: wagons.lua
+msgid "!!! Train off track !!!"
+msgstr "!!! Abseits vom Gleis !!!"
-#: advtrains/wagons.lua:880
-msgid "Save wagon properties"
-msgstr "Waggon-Einstellungen speichern"
+#: wagons.lua
+msgid "(Doors closed)"
+msgstr "(Türen geschlossen)"
-#: advtrains/wagons.lua:965
-msgid "Text displayed outside on train"
-msgstr "Äußere Anzeige"
+#: wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr "Diese Spieler dürfen auf den Waggon zugreifen:"
-#: advtrains/wagons.lua:966
-msgid "Text displayed inside train"
-msgstr "Innere Anzeige"
+#: wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr "ARS-Sperre aufheben"
-#: advtrains/wagons.lua:967
-msgid "Line"
-msgstr "Linie"
+#: wagons.lua
+msgid "Current FC: "
+msgstr "Aktueller FC:"
-#: advtrains/wagons.lua:968
-msgid "Routingcode"
+#: wagons.lua
+msgid ""
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
msgstr ""
+"Waggon mit Inventar zerstört, aber Inventar nicht gefunden? Sollte nicht "
+"passieren!"
-#: advtrains/wagons.lua:1241
+#: wagons.lua
+msgid "Doors are closed! (Try holding sneak key!)"
+msgstr "Die Türen sind geschlossen! (Probiere Schleichen-Taste!)"
+
+#: wagons.lua
msgid ""
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
"off."
@@ -417,258 +511,188 @@ msgstr ""
"Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz "
"geschlossener Türen auszusteigen."
-#: advtrains/wagons.lua:1250
-msgid "You are not allowed to access the driver stand."
-msgstr "Sie haben keinen Zugang zum Führerstand."
-
-#: advtrains_interlocking/tsr_rail.lua:13
-msgid "Point speed restriction: @1"
-msgstr "Geschwindigkeitskontrolle: @1"
-
-#: advtrains_interlocking/tsr_rail.lua:14
-msgid "Set point speed restriction:"
-msgstr ""
-
-#: advtrains_interlocking/tsr_rail.lua:30
-msgid "You are not allowed to configure this track without the @1 privilege."
-msgstr "Sie dürfen ohne das „@1“-Privileg dieses Gleis nicht konfigurieren."
-
-#: advtrains_interlocking/tsr_rail.lua:34
-#: advtrains_line_automation/stoprail.lua:31
-#: advtrains_line_automation/stoprail.lua:76
-msgid "You are not allowed to configure this track."
-msgstr "Sie dürfen dieses Gleis nicht konfigurieren."
-
-#: advtrains_interlocking/tsr_rail.lua:64
-msgid "Point Speed Restriction Track"
-msgstr "Geschwindigkeitskontrollgleis"
+#: wagons.lua
+msgid "Freight Code:"
+msgstr "Frachtcode:"
-#: advtrains_line_automation/stoprail.lua:54
-msgid "Station Code"
-msgstr "Kennzeichen der Haltestelle"
-
-#: advtrains_line_automation/stoprail.lua:55
-msgid "Station Name"
-msgstr "Name der Haltestelle"
-
-#: advtrains_line_automation/stoprail.lua:56
-msgid "Door Delay"
-msgstr "Zeit für die Türschließung"
-
-#: advtrains_line_automation/stoprail.lua:57
-msgid "Dep. Speed"
-msgstr "Zielgeschwindigkeit bei Abfahrt"
-
-#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
-#: advtrains_train_track/init.lua:156
-msgid "Track"
-msgstr "Gleis"
-
-#: advtrains_line_automation/stoprail.lua:59
-msgid "Stop Time"
-msgstr "Wartezeit"
-
-#: advtrains_line_automation/stoprail.lua:60
-msgid "Door Side"
-msgstr "Türseite"
-
-#: advtrains_line_automation/stoprail.lua:62
-msgid "Reverse train"
-msgstr "Zug Umkehren"
+#: wagons.lua
+msgid "Get off"
+msgstr "Aussteigen"
-#: advtrains_line_automation/stoprail.lua:63
-msgid "Kick out passengers"
-msgstr "Fahrgäste zum Ausstieg zwingen"
+#: wagons.lua
+msgid "Get off (forced)"
+msgstr "Ausstieg zwingen"
-#: advtrains_line_automation/stoprail.lua:97
-msgid "Station code \"@1\" already exists and is owned by @2."
-msgstr ""
-"Die Haltestelle mit dem Kennzeichen „@1“ ist bereits vorhanden und wird von "
-"@2 verwaltet."
+#: wagons.lua
+msgid "Line"
+msgstr "Linie"
-#: advtrains_line_automation/stoprail.lua:111
-msgid "This station is owned by @1. You are not allowed to edit its name."
-msgstr ""
-"Diese Haltestelle wird von @1 verwaltet. Sie dürfen sie nicht umbenennen."
+#: wagons.lua
+msgid "Liquid: "
+msgstr "Flüssigkeit:"
-#: advtrains_line_automation/stoprail.lua:221
-msgid "Station/Stop Track"
-msgstr "Gleis zur Kennzeichnung einer Haltestelle"
+#: wagons.lua
+msgid "Liquid: empty"
+msgstr "Flüssigkeit: leer"
-#: advtrains_luaautomation/active_common.lua:17
-msgid "Unconfigured LuaATC component"
-msgstr "Nicht konfiguierter LuaATC-Bauteil"
+#: wagons.lua
+msgid "Missing train_operator privilege"
+msgstr "Fehlendes train_operator Privileg"
-#: advtrains_luaautomation/active_common.lua:46
-msgid "LuaATC Environment"
-msgstr ""
+#: wagons.lua
+msgid "Next FC:"
+msgstr "Nächster FC:"
-#: advtrains_luaautomation/active_common.lua:49
-msgid "Clear Local Environment"
-msgstr ""
+#: wagons.lua
+msgid "Not a valid wagon id."
+msgstr "Keine gültige Waggon-ID"
-#: advtrains_luaautomation/active_common.lua:50
-msgid "Code"
-msgstr ""
+#: wagons.lua
+msgid "Not allowed to do this."
+msgstr "Sie dürfen dies nicht tun."
-#: advtrains_luaautomation/active_common.lua:64
-msgid ""
-"You are not allowed to configure this LuaATC component without the @1 "
-"privilege."
-msgstr ""
-"Sie dürfen ohne das „@1“-Privileg diesen LuaATC-Bauteil nicht konfigurieren."
+#: wagons.lua
+msgid "Onboard Computer"
+msgstr "Bordcomputer"
-#: advtrains_luaautomation/active_common.lua:94
-msgid "LuaATC component assigned to environment '@1'"
+#: wagons.lua
+msgid "Please specify a player name to transfer ownership to."
msgstr ""
+"Geben Sie einen Spielernamen an, an den der Besitz übertragen werden soll."
-#: advtrains_luaautomation/active_common.lua:96
-msgid "LuaATC component assigned to an invalid environment"
-msgstr ""
+#: wagons.lua
+msgid "Prev FC"
+msgstr "Vorheriger FC"
-#: advtrains_luaautomation/active_common.lua:171
-msgid "LuaATC component with error: @1"
-msgstr "LuaATC-Bauteil mit Fehlermeldung: @1"
+#: wagons.lua
+msgid "Remote Routesetting"
+msgstr "Fahrstraße entfernt stellen"
-#: advtrains_luaautomation/init.lua:13
-msgid ""
-"Can place and configure LuaATC components, including execute potentially "
-"harmful Lua code"
-msgstr ""
-"Kann LuaATC-Bauteile platzieren und konfigurieren (auch evtl. schädliche "
-"Programme ausführen)"
+#: wagons.lua
+msgid "Routingcode"
+msgstr "Routingcode"
-#: advtrains_luaautomation/mesecon_controller.lua:211
-msgid "LuaATC Mesecon Controller"
-msgstr ""
+#: wagons.lua
+msgid "Save wagon properties"
+msgstr "Waggon-Einstellungen speichern"
-#: advtrains_luaautomation/operation_panel.lua:11
-msgid "LuaATC Operation Panel"
-msgstr ""
+#: wagons.lua
+msgid "Select seat:"
+msgstr "Wählen Sie einen Sitzplatz aus:"
-#: advtrains_luaautomation/pcnaming.lua:28
-msgid ""
-"Passive Component Naming Tool\n"
-"\n"
-"Right-click to name a passive component."
-msgstr ""
-"PC-Benennungswerkzeug\n"
-"\n"
-"Rechtsklick zur Benennung der passiven Komponente."
+#: wagons.lua
+msgid "Show Inventory"
+msgstr "Inventar Zeigen"
-#: advtrains_luaautomation/pcnaming.lua:39
-msgid ""
-"You are not allowed to name LuaATC passive components without the @1 "
-"privilege."
-msgstr "Sie dürfen ohne das „@1“ keinen passiven LuaATC-Bauteil benennen."
+#: wagons.lua
+msgid "Text displayed inside train"
+msgstr "Innere Anzeige"
-#: advtrains_luaautomation/pcnaming.lua:62
-msgid "Set name of component (empty to clear)"
-msgstr ""
+#: wagons.lua
+msgid "Text displayed outside on train"
+msgstr "Äußere Anzeige"
-#: advtrains_train_industrial/init.lua:10
-#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
-#: advtrains_train_steam/init.lua:91
-msgid "Driver Stand (right)"
-msgstr "Führerstand Rechts"
+#: wagons.lua
+msgid "That player does not exist!"
+msgstr "Dieser Spieler existiert nicht!"
-#: advtrains_train_industrial/init.lua:17
-#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
-#: advtrains_train_steam/init.lua:85
-msgid "Driver Stand (left)"
-msgstr "Führerstand Links"
+#: wagons.lua
+msgid "That wagon does not exist!"
+msgstr "Dieser Wagen existiert nicht!"
-#: advtrains_train_industrial/init.lua:40
-msgid "Industrial Train Engine"
-msgstr "Industrielle Lokomotive"
+#: wagons.lua
+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_train_industrial/init.lua:79
-msgid "Big Industrial Train Engine"
-msgstr "Große Industrielle Lokomotive"
+#: wagons.lua
+msgid "The wagon's inventory is not empty."
+msgstr "Das Inventar dieses Waggons ist nicht leer."
-#: advtrains_train_industrial/init.lua:98
-msgid "Industrial tank wagon"
-msgstr "Tankwaggon"
+#: wagons.lua
+msgid "This Wagon ID"
+msgstr "Dieser Wagen ID"
-#: advtrains_train_industrial/init.lua:116
-msgid "Industrial wood wagon"
-msgstr "Holztransportwaggon"
+#: wagons.lua
+msgid "This wagon has no seats."
+msgstr "In diesem Waggon ist kein Sitzplatz vorhanden."
-#: advtrains_train_japan/init.lua:4
-msgid "Japanese Train Inter-Wagon Connection"
-msgstr "Waggonzwischenverbindung Japanischer Personenzüge"
+#: wagons.lua
+msgid "This wagon is full."
+msgstr "Der Waggon ist voll."
-#: advtrains_train_japan/init.lua:37
-msgid "Driver stand"
-msgstr "Führerstand"
+#: wagons.lua
+msgid "This wagon is owned by @1, you can't destroy it."
+msgstr "Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen."
-#: advtrains_train_japan/init.lua:101
-msgid "Japanese Train Engine"
-msgstr "Japanische Personenzug-Lokomotive"
+#: wagons.lua
+msgid "Train ID"
+msgstr "Zug-ID"
-#: advtrains_train_japan/init.lua:176
-msgid "Japanese Train Wagon"
-msgstr "Japanischer Personenzug-Passagierwaggon"
+#: wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
+msgstr "Zugübersicht / Kupplungssteuerung nur im Stillstand verfügbar."
-#: advtrains_train_steam/init.lua:75
-msgid "Steam Engine"
-msgstr "Dampflokomotive"
+#: wagons.lua
+msgid "Train overview /coupling control:"
+msgstr "Zugübersicht / Kupplungssteuerung:"
-#: advtrains_train_steam/init.lua:159
-msgid "Detailed Steam Engine"
-msgstr "Detaillierte Dampflokomotive"
+#: wagons.lua
+msgid "Uninitialized, removing"
+msgstr "Nicht initialisiert, entferne"
-#: advtrains_train_steam/init.lua:206
-msgid "Passenger Wagon"
-msgstr "Passagierwaggon"
+#: wagons.lua
+msgid "Wagon @1 ownership changed from @2 to @3"
+msgstr "Besitzer von Waggon @1 geändert von @2 auf @3"
-#: advtrains_train_steam/init.lua:226
-msgid "Box Wagon"
-msgstr "Güterwaggon"
+#: 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."
-#: advtrains_train_subway/init.lua:144
-msgid "Subway Passenger Wagon"
-msgstr "U-Bahn-Waggon"
+#: wagons.lua
+msgid "Wagon placeholder"
+msgstr "Waggon-Platzhalter"
-#: advtrains_train_track/init.lua:31
-msgid "Y-turnout"
-msgstr "Y-Weiche"
+#: wagons.lua
+msgid "Wagon properties"
+msgstr "Waggon-Einstellungen"
-#: advtrains_train_track/init.lua:49
-msgid "3-way turnout"
-msgstr "Dreiwegweiche"
+#: wagons.lua
+msgid "Wagon road number:"
+msgstr "Wagennummer:"
-#: advtrains_train_track/init.lua:69
-msgid "Perpendicular Diamond Crossing Track"
-msgstr "Kreuzung mit zueinander orthogonalen Gleisen"
+#: wagons.lua
+msgid ""
+"Warning: If you destroy this wagon, you only get some steel back! If you are "
+"sure, hold Sneak and left-click the wagon."
+msgstr ""
+"Warnung: Durch den Abbau des Waggons erhalten Sie nur etwas Stahl zurück. "
+"Nutzen Sie Schleichen+Linksklick, um dem Waggon abzubauen."
-#: advtrains_train_track/init.lua:91
-msgid "90+Angle Diamond Crossing Track"
-msgstr "Kreuzung mit einem achsenparallelen Gleis"
+#: wagons.lua
+msgid "You are not allowed to access the driver stand."
+msgstr "Sie haben keinen Zugang zum Führerstand."
-#: advtrains_train_track/init.lua:132
-msgid "Diagonal Diamond Crossing Track"
-msgstr "Diagonale Gleiskreuzung"
+#: wagons.lua
+msgid "You can't get on this wagon."
+msgstr "Sie können nicht in diesen Waggon einsteigen."
-#: advtrains_train_track/init.lua:179
-msgid "Bumper"
-msgstr "Prellbock"
+#: wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "Ihnen fehlt das „@1“-Privileg."
-#: advtrains_train_track/init.lua:201
-msgid "ATC controller"
-msgstr "Zugbeeinflussungsgleis"
+#: wagons.lua
+msgid "You have been given ownership of wagon @1"
+msgstr "Sie sind nun der Besitzer von Waggon @1"
-#: advtrains_train_track/init.lua:317
-msgid "Unloading Track"
-msgstr "Abladungsgleis"
+#~ msgid "3-way turnout"
+#~ msgstr "Dreiwegweiche"
-#: advtrains_train_track/init.lua:342
-msgid "Loading Track"
-msgstr "Beladungsgleis"
+#~ msgid "90+Angle Diamond Crossing Track"
+#~ msgstr "Kreuzung mit einem achsenparallelen Gleis"
-#: advtrains_train_track/init.lua:406
-msgid "Detector Rail"
-msgstr "Detektorgleis"
+#~ msgid "ATC controller"
+#~ msgstr "Zugbeeinflussungsgleis"
#~ msgid ""
#~ "ATC controller, mode @1\n"
@@ -680,6 +704,22 @@ msgstr "Detektorgleis"
#~ msgid "Access to @1"
#~ msgstr "Zugang zu @1"
+#~ msgid "Big Industrial Train Engine"
+#~ msgstr "Große Industrielle Lokomotive"
+
+#~ msgid "Box Wagon"
+#~ msgstr "Güterwaggon"
+
+#~ msgid "Bumper"
+#~ msgstr "Prellbock"
+
+#~ msgid ""
+#~ "Can place and configure LuaATC components, including execute potentially "
+#~ "harmful Lua code"
+#~ msgstr ""
+#~ "Kann LuaATC-Bauteile platzieren und konfigurieren (auch evtl. schädliche "
+#~ "Programme ausführen)"
+
#~ msgid "Can't get on: wagon full or doors closed!"
#~ msgstr ""
#~ "Sie können nicht einsteigen: der Waggon ist voll oder die Türen sind "
@@ -688,37 +728,198 @@ msgstr "Detektorgleis"
#~ msgid "Can't place: protected position!"
#~ msgstr "Es kann nicht platziert werden: diese Position ist geschützt."
+#~ msgid "Command (on)"
+#~ msgstr "Befehl (wenn aktiviert)"
+
#~ msgid "Default Seat"
#~ msgstr "Standardsitzplatz"
#~ msgid "Default Seat (driver stand)"
#~ msgstr "Standardsitzplatz (Führerstand)"
+#~ msgid "Dep. Speed"
+#~ msgstr "Zielgeschwindigkeit bei Abfahrt"
+
#~ msgid "Deprecated Track"
#~ msgstr "ausrangiertes Gleis, nicht verwenden."
+#~ msgid "Detailed Steam Engine"
+#~ msgstr "Detaillierte Dampflokomotive"
+
+#~ msgid "Detector Rail"
+#~ msgstr "Detektorgleis"
+
+#~ msgid "Diagonal Diamond Crossing Track"
+#~ msgstr "Diagonale Gleiskreuzung"
+
+#~ msgid "Door Delay"
+#~ msgstr "Zeit für die Türschließung"
+
+#~ msgid "Door Side"
+#~ msgstr "Türseite"
+
+#, fuzzy
+#~ msgid "Driver Stand"
+#~ msgstr "Führerstand"
+
+#~ msgid "Driver Stand (left)"
+#~ msgstr "Führerstand Links"
+
+#~ msgid "Driver Stand (right)"
+#~ msgstr "Führerstand Rechts"
+
+#~ msgid "Driver stand"
+#~ msgstr "Führerstand"
+
+#~ msgid "Industrial Train Engine"
+#~ msgstr "Industrielle Lokomotive"
+
+#~ msgid "Industrial tank wagon"
+#~ msgstr "Tankwaggon"
+
+#~ msgid "Industrial wood wagon"
+#~ msgstr "Holztransportwaggon"
+
+#~ msgid "Japanese Train Engine"
+#~ msgstr "Japanische Personenzug-Lokomotive"
+
+#~ msgid "Japanese Train Inter-Wagon Connection"
+#~ msgstr "Waggonzwischenverbindung Japanischer Personenzüge"
+
+#~ msgid "Japanese Train Wagon"
+#~ msgstr "Japanischer Personenzug-Passagierwaggon"
+
+#, fuzzy
+#~ msgid "Japanese signal pole"
+#~ msgstr "Japanischer Personenzug-Passagierwaggon"
+
+#~ msgid "Kick out passengers"
+#~ msgstr "Fahrgäste zum Ausstieg zwingen"
+
+#~ msgid "Loading Track"
+#~ msgstr "Beladungsgleis"
+
#~ msgid "Lock couples"
#~ msgstr "Kupplungen sperren"
+#~ msgid "LuaATC component with error: @1"
+#~ msgstr "LuaATC-Bauteil mit Fehlermeldung: @1"
+
+#~ msgid "Passenger Wagon"
+#~ msgstr "Passagierwaggon"
+
+#, fuzzy
+#~ msgid "Passenger area"
+#~ msgstr "Passagierwaggon"
+
+#~ msgid ""
+#~ "Passive Component Naming Tool\n"
+#~ "\n"
+#~ "Right-click to name a passive component."
+#~ msgstr ""
+#~ "PC-Benennungswerkzeug\n"
+#~ "\n"
+#~ "Rechtsklick zur Benennung der passiven Komponente."
+
+#~ msgid "Perpendicular Diamond Crossing Track"
+#~ msgstr "Kreuzung mit zueinander orthogonalen Gleisen"
+
+#~ msgid "Point Speed Restriction Track"
+#~ msgstr "Geschwindigkeitskontrollgleis"
+
+#~ msgid "Point speed restriction: @1"
+#~ msgstr "Geschwindigkeitskontrolle: @1"
+
+#~ msgid "Reverse train"
+#~ msgstr "Zug Umkehren"
+
+#~ msgid "Signal"
+#~ msgstr "Lichtsignal"
+
#~ msgid "Speed:"
#~ msgstr "Geschw.:"
+#~ msgid "Station Code"
+#~ msgstr "Kennzeichen der Haltestelle"
+
+#~ msgid "Station Name"
+#~ msgstr "Name der Haltestelle"
+
+#~ msgid "Station code \"@1\" already exists and is owned by @2."
+#~ msgstr ""
+#~ "Die Haltestelle mit dem Kennzeichen „@1“ ist bereits vorhanden und wird "
+#~ "von @2 verwaltet."
+
+#~ msgid "Station/Stop Track"
+#~ msgstr "Gleis zur Kennzeichnung einer Haltestelle"
+
+#~ msgid "Steam Engine"
+#~ msgstr "Dampflokomotive"
+
+#~ msgid "Stop Time"
+#~ msgstr "Wartezeit"
+
+#~ msgid "Subway Passenger Wagon"
+#~ msgstr "U-Bahn-Waggon"
+
#~ msgid "Target:"
#~ msgstr "Zielges.:"
#~ msgid "This position is protected!"
#~ msgstr "Diese Position ist geschützt!"
+#~ msgid "This station is owned by @1. You are not allowed to edit its name."
+#~ msgstr ""
+#~ "Diese Haltestelle wird von @1 verwaltet. Sie dürfen sie nicht umbenennen."
+
+#~ msgid "This track can not be changed."
+#~ msgstr "Dieses Gleis kann nicht geändert werden."
+
+#~ msgid "Track"
+#~ msgstr "Gleis"
+
+#, fuzzy
+#~ msgid "Train "
+#~ msgstr "Der Zug wurde Kopiert."
+
+#~ msgid "Unconfigured LuaATC component"
+#~ msgstr "Nicht konfiguierter LuaATC-Bauteil"
+
+#~ msgid "Unloading Track"
+#~ msgstr "Abladungsgleis"
+
#~ msgid "Use Sneak+rightclick to bypass closed doors!"
#~ msgstr ""
#~ "Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen "
#~ "einzusteigen."
+#~ msgid "Y-turnout"
+#~ msgstr "Y-Weiche"
+
+#~ msgid ""
+#~ "You are not allowed to configure this LuaATC component without the @1 "
+#~ "privilege."
+#~ msgstr ""
+#~ "Sie dürfen ohne das „@1“-Privileg diesen LuaATC-Bauteil nicht "
+#~ "konfigurieren."
+
+#~ msgid ""
+#~ "You are not allowed to configure this track without the @1 privilege."
+#~ 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."
+
#, fuzzy
#~ msgid "You are not allowed to modify this protected track."
#~ msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen."
#~ msgid ""
+#~ "You are not allowed to name LuaATC passive components without the @1 "
+#~ "privilege."
+#~ msgstr "Sie dürfen ohne das „@1“ keinen passiven LuaATC-Bauteil benennen."
+
+#~ msgid ""
#~ "You need to own at least one neighboring wagon to destroy this couple."
#~ msgstr ""
#~ "Sie müssen Besitzer eines angrenzenden Waggons sein, um hier abzukuppeln."
diff --git a/advtrains/po/fr.po b/advtrains/po/fr.po
index c744d2c..b2a54da 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: 2023-10-09 11:02+0200\n"
-"PO-Revision-Date: 2024-11-02 21:31+0100\n"
+"POT-Creation-Date: 2025-06-10 21:40+0200\n"
+"PO-Revision-Date: 2025-03-25 15:06+0100\n"
"Last-Translator: Tanavit <tanavit@posto.ovh>\n"
"Language-Team: French\n"
"Language: fr\n"
@@ -12,57 +12,87 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
-#: advtrains/atc.lua:109
-msgid "Unconfigured ATC controller"
-msgstr "Controlleur ATC, non-configuré"
+#: atc.lua
+msgid "ATC Kick command warning: doors are closed."
+msgstr "Avertissement commande ATC Éjecter : portes closes."
-#: advtrains/atc.lua:150
-msgid ""
-"ATC controller, mode @1\n"
-"Command: @2"
+#: atc.lua
+msgid "ATC Kick command warning: train moving."
+msgstr "Avertissement commande ATC Éjecter : train en mouvement."
+
+#: atc.lua
+msgid "ATC Reverse command warning: didn't reverse train, train moving."
+msgstr ""
+"Attention : Commande ATC de renversement impossible car le train se déplace."
+
+#: atc.lua
+msgid "ATC command parse error: Unknown command: @1"
+msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1"
+
+#: atc.lua
+msgid "ATC command syntax error: I statement not closed: @1"
+msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1"
+
+#: atc.lua
+#, fuzzy
+msgid "ATC controller, Command: @1"
msgstr ""
"Controlleur ATC, mode @1\n"
"Commande : @2"
-#: advtrains/atc.lua:180
+#: atc.lua
msgid "Command"
msgstr "Commande"
-#: advtrains/atc.lua:184
-msgid "Command (on)"
-msgstr "Commande (marche)"
-
-#: advtrains/atc.lua:187
+#: atc.lua
msgid "Digiline channel"
msgstr "Canal Digiline"
-#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
-#: advtrains_luaautomation/active_common.lua:48
+#: atc.lua wagons.lua
msgid "Save"
msgstr "Sauvegarder"
-#: advtrains/atc.lua:236
-msgid "ATC Reverse command warning: didn't reverse train, train moving."
-msgstr ""
-"Attention : Commande ATC de renversement impossible car le train se déplace."
+#: atc.lua
+msgid "Unconfigured ATC controller"
+msgstr "Controlleur ATC, non-configuré"
-#: advtrains/atc.lua:248
-msgid "ATC Kick command warning: doors are closed."
-msgstr "Avertissement commande ATC Éjecter : portes closes."
+#: copytool.lua
+msgid "Back of train would end up off track, cancelling."
+msgstr "La fin du train serait hors voie : annulation."
-#: advtrains/atc.lua:252
-msgid "ATC Kick command warning: train moving."
-msgstr "Avertissement commande ATC Éjecter : train en mouvement."
+#: copytool.lua
+msgid "No such lua entity."
+msgstr "Pas de telle entité lua."
-#: advtrains/atc.lua:322
-msgid "ATC command syntax error: I statement not closed: @1"
-msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1"
+#: copytool.lua
+msgid "No such train: @1."
+msgstr "Pas de tel train : @1."
-#: advtrains/atc.lua:385
-msgid "ATC command parse error: Unknown command: @1"
-msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1"
+#: copytool.lua
+msgid "No such wagon: @1."
+msgstr "Pas de tel wagon : @1."
-#: advtrains/copytool.lua:8
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Copy failed."
+msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec de la copie."
+
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Paste failed."
+msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec du collage."
+
+#: copytool.lua
+msgid "The clipboard is empty."
+msgstr "Le presse-papier est vide."
+
+#: copytool.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."
+
+#: copytool.lua
+msgid "Train copied."
+msgstr "Train copié."
+
+#: copytool.lua
msgid ""
"Train copy/paste tool\n"
"\n"
@@ -75,108 +105,209 @@ msgstr ""
"\n"
"Clic-Droit : collage"
-#: advtrains/copytool.lua:29
+#: copytool.lua
msgid "You do not have the @1 privilege."
msgstr "Vous ne possédez pas le privilège \"@1\"."
-#: advtrains/copytool.lua:41
-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/copytool.lua:47
-msgid "The clipboard couldn't access the metadata. Paste failed."
-msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec du collage."
-
-#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
-msgid "The clipboard is empty."
-msgstr "Le presse-papier est vide."
-
-#: advtrains/copytool.lua:74
-msgid "Back of train would end up off track, cancelling."
-msgstr "La fin du train serait hors voie : annulation."
-
-#: advtrains/copytool.lua:92
-msgid "No such lua entity."
-msgstr "Pas de telle entité lua."
-
-#: advtrains/copytool.lua:98
-msgid "No such wagon: @1."
-msgstr "Pas de tel wagon : @1."
-
-#: advtrains/copytool.lua:104
-msgid "No such train: @1."
-msgstr "Pas de tel train : @1."
-
-#: advtrains/copytool.lua:176
-msgid "The clipboard couldn't access the metadata. Copy failed."
-msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec de la copie."
-
-#: advtrains/copytool.lua:180
-msgid "Train copied."
-msgstr "Train copié."
+#: couple.lua
+msgid "<No coupler>"
+msgstr "<Pas de coupleur>"
-#: advtrains/couple.lua:28
+#: couple.lua
msgid "Buffer and Chain Coupler"
msgstr "Attelage à tampon et vis"
-#: advtrains/couple.lua:29
+#: couple.lua
+msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
+msgstr ""
+"Accouplement impossible: les attelages des trains ne concordent pas (@1 et "
+"@2)."
+
+#: couple.lua
+msgid ""
+"Cannot couple @1 and @2 - train would have length @3 which is above the "
+"limit of @4"
+msgstr ""
+
+#: couple.lua
msgid "Scharfenberg Coupler"
msgstr "Attelage Scharfenberg"
-#: advtrains/couple.lua:185
+#: couple.lua
msgid ""
"You are not allowed to couple trains without the train_operator privilege."
msgstr ""
"Vous n'êtes pas autorisé à coupler des trains sans le privilège "
"\"train_operator\"."
-#: advtrains/couple.lua:329 advtrains/couple.lua:333
-msgid "<No coupler>"
-msgstr "<Pas de coupleur>"
-
-#: advtrains/couple.lua:334
-msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
-msgstr ""
-"Accouplement impossible: les attelages des trains ne concordent pas (@1 et "
-"@2)."
-
-#: advtrains/craft_items.lua:3
+#: craft_items.lua
msgid "Boiler"
msgstr "Chaudière à vapeur"
-#: advtrains/craft_items.lua:9
+#: craft_items.lua
+msgid "Chimney"
+msgstr "Cheminée"
+
+#: craft_items.lua
msgid "Driver's cab"
msgstr "Cabine de pilotage"
-#: advtrains/craft_items.lua:15
+#: craft_items.lua
msgid "Wheel"
msgstr "Roue"
-#: advtrains/craft_items.lua:21
-msgid "Chimney"
-msgstr "Cheminée"
+#: init.lua
+#, fuzzy
+msgid "Advtrains Status: no_action @1 slowdown @2 (log @3)"
+msgstr "État d'advtrains : aucune action"
-#: advtrains/misc_nodes.lua:16
-msgid "@1 Platform (low)"
-msgstr "Quai @1 (bas)"
+#: init.lua
+msgid "Advtrains is already running normally!"
+msgstr "Advtrains fonctionne déjà correctement !"
-#: advtrains/misc_nodes.lua:33
-msgid "@1 Platform (high)"
-msgstr "Quai @1 (haut)"
+#: 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 !"
+
+#: 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 ?
+#: init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr "Suppression et recalcul de tous les routages"
+
+#: 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é."
+
+#: init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr "Désactive temporairement le pas global d'advtrains"
+
+#: init.lua
+msgid "Disabled advtrains successfully"
+msgstr "Succès de la désactivation d'advtrains"
+
+#: init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr "Appel de save() requis sans appel préalable de load() !"
+
+#: init.lua
+msgid "Print advtrains status info"
+msgstr "Affiche les informations d'état d'advtrains"
+
+#: init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr "Réacivation du pas global d'advtrains..."
+
+#: init.lua
+msgid "Reload successful!"
+msgstr "Succès du rechargement !"
+
+#: init.lua
+msgid "Removing unused wagon"
+msgstr "Suppression d'un wagon inutilisé"
+
+#: init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr "Restauration du l'état sauvegardé dans une seconde..."
+
+#: init.lua
+msgid "Returns the position of the train with the given id"
+msgstr "Affiche la position du train identifié"
+
+#: init.lua
+#, fuzzy
+msgid "Saving failed: @1"
+msgstr "Échec de sauvegarde : "
+
+# Routage est il le bon terme ?
+#: init.lua
+msgid "Successfully invalidated train routes"
+msgstr "Succès d'invalidation des routages des trains"
+
+#: init.lua
+#, fuzzy
+msgid "Teleporting to train @1"
+msgstr "Téléportation au train "
+
+#: 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/misc_nodes.lua:59
+#: 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 !"
+
+#: init.lua
+#, fuzzy
+msgid "Train @1 does not exist or is invalid"
+msgstr " n'existe pas ou est invalide"
+
+#: init.lua
+#, fuzzy
+msgid ""
+"Train @1 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 !"
+
+#: init.lua
+msgid "Train @1 is at @2"
+msgstr ""
+
+#: init.lua
+msgid "from wagon_save table."
+msgstr "de la table wagon_save."
+
+#: misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "Quai @1 (haut, 45°)"
-#: advtrains/misc_nodes.lua:81
+#: misc_nodes.lua
+msgid "@1 Platform (high)"
+msgstr "Quai @1 (haut)"
+
+#: misc_nodes.lua
+msgid "@1 Platform (low)"
+msgstr "Quai @1 (bas)"
+
+#: misc_nodes.lua
msgid "@1 Platform (low, 45 degree)"
msgstr "Quai @1 (bas, 45°)"
-#: advtrains/protection.lua:7
-msgid "Can place, remove and operate trains"
-msgstr "Possibilité de poser, retirer ou opérer les trains"
+#: protection.lua
+msgid "Can operate turnouts and signals in unprotected areas"
+msgstr ""
+"Possibilité d'opérer des embranchements et signaux dans les zones non "
+"protégées"
+
+#: protection.lua
+msgid "Can place and dig tracks in unprotected areas"
+msgstr "Possibilité de poser ou retirer des voies dans les zones non protégées"
-#: advtrains/protection.lua:12
+#: protection.lua
msgid ""
"Can place, remove and operate any train, regardless of owner, whitelist, or "
"protection"
@@ -184,40 +315,34 @@ msgstr ""
"Possibilité de poser, retirer ou opérer un quelconque train, indépendamment "
"du propriétaire, de la liste blanche ou de protection"
-#: advtrains/protection.lua:18
-msgid "Can place and dig tracks in unprotected areas"
-msgstr "Possibilité de poser ou retirer des voies dans les zones non protégées"
+#: protection.lua
+msgid "Can place, remove and operate trains"
+msgstr "Possibilité de poser, retirer ou opérer les trains"
-#: advtrains/protection.lua:24
-msgid "Can operate turnouts and signals in unprotected areas"
+#: protection.lua
+msgid "You are not allowed to build near tracks at this protected position."
msgstr ""
-"Possibilité d'opérer des embranchements et signaux dans les zones non "
-"protégées"
+"Vous ne pouvez pas construire à proximité d'une voie à cet emplacement "
+"protégé."
-#: advtrains/protection.lua:148
+#: protection.lua
msgid ""
"You are not allowed to build near tracks without the track_builder privilege."
msgstr ""
"Vous ne pouvez pas construire à proximité d'une voie sans le privilège "
"\"track_builder\" (?)"
-#: advtrains/protection.lua:148
+#: protection.lua
+msgid "You are not allowed to build tracks at this protected position."
+msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé."
+
+#: protection.lua
msgid ""
"You are not allowed to build tracks without the track_builder privilege."
msgstr ""
"Vous ne pouvez pas construire une voie sans le privilège \"track_builder\"."
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build near tracks at this protected position."
-msgstr ""
-"Vous ne pouvez pas construire à proximité d'une voie à cet emplacement "
-"protégé."
-
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build tracks at this protected position."
-msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé."
-
-#: advtrains/protection.lua:184
+#: protection.lua
msgid ""
"You are not allowed to operate turnouts and signals without the "
"railway_operator privilege."
@@ -225,31 +350,76 @@ msgstr ""
"Vous ne pouvez pas actionner les aiguillages ou les signaux (privilège "
"\"railway_operator\" manquant)"
-#: advtrains/signals.lua:63
-msgid "Lampless Signal"
+#: signals.lua
+msgid "Andrew's Cross"
+msgstr "Croix de Saint André"
+
+#: signals.lua
+#, fuzzy
+msgid "Lampless Signal (deprecated!)"
msgstr "Sémaphore"
-#: advtrains/signals.lua:127
-msgid "Signal"
-msgstr "Signal"
+#: signals.lua
+msgid "Signal (deprecated!)"
+msgstr ""
-#: advtrains/signals.lua:191
-msgid "Wallmounted Signal (left)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (left) (deprecated!)"
msgstr "Signal mural (gauche)"
-#: advtrains/signals.lua:192
-msgid "Wallmounted Signal (right)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (right) (deprecated!)"
msgstr "Signal mural (droit)"
-#: advtrains/signals.lua:193
-msgid "Wallmounted Signal (top)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (top) (deprecated!)"
msgstr "Signal mural (plafond)"
-#: advtrains/signals.lua:281 advtrains/signals.lua:322
-msgid "Andrew's Cross"
-msgstr "Croix de Saint André"
+#: track_reg_helper.lua
+msgid "@1 Slope"
+msgstr "Pente @1"
+
+#: track_reg_helper.lua
+msgid "Can't place: Not enough slope items left (@1 required)"
+msgstr ""
+"Placement impossible : quantité insuffisante de voie pentue (@1 manquant)"
+
+#: track_reg_helper.lua
+msgid "Can't place: There's no slope of length @1"
+msgstr "Placement impossible : il n'y a pas de voie pentue de longueur @1"
+
+#: track_reg_helper.lua
+msgid "Can't place: no supporting node at upper end."
+msgstr "Placement impossible : pas de nœud d'appui à l'extrémité supérieure."
+
+#: track_reg_helper.lua
+msgid "Can't place: not pointing at node"
+msgstr "Placement impossible : ne pointe pas un nœud"
-#: advtrains/trackplacer.lua:313
+#: track_reg_helper.lua
+msgid "Can't place: space occupied!"
+msgstr "Placement impossible : espace occupé !"
+
+#: track_reg_helper.lua tracks.lua
+msgid "This track can not be removed!"
+msgstr "Cette voie ne peut pas être enlevée !"
+
+#: trackplacer.lua
+msgid "This node can't be changed using the trackworker!"
+msgstr "Ce nœud ne peut être modifié avec l'outil \"Trackworker\" !"
+
+#: trackplacer.lua
+msgid "This node can't be rotated using the trackworker!"
+msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\" !"
+
+#: trackplacer.lua
+msgid "This track can not be rotated!"
+msgstr "Cette voie ne peut pas être tournée !"
+
+#: trackplacer.lua
msgid ""
"Track Worker Tool\n"
"\n"
@@ -262,413 +432,277 @@ msgstr ""
"\n"
"Clic-Droit : tourne l'objet"
-#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
-msgid "This node can't be rotated using the trackworker."
-msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\"."
-
-#: advtrains/trackplacer.lua:350
-msgid "This track can not be rotated."
-msgstr "Cette voie ne peut pas être tournée."
-
-#: advtrains/trackplacer.lua:404
-msgid "This node can't be changed using the trackworker."
-msgstr "Ce nœud ne peut être modifié avec l'outil \"Trackworker\"."
-
-#: advtrains/trackplacer.lua:414
-msgid "This track can not be changed."
-msgstr "Cette voie ne peut pas être modifiée."
-
-#: advtrains/tracks.lua:449
-msgid "This track can not be removed."
-msgstr "Cette voie ne peut pas être enlevée."
-
-#: advtrains/tracks.lua:616
+#: tracks.lua
msgid "Position is occupied by a train."
msgstr "Cet emplacement est occupé par un train."
-#: advtrains/tracks.lua:622
-msgid "There's a Track Circuit Break here."
-msgstr "Il y a un \"Track Circuit Break\" ici."
-
-#: advtrains/tracks.lua:626
+#: tracks.lua
msgid "There's a Signal Influence Point here."
msgstr "Il y a un \"Signal Influence Point\" ici."
-#: advtrains/tracks.lua:637
-msgid "@1 Slope"
-msgstr "Pente @1"
+#: tracks.lua
+msgid "There's a Track Circuit Break here."
+msgstr "Il y a un \"Track Circuit Break\" ici."
+
+#: trainhud.lua
+msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
+msgstr ""
+"Franchissement de signal rouge : examinez la situation et inversez le sens "
+"de marche du train."
-#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
-msgid "Can't place slope: not pointing at node."
-msgstr "Placement impossible : ne pointe pas un nœud."
+#: wagonprop_tool.lua
+msgid "Insufficient privileges to use this!"
+msgstr "Privilèges insuffisants pour utiliser ceci !"
-#: advtrains/tracks.lua:658
-msgid "Can't place slope: space occupied."
-msgstr "Placement impossible : espace occupé."
+#: wagonprop_tool.lua
+msgid "Wagon Properties Tool"
+msgstr "Outil de propriété du wagon"
-#: advtrains/tracks.lua:711
-msgid "Can't place slope: Not enough slope items left (@1 required)."
+#: wagonprop_tool.lua
+msgid ""
+"Wagon Properties Tool\n"
+"Punch a wagon to view and edit the Wagon Properties"
msgstr ""
-"Placement impossible : quantité insuffisante de voie pentue (@1 manquant)."
+"Outil de propriété du wagon\n"
+"Frappez un wagon pour voir et modifier ses propriétés"
-#: advtrains/tracks.lua:714
-msgid "Can't place slope: There's no slope of length @1."
-msgstr "Placement impossible : il n'y a pas de voie pentue de longueur @1."
+#: wagons.lua
+msgid " units"
+msgstr " Unités"
-#: advtrains/tracks.lua:721
-msgid "Can't place slope: no supporting node at upper end."
-msgstr "Placement impossible : pas de nœud d'appui à l'extrémité supérieure."
+#: wagons.lua
+msgid "!!! Train off track !!!"
+msgstr "!!! Train hors voie !!!"
-#: advtrains/trainhud.lua:305
-msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
-msgstr ""
-"Franchissement de signal rouge : examinez la situation et inversez le sens "
-"de marche du train."
+#: wagons.lua
+msgid "(Doors closed)"
+msgstr "(Portes closes)"
-#: advtrains/wagons.lua:179
-msgid "This wagon is owned by @1, you can't destroy it."
-msgstr "Ce wagon est la propriété de @1, vous ne pouvez pas le détruire."
+#: wagons.lua
+msgid "Allow these players to access your wagon:"
+msgstr "Autoriser ces joueurs à embarquer :"
-#: advtrains/wagons.lua:203
-msgid "The wagon's inventory is not empty."
-msgstr "Le stock de ce wagon n'est pas vide."
+#: wagons.lua
+msgid "Clear 'Disable ARS' flag"
+msgstr "Effacer le drapeau \"Désactiver l'ARS\""
-#: advtrains/wagons.lua:210
-msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
-msgstr ""
-"Les wagons doivent être désaccouplés des autres pour pouvoir être détruits."
+#: wagons.lua
+msgid "Current FC: "
+msgstr "Code de fret courant: "
-#: advtrains/wagons.lua:216
+#: wagons.lua
msgid ""
-"Warning: If you destroy this wagon, you only get some steel back! If you are "
-"sure, hold Sneak and left-click the wagon."
-msgstr ""
-"Attention: Si vous détruisez ce wagon, vous ne récupérerez que de la "
-"ferraille ! Si vous êtes sûr de vous, appuyez la touche \"Marcher lentement "
-"(Sneak)\" et Clic-Gauche."
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
+msgstr "Desctruction d'un wagon avec inventaire introuvable ? Anomalie !"
-#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
-msgid "Show Inventory"
-msgstr "Montrer le stock"
+#: wagons.lua
+msgid "Doors are closed! (Try holding sneak key!)"
+msgstr "Portes closes : (Essayez la \"sneak key\"!\")"
-#: advtrains/wagons.lua:652
-msgid "Onboard Computer"
-msgstr "Ordinateur embarqué"
+#: wagons.lua
+msgid ""
+"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
+"off."
+msgstr ""
+"Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour "
+"franchir les portes et débarquer."
-#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
-msgid "Wagon properties"
-msgstr "Propriétés du wagon"
+#: wagons.lua
+msgid "Freight Code:"
+msgstr "Code de frêt :"
-#: advtrains/wagons.lua:658
+#: wagons.lua
msgid "Get off"
msgstr "Débarquer"
-#: advtrains/wagons.lua:661
+#: wagons.lua
msgid "Get off (forced)"
msgstr "Débarquer (de force)"
-#: advtrains/wagons.lua:663
-msgid "(Doors closed)"
-msgstr "(Portes closes)"
+#: wagons.lua
+msgid "Line"
+msgstr "Ligne"
-#: advtrains/wagons.lua:692
-msgid "This wagon has no seats."
-msgstr "Ce wagon n'a pas de siège."
+#: wagons.lua
+msgid "Liquid: "
+msgstr "Liquide : "
-#: advtrains/wagons.lua:703
-msgid "This wagon is full."
-msgstr "Ce wagon est plein."
+#: wagons.lua
+msgid "Liquid: empty"
+msgstr "Liquide : vide"
-#: advtrains/wagons.lua:706
-msgid "Doors are closed! (Try holding sneak key!)"
-msgstr "Portes closes : (Essayez la \"sneak key\"!\")"
+#: wagons.lua
+msgid "Missing train_operator privilege"
+msgstr "Privilège \"train_operator\" manquant"
-#: advtrains/wagons.lua:712
-msgid "You can't get on this wagon."
-msgstr "Montée impossible dans ce wagon."
+#: wagons.lua
+msgid "Next FC:"
+msgstr "Code de fret suivant :"
-#: advtrains/wagons.lua:838
-msgid "Select seat:"
-msgstr "Choisir le siège :"
+#: wagons.lua
+msgid "Not a valid wagon id."
+msgstr "Identificateur de wagon invalide."
-#: advtrains/wagons.lua:880
-msgid "Save wagon properties"
-msgstr "Sauvegarder les propriétés du wagon"
+#: wagons.lua
+msgid "Not allowed to do this."
+msgstr "Vous n'êtes pas autorisé effectuer ceci."
-#: advtrains/wagons.lua:965
-msgid "Text displayed outside on train"
-msgstr "Texte affiché à l'extérieur du train"
+#: wagons.lua
+msgid "Onboard Computer"
+msgstr "Ordinateur embarqué"
-#: advtrains/wagons.lua:966
-msgid "Text displayed inside train"
-msgstr "Texte affiché à l'intérieur du train"
+#: wagons.lua
+msgid "Please specify a player name to transfer ownership to."
+msgstr ""
+"Spécifiez le nom du joueur à qui la propriété doit être transférée, SVP."
-#: advtrains/wagons.lua:967
-msgid "Line"
-msgstr "Ligne"
+#: wagons.lua
+msgid "Prev FC"
+msgstr "Code de fret précédent"
+
+#: wagons.lua
+msgid "Remote Routesetting"
+msgstr "Routage à distance"
-#: advtrains/wagons.lua:968
+#: wagons.lua
msgid "Routingcode"
msgstr "Code de routage"
-#: advtrains/wagons.lua:1241
-msgid ""
-"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
-"off."
-msgstr ""
-"Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour "
-"franchir les portes et débarquer."
-
-#: advtrains/wagons.lua:1250
-msgid "You are not allowed to access the driver stand."
-msgstr "Accès interdit au poste de pilotage."
+#: wagons.lua
+msgid "Save wagon properties"
+msgstr "Sauvegarder les propriétés du wagon"
-#: advtrains_interlocking/tsr_rail.lua:13
-msgid "Point speed restriction: @1"
-msgstr "Point de limitation de vitesse : @1"
+#: wagons.lua
+msgid "Select seat:"
+msgstr "Choisir le siège :"
-#: advtrains_interlocking/tsr_rail.lua:14
-msgid "Set point speed restriction:"
-msgstr "Placez un point de limitation de vitesse :"
+#: wagons.lua
+msgid "Show Inventory"
+msgstr "Montrer le stock"
-#: advtrains_interlocking/tsr_rail.lua:30
-msgid "You are not allowed to configure this track without the @1 privilege."
-msgstr "Vous n'êtes pas autorisé à configurer cette voie sans le privilège @1."
+#: wagons.lua
+msgid "Text displayed inside train"
+msgstr "Texte affiché à l'intérieur du train"
-#: advtrains_interlocking/tsr_rail.lua:34
-#: advtrains_line_automation/stoprail.lua:31
-#: advtrains_line_automation/stoprail.lua:76
-msgid "You are not allowed to configure this track."
-msgstr "Vous n'êtes pas autorisé à configurer cette voie."
+#: wagons.lua
+msgid "Text displayed outside on train"
+msgstr "Texte affiché à l'extérieur du train"
-#: advtrains_interlocking/tsr_rail.lua:64
-msgid "Point Speed Restriction Track"
-msgstr "Voie de point de limitation de vitesse"
+#: wagons.lua
+msgid "That player does not exist!"
+msgstr "Ce joueur n'existe pas !"
-#: advtrains_line_automation/stoprail.lua:54
-msgid "Station Code"
-msgstr "Code de Station"
+#: wagons.lua
+msgid "That wagon does not exist!"
+msgstr "Ce wagon n'a pas de siège !"
-#: advtrains_line_automation/stoprail.lua:55
-msgid "Station Name"
-msgstr "Nom de Station"
+#: 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_line_automation/stoprail.lua:56
-msgid "Door Delay"
-msgstr "Durée d'ouverture des portes"
+#: wagons.lua
+msgid "The wagon's inventory is not empty."
+msgstr "Le stock de ce wagon n'est pas vide."
-#: advtrains_line_automation/stoprail.lua:57
-msgid "Dep. Speed"
-msgstr "Vitesse de départ"
+#: wagons.lua
+msgid "This Wagon ID"
+msgstr "Identificateur du wagon"
-#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
-#: advtrains_train_track/init.lua:156
-msgid "Track"
-msgstr "Voie"
+#: wagons.lua
+msgid "This wagon has no seats."
+msgstr "Ce wagon n'a pas de siège."
-#: advtrains_line_automation/stoprail.lua:59
-msgid "Stop Time"
-msgstr "Durée d'arrêt"
+#: wagons.lua
+msgid "This wagon is full."
+msgstr "Ce wagon est plein."
-#: advtrains_line_automation/stoprail.lua:60
-msgid "Door Side"
-msgstr "Coté d'ouvertures des portes"
+#: wagons.lua
+msgid "This wagon is owned by @1, you can't destroy it."
+msgstr "Ce wagon est la propriété de @1, vous ne pouvez pas le détruire."
-#: advtrains_line_automation/stoprail.lua:62
-msgid "Reverse train"
-msgstr "Inversion du sens de marche"
+#: wagons.lua
+msgid "Train ID"
+msgstr "Identificateur du train"
-#: advtrains_line_automation/stoprail.lua:63
-msgid "Kick out passengers"
-msgstr "Éjecter les passagers"
+#: 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_line_automation/stoprail.lua:97
-msgid "Station code \"@1\" already exists and is owned by @2."
-msgstr "Le code de station \"@1\" existe et est possédé par @2."
+#: wagons.lua
+msgid "Train overview /coupling control:"
+msgstr "Aperçu du train / commande d'accouplement :"
-#: advtrains_line_automation/stoprail.lua:111
-msgid "This station is owned by @1. You are not allowed to edit its name."
-msgstr ""
-"Cette station est la propriété de @1. Vous n'êtes pas autorisé à modifier "
-"son nom."
+#: wagons.lua
+msgid "Uninitialized, removing"
+msgstr "Non initialisé, retiré"
-#: advtrains_line_automation/stoprail.lua:221
-msgid "Station/Stop Track"
-msgstr "Voie d'arrêt en station"
+#: wagons.lua
+msgid "Wagon @1 ownership changed from @2 to @3"
+msgstr "La propriété du wagon @1 a été transférée de @2 à @3"
-#: advtrains_luaautomation/active_common.lua:17
-msgid "Unconfigured LuaATC component"
-msgstr "Composant LuaATC non configuré"
+#: wagons.lua
+msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
+msgstr ""
+"Les wagons doivent être désaccouplés des autres pour pouvoir être détruits."
-#: advtrains_luaautomation/active_common.lua:46
-msgid "LuaATC Environment"
-msgstr "Environnement LuaATC"
+#: wagons.lua
+#, fuzzy
+msgid "Wagon placeholder"
+msgstr ", dans un espace réservé"
-#: advtrains_luaautomation/active_common.lua:49
-msgid "Clear Local Environment"
-msgstr "Effacer l'environnement LuaATC"
+#: wagons.lua
+msgid "Wagon properties"
+msgstr "Propriétés du wagon"
-#: advtrains_luaautomation/active_common.lua:50
-msgid "Code"
-msgstr "Code"
+#: wagons.lua
+msgid "Wagon road number:"
+msgstr "Immatriculation du wagon :"
-#: advtrains_luaautomation/active_common.lua:64
+#: wagons.lua
msgid ""
-"You are not allowed to configure this LuaATC component without the @1 "
-"privilege."
-msgstr "Vous ne pouvez configurer ce composant LuaATC sans le privilege @1."
+"Warning: If you destroy this wagon, you only get some steel back! If you are "
+"sure, hold Sneak and left-click the wagon."
+msgstr ""
+"Attention: Si vous détruisez ce wagon, vous ne récupérerez que de la "
+"ferraille ! Si vous êtes sûr de vous, appuyez la touche \"Marcher lentement "
+"(Sneak)\" et Clic-Gauche."
-#: advtrains_luaautomation/active_common.lua:94
-msgid "LuaATC component assigned to environment '@1'"
-msgstr "Composant LuaATC assigné à l'environnement '@1'"
+#: wagons.lua
+msgid "You are not allowed to access the driver stand."
+msgstr "Accès interdit au poste de pilotage."
-#: advtrains_luaautomation/active_common.lua:96
-msgid "LuaATC component assigned to an invalid environment"
-msgstr "Composant LuaATC assigné à un environnement invalide"
+#: wagons.lua
+msgid "You can't get on this wagon."
+msgstr "Montée impossible dans ce wagon."
-#: advtrains_luaautomation/active_common.lua:171
-msgid "LuaATC component with error: @1"
-msgstr "Erreur @1 du composant LuaATC"
+#: wagons.lua
+msgid "You don't have the train_operator privilege."
+msgstr "Vous ne possédez pas le privilège \"train_operator\"."
-#: advtrains_luaautomation/init.lua:13
-msgid ""
-"Can place and configure LuaATC components, including execute potentially "
-"harmful Lua code"
-msgstr ""
-"Permet le placement et la configuration de composants LuaATC avec risque "
-"d'exécution de code Lua dangereux"
+#: wagons.lua
+msgid "You have been given ownership of wagon @1"
+msgstr "La propriété du wagon @1 vous a été transférée"
-#: advtrains_luaautomation/mesecon_controller.lua:211
-msgid "LuaATC Mesecon Controller"
-msgstr "Commande Mesecon de LuaATC"
+#~ msgid " is at "
+#~ msgstr " est à la position "
-#: advtrains_luaautomation/operation_panel.lua:11
-msgid "LuaATC Operation Panel"
-msgstr "Panneau de commande de LuaATC"
+#~ msgid " wagon:destroy(): data is not set!"
+#~ msgstr " Appel de wagon:destroy() : données non définies !"
-#: advtrains_luaautomation/pcnaming.lua:28
-msgid ""
-"Passive Component Naming Tool\n"
-"\n"
-"Right-click to name a passive component."
-msgstr ""
-"Outil de nommage de composant passif\n"
-"\n"
-"Clic-Droit pour nommer un composant passif."
+#~ msgid "(log"
+#~ msgstr "(log"
-#: advtrains_luaautomation/pcnaming.lua:39
-msgid ""
-"You are not allowed to name LuaATC passive components without the @1 "
-"privilege."
-msgstr "Vous ne pouvez nommer un composant LuaATC passif sans le privilege @1."
-
-#: advtrains_luaautomation/pcnaming.lua:62
-msgid "Set name of component (empty to clear)"
-msgstr "Nommer le composant (chaîne vide pour effacer)"
-
-#: advtrains_train_industrial/init.lua:10
-#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
-#: advtrains_train_steam/init.lua:91
-msgid "Driver Stand (right)"
-msgstr "Poste de pilotage (droit)"
-
-#: advtrains_train_industrial/init.lua:17
-#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
-#: advtrains_train_steam/init.lua:85
-msgid "Driver Stand (left)"
-msgstr "Poste de pilotage (gauche)"
-
-#: advtrains_train_industrial/init.lua:40
-msgid "Industrial Train Engine"
-msgstr "Locomotive industrielle"
-
-#: advtrains_train_industrial/init.lua:79
-msgid "Big Industrial Train Engine"
-msgstr "Grosse locomotive industrielle"
-
-#: advtrains_train_industrial/init.lua:98
-msgid "Industrial tank wagon"
-msgstr "Wagon-citerne industriel"
-
-#: advtrains_train_industrial/init.lua:116
-msgid "Industrial wood wagon"
-msgstr "Wagon grumier industriel"
-
-#: advtrains_train_japan/init.lua:4
-msgid "Japanese Train Inter-Wagon Connection"
-msgstr "Passage inter-voiture de train Japonais"
-
-#: advtrains_train_japan/init.lua:37
-msgid "Driver stand"
-msgstr "Poste de pilotage"
-
-#: advtrains_train_japan/init.lua:101
-msgid "Japanese Train Engine"
-msgstr "Motrice Japonaise"
-
-#: advtrains_train_japan/init.lua:176
-msgid "Japanese Train Wagon"
-msgstr "Voiture Japonaise"
-
-#: advtrains_train_steam/init.lua:75
-msgid "Steam Engine"
-msgstr "Locomotive à vapeur"
-
-#: advtrains_train_steam/init.lua:159
-msgid "Detailed Steam Engine"
-msgstr "Locomotive à vapeur complexe"
-
-#: advtrains_train_steam/init.lua:206
-msgid "Passenger Wagon"
-msgstr "Voiture passager"
-
-#: advtrains_train_steam/init.lua:226
-msgid "Box Wagon"
-msgstr "Wagon de frêt"
-
-#: advtrains_train_subway/init.lua:144
-msgid "Subway Passenger Wagon"
-msgstr "Voiture de Métropolitain"
-
-#: advtrains_train_track/init.lua:31
-msgid "Y-turnout"
-msgstr "Embranchement en Y"
-
-#: advtrains_train_track/init.lua:49
-msgid "3-way turnout"
-msgstr "Embranchement triple"
-
-#: advtrains_train_track/init.lua:69
-msgid "Perpendicular Diamond Crossing Track"
-msgstr "Croisement perpendiculaire"
-
-#: advtrains_train_track/init.lua:91
-msgid "90+Angle Diamond Crossing Track"
-msgstr "Croisement perpendiculo-diagonal"
-
-#: advtrains_train_track/init.lua:132
-msgid "Diagonal Diamond Crossing Track"
-msgstr "Croisement diagonal"
-
-#: advtrains_train_track/init.lua:179
-msgid "Bumper"
-msgstr "Heurtoir"
-
-#: advtrains_train_track/init.lua:201
-msgid "ATC controller"
-msgstr "Controlleur ATC"
-
-#: advtrains_train_track/init.lua:317
-msgid "Unloading Track"
-msgstr "Voie de Déchargement"
+#~ msgid "3-way turnout"
+#~ msgstr "Embranchement triple"
-#: advtrains_train_track/init.lua:342
-msgid "Loading Track"
-msgstr "Voie de Chargement"
+#~ msgid "90+Angle Diamond Crossing Track"
+#~ msgstr "Croisement perpendiculo-diagonal"
-#: advtrains_train_track/init.lua:406
-msgid "Detector Rail"
-msgstr "Voie détectrice"
+#~ msgid "ATC controller"
+#~ msgstr "Controlleur ATC"
#~ msgid ""
#~ "ATC controller, mode @1\n"
@@ -680,6 +714,22 @@ msgstr "Voie détectrice"
#~ msgid "Access to @1"
#~ msgstr "Accès à @1"
+#~ msgid "Big Industrial Train Engine"
+#~ msgstr "Grosse locomotive industrielle"
+
+#~ msgid "Box Wagon"
+#~ msgstr "Wagon de frêt"
+
+#~ msgid "Bumper"
+#~ msgstr "Heurtoir"
+
+#~ msgid ""
+#~ "Can place and configure LuaATC components, including execute potentially "
+#~ "harmful Lua code"
+#~ msgstr ""
+#~ "Permet le placement et la configuration de composants LuaATC avec risque "
+#~ "d'exécution de code Lua dangereux"
+
#~ msgid "Can't get on: wagon full or doors closed!"
#~ msgstr ""
#~ "Embarquement impossible : le wagon est plein ou ses portes sont closes !"
@@ -687,21 +737,204 @@ msgstr "Voie détectrice"
#~ msgid "Can't place: protected position!"
#~ msgstr "Placement impossible : emplacement protégé"
+#~ msgid "Caution"
+#~ msgstr "Attention"
+
+#~ msgid "Clear (proceed)"
+#~ msgstr "Autorisation (procédez)"
+
+#~ msgid "Clear Local Environment"
+#~ msgstr "Effacer l'environnement LuaATC"
+
+#~ msgid "Closed"
+#~ msgstr "Fermé"
+
+#~ msgid "Code"
+#~ msgstr "Code"
+
+#~ msgid "Command (on)"
+#~ msgstr "Commande (marche)"
+
+#~ msgid "Danger (halt)"
+#~ msgstr "Danger (stop)"
+
#~ msgid "Default Seat"
#~ msgstr "Siège par défaut"
#~ msgid "Default Seat (driver stand)"
#~ msgstr "Siège par défaut (poste de pilotage)"
+#~ msgid "Dep. Speed"
+#~ msgstr "Vit. de départ"
+
#~ msgid "Deprecated Track"
#~ msgstr "Voie déconseillée"
+#~ msgid "Detailed Steam Engine"
+#~ msgstr "Locomotive à vapeur complexe"
+
+#~ msgid "Detector Rail"
+#~ msgstr "Voie détectrice"
+
+#~ msgid "Diagonal Diamond Crossing Track"
+#~ msgstr "Croisement diagonal"
+
+#~ msgid "Door Delay"
+#~ msgstr "Durée d'ouverture des portes"
+
+#~ msgid "Door Side"
+#~ msgstr "Ouv. des portes coté"
+
+#~ msgid "Driver Stand"
+#~ msgstr "Poste de pilotage"
+
+#~ msgid "Driver Stand (left)"
+#~ msgstr "Poste de pilotage (gauche)"
+
+#~ msgid "Driver Stand (right)"
+#~ msgstr "Poste de pilotage (droit)"
+
+#~ msgid "Driver stand"
+#~ msgstr "Poste de pilotage"
+
+#~ msgid "Industrial Train Engine"
+#~ msgstr "Locomotive industrielle"
+
+#~ msgid "Industrial tank wagon"
+#~ msgstr "Wagon-citerne industriel"
+
+#~ msgid "Industrial wood wagon"
+#~ msgstr "Wagon grumier industriel"
+
+#~ msgid "Japanese Train Engine"
+#~ msgstr "Motrice Japonaise"
+
+#~ msgid "Japanese Train Inter-Wagon Connection"
+#~ msgstr "Passage inter-voiture de train Japonais"
+
+#~ msgid "Japanese Train Wagon"
+#~ msgstr "Voiture Japonaise"
+
+#~ msgid "Japanese signal pole"
+#~ msgstr "Voiture Japonaise"
+
+#~ msgid "Kick out passengers"
+#~ msgstr "Éjecter les passagers"
+
+#~ msgid "Left"
+#~ msgstr "Gauche"
+
+#~ msgid "Left,Right,Closed;"
+#~ msgstr "Gauche,Droit,Fermé;"
+
+#~ msgid "Loading Track"
+#~ msgstr "Voie de Chargement"
+
#~ msgid "Lock couples"
#~ msgstr "Verrouiller l'accouplement"
+#~ msgid "LuaATC Environment"
+#~ msgstr "Environnement LuaATC"
+
+#~ msgid "LuaATC Mesecon Controller"
+#~ msgstr "Commande Mesecon de LuaATC"
+
+#~ msgid "LuaATC Operation Panel"
+#~ msgstr "Panneau de commande de LuaATC"
+
+#~ msgid "LuaATC component assigned to an invalid environment"
+#~ msgstr "Composant LuaATC assigné à un environnement invalide"
+
+#~ msgid "LuaATC component assigned to environment '@1'"
+#~ msgstr "Composant LuaATC assigné à l'environnement '@1'"
+
+#~ msgid "LuaATC component with error: @1"
+#~ msgstr "Erreur @1 du composant LuaATC"
+
+#~ msgid "Munich U-Bahn Distant Signal ("
+#~ msgstr "Signal distant métro de Munich ("
+
+#~ msgid "Munich U-Bahn Main Signal ("
+#~ msgstr "Signal principal métro de Munich ("
+
+#~ msgid "Next Stop:\n"
+#~ msgstr "Prochain arrêt :\n"
+
+#~ msgid "No callback to handle schedule"
+#~ msgstr "Absence de fonction de gestion de planning"
+
+#~ msgid "Passenger Wagon"
+#~ msgstr "Voiture passager"
+
+#~ msgid "Passenger area"
+#~ msgstr "Voiture Passager"
+
+#~ msgid ""
+#~ "Passive Component Naming Tool\n"
+#~ "\n"
+#~ "Right-click to name a passive component."
+#~ msgstr ""
+#~ "Outil de nommage de composant passif\n"
+#~ "\n"
+#~ "Clic-Droit pour nommer un composant passif."
+
+#~ msgid "Perpendicular Diamond Crossing Track"
+#~ msgstr "Croisement perpendiculaire"
+
+#~ msgid "Point Speed Restriction Track"
+#~ msgstr "Voie de point de limitation de vitesse"
+
+#~ msgid "Point speed restriction: @1"
+#~ msgstr "Point de limitation de vitesse : @1"
+
+#~ msgid "Reduced speed"
+#~ msgstr "Vitesse réduite"
+
+#~ msgid "Restricted speed"
+#~ msgstr "Vitesse limitée"
+
+#~ msgid "Reverse train"
+#~ msgstr "Inversion du sens de marche"
+
+#~ msgid "Right"
+#~ msgstr "Droit"
+
+#~ msgid "Route state changed."
+#~ msgstr "Changement d'état de l'itinéraire."
+
+#~ msgid "Set name of component (empty to clear)"
+#~ msgstr "Nommer le composant (chaîne vide pour effacer)"
+
+#~ msgid "Set point speed restriction:"
+#~ msgstr "Placez un point de limitation de vitesse :"
+
+#~ msgid "Signal"
+#~ msgstr "Signal"
+
#~ msgid "Speed:"
#~ msgstr "Vitesse : "
+#~ msgid "Station Code"
+#~ msgstr "Code de Station"
+
+#~ msgid "Station Name"
+#~ msgstr "Nom de Station"
+
+#~ msgid "Station code \"@1\" already exists and is owned by @2."
+#~ msgstr "Le code de station \"@1\" existe et est possédé par @2."
+
+#~ msgid "Station/Stop Track"
+#~ msgstr "Voie d'arrêt en station"
+
+#~ msgid "Steam Engine"
+#~ msgstr "Locomotive à vapeur"
+
+#~ msgid "Stop Time"
+#~ msgstr "Durée d'arrêt"
+
+#~ msgid "Subway Passenger Wagon"
+#~ msgstr "Voiture de Métropolitain"
+
#~ msgid "Target:"
#~ msgstr "Destination : "
@@ -712,17 +945,80 @@ msgstr "Voie détectrice"
#~ msgid "This position is protected!"
#~ msgstr "Cet emplacement est protégé !"
+#~ msgid "This station is owned by @1. You are not allowed to edit its name."
+#~ msgstr ""
+#~ "Cette station est la propriété de @1. Vous n'êtes pas autorisé à modifier "
+#~ "son nom."
+
+#~ msgid "This track can not be changed."
+#~ msgstr "Cette voie ne peut pas être modifiée."
+
+#~ msgid "Track"
+#~ msgstr "Voie"
+
+#~ msgid "Train"
+#~ msgstr "Identificateur du train"
+
+#~ msgid "Train "
+#~ msgstr "Identificateur du train "
+
+#~ msgid "Trains stopping here (ARS rules)"
+#~ msgstr "Trains marquant l'arrêt (règles ARS)"
+
+#~ msgid "Unable to load wagon type"
+#~ msgstr "Impossible de charger le type du wagon"
+
+#~ msgid "Unconfigured LuaATC component"
+#~ msgstr "Composant LuaATC non configuré"
+
+#~ msgid "Uninitialized init="
+#~ msgstr "Variable init non initialisée"
+
+#~ msgid "Unknown Station"
+#~ msgstr "Gare inconnue"
+
+#~ msgid "Unloading Track"
+#~ msgstr "Voie de Déchargement"
+
#~ msgid "Use Sneak+rightclick to bypass closed doors!"
#~ msgstr ""
#~ "Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour franchir les "
#~ "portes closes !"
+#~ msgid "Wait for signal to clear"
+#~ msgstr "En attente de signal d'autorisation"
+
+#~ msgid "Y-turnout"
+#~ msgstr "Embranchement en Y"
+
+#~ msgid ""
+#~ "You are not allowed to configure this LuaATC component without the @1 "
+#~ "privilege."
+#~ msgstr "Vous ne pouvez configurer ce composant LuaATC sans le privilege @1."
+
+#~ msgid ""
+#~ "You are not allowed to configure this track without the @1 privilege."
+#~ msgstr ""
+#~ "Vous n'êtes pas autorisé à configurer cette voie sans le privilège @1."
+
+#~ msgid "You are not allowed to configure this track."
+#~ msgstr "Vous n'êtes pas autorisé à configurer cette voie."
+
#, fuzzy
#~ msgid "You are not allowed to modify this protected track."
#~ msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé"
#~ msgid ""
+#~ "You are not allowed to name LuaATC passive components without the @1 "
+#~ "privilege."
+#~ msgstr ""
+#~ "Vous ne pouvez nommer un composant LuaATC passif sans le privilege @1."
+
+#~ msgid ""
#~ "You need to own at least one neighboring wagon to destroy this couple."
#~ msgstr ""
#~ "Vous devez être propriétaire d'au moins un wagon voisin pour supprimer "
#~ "cet attelage."
+
+#~ msgid "slowdown"
+#~ msgstr "ralentissement"
diff --git a/advtrains/po/update-translations.sh b/advtrains/po/update-translations.sh
index 3a56c7c..3228037 100755
--- a/advtrains/po/update-translations.sh
+++ b/advtrains/po/update-translations.sh
@@ -1,24 +1,24 @@
#!/bin/sh
-# NOTE: Please make sure you also have basic_trains installed, as it uses attrans for historical reasons
+
+MODNAME="advtrains"
+MSGID_BUGS_ADDR='advtrains-discuss@lists.sr.ht'
PODIR=`dirname "$0"`
-ATDIR="$PODIR/../.."
-BTDIR="$ATDIR/../basic_trains"
-POTFILE="$PODIR/advtrains.pot"
+ATDIR="$PODIR/.."
+POTFILE="$PODIR/$MODNAME.pot"
xgettext \
-D "$ATDIR" \
- -D "$BTDIR" \
- -d advtrains \
+ -d "$MODNAME" \
-o "$POTFILE" \
-p . \
-L lua \
+ --add-location=file \
--from-code=UTF-8 \
--sort-by-file \
- --keyword='attrans' \
--keyword='S' \
- --package-name='advtrains' \
- --msgid-bugs-address='advtrains-discuss@lists.sr.ht' \
+ --package-name="$MODNAME" \
+ --msgid-bugs-address="$MSGID_BUGS_ADDR" \
`find $ATDIR $BTDIR -name '*.lua' -printf '%P\n'` \
&&
for i in "$PODIR"/*.po; do
diff --git a/advtrains/po/zh_CN.po b/advtrains/po/zh_CN.po
index 5bcc316..4fa4502 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: 2023-10-09 11:02+0200\n"
+"POT-Creation-Date: 2025-06-10 21:40+0200\n"
"PO-Revision-Date: 2023-10-09 11:24+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: Chinese (Simplified)\n"
@@ -12,57 +12,87 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3.2\n"
-#: advtrains/atc.lua:109
-msgid "Unconfigured ATC controller"
-msgstr "ATC 控制器 (未配置)"
+#: atc.lua
+msgid "ATC Kick command warning: doors are closed."
+msgstr "ATC 警告:车门已关闭,无法踢出乘客。"
-#: advtrains/atc.lua:150
-msgid ""
-"ATC controller, mode @1\n"
-"Command: @2"
+#: atc.lua
+msgid "ATC Kick command warning: train moving."
+msgstr "ATC 警告:火车正在移动,无法踢出乘客。"
+
+#: atc.lua
+msgid "ATC Reverse command warning: didn't reverse train, train moving."
+msgstr "ATC 警告:火车正在移动,无法改变行车方向。"
+
+#: atc.lua
+msgid "ATC command parse error: Unknown command: @1"
+msgstr "ATC 语法错误:未知命令:@1"
+
+#: atc.lua
+msgid "ATC command syntax error: I statement not closed: @1"
+msgstr "ATC 语法错误:“I”命令不完整:@1"
+
+#: atc.lua
+#, fuzzy
+msgid "ATC controller, Command: @1"
msgstr ""
"ATC 控制器\n"
"模式:@1\n"
"命令:@2"
-#: advtrains/atc.lua:180
+#: atc.lua
msgid "Command"
msgstr "命令"
-#: advtrains/atc.lua:184
-msgid "Command (on)"
-msgstr "命令 (激活时)"
-
-#: advtrains/atc.lua:187
+#: atc.lua
msgid "Digiline channel"
msgstr "Digiline 频道"
-#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
-#: advtrains_luaautomation/active_common.lua:48
+#: atc.lua wagons.lua
msgid "Save"
msgstr "保存"
-#: advtrains/atc.lua:236
-msgid "ATC Reverse command warning: didn't reverse train, train moving."
-msgstr "ATC 警告:火车正在移动,无法改变行车方向。"
+#: atc.lua
+msgid "Unconfigured ATC controller"
+msgstr "ATC 控制器 (未配置)"
-#: advtrains/atc.lua:248
-msgid "ATC Kick command warning: doors are closed."
-msgstr "ATC 警告:车门已关闭,无法踢出乘客。"
+#: copytool.lua
+msgid "Back of train would end up off track, cancelling."
+msgstr "火车后部不在轨道上。"
-#: advtrains/atc.lua:252
-msgid "ATC Kick command warning: train moving."
-msgstr "ATC 警告:火车正在移动,无法踢出乘客。"
+#: copytool.lua
+msgid "No such lua entity."
+msgstr "您没有指向一个可以用火车复制工具复制的物体。"
-#: advtrains/atc.lua:322
-msgid "ATC command syntax error: I statement not closed: @1"
-msgstr "ATC 语法错误:“I”命令不完整:@1"
+#: copytool.lua
+msgid "No such train: @1."
+msgstr "ID 为“@1”的列车不存在。"
-#: advtrains/atc.lua:385
-msgid "ATC command parse error: Unknown command: @1"
-msgstr "ATC 语法错误:未知命令:@1"
+#: copytool.lua
+msgid "No such wagon: @1."
+msgstr "ID 为“@1”的车厢不存在。"
+
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Copy failed."
+msgstr "无法复制:剪贴板无法访问元数据。"
+
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Paste failed."
+msgstr "无法粘贴:剪贴板无法访问元数据。"
+
+#: copytool.lua
+msgid "The clipboard is empty."
+msgstr "剪贴板是空的。"
+
+#: copytool.lua
+msgid "The track you are trying to place the wagon on is not long enough."
+msgstr "轨道太短。"
+
+#: copytool.lua
+msgid "Train copied."
+msgstr "已复制列车。"
-#: advtrains/copytool.lua:8
+#: copytool.lua
msgid ""
"Train copy/paste tool\n"
"\n"
@@ -74,166 +104,295 @@ msgstr ""
"左键单击:复制\n"
"右键单击:粘帖"
-#: advtrains/copytool.lua:29
+#: copytool.lua
msgid "You do not have the @1 privilege."
msgstr "您没有“@1”权限。"
-#: advtrains/copytool.lua:41
-msgid "The track you are trying to place the wagon on is not long enough."
-msgstr "轨道太短。"
-
-#: advtrains/copytool.lua:47
-msgid "The clipboard couldn't access the metadata. Paste failed."
-msgstr "无法粘贴:剪贴板无法访问元数据。"
-
-#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
-msgid "The clipboard is empty."
-msgstr "剪贴板是空的。"
-
-#: advtrains/copytool.lua:74
-msgid "Back of train would end up off track, cancelling."
-msgstr "火车后部不在轨道上。"
-
-#: advtrains/copytool.lua:92
-msgid "No such lua entity."
-msgstr "您没有指向一个可以用火车复制工具复制的物体。"
-
-#: advtrains/copytool.lua:98
-msgid "No such wagon: @1."
-msgstr "ID 为“@1”的车厢不存在。"
-
-#: advtrains/copytool.lua:104
-msgid "No such train: @1."
-msgstr "ID 为“@1”的列车不存在。"
-
-#: advtrains/copytool.lua:176
-msgid "The clipboard couldn't access the metadata. Copy failed."
-msgstr "无法复制:剪贴板无法访问元数据。"
-
-#: advtrains/copytool.lua:180
-msgid "Train copied."
-msgstr "已复制列车。"
+#: couple.lua
+msgid "<No coupler>"
+msgstr "<没有车钩>"
-#: advtrains/couple.lua:28
+#: couple.lua
msgid "Buffer and Chain Coupler"
msgstr "链式车钩"
-#: advtrains/couple.lua:29
+#: couple.lua
+msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
+msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。"
+
+#: couple.lua
+msgid ""
+"Cannot couple @1 and @2 - train would have length @3 which is above the "
+"limit of @4"
+msgstr ""
+
+#: couple.lua
msgid "Scharfenberg Coupler"
msgstr "Scharfenberg 式车钩"
-#: advtrains/couple.lua:185
+#: couple.lua
msgid ""
"You are not allowed to couple trains without the train_operator privilege."
msgstr "您没有“train_operator”权限,不能连接这两节车厢。"
-#: advtrains/couple.lua:329 advtrains/couple.lua:333
-msgid "<No coupler>"
-msgstr "<没有车钩>"
-
-#: advtrains/couple.lua:334
-msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
-msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。"
-
-#: advtrains/craft_items.lua:3
+#: craft_items.lua
msgid "Boiler"
msgstr "锅炉"
-#: advtrains/craft_items.lua:9
+#: craft_items.lua
+msgid "Chimney"
+msgstr "烟囱"
+
+#: craft_items.lua
msgid "Driver's cab"
msgstr "驾驶室"
-#: advtrains/craft_items.lua:15
+#: craft_items.lua
msgid "Wheel"
msgstr "车轮"
-#: advtrains/craft_items.lua:21
-msgid "Chimney"
-msgstr "烟囱"
+#: init.lua
+msgid "Advtrains Status: no_action @1 slowdown @2 (log @3)"
+msgstr ""
-#: advtrains/misc_nodes.lua:16
-msgid "@1 Platform (low)"
-msgstr "较低的@1站台"
+#: init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
-#: advtrains/misc_nodes.lua:33
-msgid "@1 Platform (high)"
-msgstr "较高的@1站台"
+#: init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: init.lua
+msgid "Saving failed: @1"
+msgstr ""
-#: advtrains/misc_nodes.lua:59
+#: init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: init.lua
+msgid "Teleporting to train @1"
+msgstr ""
+
+#: init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: 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 ""
+
+#: init.lua
+msgid "Train @1 does not exist or is invalid"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Train @1 had no wagons left because of some bug. It is being deleted. Wave "
+"it goodbye!"
+msgstr ""
+
+#: init.lua
+msgid "Train @1 is at @2"
+msgstr ""
+
+#: init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "较高的@1站台 (45°)"
-#: advtrains/misc_nodes.lua:81
+#: misc_nodes.lua
+msgid "@1 Platform (high)"
+msgstr "较高的@1站台"
+
+#: misc_nodes.lua
+msgid "@1 Platform (low)"
+msgstr "较低的@1站台"
+
+#: misc_nodes.lua
msgid "@1 Platform (low, 45 degree)"
msgstr "较低的@1站台 (45°)"
-#: advtrains/protection.lua:7
-msgid "Can place, remove and operate trains"
+#: protection.lua
+msgid "Can operate turnouts and signals in unprotected areas"
+msgstr ""
+
+#: protection.lua
+msgid "Can place and dig tracks in unprotected areas"
msgstr ""
-#: advtrains/protection.lua:12
+#: protection.lua
msgid ""
"Can place, remove and operate any train, regardless of owner, whitelist, or "
"protection"
msgstr ""
-#: advtrains/protection.lua:18
-msgid "Can place and dig tracks in unprotected areas"
+#: protection.lua
+msgid "Can place, remove and operate trains"
msgstr ""
-#: advtrains/protection.lua:24
-msgid "Can operate turnouts and signals in unprotected areas"
-msgstr ""
+#: protection.lua
+msgid "You are not allowed to build near tracks at this protected position."
+msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。"
-#: advtrains/protection.lua:148
+#: protection.lua
msgid ""
"You are not allowed to build near tracks without the track_builder privilege."
msgstr "您没有“train_operator”权限,不能在铁路附近建任何东西。"
-#: advtrains/protection.lua:148
+#: protection.lua
+msgid "You are not allowed to build tracks at this protected position."
+msgstr "这里已被保护,您不能在这里建造铁路。"
+
+#: protection.lua
msgid ""
"You are not allowed to build tracks without the track_builder privilege."
msgstr "您没有“train_operator”权限,不能在这里建造铁路。"
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build near tracks at this protected position."
-msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。"
-
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build tracks at this protected position."
-msgstr "这里已被保护,您不能在这里建造铁路。"
-
-#: advtrains/protection.lua:184
+#: protection.lua
msgid ""
"You are not allowed to operate turnouts and signals without the "
"railway_operator privilege."
msgstr "您没有“railway_operator”权限,不能控制铁路设施。"
-#: advtrains/signals.lua:63
-msgid "Lampless Signal"
+#: signals.lua
+msgid "Andrew's Cross"
+msgstr "铁路道口信号灯"
+
+#: signals.lua
+#, fuzzy
+msgid "Lampless Signal (deprecated!)"
msgstr "臂板信号机"
-#: advtrains/signals.lua:127
-msgid "Signal"
-msgstr "信号灯"
+#: signals.lua
+msgid "Signal (deprecated!)"
+msgstr ""
-#: advtrains/signals.lua:191
-msgid "Wallmounted Signal (left)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (left) (deprecated!)"
msgstr "壁挂式信号灯 (左侧)"
-#: advtrains/signals.lua:192
-msgid "Wallmounted Signal (right)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (right) (deprecated!)"
msgstr "壁挂式信号灯 (右侧)"
-#: advtrains/signals.lua:193
-msgid "Wallmounted Signal (top)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (top) (deprecated!)"
msgstr "悬挂式信号灯"
-#: advtrains/signals.lua:281 advtrains/signals.lua:322
-msgid "Andrew's Cross"
-msgstr "铁路道口信号灯"
+#: track_reg_helper.lua
+msgid "@1 Slope"
+msgstr "@1斜坡"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: Not enough slope items left (@1 required)"
+msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: There's no slope of length @1"
+msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: no supporting node at upper end."
+msgstr "无法放置斜坡:较高端没有支撑方块。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: not pointing at node"
+msgstr "无法放置斜坡:您没有选择任何方块。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: space occupied!"
+msgstr "无法放置斜坡:此区域已被占用。"
+
+#: track_reg_helper.lua tracks.lua
+#, fuzzy
+msgid "This track can not be removed!"
+msgstr "您不能移除这段轨道。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be changed using the trackworker!"
+msgstr "您不能使用铁路调整工具调整这个方块。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be rotated using the trackworker!"
+msgstr "您不能使用铁路调整工具旋转这个方块。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This track can not be rotated!"
+msgstr "您不能旋转这段轨道。"
-#: advtrains/trackplacer.lua:313
+#: trackplacer.lua
msgid ""
"Track Worker Tool\n"
"\n"
@@ -245,435 +404,407 @@ msgstr ""
"左键单击:切换轨道类型\n"
"右键单击:旋转方块"
-#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
-msgid "This node can't be rotated using the trackworker."
-msgstr "您不能使用铁路调整工具旋转这个方块。"
-
-#: advtrains/trackplacer.lua:350
-msgid "This track can not be rotated."
-msgstr "您不能旋转这段轨道。"
-
-#: advtrains/trackplacer.lua:404
-msgid "This node can't be changed using the trackworker."
-msgstr "您不能使用铁路调整工具调整这个方块。"
-
-#: advtrains/trackplacer.lua:414
-msgid "This track can not be changed."
-msgstr "您不能调整这段轨道。"
-
-#: advtrains/tracks.lua:449
-msgid "This track can not be removed."
-msgstr "您不能移除这段轨道。"
-
-#: advtrains/tracks.lua:616
+#: tracks.lua
msgid "Position is occupied by a train."
msgstr ""
-#: advtrains/tracks.lua:622
+#: tracks.lua
+msgid "There's a Signal Influence Point here."
+msgstr ""
+
+#: tracks.lua
msgid "There's a Track Circuit Break here."
msgstr ""
-#: advtrains/tracks.lua:626
-msgid "There's a Signal Influence Point here."
+#: trainhud.lua
+msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
msgstr ""
-#: advtrains/tracks.lua:637
-msgid "@1 Slope"
-msgstr "@1斜坡"
+#: wagonprop_tool.lua
+msgid "Insufficient privileges to use this!"
+msgstr ""
-#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
-msgid "Can't place slope: not pointing at node."
-msgstr "无法放置斜坡:您没有选择任何方块。"
+#: wagonprop_tool.lua
+#, fuzzy
+msgid "Wagon Properties Tool"
+msgstr "车厢属性"
-#: advtrains/tracks.lua:658
-msgid "Can't place slope: space occupied."
-msgstr "无法放置斜坡:此区域已被占用。"
+#: wagonprop_tool.lua
+msgid ""
+"Wagon Properties Tool\n"
+"Punch a wagon to view and edit the Wagon Properties"
+msgstr ""
-#: advtrains/tracks.lua:711
-msgid "Can't place slope: Not enough slope items left (@1 required)."
-msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)"
+#: wagons.lua
+msgid " units"
+msgstr ""
-#: advtrains/tracks.lua:714
-msgid "Can't place slope: There's no slope of length @1."
-msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。"
+#: wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
-#: advtrains/tracks.lua:721
-msgid "Can't place slope: no supporting node at upper end."
-msgstr "无法放置斜坡:较高端没有支撑方块。"
+#: wagons.lua
+msgid "(Doors closed)"
+msgstr "(车门已关闭)"
-#: advtrains/trainhud.lua:305
-msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
+#: wagons.lua
+msgid "Allow these players to access your wagon:"
msgstr ""
-#: advtrains/wagons.lua:179
-msgid "This wagon is owned by @1, you can't destroy it."
-msgstr "这是 @1 的车厢,您不能摧毁它。"
-
-#: advtrains/wagons.lua:203
-msgid "The wagon's inventory is not empty."
+#: wagons.lua
+msgid "Clear 'Disable ARS' flag"
msgstr ""
-#: advtrains/wagons.lua:210
-msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
+#: wagons.lua
+msgid "Current FC: "
msgstr ""
-#: advtrains/wagons.lua:216
+#: wagons.lua
msgid ""
-"Warning: If you destroy this wagon, you only get some steel back! If you are "
-"sure, hold Sneak and left-click the wagon."
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
msgstr ""
-"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按"
-"潜行键并左键单击此车厢。"
-#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
-msgid "Show Inventory"
-msgstr "显示物品栏"
-
-#: advtrains/wagons.lua:652
-msgid "Onboard Computer"
+#: wagons.lua
+msgid "Doors are closed! (Try holding sneak key!)"
msgstr ""
-#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
-msgid "Wagon properties"
-msgstr "车厢属性"
+#: wagons.lua
+msgid ""
+"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
+"off."
+msgstr "车门已关闭,请使用潜行+右键单击下车。"
-#: advtrains/wagons.lua:658
+#: wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
+#: wagons.lua
msgid "Get off"
msgstr "下车"
-#: advtrains/wagons.lua:661
+#: wagons.lua
msgid "Get off (forced)"
msgstr "强制下车"
-#: advtrains/wagons.lua:663
-msgid "(Doors closed)"
-msgstr "(车门已关闭)"
-
-#: advtrains/wagons.lua:692
-msgid "This wagon has no seats."
-msgstr "这节车厢没有座位。"
-
-#: advtrains/wagons.lua:703
-msgid "This wagon is full."
-msgstr "车厢已满。"
+#: wagons.lua
+msgid "Line"
+msgstr "火车线路"
-#: advtrains/wagons.lua:706
-msgid "Doors are closed! (Try holding sneak key!)"
+#: wagons.lua
+msgid "Liquid: "
msgstr ""
-#: advtrains/wagons.lua:712
-msgid "You can't get on this wagon."
+#: wagons.lua
+msgid "Liquid: empty"
msgstr ""
-#: advtrains/wagons.lua:838
-msgid "Select seat:"
-msgstr "请选择座位:"
-
-#: advtrains/wagons.lua:880
-msgid "Save wagon properties"
-msgstr "保存车厢属性"
-
-#: advtrains/wagons.lua:965
-msgid "Text displayed outside on train"
-msgstr "车厢外部显示"
-
-#: advtrains/wagons.lua:966
-msgid "Text displayed inside train"
-msgstr "车厢内部显示"
+#: wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
-#: advtrains/wagons.lua:967
-msgid "Line"
-msgstr "火车线路"
+#: wagons.lua
+msgid "Next FC:"
+msgstr ""
-#: advtrains/wagons.lua:968
-msgid "Routingcode"
-msgstr "路由码"
+#: wagons.lua
+msgid "Not a valid wagon id."
+msgstr ""
-#: advtrains/wagons.lua:1241
-msgid ""
-"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
-"off."
-msgstr "车门已关闭,请使用潜行+右键单击下车。"
+#: wagons.lua
+#, fuzzy
+msgid "Not allowed to do this."
+msgstr "您不能调整这段轨道。"
-#: advtrains/wagons.lua:1250
-msgid "You are not allowed to access the driver stand."
+#: wagons.lua
+msgid "Onboard Computer"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:13
-msgid "Point speed restriction: @1"
+#: wagons.lua
+msgid "Please specify a player name to transfer ownership to."
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:14
-msgid "Set point speed restriction:"
+#: wagons.lua
+msgid "Prev FC"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:30
-msgid "You are not allowed to configure this track without the @1 privilege."
-msgstr "您没有“@1”权限,不能调整这段轨道。"
-
-#: advtrains_interlocking/tsr_rail.lua:34
-#: advtrains_line_automation/stoprail.lua:31
-#: advtrains_line_automation/stoprail.lua:76
-msgid "You are not allowed to configure this track."
-msgstr "您不能调整这段轨道。"
-
-#: advtrains_interlocking/tsr_rail.lua:64
-msgid "Point Speed Restriction Track"
+#: wagons.lua
+msgid "Remote Routesetting"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:54
-msgid "Station Code"
-msgstr "车站代码"
+#: wagons.lua
+msgid "Routingcode"
+msgstr "路由码"
-#: advtrains_line_automation/stoprail.lua:55
-msgid "Station Name"
-msgstr "车站名称"
+#: wagons.lua
+msgid "Save wagon properties"
+msgstr "保存车厢属性"
-#: advtrains_line_automation/stoprail.lua:56
-msgid "Door Delay"
-msgstr "车门关闭时间"
+#: wagons.lua
+msgid "Select seat:"
+msgstr "请选择座位:"
-#: advtrains_line_automation/stoprail.lua:57
-msgid "Dep. Speed"
-msgstr "出发速度"
+#: wagons.lua
+msgid "Show Inventory"
+msgstr "显示物品栏"
-#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
-#: advtrains_train_track/init.lua:156
-msgid "Track"
-msgstr "轨道"
+#: wagons.lua
+msgid "Text displayed inside train"
+msgstr "车厢内部显示"
-#: advtrains_line_automation/stoprail.lua:59
-msgid "Stop Time"
-msgstr "停站时间"
+#: wagons.lua
+msgid "Text displayed outside on train"
+msgstr "车厢外部显示"
-#: advtrains_line_automation/stoprail.lua:60
-msgid "Door Side"
+#: wagons.lua
+msgid "That player does not exist!"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:62
-msgid "Reverse train"
-msgstr "改变行车方向"
+#: wagons.lua
+#, fuzzy
+msgid "That wagon does not exist!"
+msgstr "这节车厢没有座位。"
-#: advtrains_line_automation/stoprail.lua:63
-msgid "Kick out passengers"
-msgstr "踢出乘客"
+#: wagons.lua
+#, fuzzy
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "轨道太短。"
-#: advtrains_line_automation/stoprail.lua:97
-msgid "Station code \"@1\" already exists and is owned by @2."
+#: wagons.lua
+msgid "The wagon's inventory is not empty."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:111
-msgid "This station is owned by @1. You are not allowed to edit its name."
-msgstr ""
+#: wagons.lua
+#, fuzzy
+msgid "This Wagon ID"
+msgstr "车厢已满。"
-#: advtrains_line_automation/stoprail.lua:221
-msgid "Station/Stop Track"
-msgstr "车站轨道"
+#: wagons.lua
+msgid "This wagon has no seats."
+msgstr "这节车厢没有座位。"
-#: advtrains_luaautomation/active_common.lua:17
-msgid "Unconfigured LuaATC component"
-msgstr "LuaATC 部件 (未配置)"
+#: wagons.lua
+msgid "This wagon is full."
+msgstr "车厢已满。"
-#: advtrains_luaautomation/active_common.lua:46
-msgid "LuaATC Environment"
-msgstr ""
+#: wagons.lua
+msgid "This wagon is owned by @1, you can't destroy it."
+msgstr "这是 @1 的车厢,您不能摧毁它。"
-#: advtrains_luaautomation/active_common.lua:49
-msgid "Clear Local Environment"
+#: wagons.lua
+msgid "Train ID"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:50
-msgid "Code"
+#: wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
msgstr ""
-#: advtrains_luaautomation/active_common.lua:64
-msgid ""
-"You are not allowed to configure this LuaATC component without the @1 "
-"privilege."
-msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。"
+#: wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
-#: advtrains_luaautomation/active_common.lua:94
-msgid "LuaATC component assigned to environment '@1'"
+#: wagons.lua
+msgid "Uninitialized, removing"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:96
-msgid "LuaATC component assigned to an invalid environment"
+#: wagons.lua
+msgid "Wagon @1 ownership changed from @2 to @3"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:171
-msgid "LuaATC component with error: @1"
+#: wagons.lua
+msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
-#: advtrains_luaautomation/init.lua:13
-msgid ""
-"Can place and configure LuaATC components, including execute potentially "
-"harmful Lua code"
+#: wagons.lua
+#, fuzzy
+msgid "Wagon placeholder"
+msgstr "车厢属性"
+
+#: wagons.lua
+msgid "Wagon properties"
+msgstr "车厢属性"
+
+#: wagons.lua
+msgid "Wagon road number:"
msgstr ""
-#: advtrains_luaautomation/mesecon_controller.lua:211
-msgid "LuaATC Mesecon Controller"
+#: wagons.lua
+msgid ""
+"Warning: If you destroy this wagon, you only get some steel back! If you are "
+"sure, hold Sneak and left-click the wagon."
msgstr ""
+"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按"
+"潜行键并左键单击此车厢。"
-#: advtrains_luaautomation/operation_panel.lua:11
-msgid "LuaATC Operation Panel"
+#: wagons.lua
+msgid "You are not allowed to access the driver stand."
msgstr ""
-#: advtrains_luaautomation/pcnaming.lua:28
-msgid ""
-"Passive Component Naming Tool\n"
-"\n"
-"Right-click to name a passive component."
+#: wagons.lua
+msgid "You can't get on this wagon."
msgstr ""
-"被动元件命名工具\n"
-"\n"
-"右键单击命名所选元件。"
-#: advtrains_luaautomation/pcnaming.lua:39
-msgid ""
-"You are not allowed to name LuaATC passive components without the @1 "
-"privilege."
-msgstr "您没有“@1”权限,不能命名被动元件。"
+#: wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "您没有“@1”权限。"
-#: advtrains_luaautomation/pcnaming.lua:62
-msgid "Set name of component (empty to clear)"
+#: wagons.lua
+msgid "You have been given ownership of wagon @1"
msgstr ""
-#: advtrains_train_industrial/init.lua:10
-#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
-#: advtrains_train_steam/init.lua:91
-msgid "Driver Stand (right)"
-msgstr "右侧司机座位"
+#~ msgid "3-way turnout"
+#~ msgstr "三开道岔"
-#: advtrains_train_industrial/init.lua:17
-#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
-#: advtrains_train_steam/init.lua:85
-msgid "Driver Stand (left)"
-msgstr "左侧司机座位"
+#~ msgid "90+Angle Diamond Crossing Track"
+#~ msgstr "交叉轨道 (其中一条轨道与坐标轴平行)"
-#: advtrains_train_industrial/init.lua:40
-msgid "Industrial Train Engine"
-msgstr "工业用火车头"
+#~ msgid "ATC controller"
+#~ msgstr "ATC 控制器"
-#: advtrains_train_industrial/init.lua:79
-msgid "Big Industrial Train Engine"
-msgstr "大型工业用火车头"
+#~ msgid ""
+#~ "ATC controller, mode @1\n"
+#~ "Channel: @2"
+#~ msgstr ""
+#~ "ATC 控制器\n"
+#~ "模式:@1\n"
+#~ "频道:@2"
-#: advtrains_train_industrial/init.lua:98
-msgid "Industrial tank wagon"
-msgstr "液体运输车厢"
+#~ msgid "Access to @1"
+#~ msgstr "可前往@1"
-#: advtrains_train_industrial/init.lua:116
-msgid "Industrial wood wagon"
-msgstr "木材运输车厢"
+#~ msgid "Big Industrial Train Engine"
+#~ msgstr "大型工业用火车头"
-#: advtrains_train_japan/init.lua:4
-msgid "Japanese Train Inter-Wagon Connection"
-msgstr "日本火车车钩"
+#~ msgid "Box Wagon"
+#~ msgstr "货运车厢"
-#: advtrains_train_japan/init.lua:37
-msgid "Driver stand"
-msgstr "司机座位"
+#~ msgid "Bumper"
+#~ msgstr "保险杠"
-#: advtrains_train_japan/init.lua:101
-msgid "Japanese Train Engine"
-msgstr "高速列车车头"
+#~ msgid "Can't get on: wagon full or doors closed!"
+#~ msgstr "无法上车:车门已关闭或车厢已满。"
-#: advtrains_train_japan/init.lua:176
-msgid "Japanese Train Wagon"
-msgstr "高速列车车厢"
+#~ msgid "Can't place: protected position!"
+#~ msgstr "无法放置:此区域已被保护。"
-#: advtrains_train_steam/init.lua:75
-msgid "Steam Engine"
-msgstr "蒸汽机车"
+#~ msgid "Command (on)"
+#~ msgstr "命令 (激活时)"
-#: advtrains_train_steam/init.lua:159
-msgid "Detailed Steam Engine"
-msgstr "精细的蒸汽机车"
+#~ msgid "Default Seat"
+#~ msgstr "默认座位"
-#: advtrains_train_steam/init.lua:206
-msgid "Passenger Wagon"
-msgstr "客车"
+#~ msgid "Default Seat (driver stand)"
+#~ msgstr "默认座位 (司机座位)"
-#: advtrains_train_steam/init.lua:226
-msgid "Box Wagon"
-msgstr "货运车厢"
+#~ msgid "Dep. Speed"
+#~ msgstr "出发速度"
-#: advtrains_train_subway/init.lua:144
-msgid "Subway Passenger Wagon"
-msgstr "地铁车厢"
+#~ msgid "Deprecated Track"
+#~ msgstr "请不要使用"
-#: advtrains_train_track/init.lua:31
-msgid "Y-turnout"
-msgstr "对称道岔"
+#~ msgid "Detailed Steam Engine"
+#~ msgstr "精细的蒸汽机车"
-#: advtrains_train_track/init.lua:49
-msgid "3-way turnout"
-msgstr "三开道岔"
+#~ msgid "Detector Rail"
+#~ msgstr "探测轨道"
-#: advtrains_train_track/init.lua:69
-msgid "Perpendicular Diamond Crossing Track"
-msgstr "垂直交叉轨道"
+#~ msgid "Diagonal Diamond Crossing Track"
+#~ msgstr "交叉轨道"
-#: advtrains_train_track/init.lua:91
-msgid "90+Angle Diamond Crossing Track"
-msgstr "交叉轨道 (其中一条轨道与坐标轴平行)"
+#~ msgid "Door Delay"
+#~ msgstr "车门关闭时间"
-#: advtrains_train_track/init.lua:132
-msgid "Diagonal Diamond Crossing Track"
-msgstr "交叉轨道"
+#, fuzzy
+#~ msgid "Driver Stand"
+#~ msgstr "司机座位"
-#: advtrains_train_track/init.lua:179
-msgid "Bumper"
-msgstr "保险杠"
+#~ msgid "Driver Stand (left)"
+#~ msgstr "左侧司机座位"
-#: advtrains_train_track/init.lua:201
-msgid "ATC controller"
-msgstr "ATC 控制器"
+#~ msgid "Driver Stand (right)"
+#~ msgstr "右侧司机座位"
-#: advtrains_train_track/init.lua:317
-msgid "Unloading Track"
-msgstr "卸货轨道"
+#~ msgid "Driver stand"
+#~ msgstr "司机座位"
-#: advtrains_train_track/init.lua:342
-msgid "Loading Track"
-msgstr "装货轨道"
+#~ msgid "Industrial Train Engine"
+#~ msgstr "工业用火车头"
-#: advtrains_train_track/init.lua:406
-msgid "Detector Rail"
-msgstr "探测轨道"
+#~ msgid "Industrial tank wagon"
+#~ msgstr "液体运输车厢"
-#~ msgid ""
-#~ "ATC controller, mode @1\n"
-#~ "Channel: @2"
-#~ msgstr ""
-#~ "ATC 控制器\n"
-#~ "模式:@1\n"
-#~ "频道:@2"
+#~ msgid "Industrial wood wagon"
+#~ msgstr "木材运输车厢"
-#~ msgid "Access to @1"
-#~ msgstr "可前往@1"
+#~ msgid "Japanese Train Engine"
+#~ msgstr "高速列车车头"
-#~ msgid "Can't get on: wagon full or doors closed!"
-#~ msgstr "无法上车:车门已关闭或车厢已满。"
+#~ msgid "Japanese Train Inter-Wagon Connection"
+#~ msgstr "日本火车车钩"
-#~ msgid "Can't place: protected position!"
-#~ msgstr "无法放置:此区域已被保护。"
+#~ msgid "Japanese Train Wagon"
+#~ msgstr "高速列车车厢"
-#~ msgid "Default Seat"
-#~ msgstr "默认座位"
+#, fuzzy
+#~ msgid "Japanese signal pole"
+#~ msgstr "高速列车车厢"
-#~ msgid "Default Seat (driver stand)"
-#~ msgstr "默认座位 (司机座位)"
+#~ msgid "Kick out passengers"
+#~ msgstr "踢出乘客"
-#~ msgid "Deprecated Track"
-#~ msgstr "请不要使用"
+#~ msgid "Loading Track"
+#~ msgstr "装货轨道"
#~ msgid "Lock couples"
#~ msgstr "锁定连接处"
+#~ msgid "Passenger Wagon"
+#~ msgstr "客车"
+
+#, fuzzy
+#~ msgid "Passenger area"
+#~ msgstr "客车"
+
+#~ msgid ""
+#~ "Passive Component Naming Tool\n"
+#~ "\n"
+#~ "Right-click to name a passive component."
+#~ msgstr ""
+#~ "被动元件命名工具\n"
+#~ "\n"
+#~ "右键单击命名所选元件。"
+
+#~ msgid "Perpendicular Diamond Crossing Track"
+#~ msgstr "垂直交叉轨道"
+
+#~ msgid "Reverse train"
+#~ msgstr "改变行车方向"
+
+#~ msgid "Signal"
+#~ msgstr "信号灯"
+
#~ msgid "Speed:"
#~ msgstr "速度"
+#~ msgid "Station Code"
+#~ msgstr "车站代码"
+
+#~ msgid "Station Name"
+#~ msgstr "车站名称"
+
+#~ msgid "Station/Stop Track"
+#~ msgstr "车站轨道"
+
+#~ msgid "Steam Engine"
+#~ msgstr "蒸汽机车"
+
+#~ msgid "Stop Time"
+#~ msgstr "停站时间"
+
+#~ msgid "Subway Passenger Wagon"
+#~ msgstr "地铁车厢"
+
#~ msgid "Target:"
#~ msgstr "目标速度"
@@ -684,13 +815,49 @@ msgstr "探测轨道"
#~ msgid "This position is protected!"
#~ msgstr "这里已被保护。"
+#~ msgid "This track can not be changed."
+#~ msgstr "您不能调整这段轨道。"
+
+#~ msgid "Track"
+#~ msgstr "轨道"
+
+#, fuzzy
+#~ msgid "Train "
+#~ msgstr "已复制列车。"
+
+#~ msgid "Unconfigured LuaATC component"
+#~ msgstr "LuaATC 部件 (未配置)"
+
+#~ msgid "Unloading Track"
+#~ msgstr "卸货轨道"
+
#~ msgid "Use Sneak+rightclick to bypass closed doors!"
#~ msgstr "请使用潜行+右键上车。"
+#~ msgid "Y-turnout"
+#~ msgstr "对称道岔"
+
+#~ msgid ""
+#~ "You are not allowed to configure this LuaATC component without the @1 "
+#~ "privilege."
+#~ msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。"
+
+#~ msgid ""
+#~ "You are not allowed to configure this track without the @1 privilege."
+#~ msgstr "您没有“@1”权限,不能调整这段轨道。"
+
+#~ msgid "You are not allowed to configure this track."
+#~ msgstr "您不能调整这段轨道。"
+
#, fuzzy
#~ msgid "You are not allowed to modify this protected track."
#~ msgstr "这里已被保护,您不能在这里建造铁路。"
#~ msgid ""
+#~ "You are not allowed to name LuaATC passive components without the @1 "
+#~ "privilege."
+#~ msgstr "您没有“@1”权限,不能命名被动元件。"
+
+#~ msgid ""
#~ "You need to own at least one neighboring wagon to destroy this couple."
#~ msgstr "您必须至少拥有其中一节车厢才能分开这两节车厢。"
diff --git a/advtrains/po/zh_TW.po b/advtrains/po/zh_TW.po
index ece82c3..b46de64 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: 2023-10-09 11:02+0200\n"
+"POT-Creation-Date: 2025-06-10 21:40+0200\n"
"PO-Revision-Date: 2023-10-09 11:31+0200\n"
"Last-Translator: Y. Wang <yw05@forksworld.de>\n"
"Language-Team: Chinese (Traditional)\n"
@@ -12,57 +12,87 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.3.2\n"
-#: advtrains/atc.lua:109
-msgid "Unconfigured ATC controller"
-msgstr "ATC 控制器 (未配置)"
+#: atc.lua
+msgid "ATC Kick command warning: doors are closed."
+msgstr "ATC 警告:車門已關閉,無法踢出乘客。"
-#: advtrains/atc.lua:150
-msgid ""
-"ATC controller, mode @1\n"
-"Command: @2"
+#: atc.lua
+msgid "ATC Kick command warning: train moving."
+msgstr "ATC 警告:火車正在移動,無法踢出乘客。"
+
+#: atc.lua
+msgid "ATC Reverse command warning: didn't reverse train, train moving."
+msgstr "ATC 警告:火車正在移動,無法改變行車方向。"
+
+#: atc.lua
+msgid "ATC command parse error: Unknown command: @1"
+msgstr "ATC 語法錯誤:未知命令:@1"
+
+#: atc.lua
+msgid "ATC command syntax error: I statement not closed: @1"
+msgstr "ATC 語法錯誤:「I」命令不完整:@1"
+
+#: atc.lua
+#, fuzzy
+msgid "ATC controller, Command: @1"
msgstr ""
"ATC 控制器\n"
"模式:@1\n"
"命令:@2"
-#: advtrains/atc.lua:180
+#: atc.lua
msgid "Command"
msgstr "命令"
-#: advtrains/atc.lua:184
-msgid "Command (on)"
-msgstr "命令 (啟用時)"
-
-#: advtrains/atc.lua:187
+#: atc.lua
msgid "Digiline channel"
msgstr "Digiline 頻道"
-#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
-#: advtrains_luaautomation/active_common.lua:48
+#: atc.lua wagons.lua
msgid "Save"
msgstr "儲存"
-#: advtrains/atc.lua:236
-msgid "ATC Reverse command warning: didn't reverse train, train moving."
-msgstr "ATC 警告:火車正在移動,無法改變行車方向。"
+#: atc.lua
+msgid "Unconfigured ATC controller"
+msgstr "ATC 控制器 (未配置)"
-#: advtrains/atc.lua:248
-msgid "ATC Kick command warning: doors are closed."
-msgstr "ATC 警告:車門已關閉,無法踢出乘客。"
+#: copytool.lua
+msgid "Back of train would end up off track, cancelling."
+msgstr "火車後部不在軌道上。"
-#: advtrains/atc.lua:252
-msgid "ATC Kick command warning: train moving."
-msgstr "ATC 警告:火車正在移動,無法踢出乘客。"
+#: copytool.lua
+msgid "No such lua entity."
+msgstr "您沒有指向一個可以用火車複製工具複製的物體。"
-#: advtrains/atc.lua:322
-msgid "ATC command syntax error: I statement not closed: @1"
-msgstr "ATC 語法錯誤:「I」命令不完整:@1"
+#: copytool.lua
+msgid "No such train: @1."
+msgstr "ID 為「@1」的列車不存在。"
-#: advtrains/atc.lua:385
-msgid "ATC command parse error: Unknown command: @1"
-msgstr "ATC 語法錯誤:未知命令:@1"
+#: copytool.lua
+msgid "No such wagon: @1."
+msgstr "ID 為「@1」的車廂不存在。"
+
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Copy failed."
+msgstr "無法複製:剪貼簿無法訪問元資料。"
+
+#: copytool.lua
+msgid "The clipboard couldn't access the metadata. Paste failed."
+msgstr "無法貼上:剪貼簿無法訪問元資料。"
+
+#: copytool.lua
+msgid "The clipboard is empty."
+msgstr "剪貼簿是空的。"
+
+#: copytool.lua
+msgid "The track you are trying to place the wagon on is not long enough."
+msgstr "軌道太短。"
+
+#: copytool.lua
+msgid "Train copied."
+msgstr "已複製火車。"
-#: advtrains/copytool.lua:8
+#: copytool.lua
msgid ""
"Train copy/paste tool\n"
"\n"
@@ -74,166 +104,295 @@ msgstr ""
"左鍵單擊:複製\n"
"右鍵單擊:粘帖"
-#: advtrains/copytool.lua:29
+#: copytool.lua
msgid "You do not have the @1 privilege."
msgstr "您沒有「@1」許可權。"
-#: advtrains/copytool.lua:41
-msgid "The track you are trying to place the wagon on is not long enough."
-msgstr "軌道太短。"
-
-#: advtrains/copytool.lua:47
-msgid "The clipboard couldn't access the metadata. Paste failed."
-msgstr "無法貼上:剪貼簿無法訪問元資料。"
-
-#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
-msgid "The clipboard is empty."
-msgstr "剪貼簿是空的。"
-
-#: advtrains/copytool.lua:74
-msgid "Back of train would end up off track, cancelling."
-msgstr "火車後部不在軌道上。"
-
-#: advtrains/copytool.lua:92
-msgid "No such lua entity."
-msgstr "您沒有指向一個可以用火車複製工具複製的物體。"
-
-#: advtrains/copytool.lua:98
-msgid "No such wagon: @1."
-msgstr "ID 為「@1」的車廂不存在。"
-
-#: advtrains/copytool.lua:104
-msgid "No such train: @1."
-msgstr "ID 為「@1」的列車不存在。"
-
-#: advtrains/copytool.lua:176
-msgid "The clipboard couldn't access the metadata. Copy failed."
-msgstr "無法複製:剪貼簿無法訪問元資料。"
-
-#: advtrains/copytool.lua:180
-msgid "Train copied."
-msgstr "已複製火車。"
+#: couple.lua
+msgid "<No coupler>"
+msgstr "<無連結器>"
-#: advtrains/couple.lua:28
+#: couple.lua
msgid "Buffer and Chain Coupler"
msgstr "鏈式連結器"
-#: advtrains/couple.lua:29
+#: couple.lua
+msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
+msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。"
+
+#: couple.lua
+msgid ""
+"Cannot couple @1 and @2 - train would have length @3 which is above the "
+"limit of @4"
+msgstr ""
+
+#: couple.lua
msgid "Scharfenberg Coupler"
msgstr "Scharfenberg 式連結器"
-#: advtrains/couple.lua:185
+#: couple.lua
msgid ""
"You are not allowed to couple trains without the train_operator privilege."
msgstr "您沒有「train_operator」許可權,不能連結這兩節車廂。"
-#: advtrains/couple.lua:329 advtrains/couple.lua:333
-msgid "<No coupler>"
-msgstr "<無連結器>"
-
-#: advtrains/couple.lua:334
-msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
-msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。"
-
-#: advtrains/craft_items.lua:3
+#: craft_items.lua
msgid "Boiler"
msgstr "鍋爐"
-#: advtrains/craft_items.lua:9
+#: craft_items.lua
+msgid "Chimney"
+msgstr "煙囪"
+
+#: craft_items.lua
msgid "Driver's cab"
msgstr "駕駛室"
-#: advtrains/craft_items.lua:15
+#: craft_items.lua
msgid "Wheel"
msgstr "車輪"
-#: advtrains/craft_items.lua:21
-msgid "Chimney"
-msgstr "煙囪"
+#: init.lua
+msgid "Advtrains Status: no_action @1 slowdown @2 (log @3)"
+msgstr ""
-#: advtrains/misc_nodes.lua:16
-msgid "@1 Platform (low)"
-msgstr "較低的@1月臺"
+#: init.lua
+msgid "Advtrains is already running normally!"
+msgstr ""
-#: advtrains/misc_nodes.lua:33
-msgid "@1 Platform (high)"
-msgstr "較高的@1月臺"
+#: init.lua
+msgid ""
+"Crash during advtrains main step - skipping the shutdown save operation to "
+"not save inconsistent data!"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Data is being saved. While saving, advtrains will remove the players from "
+"trains. Save files will be reloaded afterwards!"
+msgstr ""
+
+#: init.lua
+msgid "Delete all train routes, force them to recalculate"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Detach all players, especially the offline ones, from all trains. Use only "
+"when no one serious is on a train."
+msgstr ""
+
+#: init.lua
+msgid "Disable the advtrains globalstep temporarily"
+msgstr ""
+
+#: init.lua
+msgid "Disabled advtrains successfully"
+msgstr ""
+
+#: init.lua
+msgid "Instructed to save() but load() was never called!"
+msgstr ""
+
+#: init.lua
+msgid "Print advtrains status info"
+msgstr ""
+
+#: init.lua
+msgid "Re-enabling advtrains globalstep..."
+msgstr ""
+
+#: init.lua
+msgid "Reload successful!"
+msgstr ""
+
+#: init.lua
+msgid "Removing unused wagon"
+msgstr ""
+
+#: init.lua
+msgid "Restoring saved state in 1 second..."
+msgstr ""
+
+#: init.lua
+msgid "Returns the position of the train with the given id"
+msgstr ""
+
+#: init.lua
+msgid "Saving failed: @1"
+msgstr ""
-#: advtrains/misc_nodes.lua:59
+#: init.lua
+msgid "Successfully invalidated train routes"
+msgstr ""
+
+#: init.lua
+msgid "Teleporting to train @1"
+msgstr ""
+
+#: init.lua
+msgid "Teleports you to the position of the train with the given id"
+msgstr ""
+
+#: 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 ""
+
+#: init.lua
+msgid "Train @1 does not exist or is invalid"
+msgstr ""
+
+#: init.lua
+msgid ""
+"Train @1 had no wagons left because of some bug. It is being deleted. Wave "
+"it goodbye!"
+msgstr ""
+
+#: init.lua
+msgid "Train @1 is at @2"
+msgstr ""
+
+#: init.lua
+msgid "from wagon_save table."
+msgstr ""
+
+#: misc_nodes.lua
msgid "@1 Platform (45 degree)"
msgstr "較高的@1月臺 (45°)"
-#: advtrains/misc_nodes.lua:81
+#: misc_nodes.lua
+msgid "@1 Platform (high)"
+msgstr "較高的@1月臺"
+
+#: misc_nodes.lua
+msgid "@1 Platform (low)"
+msgstr "較低的@1月臺"
+
+#: misc_nodes.lua
msgid "@1 Platform (low, 45 degree)"
msgstr "較低的@1月臺 (45°)"
-#: advtrains/protection.lua:7
-msgid "Can place, remove and operate trains"
+#: protection.lua
+msgid "Can operate turnouts and signals in unprotected areas"
+msgstr ""
+
+#: protection.lua
+msgid "Can place and dig tracks in unprotected areas"
msgstr ""
-#: advtrains/protection.lua:12
+#: protection.lua
msgid ""
"Can place, remove and operate any train, regardless of owner, whitelist, or "
"protection"
msgstr ""
-#: advtrains/protection.lua:18
-msgid "Can place and dig tracks in unprotected areas"
+#: protection.lua
+msgid "Can place, remove and operate trains"
msgstr ""
-#: advtrains/protection.lua:24
-msgid "Can operate turnouts and signals in unprotected areas"
-msgstr ""
+#: protection.lua
+msgid "You are not allowed to build near tracks at this protected position."
+msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。"
-#: advtrains/protection.lua:148
+#: protection.lua
msgid ""
"You are not allowed to build near tracks without the track_builder privilege."
msgstr "您沒有「train_operator」許可權,不能在鐵路附近建任何東西。"
-#: advtrains/protection.lua:148
+#: protection.lua
+msgid "You are not allowed to build tracks at this protected position."
+msgstr "這裡已被保護,您不能在這裡建造鐵路。"
+
+#: protection.lua
msgid ""
"You are not allowed to build tracks without the track_builder privilege."
msgstr "您沒有「train_operator」許可權,不能在這裡建造鐵路。"
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build near tracks at this protected position."
-msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。"
-
-#: advtrains/protection.lua:153
-msgid "You are not allowed to build tracks at this protected position."
-msgstr "這裡已被保護,您不能在這裡建造鐵路。"
-
-#: advtrains/protection.lua:184
+#: protection.lua
msgid ""
"You are not allowed to operate turnouts and signals without the "
"railway_operator privilege."
msgstr "您沒有「railway_operator」許可權,不能控制鐵路設施。"
-#: advtrains/signals.lua:63
-msgid "Lampless Signal"
+#: signals.lua
+msgid "Andrew's Cross"
+msgstr "平交道號誌燈"
+
+#: signals.lua
+#, fuzzy
+msgid "Lampless Signal (deprecated!)"
msgstr "臂木式號誌機"
-#: advtrains/signals.lua:127
-msgid "Signal"
-msgstr "色燈號誌機"
+#: signals.lua
+msgid "Signal (deprecated!)"
+msgstr ""
-#: advtrains/signals.lua:191
-msgid "Wallmounted Signal (left)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (left) (deprecated!)"
msgstr "壁掛式色燈號誌機 (左側)"
-#: advtrains/signals.lua:192
-msgid "Wallmounted Signal (right)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (right) (deprecated!)"
msgstr "壁掛式色燈號誌機 (右側)"
-#: advtrains/signals.lua:193
-msgid "Wallmounted Signal (top)"
+#: signals.lua
+#, fuzzy
+msgid "Wallmounted Signal (top) (deprecated!)"
msgstr "懸掛式色燈號誌機"
-#: advtrains/signals.lua:281 advtrains/signals.lua:322
-msgid "Andrew's Cross"
-msgstr "平交道號誌燈"
+#: track_reg_helper.lua
+msgid "@1 Slope"
+msgstr "@1斜坡"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: Not enough slope items left (@1 required)"
+msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: There's no slope of length @1"
+msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: no supporting node at upper end."
+msgstr "無法放置斜坡:較高階沒有支撐方塊。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: not pointing at node"
+msgstr "無法放置斜坡:您沒有選擇任何方塊。"
+
+#: track_reg_helper.lua
+#, fuzzy
+msgid "Can't place: space occupied!"
+msgstr "無法放置斜坡:此區域已被佔用。"
+
+#: track_reg_helper.lua tracks.lua
+#, fuzzy
+msgid "This track can not be removed!"
+msgstr "您不能移除這段軌道。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be changed using the trackworker!"
+msgstr "您不能使用鐵路調整工具調整這個方塊。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This node can't be rotated using the trackworker!"
+msgstr "您不能使用鐵路調整工具旋轉這個方塊。"
+
+#: trackplacer.lua
+#, fuzzy
+msgid "This track can not be rotated!"
+msgstr "您不能旋轉這段軌道。"
-#: advtrains/trackplacer.lua:313
+#: trackplacer.lua
msgid ""
"Track Worker Tool\n"
"\n"
@@ -245,435 +404,407 @@ msgstr ""
"左鍵單擊:切換軌道型別\n"
"右鍵單擊:旋轉方塊"
-#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
-msgid "This node can't be rotated using the trackworker."
-msgstr "您不能使用鐵路調整工具旋轉這個方塊。"
-
-#: advtrains/trackplacer.lua:350
-msgid "This track can not be rotated."
-msgstr "您不能旋轉這段軌道。"
-
-#: advtrains/trackplacer.lua:404
-msgid "This node can't be changed using the trackworker."
-msgstr "您不能使用鐵路調整工具調整這個方塊。"
-
-#: advtrains/trackplacer.lua:414
-msgid "This track can not be changed."
-msgstr "您不能調整這段軌道。"
-
-#: advtrains/tracks.lua:449
-msgid "This track can not be removed."
-msgstr "您不能移除這段軌道。"
-
-#: advtrains/tracks.lua:616
+#: tracks.lua
msgid "Position is occupied by a train."
msgstr ""
-#: advtrains/tracks.lua:622
+#: tracks.lua
+msgid "There's a Signal Influence Point here."
+msgstr ""
+
+#: tracks.lua
msgid "There's a Track Circuit Break here."
msgstr ""
-#: advtrains/tracks.lua:626
-msgid "There's a Signal Influence Point here."
+#: trainhud.lua
+msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
msgstr ""
-#: advtrains/tracks.lua:637
-msgid "@1 Slope"
-msgstr "@1斜坡"
+#: wagonprop_tool.lua
+msgid "Insufficient privileges to use this!"
+msgstr ""
-#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
-msgid "Can't place slope: not pointing at node."
-msgstr "無法放置斜坡:您沒有選擇任何方塊。"
+#: wagonprop_tool.lua
+#, fuzzy
+msgid "Wagon Properties Tool"
+msgstr "車廂屬性"
-#: advtrains/tracks.lua:658
-msgid "Can't place slope: space occupied."
-msgstr "無法放置斜坡:此區域已被佔用。"
+#: wagonprop_tool.lua
+msgid ""
+"Wagon Properties Tool\n"
+"Punch a wagon to view and edit the Wagon Properties"
+msgstr ""
-#: advtrains/tracks.lua:711
-msgid "Can't place slope: Not enough slope items left (@1 required)."
-msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)"
+#: wagons.lua
+msgid " units"
+msgstr ""
-#: advtrains/tracks.lua:714
-msgid "Can't place slope: There's no slope of length @1."
-msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。"
+#: wagons.lua
+msgid "!!! Train off track !!!"
+msgstr ""
-#: advtrains/tracks.lua:721
-msgid "Can't place slope: no supporting node at upper end."
-msgstr "無法放置斜坡:較高階沒有支撐方塊。"
+#: wagons.lua
+msgid "(Doors closed)"
+msgstr "(車門已關閉)"
-#: advtrains/trainhud.lua:305
-msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
+#: wagons.lua
+msgid "Allow these players to access your wagon:"
msgstr ""
-#: advtrains/wagons.lua:179
-msgid "This wagon is owned by @1, you can't destroy it."
-msgstr "這是 @1 的車廂,您不能摧毀它。"
-
-#: advtrains/wagons.lua:203
-msgid "The wagon's inventory is not empty."
+#: wagons.lua
+msgid "Clear 'Disable ARS' flag"
msgstr ""
-#: advtrains/wagons.lua:210
-msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
+#: wagons.lua
+msgid "Current FC: "
msgstr ""
-#: advtrains/wagons.lua:216
+#: wagons.lua
msgid ""
-"Warning: If you destroy this wagon, you only get some steel back! If you are "
-"sure, hold Sneak and left-click the wagon."
+"Destroying wagon with inventory, but inventory is not found? Shouldn't "
+"happen!"
msgstr ""
-"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按"
-"潛行鍵並左鍵單擊此車廂。"
-#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
-msgid "Show Inventory"
-msgstr "顯示物品欄"
-
-#: advtrains/wagons.lua:652
-msgid "Onboard Computer"
+#: wagons.lua
+msgid "Doors are closed! (Try holding sneak key!)"
msgstr ""
-#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
-msgid "Wagon properties"
-msgstr "車廂屬性"
+#: wagons.lua
+msgid ""
+"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
+"off."
+msgstr "車門已關閉,請使用潛行+右鍵單擊下車。"
-#: advtrains/wagons.lua:658
+#: wagons.lua
+msgid "Freight Code:"
+msgstr ""
+
+#: wagons.lua
msgid "Get off"
msgstr "下車"
-#: advtrains/wagons.lua:661
+#: wagons.lua
msgid "Get off (forced)"
msgstr "強制下車"
-#: advtrains/wagons.lua:663
-msgid "(Doors closed)"
-msgstr "(車門已關閉)"
-
-#: advtrains/wagons.lua:692
-msgid "This wagon has no seats."
-msgstr "這節車廂沒有座位。"
-
-#: advtrains/wagons.lua:703
-msgid "This wagon is full."
-msgstr "車廂已滿。"
+#: wagons.lua
+msgid "Line"
+msgstr "火車線路"
-#: advtrains/wagons.lua:706
-msgid "Doors are closed! (Try holding sneak key!)"
+#: wagons.lua
+msgid "Liquid: "
msgstr ""
-#: advtrains/wagons.lua:712
-msgid "You can't get on this wagon."
+#: wagons.lua
+msgid "Liquid: empty"
msgstr ""
-#: advtrains/wagons.lua:838
-msgid "Select seat:"
-msgstr "請選擇座位:"
-
-#: advtrains/wagons.lua:880
-msgid "Save wagon properties"
-msgstr "儲存車廂屬性"
-
-#: advtrains/wagons.lua:965
-msgid "Text displayed outside on train"
-msgstr "車廂外部顯示"
-
-#: advtrains/wagons.lua:966
-msgid "Text displayed inside train"
-msgstr "車廂內部顯示"
+#: wagons.lua
+msgid "Missing train_operator privilege"
+msgstr ""
-#: advtrains/wagons.lua:967
-msgid "Line"
-msgstr "火車線路"
+#: wagons.lua
+msgid "Next FC:"
+msgstr ""
-#: advtrains/wagons.lua:968
-msgid "Routingcode"
-msgstr "路由碼"
+#: wagons.lua
+msgid "Not a valid wagon id."
+msgstr ""
-#: advtrains/wagons.lua:1241
-msgid ""
-"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
-"off."
-msgstr "車門已關閉,請使用潛行+右鍵單擊下車。"
+#: wagons.lua
+#, fuzzy
+msgid "Not allowed to do this."
+msgstr "您不能調整這段軌道。"
-#: advtrains/wagons.lua:1250
-msgid "You are not allowed to access the driver stand."
+#: wagons.lua
+msgid "Onboard Computer"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:13
-msgid "Point speed restriction: @1"
+#: wagons.lua
+msgid "Please specify a player name to transfer ownership to."
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:14
-msgid "Set point speed restriction:"
+#: wagons.lua
+msgid "Prev FC"
msgstr ""
-#: advtrains_interlocking/tsr_rail.lua:30
-msgid "You are not allowed to configure this track without the @1 privilege."
-msgstr "您沒有「@1」許可權,不能調整這段軌道。"
-
-#: advtrains_interlocking/tsr_rail.lua:34
-#: advtrains_line_automation/stoprail.lua:31
-#: advtrains_line_automation/stoprail.lua:76
-msgid "You are not allowed to configure this track."
-msgstr "您不能調整這段軌道。"
-
-#: advtrains_interlocking/tsr_rail.lua:64
-msgid "Point Speed Restriction Track"
+#: wagons.lua
+msgid "Remote Routesetting"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:54
-msgid "Station Code"
-msgstr "車站碼"
+#: wagons.lua
+msgid "Routingcode"
+msgstr "路由碼"
-#: advtrains_line_automation/stoprail.lua:55
-msgid "Station Name"
-msgstr "車站名稱"
+#: wagons.lua
+msgid "Save wagon properties"
+msgstr "儲存車廂屬性"
-#: advtrains_line_automation/stoprail.lua:56
-msgid "Door Delay"
-msgstr "車門關閉時間"
+#: wagons.lua
+msgid "Select seat:"
+msgstr "請選擇座位:"
-#: advtrains_line_automation/stoprail.lua:57
-msgid "Dep. Speed"
-msgstr "出發速度"
+#: wagons.lua
+msgid "Show Inventory"
+msgstr "顯示物品欄"
-#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
-#: advtrains_train_track/init.lua:156
-msgid "Track"
-msgstr "軌道"
+#: wagons.lua
+msgid "Text displayed inside train"
+msgstr "車廂內部顯示"
-#: advtrains_line_automation/stoprail.lua:59
-msgid "Stop Time"
-msgstr "停站時間"
+#: wagons.lua
+msgid "Text displayed outside on train"
+msgstr "車廂外部顯示"
-#: advtrains_line_automation/stoprail.lua:60
-msgid "Door Side"
+#: wagons.lua
+msgid "That player does not exist!"
msgstr ""
-#: advtrains_line_automation/stoprail.lua:62
-msgid "Reverse train"
-msgstr "改變行車方向"
+#: wagons.lua
+#, fuzzy
+msgid "That wagon does not exist!"
+msgstr "這節車廂沒有座位。"
-#: advtrains_line_automation/stoprail.lua:63
-msgid "Kick out passengers"
-msgstr "踢出乘客"
+#: wagons.lua
+#, fuzzy
+msgid "The track you are trying to place the wagon on is not long enough!"
+msgstr "軌道太短。"
-#: advtrains_line_automation/stoprail.lua:97
-msgid "Station code \"@1\" already exists and is owned by @2."
+#: wagons.lua
+msgid "The wagon's inventory is not empty."
msgstr ""
-#: advtrains_line_automation/stoprail.lua:111
-msgid "This station is owned by @1. You are not allowed to edit its name."
-msgstr ""
+#: wagons.lua
+#, fuzzy
+msgid "This Wagon ID"
+msgstr "車廂已滿。"
-#: advtrains_line_automation/stoprail.lua:221
-msgid "Station/Stop Track"
-msgstr "車站軌道"
+#: wagons.lua
+msgid "This wagon has no seats."
+msgstr "這節車廂沒有座位。"
-#: advtrains_luaautomation/active_common.lua:17
-msgid "Unconfigured LuaATC component"
-msgstr "LuaATC 元件 (未配置)"
+#: wagons.lua
+msgid "This wagon is full."
+msgstr "車廂已滿。"
-#: advtrains_luaautomation/active_common.lua:46
-msgid "LuaATC Environment"
-msgstr ""
+#: wagons.lua
+msgid "This wagon is owned by @1, you can't destroy it."
+msgstr "這是 @1 的車廂,您不能摧毀它。"
-#: advtrains_luaautomation/active_common.lua:49
-msgid "Clear Local Environment"
+#: wagons.lua
+msgid "Train ID"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:50
-msgid "Code"
+#: wagons.lua
+msgid "Train overview / coupling control is only shown when the train stands."
msgstr ""
-#: advtrains_luaautomation/active_common.lua:64
-msgid ""
-"You are not allowed to configure this LuaATC component without the @1 "
-"privilege."
-msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。"
+#: wagons.lua
+msgid "Train overview /coupling control:"
+msgstr ""
-#: advtrains_luaautomation/active_common.lua:94
-msgid "LuaATC component assigned to environment '@1'"
+#: wagons.lua
+msgid "Uninitialized, removing"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:96
-msgid "LuaATC component assigned to an invalid environment"
+#: wagons.lua
+msgid "Wagon @1 ownership changed from @2 to @3"
msgstr ""
-#: advtrains_luaautomation/active_common.lua:171
-msgid "LuaATC component with error: @1"
+#: wagons.lua
+msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
msgstr ""
-#: advtrains_luaautomation/init.lua:13
-msgid ""
-"Can place and configure LuaATC components, including execute potentially "
-"harmful Lua code"
+#: wagons.lua
+#, fuzzy
+msgid "Wagon placeholder"
+msgstr "車廂屬性"
+
+#: wagons.lua
+msgid "Wagon properties"
+msgstr "車廂屬性"
+
+#: wagons.lua
+msgid "Wagon road number:"
msgstr ""
-#: advtrains_luaautomation/mesecon_controller.lua:211
-msgid "LuaATC Mesecon Controller"
+#: wagons.lua
+msgid ""
+"Warning: If you destroy this wagon, you only get some steel back! If you are "
+"sure, hold Sneak and left-click the wagon."
msgstr ""
+"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按"
+"潛行鍵並左鍵單擊此車廂。"
-#: advtrains_luaautomation/operation_panel.lua:11
-msgid "LuaATC Operation Panel"
+#: wagons.lua
+msgid "You are not allowed to access the driver stand."
msgstr ""
-#: advtrains_luaautomation/pcnaming.lua:28
-msgid ""
-"Passive Component Naming Tool\n"
-"\n"
-"Right-click to name a passive component."
+#: wagons.lua
+msgid "You can't get on this wagon."
msgstr ""
-"被動元件命名工具\n"
-"\n"
-"右鍵單擊命名所選元件。"
-#: advtrains_luaautomation/pcnaming.lua:39
-msgid ""
-"You are not allowed to name LuaATC passive components without the @1 "
-"privilege."
-msgstr "您沒有「@1」許可權,不能命名這個元件。"
+#: wagons.lua
+#, fuzzy
+msgid "You don't have the train_operator privilege."
+msgstr "您沒有「@1」許可權。"
-#: advtrains_luaautomation/pcnaming.lua:62
-msgid "Set name of component (empty to clear)"
+#: wagons.lua
+msgid "You have been given ownership of wagon @1"
msgstr ""
-#: advtrains_train_industrial/init.lua:10
-#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
-#: advtrains_train_steam/init.lua:91
-msgid "Driver Stand (right)"
-msgstr "右側司機座位"
+#~ msgid "3-way turnout"
+#~ msgstr "三開道岔"
-#: advtrains_train_industrial/init.lua:17
-#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
-#: advtrains_train_steam/init.lua:85
-msgid "Driver Stand (left)"
-msgstr "左側司機座位"
+#~ msgid "90+Angle Diamond Crossing Track"
+#~ msgstr "交叉軌道 (其中一條軌道與座標軸平行)"
-#: advtrains_train_industrial/init.lua:40
-msgid "Industrial Train Engine"
-msgstr "工業用火車頭"
+#~ msgid "ATC controller"
+#~ msgstr "ATC 控制器"
-#: advtrains_train_industrial/init.lua:79
-msgid "Big Industrial Train Engine"
-msgstr "大型工業用火車頭"
+#~ msgid ""
+#~ "ATC controller, mode @1\n"
+#~ "Channel: @2"
+#~ msgstr ""
+#~ "ATC 控制器\n"
+#~ "模式:@1\n"
+#~ "頻道:@2"
-#: advtrains_train_industrial/init.lua:98
-msgid "Industrial tank wagon"
-msgstr "液體運輸車廂"
+#~ msgid "Access to @1"
+#~ msgstr "可前往@1"
-#: advtrains_train_industrial/init.lua:116
-msgid "Industrial wood wagon"
-msgstr "木材運輸車廂"
+#~ msgid "Big Industrial Train Engine"
+#~ msgstr "大型工業用火車頭"
-#: advtrains_train_japan/init.lua:4
-msgid "Japanese Train Inter-Wagon Connection"
-msgstr "日本火車連結器"
+#~ msgid "Box Wagon"
+#~ msgstr "貨運車廂"
-#: advtrains_train_japan/init.lua:37
-msgid "Driver stand"
-msgstr "司機座位"
+#~ msgid "Bumper"
+#~ msgstr "保險槓"
-#: advtrains_train_japan/init.lua:101
-msgid "Japanese Train Engine"
-msgstr "高速列車車頭"
+#~ msgid "Can't get on: wagon full or doors closed!"
+#~ msgstr "無法上車:車門已關閉或車廂已滿。"
-#: advtrains_train_japan/init.lua:176
-msgid "Japanese Train Wagon"
-msgstr "高速列車車廂"
+#~ msgid "Can't place: protected position!"
+#~ msgstr "無法放置:此區域已被保護。"
-#: advtrains_train_steam/init.lua:75
-msgid "Steam Engine"
-msgstr "蒸汽機車"
+#~ msgid "Command (on)"
+#~ msgstr "命令 (啟用時)"
-#: advtrains_train_steam/init.lua:159
-msgid "Detailed Steam Engine"
-msgstr "精細的蒸汽機車"
+#~ msgid "Default Seat"
+#~ msgstr "預設座位"
-#: advtrains_train_steam/init.lua:206
-msgid "Passenger Wagon"
-msgstr "客車"
+#~ msgid "Default Seat (driver stand)"
+#~ msgstr "預設座位 (司機座位)"
-#: advtrains_train_steam/init.lua:226
-msgid "Box Wagon"
-msgstr "貨運車廂"
+#~ msgid "Dep. Speed"
+#~ msgstr "出發速度"
-#: advtrains_train_subway/init.lua:144
-msgid "Subway Passenger Wagon"
-msgstr "地鐵車廂"
+#~ msgid "Deprecated Track"
+#~ msgstr "請不要使用"
-#: advtrains_train_track/init.lua:31
-msgid "Y-turnout"
-msgstr "對稱道岔"
+#~ msgid "Detailed Steam Engine"
+#~ msgstr "精細的蒸汽機車"
-#: advtrains_train_track/init.lua:49
-msgid "3-way turnout"
-msgstr "三開道岔"
+#~ msgid "Detector Rail"
+#~ msgstr "探測軌道"
-#: advtrains_train_track/init.lua:69
-msgid "Perpendicular Diamond Crossing Track"
-msgstr "垂直交叉軌道"
+#~ msgid "Diagonal Diamond Crossing Track"
+#~ msgstr "交叉軌道"
-#: advtrains_train_track/init.lua:91
-msgid "90+Angle Diamond Crossing Track"
-msgstr "交叉軌道 (其中一條軌道與座標軸平行)"
+#~ msgid "Door Delay"
+#~ msgstr "車門關閉時間"
-#: advtrains_train_track/init.lua:132
-msgid "Diagonal Diamond Crossing Track"
-msgstr "交叉軌道"
+#, fuzzy
+#~ msgid "Driver Stand"
+#~ msgstr "司機座位"
-#: advtrains_train_track/init.lua:179
-msgid "Bumper"
-msgstr "保險槓"
+#~ msgid "Driver Stand (left)"
+#~ msgstr "左側司機座位"
-#: advtrains_train_track/init.lua:201
-msgid "ATC controller"
-msgstr "ATC 控制器"
+#~ msgid "Driver Stand (right)"
+#~ msgstr "右側司機座位"
-#: advtrains_train_track/init.lua:317
-msgid "Unloading Track"
-msgstr "卸貨軌道"
+#~ msgid "Driver stand"
+#~ msgstr "司機座位"
-#: advtrains_train_track/init.lua:342
-msgid "Loading Track"
-msgstr "裝貨軌道"
+#~ msgid "Industrial Train Engine"
+#~ msgstr "工業用火車頭"
-#: advtrains_train_track/init.lua:406
-msgid "Detector Rail"
-msgstr "探測軌道"
+#~ msgid "Industrial tank wagon"
+#~ msgstr "液體運輸車廂"
-#~ msgid ""
-#~ "ATC controller, mode @1\n"
-#~ "Channel: @2"
-#~ msgstr ""
-#~ "ATC 控制器\n"
-#~ "模式:@1\n"
-#~ "頻道:@2"
+#~ msgid "Industrial wood wagon"
+#~ msgstr "木材運輸車廂"
-#~ msgid "Access to @1"
-#~ msgstr "可前往@1"
+#~ msgid "Japanese Train Engine"
+#~ msgstr "高速列車車頭"
-#~ msgid "Can't get on: wagon full or doors closed!"
-#~ msgstr "無法上車:車門已關閉或車廂已滿。"
+#~ msgid "Japanese Train Inter-Wagon Connection"
+#~ msgstr "日本火車連結器"
-#~ msgid "Can't place: protected position!"
-#~ msgstr "無法放置:此區域已被保護。"
+#~ msgid "Japanese Train Wagon"
+#~ msgstr "高速列車車廂"
-#~ msgid "Default Seat"
-#~ msgstr "預設座位"
+#, fuzzy
+#~ msgid "Japanese signal pole"
+#~ msgstr "高速列車車廂"
-#~ msgid "Default Seat (driver stand)"
-#~ msgstr "預設座位 (司機座位)"
+#~ msgid "Kick out passengers"
+#~ msgstr "踢出乘客"
-#~ msgid "Deprecated Track"
-#~ msgstr "請不要使用"
+#~ msgid "Loading Track"
+#~ msgstr "裝貨軌道"
#~ msgid "Lock couples"
#~ msgstr "鎖定連結處"
+#~ msgid "Passenger Wagon"
+#~ msgstr "客車"
+
+#, fuzzy
+#~ msgid "Passenger area"
+#~ msgstr "客車"
+
+#~ msgid ""
+#~ "Passive Component Naming Tool\n"
+#~ "\n"
+#~ "Right-click to name a passive component."
+#~ msgstr ""
+#~ "被動元件命名工具\n"
+#~ "\n"
+#~ "右鍵單擊命名所選元件。"
+
+#~ msgid "Perpendicular Diamond Crossing Track"
+#~ msgstr "垂直交叉軌道"
+
+#~ msgid "Reverse train"
+#~ msgstr "改變行車方向"
+
+#~ msgid "Signal"
+#~ msgstr "色燈號誌機"
+
#~ msgid "Speed:"
#~ msgstr "速度"
+#~ msgid "Station Code"
+#~ msgstr "車站碼"
+
+#~ msgid "Station Name"
+#~ msgstr "車站名稱"
+
+#~ msgid "Station/Stop Track"
+#~ msgstr "車站軌道"
+
+#~ msgid "Steam Engine"
+#~ msgstr "蒸汽機車"
+
+#~ msgid "Stop Time"
+#~ msgstr "停站時間"
+
+#~ msgid "Subway Passenger Wagon"
+#~ msgstr "地鐵車廂"
+
#~ msgid "Target:"
#~ msgstr "目標速度"
@@ -684,13 +815,49 @@ msgstr "探測軌道"
#~ msgid "This position is protected!"
#~ msgstr "這裡已被保護。"
+#~ msgid "This track can not be changed."
+#~ msgstr "您不能調整這段軌道。"
+
+#~ msgid "Track"
+#~ msgstr "軌道"
+
+#, fuzzy
+#~ msgid "Train "
+#~ msgstr "已複製火車。"
+
+#~ msgid "Unconfigured LuaATC component"
+#~ msgstr "LuaATC 元件 (未配置)"
+
+#~ msgid "Unloading Track"
+#~ msgstr "卸貨軌道"
+
#~ msgid "Use Sneak+rightclick to bypass closed doors!"
#~ msgstr "請使用潛行+右鍵上車。"
+#~ msgid "Y-turnout"
+#~ msgstr "對稱道岔"
+
+#~ msgid ""
+#~ "You are not allowed to configure this LuaATC component without the @1 "
+#~ "privilege."
+#~ msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。"
+
+#~ msgid ""
+#~ "You are not allowed to configure this track without the @1 privilege."
+#~ msgstr "您沒有「@1」許可權,不能調整這段軌道。"
+
+#~ msgid "You are not allowed to configure this track."
+#~ msgstr "您不能調整這段軌道。"
+
#, fuzzy
#~ msgid "You are not allowed to modify this protected track."
#~ msgstr "這裡已被保護,您不能在這裡建造鐵路。"
#~ msgid ""
+#~ "You are not allowed to name LuaATC passive components without the @1 "
+#~ "privilege."
+#~ msgstr "您沒有「@1」許可權,不能命名這個元件。"
+
+#~ msgid ""
#~ "You need to own at least one neighboring wagon to destroy this couple."
#~ msgstr "您必須至少擁有其中一節車廂才能分開這兩節車廂。"
diff --git a/advtrains/protection.lua b/advtrains/protection.lua
index ac1cd66..6bb1ccb 100644
--- a/advtrains/protection.lua
+++ b/advtrains/protection.lua
@@ -1,27 +1,29 @@
-- advtrains
-- protection.lua: privileges and rail protection, and some helpers
+-- Get current translator
+local S = advtrains.translate
-- Privileges to control TRAIN DRIVING/COUPLING
minetest.register_privilege("train_operator", {
- description = attrans("Can place, remove and operate trains"),
+ description = S("Can place, remove and operate trains"),
give_to_singleplayer= true,
});
minetest.register_privilege("train_admin", {
- description = attrans("Can place, remove and operate any train, regardless of owner, whitelist, or protection"),
+ description = S("Can place, remove and operate any train, regardless of owner, whitelist, or protection"),
give_to_singleplayer= true,
});
-- Privileges to control TRACK BUILDING
minetest.register_privilege("track_builder", {
- description = attrans("Can place and dig tracks in unprotected areas"),
+ description = S("Can place and dig tracks in unprotected areas"),
give_to_singleplayer= true,
});
-- Privileges to control OPERATING TURNOUTS/SIGNALS
minetest.register_privilege("railway_operator", {
- description = attrans("Can operate turnouts and signals in unprotected areas"),
+ description = S("Can operate turnouts and signals in unprotected areas"),
give_to_singleplayer= true,
});
@@ -145,12 +147,12 @@ function advtrains.check_track_protection(pos, pname, near, prot_p)
--atdebug("CTP: ",pos,pname,near,prot_p,"priv=",priv,"prot=",prot,"dprot=",dprot)
if not priv and (not boo or prot or not dprot) then
- minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks without the track_builder privilege.") or attrans("You are not allowed to build tracks without the track_builder privilege."))
+ minetest.chat_send_player(pname, near and S("You are not allowed to build near tracks without the track_builder privilege.") or S("You are not allowed to build tracks without the track_builder privilege."))
minetest.log("action", pname.." tried to modify terrain "..nears.."track at "..minetest.pos_to_string(apos).." but is not permitted to (no privilege)")
return false
end
if prot then
- minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks at this protected position.") or attrans("You are not allowed to build tracks at this protected position."))
+ minetest.chat_send_player(pname, near and S("You are not allowed to build near tracks at this protected position.") or S("You are not allowed to build tracks at this protected position."))
minetest.record_protection_violation(pos, pname)
minetest.log("action", pname.." tried to modify "..nears.."track at "..minetest.pos_to_string(apos).." but position is protected!")
return false
@@ -181,7 +183,7 @@ function advtrains.check_turnout_signal_protection(pos, pname)
nocheck=false
return true
else
- minetest.chat_send_player(pname, attrans("You are not allowed to operate turnouts and signals without the railway_operator privilege."))
+ minetest.chat_send_player(pname, S("You are not allowed to operate turnouts and signals without the railway_operator privilege."))
minetest.log("action", pname.." tried to operate turnout/signal at "..minetest.pos_to_string(pos).." but does not have railway_operator")
nocheck=false
return false
diff --git a/advtrains/signals.lua b/advtrains/signals.lua
index 2b7362e..198507a 100644
--- a/advtrains/signals.lua
+++ b/advtrains/signals.lua
@@ -1,6 +1,9 @@
--advtrains by orwell96
--signals.lua
+-- Get current translator
+local S = advtrains.translate
+
local mrules_wallsignal = advtrains.meseconrules
local function can_dig_func(pos, player)
@@ -59,7 +62,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
tiles = {"advtrains_retrosignal.png"},
inventory_image="advtrains_retrosignal_inv.png",
drop="advtrains:retrosignal_off",
- description=attrans("Lampless Signal"),
+ description=S("Lampless Signal (deprecated!)"),
sunlight_propagates=true,
groups = {
cracky=3,
@@ -83,7 +86,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
on_rightclick=function(pos, node, player)
local pname = player:get_player_name()
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
- if sigd then
+ if sigd and not player:get_player_control().aux1 then
advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
@@ -122,7 +125,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
tiles = {"advtrains_signal_"..r..".png"},
inventory_image="advtrains_signal_inv.png",
drop="advtrains:signal_off",
- description=attrans("Signal"),
+ description=S("Signal (deprecated!)"),
groups = {
cracky=3,
not_blocking_trains=1,
@@ -141,7 +144,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
on_rightclick=function(pos, node, player)
local pname = player:get_player_name()
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
- if sigd then
+ if sigd and not player:get_player_control().aux1 then
advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
@@ -177,9 +180,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
--tunnel signals. no rotations.
local swdesc = { -- needed for xgettext
- l = attrans("Wallmounted Signal (left)"),
- r = attrans("Wallmounted Signal (right)"),
- t = attrans("Wallmounted Signal (top)"),
+ l = S("Wallmounted Signal (left) (deprecated!)"),
+ r = S("Wallmounted Signal (right) (deprecated!)"),
+ t = S("Wallmounted Signal (top) (deprecated!)"),
}
for loc, sbox in pairs({l={-1/2, -1/2, -1/4, 0, 1/2, 1/4}, r={0, -1/2, -1/4, 1/2, 1/2, 1/4}, t={-1/2, 0, -1/4, 1/2, 1/2, 1/4}}) do
minetest.register_node("advtrains:signal_wall_"..loc.."_"..r, {
@@ -213,7 +216,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
on_rightclick=function(pos, node, player)
local pname = player:get_player_name()
local sigd = advtrains.interlocking and advtrains.interlocking.db.get_sigd_for_signal(pos)
- if sigd then
+ if sigd and not player:get_player_control().aux1 then
advtrains.interlocking.show_signalling_form(sigd, pname)
elseif advtrains.interlocking and player:get_player_control().aux1 then
advtrains.interlocking.show_ip_form(pos, pname)
@@ -258,7 +261,7 @@ minetest.register_node("advtrains:across_off", {
mesh = "advtrains_across.obj",
tiles = {"advtrains_across.png"},
drop="advtrains:across_off",
- description=attrans("Andrew's Cross"),
+ description=S("Andrew's Cross"),
groups = {
cracky=3,
not_blocking_trains=1,
@@ -295,7 +298,7 @@ minetest.register_node("advtrains:across_on", {
mesh = "advtrains_across.obj",
tiles = {{name="advtrains_across_anim.png", animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.0}}},
drop="advtrains:across_off",
- description=attrans("Andrew's Cross"),
+ description=S("Andrew's Cross"),
groups = {
cracky=3,
not_blocking_trains=1,
diff --git a/advtrains/track_reg_helper.lua b/advtrains/track_reg_helper.lua
index 31741d6..fe1d11d 100644
--- a/advtrains/track_reg_helper.lua
+++ b/advtrains/track_reg_helper.lua
@@ -4,6 +4,9 @@
-- Note to future: This is actually just a work-saver, avoiding me to port over all the crossing nodes as well as the linetrack tracks.
-- Future track mods should please directly use the appropriate advtrains.register_node_4rot() API and not rely on this!
+-- Get current translator
+local S = advtrains.translate
+
--definition preparation
local function conns(c1, c2, r1, r2) return {{c=c1, y=r1}, {c=c2, y=r2}} end
local function conns3(c1, c2, c3, r1, r2, r3) return {{c=c1, y=r1}, {c=c2, y=r2}, {c=c3, y=r3}} end
@@ -471,7 +474,7 @@ Depending on the number of connections:
local function can_dig_callback(pos, player)
local ok, reason = advtrains.can_dig_or_modify_track(pos)
if not ok and player then
- minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason)
+ minetest.chat_send_player(player:get_player_name(), S("This track can not be removed!") .. " " .. reason)
end
return ok
end
@@ -484,6 +487,11 @@ local function append_statemap_suffix(state_map, nnpref, rot)
return t
end
+function advtrains.default_suitable_substrate(upos)
+ return core.registered_nodes[core.get_node(upos).name]
+ and core.registered_nodes[core.get_node(upos).name].walkable
+end
+
function advtrains.register_tracks(tracktype, def, preset)
if not preset.v25_format then
error("advtrains.register_tracks(): A track preset for pre-v2.5 is used with advtrains 2.5+. Mod probably defines own track preset instead of using it from the advtrains.ap table! Please check track mod compatibility!")
@@ -509,8 +517,7 @@ function advtrains.register_tracks(tracktype, def, preset)
return itemstack, false
end
if minetest.registered_nodes[minetest.get_node(pos).name] and minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then
- local s = minetest.registered_nodes[minetest.get_node(upos).name] and minetest.registered_nodes[minetest.get_node(upos).name].walkable
- if s then
+ if (def.suitable_substrate and def.suitable_substrate or advtrains.default_suitable_substrate)(upos) then
-- minetest.chat_send_all(nnprefix)
local yaw = placer:get_look_horizontal()
advtrains.trackplacer.place_track(pos, nnprefix, name, yaw)
@@ -652,7 +659,7 @@ end
local sl={}
function sl.register_placer(def, preset)
minetest.register_craftitem(":"..def.nodename_prefix.."_slopeplacer",{
- description = attrans("@1 Slope", def.description),
+ description = S("@1 Slope", def.description),
inventory_image = def.texture_prefix.."_slopeplacer.png",
wield_image = def.texture_prefix.."_slopeplacer.png",
groups={},
@@ -663,17 +670,17 @@ end
function sl.create_slopeplacer_on_place(def, preset)
return function(istack, player, pt)
if not pt.type=="node" then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: not pointing at node"))
return istack
end
local pos=pt.above
if not pos then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: not pointing at node"))
return istack
end
local node=minetest.get_node(pos)
if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].buildable_to then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: space occupied!"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: space occupied!"))
return istack
end
if not advtrains.check_track_protection(pos, player:get_player_name()) then
@@ -726,17 +733,17 @@ function sl.create_slopeplacer_on_place(def, preset)
pos=vector.subtract(pos, dirvec)
end
else
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: Not enough slope items left (@1 required)", step))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: Not enough slope items left (@1 required)", step))
end
else
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: There's no slope of length @1",step))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: There's no slope of length @1",step))
end
return istack
end
step=step+1
pos=vector.add(pos, dirvec)
end
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: no supporting node at upper end."))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: no supporting node at upper end."))
return itemstack
end
end
diff --git a/advtrains/trackplacer.lua b/advtrains/trackplacer.lua
index 3278b8c..0bcde77 100644
--- a/advtrains/trackplacer.lua
+++ b/advtrains/trackplacer.lua
@@ -1,6 +1,9 @@
--trackplacer.lua
--holds code for the track-placing system. the default 'track' item will be a craftitem that places rails as needed. this will neither place or change switches nor place vertical rails.
+-- Get current translator
+local S = advtrains.translate
+
--all new trackplacer code
local tp={
groups={}
@@ -237,7 +240,7 @@ end
minetest.register_craftitem("advtrains:trackworker",{
- description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"),
+ description = S("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"),
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
inventory_image = "advtrains_trackworker.png",
wield_image = "advtrains_trackworker.png",
@@ -260,7 +263,7 @@ minetest.register_craftitem("advtrains:trackworker",{
local ndef = minetest.registered_nodes[node.name]
if not ndef.advtrains or not ndef.advtrains.trackworker_next_rot then
- minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!"))
+ minetest.chat_send_player(placer:get_player_name(), S("This node can't be rotated using the trackworker!"))
return
end
@@ -269,7 +272,7 @@ minetest.register_craftitem("advtrains:trackworker",{
-- is a track, we can query
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
if not can_modify then
- local str = attrans("This track can not be rotated!")
+ local str = S("This track can not be rotated!")
if reason then
str = str .. " " .. reason
end
@@ -309,7 +312,7 @@ minetest.register_craftitem("advtrains:trackworker",{
local ndef = minetest.registered_nodes[node.name]
if not ndef.advtrains or not ndef.advtrains.trackworker_next_var then
- minetest.chat_send_player(name, attrans("This node can't be changed using the trackworker!"))
+ minetest.chat_send_player(name, S("This node can't be changed using the trackworker!"))
return
end
@@ -318,7 +321,7 @@ minetest.register_craftitem("advtrains:trackworker",{
-- is a track, we can query
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
if not can_modify then
- local str = attrans("This track can not be rotated!")
+ local str = S("This track can not be rotated!")
if reason then
str = str .. " " .. reason
end
diff --git a/advtrains/tracks.lua b/advtrains/tracks.lua
index fa7b702..e6d08a7 100644
--- a/advtrains/tracks.lua
+++ b/advtrains/tracks.lua
@@ -1,6 +1,8 @@
-- tracks.lua
-- rewritten with advtrains 2.5 according to new track registration system
+-- Get current translator
+local S = advtrains.translate
--[[
@@ -125,7 +127,7 @@ Switchable nodes (turnouts, single/double-slip switches) are implemented by havi
function advtrains.track_can_dig_callback(pos, player)
local ok, reason = advtrains.can_dig_or_modify_track(pos)
if not ok and player then
- minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason)
+ minetest.chat_send_player(player:get_player_name(), S("This track can not be removed!") .. " " .. reason)
end
return ok
end
@@ -256,17 +258,17 @@ end
-- Impl Note: possibly duplicate code in "self contained TCB" - see interlocking/tcb_ts_ui.lua!
function advtrains.can_dig_or_modify_track(pos)
if advtrains.get_train_at_pos(pos) then
- return false, attrans("Position is occupied by a train.")
+ return false, S("Position is occupied by a train.")
end
-- interlocking: tcb, signal IP a.s.o.
if advtrains.interlocking then
-- TCB?
if advtrains.interlocking.db.get_tcb(pos) then
- return false, attrans("There's a Track Circuit Break here.")
+ return false, S("There's a Track Circuit Break here.")
end
-- signal ip?
if advtrains.interlocking.db.is_ip_at(pos, true) then -- is_ip_at with purge parameter
- return false, attrans("There's a Signal Influence Point here.")
+ return false, S("There's a Signal Influence Point here.")
end
end
return true
diff --git a/advtrains/trainhud.lua b/advtrains/trainhud.lua
index 9d9d475..eeebff0 100644
--- a/advtrains/trainhud.lua
+++ b/advtrains/trainhud.lua
@@ -1,5 +1,8 @@
--trainhud.lua: holds all the code for train controlling
+-- Get current translator
+local S = advtrains.translate
+
local T = advtrains.texture
advtrains.hud = {}
@@ -274,7 +277,7 @@ function advtrains.hud_train_format(train, flip)
hud:add_n7seg(131, 18, 28, 14, lzbdisp.d, 3, lzbdisp.c)
if res and res == 0 then
- table.insert(st, attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again."))
+ table.insert(st, S("OVERRUN RED SIGNAL! Examine situation and reverse train to move again."))
end
if train.atc_command then
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index c49d7e3..c0ac179 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -1,6 +1,9 @@
--trainlogic.lua
--controls train entities stuff about connecting/disconnecting/colliding trains and other things
+-- Get current translator
+local S = advtrains.translate
+
local setting_overrun_mode = minetest.settings:get("advtrains_overrun_mode")
local benchmark=false
diff --git a/advtrains/wagonprop_tool.lua b/advtrains/wagonprop_tool.lua
index 2a4a9e2..f32dd03 100644
--- a/advtrains/wagonprop_tool.lua
+++ b/advtrains/wagonprop_tool.lua
@@ -1,6 +1,10 @@
+
+-- Get current translator
+local S = advtrains.translate
+
minetest.register_craftitem("advtrains:wagon_prop_tool",{ --craftitem because it does nothing on its own
- description = attrans("Wagon Properties Tool\nPunch a wagon to view and edit the Wagon Properties"),
- short_description = attrans("Wagon Properties Tool"),
+ description = S("Wagon Properties Tool\nPunch a wagon to view and edit the Wagon Properties"),
+ short_description = S("Wagon Properties Tool"),
groups = {},
inventory_image = "advtrains_wagon_prop_tool.png",
wield_image = "advtrains_wagon_prop_tool.png",
@@ -23,7 +27,7 @@ minetest.register_craftitem("advtrains:wagon_prop_tool",{ --craftitem because it
--whitelist protection check
if not advtrains.check_driving_couple_protection(pname,wagon.owner,wagon.whitelist) then
- minetest.chat_send_player(pname, attrans("Insufficient privileges to use this!"))
+ minetest.chat_send_player(pname, S("Insufficient privileges to use this!"))
return
end
object:show_wagon_properties(pname)
@@ -40,4 +44,4 @@ if minetest.get_modpath("default") then --register recipe
{"","","group:wood"},
}
})
-end \ No newline at end of file
+end
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index 10576c3..52ce577 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
+-- Get current translator
+local S = advtrains.translate
+
-- 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,"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(" 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
@@ -669,21 +672,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
@@ -693,7 +696,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
@@ -712,7 +715,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
@@ -723,16 +726,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
@@ -858,7 +861,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
@@ -870,7 +873,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
@@ -881,27 +884,27 @@ function wagon:show_wagon_properties(pname)
button: save
]]
local data = advtrains.wagons[self.id]
- local form = "size[5,5]"
- form = form.."label[0.2,0;"..attrans("This Wagon ID")..": "..self.id.." ("..data.owner..")]"
- 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 "").."]"
+ local form="size[5,5]"
+ form=form.."label[0.2,0;"..S("This Wagon ID")..": "..self.id.." ("..data.owner..")]"
+ 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
@@ -986,30 +989,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
@@ -1018,24 +1021,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
@@ -1045,14 +1048,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
@@ -1269,7 +1272,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)
@@ -1278,7 +1281,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)
@@ -1298,7 +1301,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]
@@ -1316,7 +1319,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
@@ -1341,7 +1344,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
@@ -1378,7 +1381,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[]"
@@ -1435,7 +1438,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
@@ -1447,7 +1450,7 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati
local prevpos = advtrains.get_adjacent_rail(pos, tconns, plconnid)
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
@@ -1478,7 +1481,7 @@ advtrains.register_wagon("advtrains:wagon_placeholder", {
assign_to_seat_group = {},
wagon_span=1,
drops={},
-}, "Wagon placeholder", "advtrains_wagon_placeholder.png", true)
+}, S("Wagon placeholder"), "advtrains_wagon_placeholder.png", true)
@@ -1576,12 +1579,12 @@ minetest.register_chatcommand("at_chown", {
local new_owner = params[2]
if not wid then return false end --no params added
--player name checks
- if not new_owner then return false, attrans("Please specify a player name to transfer ownership to.") end --no player name argument
- if not core.player_exists(new_owner) then return false, attrans("That player does not exist!") end --is a valid player
+ if not new_owner then return false, S("Please specify a player name to transfer ownership to.") end --no player name argument
+ if not core.player_exists(new_owner) then return false, S("That player does not exist!") end --is a valid player
--wagon id checks
- if not wid:match("%d%d%d%d%d%d") then return false, attrans("Not a valid wagon id.") end -- invalid wagon id
+ if not wid:match("%d%d%d%d%d%d") then return false, S("Not a valid wagon id.") end -- invalid wagon id
local w_data = advtrains.wagons[wid]
- if not w_data then return false, attrans("That wagon does not exist!") end
+ if not w_data then return false, S("That wagon does not exist!") end
-- actually chown the wagon
local curr_owner = w_data.owner
w_data.owner = new_owner
@@ -1589,8 +1592,8 @@ minetest.register_chatcommand("at_chown", {
advtrains.log("Chown", name, core.get_player_by_name(name):get_pos(), "wid="..wid..", from="..curr_owner..", to="..new_owner)
if name ~= new_owner then
- core.chat_send_player(new_owner, attrans("You have been given ownership of wagon @1", wid))
+ core.chat_send_player(new_owner, S("You have been given ownership of wagon @1", wid))
end
- return true, attrans("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
+ return true, S("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
end
-}) \ No newline at end of file
+})