From 35e0af272f10b53d9553bc1a207fdf10beab260c Mon Sep 17 00:00:00 2001 From: ywang Date: Sat, 27 Mar 2021 16:45:41 +0100 Subject: Update German translation; add script to update l10n files --- advtrains/locale/advtrains.de.tr | 86 ++++++++++++++++++++++++++++------------ advtrains/locale/template.txt | 1 - advtrains/locale/update-l10n.lua | 41 +++++++++++++++++++ 3 files changed, 101 insertions(+), 27 deletions(-) create mode 100644 advtrains/locale/update-l10n.lua diff --git a/advtrains/locale/advtrains.de.tr b/advtrains/locale/advtrains.de.tr index cd43eed..fb336ea 100644 --- a/advtrains/locale/advtrains.de.tr +++ b/advtrains/locale/advtrains.de.tr @@ -1,8 +1,8 @@ # textdomain: advtrains + +# Advtrains Core (unorganized) 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 @@ -10,19 +10,11 @@ ATC controller, mode @1@nCommand: @2=Zugbeeinflussungsschiene in Betriebsart "@1 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. @@ -32,28 +24,77 @@ Can't place: Not enough slope items left (@1 required)=Kann nicht platzieren: ni 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. +Access to @1=Zugang zu @1 +The clipboard couldn't access the metadata. Paste failed.=Wegen eines fehlgeschlagenen Zugriffs auf die Metadaten konnte eine Kopie des Zuges nicht eingefügt werden. +The clipboard couldn't access the metadata. Copy failed.=Wegen eines fehlgeschlagenen Zugriffs auf die Metadaten konnte der Zug nicht kopiert werden. + +# Train HUD/Formspecs +Speed:=Geschw.: +Target:=Zielges.: +Show Inventory=Zeige Inventar +Select seat:=Wähle einen Sitzplatz aus: Wagon properties=Waggon-Einstellungen +Save wagon properties=Waggon-Einstellungen speichern +Text displayed outside on train=Text displayed outside on train +Text displayed inside train=Text displayed inside train +Line=Linie +Routingcode=Routingcode Get off=Aussteigen Get off (forced)=Aussteigen (erzwingen) (Doors closed)=(Türen geschlossen) -Access to @1=Zugang zu @1 + +# General +Save=Speichern +off=aus +on=ein + +# Line automation +Station Code=Code der Haltestelle +Station Name=Name der Haltestelle +Door Delay=Zeit für die Türschließung +Departure Speed=Zielgeschwindigkeit bei Abfahrt +Stop Time=Wartezeit + +# Items +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. +Passive Component Naming Tool@n@nRight-click to name a passive component.=PC-Benennungswerkzeug@n@nRechtsklick zur Benennung der passiven Komponente +Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train=Train copy/paste tool@n@nLeft-click: copy train@nRight-click: paste train +Track=Schiene +Perpendicular Diamond Crossing Track=Perpendicular Diamond Crossing Track +45/90 Degree Diamond Crossing Track=45/90 Degree Diamond Crossing Track +Unloading Track=Abladungsschiene +Loading Track=Beladungsschiene +Bumper=Prellbock +Detector Rail=Detektorschiene +@1 Slope=@1 Steigung +@1 Platform (low)=Niedriger @1-Bahnsteig +@1 Platform (high)=Hoher @1-Bahnsteig +@1 Platform (45 degree)=@1-Bahnsteig (45°) +Lampless Signal (@1)=Mechanisches Signal (@1) +Signal (@1)=Lichtsignal (@1) +Wallmounted Signal (l)=An der linken Seite montiertes Signal +Wallmounted Signal (r)=An der rechten Seite montiertes Signal +Wallmounted Signal (t)=An der Decke montiertes Signal +Andrew's Cross=Andrew's Cross +Boiler=Boiler +driver's cab=driver's cab +Wheel=Wheel +Chimney=Chimney + +# Seats 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 + +# Wagon/engine types Industrial Train Engine=Industrielle Lokomotive +Big Industrial Train Engine=Große Industrielle Lokomotive Industrial tank wagon=Tankwaggon Industrial wood wagon=Holztransportwaggon Japanese Train Engine=Japanische Personenzug-Lokomotive @@ -61,12 +102,5 @@ Japanese Train Wagon=Japanischer Personenzug-Passagierwaggon Steam Engine=Dampflokomotive Detailed Steam Engine=detaillierte Dampflokomotive Passenger Wagon=Passagierwaggon -Box wagon=Güterwaggon +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. diff --git a/advtrains/locale/template.txt b/advtrains/locale/template.txt index 0eb7591..c51770d 100644 --- a/advtrains/locale/template.txt +++ b/advtrains/locale/template.txt @@ -49,7 +49,6 @@ Get off (forced)=Get off (forced) # General Save=Save -# "off" and "on" can be translated differently depending on the context and are therefore not translated. off=off on=on diff --git a/advtrains/locale/update-l10n.lua b/advtrains/locale/update-l10n.lua new file mode 100644 index 0000000..e0c2418 --- /dev/null +++ b/advtrains/locale/update-l10n.lua @@ -0,0 +1,41 @@ +local tf = {} +for l in io.lines() do + tf[#tf+1] = l +end + +local ot = {[0] = ""} +local f = io.open("template.txt") or error("Cannot open translation template") +for l in f:lines() do + if l == "" then -- blank line + if ot[#ot] ~= l then ot[#ot+1] = l end + elseif l:find("^#") then -- comment + if ot[#ot] ~= l then ot[#ot+1] = l end + else + s = l:match("^(.+[^@]=)") + if s then + local found = false + for i = 1, #tf, 1 do + if tf[i]:find(s, 1, true) == 1 then + found = i + break + end + end + if found then + local fc = found-1 + while fc > 0 do + if not tf[fc]:find("^#") then break end + fc = fc-1 + end + for i = fc+1, found, 1 do + if ot[#ot] ~= tf[i] then ot[#ot+1] = tf[i] end + end + else + if ot[#ot] ~= l then ot[#ot+1] = l end + end + end + end +end + +for i = 1, #ot, 1 do + print(ot[i]) +end \ No newline at end of file -- cgit v1.2.3