Модуль:la-noun/data
Зовнішній вигляд
Документацію для цього модуля можна створити у Модуль:la-noun/data/документація
local decl = {}
local lang = require("Module:languages").getByCode("la")
local m_links = require("Module:links")
local m_utilities = require("Module:utilities")
NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText
PAGENAME = PAGENAME or mw.title.getCurrentTitle().text
decl["1"] = function(data, args)
local title = {}
table.insert(title, "[[Appendix:I відміна іменників латинської мови|I відміна]]")
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem = "{{{1}}}"
else
error('Please provide a stem')
end
end
-- normal 1st
data.forms["nom_sg"] = stem .. "a"
data.forms["gen_sg"] = stem .. "ae"
data.forms["dat_sg"] = stem .. "ae"
data.forms["acc_sg"] = stem .. "am"
data.forms["abl_sg"] = stem .. "ā"
data.forms['voc_sg'] = stem .. "a"
data.forms["nom_pl"] = stem .. "ae"
data.forms["gen_pl"] = stem .. "ārum"
data.forms["dat_pl"] = stem .. "īs"
data.forms["acc_pl"] = stem .. "ās"
data.forms["abl_pl"] = stem .. "īs"
data.forms["voc_pl"] = stem .. "ae"
-- abus
if data.types.abus then
table.insert(title, "dative/ablative plural in ''-ābus''")
data.forms["dat_pl"] = stem .. "ābus"
data.forms["abl_pl"] = stem .. "ābus"
-- am
elseif data.types.am then
table.insert(title, "nominative/vocative singular in ''-ām''")
data.forms["nom_sg"] = stem .. "ām"
data.forms["acc_sg"] = stem .. "ām"
data.forms["voc_sg"] = stem .. "ām"
data.forms['abl_sg'] = {stem .. "ām", stem .. "ā"}
-- all Greek
elseif data.types.Greek then
--Greek Ma
if data.types.Ma then
table.insert(title, "masculine Greek type with nominative singular in ''-ās''")
data.forms["nom_sg"] = stem .. "ās"
data.forms["acc_sg"] = stem .. "ān"
data.forms['voc_sg'] = stem .. "ā"
-- Greek Me
elseif data.types.Me then
table.insert(title, "masculine Greek type with nominative singular in ''-ēs''")
data.forms["nom_sg"] = stem .. "ēs"
data.forms["acc_sg"] = stem .. "ēn"
data.forms["abl_sg"] = stem .. "ē"
data.forms['voc_sg'] = stem .. "ē"
-- Greek
else
table.insert(title, "Greek type")
data.forms["nom_sg"] = stem .. "ē"
data.forms["gen_sg"] = stem .. "ēs"
data.forms["acc_sg"] = stem .. "ēn"
data.forms["abl_sg"] = stem .. "ē"
data.forms['voc_sg'] = stem .. "ē"
end
end
-- with locative
if data.loc then
table.insert(title, "with locative")
data.forms["loc_sg"] = stem .. "ae"
data.forms["loc_pl"] = stem .. "īs"
end
if data.n then
table.insert(title, "with ''m'' → ''n'' in compounds")
end
data.title = table.concat(title, ", ")
table.insert(data.categories, "Латинські іменники І відміни")
end
decl["2"] = function(data, args)
local title = {}
table.insert(title, {"[[Appendix:II відміна іменників латинської мови|II відміна]]"})
local stem1 = args[1]
local stem2 = args[2] or stem1; if stem2 == "" then stem2 = stem1 end
if not stem1 or stem1 == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem1 = "{{{1}}}"
stem2 = "{{{2}}}"
else
error('Please provide a stem')
end
end
-- normal 2nd
data.forms["nom_sg"] = stem1 .. "us"
data.forms["gen_sg"] = stem1 .. "ī"
data.forms["dat_sg"] = stem1 .. "ō"
data.forms["acc_sg"] = stem1 .. "um"
data.forms["abl_sg"] = stem1 .. "ō"
data.forms['voc_sg'] = stem1 .. "e"
data.forms["nom_pl"] = stem1 .. "ī"
data.forms["gen_pl"] = stem1 .. "ōrum"
data.forms["dat_pl"] = stem1 .. "īs"
data.forms["acc_pl"] = stem1 .. "ōs"
data.forms["abl_pl"] = stem1 .. "īs"
data.forms["voc_pl"] = stem1 .. "ī"
-- all neuter
if data.types.N then
data.forms["nom_sg"] = stem1 .. "um"
data.forms["voc_sg"] = stem1 .. "um"
data.forms["nom_pl"] = stem1 .. "a"
data.forms["acc_pl"] = stem1 .. "a"
data.forms["voc_pl"] = stem1 .. "a"
-- neuter ium
if data.types.ium then
data.forms["nom_sg"] = stem1 .. "ium"
data.forms["gen_sg"] = {stem1 .. "iī", stem1 .. "ī"}
data.forms["dat_sg"] = stem1 .. "iō"
data.forms["acc_sg"] = stem1 .. "ium"
data.forms["abl_sg"] = stem1 .. "iō"
data.forms['voc_sg'] = stem1 .. "ium"
data.forms["nom_pl"] = stem1 .. "ia"
data.forms["gen_pl"] = stem1 .. "iōrum"
data.forms["dat_pl"] = stem1 .. "iīs"
data.forms["acc_pl"] = stem1 .. "ia"
data.forms["abl_pl"] = stem1 .. "iīs"
data.forms["voc_pl"] = stem1 .. "ia"
data.notes["gen_sg2"] = "Found in older Latin (until the Augustan Age)."
-- neuter Greek
elseif data.types.Greek then
table.insert(title, "Greek type")
data.forms["nom_sg"] = stem1 .. "on"
data.forms["acc_sg"] = stem1 .. "on"
data.forms["voc_sg"] = stem1 .. "on"
-- neuter us
elseif data.types.us then
table.insert(title, "nominative/accusative/vocative in ''-us''")
data.forms["nom_sg"] = stem1 .. "us"
data.forms["acc_sg"] = stem1 .. "us"
data.forms["voc_sg"] = stem1 .. "us"
data.forms["nom_pl"] = stem1 .. "ī"
data.forms["acc_pl"] = stem1 .. "ōs"
data.forms["voc_pl"] = stem1 .. "ī"
end
-- er
elseif data.types.er then
if mw.ustring.match(stem1, "[aiouy]r$") then
table.insert(title, "nominative singular in ''-r''")
else
table.insert(title, "nominative singular in ''-er''")
end
data.forms["nom_sg"] = stem1
data.forms["gen_sg"] = stem2 .. "ī"
data.forms["dat_sg"] = stem2 .. "ō"
data.forms["acc_sg"] = stem2 .. "um"
data.forms["abl_sg"] = stem2 .. "ō"
data.forms['voc_sg'] = stem1
data.forms["nom_pl"] = stem2 .. "ī"
data.forms["gen_pl"] = stem2 .. "ōrum"
data.forms["dat_pl"] = stem2 .. "īs"
data.forms["acc_pl"] = stem2 .. "ōs"
data.forms["abl_pl"] = stem2 .. "īs"
data.forms["voc_pl"] = stem2 .. "ī"
data.notes["voc_sg1"] = "May also be ''" .. m_links.full_link({term = stem2 .. "e", lang = lang}, nil, false) .. "''."
-- ius
elseif data.types.ius then
data.forms["nom_sg"] = stem1 .. "ius"
data.forms["gen_sg"] = {stem1 .. "iī", stem1 .. "ī"}
data.forms["dat_sg"] = stem1 .. "iō"
data.forms["acc_sg"] = stem1 .. "ium"
data.forms["abl_sg"] = stem1 .. "iō"
data.forms['voc_sg'] = stem1 .. "ī"
data.forms["nom_pl"] = stem1 .. "iī"
data.forms["gen_pl"] = stem1 .. "iōrum"
data.forms["dat_pl"] = stem1 .. "iīs"
data.forms["acc_pl"] = stem1 .. "iōs"
data.forms["abl_pl"] = stem1 .. "iīs"
data.forms["voc_pl"] = stem1 .. "iī"
data.notes["gen_sg2"] = "Found in older Latin (until the Augustan Age)."
-- Greek
elseif data.types.Greek then
table.insert(title, "Greek type")
data.forms["nom_sg"] = stem1 .. "os"
data.forms["acc_sg"] = {stem1 .. "on"}
end
-- with -um genitive plural
if data.um then
table.insert(title, "with contracted genitive plural")
data.notes["gen_pl2"] = "Contraction found in poetry."
if data.types.ius or data.types.ium then
data.forms["gen_pl"] = {stem2 .. "iōrum", stem2 .. "ium"}
else
data.forms["gen_pl"] = {stem2 .. "ōrum", stem2 .. "um"}
end
end
-- with locative
if data.loc then
table.insert(title, "with locative")
if data.types.ius or data.types.ium then
data.forms["loc_sg"] = stem2 .. "iī"
data.forms["loc_pl"] = stem2 .. "iīs"
else
data.forms["loc_sg"] = stem2 .. "ī"
data.forms["loc_pl"] = stem2 .. "īs"
end
end
if data.n then
table.insert(title, "with ''m'' → ''n'' in compounds")
end
title[1] = table.concat(title[1], " ")
data.title = table.concat(title, ", ")
table.insert(data.categories, "Латинські іменники ІІ відміни")
end
decl["3"] = function(data, args)
local title = {}
table.insert(title, {"[[Appendix:III відміна іменників латинської мови|III відміна]]"})
local stem1 = args[1]
local stem2 = args[2] or ""
if stem2 == "" then
if not data.types.on and not data.types.er and not data.types.polis then
stem2 = require("Module:la-utilities").make_stem2(stem1)
end
else
table.insert(data.categories, "Kenny's testing category")
end
stem2 = stem2 == "" and stem1 or stem2
if not stem1 or stem1 == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem1 = "{{{1}}}"
stem2 = "{{{2}}}"
else
error('Please provide a stem')
end
end
--normal 3rd
data.forms["nom_sg"] = stem1
data.forms["gen_sg"] = stem2 .. "is"
data.forms["dat_sg"] = stem2 .. "ī"
data.forms["acc_sg"] = stem2 .. "em"
data.forms["abl_sg"] = stem2 .. "e"
data.forms["voc_sg"] = stem1
data.forms["nom_pl"] = stem2 .. "ēs"
data.forms["gen_pl"] = stem2 .. "um"
data.forms["dat_pl"] = stem2 .. "ibus"
data.forms["acc_pl"] = stem2 .. "ēs"
data.forms["abl_pl"] = stem2 .. "ibus"
data.forms["voc_pl"] = stem2 .. "ēs"
-- all neuter
if data.types.N then
table.insert(title[1], "neuter")
data.forms["acc_sg"] = stem1
-- neuter I stem
if data.types.I then
-- pure variety
if data.types.pure then
table.insert(title[1], "“pure” i-stem")
data.forms["abl_sg"] = stem2 .. "ī"
data.forms["nom_pl"] = stem2 .. "ia"
data.forms["gen_pl"] = stem2 .. "ium"
data.forms["acc_pl"] = stem2 .. "ia"
data.forms["voc_pl"] = stem2 .. "ia"
-- normal variety
else
table.insert(title[1], "i-stem")
data.forms["nom_pl"] = stem2 .. "a"
data.forms["gen_pl"] = {stem2 .. "ium", stem2 .. "um"}
data.forms["acc_pl"] = stem2 .. "a"
data.forms["voc_pl"] = stem2 .. "a"
end
-- normal neuter
else
data.forms["nom_pl"] = stem2 .. "a"
data.forms["acc_pl"] = stem2 .. "a"
data.forms["voc_pl"] = stem2 .. "a"
end
-- I stem
elseif data.types.I then
table.insert(title[1], "i-stem")
data.forms["gen_pl"] = stem2 .. "ium"
-- navis and ignis
elseif data.types.navis or data.types.ignis then
-- just navis
if data.types.navis then
table.insert(title, "alternative accusative singular in ''-im''")
data.forms["acc_sg"] = {stem2 .. "em", stem2 .. "im"}
end
if data.num == "sg" then
table.insert(title, "alternative ablative singular in ''-ī''")
elseif data.num == "pl" then
table.insert(title, "alternative accusative plural in ''-īs''")
else
table.insert(title, "alternative ablative singular in ''-ī'' and accusative plural in ''-īs''")
end
data.forms["abl_sg"] = {stem2 .. "e", stem2 .. "ī"}
data.forms["gen_pl"] = stem2 .. "ium"
data.forms["acc_pl"] = {stem2 .. "ēs", stem2 .. "īs"}
-- all Greek
elseif data.types.Greek then
table.insert(title, "Greek type")
-- Greek er
if data.types.er then
table.insert(title, "nominative singular in ''-ēr''")
data.forms["nom_sg"] = stem1 .. "ēr"
data.forms["gen_sg"] = stem1 .. "eris"
data.forms["dat_sg"] = stem1 .. "erī"
data.forms["acc_sg"] = {stem1 .. "era", stem1 .. "erem"}
data.forms["abl_sg"] = stem1 .. "ere"
data.forms["voc_sg"] = stem1 .. "ēr"
data.forms["nom_pl"] = stem1 .. "erēs"
data.forms["gen_pl"] = stem1 .. "erum"
data.forms["dat_pl"] = stem1 .. "eribus"
data.forms["acc_pl"] = stem1 .. "erēs"
data.forms["abl_pl"] = stem1 .. "eribus"
data.forms["voc_pl"] = stem1 .. "erēs"
-- Greek on
elseif data.types.on then
table.insert(title, "nominative singular in ''-ōn''. Alternative genitive singular and plural and accusative plural may be attested or may be reconstructed by lexicographers due to ''" .. stem1 .. "ōn'' having been imported from the Ancient Greek masculine present active participle")
data.forms["nom_sg"] = stem1 .. "ōn"
data.forms["gen_sg"] = {stem1 .. "ontis", stem1 .. "ontos"}
data.forms["dat_sg"] = stem1 .. "ontī"
data.forms["acc_sg"] = stem1 .. "onta"
data.forms["abl_sg"] = stem1 .. "onte"
data.forms["voc_sg"] = stem1 .. "ōn"
data.forms["nom_pl"] = stem1 .. "ontēs"
data.forms["gen_pl"] = {stem1 .. "ontum", stem1 .. "ontium"}
data.forms["dat_pl"] = stem1 .. "ontibus"
data.forms["acc_pl"] = {stem1 .. "ontēs", stem1 .. "ontās"}
data.forms["abl_pl"] = stem1 .. "ontibus"
data.forms["voc_pl"] = stem1 .. "ontēs"
-- Greek s
elseif data.types.s then
if stem1 == stem2 then
stem2 = ""
end
data.forms["nom_sg"] = stem1 .. "s"
data.forms["gen_sg"] = stem1 .. stem2 .. "os"
data.forms["dat_sg"] = stem1 .. stem2 .. "i"
if stem2 ~= "" then
data.forms["acc_sg"] = stem1 .. stem2 .. "a"
else
data.forms["acc_sg"] = stem1 .. "n"
end
data.forms["abl_sg"] = stem1 .. stem2 .. "e"
data.forms["nom_pl"] = stem1 .. stem2 .. "es"
data.forms["gen_pl"] = stem1 .. stem2 .. "um"
data.forms["dat_pl"] = stem1 .. stem2 .. "ibus"
if stem2 then
data.forms["acc_pl"] = stem1 .. stem2 .. "as"
else
data.forms["acc_pl"] = stem1 .. "es"
end
data.forms["abl_pl"] = stem1 .. stem2 .. "ibus"
data.forms["voc_pl"] = stem1 .. stem2 .. "es"
-- normal Greek
else
data.forms["gen_sg"] = stem2 .. "os"
data.forms["acc_sg"] = stem2 .. "a"
data.forms["nom_pl"] = stem2 .. "es"
data.forms["acc_pl"] = stem2 .. "as"
data.forms["voc_pl"] = stem2 .. "es"
end
-- polis
elseif data.types.polis then
table.insert(title, "with locative")
data.forms["nom_sg"] = stem1 .. "polis"
data.forms["gen_sg"] = stem1 .. "polis"
data.forms["dat_sg"] = stem1 .. "polī"
data.forms["acc_sg"] = {stem1 .. "polim", stem1 .. "polin"}
data.forms["abl_sg"] = stem1 .. "polī"
data.forms["voc_sg"] = {stem1 .. "polis", stem1 .. "polī"}
data.forms["loc_sg"] = stem1 .. "polī"
-- Ignore normal locative logic
data.loc = false
end
-- with locative
if data.loc then
table.insert(title, "with locative")
-- neuter or I stem
if data.types.I or data.types.N then
data.forms["loc_sg"] = stem2 .. "ī"
data.forms["loc_pl"] = stem2 .. "ibus"
-- Greek
elseif data.types.Greek then
-- Greek s
if data.types.s then
data.forms["loc_sg"] = stem1 .. stem2 .. "e"
data.forms["loc_pl"] = stem1 .. stem2 .. "ibus"
-- Greek
else
data.forms["loc_sg"] = stem2 .. "e"
data.forms["loc_pl"] = stem2 .. "ēs"
end
-- normal
else
data.forms["loc_sg"] = stem2 .. "e"
data.forms["loc_pl"] = stem2 .. "ibus"
end
end
if data.n then
table.insert(title, "with ''m'' → ''n'' in compounds")
end
title[1] = table.concat(title[1], " ")
data.title = table.concat(title, ", ")
table.insert(data.categories, "Латинські іменники ІІІ відміни")
end
decl["4"] = function(data, args)
local title = {}
table.insert(title, {"[[Appendix:Latin fourth declension|Fourth declension]]"})
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem = "{{{1}}}"
else
error('Please provide a stem')
end
end
-- normal 4th
data.forms["nom_sg"] = stem .. "us"
data.forms["gen_sg"] = stem .. "ūs"
data.forms["dat_sg"] = stem .. "uī"
data.forms["acc_sg"] = stem .. "um"
data.forms["abl_sg"] = stem .. "ū"
data.forms['voc_sg'] = stem .. "us"
data.forms["nom_pl"] = stem .. "ūs"
data.forms["gen_pl"] = stem .. "uum"
data.forms["dat_pl"] = stem .. "ibus"
data.forms["acc_pl"] = stem .. "ūs"
data.forms["abl_pl"] = stem .. "ibus"
data.forms["voc_pl"] = stem .. "ūs"
-- neuter
if data.types.N then
table.insert(title[1], "neuter")
data.forms["nom_sg"] = stem .. "ū"
data.forms["dat_sg"] = stem .. "ū"
data.forms["acc_sg"] = stem .. "ū"
data.forms['voc_sg'] = stem .. "ū"
data.forms["nom_pl"] = stem .. "ua"
data.forms["acc_pl"] = stem .. "ua"
data.forms["voc_pl"] = stem .. "ua"
end
-- ubus
if data.types.ubus then
table.insert(title, "dative/ablative plural in ''-ubus''")
data.forms["dat_pl"] = stem .. "ubus"
data.forms["abl_pl"] = stem .. "ubus"
end
-- with locative
if data.loc then
table.insert(title, "with locative")
data.forms["loc_sg"] = stem .. "ū"
--ubus
if data.types.ubus then
data.forms["loc_pl"] = stem .. "ubus"
-- normal locative
else
data.forms["loc_pl"] = stem .. "ibus"
end
end
if data.n then
table.insert(title, "with ''m'' → ''n'' in compounds")
end
title[1] = table.concat(title[1], " ")
data.title = table.concat(title, ", ")
table.insert(data.categories, "Latin fourth declension nouns")
end
decl["5"] = function(data, args)
local title = {}
table.insert(title, "[[Appendix:Latin fifth declension|Fifth declension]]")
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem = "{{{1}}}"
else
error('Please provide a stem')
end
end
-- ies
if data.types.i then
stem = stem .. "i"
end
data.forms["nom_sg"] = stem .. "ēs"
data.forms["gen_sg"] = stem .. "eī"
data.forms["dat_sg"] = stem .. "eī"
data.forms["acc_sg"] = stem .. "em"
data.forms["abl_sg"] = stem .. "ē"
data.forms['voc_sg'] = stem .. "ēs"
data.forms["nom_pl"] = stem .. "ēs"
data.forms["gen_pl"] = stem .. "ērum"
data.forms["dat_pl"] = stem .. "ēbus"
data.forms["acc_pl"] = stem .. "ēs"
data.forms["abl_pl"] = stem .. "ēbus"
data.forms["voc_pl"] = stem .. "ēs"
-- ies
if data.types.i then
data.forms["gen_sg"] = stem .. "ēī"
data.forms["dat_sg"] = stem .. "ēī"
end
--with locative
if data.loc then
table.insert(title, "with locative")
data.forms["loc_sg"] = stem .. "ē"
data.forms["loc_pl"] = stem .. "ēbus"
end
if data.n then
table.insert(title, "with ''m'' → ''n'' in compounds")
end
data.title = table.concat(title, ", ")
table.insert(data.categories, "Latin fifth declension nouns")
end
decl["indecl"] = function(data, args)
local title = {}
data.title = "Not declined; used only in the nominative and accusative singular."
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem = "{{{1}}}"
else
error('Please provide a stem')
end
end
data.forms["nom_sg"] = "-"
data.forms["gen_sg"] = "-"
data.forms["dat_sg"] = "-"
data.forms["acc_sg"] = "-"
data.forms["abl_sg"] = "-"
data.forms['voc_sg'] = "-"
data.forms["nom_pl"] = "-"
data.forms["gen_pl"] = "-"
data.forms["dat_pl"] = "-"
data.forms["acc_pl"] = "-"
data.forms["abl_pl"] = "-"
data.forms["voc_pl"] = "-"
data.forms["nom_sg"] = stem
data.forms["acc_sg"] = stem
data.num = "sg"
table.insert(data.categories, "Latin indeclinable nouns")
end
decl["irreg"] = function(data, args)
local title = {}
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
stem = "{{{1}}}"
else
error('Please provide a stem')
end
end
data.forms["nom_sg"] = "-"
data.forms["gen_sg"] = "-"
data.forms["dat_sg"] = "-"
data.forms["acc_sg"] = "-"
data.forms["abl_sg"] = "-"
data.forms['voc_sg'] = "-"
data.forms["nom_pl"] = "-"
data.forms["gen_pl"] = "-"
data.forms["dat_pl"] = "-"
data.forms["acc_pl"] = "-"
data.forms["abl_pl"] = "-"
data.forms["voc_pl"] = "-"
if stem == "bōs" then
table.insert(title, "[[Appendix:Latin third declension|Third declension]], irregular")
data.forms["nom_sg"] = "bōs"
data.forms["gen_sg"] = "bovis"
data.forms["dat_sg"] = "bovī"
data.forms["acc_sg"] = "bovem"
data.forms["abl_sg"] = "bove"
data.forms['voc_sg'] = "bōs"
data.forms["nom_pl"] = "bovēs"
data.forms["gen_pl"] = "boum"
data.forms["dat_pl"] = {"bōbus", "būbus"}
data.forms["acc_pl"] = "bovēs"
data.forms["abl_pl"] = {"bōbus", "būbus"}
data.forms["voc_pl"] = "bovēs"
table.insert(data.categories, "Latin third declension nouns")
elseif stem == "cherub" then
table.insert(title, "Borrowed from Hebrew with its plural, otherwise indeclinable")
data.forms["nom_sg"] = "cherub"
data.forms["gen_sg"] = "cherub"
data.forms["dat_sg"] = "cherub"
data.forms["acc_sg"] = "cherub"
data.forms["abl_sg"] = "cherub"
data.forms['voc_sg'] = "cherub"
data.forms["nom_pl"] = {"cherubim", "cherubin"}
data.forms["gen_pl"] = {"cherubim", "cherubin"}
data.forms["dat_pl"] = {"cherubim", "cherubin"}
data.forms["acc_pl"] = {"cherubim", "cherubin"}
data.forms["abl_pl"] = {"cherubim", "cherubin"}
data.forms["voc_pl"] = {"cherubim", "cherubin"}
table.insert(data.categories, "Latin indeclinable nouns")
elseif stem == "deus" then
table.insert(title, "[[Appendix:Latin second declension|Second declension]], with several irregular plural forms")
data.forms["nom_sg"] = "deus"
data.forms["gen_sg"] = "deī"
data.forms["dat_sg"] = "deō"
data.forms["acc_sg"] = "deum"
data.forms["abl_sg"] = "deō"
data.forms['voc_sg'] = {"deus", "dee"}
data.forms["nom_pl"] = {"dī", "diī", "deī"}
data.forms["gen_pl"] = {"deōrum", "deûm"}
data.forms["dat_pl"] = {"dīs", "diīs", "deīs"}
data.forms["acc_pl"] = "deōs"
data.forms["abl_pl"] = {"dīs", "diīs", "deīs"}
data.forms["voc_pl"] = {"dī", "diī", "deī"}
table.insert(data.categories, "Latin second declension nouns")
elseif stem == "Deus" then
table.insert(title, "[[Appendix:Latin second declension|Second declension]], with irregular vocative")
data.forms["nom_sg"] = "Deus"
data.forms["gen_sg"] = "Deī"
data.forms["dat_sg"] = "Deō"
data.forms["acc_sg"] = "Deum"
data.forms["abl_sg"] = "Deō"
data.forms['voc_sg'] = {"Deus", "Dee"}
data.num = "sg"
table.insert(data.categories, "Latin second declension nouns")
elseif stem == "domus" then
table.insert(title, "[[Appendix:Latin fourth declension|Fourth declension]] with locative, some alternative forms from the [[Appendix:Latin second declension|second declension]]")
data.forms["nom_sg"] = "domus"
data.forms["gen_sg"] = {"domūs", "domī"}
data.forms["dat_sg"] = {"domuī", "domō", "domū"}
data.forms["acc_sg"] = "domum"
data.forms["abl_sg"] = {"domū", "domō"}
data.forms['voc_sg'] = "domus"
data.forms['loc_sg'] = "domī"
data.forms["nom_pl"] = "domūs"
data.forms["gen_pl"] = {"domuum", "domōrum"}
data.forms["dat_pl"] = "domibus"
data.forms["acc_pl"] = {"domūs", "domōs"}
data.forms["abl_pl"] = "domibus"
data.forms["voc_pl"] = "domūs"
data.forms['loc_pl'] = "-"
data.loc = true
table.insert(data.categories, "Latin second declension nouns")
table.insert(data.categories, "Latin fourth declension nouns")
elseif stem == "Iēsus" then
table.insert(title, "Highly irregular, but often considered to belong to the [[Appendix:Latin fourth declension|fourth declension]]")
data.forms["nom_sg"] = "Iēsus"
data.forms["gen_sg"] = "Iēsū"
data.forms["dat_sg"] = "Iēsū"
data.forms["acc_sg"] = "Iēsum"
data.forms["abl_sg"] = "Iēsū"
data.forms['voc_sg'] = "Iēsū"
data.num = "sg"
table.insert(data.categories, "Latin fourth declension nouns")
elseif stem == "iūgerum" or stem == "jūgerum" then
ij = stem == "iūgerum" and "i" or "j"
table.insert(title, "[[Appendix:Latin second declension|Second]]–[[Appendix:Latin third declension|third-declension]] hybrid neuter")
data.forms["nom_sg"] = ij .. "ūgerum"
data.forms["gen_sg"] = ij .. "ūgerī"
data.forms["dat_sg"] = ij .. "ūgerō"
data.forms["acc_sg"] = ij .. "ūgerum"
data.forms["abl_sg"] = ij .. "ūgerō"
data.forms['voc_sg'] = ij .. "ūgerum"
data.forms["nom_pl"] = ij .. "ūgera"
data.forms["gen_pl"] = ij .. "ūgerum"
data.forms["dat_pl"] = ij .. "ūgeribus"
data.forms["acc_pl"] = ij .. "ūgera"
data.forms["abl_pl"] = {ij .. "ūgeribus", ij .. "ūgerīs"}
data.forms['voc_pl'] = ij .. "ūgera"
data.notes["abl_pl2"] = "Once only, in:<br/>M. Terentius Varro, ''Res Rusticae'', bk I, ch. x"
table.insert(data.categories, "Latin second declension nouns")
table.insert(data.categories, "Latin third declension nouns")
elseif stem == "sūs" then
table.insert(title, "[[Appendix:Latin third declension|Third declension]], irregular")
data.forms["nom_sg"] = "sūs"
data.forms["gen_sg"] = "suis"
data.forms["dat_sg"] = "suī"
data.forms["acc_sg"] = "suem"
data.forms["abl_sg"] = "sue"
data.forms['voc_sg'] = "sūs"
data.forms["nom_pl"] = "suēs"
data.forms["gen_pl"] = "suum"
data.forms["dat_pl"] = {"suibus", "sūbus", "subus"}
data.forms["acc_pl"] = "suēs"
data.forms["abl_pl"] = {"suibus", "sūbus", "subus"}
data.forms["voc_pl"] = "suēs"
table.insert(data.categories, "Latin third declension nouns")
elseif stem == "vēnum" then
table.insert(title, "[[Appendix:Latin fourth declension|Fourth]] or [[Appendix:Latin second declension|second declension]]. Attested only in the dative and accusative singular forms")
data.forms["dat_sg"] = {"vēnuī", "vēnō"}
data.forms["acc_sg"] = "vēnum"
data.num = "sg"
table.insert(data.categories, "Latin second declension nouns")
table.insert(data.categories, "Latin fourth declension nouns")
elseif stem == "vīs" then
table.insert(title, "[[Appendix:Latin third declension|Third declension]], but with shortened stem in the singular. The genitive and dative singular forms are rarely used")
data.forms["nom_sg"] = "vīs"
data.forms["gen_sg"] = "*vīs"
data.forms["dat_sg"] = "*vī"
data.forms["acc_sg"] = "vim"
data.forms["abl_sg"] = "vī"
data.forms['voc_sg'] = "vīs"
data.forms["nom_pl"] = "vīrēs"
data.forms["gen_pl"] = "vīrium"
data.forms["dat_pl"] = "vīribus"
data.forms["acc_pl"] = {"vīrēs", "vīrīs"}
data.forms["abl_pl"] = "vīribus"
data.forms["voc_pl"] = "vīrēs"
table.insert(data.categories, "Latin third declension nouns")
else
error("Stem " .. stem .. " not recognized.")
end
data.title = table.concat(title, ", ")
table.insert(data.categories, "Latin irregular nouns")
end
return decl