Module:cy-nom-sp

Bonjour, vous êtes venu ici pour chercher la signification du mot Module:cy-nom-sp. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot Module:cy-nom-sp, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire Module:cy-nom-sp au singulier et au pluriel. Tout ce que vous devez savoir sur le mot Module:cy-nom-sp est ici. La définition du mot Module:cy-nom-sp vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deModule:cy-nom-sp, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.

 Documentation[voir] [modifier] [historique] [purger]

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.


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