Changes

Jump to navigation Jump to search
1,206 bytes added ,  01:00, 15 April 2016
m
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;
Anonymous user

Navigation menu