Modul:la-adj/data

Üdvözlöm, Ön a Modul:la-adj/data szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:la-adj/data szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Modul:la-adj/data szót egyes és többes számban mondani. Minden, amit a Modul:la-adj/data szóról tudni kell, itt található. A Modul:la-adj/data szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:la-adj/data és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

A modult a Modul:la-adj/data/doc lapon tudod dokumentálni

local decl = {}

local lang = require("Module:languages").getByCode("la")
local m_links = require("Module:links")
local m_utilities = require("Module:utilities")

local rmatch = mw.ustring.match

NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText

local function glossary_link(anchor, text)
	text = text or anchor
	return "]"
end

local function decl_link(english_declension, decl_text)
	decl_text = decl_text or english_declension .. "-ragozás"
	return "]"
end

local function singularize(plural)
	-- THIS IS A HACK. We may be passed the word "suffix", where we need to remove
	-- the -es. We also include words ending in -ch or -sh for good measure.
	-- In most other cases we need to remove only the -s.
	if plural:find("xes$") or plural:find("hes$") then
		return plural:gsub("es$", "")
	else
		return plural:gsub("s$", "")
	end
end

decl = function(data, args)
	data.title = glossary_link("indeclinable") .. " " .. singularize(data.pos)

	local stem = args

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	data.forms = stem
	data.forms = stem

	table.insert(data.categories, "latin indeclinable " .. data.pos)
end

decl = function(data, args)
	local singpos = singularize(data.pos)
	if data.gender == "F" then
		data.title = decl_link("első") .. " " .. singpos
	elseif data.gender then
		data.title = decl_link("második") .. " " .. singpos
	else
		data.title = decl_link("első", "első") .. "/" .. decl_link("második") .. " " .. singpos
	end

	local stem = args
	local original = nil

	if data.types.er then
		if mw.ustring.match(stem, "er$") then
			table.insert(data.subtitles, "nominative masculine singular in ''-er''")
			table.insert(data.categories, "latin első és második ragozású "
				.. data.pos .. " with nominative masculine singular in -er")
		elseif mw.ustring.match(stem, "ur$") then
			table.insert(data.subtitles, "nominative masculine singular in ''-ur''")
			table.insert(data.categories, "latin első és második ragozású "
				.. data.pos .. " with nominative masculine singular in -ur")
		else
			error("Unrecognized ''-r'' stem (doesn't end in ''-er'' or ''-ur''): " .. stem)
		end
		original = stem
		stem = args
	end

	local us = "us"
	local a_sf = "a"
	local um = "um"
	local ae_gsf = "ae"
	local am = "am"
	local a_macron = "ā"

	if data.types.greekA or data.types.greekE then
		table.insert(data.subtitles, "görög típusú")
		table.insert(data.categories, "latin első és második ragozású " ..
			data.pos .. " görög ragozással")
		if data.types.greekA then
			us = "os"
			um = "on"
			am = "ān"
		else
			us = "os"
			a_sf = "ē"
			um = "on"
			ae_gsf = "ēs"
			am = "ēn"
			a_macron = "ē"
		end
	end

	data.forms = original or (stem .. us)
	data.forms = stem .. a_sf
	data.forms = stem .. um
	data.forms = stem .. "ī"
	data.forms = stem .. "ae"
	data.forms = stem .. "a"

	data.forms = stem .. "ī"
	data.forms = stem .. ae_gsf
	data.forms = stem .. "ī"
	data.forms = stem .. "ōrum"
	data.forms = stem .. "ārum"
	data.forms = stem .. "ōrum"

	data.forms = stem .. "ō"
	data.forms = stem .. "ae"
	data.forms = stem .. "ō"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	data.forms = stem .. um
	data.forms = stem .. am
	data.forms = stem .. um
	data.forms = stem .. "ōs"
	data.forms = stem .. "ās"
	data.forms = stem .. "a"

	data.forms = stem .. "ō"
	data.forms = stem .. a_macron
	data.forms = stem .. "ō"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	data.forms = original or (stem .. "e")
	data.forms = stem .. a_sf
	data.forms = stem .. um
	data.forms = stem .. "ī"
	data.forms = stem .. "ae"
	data.forms = stem .. "a"

	data.forms = stem .. "ī"
	data.forms = stem .. "ae"
	data.forms = stem .. "ī"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	if data.types.ius then
		table.insert(data.subtitles, "pronominal")
		--table.insert(data.subtitles, "with genitive singular in ''-īus'' and dative singular in ''-ī''")
		table.insert(data.categories, "latin első és második ragozású " ..
			data.pos .. " with genitive singular in -īus")
		data.forms = stem .. "īus"
		data.forms = stem .. "īus"
		data.forms = stem .. "īus"
		data.forms = stem .. "ī"
		data.forms = stem .. "ī"
		data.forms = stem .. "ī"
	elseif data.types.not_ius then
		table.insert(data.subtitles, "non-pronominal")
		--table.insert(data.subtitles, "with normal genitive and dative singular")
	end
	if stem == "me" then
		data.forms = "mī"
	end
	if data.types.ic then
		table.insert(data.subtitles, "''hic''-type")
		--table.insert(data.subtitles, "with genitive singular ending in ''-ius'' and dative singular ending in ''-ic''")

		local oc = "oc"
		local oc_macron = "ōc"
		if stem == "ill" then
			oc = "uc"
			oc_macron = "ūc"
		end

		data.forms = stem .. "ic"
		data.forms = stem .. "aec"
		data.forms = stem .. oc
		data.forms = stem .. "aec"

		data.forms = {stem .. "uius", stem .. "ujus"}
		data.forms = {stem .. "uius", stem .. "ujus"}
		data.forms = {stem .. "uius", stem .. "ujus"}

		data.forms = stem .. "uic"
		data.forms = stem .. "uic"
		data.forms = stem .. "uic"

		data.forms = stem .. "unc"
		data.forms = stem .. "anc"
		data.forms = stem .. oc
		data.forms = stem .. "aec"

		data.forms = stem .. "ōc"
		data.forms = stem .. "āc"
		data.forms = stem .. oc_macron

		data.voc = false
	end

	table.insert(data.categories, "latin első és második ragozású " ..
		data.pos)
