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 = {
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 = "]"
return conjtext, conjlink
end
for conjugation, conjnum in pairs(conjugations) do
local conjtext, conjlink = conjtext_conjlink(conjugation)
labels = {
description = "{{{langname}}} verbs of the " .. conjlink .. ".",
parents = {
{name = "verbs by inflection type", sort = conjnum},
},
breadcrumb = conjtext
}
end
labels = {
description = "{{{langname}}} verbs categorized by the formation of their perfect tense.",
parents = {"verbs by derivation type"},
}
-- Add labels for e.g. ] and
-- ].
local perf_suffixes = {
= {
display = "{{m|la||-āv-}}",
displaytitle = "{{m|la||-av-}}",
},
= {
display = "{{m|la||-ēv-}}",
displaytitle = "{{m|la||-ev-}}",
},
= {
display = "{{m|la||-īv-}}",
displaytitle = "{{m|la||-iv-}}",
},
= {
display = "{{m|la||-i-}}",
},
= {
display = "{{m|la||-u-}}",
},
= {
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 = {
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 = {
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. ] and
-- ].
for perfvar, perfvartext in pairs({
irregular = "irregularly",
suffixless = "without a suffix",
}) do
labels = {
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 = {
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 = {
description = "{{{langname}}} verbs attested in one of the ] tenses, which are found in ]; mostly notably used by ] and ].",
parents = {"verbs"},
breadcrumb = "sigmatic forms"
}
labels = {
description = "{{{langname}}} verbs attested in the rare ] future passive indicative tense, which is found in ].",
parents = {"verbs with sigmatic forms"},
breadcrumb = "passive"
}
labels = {
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 = "]"
return decltext, decllink
end
for _, pos in ipairs({"nouns", "suffixes"}) do
-- Add labels for e.g. ] and
-- ].
for decl, declnum in pairs(noun_declensions) do
local decltext, decllink = decltext_decllink(decl)
labels = {
description = "{{{langname}}} " .. pos .. " of the " .. decllink .. ".",
parents = {{name = pos .. " by inflection type", sort = declnum}},
breadcrumb = decltext,
}
for _, gender in ipairs(genders) do
labels = {
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. ] and
-- ].
for _, nounvar in ipairs({"indeclinable", "irregular"}) do
for _, gender in ipairs(genders) do
local decltext = nounvar
local decllink = "{{glossary|" .. nounvar .. "}}"
labels = {
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. ].
labels = {
description = "{{{langname}}} unknown gender " .. pos .. ".",
parents = {
{name = "nouns by gender", sort = "unknown"},
},
breadcrumb = "unknown",
}
-- Add labels for e.g. ].
labels = {
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. ].
labels = {
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.
-- ].
local subtypes_12 = {
= {
display = "nominative masculine singular in {{m|la||-er}}",
},
= {
display = "nominative masculine singular in {{m|la||-ur}}",
},
= {
display = "genitive singular in {{m|la||-īus}}",
link = "genitive singular in {{m|la|-īus}}",
},
= {
display = "Greek declension",
},
}
-- Add labels for e.g. ],
-- ] and
-- ].
for _, pos in ipairs({"adjectives", "numerals", "determiners", "participles", "suffixes"}) do
local decltext = "first and second declension"
local decllink = "] and ]"
labels = {
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 = {
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 = {
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 = {
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 ], ].
for decl, declnum in pairs({first = "1", second = "2"}) do
local decltext, decllink = decltext_decllink(decl)
labels = {
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 = {
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}