diff options
Diffstat (limited to 'advtrains')
-rw-r--r-- | advtrains/atc.lua | 44 | ||||
-rw-r--r-- | advtrains/copytool.lua | 25 | ||||
-rw-r--r-- | advtrains/couple.lua | 15 | ||||
-rw-r--r-- | advtrains/craft_items.lua | 11 | ||||
-rw-r--r-- | advtrains/formspec.lua | 5 | ||||
-rw-r--r-- | advtrains/init.lua | 73 | ||||
-rw-r--r-- | advtrains/misc_nodes.lua | 11 | ||||
-rw-r--r-- | advtrains/po/advtrains.pot | 579 | ||||
-rw-r--r-- | advtrains/po/de.po | 1149 | ||||
-rw-r--r-- | advtrains/po/fr.po | 1234 | ||||
-rwxr-xr-x | advtrains/po/update-translations.sh | 18 | ||||
-rw-r--r-- | advtrains/po/zh_CN.po | 1029 | ||||
-rw-r--r-- | advtrains/po/zh_TW.po | 1029 | ||||
-rw-r--r-- | advtrains/protection.lua | 16 | ||||
-rw-r--r-- | advtrains/signals.lua | 23 | ||||
-rw-r--r-- | advtrains/track_reg_helper.lua | 27 | ||||
-rw-r--r-- | advtrains/trackplacer.lua | 13 | ||||
-rw-r--r-- | advtrains/tracks.lua | 10 | ||||
-rw-r--r-- | advtrains/trainhud.lua | 5 | ||||
-rw-r--r-- | advtrains/trainlogic.lua | 3 | ||||
-rw-r--r-- | advtrains/wagonprop_tool.lua | 12 | ||||
-rw-r--r-- | advtrains/wagons.lua | 137 |
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 +}) |