This module handles generating the descriptions and categorization for Marathi category pages of the format "Marathi 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 = {}
local handlers = {}
local u = mw.ustring.char
for _, pos in ipairs({"nouns", "verbs", "adjectives"}) do
labels = {
description = "{{{langname}}} " .. pos .. " using phonetic respelling in their " ..
(pos == "verbs" and "conjugation" or "declension") ..
" tables due to irregular or unpredictable pronunciations.",
additional = [=[
===See also===
* ]
* ]]=],
parents = {
"terms by orthographic property",
"terms by phonemic property",
{name = pos, sort = "phonetic respelling"},
},
}
end
labels = {
description = "{{{langname}}} nouns categorized by gender and stem type.",
parents = {{name = "nouns", sort = "gender and stem type"}},
breadcrumb = "by gender and stem type",
}
table.insert(handlers, function(data)
local gender, stem, pos
gender, stem, pos = data.label:match("^(+ine) (independent unmarked *%-stem) (.*)s$")
if not gender then
gender, stem, pos = data.label:match("^(+) (independent *%-stem) (.*)s$")
end
if not gender then
gender, stem, pos = data.label:match("^(+) (unmarked *%-stem) (.*)s$")
end
if not gender then
gender, stem, pos = data.label:match("^(+) (*%-stem) (.*)s$")
end
if gender and pos == "noun" then
local desc = "{{{langname}}} " .. gender .. " " .. stem .. " " .. pos .. "s."
local additional
if stem:find("independent") then
additional = "* Here, 'independent' means that the stem ending directly " ..
"follows a vowel and so uses the independent Devanagari form of the vowel that begins the ending."
end
if stem:find("unmarked") then
additional = additional and additional .. "\n" or ""
additional = additional .. "* Here, 'unmarked' means that the endings are added onto the full direct singular form " ..
"without removing the stem ending."
end
return {
description = desc,
additional = additional,
parents = {
{name = pos .. "s by gender and stem type", sort = stem:gsub("independent ", ""):gsub("unmarked ", "")}
},
breadcrumb = gender .. " " .. stem,
}
end
end)
return {LABELS = labels, HANDLERS = handlers}