Module:category tree/poscatboiler/data/lang-specific/la

From Wiktionary, the free dictionary
Jump to navigation Jump to search

This module handles generating the descriptions and categorization for Latin category pages of the format "Latin LABEL" where LABEL can be any text. Examples are Category:Bulgarian conjugation 2.1 verbs and Category:Russian velar-stem neuter-form nouns. This module is part of the poscatboiler system, which is a general framework for generating the descriptions and categorization of category pages.

For more information, see Module:category tree/poscatboiler/data/lang-specific/documentation.

NOTE: If you add a new language-specific module, you must add the language code to the list at the top of Module:category tree/poscatboiler/data/lang-specific in order for the module to be recognized.


local labels = {}

labels["terms with variable monophthongization"] = {
	description = "Several Classical Latin terms with /au̯/ or /ae̯/ also have attested variants with /oː/ or /eː/ instead, reflecting influence from regional dialects.",
	parents = {"terms by phonemic property"},
}

-----------------------------------------------------------------------------
--                                                                         --
--                                  VERBS                                  --
--                                                                         --
-----------------------------------------------------------------------------


local conjugations = {
	first = "1",
	second = "2",
	third = "3",
	fourth = "4",
}

local function conjtext_conjlink(conjugation)
	local conjtext = conjugation .. " conjugation"
	local conjlink = "[[Appendix:Latin " .. conjtext .. "|" .. conjtext .. "]]"
	return conjtext, conjlink
end

for conjugation, conjnum in pairs(conjugations) do
	local conjtext, conjlink = conjtext_conjlink(conjugation)
	labels[conjtext .. " verbs"] = {
		description = "{{{langname}}} verbs of the " .. conjlink .. ".",
		parents = {
			{name = "verbs by inflection type", sort = conjnum},
		},
		breadcrumb = conjtext
	}
end

labels["verbs by perfect"] = {
	description = "{{{langname}}} verbs categorized by the formation of their perfect tense.",
	parents = {"verbs by derivation type"},
}

-- Add labels for e.g. [[Category:Latin verbs with perfect in -iv-]] and
-- [[Category:Latin third conjugation verbs with perfect in -s- or -x-]].
local perf_suffixes = {
	["-av-"] = {
		display = "{{m|la||-āv-}}",
		displaytitle = "{{m|la||-av-}}",
	},
	["-ev-"] = {
		display = "{{m|la||-ēv-}}",
		displaytitle = "{{m|la||-ev-}}",
	},
	["-iv-"] = {
		display = "{{m|la||-īv-}}",
		displaytitle = "{{m|la||-iv-}}",
	},
	["-i-"] = {
		display = "{{m|la||-i-}}",
	},
	["-u-"] = {
		display = "{{m|la||-u-}}",
	},
	["-s- or -x-"] = {
		display = "{{m|la||-s-}} or {{m|la||-x-}}",
		affix = "affixes",
	},
}
for perftype, obj in pairs(perf_suffixes) do
	local link = obj.link or obj.display
	local displaytitle = obj.displaytitle or obj.display
	local breadcrumb = obj.display
	local affix = obj.affix or "affix"
	labels["verbs with perfect in " .. perftype] = {
		description = "{{{langname}}} verbs whose perfect tense was formed using the " .. affix .. " " .. link .. ".",
		displaytitle = "{{{langname}}} verbs with perfect in " .. displaytitle,
		parents = {{name = "verbs by perfect", sort = perftype}},
		breadcrumb = breadcrumb,
	}
	for conjugation, conjnum in pairs(conjugations) do
		local conjtext, conjlink = conjtext_conjlink(conjugation)
		labels[conjtext .. " verbs with perfect in " .. perftype] = {
			description = "{{{langname}}} " .. conjlink .. " verbs whose perfect tense was formed using the " .. affix .. " " .. link .. ".",
			displaytitle = "{{{langname}}} " .. conjtext .. " verbs with perfect in " .. displaytitle,
			parents = {
				{name = conjtext .. " verbs", sort = "perfect in " .. perftype},
				{name = "verbs with perfect in " .. perftype, sort = conjnum},
			},
			breadcrumb = "perfect in " .. breadcrumb,
		}
	end
end


