Ҷаҳиш ба мӯҳтаво

Модул:la-noun/data

Аз Wiktionary

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