Template:Fallback: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Zolo (talk | contribs)
m
m rvv
Tag: Undo
 
(92 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{#ifexist: Template:{{{1|}}}/{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}} |{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}}|{{CONTENTLANGUAGE}}}}<noinclude>
local p = {}
local langlist = {
['af'] = {'nl'},
['als'] = {'de'},
['arz'] = {'ar'},
['bar'] = {'de'},
['be-x-old'] = {'be-tarask'},
['br'] = {'fr'},
['ckb'] = {'fa'},
['co'] = {'fr'},
['crh-cyrl'] = {'crh'},
['crh-latn'] = {'crh'},
['de-ch'] = {'de'},
['de-formal'] = {'de'},
['de-formal'] = {'de'},
['en-gb'] = {'en'},
['frp'] = {'fr'},
['frr'] = {'de'},
['fy'] = {'nl'},
['glk'] = {'fa'},
['hif-deva'] = {'hif'},
['hif-latn'] = {'hif'},
['ht'] = {'fr'},
['ike-cans'] = {'ik'},
['kk-arab'] = {'kk'},
['kk-cn'] = {'kk'},
['kk-cyrl'] = {'kk'},
['kk-kz'] = {'kk'},
['kk-latn'] = {'kk'},
['kk-tr'] = {'kk'},
['ksh'] = {'de'},
['ku-arab'] = {'ku'},
['ku-latn'] = {'ku'},
['li'] = {'nl'},
['mg'] = {'fr'},
['mzn'] = {'fa'},
['nds'] = {'nds-nl', 'de'},
['nds-nl'] = {'nds', 'nl'},
['nl-informal']= {'nl'},
['pdt'] = {'nds', 'de'},
['pt-br'] = {'pt'},
['ruq-grek'] = {'ruq'},
['rug-latn'] = {'ruq'},
['ruq-cyrl'] = {'ruq'},
['sr-ec'] = {'sr'},
['sr-el'] = {'sr'},
['szl'] = {'pl'},
['tg-cyrl'] = {'tg'},
['tg-latn'] = {'tg'},
['tt-cyrl'] = {'tt'},
['tt-latn'] = {'tt'},
['ty'] = {'fr'},
['vec'] = {'it'},
['vls'] = {'nl'},
['wa'] = {'fr'},
['zea'] = {'nl'},
['zh'] = {'zh-hans'},
['zh-cn'] = {'zh-hans'},
['zh-hans'] = {'zh-cn', 'zh'},
['zh-hant'] = {'zh'},
['zh-hk'] = {'zh-hant'},
['zh-mo'] = {'zh-hant'},
['zh-my'] = {'zh-hans'},
['zh-sg'] = {'zh-hans'},
['zh-tw'] = {'zh-hant'}
}


{{documentation}}
function p.fblist(args, lang) -- creates a list a fallback languages from user's language to en
</noinclude>
local fbstr = p.fallbackloop(args, ' ' .. lang)
fbstr = fbstr .. ' ' .. 'default'
fbstr = fbstr .. ' ' .. 'en'
return mw.text.split(fbstring, " ", true)
end

function p.fallbackloop(args, str) --list of fallback languages in a string, more convenient than tables
local newstr = str
for i, j in pairs(mw.text.split(str, " ", true)) do
if langlist[j] then
for k, l in pairs(langlist[j]) do
if not string.find(newstr, k) then
newstr = newstr .. ' ' .. k
end
end
end
end
if newstr ~= str then
return p.fallbackloop(args, newstr)
end
return newstr
end

function p.langSwitch(frame)
args = mw.getCurrentFrame():getParent().args
-- Return error if there is not default and no english version
if not args.en and not args.default and args.nocat ~= '1' then
return frame:expandTemplate{ title = "red", args = {'LangSwitch error: no default'}} .. '[[Category:LangSwitch template without default version]]'
end
-- get language (either stated one or user's default language)
local lang = args.lang
if not lang then
lang = frame:preprocess( "{{int:lang}}" )
end
-- gets the most appropriate language
local fblist = p.fblist(args, lang)
text = ''
for i in pairs(fblist) do text = text .. i end
return text
end

return p

Latest revision as of 23:55, 18 June 2023

en

Template documentation

This template was imported from commons:Template:Fallback without the here unusable documentation.


Use localised subpage for the user language with fallback to {{CONTENTLANGUAGE}}

Template parameters[Edit template data]

ParameterDescriptionTypeStatus
page1

Template name

Page namerequired
lang2

override user language on localised page

Default
{{int:Lang}}
Stringoptional