Modulo:Fr-conj/Sandbox
Aspetto
La documentazione per questo modulo può essere creata in Modulo:Fr-conj/Sandbox/man
-- Questo modulo contiene il codice per il template:Fr-conj, che genera la coniugazione di tutti i verbi francesi
-- La funzione frconj genera la tabella di coniugazione utilizzando i parametri passati dal template
p = {}
local function categorizza(cat, titolo)
local NS = tostring(mw.title.getCurrentTitle().namespace);
if NS == '100' then
return string.format('[[%s:%s|%s]]', mw.site.namespaces[14].name, cat, titolo)
else
return ''
end
end
function p.nodiacritic(x)
-- funzione che rimuove gli eventuali accenti dal suo argomento: déraciner -> deraciner. Serve per le categorizzazioni in corretto ordine alfabetico, ed è utilizzata nella stringa 'sottopagina' un po' più sotto
local dp={
['à']='a',['á']='a',['â']='a',
['è']='e',['é']='e',['ê']='e',
['ì']='i',['í']='i',['î']='i',
['ò']='o',['ó']='o',['ô']='o',
['ù']='u',['ú']='u',['û']='u',
};
return (mw.ustring.gsub(x, '.', dp))
end
function p.frconj(frame)
pframe = frame:getParent()
config = frame.args
args = pframe.args
sottopagina = p.nodiacritic(mw.title.getCurrentTitle().subpageText) --il titolo della sottopagina, senza "Appendice:Coniugazioni/Francese/" e SENZA ACCENTI. Viene richiamato solo nella stringa 'titolo' subito sotto
--genera il titolo (da inserire dopo il pipe | nelle categorie) prendendo la stringa 'sottopagina' definita qui sopra ma togliendo di mezzo gli eventuali pronomi riflessivi: se manger -> manger, s'appeler -> appeler (altrimenti i riflessivi finiscono tutti sotto la "s" nelle categorie!)
if mw.ustring.find(sottopagina, "se ") then
titolo = mw.ustring.gsub(sottopagina, "se ", "", 1)
elseif mw.ustring.find(mw.title.getCurrentTitle().subpageText, "s'") then
titolo = mw.ustring.gsub(sottopagina, "s'", "", 1)
else
titolo = sottopagina
end
-- Argomenti passati dal template
stem = args[1]
aus = config["ausiliare"] or " "
-- Inizializzazione di tutte le variabili interne, che potrebbero altrimenti risultare nulle
descr = ""; conjdescr = ""; conjcat = ""; reg_irreg = ""; irregolare = ""; irregolarecat = ""; irregolaredescr = ""
pron = ""; refl_exist = ""; refl_link = ""; refl_conjlink = ""
ausiliare = ""
stem2 = "" --radice per le desinenze in -e, -es e -en, per il futuro e il condizionale (serve in caso di variazioni di accento)
inf = ""; ger = ""; par= ""; pp = ""; pplur = ""
pres1s = ""; pres1s2 = ""; pres2s=""; pres3s = ""; pres1p = ""; pres2p = ""; pres3p = ""
imperf1s = ""; imperf2s=""; imperf3s = ""; imperf1p = ""; imperf2p = ""; imperf3p = ""
prem1s = ""; prem1s2 = ""; prem2s = ""; prem3s = ""; prem3s2 = ""; prem1p = ""; prem2p = ""; prem3p = ""; prem3p2 = ""
fut1s = ""; fut2s=""; fut3s = ""; fut1p =" "; fut2p = ""; fut3p = ""
cond1s = ""; cond2s=""; cond3s = ""; cond1p = ""; cond2p = ""; cond3p = ""
cong1s = ""; cong2s = ""; cong3s = ""; cong1p = ""; cong2p = ""; cong3p = ""
congimp1s = ""; congimp2s = ""; congimp3s = ""; congimp1p = ""; congimp2p = ""; congimp3p = ""
imp2s=""; imp2s2 = ""; imp2s3 = ""; imp3s = ""; imp1p = ""; imp2p = ""; imp3p = ""
mi = ""; ti = ""; si = ""; ci = ""; vi = ""
paspros = ""; trappros = ""; traprem = ""; futant = ""; condpas = ""; congpas = ""; congtrap = ""
paspros1s = ""; paspros2s=""; paspros3s = ""; paspros1p = ""; paspros2p = ""; paspros3p = ""
trappros1s = ""; trappros2s=""; trappros3s = ""; trappros1p = ""; trappros2p = ""; trappros3p = ""
traprem1s = ""; traprem2s=""; traprem3s = ""; traprem1p = ""; traprem2p = ""; traprem3p = ""
futant1s = ""; futant2s=""; futant3s = ""; futant1p = ""; futant2p = ""; futant3p = ""
condpas1s = ""; condpas2s=""; condpas3s = ""; condpas1p = ""; condpas2p = ""; condpas3p = ""
congpas1s = ""; congpas2s=""; congpas3s = ""; congpas1p = ""; congpas2p = ""; congpas3p = ""
congtrap1s = ""; congtrap2s=""; congtrap3s = ""; congtrap1p = ""; congtrap2p = ""; congtrap3p = ""
--per gli accenti dei verbi in e*er o é*er
if mw.ustring.find(stem, "e", -2) or mw.ustring.find(stem, "é", -2) then stem2 = mw.ustring.sub(stem, 1, -3).. "è".. mw.ustring.sub(stem, -1)
else stem2 = stem end
-- A partire dalla coniugazione, genera le forme coniugate standard per ciascuna tipologia di verbo
type = config["type"]
if type == nil then
inf = p.wiki(args["inf"])
elseif (type == "er") or (type == "er-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem2 .. "e"); pres2s = p.wiki(stem2 .. "es"); pres3s = p.wiki(stem2 .. "e")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem2 .. "ent")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "ai"); prem2s = p.wiki(stem .. "as"); prem3s = p.wiki(stem .. "a")
prem1p = p.wiki(stem .. "âmes"); prem2p = p.wiki(stem .. "âtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem2 .. "erai"); fut2s = p.wiki(stem2 .. "eras"); fut3s = p.wiki(stem2 .. "era")
fut1p = p.wiki(stem2 .. "erons"); fut2p = p.wiki(stem2 .. "erez"); fut3p = p.wiki(stem2 .. "eront")
cond1s = p.wiki(stem2 .. "erais"); cond2s = p.wiki(stem2 .. "erais"); cond3s = p.wiki(stem2 .. "erait")
cond1p = p.wiki(stem2 .. "erions"); cond2p = p.wiki(stem2 .. "eriez"); cond3p = p.wiki(stem2 .. "eraient")
cong1s = p.wiki(stem2 .. "e"); cong2s=p.wiki(stem2 .. "es"); cong3s = p.wiki(stem2 .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem2 .. "ent")
congimp1s = p.wiki(stem .. "asse"); congimp2s = p.wiki(stem.. "asses"); congimp3s = p.wiki(stem .. "ât")
congimp1p = p.wiki(stem .. "assions"); congimp2p = p.wiki(stem .. "assiez"); congimp3p = p.wiki(stem .. "assent")
imp2s = p.wiki(stem2 .. "e"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "cer") or (type == "cer-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem.sub(stem, 1, -2) .. "çant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem2.. "e"); pres2s = p.wiki(stem2 .. "es"); pres3s = p.wiki(stem2 .. "e")
pres1p = p.wiki(stem.sub(stem, 1, -2) .. "çons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem2 .. "ent")
imperf1s = p.wiki(stem.sub(stem, 1, -2) .. "çais"); imperf2s = p.wiki(stem.sub(stem, 1, -2) .. "çais"); imperf3s = p.wiki(stem.sub(stem, 1, -2) .. "çait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem.sub(stem, 1, -2) .. "çaient")
prem1s = p.wiki(stem.sub(stem, 1, -2) .. "çai"); prem2s = p.wiki(stem.sub(stem, 1, -2) .. "ças"); prem3s = p.wiki(stem.sub(stem, 1, -2) .. "ça")
prem1p = p.wiki(stem.sub(stem, 1, -2) .. "çâmes"); prem2p = p.wiki(stem.sub(stem, 1, -2) .. "çâtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem2.. "erai"); fut2s = p.wiki(stem2 .. "eras"); fut3s = p.wiki(stem2 .. "era")
fut1p = p.wiki(stem2 .. "erons"); fut2p = p.wiki(stem2 .. "erez"); fut3p = p.wiki(stem2 .. "eront")
cond1s = p.wiki(stem2 .. "erais"); cond2s = p.wiki(stem2 .. "erais"); cond3s = p.wiki(stem2 .. "erait")
cond1p = p.wiki(stem2 .. "erions"); cond2p = p.wiki(stem2 .. "eriez"); cond3p = p.wiki(stem2 .. "eraient")
cong1s = p.wiki(stem2 .. "e"); cong2s=p.wiki(stem2 .. "es"); cong3s = p.wiki(stem2 .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem2 .. "ent")
congimp1s = p.wiki(stem.sub(stem, 1, -2) .. "çasse"); congimp2s = p.wiki(stem.sub(stem, 1, -2) .. "çasses"); congimp3s = p.wiki(stem.sub(stem, 1, -2) .. "çât")
congimp1p = p.wiki(stem.sub(stem, 1, -2) .. "çassions"); congimp2p = p.wiki(stem.sub(stem, 1, -2) .. "çassiez"); congimp3p = p.wiki(stem.sub(stem, 1, -2) .. "çassent")
imp2s = p.wiki(stem2 .. "e"); imp3s = ""
imp1p = p.wiki(stem.sub(stem, 1, -2) .. "çons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "ger") or (type == "ger-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "eant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem2 .. "e"); pres2s = p.wiki(stem2 .. "es"); pres3s = p.wiki(stem2 .. "e")
pres1p = p.wiki(stem .. "eons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem2 .. "ent")
imperf1s = p.wiki(stem .. "eais"); imperf2s = p.wiki(stem .. "eais"); imperf3s = p.wiki(stem .. "eait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "eaient")
prem1s = p.wiki(stem .. "eai"); prem2s = p.wiki(stem .. "eas"); prem3s = p.wiki(stem .. "ea")
prem1p = p.wiki(stem .. "eâmes"); prem2p = p.wiki(stem .. "eâtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem2 .. "erai"); fut2s = p.wiki(stem2 .. "eras"); fut3s = p.wiki(stem2 .. "era")
fut1p = p.wiki(stem2 .. "erons"); fut2p = p.wiki(stem2 .. "erez"); fut3p = p.wiki(stem2 .. "eront")
cond1s = p.wiki(stem2 .. "erais"); cond2s = p.wiki(stem2 .. "erais"); cond3s = p.wiki(stem2 .. "erait")
cond1p = p.wiki(stem2 .. "erions"); cond2p = p.wiki(stem2 .. "eriez"); cond3p = p.wiki(stem2 .. "eraient")
cong1s = p.wiki(stem2 .. "e"); cong2s=p.wiki(stem2 .. "es"); cong3s = p.wiki(stem2 .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem2 .. "ent")
congimp1s = p.wiki(stem .. "easse"); congimp2s = p.wiki(stem.. "easses"); congimp3s = p.wiki(stem .. "eât")
congimp1p = p.wiki(stem .. "eassions"); congimp2p = p.wiki(stem .. "eassiez"); congimp3p = p.wiki(stem .. "eassent")
imp2s = p.wiki(stem2 .. "e"); imp3s = ""
imp1p = p.wiki(stem .. "eons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "éer") then
inf = p.wiki(stem .. "éer")
par = p.wiki(stem .. "éant"); pp = p.wiki(stem .. "éé"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem .. "ée"); pres2s = p.wiki(stem .. "ées"); pres3s = p.wiki(stem .. "ée")
pres1p = p.wiki(stem .. "éons"); pres2p = p.wiki(stem .. "éez"); pres3p = p.wiki(stem .. "éent")
imperf1s = p.wiki(stem .. "éais"); imperf2s = p.wiki(stem .. "éais"); imperf3s = p.wiki(stem .. "éait")
imperf1p = p.wiki(stem .. "éions"); imperf2p = p.wiki(stem .. "éiez"); imperf3p = p.wiki(stem .. "éaient")
prem1s = p.wiki(stem .. "éai"); prem2s = p.wiki(stem .. "éas"); prem3s = p.wiki(stem .. "éa")
prem1p = p.wiki(stem .. "éâmes"); prem2p = p.wiki(stem .. "éâtes"); prem3p = p.wiki(stem .. "éèrent")
fut1s = p.wiki(stem .. "éerai"); fut2s = p.wiki(stem .. "éeras"); fut3s = p.wiki(stem .. "éera")
fut1p = p.wiki(stem .. "éerons"); fut2p = p.wiki(stem .. "éerez"); fut3p = p.wiki(stem .. "éeront")
cond1s = p.wiki(stem .. "éerais"); cond2s = p.wiki(stem .. "éerais"); cond3s = p.wiki(stem .. "éerait")
cond1p = p.wiki(stem .. "éerions"); cond2p = p.wiki(stem .. "éeriez"); cond3p = p.wiki(stem .. "éeraient")
cong1s = p.wiki(stem .. "ée"); cong2s=p.wiki(stem .. "ées"); cong3s = p.wiki(stem .. "ée")
cong1p = p.wiki(stem .. "éions"); cong2p = p.wiki(stem .. "éiez"); cong3p = p.wiki(stem .. "éent")
congimp1s = p.wiki(stem .. "éasse"); congimp2s = p.wiki(stem.. "éasses"); congimp3s = p.wiki(stem .. "éât")
congimp1p = p.wiki(stem .. "éassions"); congimp2p = p.wiki(stem .. "éassiez"); congimp3p = p.wiki(stem .. "éassent")
imp2s = p.wiki(stem .. "ée"); imp3s = ""
imp1p = p.wiki(stem .. "éons"); imp2p = p.wiki(stem .. "éez"); imp3p = ""
elseif (type == "oyer") or (type == "uyer") or (type == "oyer-se") or (type == "uyer-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); pres2s = p.wiki(stem.sub(stem, 1, -2) .. "ies"); pres3s = p.wiki(stem.sub(stem, 1, -2) .. "ie")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem.sub(stem, 1, -2) .. "ient")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "ai"); prem2s = p.wiki(stem .. "as"); prem3s = p.wiki(stem .. "a")
prem1p = p.wiki(stem .. "âmes"); prem2p = p.wiki(stem .. "âtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem.sub(stem, 1, -2) .. "ierai"); fut2s = p.wiki(stem.sub(stem, 1, -2) .. "ieras"); fut3s = p.wiki(stem.sub(stem, 1, -2) .. "iera")
fut1p = p.wiki(stem.sub(stem, 1, -2) .. "ierons"); fut2p = p.wiki(stem.sub(stem, 1, -2) .. "ierez"); fut3p = p.wiki(stem.sub(stem, 1, -2) .. "ieront")
cond1s = p.wiki(stem.sub(stem, 1, -2) .. "ierais"); cond2s = p.wiki(stem.sub(stem, 1, -2) .. "ierais"); cond3s = p.wiki(stem.sub(stem, 1, -2) .. "ierait")
cond1p = p.wiki(stem.sub(stem, 1, -2) .. "ierions"); cond2p = p.wiki(stem.sub(stem, 1, -2) .. "ieriez"); cond3p = p.wiki(stem.sub(stem, 1, -2) .. "ieraient")
cong1s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); cong2s=p.wiki(stem.sub(stem, 1, -2) .. "ies"); cong3s = p.wiki(stem.sub(stem, 1, -2) .. "ie")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem.sub(stem, 1, -2) .. "ient")
congimp1s = p.wiki(stem .. "asse"); congimp2s = p.wiki(stem.. "asses"); congimp3s = p.wiki(stem .. "ât")
congimp1p = p.wiki(stem .. "assions"); congimp2p = p.wiki(stem .. "assiez"); congimp3p = p.wiki(stem .. "assent")
imp2s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "ayer") or (type == "ayer-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); pres1s2 = p.wiki(stem.. "e"); pres2s = p.wiki(stem.sub(stem, 1, -2) .. "ies"); pres2s2 = p.wiki(stem.. "es"); pres3s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); pres3s2 = p.wiki(stem.. "e")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem.sub(stem, 1, -2) .. "ient"); pres3p2 = p.wiki(stem.. "ent");
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "ai"); prem2s = p.wiki(stem .. "as"); prem3s = p.wiki(stem .. "a")
prem1p = p.wiki(stem .. "âmes"); prem2p = p.wiki(stem .. "âtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem.sub(stem, 1, -2) .. "ierai"); fut1s2 = p.wiki(stem.. "erai"); fut2s = p.wiki(stem.sub(stem, 1, -2) .. "ieras"); fut2s2 = p.wiki(stem.. "eras"); fut3s = p.wiki(stem.sub(stem, 1, -2) .. "iera"); fut3s2 = p.wiki(stem.. "era")
fut1p = p.wiki(stem.sub(stem, 1, -2) .. "ierons"); fut1p2 = p.wiki(stem.. "erons"); fut2p = p.wiki(stem.sub(stem, 1, -2) .. "ierez"); fut2p2 = p.wiki(stem.. "erez"); fut3p = p.wiki(stem.sub(stem, 1, -2) .. "ieront"); fut3p2 = p.wiki(stem.. "eront")
cond1s = p.wiki(stem.sub(stem, 1, -2) .. "ierais"); cond1s2 = p.wiki(stem.. "erais"); cond2s = p.wiki(stem.sub(stem, 1, -2) .. "ierais"); cond2s2 = p.wiki(stem.. "erais"); cond3s = p.wiki(stem.sub(stem, 1, -2) .. "ierait"); cond3s2 = p.wiki(stem.. "erait")
cond1p = p.wiki(stem.sub(stem, 1, -2) .. "ierions"); cond1p2 = p.wiki(stem.. "erions"); cond2p = p.wiki(stem.sub(stem, 1, -2) .. "ieriez"); cond2p2 = p.wiki(stem.. "eriez"); cond3p = p.wiki(stem.sub(stem, 1, -2) .. "ieraient"); cond3p2 = p.wiki(stem.. "eraient")
cong1s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); cong1s2 = p.wiki(stem.. "e"); cong2s = p.wiki(stem.sub(stem, 1, -2) .. "ies"); cong2s2 = p.wiki(stem.. "es"); cong3s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); cong3s2 = p.wiki(stem.. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem.sub(stem, 1, -2) .. "ient"); cong3p2 = p.wiki(stem.. "ent")
congimp1s = p.wiki(stem .. "asse"); congimp2s = p.wiki(stem.. "asses"); congimp3s = p.wiki(stem .. "ât")
congimp1p = p.wiki(stem .. "assions"); congimp2p = p.wiki(stem .. "assiez"); congimp3p = p.wiki(stem .. "assent")
imp2s = p.wiki(stem.sub(stem, 1, -2) .. "ie"); imp2s2 = p.wiki(stem.. "e"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "eyer") or (type == "eyer-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem .. "e"); pres2s = p.wiki(stem .. "es"); pres3s = p.wiki(stem .. "e")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem .. "ent")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "ai"); prem2s = p.wiki(stem .. "as"); prem3s = p.wiki(stem .. "a")
prem1p = p.wiki(stem .. "âmes"); prem2p = p.wiki(stem .. "âtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem .. "erai"); fut2s = p.wiki(stem .. "eras"); fut3s = p.wiki(stem .. "era")
fut1p = p.wiki(stem .. "erons"); fut2p = p.wiki(stem .. "erez"); fut3p = p.wiki(stem .. "eront")
cond1s = p.wiki(stem .. "erais"); cond2s = p.wiki(stem .. "erais"); cond3s = p.wiki(stem .. "erait")
cond1p = p.wiki(stem .. "erions"); cond2p = p.wiki(stem .. "eriez"); cond3p = p.wiki(stem .. "eraient")
cong1s = p.wiki(stem .. "e"); cong2s=p.wiki(stem .. "es"); cong3s = p.wiki(stem .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem .. "ent")
congimp1s = p.wiki(stem .. "asse"); congimp2s = p.wiki(stem.. "asses"); congimp3s = p.wiki(stem .. "ât")
congimp1p = p.wiki(stem .. "assions"); congimp2p = p.wiki(stem .. "assiez"); congimp3p = p.wiki(stem .. "assent")
imp2s = p.wiki(stem .. "e"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "eler") or (type == "eter") or (type == "eler-se") or (type == "eter-se") then
inf = p.wiki(stem .. "er")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "é"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem .. stem.sub(stem, -1) .. "e"); pres2s = p.wiki(stem .. stem.sub(stem, -1) .. "es"); pres3s = p.wiki(stem .. stem.sub(stem, -1) .. "e")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem .. stem.sub(stem, -1) .. "ent")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "ai"); prem2s = p.wiki(stem .. "as"); prem3s = p.wiki(stem .. "a")
prem1p = p.wiki(stem .. "âmes"); prem2p = p.wiki(stem .. "âtes"); prem3p = p.wiki(stem .. "èrent")
fut1s = p.wiki(stem .. stem.sub(stem, -1) .. "erai"); fut2s = p.wiki(stem .. stem.sub(stem, -1) .. "eras"); fut3s = p.wiki(stem .. stem.sub(stem, -1) .. "era")
fut1p = p.wiki(stem .. stem.sub(stem, -1) .. "erons"); fut2p = p.wiki(stem .. stem.sub(stem, -1) .. "erez"); fut3p = p.wiki(stem .. stem.sub(stem, -1) .. "eront")
cond1s = p.wiki(stem .. stem.sub(stem, -1) .. "erais"); cond2s = p.wiki(stem .. stem.sub(stem, -1) .. "erais"); cond3s = p.wiki(stem .. stem.sub(stem, -1) .. "erait")
cond1p = p.wiki(stem .. stem.sub(stem, -1) .. "erions"); cond2p = p.wiki(stem .. stem.sub(stem, -1) .. "eriez"); cond3p = p.wiki(stem .. stem.sub(stem, -1) .. "eraient")
cong1s = p.wiki(stem .. stem.sub(stem, -1) .. "e"); cong2s=p.wiki(stem .. stem.sub(stem, -1) .. "es"); cong3s = p.wiki(stem .. stem.sub(stem, -1) .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem .. stem.sub(stem, -1) .. "ent")
congimp1s = p.wiki(stem .. "asse"); congimp2s = p.wiki(stem.. "asses"); congimp3s = p.wiki(stem .. "ât")
congimp1p = p.wiki(stem .. "assions"); congimp2p = p.wiki(stem .. "assiez"); congimp3p = p.wiki(stem .. "assent")
imp2s = p.wiki(stem .. stem.sub(stem, -1) .. "e"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "ir") or (type == "ir-se") then
inf = p.wiki(stem .. "ir")
par = p.wiki(stem .. "issant"); pp = p.wiki(stem .. "i"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem .. "is"); pres2s = p.wiki(stem .. "is"); pres3s = p.wiki(stem .. "it")
pres1p = p.wiki(stem .. "issons"); pres2p = p.wiki(stem .. "issez"); pres3p = p.wiki(stem .. "issent")
imperf1s = p.wiki(stem .. "issais"); imperf2s = p.wiki(stem .. "issais"); imperf3s = p.wiki(stem .. "issait")
imperf1p = p.wiki(stem .. "issions"); imperf2p = p.wiki(stem .. "issiez"); imperf3p = p.wiki(stem .. "issaient")
prem1s = p.wiki(stem .. "is"); prem2s = p.wiki(stem .. "is"); prem3s = p.wiki(stem .. "it")
prem1p = p.wiki(stem .. "îmes"); prem2p = p.wiki(stem .. "îtes"); prem3p = p.wiki(stem .. "irent")
fut1s = p.wiki(stem .. "irai"); fut2s = p.wiki(stem .. "iras"); fut3s = p.wiki(stem .. "ira")
fut1p = p.wiki(stem .. "irons"); fut2p = p.wiki(stem .. "irez"); fut3p = p.wiki(stem .. "iront")
cond1s = p.wiki(stem .. "irais"); cond2s = p.wiki(stem .. "irais"); cond3s = p.wiki(stem .. "irait")
cond1p = p.wiki(stem .. "irions"); cond2p = p.wiki(stem .. "iriez"); cond3p = p.wiki(stem .. "iraient")
cong1s = p.wiki(stem .. "isse"); cong2s=p.wiki(stem .. "isses"); cong3s = p.wiki(stem .. "isse")
cong1p = p.wiki(stem .. "issions"); cong2p = p.wiki(stem .. "issiez"); cong3p = p.wiki(stem .. "issent")
congimp1s = p.wiki(stem .. "isse"); congimp2s = p.wiki(stem.. "isses"); congimp3s = p.wiki(stem .. "ît")
congimp1p = p.wiki(stem .. "issions"); congimp2p = p.wiki(stem .. "issiez"); congimp3p = p.wiki(stem .. "issent")
imp2s = p.wiki(stem .. "is"); imp3s = ""
imp1p = p.wiki(stem .. "issons"); imp2p = p.wiki(stem .. "issez"); imp3p = ""
elseif (type == "ir3") or (type == "ir3-se") then
inf = p.wiki(stem .. "ir")
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "i"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem.sub(stem, 1, -2) .. "s"); pres2s = p.wiki(stem.sub(stem, 1, -2) .. "s"); pres3s = p.wiki(stem.sub(stem, 1, -2) .. "t")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem .. "ent")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "is"); prem2s = p.wiki(stem .. "is"); prem3s = p.wiki(stem .. "it")
prem1p = p.wiki(stem .. "îmes"); prem2p = p.wiki(stem .. "îtes"); prem3p = p.wiki(stem .. "irent")
fut1s = p.wiki(stem .. "irai"); fut2s = p.wiki(stem .. "iras"); fut3s = p.wiki(stem .. "ira")
fut1p = p.wiki(stem .. "irons"); fut2p = p.wiki(stem .. "irez"); fut3p = p.wiki(stem .. "iront")
cond1s = p.wiki(stem .. "irais"); cond2s = p.wiki(stem .. "irais"); cond3s = p.wiki(stem .. "irait")
cond1p = p.wiki(stem .. "irions"); cond2p = p.wiki(stem .. "iriez"); cond3p = p.wiki(stem .. "iraient")
cong1s = p.wiki(stem .. "e"); cong2s=p.wiki(stem .. "es"); cong3s = p.wiki(stem .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem .. "ent")
congimp1s = p.wiki(stem .. "isse"); congimp2s = p.wiki(stem.. "isses"); congimp3s = p.wiki(stem .. "ît")
congimp1p = p.wiki(stem .. "issions"); congimp2p = p.wiki(stem .. "issiez"); congimp3p = p.wiki(stem .. "issent")
imp2s = p.wiki(stem.sub(stem, 1, -2) .. "s"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
elseif (type == "dre") or (type == "dre-se") then
inf = p.wiki(stem .. "dre")
par = p.wiki(stem .. "dant"); pp = p.wiki(stem .. "du"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem.. "ds"); pres2s = p.wiki(stem.. "ds"); pres3s = p.wiki(stem.. "d")
pres1p = p.wiki(stem .. "dons"); pres2p = p.wiki(stem .. "dez"); pres3p = p.wiki(stem .. "dent")
imperf1s = p.wiki(stem .. "dais"); imperf2s = p.wiki(stem .. "dais"); imperf3s = p.wiki(stem .. "dait")
imperf1p = p.wiki(stem .. "dions"); imperf2p = p.wiki(stem .. "diez"); imperf3p = p.wiki(stem .. "daient")
prem1s = p.wiki(stem .. "dis"); prem2s = p.wiki(stem .. "dis"); prem3s = p.wiki(stem .. "dit")
prem1p = p.wiki(stem .. "dîmes"); prem2p = p.wiki(stem .. "dîtes"); prem3p = p.wiki(stem .. "dirent")
fut1s = p.wiki(stem .. "drai"); fut2s = p.wiki(stem .. "dras"); fut3s = p.wiki(stem .. "dra")
fut1p = p.wiki(stem .. "drons"); fut2p = p.wiki(stem .. "drez"); fut3p = p.wiki(stem .. "dront")
cond1s = p.wiki(stem .. "drais"); cond2s = p.wiki(stem .. "drais"); cond3s = p.wiki(stem .. "drait")
cond1p = p.wiki(stem .. "drions"); cond2p = p.wiki(stem .. "driez"); cond3p = p.wiki(stem .. "draient")
cong1s = p.wiki(stem .. "de"); cong2s=p.wiki(stem .. "des"); cong3s = p.wiki(stem .. "de")
cong1p = p.wiki(stem .. "dions"); cong2p = p.wiki(stem .. "diez"); cong3p = p.wiki(stem .. "dent")
congimp1s = p.wiki(stem .. "disse"); congimp2s = p.wiki(stem.. "disses"); congimp3s = p.wiki(stem .. "dît")
congimp1p = p.wiki(stem .. "dissions"); congimp2p = p.wiki(stem .. "dissiez"); congimp3p = p.wiki(stem .. "dissent")
imp2s = p.wiki(stem.. "ds"); imp3s = ""
imp1p = p.wiki(stem .. "dons"); imp2p = p.wiki(stem .. "dez"); imp3p = ""
elseif (type == "re") or (type == "re-se") or (type == "oir") or (type == "oir-se") then
if type == "oir" or type == "oir-se" then inf = p.wiki(stem .. "oir") elseif type == "re" or type == "re-se" then inf = p.wiki(stem.. "re") end
par = p.wiki(stem .. "ant"); pp = p.wiki(stem .. "i"); pplur = p.plurale(-2, pp, "s]]")
pres1s = p.wiki(stem .. "s"); pres2s = p.wiki(stem .. "s"); pres3s = p.wiki(stem .. "t")
pres1p = p.wiki(stem .. "ons"); pres2p = p.wiki(stem .. "ez"); pres3p = p.wiki(stem .. "ent")
imperf1s = p.wiki(stem .. "ais"); imperf2s = p.wiki(stem .. "ais"); imperf3s = p.wiki(stem .. "ait")
imperf1p = p.wiki(stem .. "ions"); imperf2p = p.wiki(stem .. "iez"); imperf3p = p.wiki(stem .. "aient")
prem1s = p.wiki(stem .. "is"); prem2s = p.wiki(stem .. "is"); prem3s = p.wiki(stem .. "it")
prem1p = p.wiki(stem .. "îmes"); prem2p = p.wiki(stem .. "îtes"); prem3p = p.wiki(stem .. "irent")
fut1s = p.wiki(stem .. "irai"); fut2s = p.wiki(stem .. "iras"); fut3s = p.wiki(stem .. "ira")
fut1p = p.wiki(stem .. "irons"); fut2p = p.wiki(stem .. "irez"); fut3p = p.wiki(stem .. "iront")
cond1s = p.wiki(stem .. "irais"); cond2s = p.wiki(stem .. "irais"); cond3s = p.wiki(stem .. "irait")
cond1p = p.wiki(stem .. "irions"); cond2p = p.wiki(stem .. "iriez"); cond3p = p.wiki(stem .. "iraient")
cong1s = p.wiki(stem .. "e"); cong2s=p.wiki(stem .. "es"); cong3s = p.wiki(stem .. "e")
cong1p = p.wiki(stem .. "ions"); cong2p = p.wiki(stem .. "iez"); cong3p = p.wiki(stem .. "ent")
congimp1s = p.wiki(stem .. "isse"); congimp2s = p.wiki(stem.. "isses"); congimp3s = p.wiki(stem .. "ît")
congimp1p = p.wiki(stem .. "issions"); congimp2p = p.wiki(stem .. "issiez"); congimp3p = p.wiki(stem .. "issent")
imp2s = p.wiki(stem .. "s"); imp3s = ""
imp1p = p.wiki(stem .. "ons"); imp2p = p.wiki(stem .. "ez"); imp3p = ""
else error("Verb type " .. type .. "not supported.")
end
-- Variabile per i verbi riflessivi
if type == "er-se" or type == "cer-se" or type == "ger-se" or type == "éer-se" or type == "oyer-se" or type == "uyer-se" or type == "ayer-se" or type == "eyer-se" or type == "eler-se" or type == "eter-se" or type == "ir-se" or type == "ir3-se" or type == "oir-se" or type == "re-se" or type == "dre-se" then
refl = true
else
refl = false
end
-- Genera i pronomi riflessivi (con l'apostrofo se la radice inizia per vocale)
if refl then
refl_exist = true
nous = "nous "; vous = "vous "
me1 = "me "; te1 = "te "; se1 = "se "
me2 = "m'"; te2 = "t'"; se2 = "s'"
teimp = "-toi"; nousimp = "-nous"; vousimp = "-vous"
if mw.ustring.find(stem, "^[aàâeéèêëiîïoôuùûüh]") then me = "m'"; te = "t'"; se = "s'"
elseif mw.ustring.find(stem, "^[^aàâeéèêëiîïoôuùûüh]") then me = "me "; te = "te "; se = "se " end
else me = ""; te = ""; se = ""; nous = ""; vous = ""; me1 = ""; te1 = ""; se1 = ""; me2 = ""; te2 = ""; se2 = ""; teimp = ""; nousimp = ""; vousimp = ""
end
--questo genera la stringa "pron", cioé la particella pronominale con o senza accento, da utilizzare nel link ai riflessivi subito sotto
if refl == false then
if mw.ustring.find(stem, "^[aàâeéèêëiîïoôuùûüh]") then pron = "s'"
else pron = "se " end
else
pron = ""
end
--genera il link ai riflessivi
if type == "er" or type == "cer" or type == "ger" or type == "oyer" or type == "uyer" or type == "ayer" or type == "eyer" or type == "eler" or type == "eter"
or type == "er-se" or type == "cer-se" or type == "ger-se" or type == "oyer-se" or type == "uyer-se" or type == "ayer-se" or type == "eyer-se" or type == "eler-se" or type == "eter-se" then
if mw.title.new(pron.. stem.. "er").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "er").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "er"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "er|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
elseif type == "éer" or type == "éer-se" then
if mw.title.new(pron.. stem.. "éer").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "éer").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "er"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "éer|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
elseif type == "ir" or type == "ir-se" or type == "ir3" or type == "ir3-se" then
if mw.title.new(pron.. stem.. "ir").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "ir").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "ir"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "ir|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
elseif type == "dre" or type == "dre-se" then
if mw.title.new(pron.. stem.. "dre").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "dre").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "ir"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "dre|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
elseif type == "re" or type == "re-se" then
if mw.title.new(pron.. stem.. "re").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "re").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "ir"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "re|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
elseif type == "oir" or type == "oir-se" then
if mw.title.new(pron.. stem.. "oir").exists == true or mw.title.new("Appendice:Coniugazioni/Francese/".. pron.. stem.. "oir").exists == true then --cerca se esiste il lemma o la coniugazione della forma riflessiva del verbo
refl_exist = true; refl_link = p.wiki(pron.. stem .. "ir"); refl_conjlink = " ([[Appendice:Coniugazioni/Francese/".. pron.. stem .. "oir|coniugazione]])" --se esiste il riflessivo, genera link al verbo in ns0 e alla relativa coniugazione in appendice
else
refl_exist = false; refl_link = ""; refl_conjlink = "" --se non esiste il riflessivo, annulla i link
end
end
-- Recupera le eventuali forme irregolari o varianti, rimpiazziandole o aggiungendole a quelle standard
-- Forme impersonali e participi
inf = p.over(inf,args["inf"])
par = p.over(par,args["par"])
par2 = p.wiki(args["par2"])
par = p.alts(par, par2)
ger = "en ".. par
pp = p.over(pp,args["pp"])
pp2 = p.wiki(args["pp2"]); pp3 = p.wiki(args["pp3"]); pp3 = p.wiki(args["pp3"]); pp4 = p.wiki(args["pp4"])
pp = p.alts(pp, pp2); pp = p.alts(pp, pp3); pp = p.alts(pp, pp4)
-- Presente indicativo
pres1s = p.over(pres1s,args["pres1s"]); pres2s = p.over(pres2s,args["pres2s"]); pres3s = p.over(pres3s,args["pres3s"])
pres1p = p.over(pres1p,args["pres1p"]); pres2p = p.over(pres2p,args["pres2p"]); pres3p = p.over(pres3p,args["pres3p"])
pres1s2 = p.wiki(args["pres1s2"]); pres2s2 = p.wiki(args["pres2s2"]); pres3s2 = p.wiki(args["pres3s2"])
pres1p2 = p.wiki(args["pres1p2"]); pres2p2 = p.wiki(args["pres2p2"]); pres3p2 = p.wiki(args["pres3p2"])
pres1s = p.alts(pres1s, pres1s2); pres2s = p.alts(pres2s, pres2s2); pres3s = p.alts(pres3s, pres3s2)
pres1p = p.alts(pres1p, pres1p2); pres2p = p.alts(pres2p, pres2p2); pres3p = p.alts(pres3p, pres3p2)
-- Imperfetto
imperf1s = p.over(imperf1s,args["imperf1s"]); imperf2s = p.over(imperf2s,args["imperf2s"]); imperf3s = p.over(imperf3s,args["imperf3s"])
imperf1p = p.over(imperf1p,args["imperf1p"]); imperf2p = p.over(imperf2p,args["imperf2p"]); imperf3p = p.over(imperf3p,args["imperf3p"])
imperf1s2 = p.wiki(args["imperf1s2"]); imperf2s2 = p.wiki(args["imperf2s2"]); imperf3s2 = p.wiki(args["imperf3s2"])
imperf1p2 = p.wiki(args["imperf1p2"]); imperf2p2 = p.wiki(args["imperf2p2"]); imperf3p2 = p.wiki(args["imperf3p2"])
imperf1s = p.alts(imperf1s, imperf1s2); imperf2s = p.alts(imperf2s, imperf2s2); imperf3s = p.alts(imperf3s, imperf3s2)
imperf1p = p.alts(imperf1p, imperf1p2); imperf2p = p.alts(imperf2p, imperf2p2); imperf3p = p.alts(imperf3p, imperf3p2)
-- Passato Remoto (Past historic)
prem1s = p.over(prem1s,args["prem1s"]); prem2s = p.over(prem2s,args["prem2s"]); prem3s = p.over(prem3s,args["prem3s"])
prem1p = p.over(prem1p,args["prem1p"]); prem2p = p.over(prem2p,args["prem2p"]); prem3p = p.over(prem3p,args["prem3p"])
prem1s2 = p.wiki(args["prem1s2"]); prem2s2 = p.wiki(args["prem2s2"]); prem3s2 = p.wiki(args["prem3s2"])
prem1p2 = p.wiki(args["prem1p2"]); prem2p2 = p.wiki(args["prem2p2"]); prem3p2 = p.wiki(args["prem3p2"])
prem1s = p.alts(prem1s, prem1s2); prem2s = p.alts(prem2s, prem2s2); prem3s = p.alts(prem3s, prem3s2)
prem1p = p.alts(prem1p, prem1p2); prem2p = p.alts(prem2p, prem2p2); prem3p = p.alts(prem3p, prem3p2)
-- Alternative extra per il passato remoto
prem1s3 = p.wiki(args["prem1s3"]); prem1s = p.alts(prem1s, prem1s3)
prem3s3 = p.wiki(args["prem3s3"]); prem3s = p.alts(prem3s, prem3s3)
prem3p3 = p.wiki(args["prem3p3"]); prem3p = p.alts(prem3p, prem3p3)
-- Futuro
fut1s = p.over(fut1s,args["fut1s"]); fut2s = p.over(fut2s,args["fut2s"]); fut3s = p.over(fut3s,args["fut3s"])
fut1p = p.over(fut1p,args["fut1p"]); fut2p = p.over(fut2p,args["fut2p"]); fut3p = p.over(fut3p,args["fut3p"])
fut1s2 = p.wiki(args["fut1s2"]); fut2s2 = p.wiki(args["fut2s2"]); fut3s2 = p.wiki(args["fut3s2"])
fut1p2 = p.wiki(args["fut1p2"]); fut2p2 = p.wiki(args["fut2p2"]); fut3p2 = p.wiki(args["fut3p2"])
fut1s = p.alts(fut1s, fut1s2); fut2s = p.alts(fut2s, fut2s2); fut3s = p.alts(fut3s, fut3s2)
fut1p = p.alts(fut1p, fut1p2); fut2p = p.alts(fut2p, fut2p2); fut3p = p.alts(fut3p, fut3p2)
-- Condizionale
cond1s = p.over(cond1s,args["cond1s"]); cond2s = p.over(cond2s,args["cond2s"]); cond3s = p.over(cond3s,args["cond3s"])
cond1p = p.over(cond1p,args["cond1p"]); cond2p = p.over(cond2p,args["cond2p"]); cond3p = p.over(cond3p,args["cond3p"])
cond1s2 = p.wiki(args["cond1s2"]); cond2s2 = p.wiki(args["cond2s2"]); cond3s2 = p.wiki(args["cond3s2"])
cond1p2 = p.wiki(args["cond1p2"]); cond2p2 = p.wiki(args["cond2p2"]); cond3p2 = p.wiki(args["cond3p2"])
cond1s = p.alts(cond1s, cond1s2); cond2s = p.alts(cond2s, cond2s2); cond3s = p.alts(cond3s, cond3s2)
cond1p = p.alts(cond1p, cond1p2); cond2p = p.alts(cond2p, cond2p2); cond3p = p.alts(cond3p, cond3p2)
-- Presente congiuntivo
cong1s = p.over(cong1s,args["cong1s"]); cong2s = p.over(cong2s,args["cong2s"]); cong3s = p.over(cong3s,args["cong3s"])
cong1p = p.over(cong1p,args["cong1p"]); cong2p = p.over(cong2p,args["cong2p"]); cong3p = p.over(cong3p,args["cong3p"])
cong1s2 = p.wiki(args["cong1s2"]); cong2s2 = p.wiki(args["cong2s2"]); cong3s2 = p.wiki(args["cong3s2"])
cong1p2 = p.wiki(args["cong1p2"]); cong2p2 = p.wiki(args["cong2p2"]); cong3p2 = p.wiki(args["cong3p2"])
cong1s = p.alts(cong1s, cong1s2); cong2s = p.alts(cong2s, cong2s2); cong3s = p.alts(cong3s, cong3s2)
cong1p = p.alts(cong1p, cong1p2); cong2p = p.alts(cong2p, cong2p2); cong3p = p.alts(cong3p, cong3p2)
-- Imperfetto congiuntivo
congimp1s = p.over(congimp1s,args["congimp1s"]); congimp2s = p.over(congimp2s,args["congimp2s"]); congimp3s = p.over(congimp3s,args["congimp3s"])
congimp1p = p.over(congimp1p,args["congimp1p"]); congimp2p = p.over(congimp2p,args["congimp2p"]); congimp3p = p.over(congimp3p,args["congimp3p"])
congimp1s2 = p.wiki(args["congimp1s2"]); congimp2s2 = p.wiki(args["congimp2s2"]); congimp3s2 = p.wiki(args["congimp3s2"])
congimp1p2 = p.wiki(args["congimp1p2"]); congimp2p2 = p.wiki(args["congimp2p2"]); congimp3p2 = p.wiki(args["congimp3p2"])
congimp1s = p.alts(congimp1s, congimp1s2); congimp2s = p.alts(congimp2s, congimp2s2); congimp3s = p.alts(congimp3s, congimp3s2)
congimp1p = p.alts(congimp1p, congimp1p2); congimp2p = p.alts(congimp2p, congimp2p2); congimp3p = p.alts(congimp3p, congimp3p2)
-- Imperativo
imp2s = p.over(imp2s,args["imp2s"]); imp3s = p.over(imp3s,args["imp3s"])
imp1p = p.over(imp1p,args["imp1p"]); imp2p = p.over(imp2p,args["imp2p"]); imp3p = p.over(imp3p,args["imp3p"])
imp2s2 = p.wiki(args["imp2s2"]); imp3s2 = p.wiki(args["imp3s2"])
imp1p2 = p.wiki(args["imp1p2"]); imp2p2 = p.wiki(args["imp2p2"]); imp3p2 = p.wiki(args["imp3p2"])
imp2s = p.alts(imp2s, imp2s2); imp3s = p.alts(imp3s, imp3s2)
imp1p = p.alts(imp1p, imp1p2); imp2p = p.alts(imp2p, imp2p2); imp3p = p.alts(imp3p, imp3p2)
-- Alternativa extra per l'imperativo
imp2s3 = p.wiki(args["imp2s3"]); imp2s = p.alts(imp2s, imp2s3)
--cerca se uno qualsiasi dei parametri è definito, e in base a questo definisce la stringa reg_irreg come "irregolare" o "regolare"
if
args["inf"] ~= nil or args["ger"] ~= nil or args["par"] ~= nil or args["pp"] ~= nil
or args["pres1s"] ~= nil or args["pres1s2"] ~= nil or args["pres2s"] ~= nil or args["pres3s"] ~= nil or args["pres1p"] ~= nil or args["pres2p"] ~= nil or args["pres3p"] ~= nil
or args["imperf1s"] ~= nil or args["imperf2s"] ~= nil or args["imperf3s"] ~= nil or args["imperf1p"] ~= nil or args["imperf2p"] ~= nil or args["imperf3p"] ~= nil
or args["prem1s"] ~= nil or args["prem1s2"] ~= nil or args["prem2s"] ~= nil or args["prem3s"] ~= nil or args["prem3s2"] ~= nil or args["prem1p"] ~= nil or args["prem2p"] ~= nil or args["prem3p"] ~= nil or args["prem3p2"] ~= nil
or args["fut1s"] ~= nil or args["fut2s"] ~= nil or args["fut3s"] ~= nil or args["fut1p"] ~= nil or args["fut2p"] ~= nil or args["fut3p"] ~= nil
or args["cond1s"] ~= nil or args["cond2s"] ~= nil or args["cond3s"] ~= nil or args["cond1p"] ~= nil or args["cond2p"] ~= nil or args["cond3p"] ~= nil
or args["cong123s"] ~= nil or args["cong1p"] ~= nil or args["cong2p"] ~= nil or args["cong3p"] ~= nil
or args["imp12s"] ~= nil or args["imp3s"] ~= nil or args["imp1p"] ~= nil or args["imp2p"] ~= nil or args["imp3p"] ~= nil
or args["imp2s2"] ~= nil or args["imp2s3"] ~= nil or args["imp3s"] ~= nil or args["imp1p"] ~= nil or args["imp2p"] ~= nil or args["imp3p"] ~= nil
then
if args["irregolare"] == "no" then
irregolaredescr = ""; reg_irreg = " regolari "
else
irregolaredescr = " '''(irregolare)'''"; reg_irreg = " irregolari "
end
else --se nessun parametro è definito...
if type == "dre" or type == "re" or type == "oir" then --questi qui sono comunque irregolari anche se non hanno parametri definiti
irregolaredescr = " '''(irregolare)'''"; reg_irreg = " irregolari "
else --per tutti gli altri senza parametri definiti, le categorie diventano "regolari"
irregolaredescr = ""; reg_irreg = " regolari "
end
end
--in base alla desinenza "type", costruisce la descizione e aggiunge le categorie
if type == "er" or type == "cer" or type == "ger" or type == "éer" or type == "oyer" or type == "uyer" or type == "ayer" or type == "eyer" or type == "eler" or type == "eter" then
conjdescr = "'''verbo del primo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del primo gruppo in francese",titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese",titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del primo gruppo in francese",titolo)
elseif type == "ir" then
conjdescr = "'''verbo del secondo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del secondo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del secondo gruppo in francese", titolo)
elseif type == "ir3" then
conjdescr = "'''verbo del terzo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del terzo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del terzo gruppo in francese", titolo)
elseif type == "dre" or type == "re" or type == "oir" then
conjdescr = "'''verbo del terzo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del terzo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del terzo gruppo in francese", titolo)
elseif type == "er-se" or type == "cer-se" or type == "ger-se" or type == "éer-se" or type == "oyer-se" or type == "uyer-se" or type == "ayer-se" or type == "eyer-se" or type == "eler-se" or type == "eter-se" then
conjdescr = "'''verbo riflessivo pronominale del primo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del primo gruppo in francese",titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali del primo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del primo gruppo in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "del primo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del secondo gruppo in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "del secondo gruppo in francese", titolo)
elseif type == "ir-se" then
conjdescr = "'''verbo riflessivo pronominale del secondo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del secondo gruppo in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali del secondo gruppo in francese", titolo)
irregolarecat = categorizza("Coniugazioni dei verbi".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi".. reg_irreg.. "del secondo gruppo in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali".. reg_irreg.. "del secondo gruppo in francese", titolo)
elseif type == "ir3-se" or type == "dre-se" or type == "re-se" or type == "oir-se" then
conjdescr = "'''verbo riflessivo pronominale del terzo gruppo'''"; conjcat = categorizza("Coniugazioni dei verbi del terzo gruppo in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali in francese", titolo).." "..categorizza("Coniugazioni dei verbi riflessivi pronominali del terzo gruppo in francese", titolo)
end
--stringa "descrizione", raggruppa tutte le stringhe definite prima per la descrizione e le categorie della coniugazione, regolari/irregolari e riflessivi
--!!ATTENZIONE!! le descrizioni e le categorie regolari/irregolari al momento sono commentate e non escono fuori (anche se di loro funzionerebbero): non è detto servano, gli irregolari francesi sono praticamente tutti nel terzo gruppo, probabilmente sono ridondanti. Inoltre finché abbiamo poche coniugazioni è comunque prematuro...
descrizione = categorizza("Coniugazioni in francese", titolo).. conjdescr.. conjcat --.. irregolaredescr.. irregolarecat
-- Particelle pronominali riflessive
me = p.over(me,args["me"],0); te = p.over(te,args["te"],0); se = p.over(se,args["se"],0); nous = p.over(nous,args["nous"],0); vous = p.over(vous,args["vous"])
-- Tempi composti
if args["pp"] == nil then pplur = p.plurale(-2, pp, "s]]") else pplur = "[[".. args["pp"].. "s]]" end
if pp2 >= "a" then pplur2 = "[[".. args["pp2"].. "s]]" else pplur2 = "0" end
pplur = p.alts(pplur, pplur2)
-- Passato prossimo
if aus == "avoir" and pp ~= "" then
paspros1s = "[[ai]] ".. pp; paspros2s = "[[as]] ".. pp; paspros3s = "[[a]] ".. pp; paspros1p = "[[avons]] ".. pp; paspros2p = "[[avez]] ".. pp; paspros3p = "[[ont]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
paspros1s = me1.. "[[suis]] ".. pp; paspros2s = te2.. "[[es]] ".. pp; paspros3s = se2.. "[[est]] ".. pp; paspros1p = nous.. "[[sommes]] ".. pplur; paspros2p = vous.. "[[êtes]] ".. pplur; paspros3p = se1.. "[[sont]] ".. pplur
elseif pp == "" then
paspros1s = ""; paspros2s = ""; paspros3s = ""; paspros1p = ""; paspros2p = ""; paspros3p = ""
else
paspros1s = "[[ai]] ".. pp.. "</br>[[suis]] ".. pp; paspros2s = "[[as]] ".. pp.. "</br>[[es]] ".. pp; paspros3s = "[[a]] ".. pp.. "</br>[[est]] ".. pp; paspros1p = "[[avons]] ".. pp.. "</br>[[sommes]] ".. pplur; paspros2p = "[[avez]] ".. pp.. "</br>[[êtes]] ".. pplur; paspros3p = "[[ont]] ".. pp.. "</br>[[sont]] ".. pplur
end
-- Trapassato prossimo
if aus == "avoir" and pp ~= "" then
trappros1s = "[[avais]] ".. pp; trappros2s = "[[avais]] ".. pp; trappros3s = "[[avait]] ".. pp; trappros1p = "[[avions]] ".. pp; trappros2p = "[[aviez]] ".. pp; trappros3p = "[[avaient]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
trappros1s = me2.. "[[étais]] ".. pp; trappros2s = te2.. "[[étais]] ".. pp; trappros3s = se2.. "[[était]] ".. pp; trappros1p = nous.. "[[étions]] ".. pplur; trappros2p = vous.. "[[étiez]] ".. pplur; trappros3p = se2.. "[[étaient]] ".. pplur
elseif pp == "" then
trappros1s = ""; trappros2s = ""; trappros3s = ""; trappros1p = ""; trappros2p = ""; trappros3p = ""
else
trappros1s = "[[avais]] ".. pp.. "</br>[[étais]] ".. pp; trappros2s = "[[avais]] ".. pp.. "</br>[[étais]] ".. pp; trappros3s = "[[avait]] ".. pp.. "</br>[[était]] ".. pp; trappros1p = "[[avions]] ".. pp.. "</br>[[étions]] ".. pplur; trappros2p = "[[aviez]] ".. pp.. "</br>[[étiez]] ".. pplur; trappros3p = "[[avaient]] ".. pp.. "</br>[[étaient]] ".. pplur
end
-- Trapassato remoto
if aus == "avoir" and pp ~= "" then
traprem1s = "[[eus]] ".. pp; traprem2s = "[[eus]] ".. pp; traprem3s = "[[eut]] ".. pp; traprem1p = "[[eûmes]] ".. pp; traprem2p = "[[eûtes]] ".. pp; traprem3p = "[[eurent]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
traprem1s = me1.. "[[fus]] ".. pp; traprem2s = te1.. "[[fus]] ".. pp; traprem3s = se1.. "[[fut]] ".. pp; traprem1p = nous.. "[[fûmes]] ".. pplur; traprem2p = vous.. "[[fûtes]] ".. pplur; traprem3p = se1.. "[[furent]] ".. pplur
elseif pp == "" then
traprem1s = ""; traprem2s = ""; traprem3s = ""; traprem1p = ""; traprem2p = ""; traprem3p = ""
else
traprem1s = "[[eus]] ".. pp.. "</br>[[fus]] ".. pp; traprem2s = "[[eus]] ".. pp.. "</br>[[fus]] ".. pp; traprem3s = "[[eut]] ".. pp.. "</br>[[fut]] ".. pp; traprem1p = "[[eûmes]] ".. pp.. "</br>[[fûmes]] ".. pplur; traprem2p = "[[eûtes]] ".. pp.. "</br>[[fûtes]] ".. pplur; traprem3p = "[[eurent]] ".. pp.. "</br>[[furent]] ".. pplur
end
-- Futuro anteriore
if aus == "avoir" and pp ~= "" then
futant1s = "[[aurai]] ".. pp; futant2s = "[[auras]] ".. pp; futant3s = "[[aura]] ".. pp; futant1p = "[[aurons]] ".. pp; futant2p = "[[aurez]] ".. pp; futant3p = "[[auront]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
futant1s = me1.. "[[serai]] ".. pp; futant2s = te1.. "[[seras]] ".. pp; futant3s = se1.. "[[sera]] ".. pp; futant1p = nous.. "[[serons]] ".. pplur; futant2p = vous.. "[[serez]] ".. pplur; futant3p = se1.. "[[seront]] ".. pplur
elseif pp == "" then
futant1s = ""; futant2s = ""; futant3s = ""; futant1p = ""; futant2p = ""; futant3p = ""
else
futant1s = "[[aurai]] ".. pp.. "</br>[[serai]] ".. pp; futant2s = "[[auras]] ".. pp.. "</br>[[seras]] ".. pp; futant3s = "[[aura]] ".. pp.. "</br>[[sera]] ".. pp; futant1p = "[[aurons]] ".. pp.. "</br>[[serons]] ".. pplur; futant2p = "[[aurez]] ".. pp.. "</br>[[serez]] ".. pplur; futant3p = "[[auront]] ".. pp.. "</br>[[seront]] ".. pplur
end
-- Condizionale passato
if aus == "avoir" and pp ~= "" then
condpas1s = "[[aurais]] ".. pp; condpas2s = "[[aurais]] ".. pp; condpas3s = "[[aurait]] ".. pp; condpas1p = "[[aurions]] ".. pp; condpas2p = "[[auriez]] ".. pp; condpas3p = "[[auraient]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
condpas1s = me1.. "[[serais]] ".. pp; condpas2s = te1.. "[[serais]] ".. pp; condpas3s = se1.. "[[serat]] ".. pp; condpas1p = nous.. "[[serions]] ".. pplur; condpas2p = vous.. "[[seriez]] ".. pplur; condpas3p = se1.. "[[seraient]] ".. pplur
elseif pp == "" then
condpas1s = ""; condpas2s = ""; condpas3s = ""; condpas1p = ""; condpas2p = ""; condpas3p = ""
else
condpas1s = "[[aurais]] ".. pp.. "</br>[[seras]] ".. pp; condpas2s = "[[aurais]] ".. pp.. "</br>[[seras]] ".. pp; condpas3s = "[[aurait]] ".. pp.. "</br>[[serat]] ".. pp; condpas1p = "[[aurions]] ".. pp.. "</br>[[serions]] ".. pplur; condpas2p = "[[auriez]] ".. pp.. "</br>[[seriez]] ".. pplur; condpas3p = "[[auraient]] ".. pp.. "</br>[[seraient]] ".. pplur
end
-- Congiuntivo passato
if aus == "avoir" and pp ~= "" then
congpas1s = "[[aie]] ".. pp; congpas2s = "[[aies]] ".. pp; congpas3s = "[[ait]] ".. pp; congpas1p = "[[ayons]] ".. pp; congpas2p = "[[ayez]] ".. pp; congpas3p = "[[aient]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
congpas1s = me1.. "[[sois]] ".. pp; congpas2s = te1.. "[[sois]] ".. pp; congpas3s = se1.. "[[soit]] ".. pp; congpas1p = nous.. "[[soyons]] ".. pplur; congpas2p = vous.. "[[soyez]] ".. pplur; congpas3p = se1.. "[[soient]] ".. pplur
elseif pp == "" then
congpas1s = ""; congpas2s = ""; congpas3s = ""; congpas1p = ""; congpas2p = ""; congpas3p = ""
else
congpas1s = "[[aies]] ".. pp.. "</br>[[sois]] ".. pp; congpas2s = "[[aies]] ".. pp.. "</br>[[sois]] ".. pp; congpas3s = "[[ait]] ".. pp.. "</br>[[soit]] ".. pp; congpas1p = "[[ayons]] ".. pp.. "</br>[[soyons]] ".. pplur; congpas2p = "[[ayez]] ".. pp.. "</br>[[soyez]] ".. pplur; congpas3p = "[[aiont]] ".. pp.. "</br>[[soient]] ".. pplur
end
-- Congiuntivo trapassato
if aus == "avoir" and pp ~= "" then
congtrap1s = "[[eusse]] ".. pp; congtrap2s = "[[eusses]] ".. pp; congtrap3s = "[[eût]] ".. pp; congtrap1p = "[[eussions]] ".. pp; congtrap2p = "[[eussiez]] ".. pp; congtrap3p = "[[eussent]] ".. pp
elseif aus == "être" or aus == "etre" and pp ~= "" then
aus = "être"
congtrap1s = me1.. "[[fusse]] ".. pp; congtrap2s = te1.. "[[fusses]] ".. pp; congtrap3s = se1.. "[[fût]] ".. pp; congtrap1p = nous.. "[[fussions]] ".. pplur; congtrap2p = vous.. "[[fussiez]] ".. pplur; congtrap3p = se1.. "[[fussent]] ".. pplur
elseif pp == "" then
congtrap1s = ""; congtrap2s = ""; congtrap3s = ""; contrap1p = ""; congtrap2p = ""; congtrap3p = ""
else
congtrap1s = "[[eusse]] ".. pp.. "</br>[[fusse]] ".. pp; congtrap2s = "[[eusses]] ".. pp.. "</br>[[fusses]] ".. pp; congtrap3s = "[[eût]] ".. pp.. "</br>[[fût]] ".. pp; congtrap1p = "[[eussions]] ".. pp.. "</br>[[fussions]] ".. pplur; congtrap2p = "[[eussiez]] ".. pp.. "</br>[[fussiez]] ".. pplur; congtrap3p = "[[eussent]] ".. pp.. "</br>[[fussent]] ".. pplur
end
-- Genera i titolo dei cassetti per i tempi composti
if pp == "" then
paspros = "manca dei tempi composti"; trappros = "manca dei tempi composti"; traprem = "manca dei tempi composti"; futant = "manca dei tempi composti"; condpas = "manca dei tempi composti"; congpas = "manca dei tempi composti"; congtrap = "manca dei tempi composti"
else
paspros = "ausiliare (".. aus.. ") coniugato all'indicativo presente seguito dal participio passato"
trappros = "ausiliare (".. aus.. ") coniugato all'indicativo imperfetto seguito dal participio passato"
traprem = "ausiliare (".. aus.. ") coniugato all'indicativo passato remoto seguito dal participio passato"
futant = "ausiliare (".. aus.. ") coniugato all'indicativo futuro seguito dal participio passato"
condpas = "ausiliare (".. aus.. ") coniugato al condizionale presente seguito dal participio passato"
congpas = "ausiliare (".. aus.. ") coniugato al congiuntivo presente seguito dal participio passato"
congtrap = "ausiliare (".. aus.. ") coniugato al congiuntivo imperfetto seguito dal participio passato"
end
-- Costruisce la tabella di coniugazione
conj = '{| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px" class="inflection-table"\n'
conj = conj .. '|-\n'
conj = conj .. '| colspan="8" style="background:#ffe4c4; text-align:center" | ' .. descrizione .. '\n'
conj = conj .. '|-\n'
if refl_exist == true then --se esiste il riflessivo pronominale del verbo, o se il verbo È riflessivo, fa spazio in tabella per aggiungere i relativi link generati precedentemente
conj = conj .. '! colspan="1" style="background:#e2e4c0" | infinito\n'
conj = conj .. '| colspan="2" | ' .. inf .. '\n'
if refl == true then --ulteriore variabile, se il verbo è riflessivo la dicitura della casella è "forma attiva", se no "riflessivo pronominale"
conj = conj .. '! colspan="2" style="background:#e2e4c0" | foma attiva\n'
else
conj = conj .. '! colspan="2" style="background:#e2e4c0" | riflessivo pronominale\n'
end
conj = conj .. '| colspan="2" | ' .. refl_link .. refl_conjlink.. '\n'
conj = conj .. '|-\n'
else --se non esiste il riflessivo, la relativa cella si toglie di torno
conj = conj .. '! colspan="1" style="background:#e2e4c0" | infinito\n'
conj = conj .. '| colspan="1" | ' .. inf .. '\n'
conj = conj .. '|-\n'
end
conj = conj .. '! colspan="2" style="background:#e2e4c0" | verbo ausiliare</br><small>auxiliaire</small>\n'
conj = conj .. '| colspan="1" | ' .. aus ..'\n'
conj = conj .. '! colspan="2" style="background:#e2e4c0" | gerundio</br><small>gérondif</small>\n'
conj = conj .. '| colspan="2" | ' .. ger .. '\n'
conj = conj .. '|-\n! colspan="2" style="background:#e2e4c0" | participio presente</br><small>participe présent</small>\n'
conj = conj .. '| colspan="1" | ' .. par .. '\n'
conj = conj .. '! colspan="2" style="background:#e2e4c0" | participio passato</br><small>participe passé</small>\n'
conj = conj .. '| colspan="2" | ' .. pp .. '\n'
conj = conj .. '|-\n! colspan="1" rowspan="2" style="background:#C0C0C0" | persona\n'
conj = conj .. '! colspan="3" style="background:#C0C0C0" | singolare\n'
conj = conj .. '! colspan="3" style="background:#C0C0C0" | plurale\n'
conj = conj .. '|-\n! style="background:#C0C0C0;width:12.5%" | prima\n'
conj = conj .. '! style="background:#C0C0C0;width:12.5%" | seconda\n'
conj = conj .. '! style="background:#C0C0C0;width:12.5%" | terza\n'
conj = conj .. '! style="background:#C0C0C0;width:12.5%" | prima\n'
conj = conj .. '! style="background:#C0C0C0;width:12.5%" | seconda\n'
conj = conj .. '! style="background:#C0C0C0;width:12.5%" | terza\n'
conj = conj .. '|-\n! style="background:#c0cfe4" colspan="1" | indicativo</br><small>indicatif</small>\n'
conj = conj .. '! style="background:#c0cfe4" | je (j’)\n'
conj = conj .. '! style="background:#c0cfe4" | tu\n'
conj = conj .. '! style="background:#c0cfe4" | il/elle/on\n'
conj = conj .. '! style="background:#c0cfe4" | nous\n'
conj = conj .. '! style="background:#c0cfe4" | vous\n'
conj = conj .. '! style="background:#c0cfe4" | ils/elles\n|-\n'
conj = conj .. '! style="height:3em;background:#c0cfe4" colspan="1" | presente</br><small>présent</small>\n'
conj = conj .. '|' .. me .. pres1s .. '\n|' .. te .. pres2s .. '\n|' .. se .. pres3s .. '\n|' .. nous .. pres1p .. '\n|' .. vous .. pres2p .. '\n|' .. se .. pres3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | imperfetto</br><small>imparfait</small>\n'
conj = conj .. '|' .. me .. imperf1s .. '\n|' .. te .. imperf2s .. '\n|' .. se .. imperf3s .. '\n|' .. nous .. imperf1p .. '\n|' .. vous .. imperf2p .. '\n|' .. se .. imperf3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | passato remoto</br><small>passé simple</small>\n'
conj = conj .. '|' .. me .. prem1s .. '\n|' .. te .. prem2s .. '\n|' .. se .. prem3s .. '\n|' .. nous .. prem1p .. '\n|' .. vous .. prem2p .. '\n|' .. se .. prem3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | futuro</br><small>futur simple</small>\n'
conj = conj .. '|' .. me .. fut1s .. '\n|' .. te .. fut2s .. '\n|' .. se .. fut3s .. '\n|' .. nous .. fut1p .. '\n|' .. vous .. fut2p .. '\n|' .. se .. fut3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | passato prossimo</br><small>passé composé</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. paspros.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. paspros1s .. '||' .. paspros2s .. '||' .. paspros3s .. '||' .. paspros1p .. '||' .. paspros2p .. '\n|' .. paspros3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | trapassato prossimo</br><small>plus-que-parfait</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. trappros.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. trappros1s .. '\n|' .. trappros2s .. '\n|' .. trappros3s .. '\n|' .. trappros1p .. '\n|' .. trappros2p .. '\n|' .. trappros3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | trapassato remoto</br><small>passé anterieur</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. traprem.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. traprem1s .. '\n|' .. traprem2s .. '\n|' .. traprem3s .. '\n|' .. traprem1p .. '\n|' .. traprem2p .. '\n|' .. traprem3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | futuro anteriore</br><small>futur antérieur</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. futant.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. futant1s .. '\n|' .. futant2s .. '\n|' .. futant3s .. '\n|' .. futant1p .. '\n|' .. futant2p .. '\n|' .. futant3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="background:#c0d8e4" colspan="1" | condizionale</br><small>conditionnel</small>\n'
conj = conj .. '! style="background:#c0cfe4" | je (j’)\n'
conj = conj .. '! style="background:#c0cfe4" | tu\n'
conj = conj .. '! style="background:#c0cfe4" | il/elle/on\n'
conj = conj .. '! style="background:#c0cfe4" | nous\n'
conj = conj .. '! style="background:#c0cfe4" | vous\n'
conj = conj .. '! style="background:#c0cfe4" | ils/elles\n|-\n'
conj = conj .. '|-\n! style="height:3em;background:#c0d8e4" colspan="1" | presente</br><small>présent</small>\n'
conj = conj .. '|' .. me .. cond1s .. '\n|' .. te .. cond2s .. '\n|' .. se .. cond3s .. '\n|' .. nous .. cond1p .. '\n|' .. vous .. cond2p .. '\n|' .. se .. cond3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0d8e4" colspan="1" | passato</br><small>passé</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. condpas.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. condpas1s .. '\n|' .. condpas2s .. '\n|' .. condpas3s .. '\n|' .. condpas1p .. '\n|' .. condpas2p .. '\n|' .. condpas3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="background:#c0e4c0" colspan="1" | congiuntivo</br><small>subjonctif</small>\n'
conj = conj .. '! style="background:#c0cfe4" | que je (j’)\n'
conj = conj .. '! style="background:#c0cfe4" | que tu\n'
conj = conj .. '! style="background:#c0cfe4" | qu’il/elle/on\n'
conj = conj .. '! style="background:#c0cfe4" | que nous\n'
conj = conj .. '! style="background:#c0cfe4" | que vous\n'
conj = conj .. '! style="background:#c0cfe4" | qu’ils/elles\n|-\n'
conj = conj .. '! style="height:3em;background:#c0e4c0" | presente</br><small>présent</small>\n'
conj = conj .. '|' .. me .. cong1s .. '\n|' .. te .. cong2s .. '\n|' .. se .. cong3s .. '\n|' .. nous .. cong1p .. '\n|' .. vous .. cong2p .. '\n|' .. se .. cong3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" rowspan="1" | imperfetto</br><small>imparfait</small>\n'
conj = conj .. '|' .. me .. congimp1s .. '\n|' .. te .. congimp2s .. '\n|' .. se .. congimp3s .. '\n|' .. nous .. congimp1p .. '\n|' .. vous .. congimp2p .. '\n|' .. se .. congimp3p .. '\n'
conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" colspan="1" | passato</br><small>passé</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. congpas.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. congpas1s .. '\n|' .. congpas2s .. '\n|' .. congpas3s .. '\n|' .. congpas1p .. '\n|' .. congpas2p .. '\n|' .. congpas3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" colspan="1" | trapassato</br><small>plus-que-parfait</small>\n'
conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="NavFrame" style="border:0"><div class="NavHead">'.. congtrap.. '</div><div class="NavContent">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. congtrap1s .. '\n|' .. congtrap2s .. '\n|' .. congtrap3s .. '\n|' .. congtrap1p .. '\n|' .. congtrap2p .. '\n|' .. congtrap3p .. '\n |- \n |}</div></div>\n'
conj = conj .. '|-\n! colspan="1" rowspan="2" style="height:3em;background:#e4d4c0" | imperativo</br><small>impératif</small>\n'
conj = conj .. '! style="background:#c0cfe4" | je (j’)\n'
conj = conj .. '! style="background:#c0cfe4" | tu\n'
conj = conj .. '! style="background:#c0cfe4" | il/elle/on\n'
conj = conj .. '! style="background:#c0cfe4" | nous\n'
conj = conj .. '! style="background:#c0cfe4" | vous\n'
conj = conj .. '! style="background:#c0cfe4" | ils/elles\n'
conj = conj .. '|-\n|\n'
conj = conj .. '|' .. imp2s .. teimp.. '\n|' .. imp3s .. '\n|' .. imp1p .. nousimp.. '\n|' .. imp2p .. vousimp.. '\n|' .. imp3p .. '\n'
conj = conj .. '|-\n'
conj = conj .. '|}'
return conj
end
function p.over(x,over,xtra)
-- Utilizzato all'interno della funzione frconj
-- Rimpiazza una voce verbale standard con quella eventualmente indicata nel template (se quest'ultimo è un link rosso, aggiunge anche la relativa categoria)
if over == nil then return x end
if over < "a" then return '' end
if xtra == 0 then return over .. " " end -- for reflexive pronouns
if over >= "a" and mw.title.new(over).exists == false then
RedCat = categorizza("Verbi francesi con forme da scrivere", titolo)
else
RedCat = ""
end
return RedCat.. "[[" .. over .. "#Francese|" .. over .. "]]"
end
function p.wiki(x)
-- Utilizzato all'interno della funzione frconj
if x == nil then return " " end
if x == "" then return " " end
-- aggiunge la categoria link rossi
if x == (stem.. "er") or x == (stem.. "cer") or x == (stem.. "ger") or x == (stem.. "éer") or x == (stem.. "oyer") or x == (stem.. "uyer") or x == (stem.. "ayer") or x == (stem.. "eyer") or x == (stem.. "eler") or x == (stem.. "eter") or x == (stem.. "ir") or x == (stem.. "ir3") or x == (stem.. "re") or x == (stem.. "oir") or x == (stem.. "dre") then --per la voce all'infinito
if x >= "a" and mw.title.new(x).exists == false then
RedCat = categorizza("Verbi francesi da scrivere", titolo)
else
RedCat = ""
end
else --per tutte le altre
if x >= "a" and mw.title.new(x).exists == false then
RedCat = categorizza("Verbi francesi con forme da scrivere", titolo)
else
RedCat = ""
end
end
-- Rende il suo argomento un wikilink, o lo rende nullo se non definito (per facilitare la concatenazione)
return "[[" .. x .. "#Francese|" .. x .. "]]".. RedCat
end
function p.alts(x,y)
-- Utilizzato all'interno della funzione frconj
-- Aggiunge le eventuali forme alternative, se specificate nel template, separandole da quelle base con una virgola
if y == nil then return x end
if y == '' then return x end
if y > "0" then return x .. ", " .. y end
return x
end
function p.plurale(pos, str, r)
-- Utilizzato all'interno della funzione frconj
--genera automaticamente il plurale del participio passato
return str:sub(1, pos-1) .. r
end
return p