Update intllib support to avoid using deprecated functions

This commit is contained in:
Hugo Locurcio 2019-03-03 20:11:18 +01:00
parent 2fe764ba79
commit 09e69ec0b6
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
3 changed files with 52 additions and 7 deletions

View File

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased] ## [Unreleased]
### Changed
- Update intllib support to avoid using deprecated functions.
### Added ### Added
- Brazilian and Dutch translations. - Brazilian and Dutch translations.

View File

@ -10,15 +10,12 @@ Licensed under the zlib license. See LICENSE.md for more information.
moreores = {} moreores = {}
local S
if minetest.get_modpath("intllib") then
S = intllib.Getter()
else
S = function(s) return s end
end
local modpath = minetest.get_modpath("moreores") local modpath = minetest.get_modpath("moreores")
local S, NS = dofile(modpath .. "/intllib.lua")
moreores.S = S
moreores.NS = NS
dofile(modpath .. "/_config.txt") dofile(modpath .. "/_config.txt")
-- `mg` mapgen support -- `mg` mapgen support

44
intllib.lua Normal file
View File

@ -0,0 +1,44 @@
-- 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()
else
-- Old method using text files.
gettext = intllib.Getter()
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