Module:Template translation: Difference between revisions
Content added Content deleted
mNo edit summary |
(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'] |
||
local pagename = args['template'] |
|||
⚫ | |||
⚫ | |||
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 |
local namespace = 'Template' |
||
if (frame.args['namespace']~='')--checks for namespace parameter for custom ns |
|||
if (namespace ~= '') -- Checks for namespace parameter for custom ns. |
|||
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 |
|||
if (title.id == 0) |
|||
then |
|||
return '[[' .. title.prefixedText .. ']]' |
|||
end |
|||
-- 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 |
local translation = mw.title.new(template .. '/' .. subpage, namespace) |
||
if (translation.id ~= 0) |
|||
if (newtitle.id ~= 0) |
|||
then |
|||
title = newtitle |
|||
end |
|||
else |
|||
-- Check if a translation of the pagename exists in that language |
|||
local newtitle = mw.title.new(title.prefixedText .. '/' .. subpage) -- Costly |
|||
if (newtitle.id == 0) |
|||
then |
|||
-- Check if a translation of the pagename exists in English |
|||
newtitle = mw.title.new(title.prefixedText .. '/' .. 'en') -- Costly |
|||
end |
|||
-- Use the translation when it exists |
|||
if (newtitle.id ~= 0) |
|||
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 |
||