Модул:la-noun/data
Намуди зоҳирӣ
Documentation for this module may be created at Модул:la-noun/data/doc
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:Latin first declension|First 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 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 ''-am''")
data.forms["nom_sg"] = stem .. "am"
data.forms["voc_sg"] = stem .. "am"
-- 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, "Latin first declension nouns")
end
decl["2"] = function(data, args)
local title = {}
table.insert(title, {"[[Appendix:Latin second declension|Second declension]]"})
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
table.insert(title, "nominative singular in ''-er''")
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 ''" .. stem2 .. "e''."
-- 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", stem1 .. "um"}
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, "Latin second declension nouns")
end
decl["3"] = function(data, args)
local title = {}
table.insert(title, {"[[Appendix:Latin third declension|Third declension]]"})
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 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 varietry
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
table.insert(title, "alternative ablative singular in ''-ī'' and accusative plural in ''-īs''")
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["acc_pl"] = stem2 .. "as"
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, "Latin third declension nouns")
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"
-- ubus
elseif 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
-- normal 5th
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"
-- vowel type
if data.types.vow 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 == "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"}
data.forms["acc_pl"] = "suēs"
data.forms["abl_pl"] = {"suibus", "sūbus"}
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 not recognized.")
end
data.title = table.concat(title, ", ") .. "."
table.insert(data.categories, "Исми номунтазам лотинӣ")
end
return decl