Difference between revisions of "Module:Template translation"
Jump to navigation
Jump to search
what>Guillom (test init) |
what>Guillom (first stab) |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
− | function p. | + | |
− | + | function p.renderTranslatedTemplate(frame, template) | |
+ | --[[ If on a translation subpage (like Foobar/de), this function renders | ||
+ | a given template in the same language, if the translation is available. | ||
+ | Otherwise, the template is rendered in its default language, without | ||
+ | modification.]] | ||
+ | |||
+ | local langcode = '' | ||
+ | |||
+ | -- Get the last subpage | ||
+ | local subpage = mw.title.getCurrentTitle().subpageText | ||
+ | |||
+ | --[[ If the subpage is a valid language code, check if a translation of the | ||
+ | template exists in that language; if so, put it in langcode ]] | ||
+ | |||
+ | if ( mw.language.isValidCode( subpage ) ) | ||
+ | then | ||
+ | local translation = mw.title.new( template..'/'..subpage, 'Template' ) | ||
+ | if ( translation.id ~= 0) | ||
+ | then | ||
+ | langcode='/'..subpage | ||
+ | end | ||
+ | end | ||
+ | |||
+ | -- Render the template | ||
+ | frame:expandTemplate{ title = template..langcode, args = frame.args } | ||
+ | |||
end | end | ||
+ | |||
return p | return p |
Revision as of 16:23, 24 May 2013
local p = {}
function p.renderTranslatedTemplate(frame, template)
--[[ If on a translation subpage (like Foobar/de), this function renders a given template in the same language, if the translation is available. Otherwise, the template is rendered in its default language, without modification.]] local langcode = -- Get the last subpage local subpage = mw.title.getCurrentTitle().subpageText --[[ If the subpage is a valid language code, check if a translation of the template exists in that language; if so, put it in langcode ]] if ( mw.language.isValidCode( subpage ) ) then local translation = mw.title.new( template..'/'..subpage, 'Template' ) if ( translation.id ~= 0) then langcode='/'..subpage end end
-- Render the template frame:expandTemplate{ title = template..langcode, args = frame.args }
end
return p