Modulo:La-decl-pronpers
Aspetto
Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:La-decl-pronpers/man (modifica • cronologia)
Sandbox: Modulo:La-decl-pronpers/Sandbox (modifica•cronologia) • Test: Modulo:La-decl-pronpers/Test (modifica•cronologia)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:La-decl-pronpers/man (modifica • cronologia)
Sandbox: Modulo:La-decl-pronpers/Sandbox (modifica•cronologia) • Test: Modulo:La-decl-pronpers/Test (modifica•cronologia)
Questo modulo costituisce il codice di funzionamento del Template:La-decl-pronpers e crea la tabella di declinazione degli aggettivi latini.
È stato creato per scorporo dal Modulo:La-decl-pron, per non appesantire eccessivamente il codice di quest’ultimo.
In base al parametro passato dal template (ego, tu eccetera) crea le forme flesse corrispondenti e le inserisce nella tabella di declinazione.
local p = {}
function p.ladecl(frame)
local noaccenti = require("Modulo:Latino").noaccenti --richiama il [[Modulo:Latino]], da utilizzarsi sotto per eliminare gli accenti
nominativo = frame.args[1]
if nominativo == "ego" then
nom = p.wiki("egō"); gen = p.wiki("meī"); dat = p.wiki("mihī"); dat2 = p.wiki("mī"); dat = p.alts(dat, dat2); acc = p.wiki("mē"); abl = p.wiki("mē")
elseif nominativo == "tu" then
nom = p.wiki("tū"); gen = p.wiki("tuī"); dat = p.wiki("tibi"); acc = p.wiki("tē"); abl = p.wiki("tē")
elseif nominativo == "nos" then
nom = p.wiki("nōs"); gen = p.wiki("nostrī"); gen2 = p.wiki("nostrum"); gen = p.alts(gen,gen2); dat = p.wiki("nōbīs"); acc = p.wiki("nōs"); abl = p.wiki("nōbīs")
elseif nominativo == "vos" then
nom = p.wiki("vōs"); gen = p.wiki("vestrī"); gen2 = p.wiki("vestrum"); gen = p.alts(gen,gen2); dat = p.wiki("vōbīs"); acc = p.wiki("vōs"); abl = p.wiki("vōbīs")
end
descrizione = "Pronome personale"
categoria = "[[Categoria:Pronomi in latino]]" .. "[[Categoria:Pronomi personali in latino]]"
-- COSTRUISCE LA TABELLA
if maschile == "ego" or "tu" then singplur = "singolare"
else singplur = "plurale" end
decl = [[{|border="1" cellpadding="2" style="float:right; margin:1em 1em 1em 0;background:#f0fff0;border:1px #aaaaaa solid;border-collapse:collapse"]].."\n"
decl = decl.. "|+".. descrizione .. categoria .. "\n"
decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
decl = decl.. [[|colspan=4; bgcolor="#add8e6"; style="text-align:center""|''']] ..singplur ..[[''']].."\n"
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" style="border: 1px solid #f0fff0;| ''nominativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" style="border: 1px solid #f0fff0;| ''genitivo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" style="border: 1px solid #f0fff0;| ''dativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" style="border: 1px solid #f0fff0;| ''accusativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. [[!bgcolor="#87cefa" style="border: 1px solid #f0fff0;| ''ablativo'']].."\n"
decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl.. '\n'
decl = decl.. "|-".."\n"
decl = decl.. "|}"
return decl
end
function p.wiki(x)
-- Utilizzato all'interno della funzione principale
local noaccenti = require("Modulo:Latino").noaccenti
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
function p.alts(x,y)
-- Utilizzato all'interno della funzione principale
-- 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 >= "0" then return x .. ", " .. y end
return x
end
return p