Merge remote-tracking branch 'origin/l10n'
This commit is contained in:
commit
96f4ac7f6c
|
@ -6,6 +6,7 @@ packages:
|
||||||
- unzip
|
- unzip
|
||||||
- wget
|
- wget
|
||||||
- lua-busted
|
- lua-busted
|
||||||
|
- luajit
|
||||||
sources :
|
sources :
|
||||||
- https://git.sr.ht/~gpcf/advtrains
|
- https://git.sr.ht/~gpcf/advtrains
|
||||||
|
|
||||||
|
@ -40,3 +41,8 @@ tasks:
|
||||||
- run_test_world: |
|
- run_test_world: |
|
||||||
echo "bind_address = 127.0.0.1" > minetest.conf
|
echo "bind_address = 127.0.0.1" > minetest.conf
|
||||||
minetestserver --port 31111 --gameid minetest_game --config ~/minetest.conf --world ~/.minetest/worlds/advtrains_testworld --logfile ~/minetest.log
|
minetestserver --port 31111 --gameid minetest_game --config ~/minetest.conf --world ~/.minetest/worlds/advtrains_testworld --logfile ~/minetest.log
|
||||||
|
- test_po_files : |
|
||||||
|
cd advtrains/advtrains
|
||||||
|
for f in po/*.po; do
|
||||||
|
luajit -e 'require("poconvert").from_string("advtrains", io.input():read("*a"))' < $f
|
||||||
|
done
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
## Eclipse project files & directories
|
## Eclipse project files & directories
|
||||||
.project
|
.project
|
||||||
.settings
|
.settings
|
||||||
|
advtrains/locale/*.tr
|
||||||
|
advtrains/po/*~
|
||||||
|
|
|
@ -106,7 +106,7 @@ local apn_func=function(pos)
|
||||||
-- FIX for long-persisting ndb bug: there's no node in parameter 2 of this function!
|
-- FIX for long-persisting ndb bug: there's no node in parameter 2 of this function!
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
if meta then
|
if meta then
|
||||||
meta:set_string("infotext", attrans("ATC controller, unconfigured."))
|
meta:set_string("infotext", attrans("Unconfigured ATC controller"))
|
||||||
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
|
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -233,7 +233,7 @@ local matchptn={
|
||||||
advtrains.train_ensure_init(id, train)
|
advtrains.train_ensure_init(id, train)
|
||||||
-- no one minds if this failed... this shouldn't even be called without train being initialized...
|
-- no one minds if this failed... this shouldn't even be called without train being initialized...
|
||||||
else
|
else
|
||||||
atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving!"))
|
atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving."))
|
||||||
end
|
end
|
||||||
return 1
|
return 1
|
||||||
end,
|
end,
|
||||||
|
@ -245,11 +245,11 @@ local matchptn={
|
||||||
end,
|
end,
|
||||||
["K"] = function(id, train)
|
["K"] = function(id, train)
|
||||||
if train.door_open == 0 then
|
if train.door_open == 0 then
|
||||||
atwarn(sid(id), attrans("ATC Kick command warning: Doors closed"))
|
atwarn(sid(id), attrans("ATC Kick command warning: doors are closed."))
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
if train.velocity > 0 then
|
if train.velocity > 0 then
|
||||||
atwarn(sid(id), attrans("ATC Kick command warning: Train moving"))
|
atwarn(sid(id), attrans("ATC Kick command warning: train moving."))
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
local tp = train.trainparts
|
local tp = train.trainparts
|
||||||
|
|
|
@ -26,7 +26,7 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
if not minetest.check_player_privs(placer, {train_operator = true }) then
|
if not minetest.check_player_privs(placer, {train_operator = true }) then
|
||||||
minetest.chat_send_player(pname, "You don't have the train_operator privilege.")
|
minetest.chat_send_player(pname, S("You do not have the @1 privilege.", "train_operator"))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
if not minetest.check_player_privs(placer, {train_admin = true }) and minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
|
if not minetest.check_player_privs(placer, {train_admin = true }) and minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
|
||||||
|
@ -38,7 +38,7 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
|
|
||||||
local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, {default=true})
|
local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, {default=true})
|
||||||
if not prevpos then
|
if not prevpos then
|
||||||
minetest.chat_send_player(pname, "The track you are trying to place the wagon on is not long enough!")
|
minetest.chat_send_player(pname, attrans("The track you are trying to place the wagon on is not long enough."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -49,12 +49,12 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
end
|
end
|
||||||
local clipboard = meta:get_string("clipboard")
|
local clipboard = meta:get_string("clipboard")
|
||||||
if (clipboard == "") then
|
if (clipboard == "") then
|
||||||
minetest.chat_send_player(pname, "The clipboard is empty.");
|
minetest.chat_send_player(pname, attrans("The clipboard is empty."));
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
clipboard = minetest.deserialize(clipboard)
|
clipboard = minetest.deserialize(clipboard)
|
||||||
if (clipboard.wagons == nil) then
|
if (clipboard.wagons == nil) then
|
||||||
minetest.chat_send_player(pname, "The clipboard is empty.");
|
minetest.chat_send_player(pname, attrans("The clipboard is empty."));
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
local train = advtrains.trains[id]
|
local train = advtrains.trains[id]
|
||||||
train.off_track = train.end_index<train.path_trk_b
|
train.off_track = train.end_index<train.path_trk_b
|
||||||
if (train.off_track) then
|
if (train.off_track) then
|
||||||
minetest.chat_send_player(pname, "Back of train would end up off track, cancelling.")
|
minetest.chat_send_player(pname, attrans("Back of train would end up off track, cancelling."))
|
||||||
advtrains.remove_train(id)
|
advtrains.remove_train(id)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -89,19 +89,19 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
|
|
||||||
local le = pointed_thing.ref:get_luaentity()
|
local le = pointed_thing.ref:get_luaentity()
|
||||||
if (le == nil) then
|
if (le == nil) then
|
||||||
minetest.chat_send_player(user:get_player_name(), "No such lua entity!")
|
minetest.chat_send_player(user:get_player_name(), attrans("No such lua entity."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local wagon = advtrains.wagons[le.id]
|
local wagon = advtrains.wagons[le.id]
|
||||||
if (not (le.id and advtrains.wagons[le.id])) then
|
if (not (le.id and advtrains.wagons[le.id])) then
|
||||||
minetest.chat_send_player(user:get_player_name(), string.format("No such wagon: %s", le.id))
|
minetest.chat_send_player(user:get_player_name(), attrans("No such wagon: @1.", le.id))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local train = advtrains.trains[wagon.train_id]
|
local train = advtrains.trains[wagon.train_id]
|
||||||
if (not train) then
|
if (not train) then
|
||||||
minetest.chat_send_player(user:get_player_name(), string.format("No such train: %s", wagon.train_id))
|
minetest.chat_send_player(user:get_player_name(), attrans("No such train: @1.", wagon.train_id))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ minetest.register_tool("advtrains:copytool", {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
meta:set_string("clipboard", minetest.serialize(clipboard))
|
meta:set_string("clipboard", minetest.serialize(clipboard))
|
||||||
minetest.chat_send_player(user:get_player_name(), attrans("Train copied!"))
|
minetest.chat_send_player(user:get_player_name(), attrans("Train copied."))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
|
@ -184,8 +184,8 @@ end
|
||||||
function advtrains.safe_couple_trains(train1, t1_is_front, train2, t2_is_front, pname)
|
function advtrains.safe_couple_trains(train1, t1_is_front, train2, t2_is_front, pname)
|
||||||
|
|
||||||
if pname and not minetest.check_player_privs(pname, "train_operator") then
|
if pname and not minetest.check_player_privs(pname, "train_operator") then
|
||||||
minetest.chat_send_player(pname, "Missing train_operator privilege")
|
minetest.chat_send_player(pname, S("You are not allowed to couple trains without the train_operator privilege."))
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local wck_t1, wck_t2
|
local wck_t1, wck_t2
|
||||||
|
@ -335,11 +335,11 @@ function advtrains.check_matching_coupler_types(t1, t1_front, t2, t2_front)
|
||||||
for typ,_ in pairs(t1_cplt) do
|
for typ,_ in pairs(t1_cplt) do
|
||||||
table.insert(t1_cplhr, advtrains.coupler_types[typ] or typ)
|
table.insert(t1_cplhr, advtrains.coupler_types[typ] or typ)
|
||||||
end
|
end
|
||||||
if #t1_cplhr==0 then t1_cplhr[1]=attrans("<none>") end
|
if #t1_cplhr==0 then t1_cplhr[1]=attrans("<No coupler>") end
|
||||||
for typ,_ in pairs(t2_cplt) do
|
for typ,_ in pairs(t2_cplt) do
|
||||||
table.insert(t2_cplhr, advtrains.coupler_types[typ] or typ)
|
table.insert(t2_cplhr, advtrains.coupler_types[typ] or typ)
|
||||||
end
|
end
|
||||||
if #t2_cplhr==0 then t2_cplhr[1]=attrans("<none>") end
|
if #t2_cplhr==0 then t2_cplhr[1]=attrans("<No coupler>") end
|
||||||
return false, attrans("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
|
return false, attrans("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ core.register_craftitem("advtrains:boiler", {
|
||||||
|
|
||||||
|
|
||||||
core.register_craftitem("advtrains:driver_cab", {
|
core.register_craftitem("advtrains:driver_cab", {
|
||||||
description = attrans("driver's cab"),
|
description = attrans("Driver's cab"),
|
||||||
inventory_image = "advtrains_driver_cab.png",
|
inventory_image = "advtrains_driver_cab.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,6 @@ Copyright (C) 2016-2020 Moritz Blei (orwell96) and contributors
|
||||||
local lot = os.clock()
|
local lot = os.clock()
|
||||||
minetest.log("action", "[advtrains] Loading...")
|
minetest.log("action", "[advtrains] Loading...")
|
||||||
|
|
||||||
-- There is no need to support 0.4.x anymore given that the compatitability with it is already broken by 1bb1d825f46af3562554c12fba35a31b9f7973ff
|
|
||||||
attrans = minetest.get_translator ("advtrains")
|
|
||||||
|
|
||||||
--advtrains
|
--advtrains
|
||||||
advtrains = {trains={}, player_to_train_mapping={}}
|
advtrains = {trains={}, player_to_train_mapping={}}
|
||||||
|
|
||||||
|
@ -181,7 +178,7 @@ function assertt(var, typ)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(advtrains.modpath.."/helpers.lua");
|
dofile(advtrains.modpath.."/helpers.lua")
|
||||||
--dofile(advtrains.modpath.."/debugitems.lua");
|
--dofile(advtrains.modpath.."/debugitems.lua");
|
||||||
|
|
||||||
advtrains.meseconrules =
|
advtrains.meseconrules =
|
||||||
|
@ -201,6 +198,10 @@ advtrains.meseconrules =
|
||||||
|
|
||||||
advtrains.fpath=minetest.get_worldpath().."/advtrains"
|
advtrains.fpath=minetest.get_worldpath().."/advtrains"
|
||||||
|
|
||||||
|
advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua")
|
||||||
|
advtrains.poconvert.from_flat("advtrains")
|
||||||
|
attrans = minetest.get_translator("advtrains")
|
||||||
|
|
||||||
advtrains.speed = dofile(advtrains.modpath.."/speed.lua")
|
advtrains.speed = dofile(advtrains.modpath.."/speed.lua")
|
||||||
advtrains.texture = dofile(advtrains.modpath.."/texture.lua")
|
advtrains.texture = dofile(advtrains.modpath.."/texture.lua")
|
||||||
|
|
||||||
|
@ -234,7 +235,6 @@ end
|
||||||
|
|
||||||
dofile(advtrains.modpath.."/lzb.lua")
|
dofile(advtrains.modpath.."/lzb.lua")
|
||||||
|
|
||||||
|
|
||||||
--load/save
|
--load/save
|
||||||
|
|
||||||
-- backup variables, used if someone should accidentally delete a sub-mod
|
-- backup variables, used if someone should accidentally delete a sub-mod
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../po/README.md
|
|
@ -1,78 +0,0 @@
|
||||||
# textdomain: advtrains
|
|
||||||
This wagon is owned by @1, you can't destroy it.=Dieser Waggon gehört @1, du kannst ihn nicht abbauen.
|
|
||||||
Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=Warnung: Du erhältst nur etwas Stahl zurück. Wenn du sicher bist, dass du den Waggon zerstören willst, halte 'Schleichen' und klicke links.
|
|
||||||
Show Inventory=Zeige Inventar
|
|
||||||
Select seat:=Wähle einen Sitzplatz aus:
|
|
||||||
ATC controller, unconfigured.=Zugbeeinflussungsschiene, nicht konfiguiert.
|
|
||||||
ATC controller=Zugbeeinflussungsschiene
|
|
||||||
ATC controller, mode @1@nChannel: @2=Zugbeeinflussungsschiene in Betriebsart "@1"@nKanal: @2
|
|
||||||
ATC controller, mode @1@nCommand: @2=Zugbeeinflussungsschiene in Betriebsart "@1"@nBefehl: @2
|
|
||||||
Command=Befehl
|
|
||||||
Command (on)=Befehl (wenn ein)
|
|
||||||
Digiline channel=Digiline-Kanal
|
|
||||||
Save=Speichern
|
|
||||||
ATC Reverse command warning: didn't reverse train, train moving!=Zugbeeinflussung - Warnung: Befehl 'R' nicht ausgeführt, Zug in Bewegung!
|
|
||||||
ATC command syntax error: I statement not closed: @1=Zugbeeinflussung - Syntaxfehler: I-Anweisung nicht geschlossen: @1
|
|
||||||
ATC command parse error: Unknown command: @1=Zugbeeinflussung - Fehler: Unbekannter Befehl: @1
|
|
||||||
This position is protected!=Diese Position ist geschützt!
|
|
||||||
You need to own at least one neighboring wagon to destroy this couple.=Du musst Besitzer eines angrenzenden Waggons sein, um hier abzukuppeln.
|
|
||||||
@1 Platform (low)=Niedriger @1-Bahnsteig
|
|
||||||
@1 Platform (high)=Hoher @1-Bahnsteig
|
|
||||||
off=aus
|
|
||||||
on=ein
|
|
||||||
Lampless Signal (@1)=Mechanisches Signal (@1)
|
|
||||||
Signal (@1)=Lichtsignal (@1)
|
|
||||||
Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=Schienenwerkzeug@n@nLinksklick: Schienentyp ändern, Rechtsklick: Objekt drehen.
|
|
||||||
This node can't be rotated using the trackworker!=Kann diesen Block nicht mit dem Schienenwerkzeug drehen.
|
|
||||||
This node can't be changed using the trackworker!=Kann diesen Block nicht mit dem Schienenwerkzeug bearbeiten.
|
|
||||||
Can't place: not pointing at node=Kann nicht platzieren: Du zeigst nicht auf einen Block.
|
|
||||||
Can't place: space occupied!=Kann nicht platzieren: Platz besetzt.
|
|
||||||
Can't place: protected position!=Kann nicht platzieren: Position geschützt.
|
|
||||||
Can't place: Not enough slope items left (@1 required)=Kann nicht platzieren: nicht genug Steigungsblöcke, es werden insgesamt @1 benötigt.
|
|
||||||
Can't place: There's no slope of length @1=Kann nicht platzieren: Keine Steigung der Länge @1 definiert.
|
|
||||||
Can't place: no supporting node at upper end.=Kann nicht platzieren: kein unterstützender Block am Ende der Steigung.
|
|
||||||
Deprecated Track=ausrangierte Schiene, nicht verwenden.
|
|
||||||
Track=Schiene
|
|
||||||
Bumper=Prellbock
|
|
||||||
Detector Rail=Detektorschiene
|
|
||||||
Speed:=Geschw.:
|
|
||||||
Target:=Zielges.:
|
|
||||||
@1 Slope=@1 Steigung
|
|
||||||
Can't get on: wagon full or doors closed!=Kann nicht einsteigen: Waggon voll oder Türen geschlossen.
|
|
||||||
Use Sneak+rightclick to bypass closed doors!=Nutze Sneak+Rechtsklick, um die Türnotöffnung zu aktivieren und trotzdem einzusteigen.
|
|
||||||
Lock couples=Kupplungen sperren
|
|
||||||
Save wagon properties=Waggon-Einstellungen speichern
|
|
||||||
Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=Türen sind geschlossen! Sneak+Rechtsklick, um die Türnotöffnung zu aktivieren und trotzdem auszusteigen.
|
|
||||||
Wagon properties=Waggon-Einstellungen
|
|
||||||
Get off=Aussteigen
|
|
||||||
Get off (forced)=Aussteigen (erzwingen)
|
|
||||||
(Doors closed)=(Türen geschlossen)
|
|
||||||
Access to @1=Zugang zu @1
|
|
||||||
Default Seat=Standardsitzplatz
|
|
||||||
Default Seat (driver stand)=Standardsitzplatz (Führerstand)
|
|
||||||
Driver Stand=Führerstand
|
|
||||||
Driver Stand (left)=Führerstand Links
|
|
||||||
Driver Stand (right)=Führerstand Rechts
|
|
||||||
Industrial Train Engine=Industrielle Lokomotive
|
|
||||||
Industrial tank wagon=Tankwaggon
|
|
||||||
Industrial wood wagon=Holztransportwaggon
|
|
||||||
Japanese Train Engine=Japanische Personenzug-Lokomotive
|
|
||||||
Japanese Train Wagon=Japanischer Personenzug-Passagierwaggon
|
|
||||||
Steam Engine=Dampflokomotive
|
|
||||||
Detailed Steam Engine=detaillierte Dampflokomotive
|
|
||||||
Passenger Wagon=Passagierwaggon
|
|
||||||
Box wagon=Güterwaggon
|
|
||||||
Subway Passenger Wagon=U-Bahn-Waggon
|
|
||||||
The wagon's inventory is not empty!=Das Inventar dieses Waggons ist nicht leer!
|
|
||||||
This track can not be changed!=Diese Schiene kann nicht geändert werden!
|
|
||||||
This track can not be rotated!=Diese Schiene kann nicht gedreht werden!
|
|
||||||
This track can not be removed!=Diese Schiene kann nicht entfernt werden!
|
|
||||||
Position is occupied by a train.=Ein Zug steht an dieser Position.
|
|
||||||
There's a Track Circuit Break here.=Hier ist eine Gleisabschnittsgrenze (TCB).
|
|
||||||
There's a Signal Influence Point here.=Hier ist ein Signal-Beeinflussungspunkt.
|
|
||||||
Buffer and Chain Coupler=Schraubenkupplung
|
|
||||||
Scharfenberg Coupler=Scharfenbergkupplung
|
|
||||||
Japanese Train Inter-Wagon Connection=Waggonzwischenverbindung Japanischer Personenzug
|
|
||||||
Can not couple: The couplers of the trains do not match (@1 and @2).=Kann nicht ankuppeln: Die Kupplungen der Züge passen nicht zueinander (@1 und @2)
|
|
||||||
Train ID=Zugnummer
|
|
||||||
<none>=<keine>
|
|
|
@ -1,107 +0,0 @@
|
||||||
# textdomain: advtrains
|
|
||||||
|
|
||||||
# Advtrains Core (unorganized)
|
|
||||||
This wagon is owned by @1, you can't destroy it.=这是@1的车厢, 你不能摧毁它.
|
|
||||||
Warning: If you destroy this wagon, you only get some steel back! If you are sure, hold Sneak and left-click the wagon.=警告: 如果你摧毁此车厢, 你只能拿到一些钢方块. 如果你确定要摧毁这个车厢,请按潜行键并左键单击此车厢.
|
|
||||||
ATC controller, unconfigured.=ATC控制器 (未配置)
|
|
||||||
ATC controller=ATC控制器
|
|
||||||
ATC controller, mode @1@nChannel: @2=ATC控制器@n模式: @1@n频道: @2
|
|
||||||
ATC controller, mode @1@nCommand: @2=ATC控制器@n模式: @1@n命令: @2
|
|
||||||
Command=命令
|
|
||||||
Command (on)=命令(激活时)
|
|
||||||
Digiline channel=Digiline 频道
|
|
||||||
ATC Reverse command warning: didn't reverse train, train moving!=ATC警告:未执行“R”命令, 火车在移动
|
|
||||||
ATC command syntax error: I statement not closed: @1=ATC语法错误: "I"命令不完整: @1
|
|
||||||
ATC command parse error: Unknown command: @1=ATC语法错误: 未知命令: @1
|
|
||||||
This position is protected!=这里已被保护.
|
|
||||||
You need to own at least one neighboring wagon to destroy this couple.=你必须至少拥有其中一个车厢才能解耦这两个车厢.
|
|
||||||
This node can't be rotated using the trackworker!=你不能使用铁路调整工具旋转这个方块.
|
|
||||||
This node can't be changed using the trackworker!=你不能使用铁路调整工具调整这个方块.
|
|
||||||
Can't place: not pointing at node=无法放置: 你没有选择任何方块.
|
|
||||||
Can't place: space occupied!=无法放置: 此区域已被占用.
|
|
||||||
Can't place: protected position!=无法放置: 此区域已被保护.
|
|
||||||
Can't place: Not enough slope items left (@1 required)=无法放置: 你没有足够的铁路斜坡放置工具 (你需要@1个)
|
|
||||||
Can't place: There's no slope of length @1=无法放置: advtrains不支持长度为@1m的斜坡.
|
|
||||||
Can't place: no supporting node at upper end.=无法放置: 较高端没有支撑方块.
|
|
||||||
Deprecated Track=请不要使用
|
|
||||||
Can't get on: wagon full or doors closed!=无法上车: 车门已关闭或车厢已满
|
|
||||||
Use Sneak+rightclick to bypass closed doors!=请使用潜行+右键上车
|
|
||||||
Lock couples=锁定连接处
|
|
||||||
Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!=车门已关闭, 请使用潜行+右键单击下车
|
|
||||||
Access to @1=可前往@1
|
|
||||||
The clipboard couldn't access the metadata. Paste failed.=无法粘贴: 剪贴板无法访问元数据
|
|
||||||
The clipboard couldn't access the metadata. Copy failed.=无法复制: 剪贴板无法访问元数据
|
|
||||||
|
|
||||||
# Train HUD/Formspecs
|
|
||||||
Speed:=速度:
|
|
||||||
Target:=目标速度:
|
|
||||||
Show Inventory=显示物品栏
|
|
||||||
Select seat:=请选择座位
|
|
||||||
Wagon properties=车厢属性
|
|
||||||
Save wagon properties=保存车厢属性
|
|
||||||
Text displayed outside on train=车厢外部显示
|
|
||||||
Text displayed inside train=车厢内部显示
|
|
||||||
Line=火车线路
|
|
||||||
Routingcode=路由码
|
|
||||||
Get off=下车
|
|
||||||
Get off (forced)=强制下车
|
|
||||||
(Doors closed)=(车门已关闭)
|
|
||||||
|
|
||||||
# General
|
|
||||||
Save=保存
|
|
||||||
# "off" and "on" can be translated differently depending on the context and are therefore not translated.
|
|
||||||
off=off
|
|
||||||
on=on
|
|
||||||
|
|
||||||
# Line automation
|
|
||||||
Station Code=车站代码
|
|
||||||
Station Name=车站名称
|
|
||||||
Door Delay=车门关闭时间
|
|
||||||
Departure Speed=出发速度
|
|
||||||
Stop Time=停站时间
|
|
||||||
|
|
||||||
# Items
|
|
||||||
Track Worker Tool@n@nLeft-click: change rail type (straight/curve/switch)@nRight-click: rotate rail/bumper/signal/etc.=铁路调整工具@n@n左键单击: 切换轨道类型@n右键单击: 旋转方块
|
|
||||||
Passive Component Naming Tool@n@nRight-click to name a passive component.=被动元件命名工具@n@n右键单击命名所选元件.
|
|
||||||
Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=火车复制工具@n@n左键单击: 复制@n右键单击: 粘帖
|
|
||||||
Track=铁轨
|
|
||||||
Perpendicular Diamond Crossing Track=垂直交叉铁轨
|
|
||||||
45/90 Degree Diamond Crossing Track=45度交叉铁轨
|
|
||||||
Unloading Track=卸货铁轨
|
|
||||||
Loading Track=装货铁轨
|
|
||||||
Bumper=保险杠
|
|
||||||
Detector Rail=探测铁轨
|
|
||||||
@1 Slope=@1斜坡
|
|
||||||
@1 Platform (low)=50cm高的@1站台
|
|
||||||
@1 Platform (high)=1m高的@1站台
|
|
||||||
@1 Platform (45 degree)=1m高的@1站台 (45度)
|
|
||||||
Lampless Signal (@1)=臂板信号机 (@1)
|
|
||||||
Signal (@1)=信号灯 (@1)
|
|
||||||
Wallmounted Signal (l)=壁挂式信号灯 (左侧)
|
|
||||||
Wallmounted Signal (r)=壁挂式信号灯 (右侧)
|
|
||||||
Wallmounted Signal (t)=悬挂式信号灯
|
|
||||||
Andrew's Cross=铁路道口信号灯
|
|
||||||
Boiler=锅炉
|
|
||||||
driver's cab=驾驶室
|
|
||||||
Wheel=车轮
|
|
||||||
Chimney=烟囱
|
|
||||||
|
|
||||||
# Seats
|
|
||||||
Default Seat=默认座位
|
|
||||||
Default Seat (driver stand)=默认座位 (司机座位)
|
|
||||||
Driver Stand=司机座位
|
|
||||||
Driver Stand (left)=左侧司机座位
|
|
||||||
Driver Stand (right)=右侧司机座位
|
|
||||||
|
|
||||||
# Wagon/engine types
|
|
||||||
Industrial Train Engine=工业用火车头
|
|
||||||
Big Industrial Train Engine=大型工业用火车头
|
|
||||||
Industrial tank wagon=液体运输车厢
|
|
||||||
Industrial wood wagon=木材运输车厢
|
|
||||||
Japanese Train Engine=高速列车车头
|
|
||||||
Japanese Train Wagon=高速列车车厢
|
|
||||||
Steam Engine=蒸汽机车
|
|
||||||
Detailed Steam Engine=精细的蒸汽机车
|
|
||||||
Passenger Wagon=客车
|
|
||||||
Box Wagon=货运车厢
|
|
||||||
Subway Passenger Wagon=地铁车厢
|
|
|
@ -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.
|
|
@ -0,0 +1,632 @@
|
||||||
|
# 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: 2023-10-09 11:02+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:109
|
||||||
|
msgid "Unconfigured ATC controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:150
|
||||||
|
msgid ""
|
||||||
|
"ATC controller, mode @1\n"
|
||||||
|
"Command: @2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:180
|
||||||
|
msgid "Command"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:184
|
||||||
|
msgid "Command (on)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:187
|
||||||
|
msgid "Digiline channel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
|
||||||
|
#: advtrains_luaautomation/active_common.lua:48
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:236
|
||||||
|
msgid "ATC Reverse command warning: didn't reverse train, train moving."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:248
|
||||||
|
msgid "ATC Kick command warning: doors are closed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:252
|
||||||
|
msgid "ATC Kick command warning: train moving."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:322
|
||||||
|
msgid "ATC command syntax error: I statement not closed: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:385
|
||||||
|
msgid "ATC command parse error: Unknown command: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:8
|
||||||
|
msgid ""
|
||||||
|
"Train copy/paste tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: copy train\n"
|
||||||
|
"Right-click: paste train"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:29
|
||||||
|
msgid "You do not have the @1 privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:41
|
||||||
|
msgid "The track you are trying to place the wagon on is not long enough."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:47
|
||||||
|
msgid "The clipboard couldn't access the metadata. Paste failed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
|
||||||
|
msgid "The clipboard is empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:74
|
||||||
|
msgid "Back of train would end up off track, cancelling."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:92
|
||||||
|
msgid "No such lua entity."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:98
|
||||||
|
msgid "No such wagon: @1."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:104
|
||||||
|
msgid "No such train: @1."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:176
|
||||||
|
msgid "The clipboard couldn't access the metadata. Copy failed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:180
|
||||||
|
msgid "Train copied."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:28
|
||||||
|
msgid "Buffer and Chain Coupler"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:29
|
||||||
|
msgid "Scharfenberg Coupler"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:185
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to couple trains without the train_operator privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:329 advtrains/couple.lua:333
|
||||||
|
msgid "<No coupler>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:334
|
||||||
|
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:3
|
||||||
|
msgid "Boiler"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:9
|
||||||
|
msgid "Driver's cab"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:15
|
||||||
|
msgid "Wheel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:21
|
||||||
|
msgid "Chimney"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:16
|
||||||
|
msgid "@1 Platform (low)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:33
|
||||||
|
msgid "@1 Platform (high)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:59
|
||||||
|
msgid "@1 Platform (45 degree)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:81
|
||||||
|
msgid "@1 Platform (low, 45 degree)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:7
|
||||||
|
msgid "Can place, remove and operate trains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:12
|
||||||
|
msgid ""
|
||||||
|
"Can place, remove and operate any train, regardless of owner, whitelist, or "
|
||||||
|
"protection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:18
|
||||||
|
msgid "Can place and dig tracks in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:24
|
||||||
|
msgid "Can operate turnouts and signals in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build near tracks without the track_builder privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build tracks without the track_builder privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build near tracks at this protected position."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build tracks at this protected position."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:184
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to operate turnouts and signals without the "
|
||||||
|
"railway_operator privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:63
|
||||||
|
msgid "Lampless Signal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:127
|
||||||
|
msgid "Signal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:191
|
||||||
|
msgid "Wallmounted Signal (left)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:192
|
||||||
|
msgid "Wallmounted Signal (right)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:193
|
||||||
|
msgid "Wallmounted Signal (top)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:281 advtrains/signals.lua:322
|
||||||
|
msgid "Andrew's Cross"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:313
|
||||||
|
msgid ""
|
||||||
|
"Track Worker Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: change rail type (straight/curve/switch)\n"
|
||||||
|
"Right-click: rotate object"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
|
||||||
|
msgid "This node can't be rotated using the trackworker."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:350
|
||||||
|
msgid "This track can not be rotated."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:404
|
||||||
|
msgid "This node can't be changed using the trackworker."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:414
|
||||||
|
msgid "This track can not be changed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:449
|
||||||
|
msgid "This track can not be removed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:616
|
||||||
|
msgid "Position is occupied by a train."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:622
|
||||||
|
msgid "There's a Track Circuit Break here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:626
|
||||||
|
msgid "There's a Signal Influence Point here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:637
|
||||||
|
msgid "@1 Slope"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
|
||||||
|
msgid "Can't place slope: not pointing at node."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:658
|
||||||
|
msgid "Can't place slope: space occupied."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:711
|
||||||
|
msgid "Can't place slope: Not enough slope items left (@1 required)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:714
|
||||||
|
msgid "Can't place slope: There's no slope of length @1."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:721
|
||||||
|
msgid "Can't place slope: no supporting node at upper end."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/trainhud.lua:305
|
||||||
|
msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:179
|
||||||
|
msgid "This wagon is owned by @1, you can't destroy it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:203
|
||||||
|
msgid "The wagon's inventory is not empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:210
|
||||||
|
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:216
|
||||||
|
msgid ""
|
||||||
|
"Warning: If you destroy this wagon, you only get some steel back! If you are "
|
||||||
|
"sure, hold Sneak and left-click the wagon."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
|
||||||
|
msgid "Show Inventory"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:652
|
||||||
|
msgid "Onboard Computer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
|
||||||
|
msgid "Wagon properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:658
|
||||||
|
msgid "Get off"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:661
|
||||||
|
msgid "Get off (forced)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:663
|
||||||
|
msgid "(Doors closed)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:692
|
||||||
|
msgid "This wagon has no seats."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:703
|
||||||
|
msgid "This wagon is full."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:706
|
||||||
|
msgid "Doors are closed! (Try holding sneak key!)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:712
|
||||||
|
msgid "You can't get on this wagon."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:838
|
||||||
|
msgid "Select seat:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:880
|
||||||
|
msgid "Save wagon properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:965
|
||||||
|
msgid "Text displayed outside on train"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:966
|
||||||
|
msgid "Text displayed inside train"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:967
|
||||||
|
msgid "Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:968
|
||||||
|
msgid "Routingcode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1241
|
||||||
|
msgid ""
|
||||||
|
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
|
||||||
|
"off."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1250
|
||||||
|
msgid "You are not allowed to access the driver stand."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:13
|
||||||
|
msgid "Point speed restriction: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:14
|
||||||
|
msgid "Set point speed restriction:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:30
|
||||||
|
msgid "You are not allowed to configure this track without the @1 privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:34
|
||||||
|
#: advtrains_line_automation/stoprail.lua:31
|
||||||
|
#: advtrains_line_automation/stoprail.lua:76
|
||||||
|
msgid "You are not allowed to configure this track."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:64
|
||||||
|
msgid "Point Speed Restriction Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:54
|
||||||
|
msgid "Station Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:55
|
||||||
|
msgid "Station Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:56
|
||||||
|
msgid "Door Delay"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:57
|
||||||
|
msgid "Dep. Speed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
|
||||||
|
#: advtrains_train_track/init.lua:156
|
||||||
|
msgid "Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:59
|
||||||
|
msgid "Stop Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:60
|
||||||
|
msgid "Door Side"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:62
|
||||||
|
msgid "Reverse train"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:63
|
||||||
|
msgid "Kick out passengers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:97
|
||||||
|
msgid "Station code \"@1\" already exists and is owned by @2."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:111
|
||||||
|
msgid "This station is owned by @1. You are not allowed to edit its name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:221
|
||||||
|
msgid "Station/Stop Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:17
|
||||||
|
msgid "Unconfigured LuaATC component"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:46
|
||||||
|
msgid "LuaATC Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:49
|
||||||
|
msgid "Clear Local Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:50
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:64
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to configure this LuaATC component without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:94
|
||||||
|
msgid "LuaATC component assigned to environment '@1'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:96
|
||||||
|
msgid "LuaATC component assigned to an invalid environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:171
|
||||||
|
msgid "LuaATC component with error: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/init.lua:13
|
||||||
|
msgid ""
|
||||||
|
"Can place and configure LuaATC components, including execute potentially "
|
||||||
|
"harmful Lua code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/mesecon_controller.lua:211
|
||||||
|
msgid "LuaATC Mesecon Controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/operation_panel.lua:11
|
||||||
|
msgid "LuaATC Operation Panel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:28
|
||||||
|
msgid ""
|
||||||
|
"Passive Component Naming Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Right-click to name a passive component."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:39
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to name LuaATC passive components without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:62
|
||||||
|
msgid "Set name of component (empty to clear)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:10
|
||||||
|
#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
|
||||||
|
#: advtrains_train_steam/init.lua:91
|
||||||
|
msgid "Driver Stand (right)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:17
|
||||||
|
#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
|
||||||
|
#: advtrains_train_steam/init.lua:85
|
||||||
|
msgid "Driver Stand (left)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:40
|
||||||
|
msgid "Industrial Train Engine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:79
|
||||||
|
msgid "Big Industrial Train Engine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:98
|
||||||
|
msgid "Industrial tank wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:116
|
||||||
|
msgid "Industrial wood wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:4
|
||||||
|
msgid "Japanese Train Inter-Wagon Connection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:37
|
||||||
|
msgid "Driver stand"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:101
|
||||||
|
msgid "Japanese Train Engine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:176
|
||||||
|
msgid "Japanese Train Wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:75
|
||||||
|
msgid "Steam Engine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:159
|
||||||
|
msgid "Detailed Steam Engine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:206
|
||||||
|
msgid "Passenger Wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:226
|
||||||
|
msgid "Box Wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_subway/init.lua:144
|
||||||
|
msgid "Subway Passenger Wagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:31
|
||||||
|
msgid "Y-turnout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:49
|
||||||
|
msgid "3-way turnout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:69
|
||||||
|
msgid "Perpendicular Diamond Crossing Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:91
|
||||||
|
msgid "90+Angle Diamond Crossing Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:132
|
||||||
|
msgid "Diagonal Diamond Crossing Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:179
|
||||||
|
msgid "Bumper"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:201
|
||||||
|
msgid "ATC controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:317
|
||||||
|
msgid "Unloading Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:342
|
||||||
|
msgid "Loading Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:406
|
||||||
|
msgid "Detector Rail"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,724 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: advtrains\n"
|
||||||
|
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
|
||||||
|
"POT-Creation-Date: 2023-10-09 11:02+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-10-09 11:18+0200\n"
|
||||||
|
"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:109
|
||||||
|
msgid "Unconfigured ATC controller"
|
||||||
|
msgstr "Nicht konfiguiertes Zugbeeinflussungsgleis"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:150
|
||||||
|
msgid ""
|
||||||
|
"ATC controller, mode @1\n"
|
||||||
|
"Command: @2"
|
||||||
|
msgstr ""
|
||||||
|
"Zugbeeinflussungsgleis in Betriebsart „@1“\n"
|
||||||
|
"Befehl: @2"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:180
|
||||||
|
msgid "Command"
|
||||||
|
msgstr "Befehl"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:184
|
||||||
|
msgid "Command (on)"
|
||||||
|
msgstr "Befehl (wenn aktiviert)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:187
|
||||||
|
msgid "Digiline channel"
|
||||||
|
msgstr "Digiline-Kanal"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
|
||||||
|
#: advtrains_luaautomation/active_common.lua:48
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Speichern"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:236
|
||||||
|
msgid "ATC Reverse command warning: didn't reverse train, train moving."
|
||||||
|
msgstr ""
|
||||||
|
"Zugbeeinflussung: Der Zug befindet sich in Bewegung und kann nicht umgekehrt "
|
||||||
|
"werden."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:248
|
||||||
|
msgid "ATC Kick command warning: doors are closed."
|
||||||
|
msgstr ""
|
||||||
|
"Zugbeeinflussung: Wegen geschlossener Türen werden Fahrgäste nicht zum "
|
||||||
|
"Ausstieg gezwungen."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:252
|
||||||
|
msgid "ATC Kick command warning: train moving."
|
||||||
|
msgstr ""
|
||||||
|
"Zugbeeinflussung: Der Zug befindet sich in Bewegung, Fahrgäste werden nicht "
|
||||||
|
"zum Ausstieg gezwungen."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:322
|
||||||
|
msgid "ATC command syntax error: I statement not closed: @1"
|
||||||
|
msgstr "Zugbeeinflussung: Unvollständiger I-Befehl: @1"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:385
|
||||||
|
msgid "ATC command parse error: Unknown command: @1"
|
||||||
|
msgstr "Zugbeeinflussung: Unbekannter Befehl: @1"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:8
|
||||||
|
msgid ""
|
||||||
|
"Train copy/paste tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: copy train\n"
|
||||||
|
"Right-click: paste train"
|
||||||
|
msgstr ""
|
||||||
|
"Werkzeug zur Erstellung von Zugkopien\n"
|
||||||
|
"\n"
|
||||||
|
"Linksklick: Zug ins Clipboard kopieren\n"
|
||||||
|
"Right-click: Kopierten Zug einfügen"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:29
|
||||||
|
msgid "You do not have the @1 privilege."
|
||||||
|
msgstr "Ihnen fehlt das „@1“-Privileg."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:41
|
||||||
|
msgid "The track you are trying to place the wagon on is not long enough."
|
||||||
|
msgstr "Das Gleis, auf dem der Waggon platziert werden woll, ist zu kurz."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:47
|
||||||
|
msgid "The clipboard couldn't access the metadata. Paste failed."
|
||||||
|
msgstr ""
|
||||||
|
"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des "
|
||||||
|
"Zuges nicht eingefügt werden."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
|
||||||
|
msgid "The clipboard is empty."
|
||||||
|
msgstr "Das Clipboard ist leer."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:74
|
||||||
|
msgid "Back of train would end up off track, cancelling."
|
||||||
|
msgstr "Der hinterer Teil dez Zuges wäre nicht auf dem Gleis."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:92
|
||||||
|
msgid "No such lua entity."
|
||||||
|
msgstr ""
|
||||||
|
"Sie zeigen nicht auf einem Objekt, das mit diesem Werkzeug kopiert werden "
|
||||||
|
"kann."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:98
|
||||||
|
msgid "No such wagon: @1."
|
||||||
|
msgstr "Es gibt keinen mit „@1“ identifizierbaren Waggon."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:104
|
||||||
|
msgid "No such train: @1."
|
||||||
|
msgstr "Es gibt keinen mit „@1“ identifizierbaren Zug."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:176
|
||||||
|
msgid "The clipboard couldn't access the metadata. Copy failed."
|
||||||
|
msgstr ""
|
||||||
|
"Wegen des fehlgeschlagenen Zugriffs auf die Metadaten konnte der Zug nicht "
|
||||||
|
"kopiert werden."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:180
|
||||||
|
msgid "Train copied."
|
||||||
|
msgstr "Der Zug wurde Kopiert."
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:28
|
||||||
|
msgid "Buffer and Chain Coupler"
|
||||||
|
msgstr "Schraubenkupplung"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:29
|
||||||
|
msgid "Scharfenberg Coupler"
|
||||||
|
msgstr "Scharfenbergkupplung"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:185
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to couple trains without the train_operator privilege."
|
||||||
|
msgstr "Sie dürfen ohne das „train_operator“-Privileg keine Züge ankuppeln."
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:329 advtrains/couple.lua:333
|
||||||
|
msgid "<No coupler>"
|
||||||
|
msgstr "<Keine Kupplung vorhanden>"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:334
|
||||||
|
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
|
||||||
|
msgstr "Die Kupplungen der Züge passen nicht zueinander (@1 und @2)."
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:3
|
||||||
|
msgid "Boiler"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:9
|
||||||
|
msgid "Driver's cab"
|
||||||
|
msgstr "Führerstand"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:15
|
||||||
|
msgid "Wheel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:21
|
||||||
|
msgid "Chimney"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:16
|
||||||
|
msgid "@1 Platform (low)"
|
||||||
|
msgstr "Niedriger @1-Bahnsteig"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:33
|
||||||
|
msgid "@1 Platform (high)"
|
||||||
|
msgstr "Hoher @1-Bahnsteig"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:59
|
||||||
|
msgid "@1 Platform (45 degree)"
|
||||||
|
msgstr "Hoher @1-Bahnsteig (45°)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:81
|
||||||
|
msgid "@1 Platform (low, 45 degree)"
|
||||||
|
msgstr "Niedriger @1-Bahnsteig (45°)"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:7
|
||||||
|
msgid "Can place, remove and operate trains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:12
|
||||||
|
msgid ""
|
||||||
|
"Can place, remove and operate any train, regardless of owner, whitelist, or "
|
||||||
|
"protection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:18
|
||||||
|
msgid "Can place and dig tracks in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:24
|
||||||
|
msgid "Can operate turnouts and signals in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build near tracks without the track_builder privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Sie dürfen ohne das „track_builder“-Privileg nicht in der Nähe von Gleisen "
|
||||||
|
"bauen."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build tracks without the track_builder privilege."
|
||||||
|
msgstr "Sie dürfen ohne das „track_builder“-Privileg kein Gleis bauen."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build near tracks at this protected position."
|
||||||
|
msgstr "Sie dürfen an geschützten Stellen nicht in der Nähe von Gleisen bauen."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build tracks at this protected position."
|
||||||
|
msgstr "Sie dürfen an geschützten Stellen kein Gleis bauen."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:184
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to operate turnouts and signals without the "
|
||||||
|
"railway_operator privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Sie dürfen ohne das „railway_operator“-Privileg keine Bahnanlage operieren."
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:63
|
||||||
|
msgid "Lampless Signal"
|
||||||
|
msgstr "Mechanisches Signal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:127
|
||||||
|
msgid "Signal"
|
||||||
|
msgstr "Lichtsignal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:191
|
||||||
|
msgid "Wallmounted Signal (left)"
|
||||||
|
msgstr "An der linken Seite montiertes Signal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:192
|
||||||
|
msgid "Wallmounted Signal (right)"
|
||||||
|
msgstr "An der rechten Seite montiertes Signal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:193
|
||||||
|
msgid "Wallmounted Signal (top)"
|
||||||
|
msgstr "An der Decke montiertes Signal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:281 advtrains/signals.lua:322
|
||||||
|
msgid "Andrew's Cross"
|
||||||
|
msgstr "Andreaskreuz"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:313
|
||||||
|
msgid ""
|
||||||
|
"Track Worker Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: change rail type (straight/curve/switch)\n"
|
||||||
|
"Right-click: rotate object"
|
||||||
|
msgstr ""
|
||||||
|
"Gleiswerkzeug\n"
|
||||||
|
"\n"
|
||||||
|
"Linksklick: Gleistyp ändern\n"
|
||||||
|
"Rechtsklick: Objekt drehen"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
|
||||||
|
msgid "This node can't be rotated using the trackworker."
|
||||||
|
msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug gedreht werden."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:350
|
||||||
|
msgid "This track can not be rotated."
|
||||||
|
msgstr "Dieses Gleis kann nicht gedreht werden."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:404
|
||||||
|
msgid "This node can't be changed using the trackworker."
|
||||||
|
msgstr "Dieser Block kann nicht mit dem Gleiswerkzeug bearbeitet werden."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:414
|
||||||
|
msgid "This track can not be changed."
|
||||||
|
msgstr "Dieses Gleis kann nicht geändert werden."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:449
|
||||||
|
msgid "This track can not be removed."
|
||||||
|
msgstr "Dieses Gleis kann nicht entfernt werden."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:616
|
||||||
|
msgid "Position is occupied by a train."
|
||||||
|
msgstr "Ein Zug steht an dieser Position."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:622
|
||||||
|
msgid "There's a Track Circuit Break here."
|
||||||
|
msgstr "Hier ist eine Gleisabschnittsgrenze (TCB)."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:626
|
||||||
|
msgid "There's a Signal Influence Point here."
|
||||||
|
msgstr "Hier ist ein Signal-Beeinflussungspunkt."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:637
|
||||||
|
msgid "@1 Slope"
|
||||||
|
msgstr "@1 Steigung"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
|
||||||
|
msgid "Can't place slope: not pointing at node."
|
||||||
|
msgstr "Es kann nicht platziert werden: Sie zeigen nicht auf einem Block."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:658
|
||||||
|
msgid "Can't place slope: space occupied."
|
||||||
|
msgstr "Es kann nicht platziert werden: Diese Position ist besetzt."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:711
|
||||||
|
msgid "Can't place slope: Not enough slope items left (@1 required)."
|
||||||
|
msgstr ""
|
||||||
|
"Es kann nicht platziert werden: Sie haben nicht genug Steigungsblöcke, es "
|
||||||
|
"werden insgesamt @1 benötigt."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:714
|
||||||
|
msgid "Can't place slope: There's no slope of length @1."
|
||||||
|
msgstr ""
|
||||||
|
"Es kann nicht platziert werden: die Steigung der Länge @1 ist nicht "
|
||||||
|
"definiert."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:721
|
||||||
|
msgid "Can't place slope: no supporting node at upper end."
|
||||||
|
msgstr ""
|
||||||
|
"Es kann nicht platziert werden: es gibt keinen unterstützenden Block am Ende "
|
||||||
|
"der Steigung."
|
||||||
|
|
||||||
|
#: advtrains/trainhud.lua:305
|
||||||
|
msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:179
|
||||||
|
msgid "This wagon is owned by @1, you can't destroy it."
|
||||||
|
msgstr "Dieser Waggon gehört @1, Sie dürfen ihn nicht abbauen."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:203
|
||||||
|
msgid "The wagon's inventory is not empty."
|
||||||
|
msgstr "Das Inventar dieses Waggons ist nicht leer."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:210
|
||||||
|
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
|
||||||
|
msgstr "Der Waggon muss abgekoppelt sein, damit Sie ihn abbauen können."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:216
|
||||||
|
msgid ""
|
||||||
|
"Warning: If you destroy this wagon, you only get some steel back! If you are "
|
||||||
|
"sure, hold Sneak and left-click the wagon."
|
||||||
|
msgstr ""
|
||||||
|
"Warnung: Durch den Abbau des Waggons erhalten Sie nur etwas Stahl zurück. "
|
||||||
|
"Nutzen Sie Schleichen+Linksklick, um dem Waggon abzubauen."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
|
||||||
|
msgid "Show Inventory"
|
||||||
|
msgstr "Inventar Zeigen"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:652
|
||||||
|
msgid "Onboard Computer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
|
||||||
|
msgid "Wagon properties"
|
||||||
|
msgstr "Waggon-Einstellungen"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:658
|
||||||
|
msgid "Get off"
|
||||||
|
msgstr "Aussteigen"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:661
|
||||||
|
msgid "Get off (forced)"
|
||||||
|
msgstr "Ausstieg zwingen"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:663
|
||||||
|
msgid "(Doors closed)"
|
||||||
|
msgstr "(Türen geschlossen)"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:692
|
||||||
|
msgid "This wagon has no seats."
|
||||||
|
msgstr "In diesem Waggon ist kein Sitzplatz vorhanden."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:703
|
||||||
|
msgid "This wagon is full."
|
||||||
|
msgstr "Der Waggon ist voll."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:706
|
||||||
|
msgid "Doors are closed! (Try holding sneak key!)"
|
||||||
|
msgstr "Die Türen sind geschlossen."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:712
|
||||||
|
msgid "You can't get on this wagon."
|
||||||
|
msgstr "Sie können nicht in diesen Waggon einsteigen."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:838
|
||||||
|
msgid "Select seat:"
|
||||||
|
msgstr "Wählen Sie einen Sitzplatz aus:"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:880
|
||||||
|
msgid "Save wagon properties"
|
||||||
|
msgstr "Waggon-Einstellungen speichern"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:965
|
||||||
|
msgid "Text displayed outside on train"
|
||||||
|
msgstr "Äußere Anzeige"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:966
|
||||||
|
msgid "Text displayed inside train"
|
||||||
|
msgstr "Innere Anzeige"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:967
|
||||||
|
msgid "Line"
|
||||||
|
msgstr "Linie"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:968
|
||||||
|
msgid "Routingcode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1241
|
||||||
|
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:1250
|
||||||
|
msgid "You are not allowed to access the driver stand."
|
||||||
|
msgstr "Sie haben keinen Zugang zum Führerstand."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:13
|
||||||
|
msgid "Point speed restriction: @1"
|
||||||
|
msgstr "Geschwindigkeitskontrolle: @1"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:14
|
||||||
|
msgid "Set point speed restriction:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:30
|
||||||
|
msgid "You are not allowed to configure this track without the @1 privilege."
|
||||||
|
msgstr "Sie dürfen ohne das „@1“-Privileg dieses Gleis nicht konfigurieren."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:34
|
||||||
|
#: advtrains_line_automation/stoprail.lua:31
|
||||||
|
#: advtrains_line_automation/stoprail.lua:76
|
||||||
|
msgid "You are not allowed to configure this track."
|
||||||
|
msgstr "Sie dürfen dieses Gleis nicht konfigurieren."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:64
|
||||||
|
msgid "Point Speed Restriction Track"
|
||||||
|
msgstr "Geschwindigkeitskontrollgleis"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:54
|
||||||
|
msgid "Station Code"
|
||||||
|
msgstr "Kennzeichen der Haltestelle"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:55
|
||||||
|
msgid "Station Name"
|
||||||
|
msgstr "Name der Haltestelle"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:56
|
||||||
|
msgid "Door Delay"
|
||||||
|
msgstr "Zeit für die Türschließung"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:57
|
||||||
|
msgid "Dep. Speed"
|
||||||
|
msgstr "Zielgeschwindigkeit bei Abfahrt"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
|
||||||
|
#: advtrains_train_track/init.lua:156
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "Gleis"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:59
|
||||||
|
msgid "Stop Time"
|
||||||
|
msgstr "Wartezeit"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:60
|
||||||
|
msgid "Door Side"
|
||||||
|
msgstr "Türseite"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:62
|
||||||
|
msgid "Reverse train"
|
||||||
|
msgstr "Zug Umkehren"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:63
|
||||||
|
msgid "Kick out passengers"
|
||||||
|
msgstr "Fahrgäste zum Ausstieg zwingen"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:97
|
||||||
|
msgid "Station code \"@1\" already exists and is owned by @2."
|
||||||
|
msgstr ""
|
||||||
|
"Die Haltestelle mit dem Kennzeichen „@1“ ist bereits vorhanden und wird von "
|
||||||
|
"@2 verwaltet."
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:111
|
||||||
|
msgid "This station is owned by @1. You are not allowed to edit its name."
|
||||||
|
msgstr ""
|
||||||
|
"Diese Haltestelle wird von @1 verwaltet. Sie dürfen sie nicht umbenennen."
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:221
|
||||||
|
msgid "Station/Stop Track"
|
||||||
|
msgstr "Gleis zur Kennzeichnung einer Haltestelle"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:17
|
||||||
|
msgid "Unconfigured LuaATC component"
|
||||||
|
msgstr "Nicht konfiguierter LuaATC-Bauteil"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:46
|
||||||
|
msgid "LuaATC Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:49
|
||||||
|
msgid "Clear Local Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:50
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:64
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to configure this LuaATC component without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Sie dürfen ohne das „@1“-Privileg diesen LuaATC-Bauteil nicht konfigurieren."
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:94
|
||||||
|
msgid "LuaATC component assigned to environment '@1'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:96
|
||||||
|
msgid "LuaATC component assigned to an invalid environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:171
|
||||||
|
msgid "LuaATC component with error: @1"
|
||||||
|
msgstr "LuaATC-Bauteil mit Fehlermeldung: @1"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/init.lua:13
|
||||||
|
msgid ""
|
||||||
|
"Can place and configure LuaATC components, including execute potentially "
|
||||||
|
"harmful Lua code"
|
||||||
|
msgstr ""
|
||||||
|
"Kann LuaATC-Bauteile platzieren und konfigurieren (auch evtl. schädliche "
|
||||||
|
"Programme ausführen)"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/mesecon_controller.lua:211
|
||||||
|
msgid "LuaATC Mesecon Controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/operation_panel.lua:11
|
||||||
|
msgid "LuaATC Operation Panel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:28
|
||||||
|
msgid ""
|
||||||
|
"Passive Component Naming Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Right-click to name a passive component."
|
||||||
|
msgstr ""
|
||||||
|
"PC-Benennungswerkzeug\n"
|
||||||
|
"\n"
|
||||||
|
"Rechtsklick zur Benennung der passiven Komponente."
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:39
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to name LuaATC passive components without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "Sie dürfen ohne das „@1“ keinen passiven LuaATC-Bauteil benennen."
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:62
|
||||||
|
msgid "Set name of component (empty to clear)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:10
|
||||||
|
#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
|
||||||
|
#: advtrains_train_steam/init.lua:91
|
||||||
|
msgid "Driver Stand (right)"
|
||||||
|
msgstr "Führerstand Rechts"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:17
|
||||||
|
#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
|
||||||
|
#: advtrains_train_steam/init.lua:85
|
||||||
|
msgid "Driver Stand (left)"
|
||||||
|
msgstr "Führerstand Links"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:40
|
||||||
|
msgid "Industrial Train Engine"
|
||||||
|
msgstr "Industrielle Lokomotive"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:79
|
||||||
|
msgid "Big Industrial Train Engine"
|
||||||
|
msgstr "Große Industrielle Lokomotive"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:98
|
||||||
|
msgid "Industrial tank wagon"
|
||||||
|
msgstr "Tankwaggon"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:116
|
||||||
|
msgid "Industrial wood wagon"
|
||||||
|
msgstr "Holztransportwaggon"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:4
|
||||||
|
msgid "Japanese Train Inter-Wagon Connection"
|
||||||
|
msgstr "Waggonzwischenverbindung Japanischer Personenzüge"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:37
|
||||||
|
msgid "Driver stand"
|
||||||
|
msgstr "Führerstand"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:101
|
||||||
|
msgid "Japanese Train Engine"
|
||||||
|
msgstr "Japanische Personenzug-Lokomotive"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:176
|
||||||
|
msgid "Japanese Train Wagon"
|
||||||
|
msgstr "Japanischer Personenzug-Passagierwaggon"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:75
|
||||||
|
msgid "Steam Engine"
|
||||||
|
msgstr "Dampflokomotive"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:159
|
||||||
|
msgid "Detailed Steam Engine"
|
||||||
|
msgstr "Detaillierte Dampflokomotive"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:206
|
||||||
|
msgid "Passenger Wagon"
|
||||||
|
msgstr "Passagierwaggon"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:226
|
||||||
|
msgid "Box Wagon"
|
||||||
|
msgstr "Güterwaggon"
|
||||||
|
|
||||||
|
#: advtrains_train_subway/init.lua:144
|
||||||
|
msgid "Subway Passenger Wagon"
|
||||||
|
msgstr "U-Bahn-Waggon"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:31
|
||||||
|
msgid "Y-turnout"
|
||||||
|
msgstr "Y-Weiche"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:49
|
||||||
|
msgid "3-way turnout"
|
||||||
|
msgstr "Dreiwegweiche"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:69
|
||||||
|
msgid "Perpendicular Diamond Crossing Track"
|
||||||
|
msgstr "Kreuzung mit zueinander orthogonalen Gleisen"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:91
|
||||||
|
msgid "90+Angle Diamond Crossing Track"
|
||||||
|
msgstr "Kreuzung mit einem achsenparallelen Gleis"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:132
|
||||||
|
msgid "Diagonal Diamond Crossing Track"
|
||||||
|
msgstr "Diagonale Gleiskreuzung"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:179
|
||||||
|
msgid "Bumper"
|
||||||
|
msgstr "Prellbock"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:201
|
||||||
|
msgid "ATC controller"
|
||||||
|
msgstr "Zugbeeinflussungsgleis"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:317
|
||||||
|
msgid "Unloading Track"
|
||||||
|
msgstr "Abladungsgleis"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:342
|
||||||
|
msgid "Loading Track"
|
||||||
|
msgstr "Beladungsgleis"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:406
|
||||||
|
msgid "Detector Rail"
|
||||||
|
msgstr "Detektorgleis"
|
||||||
|
|
||||||
|
#~ 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 "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."
|
|
@ -0,0 +1,728 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: advtrains\n"
|
||||||
|
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
|
||||||
|
"POT-Creation-Date: 2023-10-09 11:02+0200\n"
|
||||||
|
"PO-Revision-Date: 2024-11-02 21:31+0100\n"
|
||||||
|
"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:109
|
||||||
|
msgid "Unconfigured ATC controller"
|
||||||
|
msgstr "Controlleur ATC, non-configuré"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:150
|
||||||
|
msgid ""
|
||||||
|
"ATC controller, mode @1\n"
|
||||||
|
"Command: @2"
|
||||||
|
msgstr ""
|
||||||
|
"Controlleur ATC, mode @1\n"
|
||||||
|
"Commande : @2"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:180
|
||||||
|
msgid "Command"
|
||||||
|
msgstr "Commande"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:184
|
||||||
|
msgid "Command (on)"
|
||||||
|
msgstr "Commande (marche)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:187
|
||||||
|
msgid "Digiline channel"
|
||||||
|
msgstr "Canal Digiline"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
|
||||||
|
#: advtrains_luaautomation/active_common.lua:48
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Sauvegarder"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:236
|
||||||
|
msgid "ATC Reverse command warning: didn't reverse train, train moving."
|
||||||
|
msgstr ""
|
||||||
|
"Attention : Commande ATC de renversement impossible car le train se déplace."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:248
|
||||||
|
msgid "ATC Kick command warning: doors are closed."
|
||||||
|
msgstr "Avertissement commande ATC Éjecter : portes closes."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:252
|
||||||
|
msgid "ATC Kick command warning: train moving."
|
||||||
|
msgstr "Avertissement commande ATC Éjecter : train en mouvement."
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:322
|
||||||
|
msgid "ATC command syntax error: I statement not closed: @1"
|
||||||
|
msgstr "Erreur de syntaxe de commande ATC : instruction \"I\" incomplète : @1"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:385
|
||||||
|
msgid "ATC command parse error: Unknown command: @1"
|
||||||
|
msgstr "Erreur d'analyse de commande ATC : Commande inconnue : @1"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:8
|
||||||
|
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:29
|
||||||
|
msgid "You do not have the @1 privilege."
|
||||||
|
msgstr "Vous ne possédez pas le privilège \"@1\"."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:41
|
||||||
|
msgid "The track you are trying to place the wagon on is not long enough."
|
||||||
|
msgstr "La voie sur laquelle vous tentez de placer le wagon est trop courte."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:47
|
||||||
|
msgid "The clipboard couldn't access the metadata. Paste failed."
|
||||||
|
msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec du collage."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
|
||||||
|
msgid "The clipboard is empty."
|
||||||
|
msgstr "Le presse-papier est vide."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:74
|
||||||
|
msgid "Back of train would end up off track, cancelling."
|
||||||
|
msgstr "La fin du train serait hors voie : annulation."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:92
|
||||||
|
msgid "No such lua entity."
|
||||||
|
msgstr "Pas de telle entité lua."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:98
|
||||||
|
msgid "No such wagon: @1."
|
||||||
|
msgstr "Pas de tel wagon : @1."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:104
|
||||||
|
msgid "No such train: @1."
|
||||||
|
msgstr "Pas de tel train : @1."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:176
|
||||||
|
msgid "The clipboard couldn't access the metadata. Copy failed."
|
||||||
|
msgstr "Le presse-papier ne peut accéder aux métadonnées. Échec de la copie."
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:180
|
||||||
|
msgid "Train copied."
|
||||||
|
msgstr "Train copié."
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:28
|
||||||
|
msgid "Buffer and Chain Coupler"
|
||||||
|
msgstr "Attelage à tampon et vis"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:29
|
||||||
|
msgid "Scharfenberg Coupler"
|
||||||
|
msgstr "Attelage Scharfenberg"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:185
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to couple trains without the train_operator privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Vous n'êtes pas autorisé à coupler des trains sans le privilège "
|
||||||
|
"\"train_operator\"."
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:329 advtrains/couple.lua:333
|
||||||
|
msgid "<No coupler>"
|
||||||
|
msgstr "<Pas de coupleur>"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:334
|
||||||
|
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
|
||||||
|
msgstr ""
|
||||||
|
"Accouplement impossible: les attelages des trains ne concordent pas (@1 et "
|
||||||
|
"@2)."
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:3
|
||||||
|
msgid "Boiler"
|
||||||
|
msgstr "Chaudière à vapeur"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:9
|
||||||
|
msgid "Driver's cab"
|
||||||
|
msgstr "Cabine de pilotage"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:15
|
||||||
|
msgid "Wheel"
|
||||||
|
msgstr "Roue"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:21
|
||||||
|
msgid "Chimney"
|
||||||
|
msgstr "Cheminée"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:16
|
||||||
|
msgid "@1 Platform (low)"
|
||||||
|
msgstr "Quai @1 (bas)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:33
|
||||||
|
msgid "@1 Platform (high)"
|
||||||
|
msgstr "Quai @1 (haut)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:59
|
||||||
|
msgid "@1 Platform (45 degree)"
|
||||||
|
msgstr "Quai @1 (haut, 45°)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:81
|
||||||
|
msgid "@1 Platform (low, 45 degree)"
|
||||||
|
msgstr "Quai @1 (bas, 45°)"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:7
|
||||||
|
msgid "Can place, remove and operate trains"
|
||||||
|
msgstr "Possibilité de poser, retirer ou opérer les trains"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:12
|
||||||
|
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:18
|
||||||
|
msgid "Can place and dig tracks in unprotected areas"
|
||||||
|
msgstr "Possibilité de poser ou retirer des voies dans les zones non protégées"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:24
|
||||||
|
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:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build near tracks without the track_builder privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Vous ne pouvez pas construire à proximité d'une voie sans le privilège "
|
||||||
|
"\"track_builder\" (?)"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build tracks without the track_builder privilege."
|
||||||
|
msgstr ""
|
||||||
|
"Vous ne pouvez pas construire une voie sans le privilège \"track_builder\"."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build near tracks at this protected position."
|
||||||
|
msgstr ""
|
||||||
|
"Vous ne pouvez pas construire à proximité d'une voie à cet emplacement "
|
||||||
|
"protégé."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build tracks at this protected position."
|
||||||
|
msgstr "Vous ne pouvez pas construire une voie à cet emplacement protégé."
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:184
|
||||||
|
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:63
|
||||||
|
msgid "Lampless Signal"
|
||||||
|
msgstr "Sémaphore"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:127
|
||||||
|
msgid "Signal"
|
||||||
|
msgstr "Signal"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:191
|
||||||
|
msgid "Wallmounted Signal (left)"
|
||||||
|
msgstr "Signal mural (gauche)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:192
|
||||||
|
msgid "Wallmounted Signal (right)"
|
||||||
|
msgstr "Signal mural (droit)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:193
|
||||||
|
msgid "Wallmounted Signal (top)"
|
||||||
|
msgstr "Signal mural (plafond)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:281 advtrains/signals.lua:322
|
||||||
|
msgid "Andrew's Cross"
|
||||||
|
msgstr "Croix de Saint André"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:313
|
||||||
|
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/trackplacer.lua:340 advtrains/trackplacer.lua:377
|
||||||
|
msgid "This node can't be rotated using the trackworker."
|
||||||
|
msgstr "Ce nœud ne peut être tourné avec l'outil \"Trackworker\"."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:350
|
||||||
|
msgid "This track can not be rotated."
|
||||||
|
msgstr "Cette voie ne peut pas être tournée."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:404
|
||||||
|
msgid "This node can't be changed using the trackworker."
|
||||||
|
msgstr "Ce nœud ne peut être modifié avec l'outil \"Trackworker\"."
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:414
|
||||||
|
msgid "This track can not be changed."
|
||||||
|
msgstr "Cette voie ne peut pas être modifiée."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:449
|
||||||
|
msgid "This track can not be removed."
|
||||||
|
msgstr "Cette voie ne peut pas être enlevée."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:616
|
||||||
|
msgid "Position is occupied by a train."
|
||||||
|
msgstr "Cet emplacement est occupé par un train."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:622
|
||||||
|
msgid "There's a Track Circuit Break here."
|
||||||
|
msgstr "Il y a un \"Track Circuit Break\" ici."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:626
|
||||||
|
msgid "There's a Signal Influence Point here."
|
||||||
|
msgstr "Il y a un \"Signal Influence Point\" ici."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:637
|
||||||
|
msgid "@1 Slope"
|
||||||
|
msgstr "Pente @1"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
|
||||||
|
msgid "Can't place slope: not pointing at node."
|
||||||
|
msgstr "Placement impossible : ne pointe pas un nœud."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:658
|
||||||
|
msgid "Can't place slope: space occupied."
|
||||||
|
msgstr "Placement impossible : espace occupé."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:711
|
||||||
|
msgid "Can't place slope: Not enough slope items left (@1 required)."
|
||||||
|
msgstr ""
|
||||||
|
"Placement impossible : quantité insuffisante de voie pentue (@1 manquant)."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:714
|
||||||
|
msgid "Can't place slope: There's no slope of length @1."
|
||||||
|
msgstr "Placement impossible : il n'y a pas de voie pentue de longueur @1."
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:721
|
||||||
|
msgid "Can't place slope: no supporting node at upper end."
|
||||||
|
msgstr "Placement impossible : pas de nœud d'appui à l'extrémité supérieure."
|
||||||
|
|
||||||
|
#: advtrains/trainhud.lua:305
|
||||||
|
msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
|
||||||
|
msgstr ""
|
||||||
|
"Franchissement de signal rouge : examinez la situation et inversez le sens "
|
||||||
|
"de marche du train."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:179
|
||||||
|
msgid "This wagon is owned by @1, you can't destroy it."
|
||||||
|
msgstr "Ce wagon est la propriété de @1, vous ne pouvez pas le détruire."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:203
|
||||||
|
msgid "The wagon's inventory is not empty."
|
||||||
|
msgstr "Le stock de ce wagon n'est pas vide."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:210
|
||||||
|
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
|
||||||
|
msgstr ""
|
||||||
|
"Les wagons doivent être désaccouplés des autres pour pouvoir être détruits."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:216
|
||||||
|
msgid ""
|
||||||
|
"Warning: If you destroy this wagon, you only get some steel back! If you are "
|
||||||
|
"sure, hold Sneak and left-click the wagon."
|
||||||
|
msgstr ""
|
||||||
|
"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:649 advtrains/wagons.lua:850
|
||||||
|
msgid "Show Inventory"
|
||||||
|
msgstr "Montrer le stock"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:652
|
||||||
|
msgid "Onboard Computer"
|
||||||
|
msgstr "Ordinateur embarqué"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
|
||||||
|
msgid "Wagon properties"
|
||||||
|
msgstr "Propriétés du wagon"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:658
|
||||||
|
msgid "Get off"
|
||||||
|
msgstr "Débarquer"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:661
|
||||||
|
msgid "Get off (forced)"
|
||||||
|
msgstr "Débarquer (de force)"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:663
|
||||||
|
msgid "(Doors closed)"
|
||||||
|
msgstr "(Portes closes)"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:692
|
||||||
|
msgid "This wagon has no seats."
|
||||||
|
msgstr "Ce wagon n'a pas de siège."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:703
|
||||||
|
msgid "This wagon is full."
|
||||||
|
msgstr "Ce wagon est plein."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:706
|
||||||
|
msgid "Doors are closed! (Try holding sneak key!)"
|
||||||
|
msgstr "Portes closes : (Essayez la \"sneak key\"!\")"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:712
|
||||||
|
msgid "You can't get on this wagon."
|
||||||
|
msgstr "Montée impossible dans ce wagon."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:838
|
||||||
|
msgid "Select seat:"
|
||||||
|
msgstr "Choisir le siège :"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:880
|
||||||
|
msgid "Save wagon properties"
|
||||||
|
msgstr "Sauvegarder les propriétés du wagon"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:965
|
||||||
|
msgid "Text displayed outside on train"
|
||||||
|
msgstr "Texte affiché à l'extérieur du train"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:966
|
||||||
|
msgid "Text displayed inside train"
|
||||||
|
msgstr "Texte affiché à l'intérieur du train"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:967
|
||||||
|
msgid "Line"
|
||||||
|
msgstr "Ligne"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:968
|
||||||
|
msgid "Routingcode"
|
||||||
|
msgstr "Code de routage"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1241
|
||||||
|
msgid ""
|
||||||
|
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
|
||||||
|
"off."
|
||||||
|
msgstr ""
|
||||||
|
"Portes closes ! Utilisez \"Marcher lentement (Sneak)\" et Clic-Droit pour "
|
||||||
|
"franchir les portes et débarquer."
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1250
|
||||||
|
msgid "You are not allowed to access the driver stand."
|
||||||
|
msgstr "Accès interdit au poste de pilotage."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:13
|
||||||
|
msgid "Point speed restriction: @1"
|
||||||
|
msgstr "Point de limitation de vitesse : @1"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:14
|
||||||
|
msgid "Set point speed restriction:"
|
||||||
|
msgstr "Placez un point de limitation de vitesse :"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:30
|
||||||
|
msgid "You are not allowed to configure this track without the @1 privilege."
|
||||||
|
msgstr "Vous n'êtes pas autorisé à configurer cette voie sans le privilège @1."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:34
|
||||||
|
#: advtrains_line_automation/stoprail.lua:31
|
||||||
|
#: advtrains_line_automation/stoprail.lua:76
|
||||||
|
msgid "You are not allowed to configure this track."
|
||||||
|
msgstr "Vous n'êtes pas autorisé à configurer cette voie."
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:64
|
||||||
|
msgid "Point Speed Restriction Track"
|
||||||
|
msgstr "Voie de point de limitation de vitesse"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:54
|
||||||
|
msgid "Station Code"
|
||||||
|
msgstr "Code de Station"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:55
|
||||||
|
msgid "Station Name"
|
||||||
|
msgstr "Nom de Station"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:56
|
||||||
|
msgid "Door Delay"
|
||||||
|
msgstr "Durée d'ouverture des portes"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:57
|
||||||
|
msgid "Dep. Speed"
|
||||||
|
msgstr "Vitesse de départ"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
|
||||||
|
#: advtrains_train_track/init.lua:156
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "Voie"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:59
|
||||||
|
msgid "Stop Time"
|
||||||
|
msgstr "Durée d'arrêt"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:60
|
||||||
|
msgid "Door Side"
|
||||||
|
msgstr "Coté d'ouvertures des portes"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:62
|
||||||
|
msgid "Reverse train"
|
||||||
|
msgstr "Inversion du sens de marche"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:63
|
||||||
|
msgid "Kick out passengers"
|
||||||
|
msgstr "Éjecter les passagers"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:97
|
||||||
|
msgid "Station code \"@1\" already exists and is owned by @2."
|
||||||
|
msgstr "Le code de station \"@1\" existe et est possédé par @2."
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:111
|
||||||
|
msgid "This station is owned by @1. You are not allowed to edit its name."
|
||||||
|
msgstr ""
|
||||||
|
"Cette station est la propriété de @1. Vous n'êtes pas autorisé à modifier "
|
||||||
|
"son nom."
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:221
|
||||||
|
msgid "Station/Stop Track"
|
||||||
|
msgstr "Voie d'arrêt en station"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:17
|
||||||
|
msgid "Unconfigured LuaATC component"
|
||||||
|
msgstr "Composant LuaATC non configuré"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:46
|
||||||
|
msgid "LuaATC Environment"
|
||||||
|
msgstr "Environnement LuaATC"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:49
|
||||||
|
msgid "Clear Local Environment"
|
||||||
|
msgstr "Effacer l'environnement LuaATC"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:50
|
||||||
|
msgid "Code"
|
||||||
|
msgstr "Code"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:64
|
||||||
|
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/active_common.lua:94
|
||||||
|
msgid "LuaATC component assigned to environment '@1'"
|
||||||
|
msgstr "Composant LuaATC assigné à l'environnement '@1'"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:96
|
||||||
|
msgid "LuaATC component assigned to an invalid environment"
|
||||||
|
msgstr "Composant LuaATC assigné à un environnement invalide"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:171
|
||||||
|
msgid "LuaATC component with error: @1"
|
||||||
|
msgstr "Erreur @1 du composant LuaATC"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/init.lua:13
|
||||||
|
msgid ""
|
||||||
|
"Can place and configure LuaATC components, including execute potentially "
|
||||||
|
"harmful Lua code"
|
||||||
|
msgstr ""
|
||||||
|
"Permet le placement et la configuration de composants LuaATC avec risque "
|
||||||
|
"d'exécution de code Lua dangereux"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/mesecon_controller.lua:211
|
||||||
|
msgid "LuaATC Mesecon Controller"
|
||||||
|
msgstr "Commande Mesecon de LuaATC"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/operation_panel.lua:11
|
||||||
|
msgid "LuaATC Operation Panel"
|
||||||
|
msgstr "Panneau de commande de LuaATC"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:28
|
||||||
|
msgid ""
|
||||||
|
"Passive Component Naming Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Right-click to name a passive component."
|
||||||
|
msgstr ""
|
||||||
|
"Outil de nommage de composant passif\n"
|
||||||
|
"\n"
|
||||||
|
"Clic-Droit pour nommer un composant passif."
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:39
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to name LuaATC passive components without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "Vous ne pouvez nommer un composant LuaATC passif sans le privilege @1."
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:62
|
||||||
|
msgid "Set name of component (empty to clear)"
|
||||||
|
msgstr "Nommer le composant (chaîne vide pour effacer)"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:10
|
||||||
|
#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
|
||||||
|
#: advtrains_train_steam/init.lua:91
|
||||||
|
msgid "Driver Stand (right)"
|
||||||
|
msgstr "Poste de pilotage (droit)"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:17
|
||||||
|
#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
|
||||||
|
#: advtrains_train_steam/init.lua:85
|
||||||
|
msgid "Driver Stand (left)"
|
||||||
|
msgstr "Poste de pilotage (gauche)"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:40
|
||||||
|
msgid "Industrial Train Engine"
|
||||||
|
msgstr "Locomotive industrielle"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:79
|
||||||
|
msgid "Big Industrial Train Engine"
|
||||||
|
msgstr "Grosse locomotive industrielle"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:98
|
||||||
|
msgid "Industrial tank wagon"
|
||||||
|
msgstr "Wagon-citerne industriel"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:116
|
||||||
|
msgid "Industrial wood wagon"
|
||||||
|
msgstr "Wagon grumier industriel"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:4
|
||||||
|
msgid "Japanese Train Inter-Wagon Connection"
|
||||||
|
msgstr "Passage inter-voiture de train Japonais"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:37
|
||||||
|
msgid "Driver stand"
|
||||||
|
msgstr "Poste de pilotage"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:101
|
||||||
|
msgid "Japanese Train Engine"
|
||||||
|
msgstr "Motrice Japonaise"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:176
|
||||||
|
msgid "Japanese Train Wagon"
|
||||||
|
msgstr "Voiture Japonaise"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:75
|
||||||
|
msgid "Steam Engine"
|
||||||
|
msgstr "Locomotive à vapeur"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:159
|
||||||
|
msgid "Detailed Steam Engine"
|
||||||
|
msgstr "Locomotive à vapeur complexe"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:206
|
||||||
|
msgid "Passenger Wagon"
|
||||||
|
msgstr "Voiture passager"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:226
|
||||||
|
msgid "Box Wagon"
|
||||||
|
msgstr "Wagon de frêt"
|
||||||
|
|
||||||
|
#: advtrains_train_subway/init.lua:144
|
||||||
|
msgid "Subway Passenger Wagon"
|
||||||
|
msgstr "Voiture de Métropolitain"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:31
|
||||||
|
msgid "Y-turnout"
|
||||||
|
msgstr "Embranchement en Y"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:49
|
||||||
|
msgid "3-way turnout"
|
||||||
|
msgstr "Embranchement triple"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:69
|
||||||
|
msgid "Perpendicular Diamond Crossing Track"
|
||||||
|
msgstr "Croisement perpendiculaire"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:91
|
||||||
|
msgid "90+Angle Diamond Crossing Track"
|
||||||
|
msgstr "Croisement perpendiculo-diagonal"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:132
|
||||||
|
msgid "Diagonal Diamond Crossing Track"
|
||||||
|
msgstr "Croisement diagonal"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:179
|
||||||
|
msgid "Bumper"
|
||||||
|
msgstr "Heurtoir"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:201
|
||||||
|
msgid "ATC controller"
|
||||||
|
msgstr "Controlleur ATC"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:317
|
||||||
|
msgid "Unloading Track"
|
||||||
|
msgstr "Voie de Déchargement"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:342
|
||||||
|
msgid "Loading Track"
|
||||||
|
msgstr "Voie de Chargement"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:406
|
||||||
|
msgid "Detector Rail"
|
||||||
|
msgstr "Voie détectrice"
|
||||||
|
|
||||||
|
#~ 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 "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 "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."
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# NOTE: Please make sure you also have basic_trains installed, as it uses attrans for historical reasons
|
||||||
|
|
||||||
|
PODIR=`dirname "$0"`
|
||||||
|
ATDIR="$PODIR/../.."
|
||||||
|
BTDIR="$ATDIR/../basic_trains"
|
||||||
|
POTFILE="$PODIR/advtrains.pot"
|
||||||
|
|
||||||
|
xgettext \
|
||||||
|
-D "$ATDIR" \
|
||||||
|
-D "$BTDIR" \
|
||||||
|
-d advtrains \
|
||||||
|
-o "$POTFILE" \
|
||||||
|
-p . \
|
||||||
|
-L lua \
|
||||||
|
--from-code=UTF-8 \
|
||||||
|
--sort-by-file \
|
||||||
|
--keyword='attrans' \
|
||||||
|
--keyword='S' \
|
||||||
|
--package-name='advtrains' \
|
||||||
|
--msgid-bugs-address='advtrains-discuss@lists.sr.ht' \
|
||||||
|
`find $ATDIR $BTDIR -name '*.lua' -printf '%P\n'` \
|
||||||
|
&&
|
||||||
|
for i in "$PODIR"/*.po; do
|
||||||
|
msgmerge -U \
|
||||||
|
--sort-by-file \
|
||||||
|
$i "$POTFILE"
|
||||||
|
done
|
|
@ -0,0 +1,696 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: advtrains\n"
|
||||||
|
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
|
||||||
|
"POT-Creation-Date: 2023-10-09 11:02+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-10-09 11: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:109
|
||||||
|
msgid "Unconfigured ATC controller"
|
||||||
|
msgstr "ATC 控制器 (未配置)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:150
|
||||||
|
msgid ""
|
||||||
|
"ATC controller, mode @1\n"
|
||||||
|
"Command: @2"
|
||||||
|
msgstr ""
|
||||||
|
"ATC 控制器\n"
|
||||||
|
"模式:@1\n"
|
||||||
|
"命令:@2"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:180
|
||||||
|
msgid "Command"
|
||||||
|
msgstr "命令"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:184
|
||||||
|
msgid "Command (on)"
|
||||||
|
msgstr "命令 (激活时)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:187
|
||||||
|
msgid "Digiline channel"
|
||||||
|
msgstr "Digiline 频道"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
|
||||||
|
#: advtrains_luaautomation/active_common.lua:48
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "保存"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:236
|
||||||
|
msgid "ATC Reverse command warning: didn't reverse train, train moving."
|
||||||
|
msgstr "ATC 警告:火车正在移动,无法改变行车方向。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:248
|
||||||
|
msgid "ATC Kick command warning: doors are closed."
|
||||||
|
msgstr "ATC 警告:车门已关闭,无法踢出乘客。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:252
|
||||||
|
msgid "ATC Kick command warning: train moving."
|
||||||
|
msgstr "ATC 警告:火车正在移动,无法踢出乘客。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:322
|
||||||
|
msgid "ATC command syntax error: I statement not closed: @1"
|
||||||
|
msgstr "ATC 语法错误:“I”命令不完整:@1"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:385
|
||||||
|
msgid "ATC command parse error: Unknown command: @1"
|
||||||
|
msgstr "ATC 语法错误:未知命令:@1"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:8
|
||||||
|
msgid ""
|
||||||
|
"Train copy/paste tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: copy train\n"
|
||||||
|
"Right-click: paste train"
|
||||||
|
msgstr ""
|
||||||
|
"火车复制工具\n"
|
||||||
|
"\n"
|
||||||
|
"左键单击:复制\n"
|
||||||
|
"右键单击:粘帖"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:29
|
||||||
|
msgid "You do not have the @1 privilege."
|
||||||
|
msgstr "您没有“@1”权限。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:41
|
||||||
|
msgid "The track you are trying to place the wagon on is not long enough."
|
||||||
|
msgstr "轨道太短。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:47
|
||||||
|
msgid "The clipboard couldn't access the metadata. Paste failed."
|
||||||
|
msgstr "无法粘贴:剪贴板无法访问元数据。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
|
||||||
|
msgid "The clipboard is empty."
|
||||||
|
msgstr "剪贴板是空的。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:74
|
||||||
|
msgid "Back of train would end up off track, cancelling."
|
||||||
|
msgstr "火车后部不在轨道上。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:92
|
||||||
|
msgid "No such lua entity."
|
||||||
|
msgstr "您没有指向一个可以用火车复制工具复制的物体。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:98
|
||||||
|
msgid "No such wagon: @1."
|
||||||
|
msgstr "ID 为“@1”的车厢不存在。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:104
|
||||||
|
msgid "No such train: @1."
|
||||||
|
msgstr "ID 为“@1”的列车不存在。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:176
|
||||||
|
msgid "The clipboard couldn't access the metadata. Copy failed."
|
||||||
|
msgstr "无法复制:剪贴板无法访问元数据。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:180
|
||||||
|
msgid "Train copied."
|
||||||
|
msgstr "已复制列车。"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:28
|
||||||
|
msgid "Buffer and Chain Coupler"
|
||||||
|
msgstr "链式车钩"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:29
|
||||||
|
msgid "Scharfenberg Coupler"
|
||||||
|
msgstr "Scharfenberg 式车钩"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:185
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to couple trains without the train_operator privilege."
|
||||||
|
msgstr "您没有“train_operator”权限,不能连接这两节车厢。"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:329 advtrains/couple.lua:333
|
||||||
|
msgid "<No coupler>"
|
||||||
|
msgstr "<没有车钩>"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:334
|
||||||
|
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
|
||||||
|
msgstr "您无法连接这两节车厢:这两节车厢使用不同的车钩 (@1和@2)。"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:3
|
||||||
|
msgid "Boiler"
|
||||||
|
msgstr "锅炉"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:9
|
||||||
|
msgid "Driver's cab"
|
||||||
|
msgstr "驾驶室"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:15
|
||||||
|
msgid "Wheel"
|
||||||
|
msgstr "车轮"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:21
|
||||||
|
msgid "Chimney"
|
||||||
|
msgstr "烟囱"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:16
|
||||||
|
msgid "@1 Platform (low)"
|
||||||
|
msgstr "较低的@1站台"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:33
|
||||||
|
msgid "@1 Platform (high)"
|
||||||
|
msgstr "较高的@1站台"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:59
|
||||||
|
msgid "@1 Platform (45 degree)"
|
||||||
|
msgstr "较高的@1站台 (45°)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:81
|
||||||
|
msgid "@1 Platform (low, 45 degree)"
|
||||||
|
msgstr "较低的@1站台 (45°)"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:7
|
||||||
|
msgid "Can place, remove and operate trains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:12
|
||||||
|
msgid ""
|
||||||
|
"Can place, remove and operate any train, regardless of owner, whitelist, or "
|
||||||
|
"protection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:18
|
||||||
|
msgid "Can place and dig tracks in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:24
|
||||||
|
msgid "Can operate turnouts and signals in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build near tracks without the track_builder privilege."
|
||||||
|
msgstr "您没有“train_operator”权限,不能在铁路附近建任何东西。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build tracks without the track_builder privilege."
|
||||||
|
msgstr "您没有“train_operator”权限,不能在这里建造铁路。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build near tracks at this protected position."
|
||||||
|
msgstr "这里已被保护,您不能在这里的铁路附近建任何东西。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build tracks at this protected position."
|
||||||
|
msgstr "这里已被保护,您不能在这里建造铁路。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:184
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to operate turnouts and signals without the "
|
||||||
|
"railway_operator privilege."
|
||||||
|
msgstr "您没有“railway_operator”权限,不能控制铁路设施。"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:63
|
||||||
|
msgid "Lampless Signal"
|
||||||
|
msgstr "臂板信号机"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:127
|
||||||
|
msgid "Signal"
|
||||||
|
msgstr "信号灯"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:191
|
||||||
|
msgid "Wallmounted Signal (left)"
|
||||||
|
msgstr "壁挂式信号灯 (左侧)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:192
|
||||||
|
msgid "Wallmounted Signal (right)"
|
||||||
|
msgstr "壁挂式信号灯 (右侧)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:193
|
||||||
|
msgid "Wallmounted Signal (top)"
|
||||||
|
msgstr "悬挂式信号灯"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:281 advtrains/signals.lua:322
|
||||||
|
msgid "Andrew's Cross"
|
||||||
|
msgstr "铁路道口信号灯"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:313
|
||||||
|
msgid ""
|
||||||
|
"Track Worker Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: change rail type (straight/curve/switch)\n"
|
||||||
|
"Right-click: rotate object"
|
||||||
|
msgstr ""
|
||||||
|
"铁路调整工具\n"
|
||||||
|
"\n"
|
||||||
|
"左键单击:切换轨道类型\n"
|
||||||
|
"右键单击:旋转方块"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
|
||||||
|
msgid "This node can't be rotated using the trackworker."
|
||||||
|
msgstr "您不能使用铁路调整工具旋转这个方块。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:350
|
||||||
|
msgid "This track can not be rotated."
|
||||||
|
msgstr "您不能旋转这段轨道。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:404
|
||||||
|
msgid "This node can't be changed using the trackworker."
|
||||||
|
msgstr "您不能使用铁路调整工具调整这个方块。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:414
|
||||||
|
msgid "This track can not be changed."
|
||||||
|
msgstr "您不能调整这段轨道。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:449
|
||||||
|
msgid "This track can not be removed."
|
||||||
|
msgstr "您不能移除这段轨道。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:616
|
||||||
|
msgid "Position is occupied by a train."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:622
|
||||||
|
msgid "There's a Track Circuit Break here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:626
|
||||||
|
msgid "There's a Signal Influence Point here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:637
|
||||||
|
msgid "@1 Slope"
|
||||||
|
msgstr "@1斜坡"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
|
||||||
|
msgid "Can't place slope: not pointing at node."
|
||||||
|
msgstr "无法放置斜坡:您没有选择任何方块。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:658
|
||||||
|
msgid "Can't place slope: space occupied."
|
||||||
|
msgstr "无法放置斜坡:此区域已被占用。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:711
|
||||||
|
msgid "Can't place slope: Not enough slope items left (@1 required)."
|
||||||
|
msgstr "无法放置斜坡:您没有足够的铁路斜坡放置工具 (您总共需要@1个)"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:714
|
||||||
|
msgid "Can't place slope: There's no slope of length @1."
|
||||||
|
msgstr "无法放置斜坡:advtrains 不支持长度为@1米的斜坡。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:721
|
||||||
|
msgid "Can't place slope: no supporting node at upper end."
|
||||||
|
msgstr "无法放置斜坡:较高端没有支撑方块。"
|
||||||
|
|
||||||
|
#: advtrains/trainhud.lua:305
|
||||||
|
msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:179
|
||||||
|
msgid "This wagon is owned by @1, you can't destroy it."
|
||||||
|
msgstr "这是 @1 的车厢,您不能摧毁它。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:203
|
||||||
|
msgid "The wagon's inventory is not empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:210
|
||||||
|
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:216
|
||||||
|
msgid ""
|
||||||
|
"Warning: If you destroy this wagon, you only get some steel back! If you are "
|
||||||
|
"sure, hold Sneak and left-click the wagon."
|
||||||
|
msgstr ""
|
||||||
|
"警告:如果您摧毁此车厢,您只能拿到一些钢方块。如果您确定要摧毁这节车厢,请按"
|
||||||
|
"潜行键并左键单击此车厢。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
|
||||||
|
msgid "Show Inventory"
|
||||||
|
msgstr "显示物品栏"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:652
|
||||||
|
msgid "Onboard Computer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
|
||||||
|
msgid "Wagon properties"
|
||||||
|
msgstr "车厢属性"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:658
|
||||||
|
msgid "Get off"
|
||||||
|
msgstr "下车"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:661
|
||||||
|
msgid "Get off (forced)"
|
||||||
|
msgstr "强制下车"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:663
|
||||||
|
msgid "(Doors closed)"
|
||||||
|
msgstr "(车门已关闭)"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:692
|
||||||
|
msgid "This wagon has no seats."
|
||||||
|
msgstr "这节车厢没有座位。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:703
|
||||||
|
msgid "This wagon is full."
|
||||||
|
msgstr "车厢已满。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:706
|
||||||
|
msgid "Doors are closed! (Try holding sneak key!)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:712
|
||||||
|
msgid "You can't get on this wagon."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:838
|
||||||
|
msgid "Select seat:"
|
||||||
|
msgstr "请选择座位:"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:880
|
||||||
|
msgid "Save wagon properties"
|
||||||
|
msgstr "保存车厢属性"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:965
|
||||||
|
msgid "Text displayed outside on train"
|
||||||
|
msgstr "车厢外部显示"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:966
|
||||||
|
msgid "Text displayed inside train"
|
||||||
|
msgstr "车厢内部显示"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:967
|
||||||
|
msgid "Line"
|
||||||
|
msgstr "火车线路"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:968
|
||||||
|
msgid "Routingcode"
|
||||||
|
msgstr "路由码"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1241
|
||||||
|
msgid ""
|
||||||
|
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
|
||||||
|
"off."
|
||||||
|
msgstr "车门已关闭,请使用潜行+右键单击下车。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1250
|
||||||
|
msgid "You are not allowed to access the driver stand."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:13
|
||||||
|
msgid "Point speed restriction: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:14
|
||||||
|
msgid "Set point speed restriction:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:30
|
||||||
|
msgid "You are not allowed to configure this track without the @1 privilege."
|
||||||
|
msgstr "您没有“@1”权限,不能调整这段轨道。"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:34
|
||||||
|
#: advtrains_line_automation/stoprail.lua:31
|
||||||
|
#: advtrains_line_automation/stoprail.lua:76
|
||||||
|
msgid "You are not allowed to configure this track."
|
||||||
|
msgstr "您不能调整这段轨道。"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:64
|
||||||
|
msgid "Point Speed Restriction Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:54
|
||||||
|
msgid "Station Code"
|
||||||
|
msgstr "车站代码"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:55
|
||||||
|
msgid "Station Name"
|
||||||
|
msgstr "车站名称"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:56
|
||||||
|
msgid "Door Delay"
|
||||||
|
msgstr "车门关闭时间"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:57
|
||||||
|
msgid "Dep. Speed"
|
||||||
|
msgstr "出发速度"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
|
||||||
|
#: advtrains_train_track/init.lua:156
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "轨道"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:59
|
||||||
|
msgid "Stop Time"
|
||||||
|
msgstr "停站时间"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:60
|
||||||
|
msgid "Door Side"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:62
|
||||||
|
msgid "Reverse train"
|
||||||
|
msgstr "改变行车方向"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:63
|
||||||
|
msgid "Kick out passengers"
|
||||||
|
msgstr "踢出乘客"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:97
|
||||||
|
msgid "Station code \"@1\" already exists and is owned by @2."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:111
|
||||||
|
msgid "This station is owned by @1. You are not allowed to edit its name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:221
|
||||||
|
msgid "Station/Stop Track"
|
||||||
|
msgstr "车站轨道"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:17
|
||||||
|
msgid "Unconfigured LuaATC component"
|
||||||
|
msgstr "LuaATC 部件 (未配置)"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:46
|
||||||
|
msgid "LuaATC Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:49
|
||||||
|
msgid "Clear Local Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:50
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:64
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to configure this LuaATC component without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "您没有“@1”权限,不能配置这个 LuaATC 部件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:94
|
||||||
|
msgid "LuaATC component assigned to environment '@1'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:96
|
||||||
|
msgid "LuaATC component assigned to an invalid environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:171
|
||||||
|
msgid "LuaATC component with error: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/init.lua:13
|
||||||
|
msgid ""
|
||||||
|
"Can place and configure LuaATC components, including execute potentially "
|
||||||
|
"harmful Lua code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/mesecon_controller.lua:211
|
||||||
|
msgid "LuaATC Mesecon Controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/operation_panel.lua:11
|
||||||
|
msgid "LuaATC Operation Panel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:28
|
||||||
|
msgid ""
|
||||||
|
"Passive Component Naming Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Right-click to name a passive component."
|
||||||
|
msgstr ""
|
||||||
|
"被动元件命名工具\n"
|
||||||
|
"\n"
|
||||||
|
"右键单击命名所选元件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:39
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to name LuaATC passive components without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "您没有“@1”权限,不能命名被动元件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:62
|
||||||
|
msgid "Set name of component (empty to clear)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:10
|
||||||
|
#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
|
||||||
|
#: advtrains_train_steam/init.lua:91
|
||||||
|
msgid "Driver Stand (right)"
|
||||||
|
msgstr "右侧司机座位"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:17
|
||||||
|
#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
|
||||||
|
#: advtrains_train_steam/init.lua:85
|
||||||
|
msgid "Driver Stand (left)"
|
||||||
|
msgstr "左侧司机座位"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:40
|
||||||
|
msgid "Industrial Train Engine"
|
||||||
|
msgstr "工业用火车头"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:79
|
||||||
|
msgid "Big Industrial Train Engine"
|
||||||
|
msgstr "大型工业用火车头"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:98
|
||||||
|
msgid "Industrial tank wagon"
|
||||||
|
msgstr "液体运输车厢"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:116
|
||||||
|
msgid "Industrial wood wagon"
|
||||||
|
msgstr "木材运输车厢"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:4
|
||||||
|
msgid "Japanese Train Inter-Wagon Connection"
|
||||||
|
msgstr "日本火车车钩"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:37
|
||||||
|
msgid "Driver stand"
|
||||||
|
msgstr "司机座位"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:101
|
||||||
|
msgid "Japanese Train Engine"
|
||||||
|
msgstr "高速列车车头"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:176
|
||||||
|
msgid "Japanese Train Wagon"
|
||||||
|
msgstr "高速列车车厢"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:75
|
||||||
|
msgid "Steam Engine"
|
||||||
|
msgstr "蒸汽机车"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:159
|
||||||
|
msgid "Detailed Steam Engine"
|
||||||
|
msgstr "精细的蒸汽机车"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:206
|
||||||
|
msgid "Passenger Wagon"
|
||||||
|
msgstr "客车"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:226
|
||||||
|
msgid "Box Wagon"
|
||||||
|
msgstr "货运车厢"
|
||||||
|
|
||||||
|
#: advtrains_train_subway/init.lua:144
|
||||||
|
msgid "Subway Passenger Wagon"
|
||||||
|
msgstr "地铁车厢"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:31
|
||||||
|
msgid "Y-turnout"
|
||||||
|
msgstr "对称道岔"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:49
|
||||||
|
msgid "3-way turnout"
|
||||||
|
msgstr "三开道岔"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:69
|
||||||
|
msgid "Perpendicular Diamond Crossing Track"
|
||||||
|
msgstr "垂直交叉轨道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:91
|
||||||
|
msgid "90+Angle Diamond Crossing Track"
|
||||||
|
msgstr "交叉轨道 (其中一条轨道与坐标轴平行)"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:132
|
||||||
|
msgid "Diagonal Diamond Crossing Track"
|
||||||
|
msgstr "交叉轨道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:179
|
||||||
|
msgid "Bumper"
|
||||||
|
msgstr "保险杠"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:201
|
||||||
|
msgid "ATC controller"
|
||||||
|
msgstr "ATC 控制器"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:317
|
||||||
|
msgid "Unloading Track"
|
||||||
|
msgstr "卸货轨道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:342
|
||||||
|
msgid "Loading Track"
|
||||||
|
msgstr "装货轨道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:406
|
||||||
|
msgid "Detector Rail"
|
||||||
|
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 "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 "您必须至少拥有其中一节车厢才能分开这两节车厢。"
|
|
@ -0,0 +1,696 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: advtrains\n"
|
||||||
|
"Report-Msgid-Bugs-To: advtrains-discuss@lists.sr.ht\n"
|
||||||
|
"POT-Creation-Date: 2023-10-09 11:02+0200\n"
|
||||||
|
"PO-Revision-Date: 2023-10-09 11: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:109
|
||||||
|
msgid "Unconfigured ATC controller"
|
||||||
|
msgstr "ATC 控制器 (未配置)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:150
|
||||||
|
msgid ""
|
||||||
|
"ATC controller, mode @1\n"
|
||||||
|
"Command: @2"
|
||||||
|
msgstr ""
|
||||||
|
"ATC 控制器\n"
|
||||||
|
"模式:@1\n"
|
||||||
|
"命令:@2"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:180
|
||||||
|
msgid "Command"
|
||||||
|
msgstr "命令"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:184
|
||||||
|
msgid "Command (on)"
|
||||||
|
msgstr "命令 (啟用時)"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:187
|
||||||
|
msgid "Digiline channel"
|
||||||
|
msgstr "Digiline 頻道"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:189 advtrains_line_automation/stoprail.lua:65
|
||||||
|
#: advtrains_luaautomation/active_common.lua:48
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "儲存"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:236
|
||||||
|
msgid "ATC Reverse command warning: didn't reverse train, train moving."
|
||||||
|
msgstr "ATC 警告:火車正在移動,無法改變行車方向。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:248
|
||||||
|
msgid "ATC Kick command warning: doors are closed."
|
||||||
|
msgstr "ATC 警告:車門已關閉,無法踢出乘客。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:252
|
||||||
|
msgid "ATC Kick command warning: train moving."
|
||||||
|
msgstr "ATC 警告:火車正在移動,無法踢出乘客。"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:322
|
||||||
|
msgid "ATC command syntax error: I statement not closed: @1"
|
||||||
|
msgstr "ATC 語法錯誤:「I」命令不完整:@1"
|
||||||
|
|
||||||
|
#: advtrains/atc.lua:385
|
||||||
|
msgid "ATC command parse error: Unknown command: @1"
|
||||||
|
msgstr "ATC 語法錯誤:未知命令:@1"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:8
|
||||||
|
msgid ""
|
||||||
|
"Train copy/paste tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: copy train\n"
|
||||||
|
"Right-click: paste train"
|
||||||
|
msgstr ""
|
||||||
|
"火車複製工具\n"
|
||||||
|
"\n"
|
||||||
|
"左鍵單擊:複製\n"
|
||||||
|
"右鍵單擊:粘帖"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:29
|
||||||
|
msgid "You do not have the @1 privilege."
|
||||||
|
msgstr "您沒有「@1」許可權。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:41
|
||||||
|
msgid "The track you are trying to place the wagon on is not long enough."
|
||||||
|
msgstr "軌道太短。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:47
|
||||||
|
msgid "The clipboard couldn't access the metadata. Paste failed."
|
||||||
|
msgstr "無法貼上:剪貼簿無法訪問元資料。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:52 advtrains/copytool.lua:57
|
||||||
|
msgid "The clipboard is empty."
|
||||||
|
msgstr "剪貼簿是空的。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:74
|
||||||
|
msgid "Back of train would end up off track, cancelling."
|
||||||
|
msgstr "火車後部不在軌道上。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:92
|
||||||
|
msgid "No such lua entity."
|
||||||
|
msgstr "您沒有指向一個可以用火車複製工具複製的物體。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:98
|
||||||
|
msgid "No such wagon: @1."
|
||||||
|
msgstr "ID 為「@1」的車廂不存在。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:104
|
||||||
|
msgid "No such train: @1."
|
||||||
|
msgstr "ID 為「@1」的列車不存在。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:176
|
||||||
|
msgid "The clipboard couldn't access the metadata. Copy failed."
|
||||||
|
msgstr "無法複製:剪貼簿無法訪問元資料。"
|
||||||
|
|
||||||
|
#: advtrains/copytool.lua:180
|
||||||
|
msgid "Train copied."
|
||||||
|
msgstr "已複製火車。"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:28
|
||||||
|
msgid "Buffer and Chain Coupler"
|
||||||
|
msgstr "鏈式連結器"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:29
|
||||||
|
msgid "Scharfenberg Coupler"
|
||||||
|
msgstr "Scharfenberg 式連結器"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:185
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to couple trains without the train_operator privilege."
|
||||||
|
msgstr "您沒有「train_operator」許可權,不能連結這兩節車廂。"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:329 advtrains/couple.lua:333
|
||||||
|
msgid "<No coupler>"
|
||||||
|
msgstr "<無連結器>"
|
||||||
|
|
||||||
|
#: advtrains/couple.lua:334
|
||||||
|
msgid "Can not couple: The couplers of the trains do not match (@1 and @2)."
|
||||||
|
msgstr "您無法連結這兩節車廂:這兩節車廂使用不同的連結器 (@1和@2)。"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:3
|
||||||
|
msgid "Boiler"
|
||||||
|
msgstr "鍋爐"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:9
|
||||||
|
msgid "Driver's cab"
|
||||||
|
msgstr "駕駛室"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:15
|
||||||
|
msgid "Wheel"
|
||||||
|
msgstr "車輪"
|
||||||
|
|
||||||
|
#: advtrains/craft_items.lua:21
|
||||||
|
msgid "Chimney"
|
||||||
|
msgstr "煙囪"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:16
|
||||||
|
msgid "@1 Platform (low)"
|
||||||
|
msgstr "較低的@1月臺"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:33
|
||||||
|
msgid "@1 Platform (high)"
|
||||||
|
msgstr "較高的@1月臺"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:59
|
||||||
|
msgid "@1 Platform (45 degree)"
|
||||||
|
msgstr "較高的@1月臺 (45°)"
|
||||||
|
|
||||||
|
#: advtrains/misc_nodes.lua:81
|
||||||
|
msgid "@1 Platform (low, 45 degree)"
|
||||||
|
msgstr "較低的@1月臺 (45°)"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:7
|
||||||
|
msgid "Can place, remove and operate trains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:12
|
||||||
|
msgid ""
|
||||||
|
"Can place, remove and operate any train, regardless of owner, whitelist, or "
|
||||||
|
"protection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:18
|
||||||
|
msgid "Can place and dig tracks in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:24
|
||||||
|
msgid "Can operate turnouts and signals in unprotected areas"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build near tracks without the track_builder privilege."
|
||||||
|
msgstr "您沒有「train_operator」許可權,不能在鐵路附近建任何東西。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:148
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to build tracks without the track_builder privilege."
|
||||||
|
msgstr "您沒有「train_operator」許可權,不能在這裡建造鐵路。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build near tracks at this protected position."
|
||||||
|
msgstr "這裡已被保護,您不能在這裡的鐵路附近建任何東西。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:153
|
||||||
|
msgid "You are not allowed to build tracks at this protected position."
|
||||||
|
msgstr "這裡已被保護,您不能在這裡建造鐵路。"
|
||||||
|
|
||||||
|
#: advtrains/protection.lua:184
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to operate turnouts and signals without the "
|
||||||
|
"railway_operator privilege."
|
||||||
|
msgstr "您沒有「railway_operator」許可權,不能控制鐵路設施。"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:63
|
||||||
|
msgid "Lampless Signal"
|
||||||
|
msgstr "臂木式號誌機"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:127
|
||||||
|
msgid "Signal"
|
||||||
|
msgstr "色燈號誌機"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:191
|
||||||
|
msgid "Wallmounted Signal (left)"
|
||||||
|
msgstr "壁掛式色燈號誌機 (左側)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:192
|
||||||
|
msgid "Wallmounted Signal (right)"
|
||||||
|
msgstr "壁掛式色燈號誌機 (右側)"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:193
|
||||||
|
msgid "Wallmounted Signal (top)"
|
||||||
|
msgstr "懸掛式色燈號誌機"
|
||||||
|
|
||||||
|
#: advtrains/signals.lua:281 advtrains/signals.lua:322
|
||||||
|
msgid "Andrew's Cross"
|
||||||
|
msgstr "平交道號誌燈"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:313
|
||||||
|
msgid ""
|
||||||
|
"Track Worker Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Left-click: change rail type (straight/curve/switch)\n"
|
||||||
|
"Right-click: rotate object"
|
||||||
|
msgstr ""
|
||||||
|
"鐵路調整工具\n"
|
||||||
|
"\n"
|
||||||
|
"左鍵單擊:切換軌道型別\n"
|
||||||
|
"右鍵單擊:旋轉方塊"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:340 advtrains/trackplacer.lua:377
|
||||||
|
msgid "This node can't be rotated using the trackworker."
|
||||||
|
msgstr "您不能使用鐵路調整工具旋轉這個方塊。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:350
|
||||||
|
msgid "This track can not be rotated."
|
||||||
|
msgstr "您不能旋轉這段軌道。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:404
|
||||||
|
msgid "This node can't be changed using the trackworker."
|
||||||
|
msgstr "您不能使用鐵路調整工具調整這個方塊。"
|
||||||
|
|
||||||
|
#: advtrains/trackplacer.lua:414
|
||||||
|
msgid "This track can not be changed."
|
||||||
|
msgstr "您不能調整這段軌道。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:449
|
||||||
|
msgid "This track can not be removed."
|
||||||
|
msgstr "您不能移除這段軌道。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:616
|
||||||
|
msgid "Position is occupied by a train."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:622
|
||||||
|
msgid "There's a Track Circuit Break here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:626
|
||||||
|
msgid "There's a Signal Influence Point here."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:637
|
||||||
|
msgid "@1 Slope"
|
||||||
|
msgstr "@1斜坡"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:648 advtrains/tracks.lua:653
|
||||||
|
msgid "Can't place slope: not pointing at node."
|
||||||
|
msgstr "無法放置斜坡:您沒有選擇任何方塊。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:658
|
||||||
|
msgid "Can't place slope: space occupied."
|
||||||
|
msgstr "無法放置斜坡:此區域已被佔用。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:711
|
||||||
|
msgid "Can't place slope: Not enough slope items left (@1 required)."
|
||||||
|
msgstr "無法放置斜坡:您沒有足夠的鐵路斜坡放置工具 (您總共需要@1個)"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:714
|
||||||
|
msgid "Can't place slope: There's no slope of length @1."
|
||||||
|
msgstr "無法放置斜坡:advtrains 不支援長度為@1米的斜坡。"
|
||||||
|
|
||||||
|
#: advtrains/tracks.lua:721
|
||||||
|
msgid "Can't place slope: no supporting node at upper end."
|
||||||
|
msgstr "無法放置斜坡:較高階沒有支撐方塊。"
|
||||||
|
|
||||||
|
#: advtrains/trainhud.lua:305
|
||||||
|
msgid "OVERRUN RED SIGNAL! Examine situation and reverse train to move again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:179
|
||||||
|
msgid "This wagon is owned by @1, you can't destroy it."
|
||||||
|
msgstr "這是 @1 的車廂,您不能摧毀它。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:203
|
||||||
|
msgid "The wagon's inventory is not empty."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:210
|
||||||
|
msgid "Wagon needs to be decoupled from other wagons in order to destroy it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:216
|
||||||
|
msgid ""
|
||||||
|
"Warning: If you destroy this wagon, you only get some steel back! If you are "
|
||||||
|
"sure, hold Sneak and left-click the wagon."
|
||||||
|
msgstr ""
|
||||||
|
"警告:如果您摧毀此車廂,您只能拿到一些鋼方塊。如果您確定要摧毀這節車廂,請按"
|
||||||
|
"潛行鍵並左鍵單擊此車廂。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:649 advtrains/wagons.lua:850
|
||||||
|
msgid "Show Inventory"
|
||||||
|
msgstr "顯示物品欄"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:652
|
||||||
|
msgid "Onboard Computer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:655 advtrains/wagons.lua:1328
|
||||||
|
msgid "Wagon properties"
|
||||||
|
msgstr "車廂屬性"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:658
|
||||||
|
msgid "Get off"
|
||||||
|
msgstr "下車"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:661
|
||||||
|
msgid "Get off (forced)"
|
||||||
|
msgstr "強制下車"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:663
|
||||||
|
msgid "(Doors closed)"
|
||||||
|
msgstr "(車門已關閉)"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:692
|
||||||
|
msgid "This wagon has no seats."
|
||||||
|
msgstr "這節車廂沒有座位。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:703
|
||||||
|
msgid "This wagon is full."
|
||||||
|
msgstr "車廂已滿。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:706
|
||||||
|
msgid "Doors are closed! (Try holding sneak key!)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:712
|
||||||
|
msgid "You can't get on this wagon."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:838
|
||||||
|
msgid "Select seat:"
|
||||||
|
msgstr "請選擇座位:"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:880
|
||||||
|
msgid "Save wagon properties"
|
||||||
|
msgstr "儲存車廂屬性"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:965
|
||||||
|
msgid "Text displayed outside on train"
|
||||||
|
msgstr "車廂外部顯示"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:966
|
||||||
|
msgid "Text displayed inside train"
|
||||||
|
msgstr "車廂內部顯示"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:967
|
||||||
|
msgid "Line"
|
||||||
|
msgstr "火車線路"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:968
|
||||||
|
msgid "Routingcode"
|
||||||
|
msgstr "路由碼"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1241
|
||||||
|
msgid ""
|
||||||
|
"Doors are closed. Use Sneak+rightclick to ignore the closed doors and get "
|
||||||
|
"off."
|
||||||
|
msgstr "車門已關閉,請使用潛行+右鍵單擊下車。"
|
||||||
|
|
||||||
|
#: advtrains/wagons.lua:1250
|
||||||
|
msgid "You are not allowed to access the driver stand."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:13
|
||||||
|
msgid "Point speed restriction: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:14
|
||||||
|
msgid "Set point speed restriction:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:30
|
||||||
|
msgid "You are not allowed to configure this track without the @1 privilege."
|
||||||
|
msgstr "您沒有「@1」許可權,不能調整這段軌道。"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:34
|
||||||
|
#: advtrains_line_automation/stoprail.lua:31
|
||||||
|
#: advtrains_line_automation/stoprail.lua:76
|
||||||
|
msgid "You are not allowed to configure this track."
|
||||||
|
msgstr "您不能調整這段軌道。"
|
||||||
|
|
||||||
|
#: advtrains_interlocking/tsr_rail.lua:64
|
||||||
|
msgid "Point Speed Restriction Track"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:54
|
||||||
|
msgid "Station Code"
|
||||||
|
msgstr "車站碼"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:55
|
||||||
|
msgid "Station Name"
|
||||||
|
msgstr "車站名稱"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:56
|
||||||
|
msgid "Door Delay"
|
||||||
|
msgstr "車門關閉時間"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:57
|
||||||
|
msgid "Dep. Speed"
|
||||||
|
msgstr "出發速度"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:58 advtrains_train_track/init.lua:11
|
||||||
|
#: advtrains_train_track/init.lua:156
|
||||||
|
msgid "Track"
|
||||||
|
msgstr "軌道"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:59
|
||||||
|
msgid "Stop Time"
|
||||||
|
msgstr "停站時間"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:60
|
||||||
|
msgid "Door Side"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:62
|
||||||
|
msgid "Reverse train"
|
||||||
|
msgstr "改變行車方向"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:63
|
||||||
|
msgid "Kick out passengers"
|
||||||
|
msgstr "踢出乘客"
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:97
|
||||||
|
msgid "Station code \"@1\" already exists and is owned by @2."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:111
|
||||||
|
msgid "This station is owned by @1. You are not allowed to edit its name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_line_automation/stoprail.lua:221
|
||||||
|
msgid "Station/Stop Track"
|
||||||
|
msgstr "車站軌道"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:17
|
||||||
|
msgid "Unconfigured LuaATC component"
|
||||||
|
msgstr "LuaATC 元件 (未配置)"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:46
|
||||||
|
msgid "LuaATC Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:49
|
||||||
|
msgid "Clear Local Environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:50
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:64
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to configure this LuaATC component without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "您沒有「@1」許可權,不能配置這個 LuaATC 元件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:94
|
||||||
|
msgid "LuaATC component assigned to environment '@1'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:96
|
||||||
|
msgid "LuaATC component assigned to an invalid environment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/active_common.lua:171
|
||||||
|
msgid "LuaATC component with error: @1"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/init.lua:13
|
||||||
|
msgid ""
|
||||||
|
"Can place and configure LuaATC components, including execute potentially "
|
||||||
|
"harmful Lua code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/mesecon_controller.lua:211
|
||||||
|
msgid "LuaATC Mesecon Controller"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/operation_panel.lua:11
|
||||||
|
msgid "LuaATC Operation Panel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:28
|
||||||
|
msgid ""
|
||||||
|
"Passive Component Naming Tool\n"
|
||||||
|
"\n"
|
||||||
|
"Right-click to name a passive component."
|
||||||
|
msgstr ""
|
||||||
|
"被動元件命名工具\n"
|
||||||
|
"\n"
|
||||||
|
"右鍵單擊命名所選元件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:39
|
||||||
|
msgid ""
|
||||||
|
"You are not allowed to name LuaATC passive components without the @1 "
|
||||||
|
"privilege."
|
||||||
|
msgstr "您沒有「@1」許可權,不能命名這個元件。"
|
||||||
|
|
||||||
|
#: advtrains_luaautomation/pcnaming.lua:62
|
||||||
|
msgid "Set name of component (empty to clear)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:10
|
||||||
|
#: advtrains_train_industrial/init.lua:49 advtrains_train_steam/init.lua:20
|
||||||
|
#: advtrains_train_steam/init.lua:91
|
||||||
|
msgid "Driver Stand (right)"
|
||||||
|
msgstr "右側司機座位"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:17
|
||||||
|
#: advtrains_train_industrial/init.lua:56 advtrains_train_steam/init.lua:14
|
||||||
|
#: advtrains_train_steam/init.lua:85
|
||||||
|
msgid "Driver Stand (left)"
|
||||||
|
msgstr "左側司機座位"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:40
|
||||||
|
msgid "Industrial Train Engine"
|
||||||
|
msgstr "工業用火車頭"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:79
|
||||||
|
msgid "Big Industrial Train Engine"
|
||||||
|
msgstr "大型工業用火車頭"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:98
|
||||||
|
msgid "Industrial tank wagon"
|
||||||
|
msgstr "液體運輸車廂"
|
||||||
|
|
||||||
|
#: advtrains_train_industrial/init.lua:116
|
||||||
|
msgid "Industrial wood wagon"
|
||||||
|
msgstr "木材運輸車廂"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:4
|
||||||
|
msgid "Japanese Train Inter-Wagon Connection"
|
||||||
|
msgstr "日本火車連結器"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:37
|
||||||
|
msgid "Driver stand"
|
||||||
|
msgstr "司機座位"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:101
|
||||||
|
msgid "Japanese Train Engine"
|
||||||
|
msgstr "高速列車車頭"
|
||||||
|
|
||||||
|
#: advtrains_train_japan/init.lua:176
|
||||||
|
msgid "Japanese Train Wagon"
|
||||||
|
msgstr "高速列車車廂"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:75
|
||||||
|
msgid "Steam Engine"
|
||||||
|
msgstr "蒸汽機車"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:159
|
||||||
|
msgid "Detailed Steam Engine"
|
||||||
|
msgstr "精細的蒸汽機車"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:206
|
||||||
|
msgid "Passenger Wagon"
|
||||||
|
msgstr "客車"
|
||||||
|
|
||||||
|
#: advtrains_train_steam/init.lua:226
|
||||||
|
msgid "Box Wagon"
|
||||||
|
msgstr "貨運車廂"
|
||||||
|
|
||||||
|
#: advtrains_train_subway/init.lua:144
|
||||||
|
msgid "Subway Passenger Wagon"
|
||||||
|
msgstr "地鐵車廂"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:31
|
||||||
|
msgid "Y-turnout"
|
||||||
|
msgstr "對稱道岔"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:49
|
||||||
|
msgid "3-way turnout"
|
||||||
|
msgstr "三開道岔"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:69
|
||||||
|
msgid "Perpendicular Diamond Crossing Track"
|
||||||
|
msgstr "垂直交叉軌道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:91
|
||||||
|
msgid "90+Angle Diamond Crossing Track"
|
||||||
|
msgstr "交叉軌道 (其中一條軌道與座標軸平行)"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:132
|
||||||
|
msgid "Diagonal Diamond Crossing Track"
|
||||||
|
msgstr "交叉軌道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:179
|
||||||
|
msgid "Bumper"
|
||||||
|
msgstr "保險槓"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:201
|
||||||
|
msgid "ATC controller"
|
||||||
|
msgstr "ATC 控制器"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:317
|
||||||
|
msgid "Unloading Track"
|
||||||
|
msgstr "卸貨軌道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:342
|
||||||
|
msgid "Loading Track"
|
||||||
|
msgstr "裝貨軌道"
|
||||||
|
|
||||||
|
#: advtrains_train_track/init.lua:406
|
||||||
|
msgid "Detector Rail"
|
||||||
|
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 "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 "您必須至少擁有其中一節車廂才能分開這兩節車廂。"
|
|
@ -0,0 +1,185 @@
|
||||||
|
local unescape_string
|
||||||
|
do
|
||||||
|
local schartbl = { -- https://en.wikipedia.org/wiki/Escape_sequences_in_C
|
||||||
|
a = "\a",
|
||||||
|
b = "\b",
|
||||||
|
e = string.char(0x1b),
|
||||||
|
f = "\f",
|
||||||
|
n = "\n",
|
||||||
|
r = "\r",
|
||||||
|
t = "\t",
|
||||||
|
v = "\v",
|
||||||
|
}
|
||||||
|
local function replace_single(pfx, c)
|
||||||
|
local pl = #pfx
|
||||||
|
if pl % 2 == 0 then
|
||||||
|
return string.sub(pfx, 1, pl/2) .. c
|
||||||
|
end
|
||||||
|
return string.sub(pfx, 1, math.floor(pl/2)) .. (schartbl[c] or c)
|
||||||
|
end
|
||||||
|
unescape_string = function(str)
|
||||||
|
return string.gsub(str, [[(\+)([abefnrtv'"?])]], replace_single)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readstring_aux(str, pos)
|
||||||
|
local _, spos = string.find(str, [[^%s*"]], pos)
|
||||||
|
if not spos then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
local ipos = spos
|
||||||
|
while true do
|
||||||
|
local _, epos, m = string.find(str, [[(\*)"]], ipos+1)
|
||||||
|
if not epos then
|
||||||
|
return error("String extends beyond the end of input")
|
||||||
|
end
|
||||||
|
ipos = epos
|
||||||
|
if #m % 2 == 0 then
|
||||||
|
return unescape_string(string.sub(str, spos+1, epos-1)), epos+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readstring(str, pos)
|
||||||
|
local st = {}
|
||||||
|
local nxt = pos
|
||||||
|
while true do
|
||||||
|
local s, npos = readstring_aux(str, nxt)
|
||||||
|
if not s then
|
||||||
|
if not st[1] then
|
||||||
|
return nil, nxt
|
||||||
|
else
|
||||||
|
return table.concat(st), nxt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
nxt = npos
|
||||||
|
table.insert(st, s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readtoken(str, pos)
|
||||||
|
local _, epos, tok = string.find(str, [[^%s*(%S+)]], pos)
|
||||||
|
if epos == nil then
|
||||||
|
return nil, pos
|
||||||
|
end
|
||||||
|
return tok, epos+1
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readcomment_add_flags(flags, s)
|
||||||
|
for flag in string.gmatch(s, ",%s*([^,]+)") do
|
||||||
|
flags[flag] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readcomment_aux(str, pos)
|
||||||
|
local _, epos, sval = string.find(str, "^\n*#([^\n]*)", pos)
|
||||||
|
if not epos then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
return sval, epos+1
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readcomment(str, pos)
|
||||||
|
local st = {}
|
||||||
|
local nxt = pos
|
||||||
|
local flags = {}
|
||||||
|
while true do
|
||||||
|
local s, npos = readcomment_aux(str, nxt)
|
||||||
|
if not npos then
|
||||||
|
local t = {
|
||||||
|
comment = table.concat(st, "\n"),
|
||||||
|
flags = flags,
|
||||||
|
}
|
||||||
|
return t, nxt
|
||||||
|
end
|
||||||
|
if string.sub(s, 1, 1) == "," then
|
||||||
|
readcomment_add_flags(flags, s)
|
||||||
|
end
|
||||||
|
table.insert(st, s)
|
||||||
|
nxt = npos
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function readpo(str)
|
||||||
|
local st = {}
|
||||||
|
local pos = 1
|
||||||
|
while true do
|
||||||
|
local entry, nxt = readcomment(str, pos)
|
||||||
|
local msglines = 0
|
||||||
|
while true do
|
||||||
|
local tok, npos = readtoken(str, nxt)
|
||||||
|
if tok == nil or string.sub(tok, 1, 1) == "#" then
|
||||||
|
break
|
||||||
|
elseif string.sub(tok, 1, 3) ~= "msg" then
|
||||||
|
return error("Invalid token: " .. tok)
|
||||||
|
elseif entry[tok] ~= nil then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
local value, npos = readstring(str, npos)
|
||||||
|
assert(value ~= nil, "No string provided for " .. tok)
|
||||||
|
entry[tok] = value
|
||||||
|
nxt = npos
|
||||||
|
msglines = msglines+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if msglines == 0 then
|
||||||
|
return st
|
||||||
|
elseif entry.msgid ~= "" then
|
||||||
|
assert(entry.msgid ~= nil, "Missing untranslated string")
|
||||||
|
assert(entry.msgstr ~= nil, "Missing translated string")
|
||||||
|
table.insert(st, entry)
|
||||||
|
end
|
||||||
|
pos = nxt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local escape_lookup = {
|
||||||
|
["="] = "@=",
|
||||||
|
["\n"] = "@n"
|
||||||
|
}
|
||||||
|
local function escape_string(st)
|
||||||
|
return (string.gsub(st, "[=\n]", escape_lookup))
|
||||||
|
end
|
||||||
|
|
||||||
|
local function convert_po_string(textdomain, str)
|
||||||
|
local st = {string.format("# textdomain: %s", textdomain)}
|
||||||
|
for _, entry in ipairs(readpo(str)) do
|
||||||
|
local line = ("%s=%s"):format(escape_string(entry.msgid), escape_string(entry.msgstr))
|
||||||
|
if entry.flags.fuzzy then
|
||||||
|
line = "#" .. line
|
||||||
|
end
|
||||||
|
table.insert(st, line)
|
||||||
|
end
|
||||||
|
return table.concat(st, "\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function convert_po_file(textdomain, inpath, outpath)
|
||||||
|
local f, err = io.open(inpath, "rb")
|
||||||
|
assert(f, err)
|
||||||
|
local str = convert_po_string(textdomain, f:read("*a"))
|
||||||
|
f:close()
|
||||||
|
minetest.safe_file_write(outpath, str)
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
|
local function convert_flat_po_directory(textdomain, modpath)
|
||||||
|
assert(textdomain, "No textdomain specified for po file conversion")
|
||||||
|
local mp = modpath or minetest.get_modpath(textdomain)
|
||||||
|
assert(mp ~= nil, "No path to write for " .. textdomain)
|
||||||
|
local popath = mp .. "/po"
|
||||||
|
local trpath = mp .. "/locale"
|
||||||
|
for _, infile in pairs(minetest.get_dir_list(popath, false)) do
|
||||||
|
local lang = string.match(infile, [[^([^%.]+)%.po$]])
|
||||||
|
if lang then
|
||||||
|
local inpath = popath .. "/" .. infile
|
||||||
|
local outpath = ("%s/%s.%s.tr"):format(trpath, textdomain, lang)
|
||||||
|
convert_po_file(textdomain, inpath, outpath)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
from_string = convert_po_string,
|
||||||
|
from_file = convert_po_file,
|
||||||
|
from_flat = convert_flat_po_directory,
|
||||||
|
}
|
|
@ -4,24 +4,24 @@
|
||||||
|
|
||||||
-- Privileges to control TRAIN DRIVING/COUPLING
|
-- Privileges to control TRAIN DRIVING/COUPLING
|
||||||
minetest.register_privilege("train_operator", {
|
minetest.register_privilege("train_operator", {
|
||||||
description = "Without this privilege, a player can't do anything about trains, neither place or remove them nor drive or couple them (but he can build tracks if he has track_builder)",
|
description = attrans("Can place, remove and operate trains"),
|
||||||
give_to_singleplayer= true,
|
give_to_singleplayer= true,
|
||||||
});
|
});
|
||||||
|
|
||||||
minetest.register_privilege("train_admin", {
|
minetest.register_privilege("train_admin", {
|
||||||
description = "Player may drive, place or remove any trains from/to anywhere, regardless of owner, whitelist or protection",
|
description = attrans("Can place, remove and operate any train, regardless of owner, whitelist, or protection"),
|
||||||
give_to_singleplayer= true,
|
give_to_singleplayer= true,
|
||||||
});
|
});
|
||||||
|
|
||||||
-- Privileges to control TRACK BUILDING
|
-- Privileges to control TRACK BUILDING
|
||||||
minetest.register_privilege("track_builder", {
|
minetest.register_privilege("track_builder", {
|
||||||
description = "Player can place and/or dig rails not protected from him. If he also has protection_bypass, he can place/dig any rails",
|
description = attrans("Can place and dig tracks in unprotected areas"),
|
||||||
give_to_singleplayer= true,
|
give_to_singleplayer= true,
|
||||||
});
|
});
|
||||||
|
|
||||||
-- Privileges to control OPERATING TURNOUTS/SIGNALS
|
-- Privileges to control OPERATING TURNOUTS/SIGNALS
|
||||||
minetest.register_privilege("railway_operator", {
|
minetest.register_privilege("railway_operator", {
|
||||||
description = "Player can operate turnouts and signals not protected from him. If he also has protection_bypass, he can operate any turnouts/signals",
|
description = attrans("Can operate turnouts and signals in unprotected areas"),
|
||||||
give_to_singleplayer= true,
|
give_to_singleplayer= true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -145,12 +145,12 @@ function advtrains.check_track_protection(pos, pname, near, prot_p)
|
||||||
--atdebug("CTP: ",pos,pname,near,prot_p,"priv=",priv,"prot=",prot,"dprot=",dprot)
|
--atdebug("CTP: ",pos,pname,near,prot_p,"priv=",priv,"prot=",prot,"dprot=",dprot)
|
||||||
|
|
||||||
if not priv and (not boo or prot or not dprot) then
|
if not priv and (not boo or prot or not dprot) then
|
||||||
minetest.chat_send_player(pname, "You are not allowed to build "..nears.."tracks without track_builder privilege")
|
minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks without the track_builder privilege.") or attrans("You are not allowed to build tracks without the track_builder privilege."))
|
||||||
minetest.log("action", pname.." tried to modify terrain "..nears.."track at "..minetest.pos_to_string(apos).." but is not permitted to (no privilege)")
|
minetest.log("action", pname.." tried to modify terrain "..nears.."track at "..minetest.pos_to_string(apos).." but is not permitted to (no privilege)")
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
if prot then
|
if prot then
|
||||||
minetest.chat_send_player(pname, "You are not allowed to build "..nears.."tracks at protected position!")
|
minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks at this protected position.") or attrans("You are not allowed to build tracks at this protected position."))
|
||||||
minetest.record_protection_violation(pos, pname)
|
minetest.record_protection_violation(pos, pname)
|
||||||
minetest.log("action", pname.." tried to modify "..nears.."track at "..minetest.pos_to_string(apos).." but position is protected!")
|
minetest.log("action", pname.." tried to modify "..nears.."track at "..minetest.pos_to_string(apos).." but position is protected!")
|
||||||
return false
|
return false
|
||||||
|
@ -181,7 +181,7 @@ function advtrains.check_turnout_signal_protection(pos, pname)
|
||||||
nocheck=false
|
nocheck=false
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(pname, "You are not allowed to operate turnouts and signals (missing railway_operator privilege)")
|
minetest.chat_send_player(pname, attrans("You are not allowed to operate turnouts and signals without the railway_operator privilege."))
|
||||||
minetest.log("action", pname.." tried to operate turnout/signal at "..minetest.pos_to_string(pos).." but does not have railway_operator")
|
minetest.log("action", pname.." tried to operate turnout/signal at "..minetest.pos_to_string(pos).." but does not have railway_operator")
|
||||||
nocheck=false
|
nocheck=false
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -60,7 +60,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
|
||||||
tiles = {"advtrains_retrosignal.png"},
|
tiles = {"advtrains_retrosignal.png"},
|
||||||
inventory_image="advtrains_retrosignal_inv.png",
|
inventory_image="advtrains_retrosignal_inv.png",
|
||||||
drop="advtrains:retrosignal_off",
|
drop="advtrains:retrosignal_off",
|
||||||
description=attrans("Lampless Signal (@1)", attrans(r..rotation)),
|
description=attrans("Lampless Signal"),
|
||||||
sunlight_propagates=true,
|
sunlight_propagates=true,
|
||||||
groups = {
|
groups = {
|
||||||
cracky=3,
|
cracky=3,
|
||||||
|
@ -124,7 +124,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
|
||||||
tiles = {"advtrains_signal_"..r..".png"},
|
tiles = {"advtrains_signal_"..r..".png"},
|
||||||
inventory_image="advtrains_signal_inv.png",
|
inventory_image="advtrains_signal_inv.png",
|
||||||
drop="advtrains:signal_off",
|
drop="advtrains:signal_off",
|
||||||
description=attrans("Signal (@1)", attrans(r..rotation)),
|
description=attrans("Signal"),
|
||||||
groups = {
|
groups = {
|
||||||
cracky=3,
|
cracky=3,
|
||||||
not_blocking_trains=1,
|
not_blocking_trains=1,
|
||||||
|
@ -187,6 +187,11 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
|
||||||
if r=="off" then crea=0 end
|
if r=="off" then crea=0 end
|
||||||
|
|
||||||
--tunnel signals. no rotations.
|
--tunnel signals. no rotations.
|
||||||
|
local swdesc = { -- needed for xgettext
|
||||||
|
l = attrans("Wallmounted Signal (left)"),
|
||||||
|
r = attrans("Wallmounted Signal (right)"),
|
||||||
|
t = attrans("Wallmounted Signal (top)"),
|
||||||
|
}
|
||||||
for loc, sbox in pairs({l={-1/2, -1/2, -1/4, 0, 1/2, 1/4}, r={0, -1/2, -1/4, 1/2, 1/2, 1/4}, t={-1/2, 0, -1/4, 1/2, 1/2, 1/4}}) do
|
for loc, sbox in pairs({l={-1/2, -1/2, -1/4, 0, 1/2, 1/4}, r={0, -1/2, -1/4, 1/2, 1/2, 1/4}, t={-1/2, 0, -1/4, 1/2, 1/2, 1/4}}) do
|
||||||
minetest.register_node("advtrains:signal_wall_"..loc.."_"..r, {
|
minetest.register_node("advtrains:signal_wall_"..loc.."_"..r, {
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
|
@ -200,7 +205,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
|
||||||
mesh = "advtrains_signal_wall_"..loc..".b3d",
|
mesh = "advtrains_signal_wall_"..loc..".b3d",
|
||||||
tiles = {"advtrains_signal_wall_"..r..".png"},
|
tiles = {"advtrains_signal_wall_"..r..".png"},
|
||||||
drop="advtrains:signal_wall_"..loc.."_off",
|
drop="advtrains:signal_wall_"..loc.."_off",
|
||||||
description=attrans("Wallmounted Signal ("..loc..")"),
|
description=swdesc[loc],
|
||||||
groups = {
|
groups = {
|
||||||
cracky=3,
|
cracky=3,
|
||||||
not_blocking_trains=1,
|
not_blocking_trains=1,
|
||||||
|
@ -314,7 +319,7 @@ minetest.register_node("advtrains:across_on", {
|
||||||
mesh = "advtrains_across.obj",
|
mesh = "advtrains_across.obj",
|
||||||
tiles = {{name="advtrains_across_anim.png", animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.0}}},
|
tiles = {{name="advtrains_across_anim.png", animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.0}}},
|
||||||
drop="advtrains:across_off",
|
drop="advtrains:across_off",
|
||||||
description=attrans("Andrew's Cross (on) (you hacker you)"),
|
description=attrans("Andrew's Cross"),
|
||||||
groups = {
|
groups = {
|
||||||
cracky=3,
|
cracky=3,
|
||||||
not_blocking_trains=1,
|
not_blocking_trains=1,
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package.path = "../?.lua;" .. package.path
|
||||||
|
advtrains = {}
|
||||||
|
_G.advtrains = advtrains
|
||||||
|
local poconvert = require("poconvert")
|
||||||
|
|
||||||
|
describe("PO file converter", function()
|
||||||
|
it("should convert PO files", function()
|
||||||
|
assert.equals([[
|
||||||
|
# textdomain: foo
|
||||||
|
foo=bar
|
||||||
|
baz=
|
||||||
|
#@=wh\at\\@n=@=w\as\\@n
|
||||||
|
multiline@nstrings=multiline@nresult
|
||||||
|
with context?=oder doch nicht]], poconvert.from_string("foo", [[
|
||||||
|
msgid ""
|
||||||
|
msgstr "whatever metadata"
|
||||||
|
|
||||||
|
msgid "foo"
|
||||||
|
msgstr "bar"
|
||||||
|
|
||||||
|
msgid "baz"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "=wh\\at\\\\\n"
|
||||||
|
msgstr "=w\\as\\\\\n"
|
||||||
|
|
||||||
|
msgid "multi"
|
||||||
|
"line\n"
|
||||||
|
"strings"
|
||||||
|
msgstr "multi"
|
||||||
|
"line\n"
|
||||||
|
"result"
|
||||||
|
|
||||||
|
msgctxt "i18n context"
|
||||||
|
msgid "with context?"
|
||||||
|
msgstr "oder doch nicht"]]))
|
||||||
|
end)
|
||||||
|
it("should reject invalid tokens", function()
|
||||||
|
assert.has.errors(function()
|
||||||
|
poconvert.from_string("", [[
|
||||||
|
foo ""
|
||||||
|
bar ""]])
|
||||||
|
end, "Invalid token: foo")
|
||||||
|
end)
|
||||||
|
it("should reject entries without a msgstr", function()
|
||||||
|
assert.has.errors(function()
|
||||||
|
poconvert.from_string("", [[msgid "foo"]])
|
||||||
|
end, "Missing translated string")
|
||||||
|
end)
|
||||||
|
it("should reject entries without a msgid", function()
|
||||||
|
assert.has.errors(function()
|
||||||
|
poconvert.from_string("", [[msgstr "foo"]])
|
||||||
|
end, "Missing untranslated string")
|
||||||
|
end)
|
||||||
|
it("should reject entries with improperly enclosed strings", function()
|
||||||
|
assert.has.errors(function()
|
||||||
|
poconvert.from_string("", [[
|
||||||
|
msgid "foo"
|
||||||
|
msgstr "bar \]])
|
||||||
|
end, "String extends beyond the end of input")
|
||||||
|
end)
|
||||||
|
it("should reject incomplete input", function()
|
||||||
|
assert.has.errors(function()
|
||||||
|
poconvert.from_string("", [[
|
||||||
|
msgid "foo"
|
||||||
|
msgstr]])
|
||||||
|
end, "No string provided for msgstr")
|
||||||
|
end)
|
||||||
|
end)
|
|
@ -310,7 +310,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craftitem("advtrains:trackworker",{
|
minetest.register_craftitem("advtrains:trackworker",{
|
||||||
description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate rail/bumper/signal/etc."),
|
description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"),
|
||||||
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
|
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
|
||||||
inventory_image = "advtrains_trackworker.png",
|
inventory_image = "advtrains_trackworker.png",
|
||||||
wield_image = "advtrains_trackworker.png",
|
wield_image = "advtrains_trackworker.png",
|
||||||
|
@ -337,7 +337,7 @@ minetest.register_craftitem("advtrains:trackworker",{
|
||||||
nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$")
|
nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$")
|
||||||
rotation = ""
|
rotation = ""
|
||||||
if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twrotate[suffix] then
|
if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twrotate[suffix] then
|
||||||
minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!"))
|
minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -347,7 +347,7 @@ minetest.register_craftitem("advtrains:trackworker",{
|
||||||
-- is a track, we can query
|
-- is a track, we can query
|
||||||
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
|
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
|
||||||
if not can_modify then
|
if not can_modify then
|
||||||
local str = attrans("This track can not be rotated!")
|
local str = attrans("This track can not be rotated.")
|
||||||
if reason then
|
if reason then
|
||||||
str = str .. " " .. reason
|
str = str .. " " .. reason
|
||||||
end
|
end
|
||||||
|
@ -374,7 +374,7 @@ minetest.register_craftitem("advtrains:trackworker",{
|
||||||
if v==rotation then modpos=k end
|
if v==rotation then modpos=k end
|
||||||
end
|
end
|
||||||
if not modpos then
|
if not modpos then
|
||||||
minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!"))
|
minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
advtrains.ndb.swap_node(pos, {name=nnprefix.."_"..suffix..modext[modpos+1], param2=node.param2})
|
advtrains.ndb.swap_node(pos, {name=nnprefix.."_"..suffix..modext[modpos+1], param2=node.param2})
|
||||||
|
@ -401,7 +401,7 @@ minetest.register_craftitem("advtrains:trackworker",{
|
||||||
nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$")
|
nnprefix, suffix=string.match(node.name, "^(.+)_([^_]+)$")
|
||||||
rotation = ""
|
rotation = ""
|
||||||
if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twcycle[suffix] then
|
if not tp.tracks[nnprefix] or not tp.tracks[nnprefix].twcycle[suffix] then
|
||||||
minetest.chat_send_player(user:get_player_name(), attrans("This node can't be changed using the trackworker!"))
|
minetest.chat_send_player(user:get_player_name(), attrans("This node can't be changed using the trackworker."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -411,7 +411,7 @@ minetest.register_craftitem("advtrains:trackworker",{
|
||||||
-- is a track, we can query
|
-- is a track, we can query
|
||||||
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
|
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
|
||||||
if not can_modify then
|
if not can_modify then
|
||||||
local str = attrans("This track can not be changed!")
|
local str = attrans("This track can not be changed.")
|
||||||
if reason then
|
if reason then
|
||||||
str = str .. " " .. reason
|
str = str .. " " .. reason
|
||||||
end
|
end
|
||||||
|
|
|
@ -446,7 +446,7 @@ Depending on the number of connections:
|
||||||
local function can_dig_callback(pos, player)
|
local function can_dig_callback(pos, player)
|
||||||
local ok, reason = advtrains.can_dig_or_modify_track(pos)
|
local ok, reason = advtrains.can_dig_or_modify_track(pos)
|
||||||
if not ok and player then
|
if not ok and player then
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason)
|
minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed.") .. " " .. reason)
|
||||||
end
|
end
|
||||||
return ok
|
return ok
|
||||||
end
|
end
|
||||||
|
@ -646,17 +646,17 @@ end
|
||||||
function sl.create_slopeplacer_on_place(def, preset)
|
function sl.create_slopeplacer_on_place(def, preset)
|
||||||
return function(istack, player, pt)
|
return function(istack, player, pt)
|
||||||
if not pt.type=="node" then
|
if not pt.type=="node" then
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: not pointing at node."))
|
||||||
return istack
|
return istack
|
||||||
end
|
end
|
||||||
local pos=pt.above
|
local pos=pt.above
|
||||||
if not pos then
|
if not pos then
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: not pointing at node."))
|
||||||
return istack
|
return istack
|
||||||
end
|
end
|
||||||
local node=minetest.get_node(pos)
|
local node=minetest.get_node(pos)
|
||||||
if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].buildable_to then
|
if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].buildable_to then
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: space occupied!"))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: space occupied."))
|
||||||
return istack
|
return istack
|
||||||
end
|
end
|
||||||
if not advtrains.check_track_protection(pos, player:get_player_name()) then
|
if not advtrains.check_track_protection(pos, player:get_player_name()) then
|
||||||
|
@ -709,17 +709,17 @@ function sl.create_slopeplacer_on_place(def, preset)
|
||||||
pos=vector.subtract(pos, dirvec)
|
pos=vector.subtract(pos, dirvec)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: Not enough slope items left (@1 required)", step))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: Not enough slope items left (@1 required).", step))
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: There's no slope of length @1",step))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: There's no slope of length @1.",step))
|
||||||
end
|
end
|
||||||
return istack
|
return istack
|
||||||
end
|
end
|
||||||
step=step+1
|
step=step+1
|
||||||
pos=vector.add(pos, dirvec)
|
pos=vector.add(pos, dirvec)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(player:get_player_name(), attrans("Can't place: no supporting node at upper end."))
|
minetest.chat_send_player(player:get_player_name(), attrans("Can't place slope: no supporting node at upper end."))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -213,7 +213,7 @@ function wagon:on_punch(puncher, time_from_last_punch, tool_capabilities, direct
|
||||||
end
|
end
|
||||||
for listname, _ in pairs(inv:get_lists()) do
|
for listname, _ in pairs(inv:get_lists()) do
|
||||||
if not inv:is_empty(listname) then
|
if not inv:is_empty(listname) then
|
||||||
minetest.chat_send_player(puncher:get_player_name(), attrans("The wagon's inventory is not empty!"));
|
minetest.chat_send_player(puncher:get_player_name(), attrans("The wagon's inventory is not empty."));
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -711,7 +711,7 @@ function wagon:on_rightclick(clicker)
|
||||||
end
|
end
|
||||||
|
|
||||||
local doors_open = self:train().door_open~=0 or clicker:get_player_control().sneak
|
local doors_open = self:train().door_open~=0 or clicker:get_player_control().sneak
|
||||||
local allow, rsn=false, "Wagon has no seats!"
|
local allow, rsn=false, attrans("This wagon has no seats.")
|
||||||
for _,sgr in ipairs(self.assign_to_seat_group) do
|
for _,sgr in ipairs(self.assign_to_seat_group) do
|
||||||
allow, rsn = self:check_seat_group_access(pname, sgr)
|
allow, rsn = self:check_seat_group_access(pname, sgr)
|
||||||
if allow then
|
if allow then
|
||||||
|
@ -722,16 +722,16 @@ function wagon:on_rightclick(clicker)
|
||||||
self:get_on(clicker, seatid)
|
self:get_on(clicker, seatid)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
rsn="Wagon is full."
|
rsn=attrans("This wagon is full.")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
rsn="Doors are closed! (try holding sneak key!)"
|
rsn=attrans("Doors are closed! (Try holding sneak key!)")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(pname, attrans("Can't get on: "..rsn))
|
minetest.chat_send_player(pname, rsn or attrans("You can't get on this wagon."))
|
||||||
else
|
else
|
||||||
self:show_get_on_form(pname)
|
self:show_get_on_form(pname)
|
||||||
end
|
end
|
||||||
|
@ -1262,7 +1262,7 @@ function wagon:seating_from_key_helper(pname, fields, no)
|
||||||
self:show_bordcom(pname)
|
self:show_bordcom(pname)
|
||||||
end
|
end
|
||||||
if fields.dcwarn then
|
if fields.dcwarn then
|
||||||
minetest.chat_send_player(pname, attrans("Doors are closed! Use Sneak+rightclick to ignore the closed doors and get off!"))
|
minetest.chat_send_player(pname, attrans("Doors are closed. Use Sneak+rightclick to ignore the closed doors and get off."))
|
||||||
end
|
end
|
||||||
if fields.off then
|
if fields.off then
|
||||||
self:get_off(no)
|
self:get_off(no)
|
||||||
|
@ -1271,7 +1271,7 @@ end
|
||||||
function wagon:check_seat_group_access(pname, sgr)
|
function wagon:check_seat_group_access(pname, sgr)
|
||||||
local data = advtrains.wagons[self.id]
|
local data = advtrains.wagons[self.id]
|
||||||
if self.seat_groups[sgr].driving_ctrl_access and not (advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist)) then
|
if self.seat_groups[sgr].driving_ctrl_access and not (advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist)) then
|
||||||
return false, "Not allowed to access a driver stand!"
|
return false, attrans("You are not allowed to access the driver stand.")
|
||||||
end
|
end
|
||||||
if self.seat_groups[sgr].driving_ctrl_access then
|
if self.seat_groups[sgr].driving_ctrl_access then
|
||||||
advtrains.log("Drive", pname, self.object:getpos(), self:train().text_outside)
|
advtrains.log("Drive", pname, self.object:getpos(), self:train().text_outside)
|
||||||
|
|
|
@ -3,13 +3,15 @@
|
||||||
-- Simple rail whose only purpose is to place a TSR on the position, as a temporary solution until the timetable system covers everything.
|
-- 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
|
-- This code resembles the code in lines/stoprail.lua
|
||||||
|
|
||||||
|
local S = attrans
|
||||||
|
|
||||||
local function updateform(pos)
|
local function updateform(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local pe = advtrains.encode_pos(pos)
|
local pe = advtrains.encode_pos(pos)
|
||||||
local npr = advtrains.interlocking.npr_rails[pe] or 2
|
local npr = advtrains.interlocking.npr_rails[pe] or 2
|
||||||
|
|
||||||
meta:set_string("infotext", "Point speed restriction: "..npr)
|
meta:set_string("infotext", S("Point speed restriction: @1",npr))
|
||||||
meta:set_string("formspec", "field[npr;Set point speed restriction:;"..npr.."]")
|
meta:set_string("formspec", "field[npr;"..S("Set point speed restriction:")..";"..npr.."]")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,11 +27,11 @@ local adefunc = function(def, preset, suffix, rotation)
|
||||||
on_receive_fields = function(pos, formname, fields, player)
|
on_receive_fields = function(pos, formname, fields, player)
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
if not minetest.check_player_privs(pname, {interlocking=true}) then
|
if not minetest.check_player_privs(pname, {interlocking=true}) then
|
||||||
minetest.chat_send_player(pname, "Interlocking privilege required!")
|
minetest.chat_send_player(pname, S("You are not allowed to configure this track without the @1 privilege.", "interlocking"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if minetest.is_protected(pos, pname) then
|
if minetest.is_protected(pos, pname) then
|
||||||
minetest.chat_send_player(pname, "This rail is protected!")
|
minetest.chat_send_player(pname, S("You are not allowed to configure this track."))
|
||||||
minetest.record_protection_violation(pos, pname)
|
minetest.record_protection_violation(pos, pname)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -59,7 +61,7 @@ if minetest.get_modpath("advtrains_train_track") ~= nil then
|
||||||
models_prefix="advtrains_dtrack",
|
models_prefix="advtrains_dtrack",
|
||||||
models_suffix=".b3d",
|
models_suffix=".b3d",
|
||||||
shared_texture="advtrains_dtrack_shared_npr.png",
|
shared_texture="advtrains_dtrack_shared_npr.png",
|
||||||
description="Point Speed Restriction Rail",
|
description=S("Point Speed Restriction Track"),
|
||||||
formats={},
|
formats={},
|
||||||
get_additional_definiton = adefunc,
|
get_additional_definiton = adefunc,
|
||||||
}, advtrains.trackpresets.t_30deg_straightonly)
|
}, advtrains.trackpresets.t_30deg_straightonly)
|
||||||
|
|
|
@ -28,7 +28,7 @@ local function show_stoprailform(pos, player)
|
||||||
local pe = advtrains.encode_pos(pos)
|
local pe = advtrains.encode_pos(pos)
|
||||||
local pname = player:get_player_name()
|
local pname = player:get_player_name()
|
||||||
if minetest.is_protected(pos, pname) then
|
if minetest.is_protected(pos, pname) then
|
||||||
minetest.chat_send_player(pname, "Position is protected!")
|
minetest.chat_send_player(pname, attrans("You are not allowed to configure this track."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
local pos = advtrains.decode_pos(pe)
|
local pos = advtrains.decode_pos(pe)
|
||||||
if pos then
|
if pos then
|
||||||
if minetest.is_protected(pos, pname) then
|
if minetest.is_protected(pos, pname) then
|
||||||
minetest.chat_send_player(pname, "Position is protected!")
|
minetest.chat_send_player(pname, attrans("You are not allowed to configure this track."))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
|
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
|
||||||
stdata.stn = fields.stn
|
stdata.stn = fields.stn
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner)
|
minetest.chat_send_player(pname, attrans("Station code \"@1\" already exists and is owned by @2.", fields.stn, stn.owner))
|
||||||
show_stoprailform(pos,player)
|
show_stoprailform(pos,player)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -108,7 +108,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
|
if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then
|
||||||
stn.name = fields.stnname
|
stn.name = fields.stnname
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(pname, "Not allowed to edit station name, owned by "..stn.owner)
|
minetest.chat_send_player(pname, attrans("This station is owned by @1. You are not allowed to edit its name.", stn.owner))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ if minetest.get_modpath("advtrains_train_track") ~= nil then
|
||||||
models_prefix="advtrains_dtrack",
|
models_prefix="advtrains_dtrack",
|
||||||
models_suffix=".b3d",
|
models_suffix=".b3d",
|
||||||
shared_texture="advtrains_dtrack_shared_stop.png",
|
shared_texture="advtrains_dtrack_shared_stop.png",
|
||||||
description="Station/Stop Rail",
|
description=attrans("Station/Stop Track"),
|
||||||
formats={},
|
formats={},
|
||||||
get_additional_definiton = adefunc,
|
get_additional_definiton = adefunc,
|
||||||
}, advtrains.trackpresets.t_30deg_straightonly)
|
}, advtrains.trackpresets.t_30deg_straightonly)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
|
local S = atltrans
|
||||||
|
|
||||||
local ac = {nodes={}}
|
local ac = {nodes={}}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ end
|
||||||
function ac.after_place_node(pos, player)
|
function ac.after_place_node(pos, player)
|
||||||
local meta=minetest.get_meta(pos)
|
local meta=minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", ac.getform(pos, meta))
|
meta:set_string("formspec", ac.getform(pos, meta))
|
||||||
meta:set_string("infotext", "LuaATC component, unconfigured.")
|
meta:set_string("infotext", S("Unconfigured LuaATC component"))
|
||||||
local ph=minetest.pos_to_string(pos)
|
local ph=minetest.pos_to_string(pos)
|
||||||
--just get first available key!
|
--just get first available key!
|
||||||
for en,_ in pairs(atlatc.envs) do
|
for en,_ in pairs(atlatc.envs) do
|
||||||
|
@ -43,11 +43,11 @@ function ac.getform(pos, meta_p)
|
||||||
end
|
end
|
||||||
local form = "size["..atlatc.CODE_FORM_SIZE.."]"
|
local form = "size["..atlatc.CODE_FORM_SIZE.."]"
|
||||||
.."style[code;font=mono]"
|
.."style[code;font=mono]"
|
||||||
.."label[0,-0.1;Environment]"
|
.."label[0,-0.1;"..S("LuaATC Environment").."]"
|
||||||
.."dropdown[0,0.3;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]"
|
.."dropdown[0,0.3;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]"
|
||||||
.."button[5,0.2;2,1;save;Save]"
|
.."button[5,0.2;2,1;save;"..S("Save").."]"
|
||||||
.."button[7,0.2;3,1;cle;Clear Local Env.]"
|
.."button[7,0.2;3,1;cle;"..S("Clear Local Environment").."]"
|
||||||
.."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;Code;"..minetest.formspec_escape(code).."]"
|
.."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;"..S("Code")..";"..minetest.formspec_escape(code).."]"
|
||||||
.."label["..atlatc.CODE_FORM_ERRLABELPOS..";"..err.."]"
|
.."label["..atlatc.CODE_FORM_ERRLABELPOS..";"..err.."]"
|
||||||
return form
|
return form
|
||||||
end
|
end
|
||||||
|
@ -61,7 +61,7 @@ end
|
||||||
|
|
||||||
function ac.on_receive_fields(pos, formname, fields, player)
|
function ac.on_receive_fields(pos, formname, fields, player)
|
||||||
if not minetest.check_player_privs(player:get_player_name(), {atlatc=true}) then
|
if not minetest.check_player_privs(player:get_player_name(), {atlatc=true}) then
|
||||||
minetest.chat_send_player(player:get_player_name(), "Missing privilege: atlatc - Operation cancelled!")
|
minetest.chat_send_player(player:get_player_name(), S("You are not allowed to configure this LuaATC component without the @1 privilege.", "atlatc"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -91,9 +91,9 @@ function ac.on_receive_fields(pos, formname, fields, player)
|
||||||
|
|
||||||
meta:set_string("formspec", ac.getform(pos, meta))
|
meta:set_string("formspec", ac.getform(pos, meta))
|
||||||
if nodetbl.env then
|
if nodetbl.env then
|
||||||
meta:set_string("infotext", "LuaATC component, assigned to environment '"..nodetbl.env.."'")
|
meta:set_string("infotext", S("LuaATC component assigned to environment '@1'", nodetbl.env))
|
||||||
else
|
else
|
||||||
meta:set_string("infotext", "LuaATC component, invalid enviroment set!")
|
meta:set_string("infotext", S("LuaATC component assigned to an invalid environment"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ function ac.run_in_env(pos, evtdata, customfct_p, ignore_no_code)
|
||||||
atlatc.active.nodes[ph].err=dataout
|
atlatc.active.nodes[ph].err=dataout
|
||||||
env:log("error", "LuaATC component at",ph,": LUA Error:",dataout)
|
env:log("error", "LuaATC component at",ph,": LUA Error:",dataout)
|
||||||
if meta then
|
if meta then
|
||||||
meta:set_string("infotext", "LuaATC component, ERROR:"..dataout)
|
meta:set_string("infotext", S("LuaATC component with error: @1", dataout))
|
||||||
end
|
end
|
||||||
--TODO temporary
|
--TODO temporary
|
||||||
--if customfct.atc_id then
|
--if customfct.atc_id then
|
||||||
|
|
|
@ -220,7 +220,7 @@ advtrains.register_tracks("default", {
|
||||||
models_prefix="advtrains_dtrack",
|
models_prefix="advtrains_dtrack",
|
||||||
models_suffix=".b3d",
|
models_suffix=".b3d",
|
||||||
shared_texture="advtrains_dtrack_shared_atc.png",
|
shared_texture="advtrains_dtrack_shared_atc.png",
|
||||||
description=atltrans("LuaATC Rail"),
|
description=atltrans("LuaATC Track"),
|
||||||
formats={},
|
formats={},
|
||||||
get_additional_definiton = function(def, preset, suffix, rotation)
|
get_additional_definiton = function(def, preset, suffix, rotation)
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
-- Lua automation features for advtrains
|
-- Lua automation features for advtrains
|
||||||
-- Uses global table 'atlatc' (AdvTrains_LuaATC)
|
-- Uses global table 'atlatc' (AdvTrains_LuaATC)
|
||||||
|
|
||||||
--TODO: re-add localization (if merging localization, discard this hunk please)
|
atltrans = attrans
|
||||||
atltrans = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
|
local S = atltrans
|
||||||
|
|
||||||
--Privilege
|
--Privilege
|
||||||
--Only trusted players should be enabled to build stuff which can break the server.
|
--Only trusted players should be enabled to build stuff which can break the server.
|
||||||
|
|
||||||
atlatc = { envs = {}}
|
atlatc = { envs = {}}
|
||||||
|
|
||||||
minetest.register_privilege("atlatc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false })
|
minetest.register_privilege("atlatc", { description = S("Can place and configure LuaATC components, including execute potentially harmful Lua code"), give_to_singleplayer = false, default= false })
|
||||||
|
|
||||||
--Size of code input forms in X,Y notation. Must be at least 10x10
|
--Size of code input forms in X,Y notation. Must be at least 10x10
|
||||||
atlatc.CODE_FORM_SIZE = "15,12"
|
atlatc.CODE_FORM_SIZE = "15,12"
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
-- From Mesecons mod https://mesecons.net/
|
-- From Mesecons mod https://mesecons.net/
|
||||||
-- (c) Jeija and Contributors
|
-- (c) Jeija and Contributors
|
||||||
|
|
||||||
|
local S = atltrans
|
||||||
local BASENAME = "advtrains_luaautomation:mesecon_controller"
|
local BASENAME = "advtrains_luaautomation:mesecon_controller"
|
||||||
|
|
||||||
local rules = {
|
local rules = {
|
||||||
|
@ -207,7 +208,7 @@ for d = 0, 1 do
|
||||||
}
|
}
|
||||||
|
|
||||||
minetest.register_node(node_name, {
|
minetest.register_node(node_name, {
|
||||||
description = "LuaATC Mesecon Controller",
|
description = S("LuaATC Mesecon Controller"),
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
tiles = {
|
tiles = {
|
||||||
top,
|
top,
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
local S = atltrans
|
||||||
|
|
||||||
local function on_punch(pos,node,player)
|
local function on_punch(pos,node,player)
|
||||||
atlatc.interrupt.add(0, pos, {type="punch", punch=true, name=player:get_player_name()})
|
atlatc.interrupt.add(0, pos, {type="punch", punch=true, name=player:get_player_name()})
|
||||||
|
@ -7,7 +8,7 @@ end
|
||||||
minetest.register_node("advtrains_luaautomation:oppanel", {
|
minetest.register_node("advtrains_luaautomation:oppanel", {
|
||||||
drawtype = "normal",
|
drawtype = "normal",
|
||||||
tiles={"atlatc_oppanel.png"},
|
tiles={"atlatc_oppanel.png"},
|
||||||
description = "LuaATC operation panel",
|
description = S("LuaATC Operation Panel"),
|
||||||
groups = {
|
groups = {
|
||||||
cracky = 1,
|
cracky = 1,
|
||||||
save_in_at_nodedb=1,
|
save_in_at_nodedb=1,
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
--a.k.a Passive component naming
|
--a.k.a Passive component naming
|
||||||
--Allows to assign names to passive components, so they can be called like:
|
--Allows to assign names to passive components, so they can be called like:
|
||||||
--setstate("iamasignal", "green")
|
--setstate("iamasignal", "green")
|
||||||
|
local S = atltrans
|
||||||
|
|
||||||
atlatc.pcnaming={name_map={}}
|
atlatc.pcnaming={name_map={}}
|
||||||
function atlatc.pcnaming.load(stuff)
|
function atlatc.pcnaming.load(stuff)
|
||||||
if type(stuff)=="table" then
|
if type(stuff)=="table" then
|
||||||
|
@ -26,7 +28,7 @@ end
|
||||||
local pcrename = {}
|
local pcrename = {}
|
||||||
|
|
||||||
minetest.register_craftitem("advtrains_luaautomation:pcnaming",{
|
minetest.register_craftitem("advtrains_luaautomation:pcnaming",{
|
||||||
description = attrans("Passive Component Naming Tool\n\nRight-click to name a passive component."),
|
description = S("Passive Component Naming Tool\n\nRight-click to name a passive component."),
|
||||||
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
|
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
|
||||||
inventory_image = "atlatc_pcnaming.png",
|
inventory_image = "atlatc_pcnaming.png",
|
||||||
wield_image = "atlatc_pcnaming.png",
|
wield_image = "atlatc_pcnaming.png",
|
||||||
|
@ -37,7 +39,7 @@ minetest.register_craftitem("advtrains_luaautomation:pcnaming",{
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if not minetest.check_player_privs(pname, {atlatc=true}) then
|
if not minetest.check_player_privs(pname, {atlatc=true}) then
|
||||||
minetest.chat_send_player(pname, "Missing privilege: atlatc")
|
minetest.chat_send_player(pname, S("You are not allowed to name LuaATC passive components without the @1 privilege.", "atlatc"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if pointed_thing.type=="node" then
|
if pointed_thing.type=="node" then
|
||||||
|
@ -62,7 +64,7 @@ minetest.register_craftitem("advtrains_luaautomation:pcnaming",{
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pcrename[pname] = pos
|
pcrename[pname] = pos
|
||||||
minetest.show_formspec(pname, "atlatc_naming", "field[pn;Set name of component (empty to clear);"..minetest.formspec_escape(pn).."]")
|
minetest.show_formspec(pname, "atlatc_naming", "field[pn;"..S("Set name of component (empty to clear)")..";"..minetest.formspec_escape(pn).."]")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|
Loading…
Reference in New Issue