Utilizaire:Guilhelma/brolhon
local m_bases = require("Mòdul:basas") local m_langs = require("Mòdul:lengas") local m_table = require("Mòdul:taula") local m_string = require("Mòdul:string") local m_params = require("Mòdul:paramètres")
local tree = mw.loadData("Mòdul:lexic/data")
local p = {}
function p.categorizeLexicon(frame)
local args = m_params.process(frame:getParent().args, { [1] = {} }) local langCode = args[1]
local title = mw.title.getCurrentTitle().text local langCat, lexiconCat, lang, subject = parseLexiconTitle(title, langCode)
if langCat and lexiconCat and lang and m_langs._getLanguageCode(lang) and subject then local header = ""
if tree[subject] then local det
if tree[subject]["determiner"] == "du " then det = "le " elseif tree[subject]["determiner"] == "de la " then det = "la " elseif tree[subject]["determiner"] == "des " then det = "les " elseif tree[subject]["determiner"] == "de l’" then det = "l’" end
header = mw.ustring.format( [=[Cette page liste les mots en %s en rapport avec %s%s.
%s
Pour ajouter une entrée à cette catégorie, utilisez le modèle {{lexique|%s|%s}}
.
]=],
lang, det, subject, tree[subject]["description"], subject, m_langs._getLanguageCode(lang) ) if tree[subject]["super_categories"] ~= nil then for _, v in pairs(tree[subject]["super_categories"]) do if tree[v] then header = header .. mw.ustring.format( "%s", lang, tree[v]["determiner"] .. v, subject ) else header = header .. "Catégorie:Wiktionnaire:Lexiques avec lexique parent non défini" end end end else header = "Catégorie:Wiktionnaire:Lexiques non définis" end
return header .. mw.ustring.format("Catégorie:%sCatégorie:%s", langCat, m_bases.ucfirst(lexiconCat)) else return "Catégorie:Wiktionnaire:Lexiques avec erreur" end
end
local function parseLexiconTitleNoLanguage(title)
if not title then return nil end
local determiners = { "du ", "de la ", "de l’", "des " } local subject
for _, d in ipairs(determiners) do subject = mw.ustring.match(title, "Lexique " .. d .. "(.+) sans langue précisée") if subject then break end end
return subject
end
return p