Modul:translit-redirect/templates
A modult a Modul:translit-redirect/templates/doc lapon tudod dokumentálni
local export = {}
local getByCode = require("Module:languages").getByCode
local combining = {}
for i = 0x300, 0x36f do
combining[mw.ustring.char(i)] = ''
end
local function ucfirst(str)
return mw.getContentLanguage():ucfirst(str)
end
local function normalize(str)
return mw.ustring.gsub(mw.ustring.toNFD(str:match("|([^%]]+)")), '.', combining)
end
local langs = {}
setmetatable(langs, { -- Auto-create language objects: langs.en -> language object for English.
__index = function(self, key)
local lang = getByCode(key) or error("No language with code " .. key .. ".")
self[key] = lang
return lang
end
})
function export.documentation(frame)
local data = mw.loadData "Module:translit-redirect/data"
local documentation_page = mw.title.getCurrentTitle().subpageText == "doc"
local output = {}
for lang_code in pairs(data) do
local lang = langs[lang_code]
local canonical_name = lang:getCanonicalName()
table.insert(output,
documentation_page and ("[[:Category:%s|%s]] (<code>%s</code>)")
:format(lang:getCategoryName(), canonical_name, lang:getCode())
or ("[[:Category:%s|%s]] (<code>%s</code>) [[Kategória:%s sablonok|transliteration]]")
:format(lang:getCategoryName(), canonical_name, lang:getCode(), ucfirst(canonical_name)))
end
-- Sort by canonical name.
table.sort(
output,
function (label1, label2)
return normalize(label1) < normalize(label2)
end)
return string.format("A modul által kezelt átírású nyelvek: %s.", mw.text.listToText(output))
end
return export