poikilos
3 years ago
6 changed files with 57 additions and 7 deletions
@ -0,0 +1,45 @@ |
|||
|
|||
-- Fallback functions for when `intllib` is not installed. |
|||
-- Code released under Unlicense <http://unlicense.org>. |
|||
|
|||
-- Get the latest version of this file at: |
|||
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua |
|||
|
|||
local function format(str, ...) |
|||
local args = { ... } |
|||
local function repl(escape, open, num, close) |
|||
if escape == "" then |
|||
local replacement = tostring(args[tonumber(num)]) |
|||
if open == "" then |
|||
replacement = replacement..close |
|||
end |
|||
return replacement |
|||
else |
|||
return "@"..open..num..close |
|||
end |
|||
end |
|||
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) |
|||
end |
|||
|
|||
local gettext, ngettext |
|||
if minetest.get_modpath("intllib") then |
|||
if intllib.make_gettext_pair then |
|||
-- New method using gettext. |
|||
gettext, ngettext = intllib.make_gettext_pair("unified_inventory") |
|||
else |
|||
-- Old method using text files. |
|||
gettext = intllib.Getter("unified_inventory") |
|||
end |
|||
end |
|||
|
|||
-- Fill in missing functions. |
|||
|
|||
gettext = gettext or function(msgid, ...) |
|||
return format(msgid, ...) |
|||
end |
|||
|
|||
ngettext = ngettext or function(msgid, msgid_plural, n, ...) |
|||
return format(n==1 and msgid or msgid_plural, ...) |
|||
end |
|||
|
|||
return gettext, ngettext |
Loading…
Reference in new issue