Документация
require('strict')
local p = {}
local Localization = {
__call = function(self, ...)
if arg.n == 0 then
return self
end
local v = self._
for i = 1, arg.n do
v = v[arg[i]]
if not v then
return arg[arg.n]
end
end
return v
end
}
function Localization:new(l10nPath)
local langObj = mw.getContentLanguage()
local langPath
if not l10nPath then
local frame = mw.getCurrentFrame()
l10nPath = frame:getTitle() .. '/l10n'
end
langPath = l10nPath .. '/' .. langObj:getCode()
local obj = {
_ = mw.loadData(langPath),
}
setmetatable(obj, self)
self.__index = obj._
return obj
end
function p.load(l10nPath)
return Localization:new(l10nPath)
end
return p