Difference between revisions of "Module:Template translation"
Jump to navigation
Jump to search
revert, causing script errors all over the place
en>Verdy p m |
en>Techman224 (revert, causing script errors all over the place) |
||
Line 58: | Line 58: | ||
]] | ]] | ||
function this.renderTranslatedTemplate(frame) | function this.renderTranslatedTemplate(frame) | ||
local | local template = frame.args['template'] | ||
--[[Check whether the template is actually in the Template namespace, or | |||
--[[Check whether the | |||
if we're transcluding a main-namespace page. | if we're transcluding a main-namespace page. | ||
(added for backward compatibility of Template:TNT) | (added for backward compatibility of Template:TNT) | ||
]] | ]] | ||
local namespace = 'Template' | |||
local namespace = | if (frame.args['namespace']~='')--checks for namespace parameter for custom ns | ||
if (namespace ~= '') -- | |||
then | then | ||
namespace = frame.args['namespace'] | |||
else -- | else--supposes that set page is in ns10 | ||
local templateFullTitle = mw.title.new(template, namespace) | |||
if ( | if (templateFullTitle.id == 0) | ||
then -- not found in the Template namespace, assume the main namespace | then -- not found in the Template namespace, assume the main namespace | ||
namespace = '' | |||
end | end | ||
end | end | ||
-- Get the last subpage and check if it matches a known language code | |||
local langcode = 'en' -- default language template subpage to render | |||
-- Get the last subpage and check if it matches a known language code | |||
local subpage = this.getLanguageSubpage() | local subpage = this.getLanguageSubpage() | ||
if (subpage | if (subpage ~= '') | ||
then | then | ||
-- Check if a translation of the | -- 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) | |||
local | |||
if ( | |||
then | then | ||
langcode = subpage | |||
end | end | ||
end | end | ||
-- Copy args pseudo-table to a proper table so we can feed it to expandTemplate | -- Copy args pseudo-table to a proper table so we can feed it to expandTemplate | ||
-- Then render the | -- Then render the template | ||
local arguments = {} | local arguments = {} | ||
for k, v in pairs((frame:getParent() or {}).args) do | for k, v in pairs((frame:getParent() or {}).args) do | ||
Line 126: | Line 105: | ||
end | end | ||
end | end | ||
return frame:expandTemplate{title = | return frame:expandTemplate{title = namespace .. ':' .. template .. '/' .. langcode, args = arguments} | ||
end | end | ||
return this | return this |