Module:category tree/lang/snon: Difference between revisions

Melinoë (talk | contribs)
No edit summary
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 3: Line 3:


--------------------------------- Nouns/Pronouns/Numerals --------------------------------
--------------------------------- Nouns/Pronouns/Numerals --------------------------------
--[=[
labels["lenite nouns"] = {
Noun declension specifications. The top-level key is the stem class, and the value is an object containing properties of
description = "{{{langname}}} nouns which trigger lenition in the following term.",
the stem class. If the stem class contains the word 'GENDER' in it, it expands into labels both for a parent category
parents = "nouns by inflection type",
that subsumes several genders (obtained by removing the word 'GENDER' and following whitespace) as well as
}
gender-specific children categories (obtained by replacing the word 'GENDER' with the genders specified in the
`possible_genders` field). The stem class can contain literal Latin-script text (e.g. suffixes), which will be
italicized in breadcrumbs and titles. The fields of the property object for a given stem class are as follows:
* `gender`: The description of the gender(s) of the stem class. If preceded by ~, the description is preceded by
  "most commonly". This appears in the `additional` field of the label properties. It is not used in gender-specific
  children categories; instead the gender of that category is used.
* `possible_genders`: The possible genders this class occurs in. If this is specified, the word 'GENDER' must occur in
  the stem class, and gender-specific variants of the stem class (with GENDER replaced by the possible genders) are
  handled along with a parent category subsuming all genders.
* `nom_sg`: The nominative singular ending. Use <...> to enclose literal Latin-script text (e.g. suffixes), which will
  be italicized.
* `GENDER_nom_sg`: The nominative singular ending for the GENDER variant of this stem class. If not specified, the
  value of `nom_sg` is used.
* `gen_sg`: The genitive singular ending. Conventions are the same as for `nom_sg`.
* `GENDER_gen_sg`: The genitive singular ending for the GENDER variant of this stem class. If not specified, the value
  of `gen_sg` is used.
* `nom_pl`: The nominative plural ending. Conventions are the same as for `nom_sg`.
* `GENDER_nom_pl`: The nominative plural ending for the GENDER variant of this stem class. If not specified, the value
  of `nom_pl` is used.
* `breadcrumb`: The breadcrumb for the category, appearing in the trail of breadcrumbs at the top of the page. If this
  stem has gender-specific variants, the breadcrumb specified here is used only for the parent category, while the
  gender-specific child categories use the gender as the breadcrumb. If not specified, it defaults to `sortkey`. If that
  is also not specified, or if the breadcrumb has the value "+", the stem class (without the word 'GENDER') is used.
  (Use "+" when a sortkey is specified but the stem class should be used as the breadcrumb.)
* `parent`: The parent category or categories. If specified, the actual category label is formed by appending the part
  of speech (e.g. "nouns"). Defaults to "POS by inflection type" where POS is the part of speech. Note that
  gender-specific child categories do not use this, but always have the gender-subsuming parent stem class category as
  their parent.
* `sortkey`: The sort key used for sorting this category among its parent's children. Defaults to the stem class
  (without the word 'GENDER'). Note that gender-specific child categories do not use this, but always use the gender
  as the sort key.
]=]
local noun_decls = {
["lenite"] = {
},


["radical"] = {
labels["radical nouns"] = {
},
description = "{{{langname}}} nouns which do not trigger lenition in the following term.",
parents = "nouns by inflection type",
}
}


require("Module:category tree/utilities").add_inflection_labels {
labels["eclipse nouns"] = {
labels = labels,
description = "{{{langname}}} nouns which trigger eclipsis in the following term.",
pos = "noun",
parents = "nouns by inflection type",
stem_classes = noun_decls,
mark_up_spec = function(spec, nolink)
-- umlauts
spec = spec:gsub("I%-UMLAUT", "{{w|Old Norse#Umlaut|i-umlaut}}")
spec = spec:gsub("U%-UMLAUT", "{{w|Old Norse#U-umlaut|u-umlaut}}")
if nolink then
spec = require("Module:links").remove_links(spec)
end
return (spec:gsub("<(.-)>", "''%1''"))
end,
principal_parts = {
{"sg", "singular"},
{"pl", "plural"},
},
}
}
-- Verbs --
for _, part in ipairs{"i", "è"} do
labels[part .. "-negative verbs"] = {
description = "{{{langname}}} verbs which use {{l|snon|" .. part .. "}} to form the negative.",
parents = "verbs",
displaytitle = "{{{langname}}} ''" .. part .. "''-negative verbs",
breadcrumb = part,
}
end
local prepositions = {
"{{l|snon|til}} > {{l|snon|tilmì}}",
"{{l|snon|frà}} > {{l|snon|fràmhì}}",
"{{l|snon|i}} > {{l|snon|inì}}",
}
for i, desc in ipairs(prepositions) do
local num = tostring(i)
labels["class " .. num .. " prepositions"] = {
description = "{{{langname}}} prepositions of pattern " .. num .. ", e.g. " .. desc .. ".",
parents = {{name="prepositions by inflection type", sort = num}},
breadcrumb = num,
}
end


return {LABELS = labels}
return {LABELS = labels}