Fix 0.4 compatibility (#16)
* added minetest 0.4 compatibility due the trasnlation missing support * if translation is not supported use english on compat/mtg.lua * improved the code of translation of the already init.lua * this solves: closes https://github.com/minetest-mods/lavastuff/issues/13 * this solves: closes https://codeberg.org/minenux/lavastuff/issues/1 * close https://codeberg.org/minenux/lavastuff/issues/1 * real fix for compatibility later trasnlations * real fix for https://github.com/minetest-mods/lavastuff/issues/13 * use native translator or intlib property as must be, but mock if both fails * fix modname and use intlib depennds only in older engines * autodetect mod name from minetest api * added only intllib in depends.txt for older 0.4.X, mod.conf its for 5+ so due 5+ has built in internationalization its not necesary in that file * added the depends only when necesary for intllib * Update init.lua usage or MODNAME and MODPATH Co-authored-by: LoneWolfHT <lonewolf04361@gmail.com> * puff also uage ot the MODNAME in get translator * update luacheck as suggested by lonewolf i dont know how to avoid the usage of those variables.. but he suggested to just put those .. https://github.com/minetest-mods/lavastuff/pull/16#issuecomment-1036497969 * move intllib to others to do not fail in checks agains moderns engine also added ',' at the en of the line Co-authored-by: LoneWolfHT <lonewolf04361@gmail.com>
This commit is contained in:
parent
94d6bd9b44
commit
3eacc17e73
@ -23,7 +23,7 @@ read_globals = {
|
|||||||
"nodecore",
|
"nodecore",
|
||||||
|
|
||||||
-- Other mods
|
-- Other mods
|
||||||
"stairsplus", "toolranks",
|
"stairsplus", "toolranks", "gettext", "intllib",
|
||||||
}
|
}
|
||||||
|
|
||||||
exclude_files = {
|
exclude_files = {
|
||||||
|
@ -6,6 +6,7 @@ mobs_monster?
|
|||||||
3d_armor?
|
3d_armor?
|
||||||
toolranks?
|
toolranks?
|
||||||
moreblocks?
|
moreblocks?
|
||||||
|
intllib?
|
||||||
vessels?
|
vessels?
|
||||||
nc_fire?
|
nc_fire?
|
||||||
mcl_armor?
|
mcl_armor?
|
||||||
|
34
init.lua
34
init.lua
@ -1,15 +1,41 @@
|
|||||||
lavastuff = {}
|
lavastuff = {}
|
||||||
|
|
||||||
local MODPATH = minetest.get_modpath("lavastuff")
|
local MODNAME = minetest.get_current_modname()
|
||||||
|
local MODPATH = minetest.get_modpath(MODNAME)
|
||||||
|
|
||||||
local COOLDOWN = dofile(MODPATH.."/cooldowns.lua")
|
local COOLDOWN = dofile(MODPATH.."/cooldowns.lua")
|
||||||
local S
|
local S
|
||||||
|
|
||||||
if minetest.get_translator ~= nil then
|
if minetest.get_translator ~= nil then
|
||||||
S = minetest.get_translator(minetest.get_current_modname())
|
S = minetest.get_translator(MODNAME)
|
||||||
else
|
else
|
||||||
S = function(str)
|
if minetest.get_modpath("intllib") then
|
||||||
return(str)
|
dofile(minetest.get_modpath("intllib").."/init.lua")
|
||||||
|
if intllib.make_gettext_pair then
|
||||||
|
-- New method using gettext.
|
||||||
|
gettext, ngettext = intllib.make_gettext_pair()
|
||||||
|
else
|
||||||
|
-- Old method using text files.
|
||||||
|
gettext = intllib.Getter()
|
||||||
|
end
|
||||||
|
S = gettext
|
||||||
|
else
|
||||||
|
-- mock the translator function for MT 0.4
|
||||||
|
function minetest.translate(textdomain, str, ...)
|
||||||
|
local arg = {n=select('#', ...), ...}
|
||||||
|
return str:gsub("@(.)", function(matched)
|
||||||
|
local c = string.byte(matched)
|
||||||
|
if string.byte("1") <= c and c <= string.byte("9") then
|
||||||
|
return arg[c - string.byte("0")]
|
||||||
|
else
|
||||||
|
return matched
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
function minetest.get_translator(textdomain)
|
||||||
|
return function(str, ...) return minetest.translate(textdomain or "", str, ...) end
|
||||||
|
end
|
||||||
|
S = minetest.get_translator(MODNAME)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user