end

decl = function(data, args)
	data.title = decl_link("first") .. " " .. singularize(data.pos)
	table.insert(data.subtitles, "masculine and neuter forms identical to feminine forms")

	local stem = args

	data.forms = stem .. "a"
	data.forms = stem .. "ae"

	data.forms = stem .. "ae"
	data.forms = stem .. "ārum"

	data.forms = stem .. "ae"
	data.forms = stem .. "īs"

	data.forms = stem .. "am"
	data.forms = stem .. "a"
	data.forms = stem .. "ās"
	data.forms = stem .. "ae"

	data.forms = stem .. "ā"
	data.forms = stem .. "īs"

	data.forms = stem .. "ae"
	data.forms = stem .. "īs"

	data.forms = stem .. "a"
	data.forms = stem .. "ae"

	table.insert(data.categories, "latin első ragozás " .. data.pos)
end

decl = function(data, args)
	data.title = decl_link("második") .. " " .. singularize(data.pos)
	table.insert(data.subtitles, "feminine forms identical to masculine forms")

	local stem = args

	local us = "us"
	local um = "um"
	local i_pl = "ī"

	if data.types.greek then
		table.insert(data.subtitles, "görög típusú")
		table.insert(data.categories, "latin második ragozás " .. data.pos ..
			" görög ragozással")
		us = "os"
		um = "on"
		i_pl = "oe"
	end

	data.forms = stem .. us
	data.forms = stem .. um
	data.forms = stem .. i_pl
	data.forms = stem .. "a"

	data.forms = stem .. "ī"
	data.forms = stem .. "ī"
	data.forms = stem .. "ōrum"
	data.forms = stem .. "ōrum"

	data.forms = stem .. "ō"
	data.forms = stem .. "ō"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	data.forms = stem .. um
	data.forms = stem .. um
	data.forms = stem .. "ōs"
	data.forms = stem .. "a"

	data.forms = stem .. "ō"
	data.forms = stem .. "ō"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	data.forms = stem .. "ī"
	data.forms = stem .. "ī"
	data.forms = stem .. "īs"
	data.forms = stem .. "īs"

	data.forms = stem .. "e"
	data.forms = stem .. um
	data.forms = stem .. i_pl
	data.forms = stem .. "a"

	table.insert(data.categories, "latin második ragozás " .. data.pos)
end

