モジュール:la-noun/data
このモジュールについての説明文ページを モジュール:la-noun/data/doc に作成できます
local decl = {}
local lang = require("モジュール:languages").getByCode("la")
local m_links = require("モジュール:links")
local m_utilities = require("モジュール:utilities")
local rsplit = mw.text.split
local rfind = mw.ustring.find
local rmatch = mw.ustring.match
local rsubn = mw.ustring.gsub
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
local function glossary_link(anchor, text)
text = text or anchor
return "[[付録:用語集#" .. anchor .. "|" .. text .. "]]"
end
local current_title = mw.title.getCurrentTitle().nsText
local NAMESPACE = current_title.nsText
local PAGENAME = current_title.text
decl["1"] = function(data, args)
local title = {}
table.insert(title, "第一変化")
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "付録" then
stem = "{{{1}}}"
else
error('語幹を入力して下さい')
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, "複数与格/奪格に''-ābus''を含む")
data.forms["dat_pl"] = stem .. "ābus"
data.forms["abl_pl"] = stem .. "ābus"
-- am
elseif data.types.am then
table.insert(title, "単数主格/呼格に''-ā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, "単数主格に''-ā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, "単数主格に''-ē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, "ギリシア語式")
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, "地格あり")
data.forms["loc_sg"] = stem .. "ae"
data.forms["loc_pl"] = stem .. "īs"
end
if data.n then
table.insert(title, "複合語で ''m'' → ''n'' に変わる")
end
data.title = table.concat(title, ", ") .. "."
table.insert(data.categories, "ラテン語 第一変化名詞")
end
decl["2"] = function(data, args)
local title = {}
table.insert(title, {"第二変化"})
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 ~= "付録" then
stem1 = "{{{1}}}"
stem2 = "{{{2}}}"
else
error('語幹を入力して下さい')
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"] = "帝国成立以前の古い文献に見られる。"
-- 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, "主格/対格/呼格に''-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, "単数主格に''-r''を含む")
else
table.insert(title, "単数主格に''-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"] = "帝国成立以前の古い文献に見られる。"
-- Greek
elseif data.types.Greek then
table.insert(title, "ギリシア語式")
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, "地格あり")
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, "複合語で ''m'' → ''n'' に変わる")
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, {"第三変化"})
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("モジュール: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 ~= "付録" then
stem1 = "{{{1}}}"
stem2 = "{{{2}}}"
else
error('語幹を入力して下さい')
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"
--with acc.pl. īs variation
if data.types.is then
data.forms["acc_pl"] = {stem2 .. "ēs", "[[" .. stem2 .. "īs]]"}
-- all neuter
elseif 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語幹")
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語幹")
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語幹")
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, "単数対格の異綴に''-im''を含む")
data.forms["acc_sg"] = {stem2 .. "em", stem2 .. "im"}
end
if data.num == "sg" then
table.insert(title, "単数奪格の異綴に''-ī''を含む")
elseif data.num == "pl" then
table.insert(title, "複数対格の異綴に''-īs''を含む")
else
table.insert(title, "単数属格の異綴に''-ī''、複数対格に''-ī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 er
if data.types.er then
table.insert(title, "単数主格に''-ē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, "地格あり")
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, "地格あり")
-- 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, "複合語で''m'' → ''n''に変わる")
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, {"第四変化"})
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "付録" then
stem = "{{{1}}}"
else
error('語幹を入力して下さい')
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], "中性")
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, "複数与格/奪格に''-ubus''を含む")
data.forms["dat_pl"] = stem .. "ubus"
data.forms["abl_pl"] = stem .. "ubus"
end
-- with locative
if data.loc then
table.insert(title, "地格あり")
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, "複合語で''m'' → ''n''に変わる")
end
title[1] = table.concat(title[1], " ")
data.title = table.concat(title, ", ") .. "."
table.insert(data.categories, "ラテン語 第四変化名詞")
end
decl["5"] = function(data, args)
local title = {}
table.insert(title, "第五変化")
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "付録" then
stem = "{{{1}}}"
else
error('語幹を入力して下さい')
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, "地格あり")
data.forms["loc_sg"] = stem .. "ē"
data.forms["loc_pl"] = stem .. "ēbus"
end
if data.n then
table.insert(title, "複合語で''m'' → ''n''に変わる")
end
data.title = table.concat(title, ", ") .. "."
table.insert(data.categories, "ラテン語 第五変化名詞")
end
decl["indecl"] = function(data, args)
local title = {}
data.title = "語形変化なし; 単数主格及び対格でのみ用いられる."
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "付録" then
stem = "{{{1}}}"
else
error('語幹を入力して下さい')
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, "ラテン語 名詞 語形変化なし")
end
decl["irreg"] = function(data, args)
local title = {}
local stem = args[1]
if not stem or stem == "" then
if NAMESPACE ~= "" and NAMESPACE ~= "付録" then
stem = "{{{1}}}"
else
error('語幹を入力して下さい')
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, "第三変化, 不規則")
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, "ラテン語 第三変化名詞")
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, "ラテン語 名詞 語形変化なし")
elseif stem == "deus" then
table.insert(title, "不規則な複数形を持つ第二変化")
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, "ラテン語 第二変化名詞")
elseif stem == "Deus" then
table.insert(title, "不規則な呼格を持つ第二変化")
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, "ラテン語 第二変化名詞")
elseif stem == "domus" then
table.insert(title, "地格を含む第四変化、幾つかの異形は第二変化より")
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, "ラテン語 第二変化名詞")
table.insert(data.categories, "ラテン語 第四変化名詞")
elseif stem == "Iēsus" then
table.insert(title, "非常に不規則であるが第四変化に属すると思われる")
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, "ラテン語 第四変化名詞")
elseif stem == "iūgerum" or stem == "jūgerum" then
ij = stem == "iūgerum" and "i" or "j"
table.insert(title, "第二/三変化混合, 中性")
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, "ラテン語 第二変化名詞")
table.insert(data.categories, "ラテン語 第三変化名詞")
elseif stem == "sūs" then
table.insert(title, "第三変化, 不規則")
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, "ラテン語 第三変化名詞")
elseif stem == "ēthos" then
table.insert(data.subtitles, glossary_link("不規則"))
table.insert(data.subtitles, "ギリシア語式")
data.forms["nom_sg"] = "ēthos"
data.forms["gen_sg"] = "ētheos"
data.forms["acc_sg"] = "ēthos"
data.forms["voc_sg"] = "ēthos"
data.forms["nom_pl"] = {"ēthea", "ēthē"}
data.forms["dat_pl"] = {"ēthesi", "ēthesin"}
data.forms["acc_pl"] = {"ēthea", "ēthē"}
data.forms["abl_pl"] = {"ēthesi", "ēthesin"}
data.forms["voc_pl"] = {"ēthea", "ēthē"}
elseif stem == "lexis" then
table.insert(data.subtitles, glossary_link("不規則"))
table.insert(data.subtitles, "ギリシア語式")
data.forms["nom_sg"] = "lexis"
data.forms["gen_sg"] = "lexeōs"
data.forms["acc_pl"] = "lexeis"
elseif stem == "Athōs" then
table.insert(data.subtitles, "highly " .. glossary_link("不規則"))
table.insert(data.subtitles, "ギリシア語式")
data.forms["nom_sg"] = "Athōs"
data.forms["gen_sg"] = "Athō"
data.forms["dat_sg"] = "Athō"
data.forms["acc_sg"] = {"Athō", "Athōn"}
data.forms["abl_sg"] = "Athō"
data.forms["voc_sg"] = "Athōs"
data.num = "sg"
elseif stem == "Pammenēs" then
data.title = "Variably declined either according to [[Appendix:Latin third declension|Latin’s third declension]] or in a manner adapted from [[Appendix:Ancient Greek first declension|Ancient Greek’s first declension]]"
data.forms["nom_sg"] = "Pammenēs"
data.forms["gen_sg"] = {"Pammenis", "Pammenī"}
data.forms["dat_sg"] = {"Pammenī", "Pammenē"}
data.forms["acc_sg"] = {"Pammenem", "Pammenēn"}
data.forms["abl_sg"] = "Pammenē̆"
data.forms["voc_sg"] = {"Pammenēs", "Pammenē"}
data.num = "sg"
elseif stem == "vēnum" then
table.insert(title, "第四変化又は第二変化(与格及び対格の単数形のみ)")
data.forms["dat_sg"] = {"vēnuī", "vēnō"}
data.forms["acc_sg"] = "vēnum"
data.num = "sg"
table.insert(data.categories, "ラテン語 第二変化名詞")
table.insert(data.categories, "ラテン語 第四変化名詞")
elseif stem == "vīs" then
table.insert(title, "第三変化(単数形に短縮した語幹を含む。属格及び与格の単数形はまれに使用)")
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, "ラテン語 第三変化名詞")
else
error("Stem " .. stem .. " not recognized.")
end
data.title = table.concat(title, ", ") .. "."
table.insert(data.categories, "ラテン語 名詞 不規則変化")
end
return decl