Module:category tree/lexical properties
Itsura
- The following documentation is generated by Template:category tree data submodule documentation. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
This data submodule defines part of Wiktionary's category structure.
For an introduction to the category tree system and a description of how to add or modify categories, see Module:category tree/documentation.
local labels = {}
local raw_categories = {}
local handlers = {}
local raw_handlers = {}
local insert = table.insert
local ucfirst = require("Module:string utilities").ucfirst
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["na salita ayon sa katangiang leksikal"] = { --TLCHANGE
--TLCHANGE description = "{{{langname}}} terms categorized by properties relating to spelling, pronunciation or meaning.",
description = "Mga salitang {{{langname}}} na nakaayos ayon sa mga katangiang kaugnay sa pagbaybay, pagbigkas, o kahulugan.",
umbrella_parents = "Pangkalahatan", --TLCHANGE "Fundamental"
parents = {{name = "{{{langcat}}}", raw = true}},
english_name = "terms by lexical property", --TLCHANGE
}
labels["autohyponyms"] = {
description = "{{{langname}}} terms that have at least two meanings, one of which is a hyponym of the other.",
parents = {"na salita ayon sa katangiang leksikal"}, --TLCHANGE {"terms by lexical property"},
}
labels["contranyms"] = {
description = "{{{langname}}} terms that have two opposite meanings.",
parents = {"na salita ayon sa katangiang leksikal"}, --TLCHANGE {"terms by lexical property"},
}
labels["double negatives"] = {
description = "{{{langname}}} terms which include a [[double negative]], either etymologically or in a definition.",
parents = {"na salita ayon sa katangiang leksikal"}, --TLCHANGE {"terms by lexical property"},
}
labels["heteronyms"] = {
description = "{{{langname}}} terms that have different meanings depending on their etymology and/or on how they are pronounced.",
parents = {"na salita ayon sa katangiang leksikal"}, --TLCHANGE {"terms by lexical property"},
}
labels["nuqtaless forms"] = {
description = "{{{langname}}} terms that are spelled without a [[nuqta]].",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["unhamzated forms"] = {
description = "{{{langname}}} terms that are spelled without a [[hamza]].",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["palindromes"] = {
description = "{{{langname}}} terms whose characters are read equally both from left to right and vice versa, normally ignoring spaces, [[diacritic]]s and punctuation.",
parents = {"terms by their sequences of characters"},
}
labels["pleonastic compounds"] = {
description = "{{{langname}}} compound terms where the head is a hyponym of its other part and whose other part is its synonym.",
parents = {"terms by lexical property", "compound terms"},
}
labels["pleonastic compound adjectives"] = {
description = "{{{langname}}} compound adjectives where the head is a hyponym of its other part and whose other part is its synonym.",
breadcrumb = "adjectives",
parents = {{name = "pleonastic compounds", sort = "adjectives"}, "compound adjectives"},
}
labels["pleonastic compound nouns"] = {
description = "{{{langname}}} compound nouns where the head is a hyponym of its other part and where the head is the synonym for the whole.",
breadcrumb = "nouns",
parents = {{name = "pleonastic compounds", sort = "nouns"}, "compound nouns"},
}
labels["pronunciation spellings"] = {
description = "{{{langname}}} terms spelled to represent a pronunciation, often a nonstandard one.",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["tautophrases"] = {
description = "{{{langname}}} phrases that repeat the same idea or concept using the same words.",
parents = {"na salita ayon sa katangiang leksikal"}, --TLCHANGE {"terms by lexical property"},
}
labels["na salita ayon sa katangiang ortograpiko"] = { --TLCHANGE
--TLCHANGE description = "{{{langname}}} terms categorized by properties relating to [[orthography]] or [[spelling]].",
description = "Mga salitang {{{langname}}} na iniayos ayon sa mga katangiang nauugnay sa [[ortograpiya]] o [[pagbaybay]].",
parents = {{name = "na salita ayon sa katangiang leksikal", sort = "katangiang ortograpiko"}}, --TLCHANGE {"terms by lexical property"},
english_name = "terms by orthographic property" --TLCHANGE
}
labels["calculator words"] = {
description = "{{{langname}}} terms that can be spelled on a [[seven-segment]] display, as found on pocket calculators, by turning numbers upside-down.",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["words spelled without vowels"] = {
description = "{{{langname}}} words spelled without vowels.",
additional = "The letters counted as vowels may differ from language to language but typically include the conventional written vowels (''a'' ''e'' ''i'' ''o'' ''u'' ''y''), and may include other less common letters representing vowels (e.g. ''æ'', ''œ'', ''ø''). Terms in this category may contain vowel sounds in their pronunciation.",
parents = {"terms by their sequences of characters"},
}
labels["na salita ayon sa bilang ng titik"] = { --TLCHANGE
--TLCHANGE description = "{{{langname}}} words categorized by number of letters.",
description = "Mga salitang {{{langname}}} na nakaayos ayon sa bilang ng titik.",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
english_name = "words by number of letters", --TLCHANGE
}
labels["abbreviations by number of letters"] = {
description = "{{{langname}}} abbreviations categorized by number of letters.",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["na ugat ayon sa bilang ng titik"] = { --TLCHANGE
description = "{{{langname}}} {{lg|roots}} categorized by number of letters.",
breadcrumb = "ayon sa bilang ng titik", --TLCHANGE "by number of letters"
parents = {
{name = "na ugat", sort = "bilang ng titik"}, --TLCHANGE {name = "roots", sort = "number of letters"},
"na salita ayon sa katangiang ortograpiko" --TLCHANGE "terms by orthographic property"
},
english_name = "roots by number of letters" --TLCHANGE
}
labels["na ugat ayon sa hugis"] = { --TLCHANGE
description = "{{{langname}}} {{lg|roots}} categorized by their shape.",
breadcrumb = "ayon sa hugis", --TLCHANGE "by shape",
parents = {
{name = "na ugat", sort = "hugis"}, --TLCHANGE {name = "roots", sort = "shape"},
"na salita ayon sa katangiang leksikal" --TLCHANGE "terms by lexical property"
},
english_name = "roots by shape", --TLCHANGE
}
labels["na salita ayon sa bilang ng pantig"] = { --TLCHANGE: "words by number of syllables"
--TLCHANGE description = "{{{langname}}} words categorized by number of syllables.",
description = "Mga salitang {{{langname}}} words na nakaayos ayon sa bilang ng pantig.",
parents = {"na salita ayon sa katangiang ponemiko"}, --TLCHANGE "terms by phonemic property"
english_name = "words by number of syllables" --TLCHANGE
}
labels["na salita ayon sa kanilang indibidwal na karakter"] = { --TLCHANGE
description = "{{{langname}}} terms categorized by whether they include certain individual characters.",
breadcrumb = "ayon sa kanilang indibidwal na karakter", --TLCHANGE "by their individual characters",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
english_name = "terms by their individual characters" --TLCHANGE
}
labels["terms by their sequences of characters"] = {
description = "{{{langname}}} terms categorized by whether they include certain sequences of characters.",
breadcrumb = "by their sequences of characters",
parents = {"na salita ayon sa katangiang ortograpiko"}, --TLCHANGE {"terms by orthographic property"},
}
labels["terms with consecutive instances of the same letter"] = {
description = "{{{langname}}} words categorized by the number of consecutive instances of the same letter they contain.",
breadcrumb = "consecutive instances of the same letter",
parents = {{name = "terms by orthographic property", sort = "consecutive instances of the same letter"}},
}
labels["terms containing italics"] = {
description = "{{{langname}}} terms containing [[italics]].",
breadcrumb = "containing italics",
parents = {{name = "terms by orthographic property", sort = "containing italics"}},
}
labels["terms containing Roman numerals"] = {
description = "{{{langname}}} terms containing [[Roman numeral]]s.",
breadcrumb = "containing Roman numbers",
parents = {{name = "terms by orthographic property", sort = "containing Roman numbers"},
{name = "terms spelled with numbers", sort = "Roman numerals"}},
}
labels["terms with mixed convergence"] = {
description = "{{{langname}}} terms where the spelling represents a variant pronunciation that differs from (one of) the current standard pronunciation(s).",
breadcrumb = "with mixed convergence",
parents = {{name = "terms by orthographic property", sort = "mixed convergence"}, "terms by phonemic property"},
}
labels["terms with homophones"] = {
description = "{{{langname}}} terms that have one or more [[homophones]]: other terms that are pronounced in the same way but spelled differently.",
breadcrumb = "with homophones",
parents = {{name = "terms by lexical property", sort = "homophones"}},
}
labels["terms with honorific transposition"] = {
description = "{{{langname}}} compound terms where the written order of the elements is reversed due to [[honorific transposition]].",
breadcrumb = "with honorific transposition",
parents = {{name = "terms by orthographic property", sort = "honorific transposition"}},
}
labels["terms where the adjective follows the noun"] = {
description = "{{{langname}}} terms where the adjective follows the noun. These adjectives within these terms are sometimes referred to as postpositive or postnominal adjectives.",
breadcrumb = "adjective follows the noun",
parents = {{name = "terms by lexical property", sort = "adjective follows the noun"}},
}
labels["na salitang sinulat sa banyagang katitikan"] = { --TLCHANGE
description = "{{{langname}}} terms that are written in a different, non-native script.",
breadcrumb = "sinulat sa banyagang katitikan", --TLCHANGE "written in foreign scripts"
parents = {{name = "na salita ayon sa katangiang ortograpiko", sort = "sinulat sa banyagang katitikan"}}, --TLCHANGE {"terms by orthographic property"},
english_name= "terms written in foreign scripts" --TLCHANGE
}
labels["terms written in multiple scripts"] = {
description = "{{{langname}}} terms that are written using more than one script.",
breadcrumb = "written in multiple scripts",
parents = {{name = "terms by orthographic property", sort = "written in multiple scripts"}},
}
labels["na salita ayon sa katangiang ponemiko"] = { --TLCHANGE
description = "{{{langname}}} terms categorized by properties relating to [[pronunciation]] and [[phonemics]].",
parents = {{name = "na salita ayon sa katangiang leksikal", sort = "katangiang ponemiko"}}, --TLCHANGE {"terms by lexical property"},
english_name = "terms by phonemic property", --TLCHANGE
}
-- Add 'umbrella_parents' key if not already present.
for _, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "Subkategoryang pansalita ayon sa katangiang leksikal ayon sa wika" --TLCHANGE "Terms by lexical property subcategories by language"
end
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["Subkategoryang pansalita ayon sa katangiang leksikal ayon sa wika"] = { --TLCHANGE
breadcrumb = "subkategorya", --TLCHANGE "subcategories",
description = "Umbrella categories covering topics related to terms categorized by their lexical properties, such as palindromes and number of letters or syllables in a word.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
{name = "na salita ayon sa katangiang leksikal", is_label = true, sort = " "}, --TLCHANGE "terms by lexical property"
"Kataas-taasang kategorya", --TLCHANGE "Umbrella metacategories"
},
english_name = "Terms by lexical property subcategories by language" --TLCHANGE
}
for _, v in ipairs{ --TLCHANGE params 3 and 4 are added for english_name, param 5 is for "pang-"
{"salita", "titik", "words", "letters", "pansalita"},
{"daglat", "titik", "abbreviations", "letters", "pandaglat"},
{"ugat", "titik", "roots", "letters", "pang-ugat"},
{"salita", "pantig", "words", "syllables", "pansalita"}
} do
raw_categories[("Subkategoryang %s ayon sa bilang ng %s ayon sa wika"):format(v[5], v[2])] = {
breadcrumb = "subkategorya", --TLCHANGE
description = ("Umbrella categories covering topics related to %s categorized by their number of %s."):format(v[1], v[2]),
additional = "{{{umbrella_meta_msg}}}",
parents = {
{name = ("na %s ayon sa bilang ng %s"):format(v[1], v[2]), is_label = true, sort = " "},
"Kataas-taasang kategorya", --TLCHANGE "Umbrella metacategories"
},
english_name = ("%s by number of %s subcategories by language"):format(ucfirst(v[3]), v[4])
}
end
raw_categories["Terms with consecutive instances of the same letter subcategories by language"] = {
breadcrumb = "subkategorya", --TLCHANGE "subcategories",
description = "Umbrella categories covering topics related to terms categorized by the number of consecutive instances of the same letter they contain.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
{name = "terms with consecutive instances of the same letter", is_label = true, sort = " "},
"Kataas-taasang kategorya", --TLCHANGE "Umbrella metacategories"
},
}
raw_categories["Long words by language"] = {
description = "Categories with terms that are longer than a given (per-language) threshold.",
additional = "{{{umbrella_msg}}}",
parents = {
{name = "terms by lexical property", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
for _, v in ipairs{ --TLCHANGE params 5 is added in to remove the pang-angkop; params 6 & 7 are for the english_name
{"salitang", "titik", "naglalaman ng", function(n)
return ("They have meaning(s) other than their letter%s or the shape of their letter%s which are not abbreviations, numbers or symbols.")
end, "salita", "words", "letter"},
{"daglat na", "titik", "naglalaman ng", nil, "daglat", "abbreviations", "letter"},
{"ugat na", "titik", "naglalaman ng", nil, "ugat", "roots", "letter"},
{"salitang", "pantig", "ibinibigkas nang may", nil, "salita", "words", "syllable"}
} do
insert(handlers, function(data)
local n = data.label:match(("^na %s may ([1-9]%%d*)%% %s$"):format(v[1], v[2]))
if not n then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("Mga %s {{{langname}}} na %s %d %s."):format(v[1], v[3], n, v[2]),
additional = v[4] and v[4](n) or nil,
umbrella = {
breadcrumb = ("%d %s"):format(n, v[2]),
parents = {{name = ("Subkategoryang pang%s ayon sa bilang ng %s ayon sa wika"):format(v[5], v[2]), sort = sortkey}},
},
parents = {{name = ("na %s ayon sa bilang ng %s"):format(v[5], v[2]), sort = sortkey}},
english_name = ("%d-%s %s"):format(n, v[7], v[6])
}
end)
end
insert(handlers, function(data)
local n = data.label:match("^terms with ([1-9]%d*) consecutive instances of the same letter$")
if not (n and tonumber(n) > 2) then
return
end
local sortkey = require("Module:category tree").numeral_sortkey(n, 2097152)
return {
breadcrumb = n,
description = ("{{{langname}}} terms containing %d consecutive instances of the same letter."):format(n),
umbrella = {
breadcrumb = ("%d consecutive instances"):format(n),
parents = {{name = "Terms with consecutive instances of the same letter subcategories by language", sort = sortkey}},
},
parents = {{name = "terms with consecutive instances of the same letter", sort = sortkey}}
}
end)
-----------------------------------------------------------------------------
-- --
-- RAW HANDLERS --
-- --
-----------------------------------------------------------------------------
insert(raw_handlers, function(data)
local langname = data.category:match("^Long (.*) words$")
if langname then
local lang = require("Module:languages").getByCanonicalName(langname)
if lang then
local length_threshold = require("Module:headword/data").long_word_thresholds[lang:getCode()]
if length_threshold then
return {
lang = lang:getCode(),
description = "{{{langname}}} words that are " .. length_threshold .. " letters or longer.",
parents = {
{name = "terms by orthographic property", lang = lang:getCode(), is_label = true},
{name = "Long words by language"},
},
}
end
end
end
end)
return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers, RAW_HANDLERS = raw_handlers}