Module:fr-conj/beta

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.

La documentation pour ce module peut être créée à Module:fr-conj/beta/Documentation

local p = {}

function _temps_impersonnels(frame)
	local args = frame.args
	
	-- Définition des parties du tableau
	local newrow = "|-"
	local entete = [==[
{| class="fr-conj wikitable"
|-
! width="8%"              | [[mode|Mode]]
! width="42%" colspan="3" | [[présent|Présent]]
! width="50%" colspan="3" | [[passé|Passé]]
|- align="center"]==]
	local cloture = "\n|}"
	
	-- Création du tableau lui-même
	local tableau = {entete}
	
	-- Préparation de l'auxiliaire
	local auxiliaire = args['auxiliaire'] or '(auxiliaire manquant)'
	local aux_pron = auxiliaire == 'avoir' and 'a.vwa' or 'ɛtʁ'
	
	-- Ajout de l'infinitif
	table.insert(tableau, _fait_ligne_entete("[[infinitif|Infinitif]]", "8%"))
	
	-- Présent de l'infinitif
	table.insert(tableau, _fait_ligne("", "4.5%", "right"))
	table.insert(tableau, _fait_ligne(args['infinitif'] or '(infinitif manquant)', "12.5%", "left"))
	table.insert(tableau, _fait_ligne(frame:preprocess("{{pron|{{{infinitif.pron|}}}|fr}}"), "25%"))
	
	-- Participe passé de l'infinitif
	table.insert(tableau, _fait_ligne(auxiliaire .. " ", "15%", "right"))
	table.insert(tableau, _fait_ligne(args['participe_passé'] or '(participe passé manquant)', "15%", "left"))
	table.insert(tableau, _fait_ligne(args['participe_passé.pron'] and args['participe_passé.pron'] or '(prononciation du participe passé manquante)' , "25%"))
	
	local tableau_imprimable = table.concat(tableau, "\n")
	return tableau_imprimable
end

function _fait_ligne(texte, width, align, entete)
	local lignet = {}
	table.insert(lignet, entete and '!' or '|')
	if width ~= nil then table.insert(lignet, 'width="' .. width .. '"') end
	if align ~= nil then table.insert(lignet, 'align="' .. align .. '"') end
	table.insert(lignet, '|')
	if texte ~= nil then table.insert(lignet, texte) end
	return table.concat(lignet, ' ')
end

function _fait_ligne_entete(texte, width, align)
	return _fait_ligne(texte, width, align, true)
end

-- Pour un modèle. Récupère les paramètres du modèle et renvoie la liste formatée, mais sans bandeau.
function p.print_conjugaison(frame)
	
	return _temps_impersonnels(frame)
end

return p