Module:Languages/List
< Module:Languages
Jump to navigation
Jump to search
Revision as of 01:00, 15 April 2016 by en>Verdy p (Javascript snippet no longer needed (and may be also inaccurate as it returns the list from the javascripts loaded by the client, possibly outdated when read from its browser cache))
local p = {};
-- --[[ Check this list by running this in the console of the Lua Module editor in MediaWiki: ="p.list={'" .. table.concat(p.getSortedList(mw.language.fetchLanguageNames()), "','") .. "',}" ]] function p.getSortedList(mwLangList)
local sortedList = {} for lang, _ in pairs(mwLangList) do table.insert(sortedList, lang) end table.sort(sortedList) return sortedList
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;