diff options
author | orwell <orwell@bleipb.de> | 2025-06-11 21:09:51 +0200 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-06-11 21:09:51 +0200 |
commit | 2e123814677d47f66fb989df6ef3cd666eb690f5 (patch) | |
tree | 7070ede62cdbc05f2052f7e992bc3d076e1469ec /advtrains_interlocking | |
parent | 7e332e2296cd2889859e636efcff0cba85988b58 (diff) | |
download | advtrains-2e123814677d47f66fb989df6ef3cd666eb690f5.tar.gz advtrains-2e123814677d47f66fb989df6ef3cd666eb690f5.tar.bz2 advtrains-2e123814677d47f66fb989df6ef3cd666eb690f5.zip |
Tag strings for Interlocking
Diffstat (limited to 'advtrains_interlocking')
23 files changed, 9806 insertions, 224 deletions
diff --git a/advtrains_interlocking/autonaming.lua b/advtrains_interlocking/autonaming.lua index f88ccbd..78886c0 100644 --- a/advtrains_interlocking/autonaming.lua +++ b/advtrains_interlocking/autonaming.lua @@ -1,6 +1,8 @@ -- autonaming.lua -- Automatically set names of signals (and maybe track sections) based on numbering +-- Get current translator +local S = advtrains.interlocking.translate local function find_highest_count(prefix) local cnt = 0 @@ -34,10 +36,10 @@ function advtrains.interlocking.set_autoname_prefix(pname, prefix) -- scan database for this prefix to find out the highest count local count = find_highest_count(prefix) player_prefix_info[pname] = { prefix = prefix, count = count} - return true, "Prefix set, next signal name will be: ".. advtrains.interlocking.get_next_autoname(pname, true) + return true, S("Prefix set, next signal name will be: @1", advtrains.interlocking.get_next_autoname(pname, true)) else player_prefix_info[pname] = nil - return true, "Prefix unset, signals are not auto-named for you!" + return true, S("Prefix unset, signals are not auto-named for you!") end end @@ -62,7 +64,7 @@ end minetest.register_chatcommand("at_nameprefix", { params = "<prefix>", - description = "Sets the current prefix for automatically naming interlocking components. Example: '/at_nameprefix TEST' - signals will be named TEST1, TEST2 and so on", + description = S("Sets the current prefix for automatically naming interlocking components. Example: '/at_nameprefix TEST' - signals will be named TEST1, TEST2 and so on"), privs = {interlocking = true}, func = advtrains.interlocking.set_autoname_prefix, }) diff --git a/advtrains_interlocking/database.lua b/advtrains_interlocking/database.lua index 5e35dba..bd90e36 100644 --- a/advtrains_interlocking/database.lua +++ b/advtrains_interlocking/database.lua @@ -55,6 +55,9 @@ Every time a repair operation takes place, and on every track edit operation, th ]]-- +-- Get current translator +local S = advtrains.interlocking.translate + local TRAVERSER_LIMIT = 1000 @@ -380,7 +383,7 @@ function ildb.check_and_repair_ts_at_pos(pos, tcb_connid, notify_pname, force_cr if ts_id ~= tcbs_ts_id then -- inconsistency is found, repair it --atdebug("check_and_repair_ts_at_pos: Inconsistency is found!") - tsrepair_notify(notify_pname, "Track section inconsistent here, repairing...") + tsrepair_notify(notify_pname, S("Track section inconsistent here, repairing...")) return ildb.repair_ts_merge_all(all_tcbs, force_create, notify_pname) -- Step2 check is no longer necessary since we just created that new section end @@ -409,7 +412,7 @@ function ildb.check_and_repair_ts_at_pos(pos, tcb_connid, notify_pname, force_cr -- That means it is sufficient to compare the LENGTHS of both lists, if one is longer then it is inconsistent if #ts.tc_breaks ~= #all_tcbs then --atdebug("check_and_repair_ts_at_pos: Partition is found!") - tsrepair_notify(notify_pname, "Track section partition found, repairing...") + tsrepair_notify(notify_pname, S("Track section partition found, repairing...")) return ildb.repair_ts_merge_all(all_tcbs, force_create, notify_pname) end --tsrepair_notify(notify_pname, "Found section", ts.name or ts_id, "here.") @@ -537,7 +540,7 @@ function ildb.repair_ts_merge_all(all_tcbs, force_create, notify_pname) end -- Create a new fresh track section with all the TCBs we have in our collection local new_ts_id, new_ts = ildb.create_ts_from_tcb_list(all_tcbs) - tsrepair_notify(notify_pname, "Created track section",new_ts_id,"from",#all_tcbs,"TCBs") + tsrepair_notify(notify_pname, S("Created track section @1 from @2 TCBs", new_ts_id, #all_tcbs)) return new_ts_id end @@ -738,7 +741,8 @@ local function recursively_find_routes(s_pos, s_connid, locks_found, result_tabl local end_pkey = advtrains.encode_pos(pos) --atdebug("Found end TCB", pos, end_pkey,", returning") if result_table[end_pkey] then - atwarn("While caching track section routing, found multiple route paths within same track section. Only first one found will be used") + --atwarn("While caching track section routing, found multiple route paths within same track section. Only first one found will be used") + -- this warning appears too often and is typically harmless else result_table[end_pkey] = table.copy(locks_found) end @@ -784,9 +788,9 @@ function ildb.update_rs_cache(ts_id) end end -- warn about superfluous entry - for sup_end_pkey, sup_entry in pairs(result_table) do - atwarn("In update_rs_cache for section",ts_id,"found superfluous endpoint",sup_end_pkey,"->",sup_entry) - end + --for sup_end_pkey, sup_entry in pairs(result_table) do + -- atwarn("In update_rs_cache for section",ts_id,"found superfluous endpoint",sup_end_pkey,"->",sup_entry) + --end -- this warning appears too often and is typically harmless end ts.rs_cache = rscache --atdebug("== Done update_rs_cache for ",ts_id, "result:",rscache) diff --git a/advtrains_interlocking/init.lua b/advtrains_interlocking/init.lua index ee08c30..a22abf3 100644 --- a/advtrains_interlocking/init.lua +++ b/advtrains_interlocking/init.lua @@ -3,6 +3,14 @@ advtrains.interlocking = {} +-- Initialize internationalization (using ywang's poconvert) +advtrains.poconvert.from_flat("advtrains_interlocking") +-- ask engine for translator instance, this will load the translation files +advtrains.interlocking.translate = core.get_translator("advtrains") + +-- Get current translator +local S = advtrains.interlocking.translate + advtrains.SHUNT_SPEED_MAX = 6 function advtrains.interlocking.sigd_equal(sigd, cmp) @@ -30,4 +38,4 @@ dofile(modpath.."ars.lua") dofile(modpath.."tsr_rail.lua") -minetest.register_privilege("interlocking", {description = "Can set up track sections, routes and signals.", give_to_singleplayer = true}) +minetest.register_privilege("interlocking", {description = S("Can set up track sections, routes and signals"), give_to_singleplayer = true}) diff --git a/advtrains_interlocking/po/README.md b/advtrains_interlocking/po/README.md new file mode 100644 index 0000000..3e94682 --- /dev/null +++ b/advtrains_interlocking/po/README.md @@ -0,0 +1,70 @@ +# Translations +Please read this document before working on any translations. + +Unlike many other mods, Advtrains uses `.po` files for localization, +which are then automatically converted to `.tr` files when the mod is +loaded. Therefore, please submit patches that edit the `.po` files. + +## Getting Started +The translation files can be edited like any other `.po` file. + +If the translation file for your language does not exist, create it by +copying `template.txt` to `advtrains.XX.tr`, where `XX` is replaced by +the language code. + +Feel free to use the [discussion mailing list][srht-discuss] if you +have any questions regarding localization. + +You can share your `.po` file directly or [as a patch][gsm] to the [dev +mailing list][srht-devel]. The latter is encouraged, but, unlike code +changes, translation files sent directly are also accepted. + +[tr-format]: https://minetest.gitlab.io/minetest/translations/#translation-file-format +[srht-discuss]: https://lists.sr.ht/~gpcf/advtrains-discuss +[srht-devel]: https://lists.sr.ht/~gpcf/advtrains-devel +[gsm]: https://git-send-email.io + +## Translation Notes +* Translations should be consistent. You can use other entries or the +translations in Minetest as a reference. +* Translations do not have to fully correspond to the original text - +they only need to provide the same information. In particular, +translations do not need to have the same linguistical structure as the +original text. +* Replacement sequences (`@1`, `@2`, etc) should not be translated. +* Certain abbreviations or names, such as "Ks" or "Zs 3", should +generally not be translated. + +### (de) German +* Verwenden Sie die neue Rechtschreibung und die Sie-Form. +* Mit der deutschen Tastaturbelegung unter Linux können die +Anführungszeichen „“ mit AltGr-V bzw. AltGr-B eingegeben werden. + +### (zh) Chinese +(This section is written in English to avoid writing the note twice or +using only one of the variants, as most of this section applies to both +the traditional and simplified variants.) + +* Please use the 「」 quotation marks for Traditional Chinese and “” +for Simplified Chinese. +* Please use the fullwidth variants of: , 、 。 ? ! : ; +* Please use the halfwidth variants of: ( ) [ ] / \ | +* Please do not leave any space between Han characters (including +fullwidth punctuation marks). +* Please leave a space between Han characters (excluding fullwidth +punctuation marks) and characters from other scripts (including +halfwidth punctuation marks). However, do not leave any space between +Han characters and Arabic numerals. + +## Notes for developers +* The `update-translations.sh` script can be used to update the +translation files. However, please make sure to install the +`basic_trains` mod before running the script. +* Please make sure that the first argument to `S` (or `attrans`) _only_ +includes string literals without formatting or concatenation. This is +unfortunately a limitation of the `xgettext` utility. +* Avoid word-by-word translations. +* Avoid manipulating translated strings (except for concatenation). Use +server-side translations if you have to modify the text sent to users. +* Avoid truncating strings unless multibyte characters are handled +properly. diff --git a/advtrains_interlocking/po/advtrains.pot b/advtrains_interlocking/po/advtrains.pot new file mode 100644 index 0000000..cd6ea75 --- /dev/null +++ b/advtrains_interlocking/po/advtrains.pot @@ -0,0 +1,957 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the advtrains package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" + +#: advtrains/atc.lua +msgid "Command" +msgstr "" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "" + +#: advtrains/atc.lua +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "" + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "" + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "" + +#: advtrains/copytool.lua +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "" + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "" + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "" + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "" + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "" + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "" + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "" + +#: advtrains/couple.lua +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "" + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "" + +#: advtrains/couple.lua +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "" + +#: advtrains/craft_items.lua +msgid "Boiler" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid "Train " +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build near tracks at this protected position." +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build tracks at this protected position." +msgstr "" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +msgid "This track can not be removed!" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: not pointing at node" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: space occupied!" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: Not enough slope items left (@1 required)" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: There's no slope of length @1" +msgstr "" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: no supporting node at upper end." +msgstr "" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" + +#: advtrains/trackplacer.lua +msgid "This node can't be rotated using the trackworker!" +msgstr "" + +#: advtrains/trackplacer.lua +msgid "This track can not be rotated!" +msgstr "" + +#: advtrains/trackplacer.lua +msgid "This node can't be changed using the trackworker!" +msgstr "" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Wagon Properties Tool" +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/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/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "" + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "" + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "" + +#: advtrains/wagons.lua +msgid "This Wagon ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" + +#: advtrains/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not allowed to do this." +msgstr "" + +#: advtrains/wagons.lua +msgid "You don't have the train_operator privilege." +msgstr "" + +#: advtrains/wagons.lua +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +msgid "That wagon does not exist!" +msgstr "" + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/init.lua +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Japanese signal pole" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +msgid "Driver Stand" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +msgid "Passenger area" +msgstr "" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "" diff --git a/advtrains_interlocking/po/de.po b/advtrains_interlocking/po/de.po new file mode 100644 index 0000000..458e701 --- /dev/null +++ b/advtrains_interlocking/po/de.po @@ -0,0 +1,1071 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:18+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" + +#: advtrains/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 +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 +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 +msgid "ATC command parse error: Unknown command: @1" +msgstr "Zugbeeinflussung: Unbekannter Befehl: @1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Zugbeeinflussungsgleis in Betriebsart „@1“\n" +"Befehl: @2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "Befehl" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "Befehl (wenn aktiviert)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline-Kanal" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "Speichern" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis" + +#: advtrains/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 +msgid "No such lua entity." +msgstr "" +"Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden " +"kann." + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Zug." + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon." + +#: advtrains/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 +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." + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "Das Clipboard ist leer." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "Der Zug wurde Kopiert." + +#: advtrains/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" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "Ihnen fehlt das „@1“-Privileg." + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<Keine Kupplung vorhanden>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "Schraubenkupplung" + +#: advtrains/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)." + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenbergkupplung" + +#: advtrains/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/craft_items.lua +msgid "Boiler" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "Führerstand" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "Der Zug wurde Kopiert." + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "Hoher @1-Bahnsteig (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "Hoher @1-Bahnsteig" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "Niedriger @1-Bahnsteig" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "Niedriger @1-Bahnsteig (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/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 +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 +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 +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 +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 +msgid "Andrew's Cross" +msgstr "Andreaskreuz" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "Mechanisches Signal" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "Lichtsignal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "An der linken Seite montiertes Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "An der rechten Seite montiertes Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "An der Decke montiertes Signal" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1 Steigung" + +#: advtrains/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/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/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/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/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "Es kann nicht platziert werden: Diese Position ist besetzt." + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "Dieses Gleis kann nicht entfernt werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "Dieses Gleis kann nicht gedreht werden." + +#: advtrains/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/tracks.lua +msgid "Position is occupied by a train." +msgstr "Ein Zug steht an dieser Position." + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "Hier ist ein Signal-Beeinflussungspunkt." + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)." + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "Waggon-Einstellungen" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(Türen geschlossen)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "Die Türen sind geschlossen." + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" +"Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz " +"geschlossener Türen auszusteigen." + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "Aussteigen" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "Ausstieg zwingen" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "Linie" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "Sie dürfen dieses Gleis nicht konfigurieren." + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "Waggon-Einstellungen speichern" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "Wählen Sie einen Sitzplatz aus:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "Inventar Zeigen" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "Innere Anzeige" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "Äußere Anzeige" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "In diesem Waggon ist kein Sitzplatz vorhanden." + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz." + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "Das Inventar dieses Waggons ist nicht leer." + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "Der Waggon ist voll." + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "In diesem Waggon ist kein Sitzplatz vorhanden." + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "Der Waggon ist voll." + +#: advtrains/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/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können." + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "Waggon-Einstellungen" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"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/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "Sie haben keinen Zugang zum Führerstand." + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "Sie können nicht in diesen Waggon einsteigen." + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "Ihnen fehlt das „@1“-Privileg." + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "Geschwindigkeitskontrollgleis" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "Geschwindigkeitskontrolle: @1" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +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 advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "Sie dürfen dieses Gleis nicht konfigurieren." + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "Zielgeschwindigkeit bei Abfahrt" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "Zeit für die Türschließung" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "Türseite" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "Fahrgäste zum Ausstieg zwingen" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "Zug Umkehren" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "Kennzeichen der Haltestelle" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "Name der Haltestelle" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "Gleis zur Kennzeichnung einer Haltestelle" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "Wartezeit" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "Gleis" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "LuaATC-Bauteil mit Fehlermeldung: @1" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "Nicht konfiguierter LuaATC-Bauteil" + +#: advtrains_luaautomation/active_common.lua +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." + +#: advtrains_luaautomation/init.lua +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)" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "Japanischer Personenzug-Passagierwaggon" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "Große Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "Führerstand" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "Führerstand Links" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "Führerstand Rechts" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "Tankwaggon" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "Holztransportwaggon" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "Führerstand" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "Japanische Personenzug-Lokomotive" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Waggonzwischenverbindung Japanischer Personenzüge" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "Japanischer Personenzug-Passagierwaggon" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "Passagierwaggon" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "Güterwaggon" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "Detaillierte Dampflokomotive" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "Passagierwaggon" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "Dampflokomotive" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "U-Bahn-Waggon" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "Dreiwegweiche" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "Kreuzung mit einem achsenparallelen Gleis" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "Zugbeeinflussungsgleis" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "Prellbock" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "Detektorgleis" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "Diagonale Gleiskreuzung" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "Beladungsgleis" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "Kreuzung mit zueinander orthogonalen Gleisen" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "Abladungsgleis" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "Y-Weiche" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Zugbeeinflussungsgleis in Betriebsart „@1“\n" +#~ "Kanal: @2" + +#~ msgid "Access to @1" +#~ msgstr "Zugang zu @1" + +#~ 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 " +#~ "geschlossen." + +#~ msgid "Can't place: protected position!" +#~ msgstr "Es kann nicht platziert werden: diese Position ist geschützt." + +#~ msgid "Default Seat" +#~ msgstr "Standardsitzplatz" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Standardsitzplatz (Führerstand)" + +#~ msgid "Deprecated Track" +#~ msgstr "ausrangiertes Gleis, nicht verwenden." + +#~ msgid "Lock couples" +#~ msgstr "Kupplungen sperren" + +#~ msgid "Speed:" +#~ msgstr "Geschw.:" + +#~ msgid "Target:" +#~ msgstr "Zielges.:" + +#~ msgid "This position is protected!" +#~ msgstr "Diese Position ist geschützt!" + +#~ msgid "This track can not be changed." +#~ msgstr "Dieses Gleis kann nicht geändert werden." + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen " +#~ "einzusteigen." + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen." + +#~ 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_interlocking/po/de.po~ b/advtrains_interlocking/po/de.po~ new file mode 100644 index 0000000..458e701 --- /dev/null +++ b/advtrains_interlocking/po/de.po~ @@ -0,0 +1,1071 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:18+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" + +#: advtrains/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 +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 +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 +msgid "ATC command parse error: Unknown command: @1" +msgstr "Zugbeeinflussung: Unbekannter Befehl: @1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Zugbeeinflussungsgleis in Betriebsart „@1“\n" +"Befehl: @2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "Befehl" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "Befehl (wenn aktiviert)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline-Kanal" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "Speichern" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis" + +#: advtrains/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 +msgid "No such lua entity." +msgstr "" +"Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden " +"kann." + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Zug." + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon." + +#: advtrains/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 +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." + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "Das Clipboard ist leer." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "Der Zug wurde Kopiert." + +#: advtrains/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" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "Ihnen fehlt das „@1“-Privileg." + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<Keine Kupplung vorhanden>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "Schraubenkupplung" + +#: advtrains/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)." + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenbergkupplung" + +#: advtrains/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/craft_items.lua +msgid "Boiler" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "Führerstand" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "Der Zug wurde Kopiert." + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "Hoher @1-Bahnsteig (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "Hoher @1-Bahnsteig" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "Niedriger @1-Bahnsteig" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "Niedriger @1-Bahnsteig (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/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 +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 +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 +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 +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 +msgid "Andrew's Cross" +msgstr "Andreaskreuz" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "Mechanisches Signal" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "Lichtsignal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "An der linken Seite montiertes Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "An der rechten Seite montiertes Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "An der Decke montiertes Signal" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1 Steigung" + +#: advtrains/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/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/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/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/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "Es kann nicht platziert werden: Diese Position ist besetzt." + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "Dieses Gleis kann nicht entfernt werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden." + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "Dieses Gleis kann nicht gedreht werden." + +#: advtrains/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/tracks.lua +msgid "Position is occupied by a train." +msgstr "Ein Zug steht an dieser Position." + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "Hier ist ein Signal-Beeinflussungspunkt." + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)." + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "Waggon-Einstellungen" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(Türen geschlossen)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "Die Türen sind geschlossen." + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "" +"Die Türen sind geschlossen. Nutzen Sie Schleichen+Rechtsklick, um trotz " +"geschlossener Türen auszusteigen." + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "Aussteigen" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "Ausstieg zwingen" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "Linie" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "Sie dürfen dieses Gleis nicht konfigurieren." + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "Waggon-Einstellungen speichern" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "Wählen Sie einen Sitzplatz aus:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "Inventar Zeigen" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "Innere Anzeige" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "Äußere Anzeige" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "In diesem Waggon ist kein Sitzplatz vorhanden." + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz." + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "Das Inventar dieses Waggons ist nicht leer." + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "Der Waggon ist voll." + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "In diesem Waggon ist kein Sitzplatz vorhanden." + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "Der Waggon ist voll." + +#: advtrains/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/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können." + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "Waggon-Einstellungen" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"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/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "Sie haben keinen Zugang zum Führerstand." + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "Sie können nicht in diesen Waggon einsteigen." + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "Ihnen fehlt das „@1“-Privileg." + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "Geschwindigkeitskontrollgleis" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "Geschwindigkeitskontrolle: @1" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +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 advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "Sie dürfen dieses Gleis nicht konfigurieren." + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "Zielgeschwindigkeit bei Abfahrt" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "Zeit für die Türschließung" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "Türseite" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "Fahrgäste zum Ausstieg zwingen" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "Zug Umkehren" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "Kennzeichen der Haltestelle" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "Name der Haltestelle" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "Gleis zur Kennzeichnung einer Haltestelle" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "Wartezeit" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "Gleis" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "LuaATC-Bauteil mit Fehlermeldung: @1" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "Nicht konfiguierter LuaATC-Bauteil" + +#: advtrains_luaautomation/active_common.lua +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." + +#: advtrains_luaautomation/init.lua +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)" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "Japanischer Personenzug-Passagierwaggon" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "Große Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "Führerstand" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "Führerstand Links" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "Führerstand Rechts" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "Industrielle Lokomotive" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "Tankwaggon" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "Holztransportwaggon" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "Führerstand" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "Japanische Personenzug-Lokomotive" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Waggonzwischenverbindung Japanischer Personenzüge" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "Japanischer Personenzug-Passagierwaggon" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "Passagierwaggon" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "Güterwaggon" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "Detaillierte Dampflokomotive" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "Passagierwaggon" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "Dampflokomotive" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "U-Bahn-Waggon" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "Dreiwegweiche" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "Kreuzung mit einem achsenparallelen Gleis" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "Zugbeeinflussungsgleis" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "Prellbock" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "Detektorgleis" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "Diagonale Gleiskreuzung" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "Beladungsgleis" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "Kreuzung mit zueinander orthogonalen Gleisen" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "Abladungsgleis" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "Y-Weiche" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Zugbeeinflussungsgleis in Betriebsart „@1“\n" +#~ "Kanal: @2" + +#~ msgid "Access to @1" +#~ msgstr "Zugang zu @1" + +#~ 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 " +#~ "geschlossen." + +#~ msgid "Can't place: protected position!" +#~ msgstr "Es kann nicht platziert werden: diese Position ist geschützt." + +#~ msgid "Default Seat" +#~ msgstr "Standardsitzplatz" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Standardsitzplatz (Führerstand)" + +#~ msgid "Deprecated Track" +#~ msgstr "ausrangiertes Gleis, nicht verwenden." + +#~ msgid "Lock couples" +#~ msgstr "Kupplungen sperren" + +#~ msgid "Speed:" +#~ msgstr "Geschw.:" + +#~ msgid "Target:" +#~ msgstr "Zielges.:" + +#~ msgid "This position is protected!" +#~ msgstr "Diese Position ist geschützt!" + +#~ msgid "This track can not be changed." +#~ msgstr "Dieses Gleis kann nicht geändert werden." + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Nutzen Sie Schleichen+Rechtsklick, um trotz geschlossener Türen " +#~ "einzusteigen." + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen." + +#~ 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_interlocking/po/fr.po b/advtrains_interlocking/po/fr.po new file mode 100644 index 0000000..d773a98 --- /dev/null +++ b/advtrains_interlocking/po/fr.po @@ -0,0 +1,1084 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\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" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.2\n" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "Avertissement commande ATC Éjecter : portes closes." + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "Avertissement commande ATC Éjecter : train en mouvement." + +#: advtrains/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." + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Controlleur ATC, mode @1\n" +"Commande : @2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "Commande" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "Commande (marche)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Canal Digiline" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "Sauvegarder" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "Controlleur ATC, non-configuré" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "La fin du train serait hors voie : annulation." + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "Pas de telle entité lua." + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "Pas de tel train : @1." + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "Pas de tel wagon : @1." + +#: advtrains/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." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "Le presse-papier est vide." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "Train copié." + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"Outil de copie/collage de train\n" +"\n" +"Clic-Gauche : copie\n" +"\n" +"Clic-Droit : collage" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "Vous ne possédez pas le privilège \"@1\"." + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<Pas de coupleur>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "Attelage à tampon et vis" + +#: advtrains/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)." + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Attelage Scharfenberg" + +#: advtrains/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/craft_items.lua +msgid "Boiler" +msgstr "Chaudière à vapeur" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "Cheminée" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "Cabine de pilotage" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "Roue" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr " n'existe pas ou est invalide" + +#: advtrains/init.lua +msgid " is at " +msgstr " est à la position " + +#: advtrains/init.lua +msgid "(log" +msgstr "(log" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "État d'advtrains : aucune action" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "Advtrains fonctionne déjà correctement !" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" +"Crash durant le pas principal d'advtrains - saut de l'opération de " +"sauvegarde de terminaison pour éviter l'enregistrement de données " +"corrompues !" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" +"Données en cours de sauvegarde. Durant cette phase, advtrains débarquera les " +"joueurs des trains. Les fichiers de sauvegarde seront ultérieurement " +"rechargés !" + +# Routage est il le bon terme ? +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "Suppression et recalcul de tous les routages" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" +"Débarque tous les joueurs, en particulier ceux déconnectés, de tous les " +"trains. À n'utiliser que quand aucun joueur sérieux n'a embarqué." + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "Désactive temporairement le pas global d'advtrains" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "Succès de la désactivation d'advtrains" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "Appel de save() requis sans appel préalable de load() !" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "Affiche les informations d'état d'advtrains" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "Réacivation du pas global d'advtrains..." + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "Succès du rechargement !" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "Suppression d'un wagon inutilisé" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "Restauration du l'état sauvegardé dans une seconde..." + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "Affiche la position du train identifié" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "Échec de sauvegarde : " + +# Routage est il le bon terme ? +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "Succès d'invalidation des routages des trains" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "Téléportation au train " + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "Vous téléporte à la position du train identifié" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" +"Le pas global d'advtrains est désactivé. Les trains sont immobiles et aucune " +"donnée n'est sauvegardée. Exécutez '/at_disable_step no ' pour le réactiver !" + +#: advtrains/init.lua +msgid "Train" +msgstr "Identificateur du train" + +#: advtrains/init.lua +msgid "Train " +msgstr "Identificateur du train " + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "de la table wagon_save." + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" +"n'a plus de wagon à cause d'un bug quelconque. Il est détruit. Faites lui " +"coucou !" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "ralentissement" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "Quai @1 (haut, 45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "Quai @1 (haut)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "Quai @1 (bas)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "Quai @1 (bas, 45°)" + +#: advtrains/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" + +#: advtrains/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 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +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 +msgid "Can place, remove and operate trains" +msgstr "Possibilité de poser, retirer ou opérer les trains" + +#: advtrains/protection.lua +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 +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 +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 +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 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" +"Vous ne pouvez pas actionner les aiguillages ou les signaux (privilège " +"\"railway_operator\" manquant)" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "Croix de Saint André" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "Sémaphore" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "Signal mural (gauche)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "Signal mural (droit)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "Signal mural (plafond)" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "Pente @1" + +#: advtrains/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)" + +#: advtrains/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" + +#: advtrains/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." + +#: advtrains/track_reg_helper.lua +msgid "Can't place: not pointing at node" +msgstr "Placement impossible : ne pointe pas un nœud" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: space occupied!" +msgstr "Placement impossible : espace occupé !" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +msgid "This track can not be removed!" +msgstr "Cette voie ne peut pas être enlevée !" + +#: advtrains/trackplacer.lua +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 +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 +msgid "This track can not be rotated!" +msgstr "Cette voie ne peut pas être tournée !" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"Outil \"Trackworker\"\n" +"\n" +"Clic-Gauche : change le type de rail (droit/courbé/aiguillage)\n" +"\n" +"Clic-Droit : tourne l'objet" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "Cet emplacement est occupé par un train." + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "Il y a un \"Signal Influence Point\" ici." + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "Il y a un \"Track Circuit Break\" ici." + +#: advtrains/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/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "Privilèges insuffisants pour utiliser ceci !" + +#: advtrains/wagonprop_tool.lua +msgid "Wagon Properties Tool" +msgstr "Outil de propriété du wagon" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" +"Outil de propriété du wagon\n" +"Frappez un wagon pour voir et modifier ses propriétés" + +#: advtrains/wagons.lua +msgid " units" +msgstr " Unités" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr " Appel de wagon:destroy() : données non définies !" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "!!! Train hors voie !!!" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(Portes closes)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "Autoriser ces joueurs à embarquer :" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "Effacer le drapeau \"Désactiver l'ARS\"" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "Code de fret courant: " + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "Desctruction d'un wagon avec inventaire introuvable ? Anomalie !" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "Portes closes : (Essayez la \"sneak key\"!\")" + +#: advtrains/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 +msgid "Freight Code:" +msgstr "Code de frêt :" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "Débarquer" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "Débarquer (de force)" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "Ligne" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "Liquide : " + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "Liquide : vide" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "Privilège \"train_operator\" manquant" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "Code de fret suivant :" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "Identificateur de wagon invalide." + +#: advtrains/wagons.lua +msgid "Not allowed to do this." +msgstr "Vous n'êtes pas autorisé effectuer ceci." + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "Ordinateur embarqué" + +#: advtrains/wagons.lua +msgid "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 +msgid "Prev FC" +msgstr "Code de fret précédent" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "Routage à distance" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "Code de routage" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "Sauvegarder les propriétés du wagon" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "Choisir le siège :" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "Montrer le stock" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "Texte affiché à l'intérieur du train" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "Texte affiché à l'extérieur du train" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "Ce joueur n'existe pas !" + +#: advtrains/wagons.lua +msgid "That wagon does not exist!" +msgstr "Ce wagon n'a pas de siège !" + +#: advtrains/wagons.lua +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte !" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "Le stock de ce wagon n'est pas vide." + +#: advtrains/wagons.lua +msgid "This Wagon ID" +msgstr "Identificateur du wagon" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "Ce wagon n'a pas de siège." + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "Ce wagon est plein." + +#: advtrains/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/wagons.lua +msgid "Train ID" +msgstr "Identificateur du train" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" +"Aperçu du train / commande d'accouplement montré uniquement à l'arrêt du " +"train." + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "Aperçu du train / commande d'accouplement :" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "Variable init non initialisée" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "Non initialisé, retiré" + +#: advtrains/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/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/wagons.lua +msgid "Wagon properties" +msgstr "Propriétés du wagon" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "Immatriculation du wagon :" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"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/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "Accès interdit au poste de pilotage." + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "Montée impossible dans ce wagon." + +#: advtrains/wagons.lua +msgid "You don't have the train_operator privilege." +msgstr "Vous ne possédez pas le privilège \"train_operator\"." + +#: advtrains/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_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "Changement d'état de l'itinéraire." + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "Voie de point de limitation de vitesse" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "Point de limitation de vitesse : @1" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "Placez un point de limitation de vitesse :" + +#: advtrains_interlocking/tsr_rail.lua +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." + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "Vous n'êtes pas autorisé à configurer cette voie." + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "Absence de fonction de gestion de planning" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "Fermé" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "Vit. de départ" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "Durée d'ouverture des portes" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "Ouv. des portes coté" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "Éjecter les passagers" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "Gauche" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "Prochain arrêt :\n" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "Inversion du sens de marche" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "Droit" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "Code de Station" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "Nom de Station" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "Le code de station \"@1\" existe et est possédé par @2." + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "Voie d'arrêt en station" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "Durée d'arrêt" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "Voie" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "Trains marquant l'arrêt (règles ARS)" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "Gare inconnue" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "En attente de signal d'autorisation" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "Effacer l'environnement LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "Code" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "Environnement LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "Composant LuaATC assigné à un environnement invalide" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "Composant LuaATC assigné à l'environnement '@1'" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "Erreur @1 du composant LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "Composant LuaATC non configuré" + +#: advtrains_luaautomation/active_common.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." + +#: advtrains_luaautomation/init.lua +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" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "Commande Mesecon de LuaATC" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "Panneau de commande de LuaATC" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "Nommer le composant (chaîne vide pour effacer)" + +#: advtrains_luaautomation/pcnaming.lua +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_signals_japan/init.lua +msgid "Caution" +msgstr "Attention" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "Autorisation (procédez)" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "Danger (stop)" + +#: advtrains_signals_japan/init.lua +msgid "Japanese signal pole" +msgstr "Voiture Japonaise" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "Vitesse réduite" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "Vitesse limitée" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "Signal distant métro de Munich (" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "Signal principal métro de Munich (" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "Grosse locomotive industrielle" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +msgid "Driver Stand" +msgstr "Poste de pilotage" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "Poste de pilotage (gauche)" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "Poste de pilotage (droit)" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "Locomotive industrielle" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "Wagon-citerne industriel" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "Wagon grumier industriel" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "Poste de pilotage" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "Motrice Japonaise" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Passage inter-voiture de train Japonais" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "Voiture Japonaise" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +msgid "Passenger area" +msgstr "Voiture Passager" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "Wagon de frêt" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "Locomotive à vapeur complexe" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "Voiture passager" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "Locomotive à vapeur" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "Voiture de Métropolitain" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "Embranchement triple" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "Croisement perpendiculo-diagonal" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "Controlleur ATC" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "Heurtoir" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "Voie détectrice" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "Croisement diagonal" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "Voie de Chargement" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "Croisement perpendiculaire" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "Voie de Déchargement" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "Embranchement en Y" + +#~ msgid ", using placeholder" +#~ msgstr ", dans un espace réservé" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Controlleur ATC, mode @1\n" +#~ "Canal : @2" + +#~ msgid "Access to @1" +#~ msgstr "Accès à @1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "" +#~ "Embarquement impossible : le wagon est plein ou ses portes sont closes !" + +#~ msgid "Can't place: protected position!" +#~ msgstr "Placement impossible : emplacement protégé" + +#~ msgid "Default Seat" +#~ msgstr "Siège par défaut" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Siège par défaut (poste de pilotage)" + +#~ msgid "Deprecated Track" +#~ msgstr "Voie déconseillée" + +#~ msgid "Left,Right,Closed;" +#~ msgstr "Gauche,Droit,Fermé;" + +#~ msgid "Lock couples" +#~ msgstr "Verrouiller l'accouplement" + +#~ msgid "Speed:" +#~ msgstr "Vitesse : " + +#~ msgid "Target:" +#~ msgstr "Destination : " + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\" !" + +#~ msgid "This position is protected!" +#~ msgstr "Cet emplacement est protégé !" + +#~ msgid "This track can not be changed." +#~ msgstr "Cette voie ne peut pas être modifiée." + +#~ msgid "Unable to load wagon type" +#~ msgstr "Impossible de charger le type du wagon" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour franchir les " +#~ "portes closes !" + +#, 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 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." diff --git a/advtrains_interlocking/po/fr.po~ b/advtrains_interlocking/po/fr.po~ new file mode 100644 index 0000000..d773a98 --- /dev/null +++ b/advtrains_interlocking/po/fr.po~ @@ -0,0 +1,1084 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\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" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.2\n" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "Avertissement commande ATC Éjecter : portes closes." + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "Avertissement commande ATC Éjecter : train en mouvement." + +#: advtrains/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." + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"Controlleur ATC, mode @1\n" +"Commande : @2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "Commande" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "Commande (marche)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Canal Digiline" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "Sauvegarder" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "Controlleur ATC, non-configuré" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "La fin du train serait hors voie : annulation." + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "Pas de telle entité lua." + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "Pas de tel train : @1." + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "Pas de tel wagon : @1." + +#: advtrains/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." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "Le presse-papier est vide." + +#: advtrains/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." + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "Train copié." + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"Outil de copie/collage de train\n" +"\n" +"Clic-Gauche : copie\n" +"\n" +"Clic-Droit : collage" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "Vous ne possédez pas le privilège \"@1\"." + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<Pas de coupleur>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "Attelage à tampon et vis" + +#: advtrains/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)." + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Attelage Scharfenberg" + +#: advtrains/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/craft_items.lua +msgid "Boiler" +msgstr "Chaudière à vapeur" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "Cheminée" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "Cabine de pilotage" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "Roue" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr " n'existe pas ou est invalide" + +#: advtrains/init.lua +msgid " is at " +msgstr " est à la position " + +#: advtrains/init.lua +msgid "(log" +msgstr "(log" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "État d'advtrains : aucune action" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "Advtrains fonctionne déjà correctement !" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" +"Crash durant le pas principal d'advtrains - saut de l'opération de " +"sauvegarde de terminaison pour éviter l'enregistrement de données " +"corrompues !" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" +"Données en cours de sauvegarde. Durant cette phase, advtrains débarquera les " +"joueurs des trains. Les fichiers de sauvegarde seront ultérieurement " +"rechargés !" + +# Routage est il le bon terme ? +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "Suppression et recalcul de tous les routages" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" +"Débarque tous les joueurs, en particulier ceux déconnectés, de tous les " +"trains. À n'utiliser que quand aucun joueur sérieux n'a embarqué." + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "Désactive temporairement le pas global d'advtrains" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "Succès de la désactivation d'advtrains" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "Appel de save() requis sans appel préalable de load() !" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "Affiche les informations d'état d'advtrains" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "Réacivation du pas global d'advtrains..." + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "Succès du rechargement !" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "Suppression d'un wagon inutilisé" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "Restauration du l'état sauvegardé dans une seconde..." + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "Affiche la position du train identifié" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "Échec de sauvegarde : " + +# Routage est il le bon terme ? +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "Succès d'invalidation des routages des trains" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "Téléportation au train " + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "Vous téléporte à la position du train identifié" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" +"Le pas global d'advtrains est désactivé. Les trains sont immobiles et aucune " +"donnée n'est sauvegardée. Exécutez '/at_disable_step no ' pour le réactiver !" + +#: advtrains/init.lua +msgid "Train" +msgstr "Identificateur du train" + +#: advtrains/init.lua +msgid "Train " +msgstr "Identificateur du train " + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "de la table wagon_save." + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" +"n'a plus de wagon à cause d'un bug quelconque. Il est détruit. Faites lui " +"coucou !" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "ralentissement" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "Quai @1 (haut, 45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "Quai @1 (haut)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "Quai @1 (bas)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "Quai @1 (bas, 45°)" + +#: advtrains/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" + +#: advtrains/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 +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +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 +msgid "Can place, remove and operate trains" +msgstr "Possibilité de poser, retirer ou opérer les trains" + +#: advtrains/protection.lua +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 +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 +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 +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 +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "" +"Vous ne pouvez pas actionner les aiguillages ou les signaux (privilège " +"\"railway_operator\" manquant)" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "Croix de Saint André" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "Sémaphore" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "Signal" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "Signal mural (gauche)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "Signal mural (droit)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "Signal mural (plafond)" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "Pente @1" + +#: advtrains/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)" + +#: advtrains/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" + +#: advtrains/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." + +#: advtrains/track_reg_helper.lua +msgid "Can't place: not pointing at node" +msgstr "Placement impossible : ne pointe pas un nœud" + +#: advtrains/track_reg_helper.lua +msgid "Can't place: space occupied!" +msgstr "Placement impossible : espace occupé !" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +msgid "This track can not be removed!" +msgstr "Cette voie ne peut pas être enlevée !" + +#: advtrains/trackplacer.lua +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 +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 +msgid "This track can not be rotated!" +msgstr "Cette voie ne peut pas être tournée !" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"Outil \"Trackworker\"\n" +"\n" +"Clic-Gauche : change le type de rail (droit/courbé/aiguillage)\n" +"\n" +"Clic-Droit : tourne l'objet" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "Cet emplacement est occupé par un train." + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "Il y a un \"Signal Influence Point\" ici." + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "Il y a un \"Track Circuit Break\" ici." + +#: advtrains/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/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "Privilèges insuffisants pour utiliser ceci !" + +#: advtrains/wagonprop_tool.lua +msgid "Wagon Properties Tool" +msgstr "Outil de propriété du wagon" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" +"Outil de propriété du wagon\n" +"Frappez un wagon pour voir et modifier ses propriétés" + +#: advtrains/wagons.lua +msgid " units" +msgstr " Unités" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr " Appel de wagon:destroy() : données non définies !" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "!!! Train hors voie !!!" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(Portes closes)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "Autoriser ces joueurs à embarquer :" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "Effacer le drapeau \"Désactiver l'ARS\"" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "Code de fret courant: " + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "Desctruction d'un wagon avec inventaire introuvable ? Anomalie !" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "Portes closes : (Essayez la \"sneak key\"!\")" + +#: advtrains/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 +msgid "Freight Code:" +msgstr "Code de frêt :" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "Débarquer" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "Débarquer (de force)" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "Ligne" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "Liquide : " + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "Liquide : vide" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "Privilège \"train_operator\" manquant" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "Code de fret suivant :" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "Identificateur de wagon invalide." + +#: advtrains/wagons.lua +msgid "Not allowed to do this." +msgstr "Vous n'êtes pas autorisé effectuer ceci." + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "Ordinateur embarqué" + +#: advtrains/wagons.lua +msgid "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 +msgid "Prev FC" +msgstr "Code de fret précédent" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "Routage à distance" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "Code de routage" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "Sauvegarder les propriétés du wagon" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "Choisir le siège :" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "Montrer le stock" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "Texte affiché à l'intérieur du train" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "Texte affiché à l'extérieur du train" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "Ce joueur n'existe pas !" + +#: advtrains/wagons.lua +msgid "That wagon does not exist!" +msgstr "Ce wagon n'a pas de siège !" + +#: advtrains/wagons.lua +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte !" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "Le stock de ce wagon n'est pas vide." + +#: advtrains/wagons.lua +msgid "This Wagon ID" +msgstr "Identificateur du wagon" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "Ce wagon n'a pas de siège." + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "Ce wagon est plein." + +#: advtrains/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/wagons.lua +msgid "Train ID" +msgstr "Identificateur du train" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" +"Aperçu du train / commande d'accouplement montré uniquement à l'arrêt du " +"train." + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "Aperçu du train / commande d'accouplement :" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "Variable init non initialisée" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "Non initialisé, retiré" + +#: advtrains/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/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/wagons.lua +msgid "Wagon properties" +msgstr "Propriétés du wagon" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "Immatriculation du wagon :" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"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/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "Accès interdit au poste de pilotage." + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "Montée impossible dans ce wagon." + +#: advtrains/wagons.lua +msgid "You don't have the train_operator privilege." +msgstr "Vous ne possédez pas le privilège \"train_operator\"." + +#: advtrains/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_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "Changement d'état de l'itinéraire." + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "Voie de point de limitation de vitesse" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "Point de limitation de vitesse : @1" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "Placez un point de limitation de vitesse :" + +#: advtrains_interlocking/tsr_rail.lua +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." + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "Vous n'êtes pas autorisé à configurer cette voie." + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "Absence de fonction de gestion de planning" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "Fermé" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "Vit. de départ" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "Durée d'ouverture des portes" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "Ouv. des portes coté" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "Éjecter les passagers" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "Gauche" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "Prochain arrêt :\n" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "Inversion du sens de marche" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "Droit" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "Code de Station" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "Nom de Station" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "Le code de station \"@1\" existe et est possédé par @2." + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "Voie d'arrêt en station" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "Durée d'arrêt" + +#: advtrains_line_automation/stoprail.lua +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." + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "Voie" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "Trains marquant l'arrêt (règles ARS)" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "Gare inconnue" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "En attente de signal d'autorisation" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "Effacer l'environnement LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "Code" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "Environnement LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "Composant LuaATC assigné à un environnement invalide" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "Composant LuaATC assigné à l'environnement '@1'" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "Erreur @1 du composant LuaATC" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "Composant LuaATC non configuré" + +#: advtrains_luaautomation/active_common.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." + +#: advtrains_luaautomation/init.lua +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" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "Commande Mesecon de LuaATC" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "Panneau de commande de LuaATC" + +#: advtrains_luaautomation/pcnaming.lua +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." + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "Nommer le composant (chaîne vide pour effacer)" + +#: advtrains_luaautomation/pcnaming.lua +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_signals_japan/init.lua +msgid "Caution" +msgstr "Attention" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "Autorisation (procédez)" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "Danger (stop)" + +#: advtrains_signals_japan/init.lua +msgid "Japanese signal pole" +msgstr "Voiture Japonaise" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "Vitesse réduite" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "Vitesse limitée" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "Signal distant métro de Munich (" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "Signal principal métro de Munich (" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "Grosse locomotive industrielle" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +msgid "Driver Stand" +msgstr "Poste de pilotage" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "Poste de pilotage (gauche)" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "Poste de pilotage (droit)" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "Locomotive industrielle" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "Wagon-citerne industriel" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "Wagon grumier industriel" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "Poste de pilotage" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "Motrice Japonaise" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "Passage inter-voiture de train Japonais" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "Voiture Japonaise" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +msgid "Passenger area" +msgstr "Voiture Passager" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "Wagon de frêt" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "Locomotive à vapeur complexe" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "Voiture passager" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "Locomotive à vapeur" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "Voiture de Métropolitain" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "Embranchement triple" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "Croisement perpendiculo-diagonal" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "Controlleur ATC" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "Heurtoir" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "Voie détectrice" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "Croisement diagonal" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "Voie de Chargement" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "Croisement perpendiculaire" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "Voie de Déchargement" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "Embranchement en Y" + +#~ msgid ", using placeholder" +#~ msgstr ", dans un espace réservé" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "Controlleur ATC, mode @1\n" +#~ "Canal : @2" + +#~ msgid "Access to @1" +#~ msgstr "Accès à @1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "" +#~ "Embarquement impossible : le wagon est plein ou ses portes sont closes !" + +#~ msgid "Can't place: protected position!" +#~ msgstr "Placement impossible : emplacement protégé" + +#~ msgid "Default Seat" +#~ msgstr "Siège par défaut" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "Siège par défaut (poste de pilotage)" + +#~ msgid "Deprecated Track" +#~ msgstr "Voie déconseillée" + +#~ msgid "Left,Right,Closed;" +#~ msgstr "Gauche,Droit,Fermé;" + +#~ msgid "Lock couples" +#~ msgstr "Verrouiller l'accouplement" + +#~ msgid "Speed:" +#~ msgstr "Vitesse : " + +#~ msgid "Target:" +#~ msgstr "Destination : " + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\" !" + +#~ msgid "This position is protected!" +#~ msgstr "Cet emplacement est protégé !" + +#~ msgid "This track can not be changed." +#~ msgstr "Cette voie ne peut pas être modifiée." + +#~ msgid "Unable to load wagon type" +#~ msgstr "Impossible de charger le type du wagon" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "" +#~ "Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour franchir les " +#~ "portes closes !" + +#, 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 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." diff --git a/advtrains_interlocking/po/update-translations.sh b/advtrains_interlocking/po/update-translations.sh new file mode 100644 index 0000000..5c42e7b --- /dev/null +++ b/advtrains_interlocking/po/update-translations.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +MODNAME="advtrains_interlocking" +MSGID_BUGS_ADDR='advtrains-discuss@lists.sr.ht' + +PODIR=`dirname "$0"` +ATDIR="$PODIR/.." +POTFILE="$PODIR/$MODNAME.pot" + +xgettext \ + -D "$ATDIR" \ + -d "$MODNAME" \ + -o "$POTFILE" \ + -p . \ + -L lua \ + --add-location=file \ + --from-code=UTF-8 \ + --sort-by-file \ + --keyword='S' \ + --package-name="$MODNAME" \ + --msgid-bugs-address="$MSGID_BUGS_ADDR" \ + `find $ATDIR $BTDIR -name '*.lua' -printf '%P\n'` \ + && +for i in "$PODIR"/*.po; do + msgmerge -U \ + --sort-by-file \ + $i "$POTFILE" +done diff --git a/advtrains_interlocking/po/zh_CN.po b/advtrains_interlocking/po/zh_CN.po new file mode 100644 index 0000000..f1a3c0f --- /dev/null +++ b/advtrains_interlocking/po/zh_CN.po @@ -0,0 +1,1043 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:24+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Simplified)\n" +"Language: zh_CN\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" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:车门已关闭,无法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火车正在移动,无法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火车正在移动,无法改变行车方向。" + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 语法错误:未知命令:@1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 语法错误:“I”命令不完整:@1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "命令 (激活时)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline 频道" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "保存" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "火车后部不在轨道上。" + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "您没有指向一个可以用火车复制工具复制的物体。" + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "ID 为“@1”的列车不存在。" + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "ID 为“@1”的车厢不存在。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "无法复制:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "无法粘贴:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "剪贴板是空的。" + +#: advtrains/copytool.lua +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "轨道太短。" + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "已复制列车。" + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火车复制工具\n" +"\n" +"左键单击:复制\n" +"右键单击:粘帖" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "您没有“@1”权限。" + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<没有车钩>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "链式车钩" + +#: advtrains/couple.lua +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。" + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式车钩" + +#: advtrains/couple.lua +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您没有“train_operator”权限,不能连接这两节车厢。" + +#: advtrains/craft_items.lua +msgid "Boiler" +msgstr "锅炉" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "烟囱" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "驾驶室" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "车轮" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "已复制列车。" + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "较高的@1站台 (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "较高的@1站台" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "较低的@1站台" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "较低的@1站台 (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build near tracks at this protected position." +msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在铁路附近建任何东西。" + +#: advtrains/protection.lua +msgid "You are not allowed to build tracks at this protected position." +msgstr "这里已被保护,您不能在这里建造铁路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在这里建造铁路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您没有“railway_operator”权限,不能控制铁路设施。" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "铁路道口信号灯" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "臂板信号机" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "信号灯" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "壁挂式信号灯 (左侧)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "壁挂式信号灯 (右侧)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "悬挂式信号灯" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: Not enough slope items left (@1 required)" +msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: There's no slope of length @1" +msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: no supporting node at upper end." +msgstr "无法放置斜坡:较高端没有支撑方块。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: not pointing at node" +msgstr "无法放置斜坡:您没有选择任何方块。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "无法放置斜坡:此区域已被占用。" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "您不能移除这段轨道。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "您不能使用铁路调整工具调整这个方块。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "您不能使用铁路调整工具旋转这个方块。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "您不能旋转这段轨道。" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"铁路调整工具\n" +"\n" +"左键单击:切换轨道类型\n" +"右键单击:旋转方块" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "车厢属性" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(车门已关闭)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "车门已关闭,请使用潜行+右键单击下车。" + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "下车" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "强制下车" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "火车线路" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "您不能调整这段轨道。" + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "路由码" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "保存车厢属性" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "请选择座位:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "显示物品栏" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "车厢内部显示" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "车厢外部显示" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "这节车厢没有座位。" + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "轨道太短。" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "车厢已满。" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "这节车厢没有座位。" + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "车厢已满。" + +#: advtrains/wagons.lua +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "这是 @1 的车厢,您不能摧毁它。" + +#: advtrains/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "车厢属性" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按" +"潜行键并左键单击此车厢。" + +#: advtrains/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "您没有“@1”权限。" + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您没有“@1”权限,不能调整这段轨道。" + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "您不能调整这段轨道。" + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "出发速度" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "车门关闭时间" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "改变行车方向" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "车站代码" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "车站名称" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "车站轨道" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "停站时间" + +#: advtrains_line_automation/stoprail.lua +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "轨道" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 部件 (未配置)" + +#: advtrains_luaautomation/active_common.lua +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。" + +#: advtrains_luaautomation/init.lua +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被动元件命名工具\n" +"\n" +"右键单击命名所选元件。" + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能命名被动元件。" + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "高速列车车厢" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "大型工业用火车头" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "司机座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "左侧司机座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "右侧司机座位" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "工业用火车头" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "液体运输车厢" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "木材运输车厢" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "司机座位" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "高速列车车头" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火车车钩" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "高速列车车厢" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "客车" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "货运车厢" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "精细的蒸汽机车" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "客车" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "蒸汽机车" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "地铁车厢" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "三开道岔" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉轨道 (其中一条轨道与坐标轴平行)" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "保险杠" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "探测轨道" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉轨道" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "装货轨道" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉轨道" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "卸货轨道" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "对称道岔" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "频道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "无法上车:车门已关闭或车厢已满。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "无法放置:此区域已被保护。" + +#~ msgid "Default Seat" +#~ msgstr "默认座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "默认座位 (司机座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "请不要使用" + +#~ msgid "Lock couples" +#~ msgstr "锁定连接处" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目标速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用铁路调整工具旋转这个方块。" + +#~ msgid "This position is protected!" +#~ msgstr "这里已被保护。" + +#~ msgid "This track can not be changed." +#~ msgstr "您不能调整这段轨道。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "请使用潜行+右键上车。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "这里已被保护,您不能在这里建造铁路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必须至少拥有其中一节车厢才能分开这两节车厢。" diff --git a/advtrains_interlocking/po/zh_CN.po~ b/advtrains_interlocking/po/zh_CN.po~ new file mode 100644 index 0000000..f1a3c0f --- /dev/null +++ b/advtrains_interlocking/po/zh_CN.po~ @@ -0,0 +1,1043 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:24+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Simplified)\n" +"Language: zh_CN\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" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:车门已关闭,无法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火车正在移动,无法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火车正在移动,无法改变行车方向。" + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 语法错误:未知命令:@1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 语法错误:“I”命令不完整:@1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "命令 (激活时)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline 频道" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "保存" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "火车后部不在轨道上。" + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "您没有指向一个可以用火车复制工具复制的物体。" + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "ID 为“@1”的列车不存在。" + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "ID 为“@1”的车厢不存在。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "无法复制:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "无法粘贴:剪贴板无法访问元数据。" + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "剪贴板是空的。" + +#: advtrains/copytool.lua +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "轨道太短。" + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "已复制列车。" + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火车复制工具\n" +"\n" +"左键单击:复制\n" +"右键单击:粘帖" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "您没有“@1”权限。" + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<没有车钩>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "链式车钩" + +#: advtrains/couple.lua +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。" + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式车钩" + +#: advtrains/couple.lua +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您没有“train_operator”权限,不能连接这两节车厢。" + +#: advtrains/craft_items.lua +msgid "Boiler" +msgstr "锅炉" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "烟囱" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "驾驶室" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "车轮" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "已复制列车。" + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "较高的@1站台 (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "较高的@1站台" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "较低的@1站台" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "较低的@1站台 (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build near tracks at this protected position." +msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在铁路附近建任何东西。" + +#: advtrains/protection.lua +msgid "You are not allowed to build tracks at this protected position." +msgstr "这里已被保护,您不能在这里建造铁路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您没有“train_operator”权限,不能在这里建造铁路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您没有“railway_operator”权限,不能控制铁路设施。" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "铁路道口信号灯" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "臂板信号机" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "信号灯" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "壁挂式信号灯 (左侧)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "壁挂式信号灯 (右侧)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "悬挂式信号灯" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: Not enough slope items left (@1 required)" +msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: There's no slope of length @1" +msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: no supporting node at upper end." +msgstr "无法放置斜坡:较高端没有支撑方块。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: not pointing at node" +msgstr "无法放置斜坡:您没有选择任何方块。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "无法放置斜坡:此区域已被占用。" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "您不能移除这段轨道。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "您不能使用铁路调整工具调整这个方块。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "您不能使用铁路调整工具旋转这个方块。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "您不能旋转这段轨道。" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"铁路调整工具\n" +"\n" +"左键单击:切换轨道类型\n" +"右键单击:旋转方块" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "车厢属性" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(车门已关闭)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "车门已关闭,请使用潜行+右键单击下车。" + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "下车" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "强制下车" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "火车线路" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "您不能调整这段轨道。" + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "路由码" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "保存车厢属性" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "请选择座位:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "显示物品栏" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "车厢内部显示" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "车厢外部显示" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "这节车厢没有座位。" + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "轨道太短。" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "车厢已满。" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "这节车厢没有座位。" + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "车厢已满。" + +#: advtrains/wagons.lua +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "这是 @1 的车厢,您不能摧毁它。" + +#: advtrains/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "车厢属性" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按" +"潜行键并左键单击此车厢。" + +#: advtrains/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "您没有“@1”权限。" + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您没有“@1”权限,不能调整这段轨道。" + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "您不能调整这段轨道。" + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "出发速度" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "车门关闭时间" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "改变行车方向" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "车站代码" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "车站名称" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "车站轨道" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "停站时间" + +#: advtrains_line_automation/stoprail.lua +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "轨道" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 部件 (未配置)" + +#: advtrains_luaautomation/active_common.lua +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。" + +#: advtrains_luaautomation/init.lua +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被动元件命名工具\n" +"\n" +"右键单击命名所选元件。" + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您没有“@1”权限,不能命名被动元件。" + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "高速列车车厢" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "大型工业用火车头" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "司机座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "左侧司机座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "右侧司机座位" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "工业用火车头" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "液体运输车厢" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "木材运输车厢" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "司机座位" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "高速列车车头" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火车车钩" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "高速列车车厢" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "客车" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "货运车厢" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "精细的蒸汽机车" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "客车" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "蒸汽机车" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "地铁车厢" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "三开道岔" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉轨道 (其中一条轨道与坐标轴平行)" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "保险杠" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "探测轨道" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉轨道" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "装货轨道" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉轨道" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "卸货轨道" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "对称道岔" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "频道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "无法上车:车门已关闭或车厢已满。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "无法放置:此区域已被保护。" + +#~ msgid "Default Seat" +#~ msgstr "默认座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "默认座位 (司机座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "请不要使用" + +#~ msgid "Lock couples" +#~ msgstr "锁定连接处" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目标速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用铁路调整工具旋转这个方块。" + +#~ msgid "This position is protected!" +#~ msgstr "这里已被保护。" + +#~ msgid "This track can not be changed." +#~ msgstr "您不能调整这段轨道。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "请使用潜行+右键上车。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "这里已被保护,您不能在这里建造铁路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必须至少拥有其中一节车厢才能分开这两节车厢。" diff --git a/advtrains_interlocking/po/zh_TW.po b/advtrains_interlocking/po/zh_TW.po new file mode 100644 index 0000000..ec65737 --- /dev/null +++ b/advtrains_interlocking/po/zh_TW.po @@ -0,0 +1,1043 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:31+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Traditional)\n" +"Language: zh_TW\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" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:車門已關閉,無法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火車正在移動,無法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火車正在移動,無法改變行車方向。" + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 語法錯誤:未知命令:@1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 語法錯誤:「I」命令不完整:@1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "命令 (啟用時)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline 頻道" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "儲存" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "火車後部不在軌道上。" + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "您沒有指向一個可以用火車複製工具複製的物體。" + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "ID 為「@1」的列車不存在。" + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "ID 為「@1」的車廂不存在。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "無法複製:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "無法貼上:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "剪貼簿是空的。" + +#: advtrains/copytool.lua +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "軌道太短。" + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "已複製火車。" + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火車複製工具\n" +"\n" +"左鍵單擊:複製\n" +"右鍵單擊:粘帖" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "您沒有「@1」許可權。" + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<無連結器>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "鏈式連結器" + +#: advtrains/couple.lua +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。" + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式連結器" + +#: advtrains/couple.lua +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您沒有「train_operator」許可權,不能連結這兩節車廂。" + +#: advtrains/craft_items.lua +msgid "Boiler" +msgstr "鍋爐" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "煙囪" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "駕駛室" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "車輪" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "已複製火車。" + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "較高的@1月臺 (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "較高的@1月臺" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "較低的@1月臺" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "較低的@1月臺 (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build near tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在鐵路附近建任何東西。" + +#: advtrains/protection.lua +msgid "You are not allowed to build tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在這裡建造鐵路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您沒有「railway_operator」許可權,不能控制鐵路設施。" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "平交道號誌燈" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "臂木式號誌機" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "色燈號誌機" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "壁掛式色燈號誌機 (左側)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "壁掛式色燈號誌機 (右側)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "懸掛式色燈號誌機" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: Not enough slope items left (@1 required)" +msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: There's no slope of length @1" +msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: no supporting node at upper end." +msgstr "無法放置斜坡:較高階沒有支撐方塊。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: not pointing at node" +msgstr "無法放置斜坡:您沒有選擇任何方塊。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "無法放置斜坡:此區域已被佔用。" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "您不能移除這段軌道。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "您不能使用鐵路調整工具調整這個方塊。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "您不能旋轉這段軌道。" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"鐵路調整工具\n" +"\n" +"左鍵單擊:切換軌道型別\n" +"右鍵單擊:旋轉方塊" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "車廂屬性" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(車門已關閉)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "車門已關閉,請使用潛行+右鍵單擊下車。" + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "下車" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "強制下車" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "火車線路" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "您不能調整這段軌道。" + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "路由碼" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "儲存車廂屬性" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "請選擇座位:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "顯示物品欄" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "車廂內部顯示" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "車廂外部顯示" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "這節車廂沒有座位。" + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "軌道太短。" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "車廂已滿。" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "這節車廂沒有座位。" + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "車廂已滿。" + +#: advtrains/wagons.lua +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "這是 @1 的車廂,您不能摧毀它。" + +#: advtrains/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "車廂屬性" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按" +"潛行鍵並左鍵單擊此車廂。" + +#: advtrains/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "您沒有「@1」許可權。" + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您沒有「@1」許可權,不能調整這段軌道。" + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "您不能調整這段軌道。" + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "出發速度" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "車門關閉時間" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "改變行車方向" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "車站碼" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "車站名稱" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "車站軌道" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "停站時間" + +#: advtrains_line_automation/stoprail.lua +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "軌道" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 元件 (未配置)" + +#: advtrains_luaautomation/active_common.lua +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。" + +#: advtrains_luaautomation/init.lua +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被動元件命名工具\n" +"\n" +"右鍵單擊命名所選元件。" + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能命名這個元件。" + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "高速列車車廂" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "大型工業用火車頭" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "司機座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "左側司機座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "右側司機座位" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "工業用火車頭" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "液體運輸車廂" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "木材運輸車廂" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "司機座位" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "高速列車車頭" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火車連結器" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "高速列車車廂" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "客車" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "貨運車廂" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "精細的蒸汽機車" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "客車" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "蒸汽機車" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "地鐵車廂" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "三開道岔" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉軌道 (其中一條軌道與座標軸平行)" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "保險槓" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "探測軌道" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉軌道" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "裝貨軌道" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉軌道" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "卸貨軌道" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "對稱道岔" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "頻道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "無法上車:車門已關閉或車廂已滿。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "無法放置:此區域已被保護。" + +#~ msgid "Default Seat" +#~ msgstr "預設座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "預設座位 (司機座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "請不要使用" + +#~ msgid "Lock couples" +#~ msgstr "鎖定連結處" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目標速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#~ msgid "This position is protected!" +#~ msgstr "這裡已被保護。" + +#~ msgid "This track can not be changed." +#~ msgstr "您不能調整這段軌道。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "請使用潛行+右鍵上車。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必須至少擁有其中一節車廂才能分開這兩節車廂。" diff --git a/advtrains_interlocking/po/zh_TW.po~ b/advtrains_interlocking/po/zh_TW.po~ new file mode 100644 index 0000000..ec65737 --- /dev/null +++ b/advtrains_interlocking/po/zh_TW.po~ @@ -0,0 +1,1043 @@ +msgid "" +msgstr "" +"Project-Id-Version: advtrains\n" +"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n" +"POT-Creation-Date: 2025-03-25 15:40+0100\n" +"PO-Revision-Date: 2023-10-09 11:31+0200\n" +"Last-Translator: Y. Wang <yw05@forksworld.de>\n" +"Language-Team: Chinese (Traditional)\n" +"Language: zh_TW\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" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: doors are closed." +msgstr "ATC 警告:車門已關閉,無法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Kick command warning: train moving." +msgstr "ATC 警告:火車正在移動,無法踢出乘客。" + +#: advtrains/atc.lua +msgid "ATC Reverse command warning: didn't reverse train, train moving." +msgstr "ATC 警告:火車正在移動,無法改變行車方向。" + +#: advtrains/atc.lua +msgid "ATC command parse error: Unknown command: @1" +msgstr "ATC 語法錯誤:未知命令:@1" + +#: advtrains/atc.lua +msgid "ATC command syntax error: I statement not closed: @1" +msgstr "ATC 語法錯誤:「I」命令不完整:@1" + +#: advtrains/atc.lua +msgid "" +"ATC controller, mode @1\n" +"Command: @2" +msgstr "" +"ATC 控制器\n" +"模式:@1\n" +"命令:@2" + +#: advtrains/atc.lua +msgid "Command" +msgstr "命令" + +#: advtrains/atc.lua +msgid "Command (on)" +msgstr "命令 (啟用時)" + +#: advtrains/atc.lua +msgid "Digiline channel" +msgstr "Digiline 頻道" + +#: advtrains/atc.lua advtrains/wagons.lua +#: advtrains_line_automation/stoprail.lua +#: advtrains_luaautomation/active_common.lua +msgid "Save" +msgstr "儲存" + +#: advtrains/atc.lua +msgid "Unconfigured ATC controller" +msgstr "ATC 控制器 (未配置)" + +#: advtrains/copytool.lua +msgid "Back of train would end up off track, cancelling." +msgstr "火車後部不在軌道上。" + +#: advtrains/copytool.lua +msgid "No such lua entity." +msgstr "您沒有指向一個可以用火車複製工具複製的物體。" + +#: advtrains/copytool.lua +msgid "No such train: @1." +msgstr "ID 為「@1」的列車不存在。" + +#: advtrains/copytool.lua +msgid "No such wagon: @1." +msgstr "ID 為「@1」的車廂不存在。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Copy failed." +msgstr "無法複製:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua +msgid "The clipboard couldn't access the metadata. Paste failed." +msgstr "無法貼上:剪貼簿無法訪問元資料。" + +#: advtrains/copytool.lua +msgid "The clipboard is empty." +msgstr "剪貼簿是空的。" + +#: advtrains/copytool.lua +msgid "The track you are trying to place the wagon on is not long enough." +msgstr "軌道太短。" + +#: advtrains/copytool.lua +msgid "Train copied." +msgstr "已複製火車。" + +#: advtrains/copytool.lua +msgid "" +"Train copy/paste tool\n" +"\n" +"Left-click: copy train\n" +"Right-click: paste train" +msgstr "" +"火車複製工具\n" +"\n" +"左鍵單擊:複製\n" +"右鍵單擊:粘帖" + +#: advtrains/copytool.lua +msgid "You do not have the @1 privilege." +msgstr "您沒有「@1」許可權。" + +#: advtrains/couple.lua +msgid "<No coupler>" +msgstr "<無連結器>" + +#: advtrains/couple.lua +msgid "Buffer and Chain Coupler" +msgstr "鏈式連結器" + +#: advtrains/couple.lua +msgid "Can not couple: The couplers of the trains do not match (@1 and @2)." +msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。" + +#: advtrains/couple.lua +msgid "Scharfenberg Coupler" +msgstr "Scharfenberg 式連結器" + +#: advtrains/couple.lua +msgid "" +"You are not allowed to couple trains without the train_operator privilege." +msgstr "您沒有「train_operator」許可權,不能連結這兩節車廂。" + +#: advtrains/craft_items.lua +msgid "Boiler" +msgstr "鍋爐" + +#: advtrains/craft_items.lua +msgid "Chimney" +msgstr "煙囪" + +#: advtrains/craft_items.lua +msgid "Driver's cab" +msgstr "駕駛室" + +#: advtrains/craft_items.lua +msgid "Wheel" +msgstr "車輪" + +#: advtrains/init.lua +msgid " does not exist or is invalid" +msgstr "" + +#: advtrains/init.lua +msgid " is at " +msgstr "" + +#: advtrains/init.lua +msgid "(log" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains Status: no_action" +msgstr "" + +#: advtrains/init.lua +msgid "Advtrains is already running normally!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Crash during advtrains main step - skipping the shutdown save operation to " +"not save inconsistent data!" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Data is being saved. While saving, advtrains will remove the players from " +"trains. Save files will be reloaded afterwards!" +msgstr "" + +#: advtrains/init.lua +msgid "Delete all train routes, force them to recalculate" +msgstr "" + +#: advtrains/init.lua +msgid "" +"Detach all players, especially the offline ones, from all trains. Use only " +"when no one serious is on a train." +msgstr "" + +#: advtrains/init.lua +msgid "Disable the advtrains globalstep temporarily" +msgstr "" + +#: advtrains/init.lua +msgid "Disabled advtrains successfully" +msgstr "" + +#: advtrains/init.lua +msgid "Instructed to save() but load() was never called!" +msgstr "" + +#: advtrains/init.lua +msgid "Print advtrains status info" +msgstr "" + +#: advtrains/init.lua +msgid "Re-enabling advtrains globalstep..." +msgstr "" + +#: advtrains/init.lua +msgid "Reload successful!" +msgstr "" + +#: advtrains/init.lua +msgid "Removing unused wagon" +msgstr "" + +#: advtrains/init.lua +msgid "Restoring saved state in 1 second..." +msgstr "" + +#: advtrains/init.lua +msgid "Returns the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "Saving failed: " +msgstr "" + +#: advtrains/init.lua +msgid "Successfully invalidated train routes" +msgstr "" + +#: advtrains/init.lua +msgid "Teleporting to train " +msgstr "" + +#: advtrains/init.lua +msgid "Teleports you to the position of the train with the given id" +msgstr "" + +#: advtrains/init.lua +msgid "" +"The advtrains globalstep has been disabled. Trains are not moving, and no " +"data is saved! Run '/at_disable_step no' to enable again!" +msgstr "" + +#: advtrains/init.lua +msgid "Train" +msgstr "" + +#: advtrains/init.lua +#, fuzzy +msgid "Train " +msgstr "已複製火車。" + +#: advtrains/init.lua +msgid "from wagon_save table." +msgstr "" + +#: advtrains/init.lua +msgid "" +"had no wagons left because of some bug. It is being deleted. Wave it goodbye!" +msgstr "" + +#: advtrains/init.lua +msgid "slowdown" +msgstr "" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (45 degree)" +msgstr "較高的@1月臺 (45°)" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (high)" +msgstr "較高的@1月臺" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low)" +msgstr "較低的@1月臺" + +#: advtrains/misc_nodes.lua +msgid "@1 Platform (low, 45 degree)" +msgstr "較低的@1月臺 (45°)" + +#: advtrains/protection.lua +msgid "Can operate turnouts and signals in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place and dig tracks in unprotected areas" +msgstr "" + +#: advtrains/protection.lua +msgid "" +"Can place, remove and operate any train, regardless of owner, whitelist, or " +"protection" +msgstr "" + +#: advtrains/protection.lua +msgid "Can place, remove and operate trains" +msgstr "" + +#: advtrains/protection.lua +msgid "You are not allowed to build near tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build near tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在鐵路附近建任何東西。" + +#: advtrains/protection.lua +msgid "You are not allowed to build tracks at this protected position." +msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to build tracks without the track_builder privilege." +msgstr "您沒有「train_operator」許可權,不能在這裡建造鐵路。" + +#: advtrains/protection.lua +msgid "" +"You are not allowed to operate turnouts and signals without the " +"railway_operator privilege." +msgstr "您沒有「railway_operator」許可權,不能控制鐵路設施。" + +#: advtrains/signals.lua +msgid "Andrew's Cross" +msgstr "平交道號誌燈" + +#: advtrains/signals.lua +msgid "Lampless Signal" +msgstr "臂木式號誌機" + +#: advtrains/signals.lua +msgid "Signal" +msgstr "色燈號誌機" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (left)" +msgstr "壁掛式色燈號誌機 (左側)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (right)" +msgstr "壁掛式色燈號誌機 (右側)" + +#: advtrains/signals.lua +msgid "Wallmounted Signal (top)" +msgstr "懸掛式色燈號誌機" + +#: advtrains/track_reg_helper.lua +msgid "@1 Slope" +msgstr "@1斜坡" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: Not enough slope items left (@1 required)" +msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: There's no slope of length @1" +msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: no supporting node at upper end." +msgstr "無法放置斜坡:較高階沒有支撐方塊。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: not pointing at node" +msgstr "無法放置斜坡:您沒有選擇任何方塊。" + +#: advtrains/track_reg_helper.lua +#, fuzzy +msgid "Can't place: space occupied!" +msgstr "無法放置斜坡:此區域已被佔用。" + +#: advtrains/track_reg_helper.lua advtrains/tracks.lua +#, fuzzy +msgid "This track can not be removed!" +msgstr "您不能移除這段軌道。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be changed using the trackworker!" +msgstr "您不能使用鐵路調整工具調整這個方塊。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This node can't be rotated using the trackworker!" +msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#: advtrains/trackplacer.lua +#, fuzzy +msgid "This track can not be rotated!" +msgstr "您不能旋轉這段軌道。" + +#: advtrains/trackplacer.lua +msgid "" +"Track Worker Tool\n" +"\n" +"Left-click: change rail type (straight/curve/switch)\n" +"Right-click: rotate object" +msgstr "" +"鐵路調整工具\n" +"\n" +"左鍵單擊:切換軌道型別\n" +"右鍵單擊:旋轉方塊" + +#: advtrains/tracks.lua +msgid "Position is occupied by a train." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Signal Influence Point here." +msgstr "" + +#: advtrains/tracks.lua +msgid "There's a Track Circuit Break here." +msgstr "" + +#: advtrains/trainhud.lua +msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again." +msgstr "" + +#: advtrains/wagonprop_tool.lua +msgid "Insufficient privileges to use this!" +msgstr "" + +#: advtrains/wagonprop_tool.lua +#, fuzzy +msgid "Wagon Properties Tool" +msgstr "車廂屬性" + +#: advtrains/wagonprop_tool.lua +msgid "" +"Wagon Properties Tool\n" +"Punch a wagon to view and edit the Wagon Properties" +msgstr "" + +#: advtrains/wagons.lua +msgid " units" +msgstr "" + +#: advtrains/wagons.lua +msgid " wagon:destroy(): data is not set!" +msgstr "" + +#: advtrains/wagons.lua +msgid "!!! Train off track !!!" +msgstr "" + +#: advtrains/wagons.lua +msgid "(Doors closed)" +msgstr "(車門已關閉)" + +#: advtrains/wagons.lua +msgid "Allow these players to access your wagon:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Clear 'Disable ARS' flag" +msgstr "" + +#: advtrains/wagons.lua +msgid "Current FC: " +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Destroying wagon with inventory, but inventory is not found? Shouldn't " +"happen!" +msgstr "" + +#: advtrains/wagons.lua +msgid "Doors are closed! (Try holding sneak key!)" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get " +"off." +msgstr "車門已關閉,請使用潛行+右鍵單擊下車。" + +#: advtrains/wagons.lua +msgid "Freight Code:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Get off" +msgstr "下車" + +#: advtrains/wagons.lua +msgid "Get off (forced)" +msgstr "強制下車" + +#: advtrains/wagons.lua +msgid "Line" +msgstr "火車線路" + +#: advtrains/wagons.lua +msgid "Liquid: " +msgstr "" + +#: advtrains/wagons.lua +msgid "Liquid: empty" +msgstr "" + +#: advtrains/wagons.lua +msgid "Missing train_operator privilege" +msgstr "" + +#: advtrains/wagons.lua +msgid "Next FC:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Not a valid wagon id." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "Not allowed to do this." +msgstr "您不能調整這段軌道。" + +#: advtrains/wagons.lua +msgid "Onboard Computer" +msgstr "" + +#: advtrains/wagons.lua +msgid "Please specify a player name to transfer ownership to." +msgstr "" + +#: advtrains/wagons.lua +msgid "Prev FC" +msgstr "" + +#: advtrains/wagons.lua +msgid "Remote Routesetting" +msgstr "" + +#: advtrains/wagons.lua +msgid "Routingcode" +msgstr "路由碼" + +#: advtrains/wagons.lua +msgid "Save wagon properties" +msgstr "儲存車廂屬性" + +#: advtrains/wagons.lua +msgid "Select seat:" +msgstr "請選擇座位:" + +#: advtrains/wagons.lua +msgid "Show Inventory" +msgstr "顯示物品欄" + +#: advtrains/wagons.lua +msgid "Text displayed inside train" +msgstr "車廂內部顯示" + +#: advtrains/wagons.lua +msgid "Text displayed outside on train" +msgstr "車廂外部顯示" + +#: advtrains/wagons.lua +msgid "That player does not exist!" +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "That wagon does not exist!" +msgstr "這節車廂沒有座位。" + +#: advtrains/wagons.lua +#, fuzzy +msgid "The track you are trying to place the wagon on is not long enough!" +msgstr "軌道太短。" + +#: advtrains/wagons.lua +msgid "The wagon's inventory is not empty." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "This Wagon ID" +msgstr "車廂已滿。" + +#: advtrains/wagons.lua +msgid "This wagon has no seats." +msgstr "這節車廂沒有座位。" + +#: advtrains/wagons.lua +msgid "This wagon is full." +msgstr "車廂已滿。" + +#: advtrains/wagons.lua +msgid "This wagon is owned by @1, you can't destroy it." +msgstr "這是 @1 的車廂,您不能摧毀它。" + +#: advtrains/wagons.lua +msgid "Train ID" +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview / coupling control is only shown when the train stands." +msgstr "" + +#: advtrains/wagons.lua +msgid "Train overview /coupling control:" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized init=" +msgstr "" + +#: advtrains/wagons.lua +msgid "Uninitialized, removing" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon @1 ownership changed from @2 to @3" +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon needs to be decoupled from other wagons in order to destroy it." +msgstr "" + +#: advtrains/wagons.lua +msgid "Wagon properties" +msgstr "車廂屬性" + +#: advtrains/wagons.lua +msgid "Wagon road number:" +msgstr "" + +#: advtrains/wagons.lua +msgid "" +"Warning: If you destroy this wagon, you only get some steel back! If you are " +"sure, hold Sneak and left-click the wagon." +msgstr "" +"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按" +"潛行鍵並左鍵單擊此車廂。" + +#: advtrains/wagons.lua +msgid "You are not allowed to access the driver stand." +msgstr "" + +#: advtrains/wagons.lua +msgid "You can't get on this wagon." +msgstr "" + +#: advtrains/wagons.lua +#, fuzzy +msgid "You don't have the train_operator privilege." +msgstr "您沒有「@1」許可權。" + +#: advtrains/wagons.lua +msgid "You have been given ownership of wagon @1" +msgstr "" + +#: advtrains_interlocking/routesetting.lua +msgid "Route state changed." +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point Speed Restriction Track" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Point speed restriction: @1" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "Set point speed restriction:" +msgstr "" + +#: advtrains_interlocking/tsr_rail.lua +msgid "You are not allowed to configure this track without the @1 privilege." +msgstr "您沒有「@1」許可權,不能調整這段軌道。" + +#: advtrains_interlocking/tsr_rail.lua advtrains_line_automation/stoprail.lua +msgid "You are not allowed to configure this track." +msgstr "您不能調整這段軌道。" + +#: advtrains_line_automation/scheduler.lua +msgid "No callback to handle schedule" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Closed" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Dep. Speed" +msgstr "出發速度" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Delay" +msgstr "車門關閉時間" + +#: advtrains_line_automation/stoprail.lua +msgid "Door Side" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Kick out passengers" +msgstr "踢出乘客" + +#: advtrains_line_automation/stoprail.lua +msgid "Left" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Next Stop:\n" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Reverse train" +msgstr "改變行車方向" + +#: advtrains_line_automation/stoprail.lua +msgid "Right" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Code" +msgstr "車站碼" + +#: advtrains_line_automation/stoprail.lua +msgid "Station Name" +msgstr "車站名稱" + +#: advtrains_line_automation/stoprail.lua +msgid "Station code \"@1\" already exists and is owned by @2." +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Station/Stop Track" +msgstr "車站軌道" + +#: advtrains_line_automation/stoprail.lua +msgid "Stop Time" +msgstr "停站時間" + +#: advtrains_line_automation/stoprail.lua +msgid "This station is owned by @1. You are not allowed to edit its name." +msgstr "" + +#: advtrains_line_automation/stoprail.lua advtrains_train_track/init.lua +msgid "Track" +msgstr "軌道" + +#: advtrains_line_automation/stoprail.lua +msgid "Trains stopping here (ARS rules)" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Unknown Station" +msgstr "" + +#: advtrains_line_automation/stoprail.lua +msgid "Wait for signal to clear" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Clear Local Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Code" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC Environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to an invalid environment" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component assigned to environment '@1'" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "LuaATC component with error: @1" +msgstr "" + +#: advtrains_luaautomation/active_common.lua +msgid "Unconfigured LuaATC component" +msgstr "LuaATC 元件 (未配置)" + +#: advtrains_luaautomation/active_common.lua +msgid "" +"You are not allowed to configure this LuaATC component without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。" + +#: advtrains_luaautomation/init.lua +msgid "" +"Can place and configure LuaATC components, including execute potentially " +"harmful Lua code" +msgstr "" + +#: advtrains_luaautomation/mesecon_controller.lua +msgid "LuaATC Mesecon Controller" +msgstr "" + +#: advtrains_luaautomation/operation_panel.lua +msgid "LuaATC Operation Panel" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"Passive Component Naming Tool\n" +"\n" +"Right-click to name a passive component." +msgstr "" +"被動元件命名工具\n" +"\n" +"右鍵單擊命名所選元件。" + +#: advtrains_luaautomation/pcnaming.lua +msgid "Set name of component (empty to clear)" +msgstr "" + +#: advtrains_luaautomation/pcnaming.lua +msgid "" +"You are not allowed to name LuaATC passive components without the @1 " +"privilege." +msgstr "您沒有「@1」許可權,不能命名這個元件。" + +#: advtrains_signals_japan/init.lua +msgid "Caution" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Clear (proceed)" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Danger (halt)" +msgstr "" + +#: advtrains_signals_japan/init.lua +#, fuzzy +msgid "Japanese signal pole" +msgstr "高速列車車廂" + +#: advtrains_signals_japan/init.lua +msgid "Reduced speed" +msgstr "" + +#: advtrains_signals_japan/init.lua +msgid "Restricted speed" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Distant Signal (" +msgstr "" + +#: advtrains_signals_muc_ubahn/init.lua +msgid "Munich U-Bahn Main Signal (" +msgstr "" + +#: advtrains_train_industrial/init.lua +msgid "Big Industrial Train Engine" +msgstr "大型工業用火車頭" + +#: advtrains_train_industrial/init.lua advtrains_train_japan/init.lua +#: advtrains_train_steam/init.lua advtrains_train_subway/init.lua +#, fuzzy +msgid "Driver Stand" +msgstr "司機座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (left)" +msgstr "左側司機座位" + +#: advtrains_train_industrial/init.lua advtrains_train_steam/init.lua +msgid "Driver Stand (right)" +msgstr "右側司機座位" + +#: advtrains_train_industrial/init.lua +msgid "Industrial Train Engine" +msgstr "工業用火車頭" + +#: advtrains_train_industrial/init.lua +msgid "Industrial tank wagon" +msgstr "液體運輸車廂" + +#: advtrains_train_industrial/init.lua +msgid "Industrial wood wagon" +msgstr "木材運輸車廂" + +#: advtrains_train_japan/init.lua advtrains_train_subway/init.lua +msgid "Driver stand" +msgstr "司機座位" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Engine" +msgstr "高速列車車頭" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Inter-Wagon Connection" +msgstr "日本火車連結器" + +#: advtrains_train_japan/init.lua +msgid "Japanese Train Wagon" +msgstr "高速列車車廂" + +#: advtrains_train_japan/init.lua advtrains_train_steam/init.lua +#: advtrains_train_subway/init.lua +#, fuzzy +msgid "Passenger area" +msgstr "客車" + +#: advtrains_train_steam/init.lua +msgid "Box Wagon" +msgstr "貨運車廂" + +#: advtrains_train_steam/init.lua +msgid "Detailed Steam Engine" +msgstr "精細的蒸汽機車" + +#: advtrains_train_steam/init.lua +msgid "Passenger Wagon" +msgstr "客車" + +#: advtrains_train_steam/init.lua +msgid "Steam Engine" +msgstr "蒸汽機車" + +#: advtrains_train_subway/init.lua +msgid "Subway Passenger Wagon" +msgstr "地鐵車廂" + +#: advtrains_train_track/init.lua +msgid "3-way turnout" +msgstr "三開道岔" + +#: advtrains_train_track/init.lua +msgid "90+Angle Diamond Crossing Track" +msgstr "交叉軌道 (其中一條軌道與座標軸平行)" + +#: advtrains_train_track/init.lua +msgid "ATC controller" +msgstr "ATC 控制器" + +#: advtrains_train_track/init.lua +msgid "Bumper" +msgstr "保險槓" + +#: advtrains_train_track/init.lua +msgid "Detector Rail" +msgstr "探測軌道" + +#: advtrains_train_track/init.lua +msgid "Diagonal Diamond Crossing Track" +msgstr "交叉軌道" + +#: advtrains_train_track/init.lua +msgid "Loading Track" +msgstr "裝貨軌道" + +#: advtrains_train_track/init.lua +msgid "Perpendicular Diamond Crossing Track" +msgstr "垂直交叉軌道" + +#: advtrains_train_track/init.lua +msgid "Unloading Track" +msgstr "卸貨軌道" + +#: advtrains_train_track/init.lua +msgid "Y-turnout" +msgstr "對稱道岔" + +#~ msgid "" +#~ "ATC controller, mode @1\n" +#~ "Channel: @2" +#~ msgstr "" +#~ "ATC 控制器\n" +#~ "模式:@1\n" +#~ "頻道:@2" + +#~ msgid "Access to @1" +#~ msgstr "可前往@1" + +#~ msgid "Can't get on: wagon full or doors closed!" +#~ msgstr "無法上車:車門已關閉或車廂已滿。" + +#~ msgid "Can't place: protected position!" +#~ msgstr "無法放置:此區域已被保護。" + +#~ msgid "Default Seat" +#~ msgstr "預設座位" + +#~ msgid "Default Seat (driver stand)" +#~ msgstr "預設座位 (司機座位)" + +#~ msgid "Deprecated Track" +#~ msgstr "請不要使用" + +#~ msgid "Lock couples" +#~ msgstr "鎖定連結處" + +#~ msgid "Speed:" +#~ msgstr "速度" + +#~ msgid "Target:" +#~ msgstr "目標速度" + +#, fuzzy +#~ msgid "This node can't be rotated using the trackworker," +#~ msgstr "您不能使用鐵路調整工具旋轉這個方塊。" + +#~ msgid "This position is protected!" +#~ msgstr "這裡已被保護。" + +#~ msgid "This track can not be changed." +#~ msgstr "您不能調整這段軌道。" + +#~ msgid "Use Sneak+rightclick to bypass closed doors!" +#~ msgstr "請使用潛行+右鍵上車。" + +#, fuzzy +#~ msgid "You are not allowed to modify this protected track." +#~ msgstr "這裡已被保護,您不能在這裡建造鐵路。" + +#~ msgid "" +#~ "You need to own at least one neighboring wagon to destroy this couple." +#~ msgstr "您必須至少擁有其中一節車廂才能分開這兩節車廂。" diff --git a/advtrains_interlocking/route_prog.lua b/advtrains_interlocking/route_prog.lua index 81aa133..b080945 100644 --- a/advtrains_interlocking/route_prog.lua +++ b/advtrains_interlocking/route_prog.lua @@ -19,6 +19,9 @@ C. punch a turnout (or some other passive component) to fix its state (toggle) The route visualization will also be used to visualize routes after they have been programmed. ]]-- +-- Get current translator +local S = advtrains.interlocking.translate + -- TODO duplicate local lntrans = { "A", "B" } local function sigd_to_string(sigd) @@ -123,11 +126,11 @@ the distant signal aspect is determined as DANGER. ]]-- local function chat(pname, message) - minetest.chat_send_player(pname, "[Route programming] "..message) + minetest.chat_send_player(pname, S("[Route programming] ")..message) end local function clear_lock(locks, pname, pts) locks[pts] = nil - chat(pname, pts.." is no longer affected when this route is set.") + chat(pname, S("@1 is no longer affected when this route is set.", pts)) end local function otherside(s) @@ -178,7 +181,9 @@ function advtrains.interlocking.visualize_route(origin, route, context, tmp_lcks if not pos then pos = advtrains.decode_pos(pts) end - routesprite(context, pos, "fix"..k..pts, "at_il_route_lock.png", "Fixed in state '"..state.."' by route "..route.name.." until segment #"..k.." is freed.") + routesprite(context, pos, "fix"..k..pts, "at_il_route_lock.png", + S("Fixed in state @1 by route @2 until segment #@3 is freed.", state, route.name, k) + ) end end @@ -197,7 +202,8 @@ function advtrains.interlocking.visualize_route(origin, route, context, tmp_lcks if node_ok then yaw = advtrains.dir_to_angle(conns[otherside(sigd.s)].c) end - routemarker(context, sigd.p, "rteterm"..i, "at_il_route_end.png", yaw, route.name.." Terminal "..i) + routemarker(context, sigd.p, "rteterm"..i, "at_il_route_end.png", yaw, + S("@1 Terminal @2", route.name, i)) end end end @@ -205,7 +211,8 @@ function advtrains.interlocking.visualize_route(origin, route, context, tmp_lcks -- display locks set by player for pts, state in pairs(tmp_lcks) do local pos = advtrains.decode_pos(pts) - routesprite(context, pos, "fixp"..pts, "at_il_route_lock_edit.png", "Fixed in state '"..state.."' by route "..route.name.." (punch to unfix)", + routesprite(context, pos, "fixp"..pts, "at_il_route_lock_edit.png", + S("Fixed in state @1 by route @2 (punch to unfix)", state, route.name), function() clear_lock(tmp_lcks, pname, pts) end) end end @@ -216,7 +223,7 @@ local player_rte_prog = {} function advtrains.interlocking.init_route_prog(pname, sigd, default_route) if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end local rp = { @@ -240,7 +247,7 @@ function advtrains.interlocking.init_route_prog(pname, sigd, default_route) end player_rte_prog[pname] = rp advtrains.interlocking.visualize_route(sigd, rp.route, "prog_"..pname, rp.tmp_lcks, pname) - minetest.chat_send_player(pname, "Route programming mode active. Punch TCBs to add route segments, punch turnouts to lock them.") + minetest.chat_send_player(pname, S("Route programming mode active. Punch TCBs to add route segments, punch turnouts to lock them.")) end local function get_last_route_item(origin, route) @@ -253,33 +260,33 @@ end local function do_advance_route(pname, rp, sigd, tsref) table.insert(rp.route, {next = sigd, locks = rp.tmp_lcks}) rp.tmp_lcks = {} - chat(pname, "Added track section '"..(tsref and (tsref.name or "") or "--EOI--").."' to the route.") + chat(pname, S("Added track section @1 to the route.", (tsref and (tsref.name or "") or "--EOI--"))) end local function finishrpform(pname) local rp = player_rte_prog[pname] if not rp then return end - local form = "size[7,6]label[0.5,0.5;Finish programming route]" + local form = "size[7,6]label[0.5,0.5;"..S("Finish programming route").."]" local terminal = get_last_route_item(rp.origin, rp.route) if terminal then local term_tcbs = advtrains.interlocking.db.get_tcbs(terminal) if term_tcbs.signal then local signalname = (term_tcbs.signal_name or "") .. sigd_to_string(terminal) - form = form .. "label[0.5,1.5;Route ends at signal:]" + form = form .. "label[0.5,1.5;"..S("Route ends at signal:").."]" form = form .. "label[0.5,2 ;"..signalname.."]" else - form = form .. "label[0.5,1.5;WARNING: Route does not end at a signal.]" - form = form .. "label[0.5,2 ;Routes should in most cases end at signals.]" - form = form .. "label[0.5,2.5;Cancel if you are unsure!]" + form = form .. "label[0.5,1.5;"..S("WARNING: Route does not end at a signal.").."]" + form = form .. "label[0.5,2 ;"..S("Routes should in most cases end at signals.").."]" + form = form .. "label[0.5,2.5;"..S("Cancel if you are unsure!").."]" end else - form = form .. "label[0.5,1.5;Route leads into]" - form = form .. "label[0.5,2 ;non-interlocked area]" + form = form .. "label[0.5,1.5;"..S("Route leads into").."]" + form = form .. "label[0.5,2 ;"..S("non-interlocked area").."]" end - form = form.."field[0.8,3.5;5.2,1;name;Enter Route Name;]" - form = form.."button_exit[0.5,4.5; 5,1;save;Save Route]" + form = form.."field[0.8,3.5;5.2,1;name;"..S("Enter Route Name")..";]" + form = form.."button_exit[0.5,4.5; 5,1;save;"..S("Save Route").."]" minetest.show_formspec(pname, "at_il_routepf", form) @@ -327,7 +334,7 @@ local function check_advance_valid(tcbpos, rp) local adv_tcbs = advtrains.interlocking.db.get_tcbs(this_sigd) local next_tsid = adv_tcbs.ts_id local can_over, over_ts, next_tc_bs = false, nil, nil - local cannotover_rsn = "Next section is diverging (>2 TCBs)" + local cannotover_rsn = S("Next section is diverging (>2 TCBs)") if next_tsid then -- you may not advance over EOI. While this is technically possible, -- in practise this just enters an unnecessary extra empty route item. @@ -335,7 +342,7 @@ local function check_advance_valid(tcbpos, rp) next_tc_bs = over_ts.tc_breaks can_over = #next_tc_bs <= 2 else - cannotover_rsn = "End of interlocking" + cannotover_rsn = S("End of interlocking") end local over_sigd = nil @@ -377,29 +384,29 @@ local function show_routing_form(pname, tcbpos, message) -- show nothing at all -- In all cases, Discard and Backtrack buttons needed. - local form = "size[7,9.5]label[0.5,0.5;Advance/Complete Route]" + local form = "size[7,9.5]label[0.5,0.5;"..S("Advance/Complete Route").."]" if message then form = form .. "label[0.5,1;"..message.."]" end if advance_valid and not is_endpoint then - form = form.. "label[0.5,1.8;Advance to next route section]" + form = form.. "label[0.5,1.8;"..S("Advance to next route section").."]" form = form.."image_button[0.5,2.2; 5,1;at_il_routep_advance.png;advance;]" form = form.. "label[0.5,3.5;-------------------------]" else - form = form.. "label[0.5,2.3;This TCB is not suitable as]" - form = form.. "label[0.5,2.8;route continuation.]" + form = form.. "label[0.5,2.3;"..S("This TCB is not suitable as").."]" + form = form.. "label[0.5,2.8;"..S("route continuation.").."]" end if advance_valid or is_endpoint then - form = form.. "label[0.5,3.8;Finish route HERE]" + form = form.. "label[0.5,3.8;"..S("Finish route HERE").."]" form = form.."image_button[0.5, 4.2; 5,1;at_il_routep_end_here.png;endhere;]" if can_over then - form = form.. "label[0.5,5.3;Finish route at end of NEXT section]" + form = form.. "label[0.5,5.3;"..S("Finish route at end of NEXT section").."]" form = form.."image_button[0.5,5.7; 5,1;at_il_routep_end_over.png;endover;]" else - form = form.. "label[0.5,5.3;Advancing over next section is]" - form = form.. "label[0.5,5.8;impossible at this place.]" + form = form.. "label[0.5,5.3;"..S("Advancing over next section is").."]" + form = form.. "label[0.5,5.8;"..S("impossible at this place.").."]" if cannotover_rsn then form = form.. "label[0.5,6.3;"..cannotover_rsn.."]" end @@ -408,9 +415,9 @@ local function show_routing_form(pname, tcbpos, message) form = form.. "label[0.5,7;-------------------------]" if #rp.route > 0 then - form = form.."button[0.5,7.4; 5,1;retract;Step back one section]" + form = form.."button[0.5,7.4; 5,1;retract;"..S("Step back one section").."]" end - form = form.."button[0.5,8.4; 5,1;cancel;Cancel route programming]" + form = form.."button[0.5,8.4; 5,1;cancel;"..S("Cancel route programming").."]" minetest.show_formspec(pname, "at_il_rprog_"..minetest.pos_to_string(tcbpos), form) end @@ -461,12 +468,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end rp.tmp_locks = rp.route[#rp.route].locks rp.route[#rp.route] = nil - chat(pname, "Route section "..(#rp.route+1).." removed.") + chat(pname, S("Route section @1 removed.", (#rp.route+1))) end if fields.cancel then player_rte_prog[pname] = nil advtrains.interlocking.clear_visu_context("prog_"..pname) - chat(pname, "Route discarded.") + chat(pname, S("Route discarded.")) minetest.close_formspec(pname, formname) return end @@ -487,13 +494,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local rp = player_rte_prog[pname] if rp then if #rp.route <= 0 then - chat(pname, "Cannot program route without a target") + chat(pname, S("Cannot program route without a target")) return end local tcbs = advtrains.interlocking.db.get_tcbs(rp.origin) if not tcbs then - chat(pname, "The origin TCB has become unknown during programming. Try again.") + chat(pname, S("The origin TCB has become unknown during programming. Try again.")) return end @@ -507,7 +514,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) advtrains.interlocking.clear_visu_context("prog_"..pname) player_rte_prog[pname] = nil - chat(pname, "Successfully programmed route.") + chat(pname, S("Successfully programmed route.")) advtrains.interlocking.show_route_edit_form(pname, rp.origin, #tcbs.routes) return @@ -530,7 +537,7 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) local meta = minetest.get_meta(pos) local tcbpts = meta:get_string("tcb_pos") if tcbpts == "" then - chat(pname, "This TCB is unconfigured, you first need to assign it to a rail") + chat(pname, S("This TCB is unconfigured, you first need to assign it to a rail")) return end local tcbpos = minetest.string_to_pos(tcbpts) @@ -553,7 +560,7 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) else local state = advtrains.getstate(pos) rp.tmp_lcks[pts] = state - chat(pname, pts.." is held in "..state.." position when this route is set and freed ") + chat(pname, S("@1 is held in @2 position when this route is set and freed ", pts, state)) end advtrains.interlocking.visualize_route(rp.origin, rp.route, "prog_"..pname, rp.tmp_lcks, pname) return diff --git a/advtrains_interlocking/route_ui.lua b/advtrains_interlocking/route_ui.lua index 3c7bd64..d1bae63 100644 --- a/advtrains_interlocking/route_ui.lua +++ b/advtrains_interlocking/route_ui.lua @@ -1,6 +1,9 @@ -- route_ui.lua -- User interface for showing and editing routes +-- Get current translator +local S = advtrains.interlocking.translate + local atil = advtrains.interlocking local ildb = atil.db local F = advtrains.formspec @@ -17,7 +20,7 @@ local sel_rpartcache = {} function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) if not minetest.check_player_privs(pname, {train_operator=true, interlocking=true}) then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end @@ -26,9 +29,9 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) local route = tcbs.routes[routeid] if not route then return end - local form = "size[9,11]label[0.5,0.2;Route overview]" - form = form.."field[0.8,1.2;6.5,1;name;Route name;"..minetest.formspec_escape(route.name).."]" - form = form.."button[7.0,0.9;1.5,1;setname;Set]" + local form = "size[9,11]label[0.5,0.2;"..S("Route overview").."]" + form = form.."field[0.8,1.2;6.5,1;name;"..S("Route name")..";"..minetest.formspec_escape(route.name).."]" + form = form.."button[7.0,0.9;1.5,1;setname;"..S("Set").."]" -- construct textlist for route information local tab = {} @@ -47,12 +50,12 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) while c_sigd and i<=#route do c_tcbs = ildb.get_tcbs(c_sigd) if not c_tcbs then - itab(i, "-!- No TCBS at "..sigd_to_string(c_sigd)..". Please reconfigure route!", "err", nil) + itab(i, "-!- "..S("TCB at @1 is missing", sigd_to_string(c_sigd)), "err", nil) break end c_ts_id = c_tcbs.ts_id if not c_ts_id then - itab(i, "-!- No track section adjacent to "..sigd_to_string(c_sigd)..". Please reconfigure route!", "err", nil) + itab(i, "-!- "..S("Track section after @1 missing", sigd_to_string(c_sigd)), "err", nil) break end c_ts = ildb.get_ts(c_ts_id) @@ -70,7 +73,7 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) local pos = advtrains.decode_pos(pts) itab(i, "L "..pts.." -> "..state, "lock", pos) if not advtrains.is_passive(pos) then - itab(i, "-!- No passive component at "..pts..". Please reconfigure route!", "err", nil) + itab(i, "-!- "..S("Turnout/component missing at @1", minetest.pos_to_string(pos)), "err", nil) break end end @@ -79,8 +82,14 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) local nvar = c_rseg.next if nvar then local re_tcbs = ildb.get_tcbs({p = nvar.p, s = (nvar.s==1) and 2 or 1}) - if not re_tcbs or not re_tcbs.ts_id or re_tcbs.ts_id~=c_ts_id then - itab(i, "-!- At "..sigd_to_string(c_sigd)..".Section Start and End do not match!", "err", nil) + if not re_tcbs then + itab(i, "-!- "..S("TCB at @1 is missing", minetest.pos_to_string(nvar.p)), "err", nil) + break + elseif not re_tcbs.ts_id then + itab(i, "-!- "..S("TCB at @1 is not assigned to previous track section", minetest.pos_to_string(nvar.p)), "err", nil) + break + elseif re_tcbs.ts_id~=c_ts_id then + itab(i, "-!- "..S("TCB at @1 has different section than previous TCB", minetest.pos_to_string(nvar.p)), "err", nil) break end end @@ -113,10 +122,10 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) -- main aspect list local signalpos = s_tcbs and s_tcbs.signal if signalpos and rseg then - form = form..F.label(4.5, 2, "Signal Aspect:") + form = form..F.label(4.5, 2, S("Signal Aspect:")) local ndef = signalpos and advtrains.ndb.get_ndef(signalpos) if ndef and ndef.advtrains and ndef.advtrains.main_aspects then - local entries = { "<Default Aspect>" } + local entries = { S("<Default Aspect>") } local sel = 1 for i, mae in ipairs(ndef.advtrains.main_aspects) do entries[i+1] = mae.description @@ -133,21 +142,21 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) -- defaults to false for the very first signal and true for all others (= minimal user configuration overhead) -- Note: on save, the value will be fixed at either false or true end - form = form..string.format("checkbox[4.5,4.0;sa_distant;Announce distant signal;%s]", assign_dst) + form = form..string.format("checkbox[4.5,4.0;sa_distant;"..S("Announce distant signal")..";%s]", assign_dst) else - form = form..F.label(4.5, 2, "No Signal at this TCB") + form = form..F.label(4.5, 2, S("No Signal at this TCB")) end elseif sel_rpart and sel_rpart.section then local rseg = route[sel_rpart.seg] if rseg then - form = form..F.label(4.5, 2, "Section Options:") + form = form..F.label(4.5, 2, S("Section Options:")) -- checkbox for call-on - form = form..string.format("checkbox[4.5,4.0;se_callon;Call-on (section may be occupied);%s]", rseg.call_on) + form = form..string.format("checkbox[4.5,4.0;se_callon;"..S("Call-on (section may be occupied)")..";%s]", rseg.call_on) end elseif sel_rpart and sel_rpart.err then - form = form.."textarea[4.5,2.5;4,4;errorta;Error:;"..tab[sel_rpartidx].."]" + form = form.."textarea[4.5,2.5;4,4;errorta;"..S("Error:")..";"..tab[sel_rpartidx].."]" else - form = form..F.label(4.5, 2, "<< Select a route part to edit options") + form = form..F.label(4.5, 2, S("<< Select a route part to edit options")) end form = form.."button[0.5,6;1,1;prev;<<<]" @@ -158,15 +167,15 @@ function atil.show_route_edit_form(pname, sigd, routeid, sel_rpartidx) --if route.smartroute_generated or route.default_autoworking then -- form = form.."button[3.5,6;2,1;noautogen;Clr Autogen]" --end - form = form.."button[5.5,6;3,1;delete;Delete Route]" - form = form.."button[0.5,7;3,1;back;Back to signal]" - form = form.."button[3.5,7;2,1;clone;Clone Route]" - form = form.."button[5.5,7;3,1;newfrom;New From Route]" + form = form.."button[5.5,6;3,1;delete;"..S("Delete Route").."]" + form = form.."button[0.5,7;3,1;back;"..S("Back to signal").."]" + form = form.."button[3.5,7;2,1;clone;"..S("Clone Route").."]" + form = form.."button[5.5,7;3,1;newfrom;"..S("New From Route").."]" --atdebug(route.ars) form = form.."style[ars;font=mono]" - form = form.."textarea[0.8,8.3;5,3;ars;ARS Rule List;"..atil.ars_to_text(route.ars).."]" - form = form.."button[5.5,8.23;3,1;savears;Save ARS List]" + form = form.."textarea[0.8,8.3;5,3;ars;"..S("ARS Rule List")..";"..atil.ars_to_text(route.ars).."]" + form = form.."button[5.5,8.23;3,1;savears;"..S("Save ARS List").."]" local formname = "at_il_routeedit_"..minetest.pos_to_string(sigd.p).."_"..sigd.s.."_"..routeid minetest.show_formspec(pname, formname, form) diff --git a/advtrains_interlocking/routesetting.lua b/advtrains_interlocking/routesetting.lua index 9901d23..353b521 100644 --- a/advtrains_interlocking/routesetting.lua +++ b/advtrains_interlocking/routesetting.lua @@ -1,5 +1,8 @@ -- Setting and clearing routes +-- Get current translator +local S = advtrains.interlocking.translate + -- TODO duplicate local lntrans = { "A", "B" } local function sigd_to_string(sigd) @@ -52,7 +55,7 @@ function ilrs.set_route(signal, route, try) c_tcbs = ildb.get_tcbs(c_sigd) if not c_tcbs then if not try then atwarn("Did not find TCBS",c_sigd,"while setting route",rtename,"of",signal) end - return false, "No TCB found at "..sigd_to_string(c_sigd)..". Please update or reconfigure route!" + return false, S("No TCB found at @1. Please update or reconfigure route!", sigd_to_string(c_sigd)) end if i == 1 then nodst = c_tcbs.nodst @@ -60,7 +63,7 @@ function ilrs.set_route(signal, route, try) c_ts_id = c_tcbs.ts_id if not c_ts_id then if not try then atwarn("Encountered End-Of-Interlocking while setting route",rtename,"of",signal) end - return false, "No track section adjacent to "..sigd_to_string(c_sigd)..". Please reconfigure route!" + return false, S("No track section adjacent to @1. Please reconfigure route!", sigd_to_string(c_sigd)) end c_ts = ildb.get_ts(c_ts_id) c_rseg = route[i] @@ -68,17 +71,18 @@ function ilrs.set_route(signal, route, try) if not c_ts then if not try then atwarn("Encountered ts missing during a real run of routesetting routine, at ts=",c_ts_id,"while setting route",rtename,"of",signal) end - return false, "Section '"..(c_ts_id).."' not found!", c_ts_id, nil + return false, S("Section '@1' not found!", c_ts_id), c_ts_id, nil elseif c_ts.route then if not try then atwarn("Encountered ts lock during a real run of routesetting routine, at ts=",c_ts_id,"while setting route",rtename,"of",signal) end - return false, "Section '"..(c_ts.name or c_ts_id).."' already has route set from "..sigd_to_string(c_ts.route.origin)..":\n"..c_ts.route.rsn, c_ts_id, nil + return false, S("Section '@1' already has route set from @2:", (c_ts.name or c_ts_id), sigd_to_string(c_ts.route.origin)) + .."\n"..c_ts.route.rsn, c_ts_id, nil end if c_ts.trains and #c_ts.trains>0 then if c_rseg.call_on then --atdebug("Routesetting: Call-on situation in", c_ts_id) else if not try then atwarn("Encountered ts occupied during a real run of routesetting routine, at ts=",c_ts_id,"while setting route",rtename,"of",signal) end - return false, "Section '"..(c_ts.name or c_ts_id).."' is occupied!", c_ts_id, nil + return false, S("Section '@1' is occupied!", (c_ts.name or c_ts_id)), c_ts_id, nil end end @@ -113,18 +117,18 @@ function ilrs.set_route(signal, route, try) local confl = ilrs.has_route_lock(lp) if confl then if not try then atwarn("Encountered route lock while a real run of routesetting routine, at position",pos,"while setting route",rtename,"of",signal) end - return false, "Lock conflict at "..minetest.pos_to_string(pos)..", Held locked by:\n"..confl, nil, lp + return false, S("Lock conflict at @1, Held locked by:", minetest.pos_to_string(pos)).."\n"..confl, nil, lp elseif not try then advtrains.setstate(pos, state) end end if not try then - ilrs.add_route_lock(lp, c_ts_id, "Route '"..rtename.."' from signal '"..signalname.."'", signal) + ilrs.add_route_lock(lp, c_ts_id, S("Route @1 from signal @2", rtename, signalname), signal) c_lckp[#c_lckp+1] = lp end else if not try then atwarn("Encountered route lock misconfiguration (no passive component) while a real run of routesetting routine, at position",pts,"while setting route",rtename,"of",signal) end - return false, "No passive component at "..minetest.pos_to_string(pos)..". Please update track section or reconfigure route!" + return false, S("Turnout/component missing at @1. Please update track section or reconfigure route!", minetest.pos_to_string(pos)) end end -- sanity check, is section at next the same as the current? @@ -134,7 +138,7 @@ function ilrs.set_route(signal, route, try) if (not re_tcbs or not re_tcbs.ts_id or re_tcbs.ts_id~=c_ts_id) and route[i+1] then --FIX 2025-01-08: in old worlds the final TCB may be wrong (it didn't matter back then), don't error out here (route still shown invalid in UI) if not try then atwarn("Encountered inconsistent ts (front~=back) while a real run of routesetting routine, at position",pts,"while setting route",rtename,"of",signal) end - return false, "TCB at "..minetest.pos_to_string(nvar.p).." has different section than previous TCB. Please update track section or reconfigure route!" + return false, S("TCB at @1 has different section than previous TCB. Please update track section or reconfigure route!", minetest.pos_to_string(nvar.p)) end end -- reserve ts and write locks @@ -146,7 +150,7 @@ function ilrs.set_route(signal, route, try) c_ts.route = { origin = signal, entry = c_sigd, - rsn = "Route '"..rtename.."' from signal '"..signalname.."', segment #"..i, + rsn = S("Route @1 from signal @2, segment #@3", rtename, signalname, i), first = first, } c_ts.route_post = { diff --git a/advtrains_interlocking/signal_api.lua b/advtrains_interlocking/signal_api.lua index f624f7a..e7c2248 100644 --- a/advtrains_interlocking/signal_api.lua +++ b/advtrains_interlocking/signal_api.lua @@ -460,7 +460,7 @@ function signal.after_dig(pos, oldnode, oldmetadata, player) local sigd = advtrains.interlocking.db.get_sigd_for_signal(pos) if sigd then advtrains.interlocking.db.unassign_signal_for_tcbs(sigd) - minetest.chat_send_player(player:get_player_name(), "Signal has been unassigned. Name and routes are kept for reuse.") + --minetest.chat_send_player(player:get_player_name(), "Signal has been unassigned. Name and routes are kept for reuse.") end -- clear influence point local ipts,iconnid = advtrains.interlocking.db.get_ip_by_signalpos(pos) diff --git a/advtrains_interlocking/signal_aspect_ui.lua b/advtrains_interlocking/signal_aspect_ui.lua index 49e7d8b..6ba1f7a 100644 --- a/advtrains_interlocking/signal_aspect_ui.lua +++ b/advtrains_interlocking/signal_aspect_ui.lua @@ -1,5 +1,8 @@ local F = advtrains.formspec +-- Get current translator +local S = advtrains.interlocking.translate + function advtrains.interlocking.show_signal_form(pos, node, pname, aux_key) local sigd = advtrains.interlocking.db.get_sigd_for_signal(pos) if sigd and not aux_key then @@ -38,14 +41,14 @@ function advtrains.interlocking.make_ip_formspec_component(pos, x, y, w) local ipos = minetest.string_to_pos(pts) ipmarker(ipos, connid) return table.concat { - F.S_label(x, y, "Influence point is set at @1.", string.format("%s/%s", pts, connid)), - F.S_button_exit(x, y+0.5, w/2-0.125, "ip_set", "Modify"), - F.S_button_exit(x+w/2+0.125, y+0.5, w/2-0.125, "ip_clear", "Clear"), + F.label(x, y, S("Influence point is set at @1.", string.format("%s/%s", pts, connid))), + F.button_exit(x, y+0.5, w/2-0.125, "ip_set", S("Modify")), + F.button_exit(x+w/2+0.125, y+0.5, w/2-0.125, "ip_clear", S("Clear")), } else return table.concat { - F.S_label(x, y, "Influence point is not set."), - F.S_button_exit(x, y+0.5, w, "ip_set", "Set influence point"), + F.label(x, y, S("Influence point is not set.")), + F.button_exit(x, y+0.5, w, "ip_set", S("Set influence point")), } end end @@ -83,10 +86,10 @@ function advtrains.interlocking.show_ip_sa_form(pos, pname) -- Create Signal aspect formspec elements local ndef = advtrains.ndb.get_ndef(pos) if ndef and ndef.advtrains then - form[#form+1] = F.label(0.5, 2, "Signal Aspect:") + form[#form+1] = F.label(0.5, 2, S("Signal Aspect:")) -- main aspect list if ndef.advtrains.main_aspects then - local entries = { "<none>" } + local entries = { S("<none>") } local sel = 1 for i, mae in ipairs(ndef.advtrains.main_aspects) do entries[i+1] = mae.description @@ -98,9 +101,9 @@ function advtrains.interlocking.show_ip_sa_form(pos, pname) end -- distant signal assign (is shown either when main_aspect is not none, or when pure distant signal) if rpos then - form[#form+1] = F.button_exit(0.5, 3.5, 4, "sa_undistant", "Dst: " .. minetest.pos_to_string(rpos)) + form[#form+1] = F.button_exit(0.5, 3.5, 4, "sa_undistant", S("Dst: @1", minetest.pos_to_string(rpos)) ) elseif (ma and not ma.halt) or not ndef.advtrains.main_aspects then - form[#form+1] = F.button_exit(0.5, 3.5, 4, "sa_distant", "<assign distant>") + form[#form+1] = F.button_exit(0.5, 3.5, 4, "sa_distant", S("<assign distant>")) end end @@ -165,12 +168,12 @@ end) -- inits the signal IP assignment process function advtrains.interlocking.init_ip_assign(pos, pname) if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end --remove old IP --advtrains.interlocking.db.clear_ip_by_signalpos(pos) - minetest.chat_send_player(pname, "Configuring Signal: Please look in train's driving direction and punch rail to set influence point.") + minetest.chat_send_player(pname, S("Configuring Signal: Please look in train's driving direction and punch rail to set influence point.")) players_assign_ip[pname] = pos end @@ -178,10 +181,10 @@ end -- inits the distant signal assignment process function advtrains.interlocking.init_distant_assign(pos, pname) if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end - minetest.chat_send_player(pname, "Set distant signal: Punch the main signal to assign!") + minetest.chat_send_player(pname, S("Set distant signal: Punch the main signal to assign!")) players_assign_distant[pname] = pos end @@ -203,7 +206,7 @@ local function try_auto_assign_to_tcb(signalpos, pos, connid, pname) advtrains.interlocking.db.assign_signal_to_tcbs(signalpos, sigd) -- use auto-naming advtrains.interlocking.add_autoname_to_tcbs(tcb[aconnid], pname) - minetest.chat_send_player(pname, "Assigned signal to the TCB at "..core.pos_to_string(apos)) + minetest.chat_send_player(pname, S("Assigned signal to the TCB at @1", core.pos_to_string(apos)) ) advtrains.interlocking.show_tcb_marker(apos) advtrains.interlocking.show_signalling_form(sigd, pname) end @@ -215,7 +218,7 @@ local function try_auto_assign_to_tcb(signalpos, pos, connid, pname) local mainsig = advtrains.interlocking.db.get_ip_signal(pts, aconnid) if mainsig and advtrains.interlocking.signal.get_signal_cap_level(mainsig) >= 3 then advtrains.interlocking.signal.set_aspect(signalpos, "_default", mainsig) - minetest.chat_send_player(pname, "Assigned distant signal to the main signal at "..core.pos_to_string(mainsig)) + minetest.chat_send_player(pname, S("Assigned distant signal to the main signal at @1", core.pos_to_string(mainsig)) ) return end end @@ -245,7 +248,7 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) if not advtrains.interlocking.db.get_ip_signal_asp(pts, plconnid) then advtrains.interlocking.db.set_ip_signal(pts, plconnid, signalpos) ipmarker(pos, plconnid) - minetest.chat_send_player(pname, "Configuring Signal: Successfully set influence point") + minetest.chat_send_player(pname, S("Configuring Signal: Successfully set influence point")) -- Try to find a TCB ahead and auto assign this signal there local pc = player:get_player_control() local no_auto_assign = pc.aux1 @@ -253,13 +256,13 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) try_auto_assign_to_tcb(signalpos, pos, plconnid, pname) end else - minetest.chat_send_player(pname, "Configuring Signal: Influence point of another signal is already present!") + minetest.chat_send_player(pname, S("Configuring Signal: Influence point of another signal is already present!")) end else - minetest.chat_send_player(pname, "Configuring Signal: This is not a normal two-connection rail! Aborted.") + minetest.chat_send_player(pname, S("Configuring Signal: This is not a normal two-connection rail! Aborted.")) end else - minetest.chat_send_player(pname, "Configuring Signal: Node is too far away. Aborted.") + minetest.chat_send_player(pname, S("Configuring Signal: Node is too far away. Aborted.")) end players_assign_ip[pname] = nil end diff --git a/advtrains_interlocking/smartroute.lua b/advtrains_interlocking/smartroute.lua index 76c7814..2b9138c 100644 --- a/advtrains_interlocking/smartroute.lua +++ b/advtrains_interlocking/smartroute.lua @@ -1,6 +1,9 @@ -- smartroute.lua -- Implementation of the advtrains auto-route search +-- Get current translator +local S = advtrains.interlocking.translate + local atil = advtrains.interlocking local ildb = atil.db local sr = {} @@ -143,10 +146,10 @@ local players_smartroute_actions = {} function sr.propose_next(pname, sigd, find_more_than, searching_shunt) local tcbs = ildb.get_tcbs(sigd) if not tcbs or not tcbs.routes then - minetest.chat_send_player(pname, "Smartroute: TCBS or routes don't exist here!") + minetest.chat_send_player(pname, S("Smartroute: TCBS or routes don't exist here!")) return elseif not tcbs.ts_id then - minetest.chat_send_player(pname, "Smartroute: No track section directly ahead!") + minetest.chat_send_player(pname, S("Smartroute: No track section directly ahead!")) return end -- Step 1: search for routes using the current settings @@ -158,7 +161,7 @@ function sr.propose_next(pname, sigd, find_more_than, searching_shunt) found_routes = found_routes } -- step 3: build form - local form = "size[8,5]label[0,0;Route search: "..#found_routes.." found]" + local form = "size[8,5]label[0,0;"..S("Route search: @1 found", #found_routes).."]" local tab = {} for idx, froute in ipairs(found_routes) do local secfl = table.copy(froute.secseq) @@ -172,8 +175,8 @@ function sr.propose_next(pname, sigd, find_more_than, searching_shunt) tab[idx] = minetest.formspec_escape(froute.name..viatext) end form=form.."textlist[0.5,1;7,3;rtelist;"..table.concat(tab, ",").."]" - form=form.."button[0.5,4;2,1;continue;Search further]" - form=form.."button[2.5,4;2,1;apply;Apply]" + form=form.."button[0.5,4;2,1;continue;"..S("Search further").."]" + form=form.."button[2.5,4;2,1;apply;"..S("Apply").."]" minetest.show_formspec(pname, "at_il_smartroute_propose", form) end diff --git a/advtrains_interlocking/tcb_ts_ui.lua b/advtrains_interlocking/tcb_ts_ui.lua index 7cc25ed..0111f5e 100755 --- a/advtrains_interlocking/tcb_ts_ui.lua +++ b/advtrains_interlocking/tcb_ts_ui.lua @@ -1,5 +1,8 @@ -- Track Circuit Breaks and Track Sections - Player interaction +-- Get current translator +local S = advtrains.interlocking.translate + local players_assign_tcb = {} local players_assign_signal = {} local players_assign_xlink = {} @@ -30,7 +33,7 @@ minetest.register_node("advtrains_interlocking:tcb_node", { }, mesh = "at_il_tcb_node.obj", tiles = {"at_il_tcb_node.png"}, - description="Track Circuit Break", + description=S("Track Circuit Break"), sunlight_propagates=true, groups = { cracky=3, @@ -40,12 +43,12 @@ minetest.register_node("advtrains_interlocking:tcb_node", { }, after_place_node = function(pos, node, player) local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Unconfigured Track Circuit Break, right-click to assign.") + meta:set_string("infotext", S("Unconfigured Track Circuit Break, right-click to assign.")) end, on_rightclick = function(pos, node, player) local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end @@ -57,11 +60,11 @@ minetest.register_node("advtrains_interlocking:tcb_node", { if tcb then advtrains.interlocking.show_tcb_form(tcbpos, pname) else - minetest.chat_send_player(pname, "This TCB has been removed. Please dig marker.") + minetest.chat_send_player(pname, S("This TCB has been removed. Please dig marker.")) end else --unconfigured - minetest.chat_send_player(pname, "Configuring TCB: Please punch the rail you want to assign this TCB to.") + minetest.chat_send_player(pname, S("Configuring TCB: Please punch the rail you want to assign this TCB to.")) players_assign_tcb[pname] = pos end @@ -85,7 +88,7 @@ minetest.register_node("advtrains_interlocking:tcb_node", { local tcbpts = meta:get_string("tcb_pos") if tcbpts ~= "" then if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end local tcbpos = minetest.string_to_pos(tcbpts) @@ -93,7 +96,7 @@ minetest.register_node("advtrains_interlocking:tcb_node", { if not tcb then return true end for connid=1,2 do if tcb[connid].signal then - minetest.chat_send_player(pname, "Can't remove TCB: Both sides must have no signal assigned!") + minetest.chat_send_player(pname, S("Can't remove TCB: Both sides must have no signal assigned!")) return false end end @@ -162,21 +165,21 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) if node_ok and #conns == 2 then -- if there is already a tcb here, reassign it if ildb.get_tcb(pos) then - minetest.chat_send_player(pname, "Configuring TCB: Already existed at this position, it is now linked to this TCB marker") + minetest.chat_send_player(pname, S("Configuring TCB: Already existed at this position, it is now linked to this TCB marker")) else ildb.create_tcb_at(pos, pname) end local meta = minetest.get_meta(tcbnpos) meta:set_string("tcb_pos", minetest.pos_to_string(pos)) - meta:set_string("infotext", "TCB assigned to "..minetest.pos_to_string(pos)) - minetest.chat_send_player(pname, "Configuring TCB: Successfully configured TCB") + meta:set_string("infotext", S("TCB assigned to @1", minetest.pos_to_string(pos))) + minetest.chat_send_player(pname, S("Configuring TCB: Successfully configured TCB")) advtrains.interlocking.show_tcb_marker(pos) else - minetest.chat_send_player(pname, "Configuring TCB: This is not a normal two-connection rail! Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: This is not a normal two-connection rail! Aborted.")) end else - minetest.chat_send_player(pname, "Configuring TCB: Node is too far away. Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: Node is too far away. Aborted.")) end players_assign_tcb[pname] = nil end @@ -194,19 +197,19 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) ildb.assign_signal_to_tcbs(pos, sigd) -- use auto-naming advtrains.interlocking.add_autoname_to_tcbs(tcbs, pname) - minetest.chat_send_player(pname, "Configuring TCB: Successfully assigned signal.") + minetest.chat_send_player(pname, S("Configuring TCB: Successfully assigned signal.")) advtrains.interlocking.show_ip_form(pos, pname, true) else - minetest.chat_send_player(pname, "Configuring TCB: Internal error, TCBS doesn't exist. Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: Internal error, TCBS doesn't exist. Aborted.")) end else - minetest.chat_send_player(pname, "Configuring TCB: Cannot use static signals for routesetting. Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: Cannot use static signals for routesetting. Aborted.")) end else - minetest.chat_send_player(pname, "Configuring TCB: Not a compatible signal. Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: Not a compatible signal. Aborted.")) end else - minetest.chat_send_player(pname, "Configuring TCB: Node is too far away. Aborted.") + minetest.chat_send_player(pname, S("Configuring TCB: Node is too far away. Aborted.")) end players_assign_signal[pname] = nil end @@ -219,14 +222,14 @@ minetest.register_on_punchnode(function(pos, node, player, pointed_thing) local state = advtrains.getstate(pos) local ts = ildb.get_ts(ts_id) if ts and ts.fixed_locks then - minetest.chat_send_player(pname, minetest.pos_to_string(pos).." locks in state "..state) + minetest.chat_send_player(pname, S("@1 locks in state @2", minetest.pos_to_string(pos), state)) ts.fixed_locks[pts] = state else - minetest.chat_send_player(pname, "Error: TS modified, abort!") + minetest.chat_send_player(pname, S("Error: TS modified, abort!")) players_assign_fixedlocks[pname] = nil end else - minetest.chat_send_player(pname, "Setting fixed locks finished!") + minetest.chat_send_player(pname, S("Setting fixed locks finished!")) players_assign_fixedlocks[pname] = nil ildb.update_rs_cache(ts_id) advtrains.interlocking.show_ts_form(ts_id, pname) @@ -247,12 +250,12 @@ function advtrains.interlocking.self_tcb_make_after_place_callback(fail_silently local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then if not fail_silently_on_noprivs then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) end return end if ildb.get_tcb(pos) then - minetest.chat_send_player(pname, "TCB already existed at this position, now linked to this node") + minetest.chat_send_player(pname, S("TCB already existed at this position, now linked to this node")) else ildb.create_tcb_at(pos, pname) end @@ -261,7 +264,7 @@ function advtrains.interlocking.self_tcb_make_after_place_callback(fail_silently local tcbs = ildb.get_tcbs(sigd) -- make sure signal doesn't already exist if tcbs.signal then - minetest.chat_send_player(pname, "Signal on B side already assigned!") + minetest.chat_send_player(pname, S("Signal on B side already assigned!")) return end ildb.assign_signal_to_tcbs(pos, sigd) @@ -281,7 +284,7 @@ function advtrains.interlocking.self_tcb_make_can_dig_callback(is_signal) local pname = player and player:get_player_name() or "" -- need to duplicate logic of the regular "can_dig_or_modify_track()" function in core/tracks.lua if advtrains.get_train_at_pos(pos) then - minetest.chat_send_player(pname, "Can't remove track, a train is here!") + minetest.chat_send_player(pname, S("Can't remove track, a train is here!")) return false end -- end of standard checks @@ -335,7 +338,7 @@ function advtrains.interlocking.self_tcb_make_on_rightclick_callback(fail_silent local pname = player:get_player_name() if not minetest.check_player_privs(pname, "interlocking") then if not fail_silently_on_noprivs then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) end return end @@ -383,30 +386,30 @@ local function mktcbformspec(pos, side, tcbs, offset, pname) ts = ildb.get_ts(tcbs.ts_id) end if ts then - form = form.."label[0.5,"..offset..";Side "..btnpref..": "..minetest.formspec_escape(ts.name or tcbs.ts_id).."]" - form = form.."button[0.5,"..(offset+0.5)..";5,1;"..btnpref.."_gotots;Show track section]" + form = form.."label[0.5,"..offset..";"..S("Side @1", btnpref)..": "..minetest.formspec_escape(ts.name or tcbs.ts_id).."]" + form = form.."button[0.5,"..(offset+0.5)..";5,1;"..btnpref.."_gotots;"..S("Show track section").."]" else tcbs.ts_id = nil - form = form.."label[0.5,"..offset..";Side "..btnpref..": ".."End of interlocking]" - form = form.."button[0.5,"..(offset+0.5)..";5,1;"..btnpref.."_makeil;Create Interlocked Track Section]" + form = form.."label[0.5,"..offset..";Side "..btnpref..": "..S("End of interlocking").."]" + form = form.."button[0.5,"..(offset+0.5)..";5,1;"..btnpref.."_makeil;"..S("Create Interlocked Track Section").."]" end -- xlink if tcbs.xlink then - form = form.."label[0.5,"..(offset+1.5)..";Link:"..ildb.sigd_to_string(tcbs.xlink).."]" + form = form.."label[0.5,"..(offset+1.5)..";"..S("Link: @1", ildb.sigd_to_string(tcbs.xlink)).."]" form = form.."button[4.5,"..(offset+1.5)..";1,1;"..btnpref.."_xlinkdel;X]" else if players_assign_xlink[pname] then - form = form.."button[0.5,"..(offset+1.5)..";4,1;"..btnpref.."_xlinklink;Link "..ildb.sigd_to_string(players_assign_xlink[pname]).."]" + form = form.."button[0.5,"..(offset+1.5)..";4,1;"..btnpref.."_xlinklink;"..S("Link @1", ildb.sigd_to_string(players_assign_xlink[pname])).."]" form = form.."button[4.5,"..(offset+1.5)..";1,1;"..btnpref.."_xlinkabrt;X]" else - form = form.."label[0.5,"..(offset+1.5)..";No Link]" + form = form.."label[0.5,"..(offset+1.5)..";"..S("No Link").."]" form = form.."button[4.5,"..(offset+1.5)..";1,1;"..btnpref.."_xlinkadd;+]" end end if tcbs.signal then - form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_sigdia;Signalling]" + form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_sigdia;"..S("Signalling").."]" else - form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_asnsig;Assign a signal]" + form = form.."button[0.5,"..(offset+2.5)..";5,1;"..btnpref.."_asnsig;"..S("Assign a signal").."]" end return form end @@ -414,13 +417,13 @@ end function advtrains.interlocking.show_tcb_form(pos, pname) if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end local tcb = ildb.get_tcb(pos) if not tcb then return end - local form = "size[6,9] label[0.5,0.5;Track Circuit Break Configuration]" + local form = "size[6,9] label[0.5,0.5;"..S("Track Circuit Break Configuration").."]" form = form .. mktcbformspec(pos, 1, tcb[1], 1, pname) form = form .. mktcbformspec(pos, 2, tcb[2], 5, pname) @@ -487,14 +490,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) else if f_xlinkadd[connid] then players_assign_xlink[pname] = {p=pos, s=connid} - minetest.chat_send_player(pname, "TCB Link: Select linked TCB now!") + minetest.chat_send_player(pname, S("TCB Link: Select linked TCB now!")) minetest.close_formspec(pname, formname) return -- to not reopen form end end end if f_asnsig[connid] and not tcbs.signal then - minetest.chat_send_player(pname, "Configuring TCB: Please punch the signal to assign.") + minetest.chat_send_player(pname, S("Configuring TCB: Please punch the signal to assign.")) players_assign_signal[pname] = {p=pos, s=connid} minetest.close_formspec(pname, formname) return @@ -516,15 +519,15 @@ end) function advtrains.interlocking.show_ts_form(ts_id, pname) if not minetest.check_player_privs(pname, "interlocking") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end local ts = ildb.get_ts(ts_id) if not ts_id then return end - local form = "size[10.5,10]label[0.5,0.5;Track Section Detail - "..ts_id.."]" - form = form.."field[0.8,2;5.2,1;name;Section name;"..minetest.formspec_escape(ts.name or "").."]" - form = form.."button[5.5,1.7;1,1;setname;Set]" + local form = "size[10.5,10]label[0.5,0.5;"..S("Track Section Detail - @1", ts_id).."]" + form = form.."field[0.8,2;5.2,1;name;"..S("Section name")..";"..minetest.formspec_escape(ts.name or "").."]" + form = form.."button[5.5,1.7;1,1;setname;"..S("Set").."]" local hint local strtab = {} @@ -533,7 +536,7 @@ function advtrains.interlocking.show_ts_form(ts_id, pname) advtrains.interlocking.show_tcb_marker(sigd.p) end - form = form.."label[0.5,2.5;Boundary TCBs:]" + form = form.."label[0.5,2.5;"..S("Boundary TCBs:").."]" form = form.."textlist[0.5,3;4,3;tcblist;"..table.concat(strtab, ",").."]" -- additional route locks (e.g. for level crossings) @@ -545,36 +548,36 @@ function advtrains.interlocking.show_ts_form(ts_id, pname) minetest.pos_to_string(advtrains.decode_pos(pts)).." = "..state) end end - form = form.."label[5.5,2.5;Fixed route locks (e.g. level crossings):]" + form = form.."label[5.5,2.5;"..S("Fixed route locks (e.g. level crossings):").."]" form = form.."textlist[5.5,3;4,3;fixedlocks;"..table.concat(strtab, ",").."]" if ildb.may_modify_ts(ts) then - form = form.."button[5.5,6;2,1;flk_add;Add locks]" - form = form.."button[7.5,6;2,1;flk_clear;Clear locks]" + form = form.."button[5.5,6;2,1;flk_add;"..S("Add locks").."]" + form = form.."button[7.5,6;2,1;flk_clear;"..S("Clear locks").."]" - form = form.."button[5.5,8;4,1;remove;Remove Section]" - form = form.."tooltip[remove;This will remove the track section and set all its end points to End Of Interlocking]" + form = form.."button[5.5,8;4,1;remove;"..S("Remove Section").."]" + form = form.."tooltip[remove;"..S("This will remove the track section and set all its end points to End Of Interlocking").."]" else hint=3 end if ts.route then - form = form.."label[0.5,6.1;Route is set: "..ts.route.rsn.."]" + form = form.."label[0.5,6.1;"..S("Route is set: ")..ts.route.rsn.."]" elseif ts.route_post then - form = form.."label[0.5,6.1;Section holds "..#(ts.route_post.lcks or {}).." route locks.]" + form = form.."label[0.5,6.1;"..S("Section holds @1 route locks.", #(ts.route_post.lcks or {})).."]" end -- occupying trains if ts.trains and #ts.trains>0 then - form = form.."label[0.5,7.1;Trains on this section:]" + form = form.."label[0.5,7.1;"..S("Trains on this section:").."]" form = form.."textlist[0.5,7.7;3,2;trnlist;"..table.concat(ts.trains, ",").."]" else - form = form.."label[0.5,7.1;No trains on this section.]" + form = form.."label[0.5,7.1;"..S("No trains on this section.").."]" end - form = form.."button[5.5,7;4,1;reset;Reset section state]" + form = form.."button[5.5,7;4,1;reset;"..S("Reset section state").."]" if hint == 3 then - form = form.."label[0.5,0.75;You cannot modify track sections when a route is set or a train is on the section.]" + form = form.."label[0.5,0.75;"..S("You cannot modify track sections when a route is set or a train is on the section.").."]" --form = form.."label[0.5,1;Trying to unlink a TCB directly connected to this track will not work.]" end @@ -615,7 +618,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) ts.fixed_locks = {} end players_assign_fixedlocks[pname] = ts_id - minetest.chat_send_player(pname, "Punch components to add fixed locks. (punch anything else = end)") + minetest.chat_send_player(pname, S("Punch components to add fixed locks. (punch anything else = end)")) minetest.close_formspec(pname, formname) return elseif fields.flk_clear then @@ -625,10 +628,10 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields.reset then -- User requested resetting the section -- Show him what this means... - local form = "size[7,5]label[0.5,0.5;Reset track section]" - form = form.."label[0.5,1;This will clear the list of trains\nand the routesetting status of this section.\nAre you sure?]" - form = form.."button_exit[0.5,2.5; 5,1;reset;Yes]" - form = form.."button_exit[0.5,3.5; 5,1;cancel;Cancel]" + local form = "size[7,5]label[0.5,0.5;"..S("Reset track section").."]" + form = form.."label[0.5,1;"..S("This will clear the list of trains\nand the routesetting status of this section.\nAre you sure?").."]" + form = form.."button_exit[0.5,2.5; 5,1;reset;"..S("Yes").."]" + form = form.."button_exit[0.5,3.5; 5,1;cancel;"..S("Cancel").."]" minetest.show_formspec(pname, "at_il_tsreset_"..ts_id, form) return end @@ -651,7 +654,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local tcbs = ildb.get_tcbs(sigd) advtrains.interlocking.signal.update_route_aspect(tcbs) end - minetest.chat_send_player(pname, "Reset track section "..ts_id.."!") + minetest.chat_send_player(pname, S("Reset track section @1!", ts_id)) end end) @@ -764,11 +767,11 @@ function advtrains.interlocking.check_route_valid(route, sigd) while c_sigd and i<=#route do c_tcbs = ildb.get_tcbs(c_sigd) if not c_tcbs then - return false, "No TCBS at "..sigd_to_string(c_sigd) + return false, S("TCB at @1 is missing", sigd_to_string(c_sigd)) end c_ts_id = c_tcbs.ts_id if not c_ts_id then - return false, "No track section adjacent to "..sigd_to_string(c_sigd) + return false, S("Track section after @1 missing", sigd_to_string(c_sigd)) end c_ts = ildb.get_ts(c_ts_id) @@ -778,7 +781,7 @@ function advtrains.interlocking.check_route_valid(route, sigd) for pts, state in pairs(c_rseg.locks) do local pos = advtrains.decode_pos(pts) if not advtrains.is_passive(pos) then - return false, "No passive component for lock at "..pts + return false, S("Turnout/component missing at @1", minetest.pos_to_string(pos)) end end end @@ -787,11 +790,11 @@ function advtrains.interlocking.check_route_valid(route, sigd) if nvar then local re_tcbs = ildb.get_tcbs({p = nvar.p, s = (nvar.s==1) and 2 or 1}) if not re_tcbs then - return false, "TCB at "..minetest.pos_to_string(nvar.p).." is missing" + return false, S("TCB at @1 is missing", minetest.pos_to_string(nvar.p)) elseif not re_tcbs.ts_id then - return false, "TCB at "..minetest.pos_to_string(nvar.p).." is not assigned to previous track section" + return false, S("TCB at @1 is not assigned to previous track section", minetest.pos_to_string(nvar.p)) elseif re_tcbs.ts_id~=c_ts_id then - return false, "TCB at "..minetest.pos_to_string(nvar.p).." has different section than previous TCB" + return false, S("TCB at @1 has different section than previous TCB", minetest.pos_to_string(nvar.p)) end end -- advance @@ -800,11 +803,11 @@ function advtrains.interlocking.check_route_valid(route, sigd) end -- check end TCB if not c_sigd then - return false, "Final TCBS unset (legacy-style buffer route)" + return false, S("Final TCBS unset (legacy-style buffer route)") end c_tcbs = ildb.get_tcbs(c_sigd) if not c_tcbs then - return false, "Final TCBS missing at "..sigd_to_string(c_sigd) + return false, S("TCB at @1 is missing", sigd_to_string(c_sigd)) end return true, nil, c_sigd end @@ -818,7 +821,7 @@ local p_open_sig_form = {} function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, called_from_form_update) if not minetest.check_player_privs(pname, "train_operator") then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end local hasprivs = minetest.check_player_privs(pname, "interlocking") @@ -827,9 +830,9 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle if not tcbs.signal then return end if not tcbs.routes then tcbs.routes = {} end - local form = "size[7,10.25]label[0.5,0.5;Signal at "..minetest.pos_to_string(sigd.p).."]" - form = form.."field[0.8,1.5;5.2,1;name;Signal name;"..minetest.formspec_escape(tcbs.signal_name or "").."]" - form = form.."button[5.5,1.2;1,1;setname;Set]" + local form = "size[7,10.25]label[0.5,0.5;"..S("Signal at @1", minetest.pos_to_string(sigd.p)).."]" + form = form.."field[0.8,1.5;5.2,1;name;"..S("Signal name")..";"..minetest.formspec_escape(tcbs.signal_name or "").."]" + form = form.."button[5.5,1.2;1,1;setname;"..S("Set").."]" if tcbs.routeset then if type(tcbs.routeset)=="table" then @@ -843,7 +846,7 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle end rtenames[midx] = rte.name end - form = form.."label[0.5,2.5;Multiple routes are requested (first available is set):]" + form = form.."label[0.5,2.5;"..S("Multiple routes are requested (first available is set):").."]" form = form.."label[0.5,3.0;"..minetest.formspec_escape(table.concat(rtenames,", ")).."]" else local rte = tcbs.routes[tcbs.routeset] @@ -852,26 +855,26 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle tcbs.routeset = nil return end - form = form.."label[0.5,2.5;A route is requested from this signal:]" + form = form.."label[0.5,2.5;"..S("A route is requested from this signal:").."]" form = form.."label[0.5,3.0;"..minetest.formspec_escape(rte.name).."]" end if tcbs.route_committed then - form = form.."label[0.5,3.5;Route has been set.]" + form = form.."label[0.5,3.5;"..S("Route has been set.").."]" else - form = form.."label[0.5,3.5;Waiting for route to be set...]" + form = form.."label[0.5,3.5;"..S("Waiting for route to be set...").."]" if tcbs.route_rsn then form = form.."label[0.5,4;"..minetest.formspec_escape(tcbs.route_rsn).."]" end end if not tcbs.route_auto then - form = form.."button[0.5,7; 5,1;auto;Enable Automatic Working]" + form = form.."button[0.5,7; 5,1;auto;"..S("Enable Automatic Working").."]" else - form = form.."label[0.5,7 ;Automatic Working is active.]" - form = form.."label[0.5,7.3;Route is re-set when a train passed.]" - form = form.."button[0.5,7.7; 5,1;noauto;Disable Automatic Working]" + form = form.."label[0.5,7 ;"..S("Automatic Working is active.").."]" + form = form.."label[0.5,7.3;"..S("Route is re-set when a train passed.").."]" + form = form.."button[0.5,7.7; 5,1;noauto;"..S("Disable Automatic Working").."]" end - form = form.."button[0.5,6; 5,1;cancelroute;Cancel Route]" + form = form.."button[0.5,6; 5,1;cancelroute;"..S("Cancel Route").."]" else if not tcbs.route_origin then if #tcbs.routes > 0 then @@ -883,7 +886,7 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle local clr = "" if not valid then clr = "#FF5555" - rname = rname.." (invalid)" + rname = rname..S(" (invalid)") elseif route.ars then clr = "#FFFF55" if route.ars.default then @@ -892,35 +895,35 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle end strtab[#strtab+1] = clr .. minetest.formspec_escape(rname) end - form = form.."label[0.5,2.5;Routes:]" + form = form.."label[0.5,2.5;"..S("Routes:").."]" form = form.."textlist[0.5,3;5,3;rtelist;"..table.concat(strtab, ",") if sel_rte then form = form .. ";" .. sel_rte .."]" - form = form.."button[0.5,6; 5,1;setroute;Set Route]" - form = form.."button[0.5,7;2,1;dsproute;Show]" + form = form.."button[0.5,6; 5,1;setroute;"..S("Set Route").."]" + form = form.."button[0.5,7;2,1;dsproute;"..S("Show").."]" if hasprivs then - form = form.."button[5.5,3.3;1,0.3;setarsdefault;D]tooltip[setarsdefault;Set ARS default route]" - form = form.."button[3.5,7;2,1;editroute;Edit]" + form = form.."button[5.5,3.3;1,0.3;setarsdefault;D]tooltip[setarsdefault;"..S("Set ARS default route").."]" + form = form.."button[3.5,7;2,1;editroute;"..S("Edit").."]" if sel_rte > 1 then form = form .. "button[5.5,4;1,0.3;moveup;↑]" end if sel_rte < #strtab then form = form .. "button[5.5,4.7;1,0.3;movedown;↓]" end - form = form.."button[5.5,5.4;1,0.3;delroute;X]tooltip[delroute;Delete this route]" + form = form.."button[5.5,5.4;1,0.3;delroute;X]tooltip[delroute;"..S("Delete this route").."]" end else form = form .. "]" if tcbs.ars_disabled then - form = form.."label[0.5,6 ;NOTE: ARS is disabled.]" - form = form.."label[0.5,6.5;Routes are not automatically set.]" + form = form.."label[0.5,6 ;"..S("NOTE: ARS is disabled.").."]" + form = form.."label[0.5,6.5;"..S("Routes are not automatically set.").."]" end end if hasprivs then - form = form.."button[0.5,8;2.5,1;smartroute;Smart Route]" - form = form.."button[ 3,8;2.5,1;newroute;New (Manual)]" - form = form..string.format("checkbox[0.5,8.75;ars;Automatic routesetting;%s]", not tcbs.ars_disabled) - form = form..string.format("checkbox[0.5,9.25;dstarstrig;Distant signal triggers ARS;%s]", not tcbs.no_dst_ars_trig) + form = form.."button[0.5,8;2.5,1;smartroute;"..S("Smart Route").."]" + form = form.."button[ 3,8;2.5,1;newroute;"..S("New (Manual)").."]" + form = form..string.format("checkbox[0.5,8.75;ars;"..S("Automatic routesetting")..";%s]", not tcbs.ars_disabled) + form = form..string.format("checkbox[0.5,9.25;dstarstrig;"..S("Distant signal triggers ARS")..";%s]", not tcbs.no_dst_ars_trig) end else -- no route is active, and no route is so far defined @@ -928,29 +931,27 @@ function advtrains.interlocking.show_signalling_form(sigd, pname, sel_rte, calle local caps = advtrains.interlocking.signal.get_signal_cap_level(tcbs.signal) if caps >= 4 then -- offer user the "block signal mode" - form = form.."label[0.5,2.5;No routes are yet defined.]" + form = form.."label[0.5,2.5;"..S("No routes are yet defined.").."]" if hasprivs then - form = form.."button[0.5,4;2.5,1;smartroute;Smart Route]" - form = form.."button[ 3,4;2.5,1;newroute;New (Manual)]" + form = form.."button[0.5,4;2.5,1;smartroute;"..S("Smart Route").."]" + form = form.."button[ 3,4;2.5,1;newroute;"..S("New (Manual)").."]" end elseif caps >= 3 then -- it's a buffer! - form = form.."label[0.5,2.5;This is an always-halt signal (e.g. a buffer)\n" - .."No routes can be set from here.]" + form = form.."label[0.5,2.5;"..S("This is an always-halt signal (e.g. a buffer)\nNo routes can be set from here.").."]" else -- signal caps say it cannot be route start/end - form = form.."label[0.5,2.5;This is a pure distant signal\n" - .."No route is currently set through.]" + form = form.."label[0.5,2.5;"..S("This is a pure distant signal\nNo route is currently set through.").."]" end end elseif sigd_equal(tcbs.route_origin, sigd) then -- something has gone wrong: tcbs.routeset should have been set... - form = form.."label[0.5,2.5;Inconsistent state: route_origin is same TCBS but no route set. Try again.]" + form = form.."label[0.5,2.5;".."Inconsistent state: route_origin is same TCBS but no route set. Try again.".."]" ilrs.cancel_route_from(sigd) else - form = form.."label[0.5,2.5;Route is set over this signal by:\n"..sigd_to_string(tcbs.route_origin).."]" - form = form.."label[0.5,4;Wait for this route to be cancelled in order to do anything here.]" + form = form.."label[0.5,2.5;"..S("Route is set over this signal by:").."\n"..sigd_to_string(tcbs.route_origin).."]" + form = form.."label[0.5,4;"..S("Wait for this route to be cancelled in order to do anything here.").."]" end end sig_pselidx[pname] = sel_rte @@ -1074,7 +1075,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end if fields.delroute and hasprivs then if tcbs.routes[sel_rte] and tcbs.routes[sel_rte].ars then - minetest.chat_send_player(pname, "Cannot delete route which has ARS rules, please review and then delete through edit dialog!") + minetest.chat_send_player(pname, S("Cannot delete route which has ARS rules, please review and then delete through edit dialog!")) else table.remove(tcbs.routes,sel_rte) end diff --git a/advtrains_interlocking/tool.lua b/advtrains_interlocking/tool.lua index 5ceae04..d7a42b4 100644 --- a/advtrains_interlocking/tool.lua +++ b/advtrains_interlocking/tool.lua @@ -1,21 +1,24 @@ -- tool.lua -- Interlocking tool +-- Get current translator +local S = advtrains.interlocking.translate + local ilrs = advtrains.interlocking.route local function node_right_click(pos, pname, player) if advtrains.is_passive(pos) then - local form = "size[7,5]label[0.5,0.5;Route lock inspector]" + local form = "size[7,5]label[0.5,0.5;"..S("Route lock inspector").."]" local pts = advtrains.encode_pos(pos) local rtl = ilrs.has_route_lock(pts) if rtl then - form = form.."label[0.5,1;Route locks currently put:\n"..rtl.."]" - form = form.."button_exit[0.5,3.5; 5,1;clear;Clear]" + form = form.."label[0.5,1;"..S("Route locks currently put:").."\n"..rtl.."]" + form = form.."button_exit[0.5,3.5; 5,1;clear;"..S("Clear").."]" else - form = form.."label[0.5,1;No route locks set]" - form = form.."button_exit[0.5,3.5; 5,1;emplace;Emplace manual lock]" + form = form.."label[0.5,1;"..S("No route locks set").."]" + form = form.."button_exit[0.5,3.5; 5,1;emplace;"..S("Emplace manual lock").."]" end minetest.show_formspec(pname, "at_il_rtool_"..pts, form) @@ -25,7 +28,7 @@ local function node_right_click(pos, pname, player) -- If not a turnout, check the track section and show a form local node_ok, conns, rail_y=advtrains.get_rail_info_at(pos) if not node_ok then - minetest.chat_send_player(pname, "Node is not a track!") + minetest.chat_send_player(pname, S("Node is not a track!")) return end if advtrains.interlocking.db.get_tcb(pos) then @@ -37,14 +40,14 @@ local function node_right_click(pos, pname, player) if ts_id then advtrains.interlocking.show_ts_form(ts_id, pname) else - minetest.chat_send_player(pname, "No track section at this location!") + minetest.chat_send_player(pname, S("No track section at this location!")) end end local function node_left_click(pos, pname, player) local node_ok, conns, rail_y=advtrains.get_rail_info_at(pos) if not node_ok then - minetest.chat_send_player(pname, "Node is not a track!") + minetest.chat_send_player(pname, S("Node is not a track!")) return end @@ -62,13 +65,13 @@ local function node_left_click(pos, pname, player) advtrains.interlocking.db.update_rs_cache(ts_id) advtrains.interlocking.highlight_track_section(pos) else - minetest.chat_send_player(pname, "No track section at this location!") + minetest.chat_send_player(pname, S("No track section at this location!")) end end minetest.register_craftitem("advtrains_interlocking:tool",{ - description = "Interlocking tool\nPunch: Highlight track section\nPlace: check route locks/show track section info", + description = S("Interlocking tool\nPunch: Highlight track section\nPlace: check route locks/show track section info"), groups = {cracky=1}, -- key=name, value=rating; rating=1..3. inventory_image = "at_il_tool.png", wield_image = "at_il_tool.png", @@ -79,7 +82,7 @@ minetest.register_craftitem("advtrains_interlocking:tool",{ return end if not minetest.check_player_privs(pname, {interlocking=true}) then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end if pointed_thing.type=="node" then @@ -93,7 +96,7 @@ minetest.register_craftitem("advtrains_interlocking:tool",{ return end if not minetest.check_player_privs(pname, {interlocking=true}) then - minetest.chat_send_player(pname, "Insufficient privileges to use this!") + minetest.chat_send_player(pname, S("Insufficient privileges to use this!")) return end if pointed_thing.type=="node" then @@ -129,4 +132,4 @@ minetest.register_craft({ output = "advtrains_interlocking:tool", type = "shapeless", recipe = {"dye:green","advtrains:trackworker", "advtrains_interlocking:tcb_node"} -})
\ No newline at end of file +}) diff --git a/advtrains_interlocking/tsr_rail.lua b/advtrains_interlocking/tsr_rail.lua index c1e3c1c..5a808fc 100644 --- a/advtrains_interlocking/tsr_rail.lua +++ b/advtrains_interlocking/tsr_rail.lua @@ -3,7 +3,8 @@ -- Simple rail whose only purpose is to place a TSR on the position, as a temporary solution until the timetable system covers everything. -- This code resembles the code in lines/stoprail.lua -local S = attrans +-- Get current translator +local S = advtrains.interlocking.translate local function updateform(pos) local meta = minetest.get_meta(pos) |