Module:Languages/List: Difference between revisions

>PJosepherum
m 1 revision imported
iw>Verdy p
mNo edit summary
Line 2: Line 2:


--[[
--[[
// JavaScript-snippet to update this list:
// JavaScript-snippet to update this list:
var list = '';
var list = "";
$.each(wpAvailableLanguages, function(c, lang) {
$.each(wpAvailableLanguages, function(lang, _) {
     list += '"' + c + '", ';
     list += "'" + lang + "',";
});
})
console.log(list);
console.log("p.list={" + list + "}")
]]


]]
-- @Deprecated
-- @Deprecated
p.list = { "aa", "ab", "ace", "af", "ak", "aln", "als", "am", "an", "ang", "anp", "ar", "arc", "arn", "ary", "arz", "as", "ast", "av", "avk", "ay", "az", "azb", "ba", "bar", "bat-smg", "bcc", "bcl", "be", "be-tarask", "be-x-old", "bg", "bh", "bho", "bi", "bjn", "bm", "bn", "bo", "bpy", "bqi", "br", "brh", "bs", "bug", "bxr", "ca", "cbk-zam", "cdo", "ce", "ceb", "ch", "cho", "chr", "chy", "ckb", "co", "cps", "cr", "crh", "crh-latn", "crh-cyrl", "cs", "csb", "cu", "cv", "cy", "da", "de", "de-at", "de-ch", "de-formal", "diq", "dsb", "dtp", "dv", "dz", "ee", "egl", "el", "eml", "en", "en-ca", "en-gb", "eo", "es", "et", "eu", "ext", "fa", "ff", "fi", "fit", "fiu-vro", "fj", "fo", "fr", "frc", "frp", "frr", "fur", "fy", "ga", "gag", "gan", "gan-hans", "gan-hant", "gd", "gl", "glk", "gn", "got", "grc", "gsw", "gu", "gv", "ha", "hak", "haw", "he", "hi", "hif", "hif-latn", "hil", "ho", "hr", "hsb", "ht", "hu", "hy", "hz", "ia", "id", "ie", "ig", "ii", "ik", "ike-cans", "ike-latn", "ilo", "inh", "io", "is", "it", "iu", "ja", "jam", "jbo", "jut", "jv", "ka", "kaa", "kab", "kbd", "kbd-cyrl", "kg", "khw", "ki", "kiu", "kj", "kk", "kk-arab", "kk-cyrl", "kk-latn", "kk-cn", "kk-kz", "kk-tr", "kl", "km", "kn", "ko", "ko-kp", "koi", "kr", "krc", "kri", "krj", "ks", "ks-arab", "ks-deva", "ksh", "ku", "ku-latn", "ku-arab", "kv", "kw", "ky", "la", "lad", "lb", "lbe", "lez", "lfn", "lg", "li", "lij", "liv", "lmo", "ln", "lo", "loz", "lt", "ltg", "lus", "lv", "lzh", "lzz", "mai", "map-bms", "mdf", "mg", "mh", "mhr", "mi", "min", "mk", "ml", "mn", "mo", "mr", "mrj", "ms", "mt", "mus", "mwl", "my", "myv", "mzn", "na", "nah", "nan", "nap", "nb", "nds", "nds-nl", "ne", "new", "ng", "niu", "nl", "nl-informal", "nn", "no", "nov", "nrm", "nso", "nv", "ny", "oc", "om", "or", "os", "pa", "pag", "pam", "pap", "pcd", "pdc", "pdt", "pfl", "pi", "pih", "pl", "pms", "pnb", "pnt", "prg", "ps", "pt", "pt-br", "qu", "qug", "rgn", "rif", "rm", "rmy", "rn", "ro", "roa-rup", "roa-tara", "ru", "rue", "rup", "ruq", "ruq-cyrl", "ruq-latn", "rw", "sa", "sah", "sat", "sc", "scn", "sco", "sd", "sdc", "se", "sei", "sg", "sgs", "sh", "shi", "shi-tfng", "shi-latn", "si", "simple", "sk", "sl", "sli", "sm", "sma", "sn", "so", "sq", "sr", "sr-ec", "sr-el", "srn", "ss", "st", "stq", "su", "sv", "sw", "szl", "ta", "tcy", "te", "tet", "tg", "tg-cyrl", "tg-latn", "th", "ti", "tk", "tl", "tly", "tn", "to", "tokipona", "tpi", "tr", "tru", "ts", "tt", "tt-cyrl", "tt-latn", "tum", "tw", "ty", "tyv", "udm", "ug", "ug-arab", "ug-latn", "uk", "ur", "uz", "ve", "vec", "vep", "vi", "vls", "vmf", "vo", "vot", "vro", "wa", "war", "wo", "wuu", "xal", "xh", "xmf", "yi", "yo", "yue", "za", "zea", "zh", "zh-classical", "zh-cn", "zh-hans", "zh-hant", "zh-hk", "zh-min-nan", "zh-mo", "zh-my", "zh-sg", "zh-tw", "zh-yue", "zu" }
-- p.list={'aa','ab','ace','aeb','af','ak','aln','als','am','an','ang','anp','ar','arc','arn','arq','ary','arz','as','ast','av','avk','ay','az','azb','ba','bar','bat-smg','bbc','bbc-latn','bcc','bcl','be','be-tarask','be-x-old','bg','bgn','bh','bho','bi','bjn','bm','bn','bo','bpy','bqi','br','brh','bs','bto','bug','bxr','ca','cbk-zam','cdo','ce','ceb','ch','cho','chr','chy','ckb','co','cps','cr','crh','crh-cyrl','crh-latn','cs','csb','cu','cv','cy','da','de','de-at','de-ch','de-formal','diq','dsb','dtp','dv','dz','ee','egl','el','eml','en','en-ca','en-gb','eo','es','et','eu','ext','fa','ff','fi','fit','fiu-vro','fj','fo','fr','frc','frp','frr','fur','fy','ga','gag','gan','gan-hans','gan-hant','gd','gl','glk','gn','gom-latn','got','grc','gsw','gu','gv','ha','hak','haw','he','hi','hif','hif-latn','hil','ho','hr','hrx','hsb','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','ike-cans','ike-latn','ilo','inh','io','is','it','iu','ja','jam','jbo','jut','jv','ka','kaa','kab','kbd','kbd-cyrl','kg','khw','ki','kiu','kj','kk','kk-arab','kk-cn','kk-cyrl','kk-kz','kk-latn','kk-tr','kl','km','kn','ko','koi','ko-kp','kr','krc','kri','krj','ks','ks-arab','ks-deva','ksh','ku','ku-arab','ku-latn','kv','kw','ky','la','lad','lb','lbe','lez','lfn','lg','li','lij','liv','lmo','ln','lo','loz','lrc','lt','ltg','lus','lv','lzh','lzz','mai','map-bms','mdf','mg','mh','mhr','mi','min','mk','ml','mn','mo','mr','mrj','ms','mt','mus','mwl','my','myv','mzn','na','nah','nan','nap','nb','nds','nds-nl','ne','new','ng','niu','nl','nl-informal','nn','no','nov','nrm','nso','nv','ny','oc','om','or','os','pa','pag','pam','pap','pcd','pdc','pdt','pfl','pi','pih','pl','pms','pnb','pnt','prg','ps','pt','pt-br','qu','qug','rgn','rif','rm','rmy','rn','ro','roa-rup','roa-tara','ru','rue','rup','ruq','ruq-cyrl','ruq-latn','rw','sa','sah','sat','sc','scn','sco','sd','sdc','se','sei','ses','sg','sgs','sh','shi','shi-latn','shi-tfng','si','simple','sk','sl','sli','sm','sma','sn','so','sq','sr','sr-ec','sr-el','srn','ss','st','stq','su','sv','sw','szl','ta','tcy','te','tet','tg','tg-cyrl','tg-latn','th','ti','tk','tl','tly','tn','to','tokipona','tpi','tr','tru','ts','tt','tt-cyrl','tt-latn','tum','tw','ty','tyv','tzm','udm','ug','ug-arab','ug-latn','uk','ur','uz','uz-cyrl','uz-latn','ve','vec','vep','vi','vls','vmf','vo','vot','vro','wa','war','wo','wuu','xal','xh','xmf','yi','yo','yue','za','zea','zh','zh-classical','zh-cn','zh-hans','zh-hant','zh-hk','zh-min-nan','zh-mo','zh-my','zh-sg','zh-tw','zh-yue','zu',}


