Modulo:La-decl-part
Aspetto
Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:La-decl-part/man (modifica • cronologia)
Sandbox: Modulo:La-decl-part/Sandbox (modifica•cronologia) • Test: Modulo:La-decl-part/Test (modifica•cronologia)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:La-decl-part/man (modifica • cronologia)
Sandbox: Modulo:La-decl-part/Sandbox (modifica•cronologia) • Test: Modulo:La-decl-part/Test (modifica•cronologia)
Questo modulo costituisce il codice di funzionamento del Template:La-decl-part e crea, in base ai parametri inseriti in quest'ultimo, la tabella di declinazione dei participi verbali latini (funziona per il participio presente, perfetto, futuro e per il gerundio).
Recupera automaticamente la radice del participio in base al primo parametro passato dal template, e in base al parametro "tempo", sempre passato dal template, genera le forme flesse
-- MODULO PER LE TABELLE DI CONIUGAZIONE DEI *PARTICIPI* LATINI
-- DERIVATO DAL Modulo:La-decl-agg DI CUI DIVIDE BUONA PARTE DELLA STRUTTURA
local p = {}
function noaccenti(x) -- funzione che rimuove gli eventuali accenti lunghi e brevi dalla radice (stem); in pratica se si scrive 'puĕr' restituisce 'puer'
local dp={
['ā']='a',['ă']='a',
['ē']='e',['ĕ']='e',
['ī']='i',['ĭ']='i',
['ō']='o',['ŏ']='o',
['ū']='u',['ŭ']='u',
};
return (mw.ustring.gsub(x, '.', dp))
end
function p.lapart(frame)
tempo = frame.args["tempo"] --traduce il parametro "tempo", passato dal template
participio = frame.args["1"]
radice = mw.ustring.sub(participio, 1, -3)
aggettivo = frame.args["aggettivo"] or " "
--a partire dalla radice, e in base al tempo, genera le varie forme flesse
if tempo == "pres" then --participio presente, -ns -ntis
nom_s_m = p.wiki(radice.. "ns"); nom_s_n = p.wiki(radice.. "ns");
gen_s_m = p.wiki(radice.. "ntis"); gen_s_n = p.wiki(radice.. "ntis");
dat_s_m = p.wiki(radice.. "ntī"); dat_s_n = p.wiki(radice.. "ntī");
acc_s_m = p.wiki(radice.. "ntem"); acc_s_n = p.wiki(radice.. "ns");
voc_s_m = p.wiki(radice.. "ns"); voc_s_n = p.wiki(radice.. "ns");
abl_s_m = p.wiki(radice.. "nte").. ",<br/>".. p.wiki(radice.. "ntī").."<sup><small>1</small></sup>"; abl_s_n = p.wiki(radice.. "nte").. ",<br/>".. p.wiki(radice.. "ntī").."<sup><small>1</small></sup>"
--PLURALI
nom_p_m = p.wiki(radice.. "ntes"); nom_p_n = p.wiki(radice.. "ntĭa");
gen_p_m = p.wiki(radice.. "ntĭum"); gen_p_n = p.wiki(radice.. "ntĭum");
dat_p_m = p.wiki(radice.. "ntĭbus"); dat_p_n = p.wiki(radice.. "ntĭbus");
acc_p_m = p.wiki(radice.. "ntes"); acc_p_n = p.wiki(radice.. "ntĭa");
voc_p_m = p.wiki(radice.. "ntes"); voc_p_n = p.wiki(radice.. "ntĭa");
abl_p_m = p.wiki(radice.. "ntĭbus"); abl_p_n = p.wiki(radice.. "ntĭbus")
else --per tutti gli altri, declinazione a tre uscite -us -a -um
--SINGOLARI
nom_s_m = p.wiki(radice.. "us"); nom_s_f = p.wiki(radice.. "ă"); nom_s_n = p.wiki(radice.. "um");
gen_s_m = p.wiki(radice.. "ī"); gen_s_f = p.wiki(radice.. "ae"); gen_s_n = p.wiki(radice.. "ī");
dat_s_m = p.wiki(radice.. "ō"); dat_s_f = p.wiki(radice.. "ae"); dat_s_n = p.wiki(radice.. "ō");
acc_s_m = p.wiki(radice.. "ŭm"); acc_s_f = p.wiki(radice.. "ăm"); acc_s_n = p.wiki(radice.. "um");
voc_s_m = p.wiki(radice.. "ĕ"); voc_s_f = p.wiki(radice.. "ă"); voc_s_n = p.wiki(radice.. "um");
abl_s_m = p.wiki(radice.. "ō"); abl_s_f = p.wiki(radice.. "ā"); abl_s_n = p.wiki(radice.. "ō");
--PLURALI
nom_p_m = p.wiki(radice.. "ī"); nom_p_f = p.wiki(radice.. "ae"); nom_p_n = p.wiki(radice.. "ă");
gen_p_m = p.wiki(radice.. "ōrum"); gen_p_f = p.wiki(radice.. "ārum"); gen_p_n = p.wiki(radice.. "ōrum");
dat_p_m = p.wiki(radice.. "īs"); dat_p_f = p.wiki(radice.. "īs"); dat_p_n = p.wiki(radice.. "īs");
acc_p_m = p.wiki(radice.. "ōs"); acc_p_f = p.wiki(radice.. "ās"); acc_p_n = p.wiki(radice.. "ă");
voc_p_m = p.wiki(radice.. "ī"); voc_p_f = p.wiki(radice.. "ae"); voc_p_n = p.wiki(radice.. "ă");
abl_p_m = p.wiki(radice.. "īs"); abl_p_f = p.wiki(radice.. "īs"); abl_p_n = p.wiki(radice.. "īs");
end
--stringa "descrizione", genera una breve descrizione in cima alla tabella
if tempo == "pres" then
descrizione = "participio presente<br><small>aggettivo di II classe</small>"
elseif tempo == "perf" then
descrizione = "participio perfetto<br><small>aggettivo di I classe</small>"
elseif tempo == "fut" then
descrizione = "participio futuro<br><small>aggettivo di I classe</small>"
elseif tempo == "ger" then
descrizione = "gerundivo<br><small>aggettivo di I classe</small>"
end
--stringa "categoria", aggiunge le relative categorie al lemma
categoriaaggettivo = ""
if tempo == "pres" then
categoria = "[[Categoria:Participi presenti in latino]]"
elseif tempo == "perf" then
categoria = "[[Categoria:Participi perfetti in latino]]"
elseif tempo == "fut" then
categoria = "[[Categoria:Participi futuri in latino]]"
elseif tempo == "ger" then
categoria = "[[Categoria:Gerundivi in latino]]"
end
if aggettivo == "si" then
if tempo == "pres" then categoriaaggettivo = "[[Categoria:Aggettivi di II classe in latino]]"
elseif tempo == "perf" or tempo == "fut" or tempo == "ger" then categoriaaggettivo = "[[Categoria:Aggettivi di I classe in latino]]"
end
end
--costruisce le tabelle di coniugazione; attenzione che sono due tabelle distinte per i participi presenti a due uscite e per tutti gli altri a tre
if tempo == "pres" then --TABELLA A DUE COLONNE
decl = [[{|border="1" cellpadding="2" style="float:right; margin:1em 1em 1em 0;background:#f0fff0;color:#000;border:1px #aaaaaa solid;border-collapse:collapse"]].."\n"
decl = decl.. "|+".. descrizione.. categoria .. categoriaaggettivo .. "\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center""|'''singolare''']].."\n"
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''masc./fem.'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''neutro'']].."\n"
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''nominativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''genitivo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''dativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''accusativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''vocativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''ablativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center""|'''plurale''']].."\n"
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''masc./fem.'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''neutro'']].."\n"
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''nominativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''genitivo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''dativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''accusativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''vocativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''ablativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4; style="text-align:center"|<small><sup>1</sup>solo quando usato come aggettivo</small>]].."\n"
decl = decl.. "|-".."\n"
decl = decl.. "|}"
else --TABELLA A TRE COLONNE
decl = [[{|border="1" cellpadding="2" style="float:right; margin:1em 1em 1em 0;background:#f0fff0;color:#000;border:1px #aaaaaa solid;border-collapse:collapse"]].."\n"
decl = decl.. "|+".. descrizione .. categoria .. categoriaaggettivo .. "\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4 bgcolor="#add8e6" color="#000" style="text-align:center"|'''singolare''']].."\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''maschile'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''femminile'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''neutro'']].."\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''nominativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''genitivo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''dativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''accusativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''ablativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center"|'''plurale''']].."\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''maschile'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''femminile'']].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''neutro'']].."\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''nominativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''genitivo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''dativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''accusativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_n.. '\n'
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''ablativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_n.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. "|}"
end
return decl
end
function p.wiki(x)
-- Utilizzato all'interno della funzione ladecl
if x == nil then return " " end
if x == "" then return " " end
-- aggiunge la categoria link rossi
if x >= "0" then
local y = noaccenti(x)
if mw.title.new(y).exists == false then
RedCat = "[[Categoria:Aggettivi latini con forme da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]]"
else
RedCat = ""
end
-- Rende il suo argomento un wikilink, restituendo ad es. "[[laudo#Latino|lăudō]], o lo rende nullo se non definito (per facilitare la concatenazione)
if y == mw.title.getCurrentTitle().text then return "'''".. x.. "'''"
else return "[[" .. y .. "#Latino|" .. x .. "]]".. RedCat end
else
return " "
end
end
return p