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