Mòdul:Utilizaire:Guilhelma/Test
La documentacion d'utilizacion d'aquel modul se pòt crear a Mòdul:Utilizaire:Guilhelma/Test/ús
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 <code>{{[[Modèle:lexique|lexique]]|%s|%s}}</code>.
]=],
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(
"[[Catégorie:Lexique en %s %s|%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:%s]][[Caté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