Module:Sandbox/Jackmcbarn
Appearance
local translationwrapper = {}
function translationwrapper.create(args)
if not args.temapping then
args.temapping = {}
for k,v in pairs(args.etmapping) do
if type(v) == 'table' then
for _,v2 in ipairs(v) do
args.temapping[v2] = k
end
else
args.temapping[v] = k
end
end
end
local mt = {}
function mt.__index(t, k)
local etmapping = args.etmapping[k]
if type[etmapping] == 'table' then
for _,v in ipairs(etmapping) do
local retval = src[v]
if retval ~= nil then
return retval
end
end
if args.strict then
return nil
else
return src[k]
end
elseif etmapping ~= nil then
local retval = src[etmapping]
if retval ~= nil then
return retval
elseif args.strict then
return nil
else
return src[k]
end
elseif args.strict then
error('Tried to read untranslated key in strict mode: ' .. k)
else
return src[k]
end
end
function mt.__newindex(t, k, v)
local etmapping = args.etmapping[k]
if type[etmapping] == 'table' then
etmapping = etmapping[1]
elseif etmapping == nil then
if args.strict then
error('Tried to write untranslated key in strict mode: ' .. k)
else
etmapping = k
end
end
src[etmapping] = v
end
function mt.__pairs(t)
end
function mt.__ipairs(t)
return ipairs(args.src)
end
return setmetatable({}, mt)
end
local p = {}
function p.main(frame)
mw.logObject(frame.args, 'frame.args')
mw.logObject(frame:getParent().args, 'frame:getParent().args')
end
function p.x(frame)
mw.title.new(tonumber(frame.args[1]))
end
return p