--
--
-- =mw.dumpObject( p.getSortedList( mw.language.fetchLanguageNames() ) )
--[[ Check this list by running this in the console of the Lua Module editor in MediaWiki:
function p.getSortedList( mwLangList )
="p.list={'" .. table.concat(p.getSortedList(mw.language.fetchLanguageNames()), "','") .. "',}"
sortedList = {}
]]
for lcId, langName in pairs( mwLangList ) do
function p.getSortedList(mwLangList)
table.insert( sortedList, lcId )
    local sortedList = {}
end
    for lang, _ in pairs(mwLangList) do
table.sort( sortedList )
        table.insert(sortedList, lang)
return sortedList
    end
    table.sort(sortedList)
    return sortedList
end
end


p.list = p.getSortedList(mw.language.fetchLanguageNames())
setmetatable(p, {
    quickTests = function()
        local i = 0
        for k, v in pairs(p.list) do
            if type(k) ~= 'number' or k < 1 or k ~= math.floor(k)
            or type(v) ~= 'string' or #v < 2 or #v > 16
            or (v):find('^[a-z][%-0-9a-z]*[0-9a-z]$') ~= 1 then
                return false, ': invalid sequence of language codes in p.list["' .. tostring(k) .. '"] = "' .. tostring(v) .. '"'
            end
            i = i + 1
        end
        if #(p.list) ~= i then return false, ': invalid sequence: length = '.. #(p.list) ' for ' .. i .. 'distinct keys' end
        return true
    end
})
--[[ To test this module in the Lua console:
=getmetatable(p).quickTests() -- must return true
--]]
return p;
return p;