Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Modül:Fallback

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
local p = {} function p.fblist(lang) -- list the full fallback chain from a language to en local fbtable = mw.language.getFallbacksFor(lang) table.insert(fbtable, 1, lang) table.insert(fbtable, 'message') table.insert(fbtable, 'default') table.insert(fbtable, 'tr') return fbtable end function p._langSwitch(args, lang) -- args: table of translations -- Return error if there is not default and no english version -- otherwise returns the message in the most appropriate, plus the lang code as a second value if not args.en and not args.default and not args.message and args.nocat ~= '1' then return error("langSwitch error: no default") end -- get language (either stated one or user's default language) if not lang then return -- must become proper error end -- get the list of accpetable language (lang + those in lang's fallback chain) and check their content local parselist = p.fblist(lang) for i, j in ipairs(parselist) do if args[j] '~' then return nil, j end if (j 'message' and args['message']) then return tostring(mw.message.new(args[j]):inLanguage(lang)) end -- if this is a translatewiki message if args[j] and args[j] ~= then return args[j], j end end end function p.langSwitch(frame) -- version to be used from wikitext args = frame.args -- if no expected args provided than check parent template/module args if args.en nil and args.default nil and args.nocat==nil then args = mw.getCurrentFrame:getParent.args end if args.lang and args.lang ~= then lang = args.lang args.lang = nil else -- get user's chosen language lang = frame:preprocess( "" ) end local str = p._langSwitch(args, lang) -- get the first value of the langSwitch, (the text) not the second (the language) return str end function p.fallbackpage(base, lang, formatting) local languages = p.fblist(lang) for i, lng in ipairs(languages) do if mw.title.new(base .. '/' .. lng).exists then if formatting == 'table' then return {base .. '/' .. lng, lng} -- returns name of the page + name of the language else return base .. '/' .. lng -- returns only the page end end end end function p.autotranslate(frame) -- logic for template:Autotranslate local args = frame.args if not args.lang or args.lang then args.lang frame:preprocess( "" ) -- get user's chosen language end -- find base page local base args.base if not base or base then return end if string.sub(base,2,9) ~= 'emplate:' then base = 'Template:' .. base -- base provided without 'Template:' part end -- find base template language subpage local page = p.fallbackpage(base, args.lang) -- if (not page and base ~= args.base) then -- try the original args.base string. This case is only needed if base is not in template namespace page = p.fallbackpage(args.base, args.lang) end if not page then return string.format(, args.base, args.lang) end -- repack args in a standard table newargs = {} for field, value in pairs(args) do if field ~= 'base' then newargs[field] = value; end end -- Transclude with template arguments the same as the ones passed to template. return frame:expandTemplate{ title = page, args = newargs } end function p.translate(page, key, lang) --trsnlate data stored in a module if type(page) == 'string' then -- if the requeested translation table is not yet loaded page = require('Module:' .. page) end local val if page[key] then val = page[key] elseif page.keys and page.keys[key] then-- key 'keys" is an index of all keys, including redirects, see Module:i18n/datatype val = page.keys[key] end if not val then return '<' .. key .. '>' end return p._langSwitch(val, lang) end function p.translatelua(frame) local lang = frame.args.lang local page = require('Module:' .. mw.text.trim(frame.args[1])) -- page should only contain a simple of translations if not lang or mw.text.trim(lang) == then lang = frame:preprocess( "" ) end if frame.args[2] then page = page[mw.text.trim(frame.args[2])] end return p._langSwitch(page, lang) end function p.runTests local toFallbackTest = require('Module:Fallback/tests/fallbacks') local result = true mw.log('Testing fallback chains') for i, t in ipairs(toFallbackTest) do local fbtbl = table.concat(p.fblist(t.initial), ', ') local expected = table.concat(t.expected, ', ') local ret = (fbtbl == expected) mw.log(i, ret and 'passed' or 'FAILED', t.initial, (not ret) and ('FAILED\nis >>' .. fbtbl .. '<<\nbut should be >>' .. expected .. '<<\n') or ) result = result and ret end return result end function p.showTemplateArguments(frame) -- list all input arguments of the template that calls "" local str = for name, value in pairs( mw.getCurrentFrame:getParent.args ) do if str=='' then str = string.format('%s=%s', name, value) -- argument #1 else str = string.format('%s, %s=%s', str, name, value) -- the rest end end return str end return p
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri