Difference between revisions 18626534 and 18626535 on frwiktionary

local languages = mw.loadData("Module:languages")
local export = {}

-- transliterate the text, if possible
function export.translit(lang, text)
    -- TODO: the table's information should be moved to [[Module:languages]]
    local translit_modules = {
        ["ae"] = "Module:Avst-translit",
(contracted; show full)        if mw.ustring.match(text, "[%[%d%p%s]-[" .. chars .. "]") then
            return script
        end
    end
end

-- Format the categories with the appropriate sort key
function export.format_categories(categories, lang, sort_key
, sort_base)
    local langinfo = languages[lang] or error("The language code \"" .. lang .. "\" is not valid.")
    NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText
    
    if NAMESPACE == "" or NAMESPACE == "Appendix" then
        PAGENAME = PAGENAME or mw.title.getCurrentTitle().text
        SUBPAGENAME = SUBPAGENAME or mw.title.getCurrentTitle().subpageText
        
        -- If no sort key was given, generate one
        if not sort_key then
            -- Generate a default language-independent sort key
            sort_key = mw.ustring.gsub(sort_base or SUBPAGENAME, "^[*-־ـ]", "")
            
            -- If there are language-specific rules to generate the key, use those
            if langinfo.sort_key then
                for i, from in ipairs(langinfo.sort_key.from) do
                    local to = langinfo.sort_key.to[i] or ""
                    sort_key = mw.ustring.gsub(sort_key, from, to)
                end
(contracted; show full)        i = i + 1
        cat = args[i]
    end
    
    return export.format_categories(categories, lang, sort_key)
end

return export