Module:Main: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
add final fallback to Template:Appeal/default/en |
add similar function for Template:Infobox |
||
Line 14: | Line 14: | ||
local p4 = mw.title.new( 'Template:Appeal/default/' .. language ) |
local p4 = mw.title.new( 'Template:Appeal/default/' .. language ) |
||
local p5 = mw.title.new( 'Template:Appeal/default/en' ) |
local p5 = mw.title.new( 'Template:Appeal/default/en' ) |
||
if p1.exists then |
|||
page = p1 |
|||
elseif p2.exists then |
|||
page = p2 |
|||
elseif p3.exists then |
|||
page = p3 |
|||
elseif p4.exists then |
|||
page = p4 |
|||
else |
|||
page = p5 |
|||
end |
|||
local expanded = frame:expandTemplate{ title = page, args = frame.args } |
|||
return expanded |
|||
end |
|||
function p.get_infobox( frame ) |
|||
local infobox_name = frame.args.infobox |
|||
local language = frame.args.language |
|||
local country = frame.args.country |
|||
local p1 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/' .. language .. '/' .. country ) |
|||
local p2 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/' .. language ) |
|||
local p3 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/en' ) |
|||
local p4 = mw.title.new( 'Template:Infobox/Default/' .. language ) |
|||
local p5 = mw.title.new( 'Template:Infobox/Default/en' ) |
|||
if p1.exists then |
if p1.exists then |
Revision as of 14:55, 6 March 2019
Documentation
get_appeal
Includes the best localised appeal subpage of Template:Appeal, based on appeal name, language, and country given. Also passes the parameters to the selected appeal template for their use (e.g. in localising amounts with {{AppealAmountSwitch}})
Parameters:
appeal
- initial "Appeal-" (which was required for older links) is stripped off if presentlanguage
country
- Any other parameters to pass through to the appeal template (e.g.
sitename
)
Example:
{{#invoke:Main|get_appeal|appeal=Alan|country=CA|language=fr}}
- Display Template:Appeal/Alan/fr/CA if it exists, else
- display Template:Appeal/Alan/fr if it exists, else
- display Template:Appeal/Alan/en if it exists, else
- display Template:Appeal/default/fr if it exists, else
- display Template:Appeal/default/en
Replaces {{2012FR/Switch/Appeal}}
get_infobox
Does basically the same thing for subpages of Template:Infobox
Replaces {{2012FR/Switch/Infobox}}
get_tax_message
Code should be fairly self explanatory. Allows overriding the default message for certain countries.
page_language
Return the language code of the current subpage. If it isn't a subpage, or isn't a valid language code, return 'en'.
-- Single utility module. Break this into separate modules if it gets too large.
local p = {} -- p stands for package
function p.get_appeal( frame )
local appeal_name = string.gsub( frame.args.appeal , 'Appeal%-', '' )
local language = frame.args.language
local country = frame.args.country
local p1 = mw.title.new( 'Template:Appeal/' .. appeal_name .. '/' .. language .. '/' .. country )
local p2 = mw.title.new( 'Template:Appeal/' .. appeal_name .. '/' .. language )
local p3 = mw.title.new( 'Template:Appeal/' .. appeal_name .. '/en' )
local p4 = mw.title.new( 'Template:Appeal/default/' .. language )
local p5 = mw.title.new( 'Template:Appeal/default/en' )
if p1.exists then
page = p1
elseif p2.exists then
page = p2
elseif p3.exists then
page = p3
elseif p4.exists then
page = p4
else
page = p5
end
local expanded = frame:expandTemplate{ title = page, args = frame.args }
return expanded
end
function p.get_infobox( frame )
local infobox_name = frame.args.infobox
local language = frame.args.language
local country = frame.args.country
local p1 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/' .. language .. '/' .. country )
local p2 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/' .. language )
local p3 = mw.title.new( 'Template:Infobox/' .. infobox_name .. '/en' )
local p4 = mw.title.new( 'Template:Infobox/Default/' .. language )
local p5 = mw.title.new( 'Template:Infobox/Default/en' )
if p1.exists then
page = p1
elseif p2.exists then
page = p2
elseif p3.exists then
page = p3
elseif p4.exists then
page = p4
else
page = p5
end
local expanded = frame:expandTemplate{ title = page, args = frame.args }
return expanded
end
return p