Difference between revisions of "Module:Template translation"
Module:Template translation (view source)
Revision as of 23:08, 8 November 2013
, 23:08, 8 November 2013add a sandbox function 2 for fixing the previous one
>Base m (should be like this, i hope) |
>Verdy p m (add a sandbox function 2 for fixing the previous one) |
||
Line 64: | Line 64: | ||
local arguments = {} | local arguments = {} | ||
for k, v in pairs(frame.args) do | for k, v in pairs(frame.args) do | ||
arguments[k] = v | |||
end | |||
return frame:expandTemplate{title = namespace .. ':' .. template .. '/' .. langcode, args = arguments} | |||
end | |||
--[[sandbox: Fix parameter list | |||
]] | |||
function this.renderTranslatedTemplate2(frame) | |||
local template = frame.args['template'] | |||
--[[Check whether the template is actually in the Template namespace, or | |||
if we're transcluding a main-namespace page. | |||
(added for backward compatibility of Template:TNT) | |||
]] | |||
local namespace = 'Template' | |||
if (frame.args['namespace']~='')--checks for namespace parameter for custom ns | |||
then | |||
namespace = frame.args['namespace'] | |||
else--supposes that set page is in ns10 | |||
local templateFullTitle = mw.title.new(template, namespace) | |||
if (templateFullTitle.id == 0) | |||
then -- not found in the Template namespace, assume the main namespace | |||
namespace = '' | |||
end | |||
end | |||
-- Get the last subpage and check if it matches a known language code | |||
local langcode = 'en' -- default language template subpage to render | |||
local subpage = this.getLanguageSubpage() | |||
if (subpage ~= '') | |||
then | |||
-- Check if a translation of the template exists in that language; if so, put it in langcode | |||
local translation = mw.title.new(template .. '/' .. subpage, namespace) | |||
if (translation.id ~= 0) | |||
then | |||
langcode = subpage | |||
end | |||
end | |||
-- Copy args pseudo-table to a proper table so we can feed it to expandTemplate | |||
-- Then render the template | |||
local arguments = {} | |||
for k, v in pairs(frame.parent.args) do | |||
arguments[k] = v | arguments[k] = v | ||
end | end |