Modül:LangSwitch
Bu modül için bir Modül:LangSwitch/belge belgelendirmesi oluşturabilirsiniz
--[[ __ __ _ _ _ ____ _ _ _ | \/ | ___ __| |_ _| | ___ _| | __ _ _ __ __ _/ ___|_ _(_) |_ ___| |__ | |\/| |/ _ \ / _` | | | | |/ _ (_) | / _` | '_ \ / _` \___ \ \ /\ / / | __/ __| '_ \ | | | | (_) | (_| | |_| | | __/_| |__| (_| | | | | (_| |___) \ V V /| | || (__| | | | |_| |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_| |___/ Authors and maintainers:* User:Zolo - original version in Module:Fallback* User:Jarekt ]]local p = {}--[[_langSwitch This function is the core part of the LangSwitch template. Example usage from Lua:text = _langSwitch({en='text in english', pl='tekst po polsku'}, lang) Parameters: args - table with translations by language lang - desired language (often user's native language) Error Handling: ]]local function defaultCheck(args)if not args.en and not args.default thenlocal err = '<b class="error">LangSwitch Error: no default</b>'if args.nocat == '1' thenreturn errelsereturn err .. '[[Category:LangSwitch template without default version]]'endendreturn falseendlocal function quickSwitch(args, arg)local err = defaultCheck(args)if err thenreturn errendif arg == '~' thenarg = ''endreturn argendfunction p._langSwitch(args, lang) -- args: table of translations-- Return error if there is not default and no english versionlocal err = defaultCheck(args)if err thenreturn errend-- get the list of accepetable language (lang + those in lang's fallback chain) and check their contentassert(lang, 'LangSwitch Error: no lang')--local langList = {lang}--if not args[lang] thenlocal langList = mw.language.getFallbacksFor(lang)table.insert(langList, 1, lang)table.insert(langList, math.max(#langList, 2), 'default')--endfor _, language in ipairs(langList) dolang = args[language]if lang == '~' thenreturn ''elseif lang and lang ~= '' thenreturn langendendend--[[langSwitch This function is the core part of the LangSwitch template. Example Usage from a template:{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }} Parameters: frame.args - table with translations by language frame.args.lang - desired language (often user's native language) Error Handling: ]]function p.langSwitch(frame) -- version to be used from wikitextlocal args = frame.args-- if no expected args provided than check parent template/module argsif args.en == nil and args.default == nil and args.nocat == nil thenargs = mw.getCurrentFrame():getParent().argsendlocal lang = args.langif not lang or not mw.language.isSupportedLanguage(lang) thenlang = frame:callParserFunction("int", "lang") -- get user's chosen languageend-- Try quick switchlocal args1 = args[lang]if args1 and args1 ~= '' thenreturn quickSwitch(args, args1)end-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}-- with multiple languages mapping to a single valueargs1 = {}for name, value in pairs(args) doif value ~= '' and type(name) == 'string' then-- split multi keysfor str in string.gmatch(name, "([^/]+)") doargs1[str] = valueendendendreturn p._langSwitch(args1, lang)endreturn p
🔥 Popular: TaylandMonakoAnasayfaParisEndonezyaKuzey AmerikaRigaLaheyDosya:Beşiktaş Logo Beşiktaş Amblem Beşiktaş Arma.pngKategori:İstanbul'un ilçeleriDubaiVikigezgin:HakkındaGüneydoğu Anadolu BölgesiSapanca GölüÖzel:AraAzerice konuşma kılavuzuGüney AmerikaKürtçe konuşma kılavuzuEskişehirÖzel:SonDeğişikliklerVikigezgin:Köy çeşmesiVikigezgin:Genel sorumluluk reddiYidiş konuşma kılavuzuHong KongTürkmenistanİç Anadolu BölgesiKullanıcı:IluvatarPolonyaGürcüce konuşma kılavuzuLondraKuzey MakedonyaLefkoşaKullanıcı:AvrahamTarihi YarımadaKullanıcı mesaj:66.249.84.106AmasraMarmara BölgesiKenyaUNESCO Dünya Mirası ListesiBruggeNorveçKategori:LetonyaKullanıcı:Rots61Kullanıcı:Pratyya GhoshİzmirKullanıcı:Andriy.vKanadaAmerika Birleşik DevletleriAfrikaAvustralyaAvrupaÖzel:KatkılarımAdanaAkdeniz BölgesiKategori:İtalyaKategori:Vikigezgin yardımDresdenKullanıcı mesaj:Pratyya GhoshArnavutlukVikigezgin:Vikigezgin'e katkı sağlamakÖzel:MesajSayfamKaradeniz EreğliBosna-HersekGirneTokyoİrlandaFransaİzmitVikigezgin:ProjeDosya:Urla Çeşmealtına tepeden bakış - panoramio.jpgBatı AvustralyaKategori:AvrasyaKullanıcı:~rileyKategori:AdıyamanKategori:AydınTartışma:Kuzey AmerikaKategori:AfganistanVikigezgin:Vikigezgin ne değildir?Kategori:Balkanlar