Module:Template translation: Difference between revisions
Jump to navigation
Jump to search
(test init) |
(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
Documentation for this module may be created at Module:Template translation/doc
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