Modul:TranslateTemplate
Hopp til navigering
Hopp til søk
Dokumentasjon for denne modulen kan opprettes på Modul:TranslateTemplate/dok
local p = {}
function p.translate(frame)
local template
local argtable = {}
for k, v in pairs(frame.args) do
if k == 1 then template = v
else argtable[k] = v end
end
local pframe = frame:getParent()
if pframe ~= nil then
for k, v in pairs(pframe.args) do
if k == 1 then template = v
else argtable[k] = v end
end
end
-- Last inn konfigurasjonsfilen basert på malnavn gitt som 1= eller template=
if template == nil then
return frame:preprocess('{{Feil|Ingen mal angitt}}')
end
local nb = mw.language.new('nb')
local normName = string.gsub(nb:ucfirst(template), '_', ' ')
local filename = 'Modul:TranslateTemplate/configuration/' .. normName
local status, config = pcall(require, filename)
if status == false then
return frame:preprocess('{{Feil|Konfigurasjonsfilen [[:' .. filename .. ']] ble ikke funnet}}')
end
-- Oversett navngitte parametere basert på mapping fra konfigurasjonsfilen
local args = ''
for key, val in pairs( argtable ) do
if string.match( key, '^[0-9]+$' ) == nil and val ~= '' then
newkey = config['args'][key]
if newkey == nil then
return frame:preprocess('{{Feil|Argumentet "' .. key .. '" ble ikke funnet i konfigurasjonsfilen [[:' .. filename .. ']]}}')
end
args = args .. '|' .. newkey .. '=' .. val
end
end
local out = '{{' .. config['name'] .. args .. '}}'
if argtable[2] == nil then
return frame:preprocess(out)
end
if argtable[2] == 'raw' then
return out
end
return frame:preprocess('{{Feil|TranslateTemplate forstår ikke: ' .. argtable[2] .. '}}')
end
return p