Ce module a pour but d’afficher un tableau contenant les formes mutées au singulier et au pluriel pour les noms gallois ayant un singulier et un pluriel.
Il utilise la fonction frame:getParent
, il ne peut donc être appelé que par un modèle.
Voir le modèle {{cy-nom-sp}}
pour la description des paramètres.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:cy-nom-sp/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p={}
local mut = require("Module:cy-mutation")
function ecritureLigne(txt,titre,s,singulier,p1,pluriel1,p2,pluriel2)
if p2 then
if s ~= singulier or p1 ~= pluriel1 or p2 ~= pluriel2 then
txt = txt ..
'|-\n'..
'! ' .. titre .. '\n'
if s == singulier then
txt = txt .. "| ''inchangé''\n"
else
txt = txt .. '| ]\n'
end
if p1 == pluriel1 then
txt = txt .. "| ''inchangé''\n"
else
txt = txt .. '| ]\n'
end
if p2 == pluriel2 then
txt = txt .. "| ''inchangé''\n"
else
txt = txt .. '| ]\n'
end
end
elseif p1 then
if s ~= singulier or p1 ~= pluriel1 then
txt = txt ..
'|-\n'..
'! ' .. titre .. '\n'
if s == singulier then
txt = txt .. "| ''inchangé''\n"
else
txt = txt .. '| ]\n'
end
if p1 == pluriel1 then
txt = txt .. "| ''inchangé''\n"
else
txt = txt .. '| ]\n'
end
end
else
if s ~= singulier then
txt = txt ..
'|-\n'..
'! ' .. titre .. '\n'..
'| ]\n'
end
end
return txt
end
function p.boite(frame)
local args = frame:getParent().args
local singulier = args
local pluriel = args
local pluriel2 = args
local forme = args
forme = forme or "Singulier"
local ls, lp, lp2, ns, np, np2, ss, sp, sp2, hs, hp, hp2 =
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil
ls, ns, ss, hs = mut.mutations(singulier)
if pluriel then
lp, np, sp, hp = mut.mutations(pluriel)
end
if pluriel2 then
lp2, np2, sp2, hp2 = mut.mutations(pluriel2)
end
local txt =
'{| class="flextable"\n'..
'| class="invisible" |\n'..
'! ' .. forme .. '\n'
if pluriel2 then
txt = txt ..
'! Pluriel 1\n'..
'! Pluriel 2\n'
elseif pluriel then
txt = txt ..
'! Pluriel\n'
end
txt = txt ..
'|-\n'..
'! Non muté\n'..
'| ]\n'
if pluriel2 then
txt = txt ..
'| ]\n'..
'| ]\n'
elseif pluriel then
txt = txt ..
'| ]\n'
end
txt = ecritureLigne(txt,'Lénition',ls,singulier,lp,pluriel,lp2,pluriel2)
txt = ecritureLigne(txt,'Nasalisation',ns,singulier,np,pluriel,np2,pluriel2)
txt = ecritureLigne(txt,'Spirantisation',ss,singulier,sp,pluriel,sp2,pluriel2)
txt = ecritureLigne(txt,'Prothèse h',hs,singulier,hp,pluriel,hp2,pluriel2)
txt = txt .. '|}'
if not(mw.ustring.match(txt,'Lénition') or
mw.ustring.match(txt,'Nasalisation') or
mw.ustring.match(txt,'Spirantisation') or
mw.ustring.match(txt,'Prothèse h')) then
txt =
'{| class="flextable"\n'..
'! ' .. forme .. '\n'
if pluriel2 then
txt = txt ..
'! Pluriel 1\n'..
'! Pluriel 2\n'
elseif pluriel then
txt = txt ..
'! Pluriel\n'
end
txt = txt ..
'|-\n'..
'| ]\n'
if pluriel2 then
txt = txt ..
'| ]\n'..
'| ]\n'
elseif pluriel then
txt = txt ..
'| ]\n'
end
txt = txt .. '|}'
end
return txt
end
return p