decl = function(data, args)
	local singpos = singularize(data.pos)
	if data.gender then
		data.title = decl_link("harmadik") .. " " .. singpos
	else
		data.title = decl_link("harmadik") .. " one-termination " .. singpos
	end

	local stem1 = args
	local stem2 = args

	data.forms = stem1
	data.forms = stem1
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	data.forms = stem2 .. "is"
	data.forms = stem2 .. "is"
	data.forms = stem2 .. "ium"
	data.forms = stem2 .. "ium"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem2 .. "em"
	data.forms = stem1
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem1
	data.forms = stem1
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	if data.types.par then
		table.insert(data.subtitles, "non-i-stem")
		data.forms = stem2 .. "a"
		data.forms = stem2 .. "um"
		data.forms = stem2 .. "um"
		data.forms = stem2 .. "e"
		data.forms = stem2 .. "e"
		data.forms = {stem2 .. "ī", stem2 .. "e"}
		data.forms = {stem2 .. "ī", stem2 .. "e"}
		data.forms = stem2 .. "a"
		data.forms = stem2 .. "a"
	elseif data.types.not_par then
		table.insert(data.subtitles, "i-stem")
	end

	local es_base = rmatch(stem1, "^(.*)ēs$")
	if es_base and es_base == stem2 then
		if data.types.greek then
			local note = "It is unknown if Classical latin preserved (or would have preserved) the shortness of the original Greek short ending."
			data.forms = {stem2 .. "es", stem2 .. "ēs"}
			data.notes = note
			data.forms = {stem2 .. "es", stem2 .. "ēs"}
			data.notes = note
			data.forms = {stem2 .. "es", stem2 .. "ēs"}
			data.notes = note
			data.forms = {stem2 .. "es", stem2 .. "ēs"}
			data.notes = note
			table.insert(data.subtitles, "Greek-type")
		elseif data.types.not_greek then
			table.insert(data.subtitles, "non-Greek-type")
		end
	end

	table.insert(data.categories, "latin harmadik ragozás " .. data.pos)
end

decl = function(data, args)
	local stem = args

	data.types.par = true
	decl(data, {stem .. "or", stem .. "ōr"})

	data.title = decl_link("third") .. " comparative " .. singularize(data.pos)
	data.subtitles = {}

	data.forms = stem .. "us"
	data.forms = stem .. "us"
	data.forms = stem .. "us"
end

decl = function(data, args)
	local stem1 = args
	local stem2 = args

	decl(data, args)
	data.title = decl_link("third") .. " participle"

	data.forms = {stem2 .. "e", stem2 .. "ī"}
	data.notes = "When used purely as an adjective."
	data.forms = {stem2 .. "e", stem2 .. "ī"}
	data.notes = "When used purely as an adjective."
	data.forms = {stem2 .. "ēs", stem2 .. "īs"}
end

decl = function(data, args)
	local singpos = singularize(data.pos)
	if data.gender then
		data.title = decl_link("third") .. " " .. singpos
	else
		data.title = decl_link("third") .. " two-termination " .. singpos
	end

	local stem = args
	local stem2 = args

	data.forms = stem .. "is"
	data.forms = stem .. "e"
	data.forms = stem .. "ēs"
	data.forms = stem .. "ia"

	data.forms = stem .. "is"
	data.forms = stem .. "is"
	data.forms = stem .. "ium"
	data.forms = stem .. "ium"

	data.forms = stem .. "ī"
	data.forms = stem .. "ī"
	data.forms = stem .. "ibus"
	data.forms = stem .. "ibus"

	data.forms = stem .. "em"
	data.forms = stem .. "e"
	data.forms = {stem .. "ēs", stem .. "īs"}
	data.forms = stem .. "ia"

	data.forms = stem .. "ī"
	data.forms = stem .. "ī"
	data.forms = stem .. "ibus"
	data.forms = stem .. "ibus"

	data.forms = stem .. "ī"
	data.forms = stem .. "ī"
	data.forms = stem .. "ibus"
	data.forms = stem .. "ibus"

	data.forms = stem .. "is"
	data.forms = stem .. "e"
	data.forms = stem .. "ēs"
	data.forms = stem .. "ia"

	table.insert(data.categories, "latin harmadik ragozás " .. data.pos)
end

