Module:La-adj/data
local decl = {}
local lang = require("Module:languages").getByCode("la")
local m_links = require("Module:links")
local m_utilities = require("Module:utilities")
local rmatch = mw.ustring.match
NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText
local function glossary_link(anchor, text)
text = text or anchor
return "[[Appendix:Glossary#" .. anchor .. "|" .. text .. "]]"
end
local function decl_link(english_declension, decl_text)
decl_text = decl_text or english_declension .. "-declension"
return "[[Appendix:Latin " .. english_declension .. " declension|" .. decl_text .. "]]"
end
local function singularize(plural)
-- THIS IS A HACK. We may be passed the word "suffix", where we need to remove
-- the -es. We also include words ending in -ch or -sh for good measure.
-- In most other cases we need to remove only the -s.
if plural:find("xes$") or plural:find("[cs]hes$") then
return plural:gsub("es$", "")
else
return plural:gsub("s$", "")
end
end
decl["0"] = function(data, args)
data.title = glossary_link("indeclinable") .. " " .. singularize(data.pos)
local stem = args[1]
data.forms["nom_sg_m"] = stem
data.forms["nom_pl_m"] = stem
data.forms["gen_sg_m"] = stem
data.forms["gen_pl_m"] = stem
data.forms["dat_sg_m"] = stem
data.forms["dat_pl_m"] = stem
data.forms["acc_sg_m"] = stem
data.forms["acc_pl_m"] = stem
data.forms["abl_sg_m"] = stem
data.forms["abl_pl_m"] = stem
data.forms["loc_sg_m"] = stem
data.forms["loc_pl_m"] = stem
data.forms["voc_sg_m"] = stem
data.forms["voc_pl_m"] = stem
table.insert(data.categories, "Latin indeclinable " .. data.pos)
end
decl["1&2"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender == "F" then
data.title = decl_link("first") .. " " .. singpos
elseif data.gender then
data.title = decl_link("second") .. " " .. singpos
else
data.title = decl_link("first", "first") .. "/" .. decl_link("second") .. " " .. singpos
end
local stem = args[1]
local original = nil
if data.types.er then
if mw.ustring.match(stem, "er$") then
table.insert(data.subtitles, "nominative masculine singular in ''-er''")
table.insert(data.categories, "Latin first and second declension "
.. data.pos .. " with nominative masculine singular in -er")
elseif mw.ustring.match(stem, "ur$") then
table.insert(data.subtitles, "nominative masculine singular in ''-ur''")
table.insert(data.categories, "Latin first and second declension "
.. data.pos .. " with nominative masculine singular in -ur")
else
error("Unrecognized ''-r'' stem (doesn't end in ''-er'' or ''-ur''): " .. stem)
end
original = stem
stem = args[2]
end
local us = "us"
local a_sf = "a"
local um = "um"
local ae_gsf = "ae"
local am = "am"
local a_macron = "ā"
if data.types.greekA or data.types.greekE then
table.insert(data.subtitles, "Greek-type")
table.insert(data.categories, "Latin first and second declension " ..
data.pos .. " with Greek declension")
if data.types.greekA then
us = "os"
um = "on"
am = "ān"
else
us = "os"
a_sf = "ē"
um = "on"
ae_gsf = "ēs"
am = "ēn"
a_macron = "ē"
end
end
data.forms["nom_sg_m"] = original or (stem .. us)
data.forms["nom_sg_f"] = stem .. a_sf
data.forms["nom_sg_n"] = stem .. um
data.forms["nom_pl_m"] = stem .. "ī"
data.forms["nom_pl_f"] = stem .. "ae"
data.forms["nom_pl_n"] = stem .. "a"
data.forms["gen_sg_m"] = stem .. "ī"
data.forms["gen_sg_f"] = stem .. ae_gsf
data.forms["gen_sg_n"] = stem .. "ī"
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_f"] = stem .. "ārum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_sg_m"] = stem .. "ō"
data.forms["dat_sg_f"] = stem .. "ae"
data.forms["dat_sg_n"] = stem .. "ō"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["dat_pl_f"] = stem .. "īs"
data.forms["dat_pl_n"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. um
data.forms["acc_sg_f"] = stem .. am
data.forms["acc_sg_n"] = stem .. um
data.forms["acc_pl_m"] = stem .. "ōs"
data.forms["acc_pl_f"] = stem .. "ās"
data.forms["acc_pl_n"] = stem .. "a"
data.forms["abl_sg_m"] = stem .. "ō"
data.forms["abl_sg_f"] = stem .. a_macron
data.forms["abl_sg_n"] = stem .. "ō"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["abl_pl_f"] = stem .. "īs"
data.forms["abl_pl_n"] = stem .. "īs"
data.forms["voc_sg_m"] = original or (stem .. "e")
data.forms["voc_sg_f"] = stem .. a_sf
data.forms["voc_sg_n"] = stem .. um
data.forms["voc_pl_m"] = stem .. "ī"
data.forms["voc_pl_f"] = stem .. "ae"
data.forms["voc_pl_n"] = stem .. "a"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_f"] = stem .. "ae"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["loc_pl_f"] = stem .. "īs"
data.forms["loc_pl_n"] = stem .. "īs"
if data.types.ius then
table.insert(data.subtitles, "pronominal")
--table.insert(data.subtitles, "with genitive singular in ''-īus'' and dative singular in ''-ī''")
table.insert(data.categories, "Latin first and second declension " ..
data.pos .. " with genitive singular in -īus")
data.forms["gen_sg_m"] = stem .. "īus"
data.forms["gen_sg_f"] = stem .. "īus"
data.forms["gen_sg_n"] = stem .. "īus"
data.forms["dat_sg_m"] = stem .. "ī"
data.forms["dat_sg_f"] = stem .. "ī"
data.forms["dat_sg_n"] = stem .. "ī"
elseif data.types.not_ius then
table.insert(data.subtitles, "non-pronominal")
--table.insert(data.subtitles, "with normal genitive and dative singular")
end
if stem == "me" then
data.forms["voc_sg_m"] = "mī"
end
if data.types.ic then
table.insert(data.subtitles, "''hic''-type")
--table.insert(data.subtitles, "with genitive singular ending in ''-ius'' and dative singular ending in ''-ic''")
local oc = "oc"
local oc_macron = "ōc"
if stem == "ill" then
oc = "uc"
oc_macron = "ūc"
end
data.forms["nom_sg_m"] = stem .. "ic"
data.forms["nom_sg_f"] = stem .. "aec"
data.forms["nom_sg_n"] = stem .. oc
data.forms["nom_pl_n"] = stem .. "aec"
data.forms["gen_sg_m"] = {stem .. "uius", stem .. "ujus"}
data.forms["gen_sg_f"] = {stem .. "uius", stem .. "ujus"}
data.forms["gen_sg_n"] = {stem .. "uius", stem .. "ujus"}
data.forms["dat_sg_m"] = stem .. "uic"
data.forms["dat_sg_f"] = stem .. "uic"
data.forms["dat_sg_n"] = stem .. "uic"
data.forms["acc_sg_m"] = stem .. "unc"
data.forms["acc_sg_f"] = stem .. "anc"
data.forms["acc_sg_n"] = stem .. oc
data.forms["acc_pl_n"] = stem .. "aec"
data.forms["abl_sg_m"] = stem .. "ōc"
data.forms["abl_sg_f"] = stem .. "āc"
data.forms["abl_sg_n"] = stem .. oc_macron
data.voc = false
end
table.insert(data.categories, "Latin first and second declension " ..
data.pos)
end
decl["1-1"] = function(data, args)
data.title = decl_link("first") .. " " .. singularize(data.pos)
table.insert(data.subtitles, "masculine and neuter forms identical to feminine forms")
local stem = args[1]
data.forms["nom_sg_m"] = stem .. "a"
data.forms["nom_pl_m"] = stem .. "ae"
data.forms["gen_sg_m"] = stem .. "ae"
data.forms["gen_pl_m"] = stem .. "ārum"
data.forms["dat_sg_m"] = stem .. "ae"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. "am"
data.forms["acc_sg_n"] = stem .. "a"
data.forms["acc_pl_m"] = stem .. "ās"
data.forms["acc_pl_n"] = stem .. "ae"
data.forms["abl_sg_m"] = stem .. "ā"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["loc_sg_m"] = stem .. "ae"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["voc_sg_m"] = stem .. "a"
data.forms["voc_pl_m"] = stem .. "ae"
table.insert(data.categories, "Latin first declension " .. data.pos)
end
decl["2-2"] = function(data, args)
data.title = decl_link("second") .. " " .. singularize(data.pos)
table.insert(data.subtitles, "feminine forms identical to masculine forms")
local stem = args[1]
local us = "us"
local um = "um"
local i_pl = "ī"
if data.types.greek then
table.insert(data.subtitles, "Greek-type")
table.insert(data.categories, "Latin second declension " .. data.pos ..
" with Greek declension")
us = "os"
um = "on"
i_pl = "oe"
end
data.forms["nom_sg_m"] = stem .. us
data.forms["nom_sg_n"] = stem .. um
data.forms["nom_pl_m"] = stem .. i_pl
data.forms["nom_pl_n"] = stem .. "a"
data.forms["gen_sg_m"] = stem .. "ī"
data.forms["gen_sg_n"] = stem .. "ī"
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_sg_m"] = stem .. "ō"
data.forms["dat_sg_n"] = stem .. "ō"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["dat_pl_n"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. um
data.forms["acc_sg_n"] = stem .. um
data.forms["acc_pl_m"] = stem .. "ōs"
data.forms["acc_pl_n"] = stem .. "a"
data.forms["abl_sg_m"] = stem .. "ō"
data.forms["abl_sg_n"] = stem .. "ō"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["abl_pl_n"] = stem .. "īs"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["loc_pl_n"] = stem .. "īs"
data.forms["voc_sg_m"] = stem .. "e"
data.forms["voc_sg_n"] = stem .. um
data.forms["voc_pl_m"] = stem .. i_pl
data.forms["voc_pl_n"] = stem .. "a"
table.insert(data.categories, "Latin second declension " .. data.pos)
end
decl["3-1"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " one-termination " .. singpos
end
local stem1 = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem1
data.forms["nom_sg_n"] = stem1
data.forms["nom_pl_m"] = stem2 .. "ēs"
data.forms["nom_pl_n"] = stem2 .. "ia"
data.forms["gen_sg_m"] = stem2 .. "is"
data.forms["gen_sg_n"] = stem2 .. "is"
data.forms["gen_pl_m"] = stem2 .. "ium"
data.forms["gen_pl_n"] = stem2 .. "ium"
data.forms["dat_sg_m"] = stem2 .. "ī"
data.forms["dat_sg_n"] = stem2 .. "ī"
data.forms["dat_pl_m"] = stem2 .. "ibus"
data.forms["dat_pl_n"] = stem2 .. "ibus"
data.forms["acc_sg_m"] = stem2 .. "em"
data.forms["acc_sg_n"] = stem1
data.forms["acc_pl_m"] = stem2 .. "ēs"
data.forms["acc_pl_n"] = stem2 .. "ia"
data.forms["abl_sg_m"] = stem2 .. "ī"
data.forms["abl_sg_n"] = stem2 .. "ī"
data.forms["abl_pl_m"] = stem2 .. "ibus"
data.forms["abl_pl_n"] = stem2 .. "ibus"
data.forms["loc_sg_m"] = stem2 .. "ī"
data.forms["loc_sg_n"] = stem2 .. "ī"
data.forms["loc_pl_m"] = stem2 .. "ibus"
data.forms["loc_pl_n"] = stem2 .. "ibus"
data.forms["voc_sg_m"] = stem1
data.forms["voc_sg_n"] = stem1
data.forms["voc_pl_m"] = stem2 .. "ēs"
data.forms["voc_pl_n"] = stem2 .. "ia"
if data.types.par then
table.insert(data.subtitles, "non-i-stem")
data.forms["nom_pl_n"] = stem2 .. "a"
data.forms["gen_pl_m"] = stem2 .. "um"
data.forms["gen_pl_n"] = stem2 .. "um"
data.forms["abl_sg_m"] = stem2 .. "e"
data.forms["abl_sg_n"] = stem2 .. "e"
data.forms["loc_sg_m"] = {stem2 .. "ī", stem2 .. "e"}
data.forms["loc_sg_n"] = {stem2 .. "ī", stem2 .. "e"}
data.forms["acc_pl_n"] = stem2 .. "a"
data.forms["voc_pl_n"] = stem2 .. "a"
elseif data.types.not_par then
table.insert(data.subtitles, "i-stem")
end
local es_base = rmatch(stem1, "^(.*)ēs$")
if es_base and es_base == stem2 then
if data.types.greek then
local note = "It is unknown if Classical Latin preserved (or would have preserved) the shortness of the original Greek short ending."
data.forms["nom_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["nom_sg_n1"] = note
data.forms["acc_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["acc_sg_n1"] = note
data.forms["voc_sg_m"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["voc_sg_m1"] = note
data.forms["voc_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["voc_sg_n1"] = note
table.insert(data.subtitles, "Greek-type")
elseif data.types.not_greek then
table.insert(data.subtitles, "non-Greek-type")
end
end
table.insert(data.categories, "Latin third declension " .. data.pos)
end
decl["3-C"] = function(data, args)
local stem = args[1]
data.types.par = true
decl["3-1"](data, {stem .. "or", stem .. "ōr"})
data.title = decl_link("third") .. " comparative " .. singularize(data.pos)
data.subtitles = {}
data.forms["nom_sg_n"] = stem .. "us"
data.forms["acc_sg_n"] = stem .. "us"
data.forms["voc_sg_n"] = stem .. "us"
end
decl["3-P"] = function(data, args)
local stem1 = args[1]
local stem2 = args[2]
decl["3-1"](data, args)
data.title = decl_link("third") .. " participle"
data.forms["abl_sg_m"] = {stem2 .. "e", stem2 .. "ī"}
data.notes["abl_sg_m2"] = "When used purely as an adjective."
data.forms["abl_sg_n"] = {stem2 .. "e", stem2 .. "ī"}
data.notes["abl_sg_n2"] = "When used purely as an adjective."
data.forms["acc_pl_m"] = {stem2 .. "ēs", stem2 .. "īs"}
end
decl["3-2"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " two-termination " .. singpos
end
local stem = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem .. "is"
data.forms["nom_sg_n"] = stem .. "e"
data.forms["nom_pl_m"] = stem .. "ēs"
data.forms["nom_pl_n"] = stem .. "ia"
data.forms["gen_sg_m"] = stem .. "is"
data.forms["gen_sg_n"] = stem .. "is"
data.forms["gen_pl_m"] = stem .. "ium"
data.forms["gen_pl_n"] = stem .. "ium"
data.forms["dat_sg_m"] = stem .. "ī"
data.forms["dat_sg_n"] = stem .. "ī"
data.forms["dat_pl_m"] = stem .. "ibus"
data.forms["dat_pl_n"] = stem .. "ibus"
data.forms["acc_sg_m"] = stem .. "em"
data.forms["acc_sg_n"] = stem .. "e"
data.forms["acc_pl_m"] = {stem .. "ēs", stem .. "īs"}
data.forms["acc_pl_n"] = stem .. "ia"
data.forms["abl_sg_m"] = stem .. "ī"
data.forms["abl_sg_n"] = stem .. "ī"
data.forms["abl_pl_m"] = stem .. "ibus"
data.forms["abl_pl_n"] = stem .. "ibus"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "ibus"
data.forms["loc_pl_n"] = stem .. "ibus"
data.forms["voc_sg_m"] = stem .. "is"
data.forms["voc_sg_n"] = stem .. "e"
data.forms["voc_pl_m"] = stem .. "ēs"
data.forms["voc_pl_n"] = stem .. "ia"
table.insert(data.categories, "Latin third declension " .. data.pos)
end
decl["3-3"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " three-termination " .. singpos
end
local stem1 = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem1
data.forms["nom_sg_f"] = stem2 .. "is"
data.forms["nom_sg_n"] = stem2 .. "e"
data.forms["nom_pl_m"] = stem2 .. "ēs"
data.forms["nom_pl_f"] = stem2 .. "ēs"
data.forms["nom_pl_n"] = stem2 .. "ia"
data.forms["gen_sg_m"] = stem2 .. "is"
data.forms["gen_sg_f"] = stem2 .. "is"
data.forms["gen_sg_n"] = stem2 .. "is"
data.forms["gen_pl_m"] = stem2 .. "ium"
data.forms["gen_pl_f"] = stem2 .. "ium"
data.forms["gen_pl_n"] = stem2 .. "ium"
data.forms["dat_sg_m"] = stem2 .. "ī"
data.forms["dat_sg_f"] = stem2 .. "ī"
data.forms["dat_sg_n"] = stem2 .. "ī"
data.forms["dat_pl_m"] = stem2 .. "ibus"
data.forms["dat_pl_f"] = stem2 .. "ibus"
data.forms["dat_pl_n"] = stem2 .. "ibus"
data.forms["acc_sg_m"] = stem2 .. "em"
data.forms["acc_sg_f"] = stem2 .. "em"
data.forms["acc_sg_n"] = stem2 .. "e"
data.forms["acc_pl_m"] = stem2 .. "ēs"
data.forms["acc_pl_f"] = stem2 .. "ēs"
data.forms["acc_pl_n"] = stem2 .. "ia"
data.forms["abl_sg_m"] = stem2 .. "ī"
data.forms["abl_sg_f"] = stem2 .. "ī"
data.forms["abl_sg_n"] = stem2 .. "ī"
data.forms["abl_pl_m"] = stem2 .. "ibus"
data.forms["abl_pl_f"] = stem2 .. "ibus"
data.forms["abl_pl_n"] = stem2 .. "ibus"
data.forms["loc_sg_m"] = stem2 .. "ī"
data.forms["loc_sg_f"] = stem2 .. "ī"
data.forms["loc_sg_n"] = stem2 .. "ī"
data.forms["loc_pl_m"] = stem2 .. "ibus"
data.forms["loc_pl_f"] = stem2 .. "ibus"
data.forms["loc_pl_n"] = stem2 .. "ibus"
data.forms["voc_sg_m"] = stem1
data.forms["voc_sg_f"] = stem2 .. "is"
data.forms["voc_sg_n"] = stem2 .. "e"
data.forms["voc_pl_m"] = stem2 .. "ēs"
data.forms["voc_pl_f"] = stem2 .. "ēs"
data.forms["voc_pl_n"] = stem2 .. "ia"
table.insert(data.categories, "Latin third declension " .. data.pos)
end
decl["irreg"] = function(data,args)
if args[1] == "duo" or args[1] == "ambō" then
data.title = stem == "amb" and glossary_link("irregular") .. " adjective" or "numeral"
local stem = args[1] == "duo" and "du" or "amb"
data.num = "pl"
local stem_with_o = stem .. (stem == "amb" and "ō" or "o")
data.forms["nom_pl_m"] = stem_with_o
data.forms["nom_pl_f"] = stem .. "ae"
data.forms["nom_pl_n"] = stem_with_o
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_f"] = stem .. "ārum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_pl_m"] = stem .. "ōbus"
data.forms["dat_pl_f"] = stem .. "ābus"
data.forms["dat_pl_n"] = stem .. "ōbus"
data.forms["acc_pl_m"] = {stem .. "ōs", stem_with_o}
data.forms["acc_pl_f"] = stem .. "ās"
data.forms["acc_pl_n"] = stem_with_o
data.forms["abl_pl_m"] = stem .. "ōbus"
data.forms["abl_pl_f"] = stem .. "ābus"
data.forms["abl_pl_n"] = stem .. "ōbus"
data.forms["voc_pl_m"] = stem_with_o
data.forms["voc_pl_f"] = stem .. "ae"
data.forms["voc_pl_n"] = stem_with_o
if stem == "du" then
data.footnote = "Note: The genitive masculine and neuter can also be found in the contracted form ''[[la-adj/duum|duum]]'' (also spelt ''[[la-adj/duûm|duûm]]'')."
end
elseif args[1] == "mīlle" then
data.title = "semi-" .. glossary_link("indeclinable") .. " numeral"
data.forms["nom_sg_m"] = "mīlle"
data.forms["nom_pl_m"] = {"mīlia", "mīllia"}
data.forms["gen_sg_m"] = "mīlle"
data.forms["gen_pl_m"] = {"mīlium", "mīllium"}
data.forms["dat_sg_m"] = "mīlle"
data.forms["dat_pl_m"] = {"mīlibus", "mīllibus"}
data.forms["acc_sg_m"] = "mīlle"
data.forms["acc_pl_m"] = {"mīlia", "mīllia"}
data.forms["abl_sg_m"] = "mīlle"
data.forms["abl_pl_m"] = {"mīlibus", "mīllibus"}
data.forms["voc_sg_m"] = "mīlle"
data.forms["voc_pl_m"] = {"mīlia", "mīllia"}
elseif args[1] == "plūs" then
data.title = glossary_link("irregular") .. " " .. decl_link("third") .. " comparative adjective"
data.forms["nom_sg_m"] = ""
data.forms["nom_sg_n"] = "plūs"
data.forms["nom_pl_m"] = "plūrēs"
data.forms["nom_pl_n"] = "plūra"
data.forms["gen_sg_m"] = ""
data.forms["gen_sg_n"] = "plūris"
data.forms["gen_pl_m"] = "plūrium"
data.forms["gen_pl_n"] = "plūrium"
data.forms["dat_sg_m"] = ""
data.forms["dat_sg_n"] = ""
data.forms["dat_pl_m"] = "plūribus"
data.forms["dat_pl_n"] = "plūribus"
data.forms["acc_sg_m"] = ""
data.forms["acc_sg_n"] = "plūs"
data.forms["acc_pl_m"] = "plūrēs"
data.forms["acc_pl_n"] = "plūra"
data.forms["abl_sg_m"] = ""
data.forms["abl_sg_n"] = "plūre"
data.forms["abl_pl_m"] = "plūribus"
data.forms["abl_pl_n"] = "plūribus"
data.forms["voc_sg_m"] = ""
data.forms["voc_sg_n"] = "plūs"
data.forms["voc_pl_m"] = "plūrēs"
data.forms["voc_pl_n"] = "plūra"
data.footnote = "Note: Singular forms take the genitive of the whole and do not function as adjectives."
table.insert(data.categories, "Latin third declension " .. data.pos)
elseif args[1] == "is" or args[1] == "īdem" then
data.title = glossary_link("demonstrative") .. " pronoun"
local m = "m"
local i = "i"
if args[1] == "īdem" then
m = "n"
i = ""
end
data.forms["nom_sg_m"] = "is"
data.forms["nom_sg_f"] = "ea"
data.forms["nom_sg_n"] = "id"
data.forms["nom_pl_m"] = {"eī", "iī"}
data.forms["nom_pl_f"] = "eae"
data.forms["nom_pl_n"] = "ea"
data.forms["gen_sg_m"] = {"eius", "ejus"}
data.forms["gen_sg_f"] = {"eius", "ejus"}
data.forms["gen_sg_n"] = {"eius", "ejus"}
data.forms["gen_pl_m"] = "eōru"..m
data.forms["gen_pl_f"] = "eāru"..m
data.forms["gen_pl_n"] = "eōru"..m
data.forms["dat_sg_m"] = "eī"
data.forms["dat_sg_f"] = "eī"
data.forms["dat_sg_n"] = "eī"
data.forms["dat_pl_m"] = {"eīs", i.."īs"}
data.forms["dat_pl_f"] = {"eīs", i.."īs"}
data.forms["dat_pl_n"] = {"eīs", i.."īs"}
data.forms["acc_sg_m"] = "eu"..m
data.forms["acc_sg_f"] = "ea"..m
data.forms["acc_sg_n"] = "id"
data.forms["acc_pl_m"] = "eōs"
data.forms["acc_pl_f"] = "eās"
data.forms["acc_pl_n"] = "ea"
data.forms["abl_sg_m"] = "eō"
data.forms["abl_sg_f"] = "eā"
data.forms["abl_sg_n"] = "eō"
data.forms["abl_pl_m"] = {"eīs", i.."īs"}
data.forms["abl_pl_f"] = {"eīs", i.."īs"}
data.forms["abl_pl_n"] = {"eīs", i.."īs"}
data.voc = false
if args[1] == "īdem" then
data.forms["nom_sg_m"] = "ī"
data.forms["nom_sg_n"] = "i"
data.forms["nom_pl_m"] = "ī"
data.forms["gen_sg_m"] = "eius"
data.forms["gen_sg_f"] = "eius"
data.forms["gen_sg_n"] = "eius"
data.forms["acc_sg_n"] = "i"
end
elseif args[1] == "ille" then
data.types.ius = true
decl["1&2"](data, {"ill"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "ille"
data.forms["nom_sg_n"] = "illud"
data.forms["acc_sg_n"] = "illud"
data.voc = false
data.categories = {}
elseif args[1] == "iste" then
data.types.ius = true
decl["1&2"](data, {"ist"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "iste"
data.forms["nom_sg_n"] = "istud"
data.forms["acc_sg_n"] = "istud"
data.voc = false
data.categories = {}
elseif args[1] == "ipse" then
data.types.ius = true
decl["1&2"](data, {"ips"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "ipse"
data.forms["nom_sg_n"] = "ipsum"
data.forms["acc_sg_n"] = "ipsum"
data.voc = false
data.categories = {}
elseif args[1] == "quis" or args[1] == "quī" then
local id = "id"
local em = "em"
local o = "ō"
if args[1] == "quī" then
id = "od"
em = "am"
o = "ā"
end
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
data.forms["nom_sg_m"] = "quis"
data.forms["nom_sg_f"] = "quis"
data.forms["nom_sg_n"] = "qu"..id
data.forms["nom_pl_m"] = "quī"
data.forms["nom_pl_f"] = "quae"
data.forms["nom_pl_n"] = "quae"
data.forms["gen_sg_m"] = {"cuius", "cujus"}
data.forms["gen_sg_f"] = {"cuius", "cujus"}
data.forms["gen_sg_n"] = {"cuius", "cujus"}
data.forms["gen_pl_m"] = "quōrum"
data.forms["gen_pl_f"] = "quārum"
data.forms["gen_pl_n"] = "quōrum"
data.forms["dat_sg_m"] = "cui"
data.forms["dat_sg_f"] = "cui"
data.forms["dat_sg_n"] = "cui"
data.forms["dat_pl_m"] = "quibus"
data.forms["dat_pl_f"] = "quibus"
data.forms["dat_pl_n"] = "quibus"
data.forms["acc_sg_m"] = "quem"
data.forms["acc_sg_f"] = "qu"..em
data.forms["acc_sg_n"] = "qu"..id
data.forms["acc_pl_m"] = "quōs"
data.forms["acc_pl_f"] = "quās"
data.forms["acc_pl_n"] = "quae"
data.forms["abl_sg_m"] = "quō"
data.forms["abl_sg_f"] = "qu"..o
data.forms["abl_sg_n"] = "quō"
data.forms["abl_pl_m"] = "quibus"
data.forms["abl_pl_f"] = "quibus"
data.forms["abl_pl_n"] = "quibus"
data.voc = false
if args[1] == "quī" then
data.forms["nom_sg_m"] = "quī"
data.forms["nom_sg_f"] = "quae"
end
elseif args[1] == "quisquis" then
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
data.forms["nom_sg_m"] = "quisquis"
data.forms["nom_sg_f"] = "quisquis"
data.forms["nom_sg_n"] = {"quidquid", "quicquid"}
data.forms["nom_pl_m"] = "quīquī"
data.forms["nom_pl_f"] = "quaequae"
data.forms["nom_pl_n"] = "quaequae"
data.forms["gen_sg_m"] = {"cuiuscuius", "cujuscujus"}
data.forms["gen_sg_f"] = {"cuiuscuius", "cujuscujus"}
data.forms["gen_sg_n"] = {"cuiuscuius", "cujuscujus"}
data.forms["gen_pl_m"] = "quōrumquōrum"
data.forms["gen_pl_f"] = "quārumquārum"
data.forms["gen_pl_n"] = "quōrumquōrum"
data.forms["dat_sg_m"] = "cuicui"
data.forms["dat_sg_f"] = "cuicui"
data.forms["dat_sg_n"] = "cuicui"
data.forms["dat_pl_m"] = "quibusquibus"
data.forms["dat_pl_f"] = "quibusquibus"
data.forms["dat_pl_n"] = "quibusquibus"
data.forms["acc_sg_m"] = "quemquem"
data.forms["acc_sg_f"] = "quamquam"
data.forms["acc_sg_n"] = {"quidquid", "quicquid"}
data.forms["acc_pl_m"] = "quōsquōs"
data.forms["acc_pl_f"] = "quāsquās"
data.forms["acc_pl_n"] = "quaequae"
data.forms["abl_sg_m"] = "quōquō"
data.forms["abl_sg_f"] = "quāquā"
data.forms["abl_sg_n"] = "quōquō"
data.forms["abl_pl_m"] = "quibusquibus"
data.forms["abl_pl_f"] = "quibusquibus"
data.forms["abl_pl_n"] = "quibusquibus"
data.forms["voc_sg_m"] = "quisquis"
data.forms["voc_sg_f"] = "quisquis"
data.forms["voc_sg_n"] = {"quidquid", "quicquid"}
data.forms["voc_pl_m"] = "quīquī"
data.forms["voc_pl_f"] = "quaequae"
data.forms["voc_pl_n"] = "quaequae"
data.voc = true
else
error('adjective ' .. args[1] .. ' not recognized')
end
end
return decl
-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet:
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.