Mòdul:la-lema
Salta a la navegació
Salta a la cerca
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Aquest mòdul presenta l'enunciat d'un lema en llatí, incloent les categories corresponents ordenades. Dóna suport a les plantilles {{la-nom}}, {{la-verb}} i {{la-adj}}. Vegeu la documentació de les plantilles per a la seva utilització.
El mòdul es basa en Mòdul:lema pel format general d'un lema. S'invoca amb una única funció flex
amb l'argument apropiat. Exemple: {{#invoke:la-lema|flex|Verbs}}
local export = {}
local pos_functions = {}
local m_lema = require("Mòdul:lema")
local m_link = require("Mòdul:enllaç")
local function format_infl_classes(infl_classes)
if #infl_classes < 1 then
return ""
end
return "; ''" .. table.concat(infl_classes, "/") .. "''"
end
-- Format pels enunciats de llatí
local function format_la_enunciat(data, declinacions)
if #declinacions.enunciat > 0 then
local headwords = {}
for j, headword in ipairs(declinacions.enunciat) do
local data_enunciat = {lang = "la", sc = "Latn"}
data_enunciat.heads = m_link.language_link({term = headword[1], alt = headword.alt, langcode = "la"}, false)
data_enunciat.genders = headword.genders
data_enunciat.categories = data.categories
if j == #declinacions.enunciat and not headword.label then
data_enunciat.inflections = data.inflections
table.insert(headwords, m_lema.full_headword(data_enunciat))
else
data_enunciat.inflections = {headword.label and {label=headword.label}}
table.insert(headwords, m_lema.full_headword(data_enunciat))
end
data.categories = {}
end
return table.concat(headwords, ", ") .. format_infl_classes(declinacions.infl_classes)
end
return m_lema.full_headword(data) .. format_infl_classes(declinacions.infl_classes)
end
-- Treu una llista de formes per poder interpretar automàticament
local function make_bot_list(forms)
local ret = ""
for _, form in ipairs(forms) do
if not (form.label:find("^1a") or form.label:find("^present")) then
local form_title = m_link.sense_diacritics("la", form[1])
ret = ret .. "* " .. form.label .. "=" .. form_title .. "(" .. form[1] .. ")\n"
end
end
return ret
end
-- Funció d'entrada per mostrar l'enunciat del lema, l'única que s'invoca des d'una plantilla
function export.flex(frame)
local args = frame:getParent().args
pagename = args.pagename
if not pagename or pagename == "" then
pagename = mw.title.getCurrentTitle().subpageText
end
local data = {lang = "la", sc = "Latn", heads = {}, genders = {}, inflections = {}, categories = {}}
local declinacions = {enunciat = {}, infl_classes = {}, declinacio = {}}
local lema = args.lema; if lema == "" then lema = nil end
local poscat = frame.args[1] or error("Falta especificar la categoria lèxica com a primer paràmetre.")
if pos_functions[poscat] then
local lema2 = pos_functions[poscat].func(args, data, declinacions)
lema = lema or lema2
else
table.insert(data.categories, poscat .. " en llatí")
end
table.insert(data.heads, lema)
if args.cat and args.cat ~= "" then
table.insert(data.categories, args.cat)
end
if args.bot then
if declinacions.declinacio.title then
local infl = {}
for key, form in pairs(declinacions.declinacio) do
if key ~= "title" then
table.insert(infl, {label = key, form})
end
end
return make_bot_list(infl)
elseif poscat == "Verbs" then
return make_bot_list(declinacions.enunciat)
end
else
return format_la_enunciat(data, declinacions) .. make_decl(declinacions.declinacio)
end
end
pos_functions["Noms propis"] = {func = function(args, data, declinacions)
local nominatiu = args[1]; if nominatiu == "" then nominatiu = pagename end
local genitiu = args[2]; if genitiu == "" then genitiu = nil end
local genere = args[3]; if genere == "" then genere = nil end
table.insert(data.genders, (genere and genere or "?"))
table.insert(data.categories, "Noms propis en llatí")
if genitiu then
table.insert(data.inflections, {label = "genitiu", genitiu})
nom_declina(nominatiu, genitiu, genere, data, declinacions, args, true)
end
return nominatiu
end
}
-- Informació per a substantius
pos_functions["Substantius"] = {func = function(args, data, declinacions)
local nominatiu = args[1]; if nominatiu == "" then nominatiu = pagename end
local genitiu = args[2]; if genitiu == "" then genitiu = nil end
local genere = args[3]; if genere == "" then genere = nil end
table.insert(data.genders, (genere and genere or "?"))
if mw.ustring.find(pagename, "[^ ]+ [^ ]+") then
table.insert(data.categories, "Locucions nominals en llatí")
else
table.insert(data.categories, "Substantius en llatí")
if genitiu then
table.insert(data.inflections, {label = "genitiu", genitiu})
nom_declina(nominatiu, genitiu, genere, data, declinacions, args)
end
end
return nominatiu
end
}
function nom_declina(nominatiu, genitiu, genere, data, declinacions, args, sing)
if args.sing then
sing = args.sing ~= "no" or false
end
-- Casos de declinació
if args.decl ~= "no" then
if (nominatiu:find("a$") and genitiu:find("ae$"))
or (nominatiu:find("ae$") and mw.ustring.find(genitiu, "ārum$"))
then
primera_decl(nominatiu, genitiu, data, declinacions, args, sing)
elseif (nominatiu:find("ē$") and genitiu:find("ēs$"))
or (nominatiu:find("[āē]s$") and genitiu:find("ae$"))
then
primera_decl_grega(nominatiu, genitiu, data, declinacions, args, sing)
elseif (nominatiu:find("er$") and genitiu:find("ī$"))
or (nominatiu:find("rī$") and genitiu:find("rōrum$"))
or (nominatiu:find("vir$") and genitiu:find("virī$"))
then
segona_decl_er(nominatiu, genitiu, data, declinacions, args, sing)
elseif (nominatiu:find("[uo]s$") and genitiu:find("ī$") and genere ~= "n")
or (nominatiu:find("ī$") and genitiu:find("ōrum$"))
then
segona_decl_us(nominatiu, genitiu, data, declinacions, args, sing)
elseif (nominatiu:find("us$") and genitiu:find("ī$") and genere == "n")
or ((nominatiu:find("um$") or nominatiu:find("on$")) and genitiu:find("ī$"))
or (nominatiu:find("a$") and genitiu:find("ōrum$"))
then
segona_decl_um(nominatiu, genitiu, data, declinacions, args, sing)
elseif genitiu:find("[io]s$") or genitiu:find("um$") then
-- 3a declinació
local tema_i = require("Mòdul:utilitats").llista({"cos", "dos", "lis", "imber", "linter", "venter", "uter"})
if genere ~= "n" then
if genitiu:find("ium$") then
tercera_decl_mf(nominatiu, genitiu, data, declinacions, args, "i", sing)
elseif nominatiu == "canis" or nominatiu == "juvenis" or genitiu:find("[^i]um$") then
tercera_decl_mf(nominatiu, genitiu, data, declinacions, args, "c", sing)
elseif (nominatiu:find("[eēi]s$") and genitiu == mw.ustring.gsub(nominatiu, "[eēi]s$", "is"))
or (nominatiu:find("[sx]$") and genitiu:find("[^aāeēiīoōuū][^aāeēiīoōuū]is$"))
or tema_i[nominatiu]
then
tercera_decl_mf(nominatiu, genitiu, data, declinacions, args, "i", sing)
else
tercera_decl_mf(nominatiu, genitiu, data, declinacions, args, "c", sing)
end
else
if nominatiu:find("e$") or nominatiu:find("a[lr]$") then
tercera_decl_n(nominatiu, genitiu, data, declinacions, args, "i", sing)
else
tercera_decl_n(nominatiu, genitiu, data, declinacions, args, "c", sing)
end
end
elseif mw.ustring.find(genitiu, "ūs$") then
quarta_decl(nominatiu, genitiu, data, declinacions, args, sing)
elseif mw.ustring.find(genitiu, "[eē]ī$") then
cinquena_decl(nominatiu, genitiu, data, declinacions, args, sing)
else
-- declinació desconeguda
end
declinacions.declinacio.title = args.decl or declinacions.declinacio.title
local casos = {"nom", "voc", "ac", "gen", "dat", "abl", "loc"}
for i, cas in ipairs(casos) do
declinacions.declinacio[cas .. "s"] = args[cas .. "s"] or declinacions.declinacio[cas .. "s"]
declinacions.declinacio[cas .. "s2"] = args[cas .. "s2"] or declinacions.declinacio[cas .. "s2"]
declinacions.declinacio[cas .. "p"] = args[cas .. "p"] or declinacions.declinacio[cas .. "p"]
declinacions.declinacio[cas .. "p2"] = args[cas .. "p2"] or declinacions.declinacio[cas .. "p2"]
end
end
return
end
function primera_decl(nominatiu, genitiu, data, declinacions, args, sing)
declinacions.declinacio.title = "[[Viccionari:Primera declinació en llatí|1a declinació]] -a, -ae"
local arrel = nominatiu:gsub("ae?$", "")
if not nominatiu:find("ae$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = arrel .. "am"
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = arrel .. "ae"
declinacions.declinacio.abls = arrel .. "ā"
if args.loc then declinacions.declinacio.locs = arrel .. "ae" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. "ae"
declinacions.declinacio.vocp = arrel .. "ae"
declinacions.declinacio.acp = arrel .. "ās"
declinacions.declinacio.genp = arrel .. "ārum"
declinacions.declinacio.datp = arrel .. "īs"
declinacions.declinacio.ablp = arrel .. "īs"
if args.loc then declinacions.declinacio.locp = arrel .. "īs" end
end
end
function primera_decl_grega(nominatiu, genitiu, data, declinacions, args, sing)
local noms_as = (mw.ustring.sub(nominatiu, -2) == "ās")
if mw.ustring.sub(genitiu, -2) == "ēs" then
declinacions.declinacio.title = "[[Viccionari:Primera declinació en llatí|1a declinació]] -ē, -ēs (grega)"
elseif noms_as then
declinacions.declinacio.title = "[[Viccionari:Primera declinació en llatí|1a declinació]] -ās, -ae (grega)"
else
declinacions.declinacio.title = "[[Viccionari:Primera declinació en llatí|1a declinació]] -ēs, -ae (grega)"
end
local arrel = mw.ustring.sub(genitiu, 1, -3)
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = arrel .. (noms_as and "ā" or "ē")
declinacions.declinacio.acs = arrel .. (noms_as and "ān" or "ēn")
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = arrel .. "ae"
declinacions.declinacio.abls = arrel .. (noms_as and "ā" or "ē")
if args.loc then declinacions.declinacio.locs = arrel .. "ae" end
if not sing then
declinacions.declinacio.nomp = arrel .. "ae"
declinacions.declinacio.vocp = arrel .. "ae"
declinacions.declinacio.acp = arrel .. "ās"
declinacions.declinacio.genp = arrel .. "ārum"
declinacions.declinacio.datp = arrel .. "īs"
declinacions.declinacio.ablp = arrel .. "īs"
if args.loc then declinacions.declinacio.locp = arrel .. "īs" end
end
end
function segona_decl_us(nominatiu, genitiu, data, declinacions, args, sing)
declinacions.declinacio.title = "[[Viccionari:Segona declinació en llatí|2a declinació]] -us, -ī"
local arrel = genitiu:gsub("ī$", ""):gsub("ōrum$", "")
local ius = nominatiu:find("ius$")
local grega = nominatiu:find("os$")
local arrel_i = genitiu:gsub("iī$", "ī")
if not genitiu:find("ōrum$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = ius and arrel_i or (arrel .. "e")
if grega then
declinacions.declinacio.acs = arrel .. "on"
declinacions.declinacio.acs2 = arrel .. "um"
else
declinacions.declinacio.acs = arrel .. "um"
end
declinacions.declinacio.gens = genitiu
if ius then
declinacions.declinacio.gens2 = arrel_i
end
declinacions.declinacio.dats = arrel .. "ō"
declinacions.declinacio.abls = arrel .. "ō"
if args.loc then declinacions.declinacio.locs = arrel .. "ī" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. "ī"
declinacions.declinacio.vocp = arrel .. "ī"
declinacions.declinacio.acp = arrel .. "ōs"
declinacions.declinacio.genp = arrel .. "ōrum"
declinacions.declinacio.datp = arrel .. "īs"
declinacions.declinacio.ablp = arrel .. "īs"
if args.loc then declinacions.declinacio.locp = arrel .. "īs" end
end
end
function segona_decl_er(nominatiu, genitiu, data, declinacions, args, sing)
declinacions.declinacio.title = "[[Viccionari:Segona declinació en llatí|2a declinació]] (e)r-, -ī"
local arrel = genitiu:gsub("ī$", ""):gsub("ōrum$", "")
if not genitiu:find("ōrum$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = arrel .. "um"
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = arrel .. "ō"
declinacions.declinacio.abls = arrel .. "ō"
if args.loc then declinacions.declinacio.locs = arrel .. "ī" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. "ī"
declinacions.declinacio.vocp = arrel .. "ī"
declinacions.declinacio.acp = arrel .. "ōs"
declinacions.declinacio.genp = arrel .. "ōrum"
declinacions.declinacio.datp = arrel .. "īs"
declinacions.declinacio.ablp = arrel .. "īs"
if args.loc then declinacions.declinacio.locp = arrel .. "īs" end
end
end
function segona_decl_um(nominatiu, genitiu, data, declinacions, args, sing)
declinacions.declinacio.title = "[[Viccionari:Segona declinació en llatí|2a declinació]] -um, -ī"
local arrel = genitiu:gsub("ī$", ""):gsub("ōrum$", "")
--local ium = nominatiu:find("ium$")
local arrel_i = genitiu:gsub("iī$", "ī")
if not genitiu:find("ōrum$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = nominatiu
declinacions.declinacio.gens = genitiu
--if ium then
-- declinacions.declinacio.gens2 = arrel_i
--end
declinacions.declinacio.dats = arrel .. "ō"
declinacions.declinacio.abls = arrel .. "ō"
if args.loc then declinacions.declinacio.locs = arrel .. "ī" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. "a"
declinacions.declinacio.vocp = arrel .. "a"
declinacions.declinacio.acp = arrel .. "a"
declinacions.declinacio.genp = arrel .. "ōrum"
declinacions.declinacio.datp = arrel .. "īs"
declinacions.declinacio.ablp = arrel .. "īs"
if args.loc then declinacions.declinacio.locp = arrel .. "īs" end
end
end
function tercera_decl_mf(nominatiu, genitiu, data, declinacions, args, tema, sing)
declinacions.declinacio.title = "[[Viccionari:Tercera declinació en llatí|3a declinació]] -, -is (tema " .. (tema == "i" and "i" or "cons.") .. ")"
local arrel = genitiu:gsub("[io]s$", ""):gsub("i?um$", "")
if not genitiu:find("um$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = arrel .. "em"
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = arrel .. "ī"
declinacions.declinacio.abls = arrel .. "e"
if args.loc then declinacions.declinacio.locs = arrel .. "e" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. "ēs"
declinacions.declinacio.vocp = arrel .. "ēs"
declinacions.declinacio.acp = arrel .. "ēs"
declinacions.declinacio.genp = arrel .. (tema == "i" and "i" or "") .. "um"
declinacions.declinacio.datp = arrel .. "ibus"
declinacions.declinacio.ablp = arrel .. "ibus"
if args.loc then declinacions.declinacio.locp = arrel .. "ibus" end
end
end
function tercera_decl_n(nominatiu, genitiu, data, declinacions, args, tema, sing)
declinacions.declinacio.title = "[[Viccionari:Tercera declinació en llatí|3a declinació]] -, -is (tema " .. (tema == "i" and "i" or "cons.") .. ")"
local arrel = genitiu:gsub("is$", ""):gsub("i?um$", "")
local arrel_i = arrel .. (tema == "i" and "i" or "")
if not genitiu:find("um$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = nominatiu
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = arrel .. "ī"
declinacions.declinacio.abls = arrel .. (tema == "i" and "ī" or "e")
if args.loc then declinacions.declinacio.locs = arrel .. "ī" end
end
if not sing then
declinacions.declinacio.nomp = arrel_i .. "a"
declinacions.declinacio.vocp = arrel_i .. "a"
declinacions.declinacio.acp = arrel_i .. "a"
declinacions.declinacio.genp = arrel_i .. "um"
declinacions.declinacio.datp = arrel .. "ibus"
declinacions.declinacio.ablp = arrel .. "ibus"
if args.loc then declinacions.declinacio.locp = arrel .. "ibus" end
end
end
function quarta_decl(nominatiu, genitiu, data, declinacions, args, sing)
local neutre = nominatiu:find("ū$")
declinacions.declinacio.title = "[[Viccionari:Quarta declinació en llatí|4a declinació]] -" .. (neutre and "ū" or "us") .. ", -ūs"
local arrel = genitiu:gsub("ūs$", ""):gsub("uum$", "")
if not nominatiu:find("ūs$") then
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = neutre and nominatiu or arrel .. "um"
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = neutre and nominatiu or arrel .. "uī"
declinacions.declinacio.abls = arrel .. "ū"
if args.loc then declinacions.declinacio.locs = arrel .. "ū" end
end
if not sing then
declinacions.declinacio.nomp = arrel .. (neutre and "ua" or "ūs")
declinacions.declinacio.vocp = arrel .. (neutre and "ua" or "ūs")
declinacions.declinacio.acp = arrel .. (neutre and "ua" or "ūs")
declinacions.declinacio.genp = arrel .. "uum"
declinacions.declinacio.datp = arrel .. "ibus"
declinacions.declinacio.ablp = arrel .. "ibus"
if args.loc then declinacions.declinacio.locp = arrel .. "ibus" end
end
end
function cinquena_decl(nominatiu, genitiu, data, declinacions, args, sing)
declinacions.declinacio.title = "[[Viccionari:Cinquena declinació en llatí|5a declinació]] -es, -eī"
local arrel = mw.ustring.gsub(genitiu, "[eē]ī$", "")
declinacions.declinacio.noms = nominatiu
declinacions.declinacio.vocs = nominatiu
declinacions.declinacio.acs = arrel .. "em"
declinacions.declinacio.gens = genitiu
declinacions.declinacio.dats = genitiu
declinacions.declinacio.abls = arrel .. "ē"
if args.loc then declinacions.declinacio.locs = arrel .. "ē" end
if not sing then
declinacions.declinacio.nomp = arrel .. "ēs"
declinacions.declinacio.vocp = arrel .. "ēs"
declinacions.declinacio.acp = arrel .. "ēs"
if nominatiu == "diēs" or nominatiu == "rēs" then
declinacions.declinacio.genp = arrel .. "ērum"
declinacions.declinacio.datp = arrel .. "ēbus"
declinacions.declinacio.ablp = arrel .. "ēbus"
if args.loc then declinacions.declinacio.locp = arrel .. "ēbus" end
end
end
end
local function make_link(declinacio, cas)
local ret = '-'
if declinacio[cas] ~= nil and declinacio[cas] ~= "" then
ret = m_link.full_link({term = declinacio[cas], langcode = "la", sc = "Latn"}, nil, false)
if declinacio[cas .. "2"] ~= nil and declinacio[cas .. "2"] ~= "" then
ret = ret .. "<br />" .. m_link.full_link({term = declinacio[cas .. "2"], langcode = "la", sc = "Latn"}, nil, false)
end
end
return ret
end
function make_decl(declinacio) -- Taula de declinació
local ret = ""
if declinacio.title then
local hiha_loc = declinacio.locs or declinacio.locp
ret = [=[
{| class="wikitable" style="margin-left: 0.5em; margin-top: -1.5em; float: right; font-size: 90%;"
|-
| colspan="3" style="background:#ccccff; text-align:center;" | ]=] .. declinacio.title .. [=[
|- style="background:#EEEEEE"
| ''Cas''
| style="text-align:center;" | ''Singular''
| style="text-align:center;" | ''Plural''
|-
| style="background:#EEEEEE" | ''Nominatiu''
| ]=] .. make_link(declinacio, "noms") .. [=[
| ]=] .. make_link(declinacio, "nomp") .. [=[
|-
| style="background:#EEEEEE" | ''Vocatiu''
| ]=] .. make_link(declinacio, "vocs") .. [=[
| ]=] .. make_link(declinacio, "vocp") .. [=[
|-
| style="background:#EEEEEE" | ''Acusatiu''
| ]=] .. make_link(declinacio, "acs") .. [=[
| ]=] .. make_link(declinacio, "acp") .. [=[
|-
| style="background:#EEEEEE" | ''Genitiu''
| ]=] .. make_link(declinacio, "gens") .. [=[
| ]=] .. make_link(declinacio, "genp") .. [=[
|-
| style="background:#EEEEEE" | ''Datiu''
| ]=] .. make_link(declinacio, "dats") .. [=[
| ]=] .. make_link(declinacio, "datp") .. [=[
|-
| style="background:#EEEEEE" | ''Ablatiu''
| ]=] .. make_link(declinacio, "abls") .. [=[
| ]=] .. make_link(declinacio, "ablp") .. [=[
]=] .. (hiha_loc and '|-' .. [=[
| style="background:#EEEEEE" | ''Locatiu''
| ]=] .. make_link(declinacio, "locs") .. [=[
| ]=] .. make_link(declinacio, "locp") or "") .. [=[
|}]=]
end
return ret
end
-- Informació de verbs
pos_functions["Verbs"] = {func = function(args, data, declinacions)
-- tipus d'enunciat: 5,4,3 formes p1-p2-i-pp-s amb p2,i opcionals; deponents sense supí
-- formes en parells sense i amb diacrítics o úniques amb diacrítics
local present1, present2, infinitiu, perfet, supi
if args[10] then -- 5 formes (p1-p2-i-pp-s) amb diacrítics
present1 = args[2]
present2 = args[4]
infinitiu = args[6]
perfet = args[8]
supi = args[10]
elseif args[8] then -- 4 formes amb diacrítics
if args[8]:find(" sum$") then -- deponent p1-p2-i-pp
present1 = args[2]
present2 = args[4]
infinitiu = args[6]
perfet = args[8]
else -- normal p-i-pp-s
present1 = args[2]
infinitiu = args[4]
perfet = args[6]
supi = args[8]
end
elseif args[6] then -- 3 formes amb diacrítics
if args[6]:find(" sum$") then -- deponent p1-i-pp
present1 = args[2]
infinitiu = args[4]
perfet = args[6]
else -- normal p1-pp-s
present1 = args[2]
perfet = args[4]
supi = args[6]
end
elseif args[5] then -- p1-p2-i-pp-s
present1 = args[1]
present2 = args[2]
infinitiu = args[3]
perfet = args[4]
supi = args[5]
elseif args[4] then
if args[4]:find(" sum$") then -- deponent p1-p2-i-pp
present1 = args[1]
present2 = args[2]
infinitiu = args[3]
perfet = args[4]
else -- normal p-i-pp-s
present1 = args[1]
infinitiu = args[2]
perfet = args[3]
supi = args[4]
end
elseif args[3] then -- 3 formes
if args[3]:find(" sum$") then -- deponent p1-i-pp
present1 = args[1]
infinitiu = args[2]
perfet = args[3]
else -- normal p1-pp-s
present1 = args[1]
perfet = args[2]
supi = args[3]
end
else
present1 = args[1]
table.insert(data.categories, "Manteniment plantilla la-verb")
end
nota = args.nota; if nota == "" then nota = nil end
if nota == nil and perfet ~= nil then
if perfet:find(" sum$") then
nota = "deponent"
end
end
if present1 == "" or present1 == nil then present1 = pagename end
if present2 == "" or present2 == "-" then present2 = nil end
if infinitiu == "" or infinitiu == "-" then infinitiu = nil end
if perfet == "" or perfet == "-" then perfet = nil end
if supi == "" or supi == "-" then supi = nil end
if pagename:find(" ") then
table.insert(data.categories, "Locucions verbals en llatí")
else
table.insert(data.categories, "Verbs en llatí")
end
local nota_present = '<sup style="margin-left:0.3em; color:blue; cursor:help;" title="Com a enunciat verbal es tradueix per l\'infinitiu. Estrictament és la 1a persona singular del present d\'indicatiu actiu">?</sup>'
if present2 then
table.insert(declinacions.enunciat, {label = "1a present" .. nota_present, present1})
table.insert(declinacions.enunciat, {label = "2a present", present2})
else
table.insert(declinacions.enunciat, {label = "present" .. nota_present, present1})
end
if infinitiu then
table.insert(declinacions.enunciat, {label = "infinitiu", infinitiu})
end
if perfet then
table.insert(declinacions.enunciat, {label = "perfet", perfet:gsub(" sum$", ""), alt = perfet})
end
if supi then
table.insert(declinacions.enunciat, {label = "supí", supi})
end
if nota then
table.insert(declinacions.infl_classes, nota)
end
-- Comprovació de flexions existents
for _, form in pairs(declinacions.enunciat) do
if not string.find(form[1], "[", 1, true) then
local form_title = m_link.sense_diacritics("la", form[1])
if not mw.title.new(form_title).exists then
table.insert(data.categories, "Termes en llatí amb flexions a crear")
break
end
end
end
return present1
end
}
-- Informació d'adjectius
pos_functions["Adjectius"] = {func = function(args, data, declinacions)
-- tipus d'enunciat: 3, 2, 1 terminacions
if args[3] then
table.insert(declinacions.enunciat, {genders = {"m"}, args[1]})
table.insert(declinacions.enunciat, {genders = {"f"}, args[2]})
table.insert(declinacions.enunciat, {genders = {"n"}, args[3]})
elseif args[2] then
if args[2]:find("is$") then
table.insert(data.genders, "m-f-n")
table.insert(data.inflections, {label = "genitiu", args[2]})
else
table.insert(declinacions.enunciat, {genders = {"m", "f"}, args[1]})
table.insert(declinacions.enunciat, {genders = {"n"}, args[2]})
end
else
table.insert(data.genders, "?")
table.insert(data.categories, "Manteniment plantilla la-adj")
end
if args.comp then
table.insert(data.inflections, {label = "comparatiu", args.comp})
end
if args.sup then
table.insert(data.inflections, {label = "superlatiu", args.sup})
end
if mw.ustring.find(pagename, "[^ ]+ [^ ]+") then
table.insert(data.categories, "Locucions adjectivals en llatí")
return nil
else
table.insert(data.categories, "Adjectius en llatí")
end
return args[1]
end
}
return export