aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2020-07-19 23:04:13 +0200
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2020-07-19 23:04:13 +0200
commit9d52770f211f6290fc172e82bad00daed0853848 (patch)
treeaebaacaa33f48eef2a01c396ad042cab05badb56
parent8c66f1caf495442e1435bf3a49176932eee986b3 (diff)
parentcc78b63e342c131e2a08b3697681d9d5fbf86d4f (diff)
downloadadvtrains-9d52770f211f6290fc172e82bad00daed0853848.tar.gz
advtrains-9d52770f211f6290fc172e82bad00daed0853848.tar.bz2
advtrains-9d52770f211f6290fc172e82bad00daed0853848.zip
Add client side translations by ywang
-rw-r--r--advtrains/atc.lua8
-rw-r--r--advtrains/craft_items.lua8
-rw-r--r--advtrains/init.lua8
-rw-r--r--advtrains/locale/advtrains.de.tr65
-rw-r--r--advtrains/locale/advtrains.zh_CN.tr107
-rw-r--r--advtrains/locale/de.txt50
-rw-r--r--advtrains_train_industrial/init.lua8
-rw-r--r--advtrains_train_industrial/locale/de.txt5
-rw-r--r--advtrains_train_japan/init.lua7
-rw-r--r--advtrains_train_japan/locale/de.txt4
-rwxr-xr-xadvtrains_train_steam/init.lua7
-rwxr-xr-xadvtrains_train_steam/locale/de.txt6
-rw-r--r--advtrains_train_subway/init.lua7
-rw-r--r--advtrains_train_subway/locale/de.txt2
14 files changed, 186 insertions, 106 deletions
diff --git a/advtrains/atc.lua b/advtrains/atc.lua
index fa9f097..20f52b9 100644
--- a/advtrains/atc.lua
+++ b/advtrains/atc.lua
@@ -128,9 +128,9 @@ advtrains.atc_function = function(def, preset, suffix, rotation)
if fields.mode then
meta:set_string("mode", idxtrans[fields.mode])
if fields.mode=="digiline" then
- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
+ meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", (fields.mode or "?"), meta:get_string("command")) )
else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", fields.mode, meta:get_string("command")) )
+ meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", (fields.mode or "?"), meta:get_string("command")) )
end
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
end
@@ -141,9 +141,9 @@ advtrains.atc_function = function(def, preset, suffix, rotation)
meta:set_string("command_on", fields.command_on)
meta:set_string("channel", fields.channel)
if fields.mode=="digiline" then
- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
+ meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", (fields.mode or "?"), meta:get_string("command")) )
else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", fields.mode, meta:get_string("command")) )
+ meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", (fields.mode or "?"), meta:get_string("command")) )
end
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
diff --git a/advtrains/craft_items.lua b/advtrains/craft_items.lua
index a4db385..0e693eb 100644
--- a/advtrains/craft_items.lua
+++ b/advtrains/craft_items.lua
@@ -1,23 +1,23 @@
core.register_craftitem("advtrains:boiler", {
- description = "Boiler",
+ description = attrans("Boiler"),
inventory_image = "advtrains_boiler.png",
})
core.register_craftitem("advtrains:driver_cab", {
- description = "driver's cab",
+ description = attrans("driver's cab"),
inventory_image = "advtrains_driver_cab.png",
})
core.register_craftitem("advtrains:wheel", {
- description = "Wheel",
+ description = attrans("Wheel"),
inventory_image = "advtrains_wheel.png",
})
core.register_craftitem("advtrains:chimney", {
- description = "Chimney",
+ description = attrans("Chimney"),
inventory_image = "advtrains_chimney.png",
})
diff --git a/advtrains/init.lua b/advtrains/init.lua
index 84cfa38..d6c3c92 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -22,12 +22,8 @@ Copyright (C) 2016-2020 Moritz Blei (orwell96) and contributors
local lot = os.clock()
minetest.log("action", "[advtrains] Loading...")
--- Boilerplate to support localized strings if intllib mod is installed.
-if minetest.get_modpath("intllib") then
- attrans = intllib.Getter()
-else
- attrans = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-end
+-- 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
diff --git a/advtrains/locale/advtrains.de.tr b/advtrains/locale/advtrains.de.tr
new file mode 100644
index 0000000..ca67a7e
--- /dev/null
+++ b/advtrains/locale/advtrains.de.tr
@@ -0,0 +1,65 @@
+# 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
diff --git a/advtrains/locale/advtrains.zh_CN.tr b/advtrains/locale/advtrains.zh_CN.tr
new file mode 100644
index 0000000..ef9c99b
--- /dev/null
+++ b/advtrains/locale/advtrains.zh_CN.tr
@@ -0,0 +1,107 @@
+# 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=地铁车厢
diff --git a/advtrains/locale/de.txt b/advtrains/locale/de.txt
deleted file mode 100644
index fe770d8..0000000
--- a/advtrains/locale/de.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-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
-
diff --git a/advtrains_train_industrial/init.lua b/advtrains_train_industrial/init.lua
index 4d64615..beec5b3 100644
--- a/advtrains_train_industrial/init.lua
+++ b/advtrains_train_industrial/init.lua
@@ -1,10 +1,4 @@
--- Boilerplate to support localized strings if intllib mod is installed.
-local S
-if minetest.get_modpath("intllib") then
- S = intllib.Getter()
-else
- S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-end
+local S = attrans
advtrains.register_wagon("engine_industrial", {
mesh="advtrains_engine_industrial.b3d",
diff --git a/advtrains_train_industrial/locale/de.txt b/advtrains_train_industrial/locale/de.txt
deleted file mode 100644
index a45ca27..0000000
--- a/advtrains_train_industrial/locale/de.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-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 \ No newline at end of file
diff --git a/advtrains_train_japan/init.lua b/advtrains_train_japan/init.lua
index c76ce8f..1aa2771 100644
--- a/advtrains_train_japan/init.lua
+++ b/advtrains_train_japan/init.lua
@@ -1,9 +1,4 @@
-local S
-if minetest.get_modpath("intllib") then
- S = intllib.Getter()
-else
- S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-end
+local S = attrans
advtrains.register_wagon("engine_japan", {
mesh="advtrains_engine_japan.b3d",
diff --git a/advtrains_train_japan/locale/de.txt b/advtrains_train_japan/locale/de.txt
deleted file mode 100644
index 63d7a97..0000000
--- a/advtrains_train_japan/locale/de.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Driver Stand = Führerstand
-Japanese Train Engine = Japanische Personenzug-Lokomotive
-Default Seat = Standardsitzplatz
-Japanese Train Wagon = Japanischer Personenzug-Passagierwaggon \ No newline at end of file
diff --git a/advtrains_train_steam/init.lua b/advtrains_train_steam/init.lua
index 6b5047c..057ad8f 100755
--- a/advtrains_train_steam/init.lua
+++ b/advtrains_train_steam/init.lua
@@ -1,9 +1,4 @@
-local S
-if minetest.get_modpath("intllib") then
- S = intllib.Getter()
-else
- S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-end
+local S = attrans
-- length of the steam engine loop sound
local SND_LOOP_LEN = 5
diff --git a/advtrains_train_steam/locale/de.txt b/advtrains_train_steam/locale/de.txt
deleted file mode 100755
index ac06e20..0000000
--- a/advtrains_train_steam/locale/de.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Driver Stand (left) = Führerstand Links
-Driver Stand (right) = Führerstand Rechts
-Steam Engine = Dampflokomotive
-Detailed Steam Engine = detaillierte Dampflokomotive
-Passenger Wagon = Passagierwaggon
-Box wagon = Güterwaggon \ No newline at end of file
diff --git a/advtrains_train_subway/init.lua b/advtrains_train_subway/init.lua
index 845f15f..c51758d 100644
--- a/advtrains_train_subway/init.lua
+++ b/advtrains_train_subway/init.lua
@@ -1,9 +1,4 @@
-local S
-if minetest.get_modpath("intllib") then
- S = intllib.Getter()
-else
- S = function(s,a,...)a={a,...}return s:gsub("@(%d+)",function(n)return a[tonumber(n)]end)end
-end
+local S = attrans
advtrains.register_wagon("subway_wagon", {
mesh="advtrains_subway_wagon.b3d",
diff --git a/advtrains_train_subway/locale/de.txt b/advtrains_train_subway/locale/de.txt
deleted file mode 100644
index 4aceebd..0000000
--- a/advtrains_train_subway/locale/de.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Default Seat (driver stand) = Standardsitzplatz (Führerstand)
-Subway Passenger Wagon = U-Bahn-Waggon \ No newline at end of file