Difference between revisions of "Module:Template translation"

From FIThydrowiki
Jump to navigation Jump to search
what>Guillom
(test init)
 
what>Guillom
(first stab)
Line 1: Line 1:
 
local p = {}
 
local p = {}
function p.hello(frame)
+
 
     return 'Hello'
+
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