decl = function(data, args)
	local singpos = singularize(data.pos)
	if data.gender then
		data.title = decl_link("third") .. " " .. singpos
	else
		data.title = decl_link("third") .. " three-termination " .. singpos
	end

	local stem1 = args
	local stem2 = args

	data.forms = stem1
	data.forms = stem2 .. "is"
	data.forms = stem2 .. "e"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	data.forms = stem2 .. "is"
	data.forms = stem2 .. "is"
	data.forms = stem2 .. "is"
	data.forms = stem2 .. "ium"
	data.forms = stem2 .. "ium"
	data.forms = stem2 .. "ium"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem2 .. "em"
	data.forms = stem2 .. "em"
	data.forms = stem2 .. "e"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ī"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"
	data.forms = stem2 .. "ibus"

	data.forms = stem1
	data.forms = stem2 .. "is"
	data.forms = stem2 .. "e"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ēs"
	data.forms = stem2 .. "ia"

	table.insert(data.categories, "latin harmadik ragozás " .. data.pos)
end

decl = function(data,args)
	if args == "duo" or args == "ambō" then
		data.title = stem == "amb" and glossary_link("irregular") .. " adjective" or "numeral"
		local stem = args == "duo" and "du" or "amb"
		data.num = "pl"

		local stem_with_o = stem .. (stem == "amb" and "ō" or "o")

		data.forms = stem_with_o
		data.forms = stem .. "ae"
		data.forms = stem_with_o

		data.forms = stem .. "ōrum"
		data.forms = stem .. "ārum"
		data.forms = stem .. "ōrum"

		data.forms = stem .. "ōbus"
		data.forms = stem .. "ābus"
		data.forms = stem .. "ōbus"

		data.forms = {stem .. "ōs", stem_with_o}
		data.forms = stem .. "ās"
		data.forms = stem_with_o

		data.forms = stem .. "ōbus"
		data.forms = stem .. "ābus"
		data.forms = stem .. "ōbus"

		data.forms = stem_with_o
		data.forms = stem .. "ae"
		data.forms = stem_with_o

		if stem == "du" then
			data.footnote = "Note: The genitive masculine and neuter can also be found in the contracted form '']'' (also spelt '']'')."
		end

	elseif args == "mīlle" then
		data.title = "semi-" .. glossary_link("indeclinable") .. " numeral"
		data.forms = "mīlle"
		data.forms = {"mīlia", "mīllia"}

		data.forms = "mīlle"
		data.forms = {"mīlium", "mīllium"}

		data.forms = "mīlle"
		data.forms = {"mīlibus", "mīllibus"}

		data.forms = "mīlle"
		data.forms = {"mīlia", "mīllia"}

		data.forms = "mīlle"
		data.forms = {"mīlibus", "mīllibus"}

		data.forms = "mīlle"
		data.forms = {"mīlia", "mīllia"}
	elseif args == "plūs" then
		data.title = glossary_link("irregular") .. " " .. decl_link("third") .. " comparative adjective"

		data.forms = ""
		data.forms = "plūs"
		data.forms = "plūrēs"
		data.forms = "plūra"

		data.forms = ""
		data.forms = "plūris"
		data.forms = "plūrium"
		data.forms = "plūrium"

		data.forms = ""
		data.forms = ""
		data.forms = "plūribus"
		data.forms = "plūribus"

		data.forms = ""
		data.forms = "plūs"
		data.forms = "plūrēs"
		data.forms = "plūra"

		data.forms = ""
		data.forms = "plūre"
		data.forms = "plūribus"
		data.forms = "plūribus"

		data.forms = ""
		data.forms = "plūs"
		data.forms = "plūrēs"
		data.forms = "plūra"

		data.footnote = "Note: Singular forms take the genitive of the whole and do not function as adjectives."

		table.insert(data.categories, "latin harmadik ragozás " .. data.pos)
	elseif args == "is" or args == "īdem" then
		data.title = glossary_link("demonstrative") .. " pronoun"

		local m = "m"
		local i = "i"
		if args == "īdem" then
			m = "n"
			i = ""
		end

		data.forms = "is"
		data.forms = "ea"
		data.forms = "id"
		data.forms = {"eī", "iī"}
		data.forms = "eae"
		data.forms = "ea"

		data.forms = {"eius", "ejus"}
		data.forms = {"eius", "ejus"}
		data.forms = {"eius", "ejus"}
		data.forms = "eōru"..m
		data.forms = "eāru"..m
		data.forms = "eōru"..m

		data.forms = "eī"
		data.forms = "eī"
		data.forms = "eī"
		data.forms = {"eīs", i.."īs"}
		data.forms = {"eīs", i.."īs"}
		data.forms = {"eīs", i.."īs"}

		data.forms = "eu"..m
		data.forms = "ea"..m
		data.forms = "id"
		data.forms = "eōs"
		data.forms = "eās"
		data.forms = "ea"

		data.forms = "eō"
		data.forms = "eā"
		data.forms = "eō"
		data.forms = {"eīs", i.."īs"}
		data.forms = {"eīs", i.."īs"}
		data.forms = {"eīs", i.."īs"}

		data.voc = false

		if args == "īdem" then
			data.forms = "ī"
			data.forms = "i"
			data.forms = "ī"

			data.forms = "eius"
			data.forms = "eius"
			data.forms = "eius"

			data.forms = "i"
		end
	elseif args == "ille" then
		data.types.ius = true

		decl(data, {"ill"})

		data.title = glossary_link("demonstrative") .. " pronoun"

		data.forms = "ille"
		data.forms = "illud"

		data.forms = "illud"

		data.voc = false

		data.categories = {}
	elseif args == "iste" then
		data.types.ius = true

		decl(data, {"ist"})

		data.title = glossary_link("demonstrative") .. " pronoun"

		data.forms = "iste"
		data.forms = "istud"

		data.forms = "istud"

		data.voc = false

		data.categories = {}
	elseif args == "ipse" then
		data.types.ius = true

		decl(data, {"ips"})

		data.title = glossary_link("demonstrative") .. " pronoun"

		data.forms = "ipse"
		data.forms = "ipsum"

		data.forms = "ipsum"

		data.voc = false

		data.categories = {}
	elseif args == "quis" or args == "quī" then
		local id = "id"
		local em = "em"
		local o = "ō"
		if args == "quī" then
			id = "od"
			em = "am"
			o = "ā"
		end
		data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"

		data.forms = "quis"
		data.forms = "quis"
		data.forms = "qu"..id
		data.forms = "quī"
		data.forms = "quae"
		data.forms = "quae"

		data.forms = {"cuius", "cujus"}
		data.forms = {"cuius", "cujus"}
		data.forms = {"cuius", "cujus"}
		data.forms = "quōrum"
		data.forms = "quārum"
		data.forms = "quōrum"

		data.forms = "cui"
		data.forms = "cui"
		data.forms = "cui"
		data.forms = "quibus"
		data.forms = "quibus"
		data.forms = "quibus"

		data.forms = "quem"
		data.forms = "qu"..em
		data.forms = "qu"..id
		data.forms = "quōs"
		data.forms = "quās"
		data.forms = "quae"

		data.forms = "quō"
		data.forms = "qu"..o
		data.forms = "quō"
		data.forms = "quibus"
		data.forms = "quibus"
		data.forms = "quibus"

		data.voc = false

		if args == "quī" then
			data.forms = "quī"
			data.forms = "quae"
		end

	elseif args == "quisquis" then
		data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"

		data.forms = "quisquis"
		data.forms = "quisquis"
		data.forms = {"quidquid", "quicquid"}
		data.forms = "quīquī"
		data.forms = "quaequae"
		data.forms = "quaequae"

		data.forms = {"cuiuscuius", "cujuscujus"}
		data.forms = {"cuiuscuius", "cujuscujus"}
		data.forms = {"cuiuscuius", "cujuscujus"}
		data.forms = "quōrumquōrum"
		data.forms = "quārumquārum"
		data.forms = "quōrumquōrum"

		data.forms = "cuicui"
		data.forms = "cuicui"
		data.forms = "cuicui"
		data.forms = "quibusquibus"
		data.forms = "quibusquibus"
		data.forms = "quibusquibus"

		data.forms = "quemquem"
		data.forms = "quamquam"
		data.forms = {"quidquid", "quicquid"}
		data.forms = "quōsquōs"
		data.forms = "quāsquās"
		data.forms = "quaequae"

		data.forms = "quōquō"
		data.forms = "quāquā"
		data.forms = "quōquō"
		data.forms = "quibusquibus"
		data.forms = "quibusquibus"
		data.forms = "quibusquibus"

		data.forms = "quisquis"
		data.forms = "quisquis"
		data.forms = {"quidquid", "quicquid"}
		data.forms = "quīquī"
		data.forms = "quaequae"
		data.forms = "quaequae"

		data.voc = true
	else
		error('adjective ' .. args .. ' not recognized')
	end
end

return decl

-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet: