Module:GetFallback

From Wikimedia Commons, the free media repository
Jump to: navigation, search

Documentation for this module may be created at Module:GetFallback/doc

local p = {}
 
local list = {
	['af'] = {'nl'},
	['al'] = {'de'},
	['bar'] = {'de'},
	['be-tarask'] = {'be-x-old'},
	['br'] = {'fr'},
	['ckb'] = {'fa'},
	['co'] = {'fr'},
	['crh-cyrl'] = {'crh'},
	['crh-latn']  = {'crh'},
	['csb'] = {'pl'},
	['de-formal'] = {'de'},
	['de-at'] = {'de'},
	['de-ch'] = {'de'},
	['frp'] = {'fr'},
	['frr'] = {'de'},
	['fy'] = {'nl'},
	['glk'] = {'fa'},
	['hif-deva'] = {'hif'},
	['hif-latn'] = {'hif'},
	['ht'] = {'fr'},
	['ike-cans'] = {'ike'},
	['ike-latn'] = {'ike'},
	['kk-arab'] = {'kk'},
	['kk-cyrl'] = {'kk'},
	['kk-latn'] = {'kk'},
	['kk-cn'] = {'kk'},
	['kk-kz'] = {'kk'},
	['kk-tr'] = {'kk'},
	['ksh'] = {'de'},
	['ku-latn'] = {'ku'},
	['ku-arab'] = {'ku'},
	['mg'] = {'fr'},
	['nds'] = {'nds-nl', 'de'},
	['mzn'] = {'fa'},
	['nl-informal'] = {'nl'},
	['pdt'] = {'nds'},
	['pt-br'] = {'pt'},
	['ruq-cyrl'] = {'ruq'},
	['ruq-grek']  = {'ruq'},
	['ruq-latn']  = {'ruq'},
	['sr-ec'] = {'sr'},
	['sr-el'] = {'sr'},
	['szi'] = {'pl'},
	['tg-cyrl'] = {'tg'},
	['tg-latn'] = {'tg'},
	['tt-cyrl'] = {'tt'},
	['tt-latn'] = {'tt'},
	['vec'] = {'it'},
	['ty'] = {'fr'},
	['vsl'] = {'nl'},
	['wa'] = {'fr'},
	['za'] = {'nl'},
	['zh'] = {'zh-hans'},
	['zh-cn'] = {'zh-hans', 'zh'},
	['zh-hk'] = {'zh-hans', 'zh'},
	['zh-mo'] = {'zh-hant', 'zh'},
	['zh-my'] = {'zh-hans', 'zh'},
	['zh-sg'] = {'zh-hans', 'zh'},
	['zh-tw'] = {'zh-hant', 'zh'}
}
 
function p.findFallback(args, lang)
	if list.lang then
		for i, j in pairs(list.lang) do
			if args[j] then
				return args[j]
			end
		end
		for k, l in pairs(list.lang) do
			text = p.findballback(args, l)
			if text then return text end
		end
	end
end
 
function p.LangSwitch(frame)
	local args = frame.args
	local lang = args.lang
	if args['lang'] then
		return args['lang']
	end
	out = p.findfallback(args, lang)
	if out then
		return out
	end
	if args['default'] then 
		return args['default']
	end
	if args['en'] then
		return args['en'] 
	end
	return "[[Category:LangSwitch template without default version]]"
end
 
return p