Difference between revisions of "Module:Languages/List"

From Dharmawiki
Jump to navigation Jump to search
en>Verdy p
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))
(No difference)

Revision as of 01:00, 15 April 2016

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;