aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authororwell <orwell@bleipb.de>2025-06-10 21:39:50 +0200
committerorwell <orwell@bleipb.de>2025-06-10 21:39:50 +0200
commit934dcc3f21a6053d3f6fff08a02ede6f75385173 (patch)
tree8155f9e631b7ab19d9e4c7163f762eb7158927d0
parent56e00d697e38d87bdfecada36eae98199ae94fc1 (diff)
downloadadvtrains-934dcc3f21a6053d3f6fff08a02ede6f75385173.tar.gz
advtrains-934dcc3f21a6053d3f6fff08a02ede6f75385173.tar.bz2
advtrains-934dcc3f21a6053d3f6fff08a02ede6f75385173.zip
Remove attrans, unify translation strings with S
-rw-r--r--advtrains/atc.lua44
-rw-r--r--advtrains/copytool.lua25
-rw-r--r--advtrains/couple.lua15
-rw-r--r--advtrains/craft_items.lua11
-rw-r--r--advtrains/formspec.lua5
-rw-r--r--advtrains/init.lua37
-rw-r--r--advtrains/misc_nodes.lua11
-rw-r--r--advtrains/protection.lua16
-rw-r--r--advtrains/signals.lua17
-rw-r--r--advtrains/track_reg_helper.lua19
-rw-r--r--advtrains/trackplacer.lua13
-rw-r--r--advtrains/tracks.lua10
-rw-r--r--advtrains/trainhud.lua5
-rw-r--r--advtrains/trainlogic.lua3
-rw-r--r--advtrains/wagonprop_tool.lua12
-rw-r--r--advtrains/wagons.lua24
16 files changed, 145 insertions, 122 deletions
diff --git a/advtrains/atc.lua b/advtrains/atc.lua
index 8e54b08..e14e5c1 100644
--- a/advtrains/atc.lua
+++ b/advtrains/atc.lua
@@ -1,6 +1,9 @@
--atc.lua
--registers and controls the ATC system
+-- Get current translator
+local S = advtrains.translate
+
local atc={}
local eval_conditional
@@ -107,7 +110,7 @@ local apn_func=function(pos)
-- FIX for long-persisting ndb bug: there's no node in parameter 2 of this function!
local meta=minetest.get_meta(pos)
if meta then
- meta:set_string("infotext", attrans("Unconfigured ATC controller"))
+ meta:set_string("infotext", S("Unconfigured ATC controller"))
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
end
end
@@ -129,27 +132,15 @@ advtrains.atc_function = function(def, preset, suffix, rotation)
local meta=minetest.get_meta(pos)
if meta then
if not fields.save then
- --[[--maybe only the dropdown changed
- if fields.mode then
- meta:set_string("mode", idxtrans[fields.mode])
- if fields.mode=="digiline" then
- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
- else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", fields.mode, meta:get_string("command")) )
- end
- meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
- end]]--
return
end
--meta:set_string("mode", idxtrans[fields.mode])
meta:set_string("command", fields.command)
--meta:set_string("command_on", fields.command_on)
meta:set_string("channel", fields.channel)
- --if fields.mode=="digiline" then
- -- meta:set_string("infotext", attrans("ATC controller, mode @1\nChannel: @2", fields.mode, meta:get_string("command")) )
- --else
- meta:set_string("infotext", attrans("ATC controller, mode @1\nCommand: @2", "-", meta:get_string("command")) )
- --end
+
+ meta:set_string("infotext", S("ATC controller, Command: @1", meta:get_string("command")) )
+
meta:set_string("formspec", atc.get_atc_controller_formspec(pos, meta))
local pts=minetest.pos_to_string(pos)
@@ -178,16 +169,11 @@ function atc.get_atc_controller_formspec(pos, meta)
if mode<3 then
formspec=formspec
.."style[command;font=mono]"
- .."field[0.8,1.5;7,1;command;"..attrans("Command")..";"..minetest.formspec_escape(command).."]"
- if tonumber(mode)==2 then
- formspec=formspec
- .."style[command_on;font=mono]"
- .."field[0.8,3;7,1;command_on;"..attrans("Command (on)")..";"..minetest.formspec_escape(command_on).."]"
- end
+ .."field[0.8,1.5;7,1;command;"..S("Command")..";"..minetest.formspec_escape(command).."]"
else
- formspec=formspec.."field[0.8,1.5;7,1;channel;"..attrans("Digiline channel")..";"..minetest.formspec_escape(channel).."]"
+ formspec=formspec.."field[0.8,1.5;7,1;channel;"..S("Digiline channel")..";"..minetest.formspec_escape(channel).."]"
end
- return formspec.."button_exit[0.5,4.5;7,1;save;"..attrans("Save").."]"
+ return formspec.."button_exit[0.5,4.5;7,1;save;"..S("Save").."]"
end
--from trainlogic.lua train step
@@ -234,7 +220,7 @@ local matchptn={
advtrains.train_ensure_init(id, train)
-- no one minds if this failed... this shouldn't even be called without train being initialized...
else
- atwarn(sid(id), attrans("ATC Reverse command warning: didn't reverse train, train moving."))
+ atwarn(sid(id), S("ATC Reverse command warning: didn't reverse train, train moving."))
end
return 1
end,
@@ -246,11 +232,11 @@ local matchptn={
end,
["K"] = function(id, train)
if train.door_open == 0 then
- atwarn(sid(id), attrans("ATC Kick command warning: doors are closed."))
+ atwarn(sid(id), S("ATC Kick command warning: doors are closed."))
return 1
end
if train.velocity > 0 then
- atwarn(sid(id), attrans("ATC Kick command warning: train moving."))
+ atwarn(sid(id), S("ATC Kick command warning: train moving."))
return 1
end
local tp = train.trainparts
@@ -324,7 +310,7 @@ eval_conditional = function(command, arrow, speed)
local nest, pos, elsepos=0, 1
while nest>=0 do
if pos>#rest then
- atwarn(sid(id), attrans("ATC command syntax error: I statement not closed: @1",command))
+ atwarn(sid(id), S("ATC command syntax error: I statement not closed: @1",command))
return ""
end
local char=string.sub(rest, pos, pos)
@@ -388,7 +374,7 @@ function atc.execute_atc_command(id, train)
return
end
end
- atwarn(sid(id), attrans("ATC command parse error: Unknown command: @1", command))
+ atwarn(sid(id), S("ATC command parse error: Unknown command: @1", command))
atc.train_reset_command(train, true)
end
diff --git a/advtrains/copytool.lua b/advtrains/copytool.lua
index c63551e..cdfbd2e 100644
--- a/advtrains/copytool.lua
+++ b/advtrains/copytool.lua
@@ -4,8 +4,11 @@
-- 4.712389 = 1.5pi; sin(1.5pi) = -1
-- 7.853981 = 2.5pi; sin(2.5pi) = 1
+-- Get current translator
+local S = advtrains.translate
+
minetest.register_tool("advtrains:copytool", {
- description = attrans("Train copy/paste tool\n\nLeft-click: copy train\nRight-click: paste train"),
+ description = S("Train copy/paste tool\n\nLeft-click: copy train\nRight-click: paste train"),
inventory_image = "advtrains_copytool.png",
wield_image = "advtrains_copytool.png",
stack_max = 1,
@@ -38,23 +41,23 @@ minetest.register_tool("advtrains:copytool", {
local prevpos = advtrains.get_adjacent_rail(pointed_thing.under, tconns, plconnid, {default=true})
if not prevpos then
- minetest.chat_send_player(pname, attrans("The track you are trying to place the wagon on is not long enough."))
+ minetest.chat_send_player(pname, S("The track you are trying to place the wagon on is not long enough."))
return
end
local meta = itemstack:get_meta()
if not meta then
- minetest.chat_send_player(pname, attrans("The clipboard couldn't access the metadata. Paste failed."))
+ minetest.chat_send_player(pname, S("The clipboard couldn't access the metadata. Paste failed."))
return
end
local clipboard = meta:get_string("clipboard")
if (clipboard == "") then
- minetest.chat_send_player(pname, attrans("The clipboard is empty."));
+ minetest.chat_send_player(pname, S("The clipboard is empty."));
return
end
clipboard = minetest.deserialize(clipboard)
if (clipboard.wagons == nil) then
- minetest.chat_send_player(pname, attrans("The clipboard is empty."));
+ minetest.chat_send_player(pname, S("The clipboard is empty."));
return
end
@@ -71,7 +74,7 @@ minetest.register_tool("advtrains:copytool", {
local train = advtrains.trains[id]
train.off_track = train.end_index<train.path_trk_b
if (train.off_track) then
- minetest.chat_send_player(pname, attrans("Back of train would end up off track, cancelling."))
+ minetest.chat_send_player(pname, S("Back of train would end up off track, cancelling."))
advtrains.remove_train(id)
return
end
@@ -89,19 +92,19 @@ minetest.register_tool("advtrains:copytool", {
local le = pointed_thing.ref:get_luaentity()
if (le == nil) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such lua entity."))
+ minetest.chat_send_player(user:get_player_name(), S("No such lua entity."))
return
end
local wagon = advtrains.wagons[le.id]
if (not (le.id and advtrains.wagons[le.id])) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such wagon: @1.", le.id))
+ minetest.chat_send_player(user:get_player_name(), S("No such wagon: @1.", le.id))
return
end
local train = advtrains.trains[wagon.train_id]
if (not train) then
- minetest.chat_send_player(user:get_player_name(), attrans("No such train: @1.", wagon.train_id))
+ minetest.chat_send_player(user:get_player_name(), S("No such train: @1.", wagon.train_id))
return
end
@@ -173,11 +176,11 @@ minetest.register_tool("advtrains:copytool", {
local meta = itemstack:get_meta()
if not meta then
- minetest.chat_send_player(pname, attrans("The clipboard couldn't access the metadata. Copy failed."))
+ minetest.chat_send_player(pname, S("The clipboard couldn't access the metadata. Copy failed."))
return
end
meta:set_string("clipboard", minetest.serialize(clipboard))
- minetest.chat_send_player(user:get_player_name(), attrans("Train copied."))
+ minetest.chat_send_player(user:get_player_name(), S("Train copied."))
return itemstack
end
})
diff --git a/advtrains/couple.lua b/advtrains/couple.lua
index 4933dd8..cb325a0 100644
--- a/advtrains/couple.lua
+++ b/advtrains/couple.lua
@@ -18,6 +18,9 @@
-- train.couple_* contain references to ObjectRefs of couple objects, which contain all relevant information
-- These objectRefs will delete themselves once the couples no longer match (see below)
+-- Get current translator
+local S = advtrains.translate
+
advtrains.coupler_types = {}
function advtrains.register_coupler_type(code, name)
@@ -25,8 +28,8 @@ function advtrains.register_coupler_type(code, name)
end
-- Register some default couplers
-advtrains.register_coupler_type("chain", attrans("Buffer and Chain Coupler"))
-advtrains.register_coupler_type("scharfenberg", attrans("Scharfenberg Coupler"))
+advtrains.register_coupler_type("chain", S("Buffer and Chain Coupler"))
+advtrains.register_coupler_type("scharfenberg", S("Scharfenberg Coupler"))
for _, name in pairs {"couple", "decouple"} do
local t = {}
@@ -245,7 +248,7 @@ function advtrains.couple_trains(init_train, invert_init_train, stat_train, stat
-- sanity check, prevent coupling if train would be longer than 20 after coupling
local tot_len = init_wagoncnt + stat_wagoncnt
if tot_len > advtrains.TRAIN_MAX_WAGONS then
- atwarn("Cannot couple",stat_train.id,"and",init_train.id,"- train would have length",tot_len,"which is above the limit of",advtrains.TRAIN_MAX_WAGONS)
+ atwarn(S("Cannot couple @1 and @2 - train would have length @3 which is above the limit of @4", stat_train.id, init_train.id, tot_len, advtrains.TRAIN_MAX_WAGONS))
return
end
@@ -351,12 +354,12 @@ function advtrains.check_matching_coupler_types(t1, t1_front, t2, t2_front)
for typ,_ in pairs(t1_cplt) do
table.insert(t1_cplhr, advtrains.coupler_types[typ] or typ)
end
- if #t1_cplhr==0 then t1_cplhr[1]=attrans("<No coupler>") end
+ if #t1_cplhr==0 then t1_cplhr[1]=S("<No coupler>") end
for typ,_ in pairs(t2_cplt) do
table.insert(t2_cplhr, advtrains.coupler_types[typ] or typ)
end
- if #t2_cplhr==0 then t2_cplhr[1]=attrans("<No coupler>") end
- return false, attrans("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
+ if #t2_cplhr==0 then t2_cplhr[1]=S("<No coupler>") end
+ return false, S("Can not couple: The couplers of the trains do not match (@1 and @2).", table.concat(t1_cplhr, ","), table.concat(t2_cplhr, ","))
end
-- DECOUPLING --
diff --git a/advtrains/craft_items.lua b/advtrains/craft_items.lua
index 1188b64..6b1dcef 100644
--- a/advtrains/craft_items.lua
+++ b/advtrains/craft_items.lua
@@ -1,23 +1,26 @@
+-- Get current translator
+local S = advtrains.translate
+
core.register_craftitem("advtrains:boiler", {
- description = attrans("Boiler"),
+ description = S("Boiler"),
inventory_image = "advtrains_boiler.png",
})
core.register_craftitem("advtrains:driver_cab", {
- description = attrans("Driver's cab"),
+ description = S("Driver's cab"),
inventory_image = "advtrains_driver_cab.png",
})
core.register_craftitem("advtrains:wheel", {
- description = attrans("Wheel"),
+ description = S("Wheel"),
inventory_image = "advtrains_wheel.png",
})
core.register_craftitem("advtrains:chimney", {
- description = attrans("Chimney"),
+ description = S("Chimney"),
inventory_image = "advtrains_chimney.png",
})
diff --git a/advtrains/formspec.lua b/advtrains/formspec.lua
index 8894354..86d8b27 100644
--- a/advtrains/formspec.lua
+++ b/advtrains/formspec.lua
@@ -1,6 +1,9 @@
local sformat = string.format
local fsescape = minetest.formspec_escape
+-- Get current translator
+local S = advtrains.translate
+
local function make_list(entries)
local t = {}
for k, v in ipairs(entries) do
@@ -12,7 +15,7 @@ end
local function S_wrapper(f, i0)
return function(...)
local args = {...}
- args[i0] = attrans(unpack(args,i0))
+ args[i0] = S(unpack(args,i0))
return f(unpack(args,1,i0))
end
end
diff --git a/advtrains/init.lua b/advtrains/init.lua
index 91b2b58..cd63104 100644
--- a/advtrains/init.lua
+++ b/advtrains/init.lua
@@ -22,12 +22,6 @@ Copyright (C) 2016-2020 Moritz Blei (orwell96) and contributors
local lot = os.clock()
minetest.log("action", "[advtrains] Loading...")
--- There is no need to support 0.4.x anymore given that the compatitability with it is already broken by 1bb1d825f46af3562554c12fba35a31b9f7973ff
-attrans = minetest.get_translator ("advtrains")
-function attrans_formspec(...)
- return minetest.formspec_escape(attrans(...))
-end
-
--advtrains
advtrains = {trains={}, player_to_train_mapping={}}
@@ -56,6 +50,17 @@ advtrains.TRAIN_MAX_WAGONS = 20
-- ==========================================================================
+advtrains.modpath = minetest.get_modpath("advtrains")
+
+-- Initialize internationalization (using ywang's poconvert)
+advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua")
+advtrains.poconvert.from_flat("advtrains")
+-- ask engine for translator instance, this will load the translation files
+advtrains.translate = core.get_translator("advtrains")
+
+-- Get current translator
+local S = advtrains.translate
+
-- Use a global slowdown factor to slow down train movements. Now a setting
advtrains.DTIME_LIMIT = tonumber(minetest.settings:get("advtrains_dtime_limit")) or 0.2
advtrains.SAVE_INTERVAL = tonumber(minetest.settings:get("advtrains_save_interval")) or 60
@@ -89,8 +94,6 @@ local function reload_saves()
end)
end
-advtrains.modpath = minetest.get_modpath("advtrains")
-
--Advtrains dump (special treatment of pos and sigd)
function atdump(t, intend)
local str
@@ -204,10 +207,6 @@ advtrains.meseconrules =
advtrains.fpath=minetest.get_worldpath().."/advtrains"
-advtrains.poconvert = dofile(advtrains.modpath.."/poconvert.lua")
-advtrains.poconvert.from_flat("advtrains")
-attrans = minetest.get_translator("advtrains")
-
advtrains.speed = dofile(advtrains.modpath.."/speed.lua")
advtrains.formspec = dofile(advtrains.modpath.."/formspec.lua")
advtrains.texture = dofile(advtrains.modpath.."/texture.lua")
@@ -502,7 +501,7 @@ advtrains.avt_save = function(remove_players_from_wagons)
--then save it
tmp_trains[id]=v
else
- atwarn(S("Train"),id,S("had no wagons left because of some bug. It is being deleted. Wave it goodbye!"))
+ atwarn(S("Train @1 had no wagons left because of some bug. It is being deleted. Wave it goodbye!", id))
advtrains.remove_train(id)
end
end
@@ -583,7 +582,7 @@ advtrains.avt_save = function(remove_players_from_wagons)
local succ, err = serialize_lib.save_atomic_multiple(parts_table, advtrains.fpath.."_", callbacks_table)
if not succ then
- atwarn(S("Saving failed: ")..err)
+ atwarn(S("Saving failed: @1", err))
else
-- store version
advtrains.save_component(4, "version")
@@ -755,9 +754,9 @@ minetest.register_chatcommand("at_whereis",
func = function(name,param)
local train = advtrains.trains[param]
if not train or not train.last_pos then
- return false, S("Train ")..param..S(" does not exist or is invalid")
+ return false, S("Train @1 does not exist or is invalid", param)
else
- return true, S("Train ")..param..S(" is at ")..minetest.pos_to_string(train.last_pos)
+ return true, S("Train @1 is at @2", param, minetest.pos_to_string(train.last_pos))
end
end,
})
@@ -769,10 +768,10 @@ minetest.register_chatcommand("at_tp",
func = function(name,param)
local train = advtrains.trains[param]
if not train or not train.last_pos then
- return false, S("Train ")..param..S(" does not exist or is invalid")
+ return false, S("Train @1 does not exist or is invalid", param)
else
minetest.get_player_by_name(name):set_pos(train.last_pos)
- return true, S("Teleporting to train ")..param
+ return true, S("Teleporting to train @1", param)
end
end,
})
@@ -803,7 +802,7 @@ minetest.register_chatcommand("at_status",
description = S("Print advtrains status info"),
privs = {train_operator = true},
func = function(name, param)
- return true, advtrains.print_concat_table({S("Advtrains Status: no_action"),no_action,S("slowdown"),advtrains.global_slowdown,S("(log"),math.log(advtrains.global_slowdown),")"})
+ return true, S("Advtrains Status: no_action @1 slowdown @2 (log @3)", no_action, advtrains.global_slowdown, math.log(advtrains.global_slowdown))
end,
})
diff --git a/advtrains/misc_nodes.lua b/advtrains/misc_nodes.lua
index bcf7329..8720272 100644
--- a/advtrains/misc_nodes.lua
+++ b/advtrains/misc_nodes.lua
@@ -1,5 +1,8 @@
--all nodes that do not fit in any other category
+-- Get current translator
+local S = advtrains.translate
+
function advtrains.register_platform(modprefix, preset)
local ndef=minetest.registered_nodes[preset]
if not ndef then
@@ -13,7 +16,7 @@ function advtrains.register_platform(modprefix, preset)
local desc=ndef.description or ""
local nodename=string.match(preset, ":(.+)$")
minetest.register_node(modprefix .. ":platform_low_"..nodename, {
- description = attrans("@1 Platform (low)", desc),
+ description = S("@1 Platform (low)", desc),
tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
groups = {cracky = 1, not_blocking_trains = 1, platform=1},
sounds = ndef.sounds,
@@ -30,7 +33,7 @@ function advtrains.register_platform(modprefix, preset)
sunlight_propagates = true,
})
minetest.register_node(modprefix .. ":platform_high_"..nodename, {
- description = attrans("@1 Platform (high)", desc),
+ description = S("@1 Platform (high)", desc),
tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
@@ -56,7 +59,7 @@ function advtrains.register_platform(modprefix, preset)
}
}
minetest.register_node(modprefix..":platform_45_"..nodename, {
- description = attrans("@1 Platform (45 degree)", desc),
+ description = S("@1 Platform (45 degree)", desc),
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
drawtype = "mesh",
@@ -78,7 +81,7 @@ function advtrains.register_platform(modprefix, preset)
}
}
minetest.register_node(modprefix..":platform_45_low_"..nodename, {
- description = attrans("@1 Platform (low, 45 degree)", desc),
+ description = S("@1 Platform (low, 45 degree)", desc),
groups = {cracky = 1, not_blocking_trains = 1, platform=2},
sounds = ndef.sounds,
drawtype = "mesh",
diff --git a/advtrains/protection.lua b/advtrains/protection.lua
index ac1cd66..6bb1ccb 100644
--- a/advtrains/protection.lua
+++ b/advtrains/protection.lua
@@ -1,27 +1,29 @@
-- advtrains
-- protection.lua: privileges and rail protection, and some helpers
+-- Get current translator
+local S = advtrains.translate
-- Privileges to control TRAIN DRIVING/COUPLING
minetest.register_privilege("train_operator", {
- description = attrans("Can place, remove and operate trains"),
+ description = S("Can place, remove and operate trains"),
give_to_singleplayer= true,
});
minetest.register_privilege("train_admin", {
- description = attrans("Can place, remove and operate any train, regardless of owner, whitelist, or protection"),
+ description = S("Can place, remove and operate any train, regardless of owner, whitelist, or protection"),
give_to_singleplayer= true,
});
-- Privileges to control TRACK BUILDING
minetest.register_privilege("track_builder", {
- description = attrans("Can place and dig tracks in unprotected areas"),
+ description = S("Can place and dig tracks in unprotected areas"),
give_to_singleplayer= true,
});
-- Privileges to control OPERATING TURNOUTS/SIGNALS
minetest.register_privilege("railway_operator", {
- description = attrans("Can operate turnouts and signals in unprotected areas"),
+ description = S("Can operate turnouts and signals in unprotected areas"),
give_to_singleplayer= true,
});
@@ -145,12 +147,12 @@ function advtrains.check_track_protection(pos, pname, near, prot_p)
--atdebug("CTP: ",pos,pname,near,prot_p,"priv=",priv,"prot=",prot,"dprot=",dprot)
if not priv and (not boo or prot or not dprot) then
- minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks without the track_builder privilege.") or attrans("You are not allowed to build tracks without the track_builder privilege."))
+ minetest.chat_send_player(pname, near and S("You are not allowed to build near tracks without the track_builder privilege.") or S("You are not allowed to build tracks without the track_builder privilege."))
minetest.log("action", pname.." tried to modify terrain "..nears.."track at "..minetest.pos_to_string(apos).." but is not permitted to (no privilege)")
return false
end
if prot then
- minetest.chat_send_player(pname, near and attrans("You are not allowed to build near tracks at this protected position.") or attrans("You are not allowed to build tracks at this protected position."))
+ minetest.chat_send_player(pname, near and S("You are not allowed to build near tracks at this protected position.") or S("You are not allowed to build tracks at this protected position."))
minetest.record_protection_violation(pos, pname)
minetest.log("action", pname.." tried to modify "..nears.."track at "..minetest.pos_to_string(apos).." but position is protected!")
return false
@@ -181,7 +183,7 @@ function advtrains.check_turnout_signal_protection(pos, pname)
nocheck=false
return true
else
- minetest.chat_send_player(pname, attrans("You are not allowed to operate turnouts and signals without the railway_operator privilege."))
+ minetest.chat_send_player(pname, S("You are not allowed to operate turnouts and signals without the railway_operator privilege."))
minetest.log("action", pname.." tried to operate turnout/signal at "..minetest.pos_to_string(pos).." but does not have railway_operator")
nocheck=false
return false
diff --git a/advtrains/signals.lua b/advtrains/signals.lua
index 35e118c..198507a 100644
--- a/advtrains/signals.lua
+++ b/advtrains/signals.lua
@@ -1,6 +1,9 @@
--advtrains by orwell96
--signals.lua
+-- Get current translator
+local S = advtrains.translate
+
local mrules_wallsignal = advtrains.meseconrules
local function can_dig_func(pos, player)
@@ -59,7 +62,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
tiles = {"advtrains_retrosignal.png"},
inventory_image="advtrains_retrosignal_inv.png",
drop="advtrains:retrosignal_off",
- description=attrans("Lampless Signal"),
+ description=S("Lampless Signal (deprecated!)"),
sunlight_propagates=true,
groups = {
cracky=3,
@@ -122,7 +125,7 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
tiles = {"advtrains_signal_"..r..".png"},
inventory_image="advtrains_signal_inv.png",
drop="advtrains:signal_off",
- description=attrans("Signal"),
+ description=S("Signal (deprecated!)"),
groups = {
cracky=3,
not_blocking_trains=1,
@@ -177,9 +180,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red",
--tunnel signals. no rotations.
local swdesc = { -- needed for xgettext
- l = attrans("Wallmounted Signal (left)"),
- r = attrans("Wallmounted Signal (right)"),
- t = attrans("Wallmounted Signal (top)"),
+ l = S("Wallmounted Signal (left) (deprecated!)"),
+ r = S("Wallmounted Signal (right) (deprecated!)"),
+ t = S("Wallmounted Signal (top) (deprecated!)"),
}
for loc, sbox in pairs({l={-1/2, -1/2, -1/4, 0, 1/2, 1/4}, r={0, -1/2, -1/4, 1/2, 1/2, 1/4}, t={-1/2, 0, -1/4, 1/2, 1/2, 1/4}}) do
minetest.register_node("advtrains:signal_wall_"..loc.."_"..r, {
@@ -258,7 +261,7 @@ minetest.register_node("advtrains:across_off", {
mesh = "advtrains_across.obj",
tiles = {"advtrains_across.png"},
drop="advtrains:across_off",
- description=attrans("Andrew's Cross"),
+ description=S("Andrew's Cross"),
groups = {
cracky=3,
not_blocking_trains=1,
@@ -295,7 +298,7 @@ minetest.register_node("advtrains:across_on", {
mesh = "advtrains_across.obj",
tiles = {{name="advtrains_across_anim.png", animation={type="vertical_frames", aspect_w=64, aspect_h=64, length=1.0}}},
drop="advtrains:across_off",
- description=attrans("Andrew's Cross"),
+ description=S("Andrew's Cross"),
groups = {
cracky=3,
not_blocking_trains=1,
diff --git a/advtrains/track_reg_helper.lua b/advtrains/track_reg_helper.lua
index e2f71e8..fe1d11d 100644
--- a/advtrains/track_reg_helper.lua
+++ b/advtrains/track_reg_helper.lua
@@ -4,6 +4,9 @@
-- Note to future: This is actually just a work-saver, avoiding me to port over all the crossing nodes as well as the linetrack tracks.
-- Future track mods should please directly use the appropriate advtrains.register_node_4rot() API and not rely on this!
+-- Get current translator
+local S = advtrains.translate
+
--definition preparation
local function conns(c1, c2, r1, r2) return {{c=c1, y=r1}, {c=c2, y=r2}} end
local function conns3(c1, c2, c3, r1, r2, r3) return {{c=c1, y=r1}, {c=c2, y=r2}, {c=c3, y=r3}} end
@@ -471,7 +474,7 @@ Depending on the number of connections:
local function can_dig_callback(pos, player)
local ok, reason = advtrains.can_dig_or_modify_track(pos)
if not ok and player then
- minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason)
+ minetest.chat_send_player(player:get_player_name(), S("This track can not be removed!") .. " " .. reason)
end
return ok
end
@@ -656,7 +659,7 @@ end
local sl={}
function sl.register_placer(def, preset)
minetest.register_craftitem(":"..def.nodename_prefix.."_slopeplacer",{
- description = attrans("@1 Slope", def.description),
+ description = S("@1 Slope", def.description),
inventory_image = def.texture_prefix.."_slopeplacer.png",
wield_image = def.texture_prefix.."_slopeplacer.png",
groups={},
@@ -667,17 +670,17 @@ end
function sl.create_slopeplacer_on_place(def, preset)
return function(istack, player, pt)
if not pt.type=="node" then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: not pointing at node"))
return istack
end
local pos=pt.above
if not pos then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: not pointing at node"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: not pointing at node"))
return istack
end
local node=minetest.get_node(pos)
if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].buildable_to then
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: space occupied!"))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: space occupied!"))
return istack
end
if not advtrains.check_track_protection(pos, player:get_player_name()) then
@@ -730,17 +733,17 @@ function sl.create_slopeplacer_on_place(def, preset)
pos=vector.subtract(pos, dirvec)
end
else
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: Not enough slope items left (@1 required)", step))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: Not enough slope items left (@1 required)", step))
end
else
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: There's no slope of length @1",step))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: There's no slope of length @1",step))
end
return istack
end
step=step+1
pos=vector.add(pos, dirvec)
end
- minetest.chat_send_player(player:get_player_name(), attrans("Can't place: no supporting node at upper end."))
+ minetest.chat_send_player(player:get_player_name(), S("Can't place: no supporting node at upper end."))
return itemstack
end
end
diff --git a/advtrains/trackplacer.lua b/advtrains/trackplacer.lua
index 3278b8c..0bcde77 100644
--- a/advtrains/trackplacer.lua
+++ b/advtrains/trackplacer.lua
@@ -1,6 +1,9 @@
--trackplacer.lua
--holds code for the track-placing system. the default 'track' item will be a craftitem that places rails as needed. this will neither place or change switches nor place vertical rails.
+-- Get current translator
+local S = advtrains.translate
+
--all new trackplacer code
local tp={
groups={}
@@ -237,7 +240,7 @@ end
minetest.register_craftitem("advtrains:trackworker",{
- description = attrans("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"),
+ description = S("Track Worker Tool\n\nLeft-click: change rail type (straight/curve/switch)\nRight-click: rotate object"),
groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
inventory_image = "advtrains_trackworker.png",
wield_image = "advtrains_trackworker.png",
@@ -260,7 +263,7 @@ minetest.register_craftitem("advtrains:trackworker",{
local ndef = minetest.registered_nodes[node.name]
if not ndef.advtrains or not ndef.advtrains.trackworker_next_rot then
- minetest.chat_send_player(placer:get_player_name(), attrans("This node can't be rotated using the trackworker!"))
+ minetest.chat_send_player(placer:get_player_name(), S("This node can't be rotated using the trackworker!"))
return
end
@@ -269,7 +272,7 @@ minetest.register_craftitem("advtrains:trackworker",{
-- is a track, we can query
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
if not can_modify then
- local str = attrans("This track can not be rotated!")
+ local str = S("This track can not be rotated!")
if reason then
str = str .. " " .. reason
end
@@ -309,7 +312,7 @@ minetest.register_craftitem("advtrains:trackworker",{
local ndef = minetest.registered_nodes[node.name]
if not ndef.advtrains or not ndef.advtrains.trackworker_next_var then
- minetest.chat_send_player(name, attrans("This node can't be changed using the trackworker!"))
+ minetest.chat_send_player(name, S("This node can't be changed using the trackworker!"))
return
end
@@ -318,7 +321,7 @@ minetest.register_craftitem("advtrains:trackworker",{
-- is a track, we can query
local can_modify, reason = advtrains.can_dig_or_modify_track(pos)
if not can_modify then
- local str = attrans("This track can not be rotated!")
+ local str = S("This track can not be rotated!")
if reason then
str = str .. " " .. reason
end
diff --git a/advtrains/tracks.lua b/advtrains/tracks.lua
index fa7b702..e6d08a7 100644
--- a/advtrains/tracks.lua
+++ b/advtrains/tracks.lua
@@ -1,6 +1,8 @@
-- tracks.lua
-- rewritten with advtrains 2.5 according to new track registration system
+-- Get current translator
+local S = advtrains.translate
--[[
@@ -125,7 +127,7 @@ Switchable nodes (turnouts, single/double-slip switches) are implemented by havi
function advtrains.track_can_dig_callback(pos, player)
local ok, reason = advtrains.can_dig_or_modify_track(pos)
if not ok and player then
- minetest.chat_send_player(player:get_player_name(), attrans("This track can not be removed!") .. " " .. reason)
+ minetest.chat_send_player(player:get_player_name(), S("This track can not be removed!") .. " " .. reason)
end
return ok
end
@@ -256,17 +258,17 @@ end
-- Impl Note: possibly duplicate code in "self contained TCB" - see interlocking/tcb_ts_ui.lua!
function advtrains.can_dig_or_modify_track(pos)
if advtrains.get_train_at_pos(pos) then
- return false, attrans("Position is occupied by a train.")
+ return false, S("Position is occupied by a train.")
end
-- interlocking: tcb, signal IP a.s.o.
if advtrains.interlocking then
-- TCB?
if advtrains.interlocking.db.get_tcb(pos) then
- return false, attrans("There's a Track Circuit Break here.")
+ return false, S("There's a Track Circuit Break here.")
end
-- signal ip?
if advtrains.interlocking.db.is_ip_at(pos, true) then -- is_ip_at with purge parameter
- return false, attrans("There's a Signal Influence Point here.")
+ return false, S("There's a Signal Influence Point here.")
end
end
return true
diff --git a/advtrains/trainhud.lua b/advtrains/trainhud.lua
index 9d9d475..eeebff0 100644
--- a/advtrains/trainhud.lua
+++ b/advtrains/trainhud.lua
@@ -1,5 +1,8 @@
--trainhud.lua: holds all the code for train controlling
+-- Get current translator
+local S = advtrains.translate
+
local T = advtrains.texture
advtrains.hud = {}
@@ -274,7 +277,7 @@ function advtrains.hud_train_format(train, flip)
hud:add_n7seg(131, 18, 28, 14, lzbdisp.d, 3, lzbdisp.c)
if res and res == 0 then
- table.insert(st, attrans("OVERRUN RED SIGNAL! Examine situation and reverse train to move again."))
+ table.insert(st, S("OVERRUN RED SIGNAL! Examine situation and reverse train to move again."))
end
if train.atc_command then
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index c49d7e3..c0ac179 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -1,6 +1,9 @@
--trainlogic.lua
--controls train entities stuff about connecting/disconnecting/colliding trains and other things
+-- Get current translator
+local S = advtrains.translate
+
local setting_overrun_mode = minetest.settings:get("advtrains_overrun_mode")
local benchmark=false
diff --git a/advtrains/wagonprop_tool.lua b/advtrains/wagonprop_tool.lua
index 2a4a9e2..f32dd03 100644
--- a/advtrains/wagonprop_tool.lua
+++ b/advtrains/wagonprop_tool.lua
@@ -1,6 +1,10 @@
+
+-- Get current translator
+local S = advtrains.translate
+
minetest.register_craftitem("advtrains:wagon_prop_tool",{ --craftitem because it does nothing on its own
- description = attrans("Wagon Properties Tool\nPunch a wagon to view and edit the Wagon Properties"),
- short_description = attrans("Wagon Properties Tool"),
+ description = S("Wagon Properties Tool\nPunch a wagon to view and edit the Wagon Properties"),
+ short_description = S("Wagon Properties Tool"),
groups = {},
inventory_image = "advtrains_wagon_prop_tool.png",
wield_image = "advtrains_wagon_prop_tool.png",
@@ -23,7 +27,7 @@ minetest.register_craftitem("advtrains:wagon_prop_tool",{ --craftitem because it
--whitelist protection check
if not advtrains.check_driving_couple_protection(pname,wagon.owner,wagon.whitelist) then
- minetest.chat_send_player(pname, attrans("Insufficient privileges to use this!"))
+ minetest.chat_send_player(pname, S("Insufficient privileges to use this!"))
return
end
object:show_wagon_properties(pname)
@@ -40,4 +44,4 @@ if minetest.get_modpath("default") then --register recipe
{"","","group:wood"},
}
})
-end \ No newline at end of file
+end
diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua
index 760c7da..52ce577 100644
--- a/advtrains/wagons.lua
+++ b/advtrains/wagons.lua
@@ -7,8 +7,8 @@
-- An entity is ONLY spawned by update_trainpart_properties when it finds it useful.
-- Only data that are only important to the entity itself are stored in the luaentity
--- Translation
-S = attrans
+-- Get current translator
+local S = advtrains.translate
-- TP delay when getting off wagon
local GETOFF_TP_DELAY = 0.5
@@ -157,7 +157,7 @@ function wagon:ensure_init()
end
end
if not self.noninitticks then
- atwarn("Wagon",self.id,S("Uninitialized init="),self.initialized)
+ atwarn("Wagon",self.id,"Uninitialized init=",self.initialized)
self.noninitticks=0
end
self.noninitticks=self.noninitticks+1
@@ -243,7 +243,7 @@ function wagon:destroy()
if self.id then
local data = advtrains.wagons[self.id]
if not data then
- atwarn(S(" wagon:destroy(): data is not set!"))
+ atwarn(" wagon:destroy(): data is not set!")
return
end
@@ -1481,7 +1481,7 @@ advtrains.register_wagon("advtrains:wagon_placeholder", {
assign_to_seat_group = {},
wagon_span=1,
drops={},
-}, "Wagon placeholder", "advtrains_wagon_placeholder.png", true)
+}, S("Wagon placeholder"), "advtrains_wagon_placeholder.png", true)
@@ -1579,12 +1579,12 @@ minetest.register_chatcommand("at_chown", {
local new_owner = params[2]
if not wid then return false end --no params added
--player name checks
- if not new_owner then return false, attrans("Please specify a player name to transfer ownership to.") end --no player name argument
- if not core.player_exists(new_owner) then return false, attrans("That player does not exist!") end --is a valid player
+ if not new_owner then return false, S("Please specify a player name to transfer ownership to.") end --no player name argument
+ if not core.player_exists(new_owner) then return false, S("That player does not exist!") end --is a valid player
--wagon id checks
- if not wid:match("%d%d%d%d%d%d") then return false, attrans("Not a valid wagon id.") end -- invalid wagon id
+ if not wid:match("%d%d%d%d%d%d") then return false, S("Not a valid wagon id.") end -- invalid wagon id
local w_data = advtrains.wagons[wid]
- if not w_data then return false, attrans("That wagon does not exist!") end
+ if not w_data then return false, S("That wagon does not exist!") end
-- actually chown the wagon
local curr_owner = w_data.owner
w_data.owner = new_owner
@@ -1592,8 +1592,8 @@ minetest.register_chatcommand("at_chown", {
advtrains.log("Chown", name, core.get_player_by_name(name):get_pos(), "wid="..wid..", from="..curr_owner..", to="..new_owner)
if name ~= new_owner then
- core.chat_send_player(new_owner, attrans("You have been given ownership of wagon @1", wid))
+ core.chat_send_player(new_owner, S("You have been given ownership of wagon @1", wid))
end
- return true, attrans("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
+ return true, S("Wagon @1 ownership changed from @2 to @3", wid, curr_owner, new_owner)
end
-}) \ No newline at end of file
+})