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

local labels = {} local handlers = {}

--- Nominal categories ---

labels["nominals by declension"] = { description = " nouns and adjectives categorized by their declension type.", breadcrumb = "by declension", preceding = "", parents = { {name = "nouns", sort = "declension"}, {name = "adjectives", sort = "declension"}, }, }

table.insert(handlers, function(data)	local nomtype = data.label:match("^(.*)%-type nominals$")	if nomtype then		return {			description = (" %s-type nominals."):format(nomtype),			preceding = (""):format(nomtype),			breadcrumb = {name = ("%s-type"):format(nomtype), nocap = true},			parents = {"nominals by declension"},		}	end end)

--- Verbal categories ---

labels["verbs by conjugation"] = { description = " verbs categorized by their conjugation type.", breadcrumb = "by conjugation", preceding = "", parents = { {name = "verbs", sort = "conjugation"}, }, }

labels["verbs that lack conjugation type"] = { description = " verbs that lack conjugation type.", parents = {"entry maintenance"}, hidden = true, can_be_empty = true, }

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

for ordinal, number in pairs(ordinal_to_number) do labels[ordinal .. " infinitives"] = { description = " " .. ordinal .. " infinitives.", breadcrumb = ordinal, parents = , can_be_empty = true, }	labels["long first infinitives"] = { description = " long first infinitives.", additional = "See this appendix for more information.", breadcrumb = "long first", parents = , }	labels["active " .. ordinal .. " infinitives"] = { description = " active " .. ordinal .. " infinitives.", breadcrumb = "active", parents = {ordinal .. " infinitives"}, }	labels["passive " .. ordinal .. " infinitives"] = { description = " passive " .. ordinal .. " infinitives.", breadcrumb = "passive", parents = {ordinal .. " infinitives"}, } end

labels["verbs by aspect"] = { description = " verbs categorized by their aspect.", breadcrumb = "by aspect", preceding = "", parents = { {name = "verbs", sort = "aspect"}, }, }

local aspect_spec = { {"automative", see_also = {"reflexive", "translative"}}, {"captative"}, {"causative", see_also = {"curative", "factive"}}, {"continuative", see_also = {"frequentative"}}, {"curative", see_also = {"causative", "factive"}, parent = "causative verbs"}, {"factive", see_also = {"causative", "curative"}}, {"frequentative", see_also = {"continuative"}}, {"momentane"}, {"reflexive"}, {"semelfactive"}, {"translative"}, }

for _, spec in ipairs(aspect_spec) do	local spectype = spec[1] local capfirst = mw.getContentLanguage:ucfirst(spectype) local additional local parents = {} if spec.see_also then local additional_cats = {} for _, other_aspect in ipairs(spec.see_also) do			table.insert(additional_cats, ("* Category:Finnish %s verbs\n"):format(other_aspect)) end additional = "See also:\n" .. table.concat(additional_cats) end if spec.parent then table.insert(parents, spec.parent) end table.insert(parents, "verbs by aspect") labels[spectype .. " verbs"] = { description = (" %s verbs."):format(spectype), preceding = (""):format(			capfirst, capfirst), additional = additional, breadcrumb = spectype, parents = parents, } end

local defective_types = { ["kaikaa"] = true, }

table.insert(handlers, function(data)	local verbtype = data.label:match("^(.*)%-type verbs$")	if verbtype then		local parents = {"verbs by conjugation"}		local addl		if defective_types[verbtype] then			table.insert(parents, "defective verbs")		end		if verbtype == "kumajaa" then			addl = "Some rohkaista -type verbs have a partially alternative conjugation, which is regarded as a poetic variant to the main conjugation. This category contains the entries where this alternative conjugation is indicated to exist."		end		return {			description = (" %s-type verbs."):format(verbtype),			preceding = (""):format(verbtype),			additional = addl,			breadcrumb = {name = ("%s-type"):format(verbtype), nocap = true},			parents = parents,		}	end end)

labels["colloquial verb forms"] = { description = " colloquial verb forms.", breadcrumb = "colloquial", parents = {"verb forms"}, }

--- Misc categories ---

labels["entries with inflection not matching pagename"] = { description = " entries which have an inflection table whose lemma form does not match the page name.", additional = "This is usually the result of incorrect or missing parameters.", breadcrumb = "inflection not matching pagename", parents = , hidden = true, can_be_empty = true, }

labels["Latinate surnames"] = { description = " surnames that are formed as if they were names from Latin (often with a suffix like ).", breadcrumb = "Latinate", parents = {"surnames"}, }

labels["case suffixes"] = { description = " case suffixes.", breadcrumb = "case", parents = {"suffixes"}, }

return {LABELS = labels, HANDLERS = handlers}