Module:régions
Apparence
La documentation pour ce module peut être créée à Module:régions/Documentation
m_bases = require('Module:bases')
m_lang = require('Module:langues')
m_table = require('Module:table')
local tree = mw.loadData('Module:régions/data')
local p = {}
function p.categorisation_region_interlangue(frame)
local region = string.match(tostring(mw.title.getCurrentTitle()), "Catégorie:(.+)")
local region_data = tree[region]
if region_data ~= nil then
local cs = region_data['description'] .. "\n"
if region_data['super_categories'] ~= nil then
cs = cs .. "[[Catégorie:" .. m_bases.ucfirst(region_data['super_categories']) .. "]]"
end
return cs
else
return "[[Catégorie:Wiktionnaire:Régions non définies]]"
end
end
function p.categorisation_region(frame)
local args = frame:getParent().args
local lang_code = args[1] or nil
local title = string.match(tostring(mw.title.getCurrentTitle()), "Catégorie:(.+)")
local region, lang = string.match(title, "(.+) en (.+)")
if c1 ~= nil and c2 ~= nil and lang ~= nil and m_lang.code_de_langue({args={lang}}) ~= '' and subject ~= nil then
local cs = ""
if tree[subject] ~= nil then
local det = nil
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
cs = "Cette page liste les mots en [[" .. lang .. "]] en rapport avec " .. det .. "[[" .. subject .. "]].\n\n" .. tree[subject]['description'] .. "\n\n"
if tree[subject]['template'] ~= nil then
local lang_code = m_cdl.code_de_langue({args={lang}})
local template = tree[subject]['template']
local template_link = template .. "|" .. template .. "]]|" .. lang_code
cs = cs .. "Pour ajouter une entrée à cette catégorie, utilisez le modèle <code>{{[[Modèle:" .. template_link .. "}}</code>.\n"
end
if tree[subject]['super_categories'] ~= nil then
for k, v in pairs(tree[subject]['super_categories']) do
if tree[v] ~= nil then
cs = cs .. "[[Catégorie:Lexique en " .. lang .. " " .. tree[v]['determiner'] .. v .. "|".. subject .."]]"
else
cs = cs .. "[[Catégorie:Wiktionnaire:Lexiques avec lexique parent non défini]]"
end
end
end
else
cs = "[[Catégorie:Wiktionnaire:Lexiques non définis]]"
end
return cs .. "[[Catégorie:"..c1.."]][[Catégorie:"..m_bases.ucfirst(c2).."]]"
else
return "[[Catégorie:Wiktionnaire:Lexiques avec erreur]]"
end
end
function p.lexique_nocat(frame)
return p.lexique(frame, true)
end
function p.lexique(frame, nocat)
nocat = nocat or false
-- Analyse des arguments
local args = frame:getParent().args
local tableLen = m_table.length(args)
if nocat then
if tableLen < 1 then
return [[<span style="color:red">'''Veuillez saisir au moins un lexique !'''</span>]]
end
else
if tableLen < 2 then
return [[<span style="color:red">'''Veuillez saisir au moins un lexique et un code langue !'''</span>]]
end
end
local lexicons = {}
local last = nil
for i, arg in ipairs(args) do
if last ~= nil then
table.insert(lexicons, last)
end
last = arg
end
local lang_code = nil
local lang = nil
if nocat then
table.insert(lexicons, last)
else
lang_code = last
lang = m_lang.get_nom(lang_code)
end
local text = ""
local cs = ""
if not nocat and lang == nil then
return [[<span style="color:red" title="Code langue saisi : ]] .. lang_code .. [[">'''Code langue inconnu !'''</span>]] .. "[[Catégorie:Wiktionnaire:Lexiques avec langue manquante]]"
end
local filtered_lexicons = {}
for i, lexicon in ipairs(lexicons) do
if tree[lexicon] ~= nil then
table.insert(filtered_lexicons, [[<span title="]] .. tree[lexicon]['description'] .. [[">'']] .. (not nocat and m_bases.ucfirst(lexicon) or lexicon) .. [[''</span>]])
if tree[lexicon]['determiner'] ~= nil then
if not nocat then
cs = cs .. "[[Catégorie:Lexique en " .. lang .. " " .. tree[lexicon]['determiner'] .. lexicon .. "]]"
end
else
cs = cs .. "[[Catégorie:Wiktionnaire:Lexiques avec déterminant inconnu]]"
end
else
table.insert(filtered_lexicons, [[<span style="color:red" title="Lexique inexistant : ]] .. lexicon .. [[">'''Lexique inconnu !'''</span>]])
cs = cs .. "[[Catégorie:Wiktionnaire:Lexiques avec nom inconnu]]"
end
end
if next(filtered_lexicons) ~= nil then
text ="(" .. table.concat(filtered_lexicons, ", ") .. ")"
end
return text .. cs
end
return p