-- Add labels for e.g. [[Category:Latin verbs with irregular perfect]] and
-- [[Category:Latin third conjugation verbs with suffixless perfect]].
for perfvar, perfvartext in pairs({
	irregular = "irregularly",
	suffixless = "without a suffix",
}) do
	labels["verbs with " .. perfvar .. " perfect"] = {
		description = "{{{langname}}} verbs whose perfect tense was formed " .. perfvartext .. ".",
		parents = {{name = "verbs by perfect", sort = perfvar}},
		breadcrumb = perfvar,
	}
	for conjugation, conjnum in pairs(conjugations) do
		local conjtext, conjlink = conjtext_conjlink(conjugation)
		labels[conjtext .. " verbs with " .. perfvar .. " perfect"] = {
			description = "{{{langname}}} " .. conjlink .. " verbs whose perfect tense was formed " .. perfvartext .. ".",
			parents = {
				{name = conjtext .. " verbs", sort = perfvar .. " perfect"},
				{name = "verbs with " .. perfvar .. " perfect", sort = conjnum},
			},
			breadcrumb = perfvar .. " perfect",
		}
	end
end

labels["verbs with sigmatic forms"] = {
	description = "{{{langname}}} verbs attested in one of the [[sigmatic]] tenses, which are found in [[Old Latin]]; mostly notably used by [[w:Plautus|Plautus]] and [[w:Terence|Terence]].",
	parents = {"verbs"},
	breadcrumb = "sigmatic forms"
}

labels["verbs with passive sigmatic forms"] = {
	description = "{{{langname}}} verbs attested in the rare [[sigmatic]] future passive indicative tense, which is found in [[Old Latin]].",
	parents = {"verbs with sigmatic forms"},
	breadcrumb = "passive"
}

labels["verbs without the conjugation in their headwords"] = {
	description = "{{{langname}}} verbs whose headwords are missing the conjugation.",
	parents = {"entry maintenance"},
	hidden = true,
}



-----------------------------------------------------------------------------
--                                                                         --
--                                  NOUNS                                  --
--                                                                         --
-----------------------------------------------------------------------------


local genders = {
	"masculine",
	"feminine",
	"neuter",
	"unknown gender",
	"unattested gender",
}

local noun_declensions = {
	first = "1",
	second = "2",
	third = "3",
	fourth = "4",
	fifth = "5",
}

local function decltext_decllink(declension)
	local decltext = declension .. " declension"
	local decllink = "[[Appendix:Latin " .. decltext .. "|" .. decltext .. "]]"
	return decltext, decllink
end

for _, pos in ipairs({"nouns", "suffixes"}) do
	-- Add labels for e.g. [[Category:Latin fifth declension suffixes]] and
	-- [[Category:Latin feminine nouns in the fourth declension]].
	for decl, declnum in pairs(noun_declensions) do
		local decltext, decllink = decltext_decllink(decl)
		labels[decltext .. " " .. pos] = {
			description = "{{{langname}}} " .. pos .. " of the " .. decllink .. ".",
			parents = {{name = pos .. " by inflection type", sort = declnum}},
			breadcrumb = decltext,
		}

		for _, gender in ipairs(genders) do
			labels[gender .. " " .. pos .. " in the " .. decltext] = {
				description = "{{{langname}}} " .. gender .. " " .. pos .. " of the " .. decllink .. ".",
				parents = {
					{name = decltext .. " " .. pos, sort = gender},
					{name = gender .. " " .. pos, sort = declnum},
				},
				breadcrumb = gender,
			}
		end
	end

	-- Add labels for e.g. [[Category:Latin masculine indeclinable nouns]] and
	-- [[Category:Latin feminine irregular nouns]].
	for _, nounvar in ipairs({"indeclinable", "irregular"}) do
		for _, gender in ipairs(genders) do
			local decltext = nounvar
			local decllink = "{{glossary|" .. nounvar .. "}}"
			labels[gender .. " " .. decltext .. " " .. pos] = {
				description = "{{{langname}}} " .. gender .. " " .. decllink .. " " .. pos .. ".",
				parents = {
					{name = decltext .. " " .. pos, sort = gender},
					{name = gender .. " " .. pos, sort = decltext},
				},
				breadcrumb = gender,
			}
		end
	end
	
	-- Add labels for e.g. [[Category:Latin unknown gender nouns]].
	labels["unknown gender " .. pos] = {
		description = "{{{langname}}} unknown gender " .. pos .. ".",
		parents = {
			{name = "nouns by gender", sort = "unknown"},
		},
		breadcrumb = "unknown",
	}
	
	-- Add labels for e.g. [[Category:Latin unattested gender nouns]].
	labels["unattested gender " .. pos] = {
		description = "{{{langname}}} " .. pos .. " whose gender is unattested, typically because the term itself is barely attested.",
		parents = {
			{name = "nouns by gender", sort = "unattested"},
		},
		breadcrumb = "unattested",
	}
	
	-- Add labels for e.g. [[Category:Latin nouns with a genitive singular]].
	labels[pos .. " without a genitive singular"] = {
		description = "{{{langname}}} " .. pos .. " without a genitive singular.",
		parents = {
			{name = "irregular nouns", sort = "without a genitive singular"},
		},
		breadcrumb = "without a genitive singular",
	}
end

-----------------------------------------------------------------------------
--                                                                         --
--                                ADJECTIVES                               --
--                                                                         --
-----------------------------------------------------------------------------


-- First/second declension adjectival subtypes, e.g.
-- [[Category:Latin first and second declension numerals with genitive singular in -īus]].
local subtypes_12 = {
	["nominative masculine singular in -er"] = {
		display = "nominative masculine singular in {{m|la||-er}}",
	},
	["nominative masculine singular in -ur"] = {
		display = "nominative masculine singular in {{m|la||-ur}}",
	},
	["genitive singular in -īus"] = {
		display = "genitive singular in {{m|la||-īus}}",
		link = "genitive singular in {{m|la|-īus}}",
	},
	["Greek declension"] = {
		display = "Greek declension",
	},
}

-- Add labels for e.g. [[Category:Latin first and second declension participles]],
-- [[Category:Latin first and second declension adjectives with Greek declension]] and
-- [[Category:Latin third declension determiners]].
for _, pos in ipairs({"adjectives", "numerals", "determiners", "participles", "suffixes"}) do
	local decltext = "first and second declension"
	local decllink = "[[Appendix:Latin first declension|first]] and [[Appendix:Latin second declension|second declension]]"
	labels[decltext .. " " .. pos] = {
		description = "{{{langname}}} " .. pos .. " of the " .. decllink .. ".",
		parents = {{name = pos .. " by inflection type", sort = "12"}},
		breadcrumb = decltext,
	}
	for subtype, obj in pairs(subtypes_12) do 
		labels[decltext .. " " .. pos .. " with " .. subtype] = {
			description = "{{{langname}}} " .. pos .. " of the " .. decllink .. " with " .. (obj.link or obj.display) .. ".",
			displaytitle = "{{{langname}}} " .. decltext .. " " .. pos .. " with " .. obj.display,
			parents = {{name = decltext .. " " .. pos, sort = subtype}},
			breadcrumb = obj.display,
		}
	end
	local decltext3, decllink3 = decltext_decllink("third")
	labels[decltext3 .. " " .. pos] = {
		description = "{{{langname}}} " .. pos .. " of the " .. decllink3 .. ".",
		parents = {{name = pos .. " by inflection type", sort = "3"}},
		breadcrumb = decltext3,
	}
	for num_terms, third_decl_subtype in ipairs({"one termination", "two terminations", "three terminations"}) do
		labels[decltext3 .. " " .. pos .. " of " .. third_decl_subtype] = {
			description = "{{{langname}}} " .. pos .. " of the " .. decllink3 .. ", with " ..
				third_decl_subtype .. " in the nominative singular.",
			parents = {{name = decltext3 .. " " .. pos, sort = num_terms}},
			breadcrumb = third_decl_subtype,
		}
	end
end

-- Add labels for [[Category:Latin first declension adjectives]], [[Category:Latin second declension adjectives]].
for decl, declnum in pairs({first = "1", second = "2"}) do
	local decltext, decllink = decltext_decllink(decl)
	labels[decltext .. " adjectives"] = {
		description = "{{{langname}}} adjectives of the " .. decllink .. " (feminine forms identical to masculine forms).",
		parents = {{name = "adjectives by inflection type", sort = declnum}},
		breadcrumb = decltext,
	}
end

local decltext2, decllink2 = decltext_decllink("second")
labels["second declension adjectives with Greek declension"] = {
	description = "{{{langname}}} adjectives of the " .. decllink2 .. " (feminine forms identical to masculine forms), Greek declension.",
	parents = {{name = "second declension adjectives", sort = "Greek declension"}},
	breadcrumb = "Greek declension",
}


return {LABELS = labels}