Wiktionary
siwiktionary
https://si.wiktionary.org/wiki/%E0%B7%80%E0%B7%92%E0%B6%9A%E0%B7%8A%E0%B7%82%E0%B6%B1%E0%B6%BB%E0%B7%92:%E0%B6%B8%E0%B7%94%E0%B6%BD%E0%B7%8A_%E0%B6%B4%E0%B7%92%E0%B6%A7%E0%B7%94%E0%B7%80
MediaWiki 1.44.0-wmf.6
case-sensitive
මාධ්යය
විශේෂ
සාකච්ඡාව
පරිශීලක
පරිශීලක සාකච්ඡාව
වික්ෂනරි
වික්ෂනරි සාකච්ඡාව
ගොනුව
ගොනුව සාකච්ඡාව
මාධ්යවිකි
මාධ්යවිකි සාකච්ඡාව
සැකිල්ල
සැකිලි සාකච්ඡාව
උදවු
උදවු සාකච්ඡාව
ප්රවර්ගය
ප්රවර්ග සාකච්ඡාව
TimedText
TimedText talk
Module
Module talk
නයා
0
3672
196121
43308
2024-12-05T03:32:31Z
WrdSrchSi
3305
Added: නිරුක්තිය, {{si-noun|නය්හු?}}
196121
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[නය්]] + [[ආ]]'' > '''නයා'''
=== නාම පදය ===
{{si-noun|නය්හු?}}
* [[උරග|උරගයෙකි]].
* උග්ර [[විෂ]] සහිත සතෙකි.
{{උදා}}
* නයාට [[අඳුකොළ]] වගෙයි.
64f22a3gzqkoihg94vmqzh1o4y2amwp
196180
196121
2024-12-05T11:03:04Z
Lee
19
196180
wikitext
text/x-wiki
== සිංහල ==
{{විකිපීඩියා}}
=== නිරුක්තිය ===
''[[නය්]] + [[ආ]]'' > '''නයා'''
=== නාම පදය ===
{{si-noun|නය්හු?}}
* [[උරග|උරගයෙකි]].
* උග්ර [[විෂ]] සහිත සතෙකි.
{{උදා}}
* නයාට [[අඳුකොළ]] වගෙයි.
1yknuz727pgn9f7m6c1aums6fgul6gi
නැයිනි
0
4238
196122
17623
2024-12-05T03:53:39Z
WrdSrchSi
3305
Added: නිරුක්තිය, නාම විශේෂණ පදය; Changed: *.......නැයිනි > [[නැයිනිය]]
196122
wikitext
text/x-wiki
{{-සි-}}
===නිරුක්තිය===
''[[නය්]] + [[ඉනි]] >'' '''නැයිනි'''
===නාම විශේෂණ පදය===
{{si-adj}}
# '''{{l|si|නය්}}''' ''යන යෙදුමෙහි [[උපග්%E2%80%8Dරන්ථය:ගැටපද_විවරණය#ස්ත්රී ලිංග_number|ස්ත්රී ලිංග]] පදය''
* [[නාගයා]] ([[නයා]]) යන්නෙහි ස්ත්රී ලිංග පදය [[නැයිනිය]].
q2vclex9uu9ul09nmidlsxlzo2y6bau
මිනිසා
0
5458
196052
19008
2024-12-04T13:11:41Z
Lee
19
196052
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{rfe|si}}
=== නාම පදය ===
{{si-noun}}
# {{rfdef|si}}
{{ස}}
* මානවයා
* මනුස්සයා
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
896e7zlvyyfmasbns2gohhhs7wl3ccb
196053
196052
2024-12-04T13:12:29Z
Lee
19
196053
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{rfe|si}}
=== නාම පදය ===
{{si-noun}}
# {{rfdef|si}}
==== සමාන පද ====
* මානවයා
* මනුස්සයා
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
6f2vrqk672p8fpgkce9bxgoh18yth4o
Module:category tree/poscatboiler
828
6005
196002
193095
2024-11-30T14:24:50Z
en>Theknightwho
0
Don't use the useRequire parameter for [[Module:languages]] or [[Module:scripts]], as it's being removed. Also separate out some local functions into methods, where appropriate.
196002
Scribunto
text/plain
local concat = table.concat
local insert = table.insert
local type = type
local uupper = require("Module:string utilities").upper
local lang_independent_data = require("Module:category tree/poscatboiler/data")
local lang_specific_module = "Module:category tree/poscatboiler/data/lang-specific"
local lang_specific_module_prefix = lang_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = require("Module:table").listToSet{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
error("No label was specified.")
end
self:initCommon()
if not self._data then
error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = require("Module:languages").getByCode(self._info.code) or
require("Module:languages/errorGetBy").code(self._info.code, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = require("Module:scripts").getByCode(self._info.sc) or
require("Module:languages/error")(self._info.sc, true, "script code", nil, "not real lang")
else
self._sc = nil
end
self._info.orig_label = self._info.label
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = mw.getContentLanguage():lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local langs_with_modules = mw.loadData(lang_specific_module)
local obj, seen = self._lang, {}
repeat
if langs_with_modules[obj:getCode()] then
local module = lang_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
until not obj or seen[obj:getCode()]
end
-- Then check lang-independent labels.
if not self._data then
local labels = lang_independent_data["LABELS"]
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or mw.dumpObject(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
elseif type(desc) == "number" then
return tostring(desc)
elseif type(desc) == "function" then
return desc{
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
end
return desc
end
-- TODO: use the template parser with this, for more sophisticated handling of multiple brackets.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return desc
end
desc = desc:gsub("{{PAGENAME}}", mw.title.getCurrentTitle().text)
desc = desc:gsub("{{{umbrella_msg}}}", "This is an umbrella category. It contains no dictionary entries, but " ..
"only other, language-specific categories, which in turn contain relevant terms in a given language.")
desc = desc:gsub("{{{umbrella_meta_msg}}}", "This is an umbrella metacategory, covering a general area such as " ..
'"lemmas", "names" or "terms by etymology". It contains no dictionary entries, but holds only umbrella ' ..
'("by language") categories covering specific subtopics, which in turn contain language-specific categories ' ..
"holding terms in a given language for that same topic.")
local lang = self._lang
if lang then
desc = desc:gsub("{{{langname}}}", lang:getCanonicalName())
desc = desc:gsub("{{{langcode}}}", lang:getCode())
desc = desc:gsub("{{{langcat}}}", lang:getCategoryName())
desc = desc:gsub("{{{langlink}}}", lang:makeCategoryLink())
end
local sc = self._sc
if sc then
desc = desc:gsub("{{{scname}}}", sc:getCanonicalName())
desc = desc:gsub("{{{sccode}}}", sc:getCode())
desc = desc:gsub("{{{sccat}}}", sc:getCategoryName())
desc = desc:gsub("{{{scdisp}}}", sc:getDisplayForm())
desc = desc:gsub("{{{sclink}}}", sc:makeCategoryLink())
end
return mw.getCurrentFrame():preprocess(desc)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
k = self:substitute_template_specs(k)
v = self:substitute_template_specs(v)
pinfo[k] = v
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb
else
ret = self._data.umbrella and self._data.umbrella.breadcrumb
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " in " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = mw.title.new("Template:" .. template)
if template_obj.exists then
return mw.getCurrentFrame():expandTemplate{title = template_obj.text, args = {}}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
end
if type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
end
if text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
end
if text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "en"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
table.insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
else
return self._data.umbrella and self._data.umbrella.can_be_empty
end
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
else
return self._data.umbrella and self._data.umbrella.hidden
end
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local ret = self._lang:getCanonicalName() .. " " .. self._info.label
if self._sc then
ret = ret .. " in " .. self._sc:getDisplayForm()
end
return mw.getContentLanguage():ucfirst(ret)
else
local ret = mw.getContentLanguage():ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " by language"
end
return ret
end
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
else
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Category:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^(.*) terms$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^terms with (.*) senses$")
end
if sense_label then
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
else
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
end
end
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "specific languages" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
desc = desc:gsub("^{{{langcode}}} ", "")
desc = desc:gsub("^{{{langcat}}} ", "")
desc = desc:gsub("^{{{langlink}}} ", "")
desc = desc:gsub("{{{langname}}} %(", "specific languages (")
desc = desc:gsub("{{{langname}}}([.,])", "specific languages%1")
desc = desc:gsub("{{{langname}}} ", "specific-language ")
desc = desc:gsub("{{{langcode}}} ", "")
desc = desc:gsub("{{{langcat}}} ", "")
desc = desc:gsub("{{{langlink}}} ", "")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
else
local desc = self:convert_spec_to_string(self._data.description)
if not isChild and desc then
if self._data.preceding then
desc = self._data.preceding .. "\n\n" .. desc
end
if self._data.additional then
desc = desc .. "\n\n" .. self._data.additional
end
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
return self:substitute_template_specs(desc)
end
else
if not isChild and self._data.umbrella and self._data.umbrella.displaytitle then
self:display_title(self._data.umbrella.displaytitle)
end
local desc = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
-- Use the following in preference to mw.getContentLanguage():lcfirst(), which will only lowercase the first
-- character, whereas the following will correctly handle links at the beginning of the text.
desc = require("Module:string utilities").lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Categories with " .. desc .. "."
end
end
if not desc then
desc = "Categories with " .. self._info.label .. " in various specific languages."
end
if not isChild then
local preceding = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.preceding or
not has_umbrella_desc and self._data.preceding)
local additional = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.additional or
not has_umbrella_desc and self._data.additional)
if preceding then
desc = remove_lang_params(preceding) .. "\n\n" .. desc
end
if additional then
desc = desc .. "\n\n" .. remove_lang_params(additional)
end
desc = desc .. "\n\n{{{umbrella_msg}}}"
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
desc = self:substitute_template_specs(desc)
return desc
end
end
function Category:new_sortkey(sortkey)
if type(sortkey) == "string" then
sortkey = uupper(sortkey)
elseif type(sortkey) == "table" then
function sortkey:makeSortKey()
if self.sort_func then
return self.sort_func(self.sort_base)
end
local lang, sc
if self.lang then
lang = require("Module:languages").getByCode(self.lang, nil, true) or
require("Module:languages/errorGetBy").code(self.lang, true, true)
end
if self.sc then
sc = require("Module:scripts").getByCode(self.sc) or
require("Module:languages/error")(self.sc, true, "script code", nil, "not real lang")
end
if lang then
return lang:makeSortKey(self.sort_base, sc)
end
return self.sort_base
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec)
if spec == false then
return nil
end
return self:substitute_template_specs(spec or parent_spec)
end
function Category:canonicalize_parents_children(cats, is_children)
if not cats then
return nil
end
if type(cats) ~= "table" then
cats = {cats}
end
if cats.name or cats.module then
cats = {cats}
end
if #cats == 0 then
return nil
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil)
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil)
-- Get the sortkey.
local sortkey = cat.sort
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang)
sortkey.sc = self:inherit_spec(sortkey.sc, sc)
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Category:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Category:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella = not self._lang and not self._info.raw
local retval
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "terms in " .. self._sc:getCanonicalName() .. " script"}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
retval = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
else
parents = self._data.parents
end
retval = self:canonicalize_parents_children(parents)
end
if not retval then
return nil
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(retval) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
error(("Internal error: Infinite loop would occur, as parent category '%s' is the same as the child category"):
format(self_cat))
end
end
return retval
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
if #ret == 0 then
return nil
end
return ret
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
if not self._info.raw and self._info.label and self._lang then
local appendixName = "Appendix:" .. self._lang:getCanonicalName() .. " " .. self._info.label
local appendix = mw.title.new(appendixName).exists
if appendix then
return appendixName
else
return nil
end
else
return nil
end
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode, lang, sc = self._data.catfix, self._data.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
elseif sccode == nil then -- not false
sc = self._sc
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode, lang, sc = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
error("Internal error: This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
rl9xsqpvfpdcsno1hk5zrjk6svm1hip
196003
196002
2024-12-04T12:24:25Z
Lee
19
[[:en:Module:category_tree/poscatboiler]] වෙතින් එක් සංශෝධනයක්
196002
Scribunto
text/plain
local concat = table.concat
local insert = table.insert
local type = type
local uupper = require("Module:string utilities").upper
local lang_independent_data = require("Module:category tree/poscatboiler/data")
local lang_specific_module = "Module:category tree/poscatboiler/data/lang-specific"
local lang_specific_module_prefix = lang_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = require("Module:table").listToSet{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
error("No label was specified.")
end
self:initCommon()
if not self._data then
error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = require("Module:languages").getByCode(self._info.code) or
require("Module:languages/errorGetBy").code(self._info.code, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = require("Module:scripts").getByCode(self._info.sc) or
require("Module:languages/error")(self._info.sc, true, "script code", nil, "not real lang")
else
self._sc = nil
end
self._info.orig_label = self._info.label
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = mw.getContentLanguage():lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local langs_with_modules = mw.loadData(lang_specific_module)
local obj, seen = self._lang, {}
repeat
if langs_with_modules[obj:getCode()] then
local module = lang_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
until not obj or seen[obj:getCode()]
end
-- Then check lang-independent labels.
if not self._data then
local labels = lang_independent_data["LABELS"]
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or mw.dumpObject(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
elseif type(desc) == "number" then
return tostring(desc)
elseif type(desc) == "function" then
return desc{
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
end
return desc
end
-- TODO: use the template parser with this, for more sophisticated handling of multiple brackets.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return desc
end
desc = desc:gsub("{{PAGENAME}}", mw.title.getCurrentTitle().text)
desc = desc:gsub("{{{umbrella_msg}}}", "This is an umbrella category. It contains no dictionary entries, but " ..
"only other, language-specific categories, which in turn contain relevant terms in a given language.")
desc = desc:gsub("{{{umbrella_meta_msg}}}", "This is an umbrella metacategory, covering a general area such as " ..
'"lemmas", "names" or "terms by etymology". It contains no dictionary entries, but holds only umbrella ' ..
'("by language") categories covering specific subtopics, which in turn contain language-specific categories ' ..
"holding terms in a given language for that same topic.")
local lang = self._lang
if lang then
desc = desc:gsub("{{{langname}}}", lang:getCanonicalName())
desc = desc:gsub("{{{langcode}}}", lang:getCode())
desc = desc:gsub("{{{langcat}}}", lang:getCategoryName())
desc = desc:gsub("{{{langlink}}}", lang:makeCategoryLink())
end
local sc = self._sc
if sc then
desc = desc:gsub("{{{scname}}}", sc:getCanonicalName())
desc = desc:gsub("{{{sccode}}}", sc:getCode())
desc = desc:gsub("{{{sccat}}}", sc:getCategoryName())
desc = desc:gsub("{{{scdisp}}}", sc:getDisplayForm())
desc = desc:gsub("{{{sclink}}}", sc:makeCategoryLink())
end
return mw.getCurrentFrame():preprocess(desc)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
k = self:substitute_template_specs(k)
v = self:substitute_template_specs(v)
pinfo[k] = v
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb
else
ret = self._data.umbrella and self._data.umbrella.breadcrumb
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. " in " .. self._sc:getDisplayForm()
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = mw.title.new("Template:" .. template)
if template_obj.exists then
return mw.getCurrentFrame():expandTemplate{title = template_obj.text, args = {}}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
end
if type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
end
if text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
end
if text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "en"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
table.insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
else
return self._data.umbrella and self._data.umbrella.can_be_empty
end
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
else
return self._data.umbrella and self._data.umbrella.hidden
end
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local ret = self._lang:getCanonicalName() .. " " .. self._info.label
if self._sc then
ret = ret .. " in " .. self._sc:getDisplayForm()
end
return mw.getContentLanguage():ucfirst(ret)
else
local ret = mw.getContentLanguage():ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = ret .. " by language"
end
return ret
end
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
else
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Category:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^(.*) terms$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^terms with (.*) senses$")
end
if sense_label then
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
else
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
end
end
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "specific languages" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
desc = desc:gsub("^{{{langcode}}} ", "")
desc = desc:gsub("^{{{langcat}}} ", "")
desc = desc:gsub("^{{{langlink}}} ", "")
desc = desc:gsub("{{{langname}}} %(", "specific languages (")
desc = desc:gsub("{{{langname}}}([.,])", "specific languages%1")
desc = desc:gsub("{{{langname}}} ", "specific-language ")
desc = desc:gsub("{{{langcode}}} ", "")
desc = desc:gsub("{{{langcat}}} ", "")
desc = desc:gsub("{{{langlink}}} ", "")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
else
local desc = self:convert_spec_to_string(self._data.description)
if not isChild and desc then
if self._data.preceding then
desc = self._data.preceding .. "\n\n" .. desc
end
if self._data.additional then
desc = desc .. "\n\n" .. self._data.additional
end
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
return self:substitute_template_specs(desc)
end
else
if not isChild and self._data.umbrella and self._data.umbrella.displaytitle then
self:display_title(self._data.umbrella.displaytitle)
end
local desc = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
-- Use the following in preference to mw.getContentLanguage():lcfirst(), which will only lowercase the first
-- character, whereas the following will correctly handle links at the beginning of the text.
desc = require("Module:string utilities").lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = "Categories with " .. desc .. "."
end
end
if not desc then
desc = "Categories with " .. self._info.label .. " in various specific languages."
end
if not isChild then
local preceding = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.preceding or
not has_umbrella_desc and self._data.preceding)
local additional = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.additional or
not has_umbrella_desc and self._data.additional)
if preceding then
desc = remove_lang_params(preceding) .. "\n\n" .. desc
end
if additional then
desc = desc .. "\n\n" .. remove_lang_params(additional)
end
desc = desc .. "\n\n{{{umbrella_msg}}}"
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
desc = self:substitute_template_specs(desc)
return desc
end
end
function Category:new_sortkey(sortkey)
if type(sortkey) == "string" then
sortkey = uupper(sortkey)
elseif type(sortkey) == "table" then
function sortkey:makeSortKey()
if self.sort_func then
return self.sort_func(self.sort_base)
end
local lang, sc
if self.lang then
lang = require("Module:languages").getByCode(self.lang, nil, true) or
require("Module:languages/errorGetBy").code(self.lang, true, true)
end
if self.sc then
sc = require("Module:scripts").getByCode(self.sc) or
require("Module:languages/error")(self.sc, true, "script code", nil, "not real lang")
end
if lang then
return lang:makeSortKey(self.sort_base, sc)
end
return self.sort_base
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec)
if spec == false then
return nil
end
return self:substitute_template_specs(spec or parent_spec)
end
function Category:canonicalize_parents_children(cats, is_children)
if not cats then
return nil
end
if type(cats) ~= "table" then
cats = {cats}
end
if cats.name or cats.module then
cats = {cats}
end
if #cats == 0 then
return nil
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil)
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil)
-- Get the sortkey.
local sortkey = cat.sort
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang)
sortkey.sc = self:inherit_spec(sortkey.sc, sc)
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^Category:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^Category:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella = not self._lang and not self._info.raw
local retval
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "terms in " .. self._sc:getCanonicalName() .. " script"}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
retval = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
else
parents = self._data.parents
end
retval = self:canonicalize_parents_children(parents)
end
if not retval then
return nil
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(retval) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
error(("Internal error: Infinite loop would occur, as parent category '%s' is the same as the child category"):
format(self_cat))
end
end
return retval
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
if #ret == 0 then
return nil
end
return ret
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
if not self._info.raw and self._info.label and self._lang then
local appendixName = "Appendix:" .. self._lang:getCanonicalName() .. " " .. self._info.label
local appendix = mw.title.new(appendixName).exists
if appendix then
return appendixName
else
return nil
end
else
return nil
end
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode, lang, sc = self._data.catfix, self._data.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
elseif sccode == nil then -- not false
sc = self._sc
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode, lang, sc = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
error("Internal error: This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
rl9xsqpvfpdcsno1hk5zrjk6svm1hip
196004
196003
2024-12-04T12:25:01Z
Lee
19
පැරණි සංස්කරණයකින් ගත් කොටස්...
196004
Scribunto
text/plain
local concat = table.concat
local insert = table.insert
local type = type
local uupper = require("Module:string utilities").upper
local lang_independent_data = require("Module:category tree/poscatboiler/data")
local lang_specific_module = "Module:category tree/poscatboiler/data/lang-specific"
local lang_specific_module_prefix = lang_specific_module .. "/"
local labels_utilities_module = "Module:labels/utilities"
-- Category object
local Category = {}
Category.__index = Category
function Category:get_originating_info()
local originating_info = ""
if self._info.originating_label then
originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])"
end
return originating_info
end
local valid_keys = require("Module:table").listToSet{"code", "label", "sc", "raw", "args", "also", "called_from_inside", "originating_label", "originating_module"}
function Category.new(info)
for key in pairs(info) do
if not valid_keys[key] then
error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
error("No label was specified.")
end
self:initCommon()
if not self._data then
error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".")
end
return self
end
function Category:initCommon()
local args_handled = false
if self._info.raw then
-- Check if the category exists
local raw_categories = lang_independent_data["RAW_CATEGORIES"]
self._data = raw_categories[self._info.label]
if self._data then
if self._data.lang then
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
else
-- Go through raw handlers
local data = {
category = self._info.label,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
if self._data then
-- Update the label if the handler specified a canonical name for it.
if self._data.canonical_name then
self._info.canonical_name = self._data.canonical_name
end
if self._data.lang then
if type(self._data.lang) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._lang = require("Module:languages").getByCode(self._data.lang) or
require("Module:languages/errorGetBy").code(self._data.lang, true)
self._info.code = self._lang:getCode()
end
if self._data.sc then
if type(self._data.sc) ~= "string" then
error("Received non-string value " .. mw.dumpObject(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".")
end
self._sc = require("Module:scripts").getByCode(self._data.sc) or
require("Module:languages/error")(self._data.sc, true, "script code", nil, "not real lang")
self._info.sc = self._sc:getCode()
end
end
end
else
-- Already parsed into language + label
if self._info.code then
self._lang = require("Module:languages").getByCode(self._info.code) or
require("Module:languages/errorGetBy").code(self._info.code, true)
else
self._lang = nil
end
if self._info.sc then
self._sc = require("Module:scripts").getByCode(self._info.sc) or
require("Module:languages/error")(self._info.sc, true, "script code", nil, "not real lang")
else
self._sc = nil
end
self._info.orig_label = self._info.label
if not self._lang then
-- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be
-- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]];
-- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language
-- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella
-- categories, storing the original into `orig_label`, and correct it later if needed.
self._info.label = mw.getContentLanguage():lcfirst(self._info.label)
end
-- First, check lang-specific labels and handlers if this is not an umbrella category.
if self._lang then
local langs_with_modules = mw.loadData(lang_specific_module)
local obj, seen = self._lang, {}
repeat
if langs_with_modules[obj:getCode()] then
local module = lang_specific_module_prefix .. obj:getCode()
local labels_and_handlers = require(module)
if labels_and_handlers.LABELS then
self._data = labels_and_handlers.LABELS[self._info.label]
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
end
end
if not self._data and labels_and_handlers.HANDLERS then
for _, handler in ipairs(labels_and_handlers.HANDLERS) do
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
self._data, args_handled = handler(data)
if self._data then
if self._data.umbrella == nil and self._data.umbrella_parents == nil then
self._data.umbrella = false
end
self._data.module = self._data.module or module
break
end
end
end
if self._data then
break
end
end
seen[obj:getCode()] = true
obj = obj:getFamily()
until not obj or seen[obj:getCode()]
end
-- Then check lang-independent labels.
if not self._data then
local labels = lang_independent_data["LABELS"]
self._data = labels[self._info.label]
-- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable
-- in umbrella categories.
if not self._data then
self._data = labels[self._info.orig_label]
if self._data then
self._info.label = self._info.orig_label
end
end
end
-- Then check lang-independent handlers.
if not self._data then
local data = {
label = self._info.label,
lang = self._lang,
sc = self._sc,
args = self._info.args or {},
called_from_inside = self._info.called_from_inside,
}
for _, handler in ipairs(lang_independent_data["HANDLERS"]) do
self._data, args_handled = handler.handler(data)
if self._data then
self._data.module = self._data.module or handler.module
break
end
end
end
end
if not args_handled and self._data and self._info.args and next(self._info.args) then
local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])"
local args_text = {}
for k, v in pairs(self._info.args) do
insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or mw.dumpObject(v)))
end
error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " ..
concat(args_text, ", "))
end
if self._sc and not self._lang then
error("Umbrella categories cannot have a script specified.")
end
end
function Category:convert_spec_to_string(desc)
if not desc then
return desc
elseif type(desc) == "number" then
return tostring(desc)
elseif type(desc) == "function" then
return desc{
lang = self._lang,
sc = self._sc,
label = self._info.label,
raw = self._info.raw,
}
end
return desc
end
-- TODO: use the template parser with this, for more sophisticated handling of multiple brackets.
function Category:substitute_template_specs(desc)
-- This may end up happening twice but that's OK as the function is (usually) idempotent.
-- FIXME: Not idempotent if a preprocessed template returns wikicode.
desc = self:convert_spec_to_string(desc)
if not desc then
return desc
end
desc = desc:gsub("{{PAGENAME}}", mw.title.getCurrentTitle().text)
desc = desc:gsub("{{{umbrella_msg}}}", "මෙය ඡත්ර ප්රවර්ගයකි. මෙය සතුව ශබ්දකෝෂ ප්රවේශ කිසිවක් නොපවතින අතර, ඇත්තේ " ..
"වෙනත් නිශ්චිත-භාෂාවක් සඳහා වන ප්රවර්ග පමණි. ඒවා එම භාෂාවට අදාළ යෙදුම් ලැයිස්තු ගත කරයි.")
desc = desc:gsub("{{{umbrella_meta_msg}}}", "මෙය " ..
'"ලෙමා", "නාම" හෝ "නිරුක්තිය අනුව යෙදුම්" වැනි ක්ෂේත්ර ආවරණය කරන ඡත්ර මෙටා ප්රවර්ගයකි. මෙය සතුව ශබ්දකෝෂ ප්රවේශ කිසිවක් නොපවතින අතර, ' ..
'නිශ්චිත උප මාතෘකා ආවරණය කරන ඡත්ර ("භාෂාව අනුව") ප්රවර්ග පමණක් පවතියි. ඒවා එම මාතෘකාව යටතේ වන යෙදුම් අඩංගු වන ' ..
"නිශ්චිත-භාෂාවක් සඳහා වන ප්රවර්ග ලැයිස්තු ගත කරයි.")
local lang = self._lang
if lang then
desc = desc:gsub("{{{langname}}}", lang:getCanonicalName())
desc = desc:gsub("{{{langcode}}}", lang:getCode())
desc = desc:gsub("{{{langcat}}}", lang:getCategoryName())
desc = desc:gsub("{{{langlink}}}", lang:makeCategoryLink())
end
local sc = self._sc
if sc then
desc = desc:gsub("{{{scname}}}", sc:getCanonicalName())
desc = desc:gsub("{{{sccode}}}", sc:getCode())
desc = desc:gsub("{{{sccat}}}", sc:getCategoryName())
desc = desc:gsub("{{{scdisp}}}", sc:getDisplayForm())
desc = desc:gsub("{{{sclink}}}", sc:makeCategoryLink())
end
return mw.getCurrentFrame():preprocess(desc)
end
function Category:substitute_template_specs_in_args(args)
if not args then
return args
end
local pinfo = {}
for k, v in pairs(args) do
k = self:substitute_template_specs(k)
v = self:substitute_template_specs(v)
pinfo[k] = v
end
return pinfo
end
function Category:make_new(info)
info.originating_label = self._info.label
info.originating_module = self._data.module
info.called_from_inside = true
return Category.new(info)
end
function Category:getBreadcrumbName()
local ret
if self._lang or self._info.raw then
ret = self._data.breadcrumb
else
ret = self._data.umbrella and self._data.umbrella.breadcrumb
end
if not ret then
ret = self._info.label
end
if type(ret) ~= "table" then
ret = {name = ret}
end
local name = self:substitute_template_specs(ret.name)
local nocap = ret.nocap
if self._sc then
name = name .. ", " .. self._sc:getDisplayForm() .. " භාවිතා කොට ලියන ලද"
end
return name, nocap
end
local function expand_toc_template_if(template)
local template_obj = mw.title.new("Template:" .. template)
if template_obj.exists then
return mw.getCurrentFrame():expandTemplate{title = template_obj.text, args = {}}
end
return nil
end
-- Return the textual expansion of the first existing template among the given templates, first performing
-- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any).
-- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in,
-- treat it like a one-element list consisting of that string.
function Category:get_template_text(templates)
if templates == nil then
return nil
end
if type(templates) ~= "table" then
templates = {templates}
end
for _, template in ipairs(templates) do
if template == false then
return false
end
template = self:substitute_template_specs(template)
return expand_toc_template_if(template)
end
return nil
end
function Category:getTOC(toc_type)
-- Type "none" means everything fits on a single page; in that case, display nothing.
if toc_type == "none" then
return nil
end
local templates, fallback_templates
-- If TOC type is "full" (more than 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. look up and expand the `toc_template` templates (normal or umbrella, as above);
-- 3. do the default behavior, which is as follows:
-- 3a. look up a language-specific "full" template according to the current language (using English if there
-- is no current language);
-- 3b. look up a script-specific "full" template according to the first script of current language (using English
-- if there is no current language);
-- 3c. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 3d. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 3e. display nothing.
--
-- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order:
-- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is
-- a current language);
-- 2. do the default behavior, which is as follows:
-- 2a. look up a language-specific "normal" template according to the current language (using English if there
-- is no current language);
-- 2b. look up a script-specific "normal" template according to the first script of the current language (using
-- English if there is no current language);
-- 2c. display nothing.
local data_source
if self._lang or self._info.raw then
data_source = self._data
else
data_source = self._data.umbrella
end
if data_source then
if toc_type == "full" then
templates = data_source.toc_template_full
fallback_templates = data_source.toc_template
else
templates = data_source.toc_template
end
end
local text = self:get_template_text(templates)
if text then
return text
end
if text == false then
return nil
end
text = self:get_template_text(fallback_templates)
if text then
return text
end
if text == false then
return nil
end
local default_toc_templates_to_check = {}
local lang, sc = self:getCatfixInfo()
local langcode = lang and lang:getCode() or "en"
local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn"
-- FIXME: What is toctemplateprefix used for?
local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC"
if toc_type == "full" then
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname))
end
table.insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname))
table.insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname))
for _, toc_template in ipairs(default_toc_templates_to_check) do
local toc_template_text = expand_toc_template_if(toc_template)
if toc_template_text then
return toc_template_text
end
end
return nil
end
function Category:getInfo()
return self._info
end
function Category:getDataModule()
return self._data.module
end
function Category:canBeEmpty()
if self._lang or self._info.raw then
return self._data.can_be_empty
else
return self._data.umbrella and self._data.umbrella.can_be_empty
end
end
function Category:isHidden()
if self._lang or self._info.raw then
return self._data.hidden
else
return self._data.umbrella and self._data.umbrella.hidden
end
end
function Category:getCategoryName()
if self._info.raw then
return self._info.canonical_name or self._info.label
elseif self._lang then
local ret = self._lang:getCanonicalName() .. " " .. self._info.label
if self._sc then
ret = ret .. ", " .. self._sc:getDisplayForm() .. " භාවිතා කොට ලියන ලද"
end
return mw.getContentLanguage():ucfirst(ret)
else
local ret = mw.getContentLanguage():ucfirst(self._info.label)
if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then
ret = "භාෂාව අනුව " .. ret
end
return ret
end
end
function Category:getTopright()
if self._lang or self._info.raw then
return self:substitute_template_specs(self._data.topright)
else
return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright)
end
end
function Category:display_title(displaytitle, lang)
if type(displaytitle) == "string" then
displaytitle = self:substitute_template_specs(displaytitle)
else
displaytitle = displaytitle(self:getCategoryName(), lang)
end
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Category:" .. displaytitle)
end
function Category:get_labels_categorizing()
local m_labels_utilities = require(labels_utilities_module)
local pos_cat_labels, sense_cat_labels, use_tlb
pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang)
local sense_label = self._info.label:match("^(.*) terms$")
if sense_label then
use_tlb = true
else
sense_label = self._info.label:match("^terms with (.*) senses$")
end
if sense_label then
sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang)
if use_tlb then
return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang)
else
local all_labels = pos_cat_labels
for k, v in pairs(sense_cat_labels) do
all_labels[k] = v
end
return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang)
end
end
end
local function remove_lang_params(desc)
-- Simply remove a language name/code/category from the beginning of the string, but replace the language name
-- in the middle of the string with either "specific languages" or "specific-language" depending on whether the
-- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong,
-- in which case the category in question should supply its own umbrella description.
desc = desc:gsub("^{{{langname}}} ", "")
desc = desc:gsub("^{{{langcode}}} ", "")
desc = desc:gsub("^{{{langcat}}} ", "")
desc = desc:gsub("^{{{langlink}}} ", "")
desc = desc:gsub("{{{langname}}} %(", "specific languages (")
desc = desc:gsub("{{{langname}}}([.,])", "specific languages%1")
desc = desc:gsub("{{{langname}}} ", "specific-language ")
desc = desc:gsub("{{{langcode}}} ", "")
desc = desc:gsub("{{{langcat}}} ", "")
desc = desc:gsub("{{{langlink}}} ", "")
return desc
end
function Category:getDescription(isChild)
-- Allows different text in the list of a category's children
local isChild = isChild == "child"
if self._lang or self._info.raw then
if not isChild and self._data.displaytitle then
self:display_title(self._data.displaytitle, self._lang)
end
if self._sc then
return self:getCategoryName() .. "."
else
local desc = self:convert_spec_to_string(self._data.description)
if not isChild and desc then
if self._data.preceding then
desc = self._data.preceding .. "\n\n" .. desc
end
if self._data.additional then
desc = desc .. "\n\n" .. self._data.additional
end
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
return self:substitute_template_specs(desc)
end
else
if not isChild and self._data.umbrella and self._data.umbrella.displaytitle then
self:display_title(self._data.umbrella.displaytitle)
end
local desc = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.description)
local has_umbrella_desc = not not desc
if not desc then
desc = self:convert_spec_to_string(self._data.description)
if desc then
desc = remove_lang_params(desc)
-- Use the following in preference to mw.getContentLanguage():lcfirst(), which will only lowercase the first
-- character, whereas the following will correctly handle links at the beginning of the text.
desc = require("Module:string utilities").lcfirst(desc)
desc = desc:gsub("%.$", "")
desc = desc:gsub("මෙහි දැක්වෙයි", "වේ")
desc = "මෙහි දැක්වෙන ප්රවර්ග වල අන්තර්ගත වන්නේ, " .. desc .. "."
end
end
if not desc then
desc = "මෙහි දැක්වෙන ප්රවර්ග වල අන්තර්ගත වන්නේ, " .. self._info.label .. " in various specific languages."
end
if not isChild then
local preceding = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.preceding or
not has_umbrella_desc and self._data.preceding)
local additional = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.additional or
not has_umbrella_desc and self._data.additional)
if preceding then
desc = remove_lang_params(preceding) .. "\n\n" .. desc
end
if additional then
desc = desc .. "\n\n" .. remove_lang_params(additional)
end
desc = desc .. "\n\n{{{umbrella_msg}}}"
local labels_msg = self:get_labels_categorizing()
if labels_msg then
desc = desc .. "\n\n" .. labels_msg
end
end
desc = self:substitute_template_specs(desc)
return desc
end
end
function Category:new_sortkey(sortkey)
if type(sortkey) == "string" then
sortkey = uupper(sortkey)
elseif type(sortkey) == "table" then
function sortkey:makeSortKey()
if self.sort_func then
return self.sort_func(self.sort_base)
end
local lang, sc
if self.lang then
lang = require("Module:languages").getByCode(self.lang, nil, true) or
require("Module:languages/errorGetBy").code(self.lang, true, true)
end
if self.sc then
sc = require("Module:scripts").getByCode(self.sc) or
require("Module:languages/error")(self.sc, true, "script code", nil, "not real lang")
end
if lang then
return lang:makeSortKey(self.sort_base, sc)
end
return self.sort_base
end
end
return sortkey
end
function Category:inherit_spec(spec, parent_spec)
if spec == false then
return nil
end
return self:substitute_template_specs(spec or parent_spec)
end
function Category:canonicalize_parents_children(cats, is_children)
if not cats then
return nil
end
if type(cats) ~= "table" then
cats = {cats}
end
if cats.name or cats.module then
cats = {cats}
end
if #cats == 0 then
return nil
end
local ret = {}
for _, cat in ipairs(cats) do
if type(cat) ~= "table" or not cat.name and not cat.module then
cat = {name = cat}
end
insert(ret, cat)
end
local is_umbrella = not self._lang and not self._info.raw
local table_type = is_children and "extra_children" or "parents"
for i, cat in ipairs(ret) do
local raw
if self._info.raw or is_umbrella then
raw = not cat.is_label
else
raw = cat.raw
end
local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil)
local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil)
-- Get the sortkey.
local sortkey = cat.sort
if type(sortkey) == "table" then
sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or
error("Missing .sort_base in '" .. table_type .. "' .sort table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
if sortkey.sort_func then
-- Not allowed to give a lang and/or script if sort_func is given.
local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil
if bad_spec then
error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type ..
"' .sort table for '" .. self._info.label .. "' category entry in module '" ..
(self._data.module or "unknown") .. "'")
end
else
sortkey.lang = self:inherit_spec(sortkey.lang, lang)
sortkey.sc = self:inherit_spec(sortkey.sc, sc)
end
else
sortkey = self:substitute_template_specs(sortkey)
end
local name
if cat.module then
-- A reference to a category using another category tree module.
if not cat.args then
error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
end
name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args))
else
name = cat.name
if not name then
error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" ..
self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'")
elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly
name = self:substitute_template_specs(name)
if name:find("^ප්රවර්ගය:") then
-- It's a non-poscatboiler category name.
sortkey = sortkey or is_children and name:gsub("^ප්රවර්ගය:", "") or self:getCategoryName()
else
-- It's a label.
sortkey = sortkey or is_children and name or self._info.label
name = self:make_new{
label = name, code = lang, sc = sc,
raw = raw, args = self:substitute_template_specs_in_args(cat.args)
}
end
end
end
sortkey = sortkey or is_children and " " or self._info.label
ret[i] = {
name = name,
description = is_children and self:substitute_template_specs(cat.description) or nil,
sort = self:new_sortkey(sortkey)
}
end
return ret
end
function Category:getParents()
local is_umbrella = not self._lang and not self._info.raw
local retval
if self._sc then
local parent1 = self:make_new{code = self._info.code, label = "යෙදුම්, " .. self._sc:getCanonicalName() .. " අක්ෂරක්රමය භාවිතා කොට ලියන ලද"}
local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args}
retval = {
{name = parent1, sort = self._sc:getCanonicalName()},
{name = parent2, sort = self._sc:getCanonicalName()},
}
else
local parents
if is_umbrella then
parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents
else
parents = self._data.parents
end
retval = self:canonicalize_parents_children(parents)
end
if not retval then
return nil
end
local self_cat = self:getCategoryName()
for _, parent in ipairs(retval) do
local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName()
if self_cat == parent_cat then
error(("Internal error: Infinite loop would occur, as parent category '%s' is the same as the child category"):
format(self_cat))
end
end
return retval
end
function Category:getChildren()
local is_umbrella = not self._lang and not self._info.raw
local children = self._data.children
local ret = {}
if not is_umbrella and children then
for _, child in ipairs(children) do
child = mw.clone(child)
if type(child) ~= "table" then
child = {name = child}
end
if not child.sort then
child.sort = child.name
end
-- FIXME, is preserving the script correct?
child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc}
insert(ret, child)
end
end
local extra_children
if is_umbrella then
extra_children = self._data.umbrella and self._data.umbrella.extra_children
else
extra_children = self._data.extra_children
end
extra_children = self:canonicalize_parents_children(extra_children, "children")
if extra_children then
for _, child in ipairs(extra_children) do
insert(ret, child)
end
end
if #ret == 0 then
return nil
end
return ret
end
function Category:getUmbrella()
local umbrella = self._data.umbrella
if umbrella == false or self._info.raw or not self._lang or self._sc then
return nil
end
-- If `umbrella` is a string, use that; otherwise, use the label.
return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label})
end
function Category:getAppendix()
-- FIXME, this should be customizable.
if not self._info.raw and self._info.label and self._lang then
local appendixName = "Appendix:" .. self._lang:getCanonicalName() .. " " .. self._info.label
local appendix = mw.title.new(appendixName).exists
if appendix then
return appendixName
else
return nil
end
else
return nil
end
end
function Category:getCatfixInfo()
if self._lang or self._sc or self._info.raw then
local langcode, sccode, lang, sc = self._data.catfix, self._data.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
elseif langcode == nil then -- not false
lang = self._lang
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
elseif sccode == nil then -- not false
sc = self._sc
end
return lang, sc
elseif not self._data.umbrella then
return
end
-- umbrella
local langcode, sccode, lang, sc = self._data.umbrella.catfix, self._data.umbrella.catfix_sc
if langcode then
langcode = self:substitute_template_specs(langcode)
lang = require("Module:languages").getByCode(langcode) or
require("Module:languages/errorGetBy").code(langcode, true)
end
if sccode then
sccode = self:substitute_template_specs(sccode)
sc = require("Module:scripts").getByCode(sccode) or
require("Module:languages/error")(sccode, true, "script code", nil, "not real lang")
end
return lang, sc
end
function Category:getTOCTemplateName()
-- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC()
-- implements its own default algorithm.
error("Internal error: This should never get called")
end
local export = {}
function export.main(info)
local self = setmetatable({_info = info}, Category)
self:initCommon()
return self._data and self or nil
end
export.new = Category.new
return export
mozzhvot4c2cbqb7q1jpwy8fg3wcpku
Module:languages/data/3/z
828
6246
196050
182955
2024-11-26T13:23:34Z
en>Theknightwho
0
finalizeLanguageData changed to finalizeData.
196050
Scribunto
text/plain
local m_lang = require("Module:languages")
local m_langdata = require("Module:languages/data")
local u = require("Module:string utilities").char
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["zaa"] = {
"Sierra de Juárez Zapotec",
12953989,
"omq-zap",
"Latn",
}
m["zab"] = {
"San Juan Guelavía Zapotec",
5614751,
"omq-zpc",
"Latn",
}
m["zac"] = {
"Ocotlán Zapotec",
7076643,
"omq-zap",
"Latn",
}
m["zad"] = {
"Cajonos Zapotec",
5017997,
"omq-zpc",
"Latn",
}
m["zae"] = {
"Yareni Zapotec",
12645368,
"omq-zap",
"Latn",
}
m["zaf"] = {
"Ayoquesco Zapotec",
4831570,
"omq-zpc",
"Latn",
}
m["zag"] = {
"Zaghawa",
37007,
"ssa-sah",
"Latn", -- also Beria
}
m["zah"] = {
"Zangwal",
3441387,
"cdc-wst",
"Latn",
}
m["zai"] = {
"Isthmus Zapotec",
56728,
"omq-zpc",
"Latn",
}
m["zaj"] = {
"Zaramo",
8066599,
"bnt-ruv",
"Latn",
}
m["zak"] = {
"Zanaki",
8066018,
"bnt-lok",
"Latn",
}
m["zal"] = {
"Zauzou",
3616358,
"tbq-nus",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["zam"] = {
"Central Mahuatlán Zapoteco",
13541830,
"omq-zap",
"Latn",
}
m["zao"] = {
"Ozolotepec Zapotec",
7116610,
"omq-zap",
"Latn",
}
m["zap"] = {
"Zapotec",
13214,
"omq-zap",
"Latn",
}
m["zaq"] = {
"Aloápam Zapotec",
4734726,
"omq-zap",
"Latn",
}
m["zar"] = {
"Rincón Zapotec",
7334628,
"omq-zap",
"Latn",
}
m["zas"] = {
"Santo Domingo Albarradas Zapotec",
4709425,
"omq-zap",
"Latn",
}
m["zat"] = {
"Tabaa Zapotec",
7672849,
"omq-zap",
"Latn",
}
m["zau"] = {
"Zangskari",
771203,
"sit-lab",
"Tibt",
ancestors = "lbj",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["zav"] = {
"Yatzachi Zapotec",
8050301,
"omq-zpc",
"Latn",
}
m["zaw"] = {
"Mitla Zapotec",
3053288,
"omq-zpc",
"Latn",
}
m["zax"] = {
"Xadani Zapotec",
8042823,
"omq-zap",
"Latn",
}
m["zay"] = {
"Zayse-Zergulla",
673895,
"omv-eom",
"Latn",
}
m["zaz"] = {
"Zari",
3914398,
"cdc-wst",
"Latn",
}
m["zbt"] = {
"Batui",
16839143,
"poz-slb",
"Latn",
}
m["zca"] = {
"Coatecas Altas Zapotec",
5138603,
"omq-zap",
"Latn",
}
m["zdj"] = {
"Ngazidja Comorian",
3114653,
"bnt-com",
"Latn",
sort_key = "bnt-com-sortkey",
}
m["zea"] = {
"Zealandic",
237409,
"gmw-frk",
"Latn",
ancestors = "dum",
sort_key = {
from = {"^'([aeiouy].*)$"},
to = {"%1'"}
}
}
m["zeg"] = {
"Zenag",
12953345,
"poz-ocw",
"Latn",
}
m["zen"] = {
"Zenaga",
37005,
"ber",
"Latn",
}
m["zga"] = {
"Kinga",
11005332,
"bnt-bki",
"Latn",
}
m["zgh"] = {
"Moroccan Amazigh",
7598268,
"ber",
"Tfng",
translit = "Tfng-translit",
}
m["zgr"] = {
"Magori",
3277370,
"poz-ocw",
"Latn",
}
m["zhb"] = {
"Zhaba",
56334,
"sit-qia",
}
m["zhi"] = {
"Zhire",
3914910,
"nic-plc",
"Latn",
}
m["zhn"] = {
"Nong Zhuang",
7049385,
"tai-cen",
"Latn",
sort_key = {remove_diacritics = "%p"},
}
m["zhw"] = {
"Zhoa",
8070885,
"nic-rnw",
"Latn",
}
m["zia"] = {
"Zia",
3038636,
"ngf",
"Latn",
}
m["zib"] = {
"Zimbabwe Sign Language",
8072097,
"sgn",
}
m["zik"] = {
"Zimakani",
56740,
"ngf",
"Latn",
}
m["zil"] = {
"Zialo",
36991,
"dmn-msw",
"Latn",
}
m["zim"] = {
"Mesme",
56282,
"cdc-mas",
"Latn",
}
m["zin"] = {
"Zinza",
8072460,
"bnt-haj",
"Latn",
}
m["zir"] = {
"Ziriya",
3913943,
"nic-jer",
"Latn",
}
m["ziw"] = {
"Zigula",
37010,
"bnt-seu",
"Latn",
}
m["ziz"] = {
"Zizilivakan",
56300,
"cdc-cbm",
"Latn",
}
m["zka"] = {
"Kaimbulawa",
6348011,
"poz-mun",
"Latn",
}
m["zkb"] = {
"Koibal",
949259,
"syd",
"Latn, Cyrl",
}
m["zkd"] = {
"Kadu (Myanmar)", -- The name is duplicated with Kadu languages in Africa.
54324451,
"sit-luu",
"Latn", -- and also unencoded Kadu script
}
m["zkg"] = {
"Goguryeo",
706327,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["zkh"] = {
"Khorezmian Turkic",
25502,
"trk-kar",
"Arab",
ancestors = "xqa",
}
m["zkk"] = {
"Karankawa",
3192947,
nil,
"Latn",
}
m["zko"] = {
"Kott",
34163,
"qfa-yso",
"Latn",
}
m["zkp"] = {
"São Paulo Kaingáng",
7665661,
"sai-jee",
"Latn",
}
m["zkr"] = {
"Zakhring",
56996,
"sit-mdz",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["zkt"] = {
"Khitan",
1064482,
"qfa-xgx",
"Kitl, Kits, Hani",
translit = {Kits = "zkt-translit"},
sort_key = {Hani = "Hani-sortkey"},
}
m["zku"] = {
"Kaurna",
6378899,
"aus-psw",
"Latn",
}
m["zkv"] = {
"Krevinian",
6436902,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["zkz"] = {
"Khazar",
1067986,
"trk",
"Orkh",
}
m["zma"] = {
"Manda (Australia)",
18650060,
"aus-dal",
"Latn",
}
m["zmb"] = {
"Zimba",
8071960,
"bnt-lgb",
"Latn",
}
m["zmc"] = {
"Margany",
10577017,
"aus-pam",
"Latn",
}
m["zmd"] = {
"Maridan",
10577273,
"aus-dal",
"Latn",
}
m["zme"] = {
"Mangerr",
10576387,
nil,
"Latn",
}
m["zmf"] = {
"Mfinu",
35915,
"bnt-tek",
"Latn",
}
m["zmg"] = {
"Marti Ke",
10577823,
"aus-dal",
"Latn",
}
m["zmh"] = {
"Makolkol",
12636052,
"paa-bng",
"Latn",
}
m["zmi"] = {
"Negeri Sembilan Malay",
3915909,
"poz-mly",
"Latn",
}
m["zmj"] = {
"Maridjabin",
10577274,
"aus-dal",
"Latn",
}
m["zmk"] = {
"Mandandanyi",
10576338,
"aus-pam",
"Latn",
}
m["zml"] = {
"Madngele",
10575155,
"aus-dal",
"Latn",
}
m["zmm"] = {
"Marimanindji",
10577424,
"aus-dal",
"Latn",
}
m["zmn"] = {
"Mbangwe",
35928,
"bnt-kel",
"Latn",
}
m["zmo"] = {
"Molo",
15974357,
"sdv-eje",
"Latn",
}
m["zmp"] = {
"Mbuun",
106249400,
"bnt",
"Latn",
}
m["zmq"] = {
"Mituku",
6883590,
"bnt-mbe",
"Latn",
}
m["zmr"] = {
"Maranungku",
6772792,
"aus-dal",
"Latn",
}
m["zms"] = {
"Mbesa",
6799676,
"bnt-ske",
"Latn",
}
m["zmt"] = {
"Maringarr",
10577443,
"aus-dal",
"Latn",
}
m["zmu"] = {
"Muruwari",
3915442,
"aus-pam",
"Latn",
}
m["zmv"] = {
"Mbariman-Gudhinma",
3915672,
"aus-pmn",
"Latn",
}
m["zmw"] = {
"Mbo (Congo)",
6799710,
"bnt-nya",
"Latn",
}
m["zmx"] = {
"Bomitaba",
35063,
"bnt-ngn",
"Latn",
}
m["zmy"] = {
"Mariyedi",
10577501,
"aus-dal",
"Latn",
}
m["zmz"] = {
"Mbandja",
3915310,
"bad",
"Latn",
}
m["zna"] = {
"Zan Gula",
863726,
"alv-bua",
"Latn",
}
m["zne"] = {
"Zande",
35015,
"znd",
"Latn",
}
m["zng"] = {
"Mang",
720192,
"mkh-mng",
}
m["znk"] = {
"Manangkari",
6746906,
"aus-wdj",
"Latn",
}
m["zns"] = {
"Mangas",
3438780,
"cdc-wst",
"Latn",
}
m["zoc"] = {
"Copainalá Zoque",
12954017,
"nai-miz",
"Latn",
}
m["zoh"] = {
"Chimalapa Zoque",
5099289,
"nai-miz",
"Latn",
}
m["zom"] = {
"Zou",
37011,
"tbq-kuk",
"Latn",
}
m["zoo"] = {
"Asunción Mixtepec Zapotec",
4811888,
"omq-zap",
"Latn",
}
m["zoq"] = {
"Tabasco Zoque",
323325,
"nai-miz",
"Latn",
}
m["zor"] = {
"Rayón Zoque",
12954015,
"nai-miz",
"Latn",
}
m["zos"] = {
"Francisco León Zoque",
12954011,
"nai-miz",
"Latn",
}
m["zpa"] = {
"Lachiguiri Zapotec",
6468403,
"omq-zap",
"Latn",
}
m["zpb"] = {
"Yautepec Zapotec",
7413392,
"omq-zap",
"Latn",
}
m["zpc"] = {
"Choapan Zapotec",
5103425,
"omq-zap",
"Latn",
}
m["zpd"] = {
"Southeastern Ixtlán Zapotec",
8050392,
"omq-zap",
"Latn",
}
m["zpe"] = {
"Petapa Zapotec",
7171675,
"omq-zap",
"Latn",
}
m["zpf"] = {
"San Pedro Quiatoni Zapotec",
7271640,
"omq-zpc",
"Latn",
}
m["zpg"] = {
"Guevea de Humboldt Zapotec",
13459953,
"omq-zap",
"Latn",
}
m["zph"] = {
"Totomachapan Zapotec",
7828390,
"omq-zap",
"Latn",
}
m["zpi"] = {
"Santa María Quiegolani Zapotec",
7271823,
"omq-zpc",
"Latn",
}
m["zpj"] = {
"Quiavicuzas Zapotec",
7271642,
"omq-zap",
"Latn",
}
m["zpk"] = {
"Tlacolulita Zapotec",
7810685,
"omq-zpc",
"Latn",
}
m["zpl"] = {
"Lachixío Zapotec",
6468420,
"omq-zap",
"Latn",
}
m["zpm"] = {
"Mixtepec Zapotec",
7414598,
"omq-zpc",
"Latn",
}
m["zpn"] = {
"Santa Inés Yatzechi Zapotec",
8050300,
"omq-zap",
"Latn",
}
m["zpo"] = {
"Amatlán Zapotec",
4740613,
"omq-zpc",
"Latn",
}
m["zpp"] = {
"El Alto Zapotec",
5350733,
"omq-zap",
"Latn",
}
m["zpq"] = {
"Zoogocho Zapotec",
8074100,
"omq-zpc",
"Latn",
}
m["zpr"] = {
"Santiago Xanica Zapotec",
8042924,
"omq-zap",
"Latn",
}
m["zps"] = {
"Coatlán Zapotec",
7420514,
"omq-zap",
"Latn",
}
m["zpt"] = {
"San Vicente Coatlán Zapotec",
13541831,
"omq-zap",
"Latn",
}
m["zpu"] = {
"Yalálag Zapotec",
8047534,
"omq-zpc",
"Latn",
}
m["zpv"] = {
"Chichicapan Zapotec",
5096050,
"omq-zap",
"Latn",
}
m["zpw"] = {
"Zaniza Zapotec",
8066220,
"omq-zpc",
"Latn",
}
m["zpx"] = {
"San Baltazar Loxicha Zapotec",
7413390,
"omq-zap",
"Latn",
}
m["zpy"] = {
"Mazaltepec Zapotec",
6798223,
"omq-zap",
"Latn",
}
m["zpz"] = {
"Texmelucan Zapotec",
7708357,
"omq-zpc",
"Latn",
}
m["zra"] = {
"Gaya",
5528695,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["zrg"] = {
"Mirgan",
6873206,
"inc-eas",
}
m["zrn"] = {
"Zirenkel",
3441365,
"cdc-est",
"Latn",
}
m["zro"] = {
"Záparo",
10206,
"sai-zap",
"Latn",
}
m["zrs"] = {
"Mairasi",
3038645,
"paa-mai",
"Latn",
}
m["zsa"] = {
"Sarasira",
57333197,
"poz-ocw",
}
m["zsk"] = { -- attested?
"Kaskean",
6374586,
}
m["zsl"] = {
"Zambian Sign Language",
8065713,
"sgn",
}
m["zsr"] = {
"Southern Rincon Zapotec",
12954000,
"omq-zpc",
"Latn",
}
m["zsu"] = {
"Sukurum",
57333741,
"poz-ocw",
}
m["zte"] = {
"Elotepec Zapotec",
5367223,
"omq-zap",
"Latn",
}
m["ztg"] = {
"Xanaguía Zapotec",
8042887,
"omq-zpc",
"Latn",
}
m["ztl"] = {
"Lapaguía-Guivini Zapotec",
6488084,
"omq-zap",
"Latn",
}
m["ztm"] = {
"San Agustín Mixtepec Zapotec",
7413220,
"omq-zap",
"Latn",
}
m["ztn"] = {
"Santa Catarina Albarradas Zapotec",
7419277,
"omq-zap",
"Latn",
}
m["ztp"] = {
"Loxicha Zapotec",
6694268,
"omq-zap",
"Latn",
}
m["ztq"] = {
"Quioquitani-Quierí Zapotec",
3574818,
"omq-zpc",
"Latn",
}
m["zts"] = {
"Tilquiapan Zapotec",
7802959,
"omq-zpc",
"Latn",
}
m["ztt"] = {
"Tejalapan Zapotec",
13510225,
"omq-zap",
"Latn",
}
m["ztu"] = {
"San Pablo Güilá Zapotec",
5626813,
"omq-zap",
"Latn",
}
m["ztx"] = {
"Zaachila Zapotec",
8063390,
"omq-zap",
"Latn",
}
m["zty"] = {
"Yatee Zapotec",
3574815,
"omq-zpc",
"Latn",
}
m["zua"] = {
"Zeem",
3450131,
"cdc-wst",
"Latn",
}
m["zuh"] = {
"Tokano",
7813481,
"ngf",
"Latn",
}
m["zum"] = {
"Kumzari",
36158,
"ira-swi",
"Arab",
ancestors = "pal",
}
m["zun"] = {
"Zuni",
10188,
"qfa-iso",
"Latn",
}
m["zuy"] = {
"Zumaya",
56626,
"cdc-mas",
"Latn",
}
m["zwa"] = {
"Zay",
10195,
"sem-eth",
}
m["zyp"] = {
"Zyphe",
57004,
"tbq-kuk",
"Latn",
}
m["zza"] = {
"Zazaki",
10199,
"ira-zgr",
"Latn",
dotted_dotless_i = true,
sort_key = "zza-sortkey",
wikimedia_codes = "diq",
}
m["zzj"] = {
"Zuojiang Zhuang",
13848149,
"tai-cen",
"Latn",
sort_key = {remove_diacritics = "%p"},
}
return m_lang.finalizeData(m_lang.addDefaultTypes(m, true), "languages")
n5mg8ueg2pqx2lwj3m9dxcw3u84sbcp
196051
196050
2024-12-04T13:02:56Z
Lee
19
[[:en:Module:languages/data/3/z]] වෙතින් එක් සංශෝධනයක්
196050
Scribunto
text/plain
local m_lang = require("Module:languages")
local m_langdata = require("Module:languages/data")
local u = require("Module:string utilities").char
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["zaa"] = {
"Sierra de Juárez Zapotec",
12953989,
"omq-zap",
"Latn",
}
m["zab"] = {
"San Juan Guelavía Zapotec",
5614751,
"omq-zpc",
"Latn",
}
m["zac"] = {
"Ocotlán Zapotec",
7076643,
"omq-zap",
"Latn",
}
m["zad"] = {
"Cajonos Zapotec",
5017997,
"omq-zpc",
"Latn",
}
m["zae"] = {
"Yareni Zapotec",
12645368,
"omq-zap",
"Latn",
}
m["zaf"] = {
"Ayoquesco Zapotec",
4831570,
"omq-zpc",
"Latn",
}
m["zag"] = {
"Zaghawa",
37007,
"ssa-sah",
"Latn", -- also Beria
}
m["zah"] = {
"Zangwal",
3441387,
"cdc-wst",
"Latn",
}
m["zai"] = {
"Isthmus Zapotec",
56728,
"omq-zpc",
"Latn",
}
m["zaj"] = {
"Zaramo",
8066599,
"bnt-ruv",
"Latn",
}
m["zak"] = {
"Zanaki",
8066018,
"bnt-lok",
"Latn",
}
m["zal"] = {
"Zauzou",
3616358,
"tbq-nus",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["zam"] = {
"Central Mahuatlán Zapoteco",
13541830,
"omq-zap",
"Latn",
}
m["zao"] = {
"Ozolotepec Zapotec",
7116610,
"omq-zap",
"Latn",
}
m["zap"] = {
"Zapotec",
13214,
"omq-zap",
"Latn",
}
m["zaq"] = {
"Aloápam Zapotec",
4734726,
"omq-zap",
"Latn",
}
m["zar"] = {
"Rincón Zapotec",
7334628,
"omq-zap",
"Latn",
}
m["zas"] = {
"Santo Domingo Albarradas Zapotec",
4709425,
"omq-zap",
"Latn",
}
m["zat"] = {
"Tabaa Zapotec",
7672849,
"omq-zap",
"Latn",
}
m["zau"] = {
"Zangskari",
771203,
"sit-lab",
"Tibt",
ancestors = "lbj",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["zav"] = {
"Yatzachi Zapotec",
8050301,
"omq-zpc",
"Latn",
}
m["zaw"] = {
"Mitla Zapotec",
3053288,
"omq-zpc",
"Latn",
}
m["zax"] = {
"Xadani Zapotec",
8042823,
"omq-zap",
"Latn",
}
m["zay"] = {
"Zayse-Zergulla",
673895,
"omv-eom",
"Latn",
}
m["zaz"] = {
"Zari",
3914398,
"cdc-wst",
"Latn",
}
m["zbt"] = {
"Batui",
16839143,
"poz-slb",
"Latn",
}
m["zca"] = {
"Coatecas Altas Zapotec",
5138603,
"omq-zap",
"Latn",
}
m["zdj"] = {
"Ngazidja Comorian",
3114653,
"bnt-com",
"Latn",
sort_key = "bnt-com-sortkey",
}
m["zea"] = {
"Zealandic",
237409,
"gmw-frk",
"Latn",
ancestors = "dum",
sort_key = {
from = {"^'([aeiouy].*)$"},
to = {"%1'"}
}
}
m["zeg"] = {
"Zenag",
12953345,
"poz-ocw",
"Latn",
}
m["zen"] = {
"Zenaga",
37005,
"ber",
"Latn",
}
m["zga"] = {
"Kinga",
11005332,
"bnt-bki",
"Latn",
}
m["zgh"] = {
"Moroccan Amazigh",
7598268,
"ber",
"Tfng",
translit = "Tfng-translit",
}
m["zgr"] = {
"Magori",
3277370,
"poz-ocw",
"Latn",
}
m["zhb"] = {
"Zhaba",
56334,
"sit-qia",
}
m["zhi"] = {
"Zhire",
3914910,
"nic-plc",
"Latn",
}
m["zhn"] = {
"Nong Zhuang",
7049385,
"tai-cen",
"Latn",
sort_key = {remove_diacritics = "%p"},
}
m["zhw"] = {
"Zhoa",
8070885,
"nic-rnw",
"Latn",
}
m["zia"] = {
"Zia",
3038636,
"ngf",
"Latn",
}
m["zib"] = {
"Zimbabwe Sign Language",
8072097,
"sgn",
}
m["zik"] = {
"Zimakani",
56740,
"ngf",
"Latn",
}
m["zil"] = {
"Zialo",
36991,
"dmn-msw",
"Latn",
}
m["zim"] = {
"Mesme",
56282,
"cdc-mas",
"Latn",
}
m["zin"] = {
"Zinza",
8072460,
"bnt-haj",
"Latn",
}
m["zir"] = {
"Ziriya",
3913943,
"nic-jer",
"Latn",
}
m["ziw"] = {
"Zigula",
37010,
"bnt-seu",
"Latn",
}
m["ziz"] = {
"Zizilivakan",
56300,
"cdc-cbm",
"Latn",
}
m["zka"] = {
"Kaimbulawa",
6348011,
"poz-mun",
"Latn",
}
m["zkb"] = {
"Koibal",
949259,
"syd",
"Latn, Cyrl",
}
m["zkd"] = {
"Kadu (Myanmar)", -- The name is duplicated with Kadu languages in Africa.
54324451,
"sit-luu",
"Latn", -- and also unencoded Kadu script
}
m["zkg"] = {
"Goguryeo",
706327,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["zkh"] = {
"Khorezmian Turkic",
25502,
"trk-kar",
"Arab",
ancestors = "xqa",
}
m["zkk"] = {
"Karankawa",
3192947,
nil,
"Latn",
}
m["zko"] = {
"Kott",
34163,
"qfa-yso",
"Latn",
}
m["zkp"] = {
"São Paulo Kaingáng",
7665661,
"sai-jee",
"Latn",
}
m["zkr"] = {
"Zakhring",
56996,
"sit-mdz",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["zkt"] = {
"Khitan",
1064482,
"qfa-xgx",
"Kitl, Kits, Hani",
translit = {Kits = "zkt-translit"},
sort_key = {Hani = "Hani-sortkey"},
}
m["zku"] = {
"Kaurna",
6378899,
"aus-psw",
"Latn",
}
m["zkv"] = {
"Krevinian",
6436902,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["zkz"] = {
"Khazar",
1067986,
"trk",
"Orkh",
}
m["zma"] = {
"Manda (Australia)",
18650060,
"aus-dal",
"Latn",
}
m["zmb"] = {
"Zimba",
8071960,
"bnt-lgb",
"Latn",
}
m["zmc"] = {
"Margany",
10577017,
"aus-pam",
"Latn",
}
m["zmd"] = {
"Maridan",
10577273,
"aus-dal",
"Latn",
}
m["zme"] = {
"Mangerr",
10576387,
nil,
"Latn",
}
m["zmf"] = {
"Mfinu",
35915,
"bnt-tek",
"Latn",
}
m["zmg"] = {
"Marti Ke",
10577823,
"aus-dal",
"Latn",
}
m["zmh"] = {
"Makolkol",
12636052,
"paa-bng",
"Latn",
}
m["zmi"] = {
"Negeri Sembilan Malay",
3915909,
"poz-mly",
"Latn",
}
m["zmj"] = {
"Maridjabin",
10577274,
"aus-dal",
"Latn",
}
m["zmk"] = {
"Mandandanyi",
10576338,
"aus-pam",
"Latn",
}
m["zml"] = {
"Madngele",
10575155,
"aus-dal",
"Latn",
}
m["zmm"] = {
"Marimanindji",
10577424,
"aus-dal",
"Latn",
}
m["zmn"] = {
"Mbangwe",
35928,
"bnt-kel",
"Latn",
}
m["zmo"] = {
"Molo",
15974357,
"sdv-eje",
"Latn",
}
m["zmp"] = {
"Mbuun",
106249400,
"bnt",
"Latn",
}
m["zmq"] = {
"Mituku",
6883590,
"bnt-mbe",
"Latn",
}
m["zmr"] = {
"Maranungku",
6772792,
"aus-dal",
"Latn",
}
m["zms"] = {
"Mbesa",
6799676,
"bnt-ske",
"Latn",
}
m["zmt"] = {
"Maringarr",
10577443,
"aus-dal",
"Latn",
}
m["zmu"] = {
"Muruwari",
3915442,
"aus-pam",
"Latn",
}
m["zmv"] = {
"Mbariman-Gudhinma",
3915672,
"aus-pmn",
"Latn",
}
m["zmw"] = {
"Mbo (Congo)",
6799710,
"bnt-nya",
"Latn",
}
m["zmx"] = {
"Bomitaba",
35063,
"bnt-ngn",
"Latn",
}
m["zmy"] = {
"Mariyedi",
10577501,
"aus-dal",
"Latn",
}
m["zmz"] = {
"Mbandja",
3915310,
"bad",
"Latn",
}
m["zna"] = {
"Zan Gula",
863726,
"alv-bua",
"Latn",
}
m["zne"] = {
"Zande",
35015,
"znd",
"Latn",
}
m["zng"] = {
"Mang",
720192,
"mkh-mng",
}
m["znk"] = {
"Manangkari",
6746906,
"aus-wdj",
"Latn",
}
m["zns"] = {
"Mangas",
3438780,
"cdc-wst",
"Latn",
}
m["zoc"] = {
"Copainalá Zoque",
12954017,
"nai-miz",
"Latn",
}
m["zoh"] = {
"Chimalapa Zoque",
5099289,
"nai-miz",
"Latn",
}
m["zom"] = {
"Zou",
37011,
"tbq-kuk",
"Latn",
}
m["zoo"] = {
"Asunción Mixtepec Zapotec",
4811888,
"omq-zap",
"Latn",
}
m["zoq"] = {
"Tabasco Zoque",
323325,
"nai-miz",
"Latn",
}
m["zor"] = {
"Rayón Zoque",
12954015,
"nai-miz",
"Latn",
}
m["zos"] = {
"Francisco León Zoque",
12954011,
"nai-miz",
"Latn",
}
m["zpa"] = {
"Lachiguiri Zapotec",
6468403,
"omq-zap",
"Latn",
}
m["zpb"] = {
"Yautepec Zapotec",
7413392,
"omq-zap",
"Latn",
}
m["zpc"] = {
"Choapan Zapotec",
5103425,
"omq-zap",
"Latn",
}
m["zpd"] = {
"Southeastern Ixtlán Zapotec",
8050392,
"omq-zap",
"Latn",
}
m["zpe"] = {
"Petapa Zapotec",
7171675,
"omq-zap",
"Latn",
}
m["zpf"] = {
"San Pedro Quiatoni Zapotec",
7271640,
"omq-zpc",
"Latn",
}
m["zpg"] = {
"Guevea de Humboldt Zapotec",
13459953,
"omq-zap",
"Latn",
}
m["zph"] = {
"Totomachapan Zapotec",
7828390,
"omq-zap",
"Latn",
}
m["zpi"] = {
"Santa María Quiegolani Zapotec",
7271823,
"omq-zpc",
"Latn",
}
m["zpj"] = {
"Quiavicuzas Zapotec",
7271642,
"omq-zap",
"Latn",
}
m["zpk"] = {
"Tlacolulita Zapotec",
7810685,
"omq-zpc",
"Latn",
}
m["zpl"] = {
"Lachixío Zapotec",
6468420,
"omq-zap",
"Latn",
}
m["zpm"] = {
"Mixtepec Zapotec",
7414598,
"omq-zpc",
"Latn",
}
m["zpn"] = {
"Santa Inés Yatzechi Zapotec",
8050300,
"omq-zap",
"Latn",
}
m["zpo"] = {
"Amatlán Zapotec",
4740613,
"omq-zpc",
"Latn",
}
m["zpp"] = {
"El Alto Zapotec",
5350733,
"omq-zap",
"Latn",
}
m["zpq"] = {
"Zoogocho Zapotec",
8074100,
"omq-zpc",
"Latn",
}
m["zpr"] = {
"Santiago Xanica Zapotec",
8042924,
"omq-zap",
"Latn",
}
m["zps"] = {
"Coatlán Zapotec",
7420514,
"omq-zap",
"Latn",
}
m["zpt"] = {
"San Vicente Coatlán Zapotec",
13541831,
"omq-zap",
"Latn",
}
m["zpu"] = {
"Yalálag Zapotec",
8047534,
"omq-zpc",
"Latn",
}
m["zpv"] = {
"Chichicapan Zapotec",
5096050,
"omq-zap",
"Latn",
}
m["zpw"] = {
"Zaniza Zapotec",
8066220,
"omq-zpc",
"Latn",
}
m["zpx"] = {
"San Baltazar Loxicha Zapotec",
7413390,
"omq-zap",
"Latn",
}
m["zpy"] = {
"Mazaltepec Zapotec",
6798223,
"omq-zap",
"Latn",
}
m["zpz"] = {
"Texmelucan Zapotec",
7708357,
"omq-zpc",
"Latn",
}
m["zra"] = {
"Gaya",
5528695,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["zrg"] = {
"Mirgan",
6873206,
"inc-eas",
}
m["zrn"] = {
"Zirenkel",
3441365,
"cdc-est",
"Latn",
}
m["zro"] = {
"Záparo",
10206,
"sai-zap",
"Latn",
}
m["zrs"] = {
"Mairasi",
3038645,
"paa-mai",
"Latn",
}
m["zsa"] = {
"Sarasira",
57333197,
"poz-ocw",
}
m["zsk"] = { -- attested?
"Kaskean",
6374586,
}
m["zsl"] = {
"Zambian Sign Language",
8065713,
"sgn",
}
m["zsr"] = {
"Southern Rincon Zapotec",
12954000,
"omq-zpc",
"Latn",
}
m["zsu"] = {
"Sukurum",
57333741,
"poz-ocw",
}
m["zte"] = {
"Elotepec Zapotec",
5367223,
"omq-zap",
"Latn",
}
m["ztg"] = {
"Xanaguía Zapotec",
8042887,
"omq-zpc",
"Latn",
}
m["ztl"] = {
"Lapaguía-Guivini Zapotec",
6488084,
"omq-zap",
"Latn",
}
m["ztm"] = {
"San Agustín Mixtepec Zapotec",
7413220,
"omq-zap",
"Latn",
}
m["ztn"] = {
"Santa Catarina Albarradas Zapotec",
7419277,
"omq-zap",
"Latn",
}
m["ztp"] = {
"Loxicha Zapotec",
6694268,
"omq-zap",
"Latn",
}
m["ztq"] = {
"Quioquitani-Quierí Zapotec",
3574818,
"omq-zpc",
"Latn",
}
m["zts"] = {
"Tilquiapan Zapotec",
7802959,
"omq-zpc",
"Latn",
}
m["ztt"] = {
"Tejalapan Zapotec",
13510225,
"omq-zap",
"Latn",
}
m["ztu"] = {
"San Pablo Güilá Zapotec",
5626813,
"omq-zap",
"Latn",
}
m["ztx"] = {
"Zaachila Zapotec",
8063390,
"omq-zap",
"Latn",
}
m["zty"] = {
"Yatee Zapotec",
3574815,
"omq-zpc",
"Latn",
}
m["zua"] = {
"Zeem",
3450131,
"cdc-wst",
"Latn",
}
m["zuh"] = {
"Tokano",
7813481,
"ngf",
"Latn",
}
m["zum"] = {
"Kumzari",
36158,
"ira-swi",
"Arab",
ancestors = "pal",
}
m["zun"] = {
"Zuni",
10188,
"qfa-iso",
"Latn",
}
m["zuy"] = {
"Zumaya",
56626,
"cdc-mas",
"Latn",
}
m["zwa"] = {
"Zay",
10195,
"sem-eth",
}
m["zyp"] = {
"Zyphe",
57004,
"tbq-kuk",
"Latn",
}
m["zza"] = {
"Zazaki",
10199,
"ira-zgr",
"Latn",
dotted_dotless_i = true,
sort_key = "zza-sortkey",
wikimedia_codes = "diq",
}
m["zzj"] = {
"Zuojiang Zhuang",
13848149,
"tai-cen",
"Latn",
sort_key = {remove_diacritics = "%p"},
}
return m_lang.finalizeData(m_lang.addDefaultTypes(m, true), "languages")
n5mg8ueg2pqx2lwj3m9dxcw3u84sbcp
Module:languages/data/3/x
828
6253
196150
182950
2024-11-26T13:22:26Z
en>Theknightwho
0
finalizeLanguageData changed to finalizeData.
196150
Scribunto
text/plain
local m_lang = require("Module:languages")
local m_langdata = require("Module:languages/data")
local u = require("Module:string utilities").char
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["xaa"] = {
"Andalusian Arabic",
1137945,
"sem-arb",
"Arab, Latn",
entry_name = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {u(0x0671)},
to = {u(0x0627)}
},
}
m["xab"] = {
"Sambe",
36265,
"nic-alu",
"Latn",
}
m["xac"] = {
"Kachari",
3442442,
"tbq-bdg",
}
m["xad"] = {
"Adai",
346744,
nil,
"Latn",
}
m["xae"] = {
"Aequian",
930579,
"itc",
"Latn",
}
m["xag"] = {
"Aghwan",
34931,
"cau-esm",
"Aghb",
translit = "Aghb-translit",
override_translit = true,
}
m["xai"] = {
"Kaimbé",
6348017,
}
m["xaj"] = {
"Ararandewára",
63339949,
"tup-gua",
"Latn",
}
m["xak"] = {
"Maku",
2032882,
nil,
"Latn",
}
m["xal"] = {
"Kalmyk",
33634,
"xgn-cen",
"Cyrl, xwo-Mong",
ancestors = "xwo",
translit = "xal-translit",
override_translit = true,
sort_key = "xal-sortkey",
}
m["xam"] = {
"ǀXam",
2086145,
"khi-tuu",
"Latn",
}
m["xan"] = {
"Xamtanga",
56527,
"cus-cen",
}
m["xao"] = {
"Khao",
3196077,
"mkh-pal",
}
m["xap"] = {
"Apalachee",
686501,
"nai-mus",
"Latn",
}
m["xaq"] = {
"Aquitanian",
500522,
"euq",
"Latn",
}
m["xar"] = {
"Karami",
11732281,
}
m["xas"] = {
"Kamassian",
35991,
translit = "xas-translit",
"syd",
"Cyrl",
}
m["xat"] = {
"Katawixi",
3440512,
"sai-ktk",
}
m["xau"] = {
"Kauwera",
6378983,
"paa-tkw",
}
m["xav"] = {
"Xavante",
36962,
"sai-cje",
"Latn",
}
m["xaw"] = {
"Kawaiisu",
56338,
"azc-num",
"Latn",
}
m["xay"] = {
"Kayan Mahakam",
25337171,
}
m["xbb"] = {
"Lower Burdekin",
6693353,
}
m["xbc"] = {
"Bactrian",
756651,
"ira-sbc",
"Grek, Mani",
translit = "xbc-translit",
entry_name = {
from = {"Þ", "þ"},
to = {"Ϸ", "ϸ"}
},
}
m["xbd"] = {
"Bindal",
4913975,
}
m["xbe"] = {
"Bigambal",
16841801,
"aus-pam", --unclassified within
}
m["xbg"] = {
"Bunganditj",
4997615,
}
m["xbi"] = {
"Kombio",
6428259,
"qfa-tor",
"Latn",
}
m["xbj"] = {
"Birrpayi",
63339969,
}
m["xbm"] = {
"Middle Breton",
787610,
"cel-brs",
"Latn",
ancestors = "obt",
}
m["xbn"] = {
"Kenaboi",
6388752,
}
m["xbo"] = {
"Bulgar",
36880,
"trk-ogr",
"Arab, Grek",
entry_name = {
Arab = "ar-entryname",
}
}
m["xbp"] = {
"Bibbulman",
22918391,
}
m["xbr"] = {
"Kambera",
3053279,
"poz-cet",
"Latn",
}
m["xbw"] = {
"Kambiwá",
9006744,
}
m["xby"] = {
"Butchulla",
31752631,
}
m["xcb"] = {
"Cumbric",
35965,
"cel-brw",
}
m["xcc"] = {
"Camunic",
489011,
nil,
"Ital",
translit = "Ital-translit",
}
m["xce"] = {
"Celtiberian",
37012,
"cel-his",
"Latn",
}
m["xch"] = {
"Chemakum",
56397,
"chi",
"Latn",
}
m["xcl"] = {
"Old Armenian",
181074,
"hyx",
"Armn",
translit = "Armn-translit",
override_translit = true,
entry_name = {
remove_diacritics = "՞՜՛՟",
from = {"եւ", "ՙ", "՚"},
to = {"և", "ʻ", "’"}
},
}
m["xcm"] = {
"Comecrudo",
609808,
"nai-pak",
}
m["xcn"] = {
"Cotoname",
56889,
"nai-pak",
}
m["xco"] = {
"Khwarezmian",
33138,
"ira-sbc",
"Arab, Armi, Chrs, Phlv, Sogd",
translit = {Chrs = "Chrs-translit"},
}
m["xcr"] = {
"Carian",
35929,
"ine-luw",
"Cari",
}
m["xct"] = {
"Classical Tibetan",
5128314,
"sit-tib",
"Tibt, Hani, Marc, Mong, mnc-Mong, xwo-Mong, Phag, Tang, Zanb",
translit = {
Tibt = "Tibt-translit",
Mong = "Mong-translit",
["mnc-Mong"] = "mnc-translit",
["xwo-Mong"] = "xwo-translit",
Tang = "txg-translit",
},
override_translit = true,
display_text = {
Tibt = s["Tibt-displaytext"],
Mong = s["Mong-displaytext"],
},
entry_name = {
Tibt = s["Tibt-entryname"],
Mong = s["Mong-entryname"],
},
sort_key = {
Tibt = "Tibt-sortkey",
Hani = "Hani-sortkey",
},
}
m["xcu"] = {
"Curonian",
35857,
"bat",
"Latn",
}
m["xcv"] = {
"Chuvan",
3516641,
"qfa-yuk",
"Cyrl",
translit = "xcv-translit"
}
m["xcw"] = {
"Coahuilteco",
2008062,
"nai-pak",
}
m["xcy"] = {
"Cayuse",
2472016,
}
m["xda"] = {
"Darkinjung",
5223660,
"aus-yuk",
"Latn",
}
m["xdc"] = {
"Dacian",
682547,
"ine",
"Latn, Polyt",
translit = {Polyt = "grc-translit"},
entry_name = {
Polyt = s["Polyt-entryname"],
},
sort_key = {
Polyt = s["Grek-sortkey"],
},
}
m["xdk"] = {
"Dharug",
1166814,
"aus-yuk",
"Latn",
}
m["xdm"] = {
"Edomite",
2363529,
"sem-can",
"Phnx",
translit = "Phnx-translit",
}
m["xdy"] = {
"Malayic Dayak",
3514892,
}
m["xeb"] = {
"Eblaite",
35345,
"sem-eas",
"Xsux",
}
m["xed"] = {
"Hdi",
56246,
"cdc-cbm",
"Latn",
}
m["xeg"] = {
"ǁXegwi",
3509732,
"khi-tuu",
"Latn",
}
m["xel"] = {
"Kelo",
6386412,
"sdv-eje",
}
m["xem"] = {
"Kembayan",
6386874,
}
m["xep"] = {
"Epi-Olmec",
124257204,
}
m["xer"] = {
"Xerénte",
3073436,
"sai-cje",
"Latn",
}
m["xes"] = {
"Kesawai",
6394907,
"ngf-mad",
"Latn",
}
m["xet"] = {
"Xetá",
2980404,
"tup-gua",
"Latn",
}
m["xeu"] = {
"Keoru-Ahia",
11732313,
"ngf",
}
m["xfa"] = {
"Faliscan",
35669,
"itc",
"Ital, Latn",
translit = "Ital-translit",
entry_name = {remove_diacritics = c.macron .. c.breve .. c.diaer},
}
m["xga"] = {
"Galatian",
27403,
"cel",
"Latn, Grek",
ancestors = "cel-gau",
}
m["xgb"] = {
"Gbin",
16934745,
"dmn-mse",
"Latn",
}
m["xgd"] = {
"Gudang",
5614528,
}
m["xgf"] = {
"Gabrielino-Fernandeño",
56387,
"azc-tak",
"Latn",
}
m["xgg"] = {
"Goreng",
50934914,
}
m["xgi"] = {
"Garingbal",
52008172,
}
m["xgl"] = {
"Galindian",
1190494,
"bat",
"Latn",
}
m["xgm"] = {
"Darumbal",
16954400,
}
m["xgr"] = {
"Garza",
3098656,
"nai-pak",
}
m["xgu"] = {
"Unggumi",
62000004,
"aus-wor",
"Latn",
}
m["xgw"] = {
"Guwa",
5621992,
}
m["xha"] = {
"Harami",
41506724,
nil,
"Sarb",
translit = "Sarb-translit",
}
m["xhc"] = {
"Hunnic",
35959,
}
m["xhd"] = {
"Hadrami",
1032453,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xhe"] = {
"Khetrani",
2614111,
"inc-pan",
ancestors = "lah",
}
m["xhm"] = {
"Middle Khmer",
25226861,
"mkh-kmr",
"Latn, Khmr", --and also Khom
ancestors = "okz",
}
m["xhr"] = {
"Hernican",
5908773,
"itc-sbl",
"Ital",
}
m["xht"] = {
"Hattic",
31107,
"qfa-iso",
"Xsux",
}
m["xhu"] = {
"Hurrian",
35740,
"qfa-hur",
"Xsux, Ugar",
}
m["xhv"] = {
"Khua",
22970290,
"mkh-kat",
}
m["xib"] = {
"Iberian",
855215,
"qfa-iso",
"Latn, Ibrnn, Ibrns",
}
m["xii"] = {
"Xiri",
36876,
}
m["xin"] = {
"Xinca",
1546494,
"nai-xin",
"Latn",
}
m["xil"] = {
"Illyrian",
35976,
"ine",
type = "reconstructed",
}
m["xir"] = {
"Xiriâna",
2028772,
"awd",
"Latn",
}
m["xis"] = {
"Kisan",
63339998,
"dra-kml",
ancestors = "kru",
}
m["xiv"] = {
"Harappan",
3428279,
nil,
"Inds",
}
m["xiy"] = {
"Xipaya",
13226,
"tup",
}
m["xjb"] = {
"Minjungbal",
16334334,
"aus-pam",
"Latn",
}
m["xka"] = {
"Kalkoti",
3877551,
"inc-shn",
"ur-Arab",
}
m["xkb"] = {
"Manigri-Kambolé Ede Nago",
36042,
"alv-ede",
}
m["xkc"] = {
"Khoini",
6401919,
"xme-ttc",
ancestors = "xme-ttc-wes",
}
m["xkd"] = {
"Mendalam Kayan",
12952597,
}
m["xke"] = {
"Kereho",
6437086,
"poz",
"Latn",
}
m["xkf"] = {
"Khengkha",
3695207,
"sit-ebo",
"Tibt",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["xkg"] = {
"Kagoro",
11159524,
"dmn-wmn",
}
m["xki"] = {
"Kenyan Sign Language",
6392859,
"sgn",
}
m["xkj"] = {
"Kajali",
14916876,
"xme-ttc",
ancestors = "xme-ttc-cen",
}
m["xkk"] = {
"Kaco'",
6344767,
"mkh",
}
m["xkl"] = {
"Bakung",
6736761,
"poz-swa",
"Latn",
}
m["xkn"] = {
"Kayan River Kayan",
12473395,
"poz",
}
m["xko"] = {
"Kiorr",
6414519,
"mkh-pal",
}
m["xkp"] = {
"Kabatei",
34165,
"xme-ttc",
ancestors = "xme-ttc-cen",
}
m["xkq"] = {
"Koroni",
3199000,
"poz-btk",
}
m["xkr"] = {
"Xakriabá",
3073441,
"sai-cje",
"Latn",
}
m["xks"] = {
"Kumbewaha",
6443722,
}
m["xkt"] = {
"Kantosi",
35651,
"nic-dag",
}
m["xku"] = {
"Kaamba",
11042324,
"bnt-kng",
}
m["xkv"] = {
"Kgalagadi",
2088743,
"bnt-sts",
"Latn",
}
m["xkw"] = {
"Kembra",
12953627,
"paa-pau",
}
m["xkx"] = {
"Karore",
6373260,
"poz-ocw",
}
m["xky"] = {
"Uma' Lasan",
7881227,
"poz-swa",
}
m["xkz"] = {
"Kurtöp",
3695193,
"sit-ebo",
"Tibt, Latn",
translit = {Tibt = "Tibt-translit"},
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xla"] = {
"Kamula",
10957277,
"ngf",
}
m["xlb"] = {
"Loup B",
13108281,
"alg-eas",
"Latn",
}
m["xlc"] = {
"Lycian",
35969,
"ine-luw",
"Lyci",
translit = "Lyci-translit",
}
m["xld"] = {
"Lydian",
36095,
"ine-ana",
"Lydi",
translit = "Lydi-translit",
}
m["xle"] = {
"Lemnian",
36203,
"qfa-tyn",
"Ital",
translit = "Ital-translit",
}
m["xlg"] = {
"Ancient Ligurian",
36104,
"ine",
"Latn",
}
m["xli"] = {
"Liburnian",
35835,
"ine",
}
m["xln"] = {
"Alanic",
3658580,
"xsc",
"Polyt, Latn",
ancestors = "xsc-sar-pro",
translit = {Polyt = "grc-translit"},
entry_name = {
Polyt = s["Polyt-entryname"],
},
sort_key = {
Polyt = s["Grek-sortkey"],
},
}
m["xlo"] = {
"Loup A",
27921265,
"alg-eas",
"Latn",
}
m["xlp"] = {
"Lepontic",
35993,
"cel",
"Ital",
translit = "Ital-translit",
}
m["xls"] = {
"Lusitanian",
35960,
"ine",
"Latn",
}
m["xlu"] = {
"Luwian",
12634577,
"ine-luw",
"Xsux, Hluw",
}
m["xly"] = {
"Elymian",
35329,
nil,
"Grek",
}
m["xmb"] = {
"Mbonga",
36064,
"nic-jrn",
"Latn",
}
m["xmc"] = {
"Makhuwa-Marrevone",
11127231,
"bnt-mak",
ancestors = "vmw",
}
m["xmd"] = {
"Mbudum",
6799790,
"cdc-cbm",
"Latn",
}
m["xmf"] = {
"Mingrelian",
13359,
"ccs-zan",
"Geor",
translit = "Geor-translit",
override_translit = true,
}
m["xmg"] = {
"Mengaka",
36017,
"bai",
"Latn",
}
m["xmh"] = {
"Kugu-Muminh",
10549849,
"aus-pmn",
"Latn",
}
m["xmj"] = {
"Majera",
6737666,
"cdc-cbm",
"Latn",
}
m["xmk"] = {
"Ancient Macedonian",
35974,
"grk",
"Polyt",
translit = "grc-translit",
entry_name = s["Polyt-entryname"],
sort_key = s["Grek-sortkey"],
}
m["xml"] = {
"Malaysian Sign Language",
33420,
"sgn",
}
m["xmm"] = {
"Manado Malay",
1068112,
"crp",
"Latn",
}
m["xmo"] = {
"Morerebi",
12953749,
"tup",
"Latn",
}
m["xmp"] = {
"Kuku-Mu'inh",
10549852,
nil,
"Latn",
}
m["xmq"] = {
"Kuku-Mangk",
10549851,
"aus-pam",
"Latn",
}
m["xmr"] = {
"Meroitic",
13366,
"afa",
"Mero, Merc, Latn", -- we have entries in Latn
translit = "xmr-translit",
}
m["xms"] = {
"Moroccan Sign Language",
6913107,
"sgn",
}
m["xmt"] = {
"Matbat",
6786187,
"poz-hce",
}
m["xmu"] = {
"Kamu",
6359779,
}
m["xmx"] = {
"Maden",
12952756,
"poz-hce",
}
m["xmy"] = {
"Mayaguduna",
3436736,
}
m["xmz"] = {
"Mori Bawah",
3324069,
"poz-btk",
"Latn",
}
m["xna"] = {
"Ancient North Arabian",
1472213,
"sem-cen",
"Narb",
translit = "Narb-translit",
}
m["xnb"] = {
"Kanakanabu",
172244,
"map",
"Latn",
}
m["xng"] = {
"Middle Mongol",
2582455,
"xgn",
"Mong, Phag, Hani, Arab, Armn",
translit = {Mong = "Mong-translit"},
display_text = {Mong = s["Mong-displaytext"]},
entry_name = {Mong = s["Mong-entryname"]},
sort_key = {Hani = "Hani-sortkey"},
}
m["xnh"] = {
"Kuanhua",
6441084,
"mkh-pal",
}
m["xni"] = {
"Ngarigu",
7022072,
"aus-yuk",
}
m["xnk"] = {
"Nganakarti",
33087049,
}
m["xnn"] = {
"Northern Kankanay", -- use this for now; correction must be "Northern Kankanaey"
12953609,
"phi",
}
-- "xno" IS TREATED AS "fro", SEE WT:LT
m["xnr"] = {
"Kangri",
2331560,
"him",
"Deva, Takr, fa-Arab",
ancestors = "doi",
translit = "hi-translit",
}
m["xns"] = {
"Kanashi",
6360672,
"sit-whm",
}
m["xnt"] = {
"Narragansett",
3336118,
"alg-eas",
"Latn, Hebr",
entry_name = {remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron},
}
m["xnu"] = {
"Nukunul",
7068904,
}
m["xny"] = {
"Nyiyaparli",
16919427,
"aus-nga",
"Latn",
}
m["xoc"] = {
"O'chi'chi'",
3813833,
"nic-cde",
"Latn",
}
m["xod"] = {
"Kokoda",
6426734,
"ngf-sbh",
}
m["xog"] = {
"Soga",
33784,
"bnt-nyg",
"Latn",
}
m["xoi"] = {
"Kominimung",
6428352,
"paa",
"Latn",
}
m["xok"] = {
"Xokleng",
3027930,
"sai-sje",
}
m["xom"] = {
"Komo",
56681,
"ssa-kom",
}
m["xon"] = {
"Konkomba",
35674,
"nic-grm",
"Latn",
}
m["xoo"] = { -- contrast kzw, sai-kat, sai-xoc
"Xukurú",
9096758,
}
m["xop"] = {
"Kopar",
11732346,
}
m["xor"] = {
"Korubo",
3199022,
}
m["xow"] = {
"Kowaki",
6434920,
"ngf-mad",
}
m["xpa"] = {
"Pirriya",
16978087,
}
m["xpb"] = {
"Pyemmairre",
7262964,
nil,
"Latn",
}
m["xpc"] = {
"Pecheneg",
877881,
"trk",
}
m["xpd"] = {
"Paredarerme",
7136678,
nil,
"Latn",
}
m["xpe"] = {
"Liberia Kpelle",
20527226,
"dmn-msw",
"Latn, Kpel",
ancestors = "kpe",
}
m["xpf"] = {
"Southeast Tasmanian",
7068421,
nil,
"Latn",
}
m["xpg"] = {
"Phrygian",
36751,
"ine",
"Polyt",
translit = "grc-translit",
entry_name = s["Polyt-entryname"],
sort_key = s["Grek-sortkey"],
}
m["xph"] = {
"Tyerrernotepanner",
7859815,
nil,
"Latn",
}
m["xpi"] = {
"Pictish",
856383,
"cel-brw",
"Ogam, Latn",
}
m["xpj"] = {
"Mpalitjanh",
6928192,
"aus-pam",
}
m["xpk"] = {
"Kulina",
6443027,
"sai-pan",
}
m["xpl"] = {
"Port Sorell",
7230944,
nil,
"Latn",
}
m["xpm"] = {
"Pumpokol",
2991985,
"qfa-yso",
"Latn",
}
m["xpn"] = {
"Kapinawá",
6366667,
}
m["xpo"] = {
"Pochutec",
2427341,
"azc-nah",
"Latn",
}
m["xpp"] = {
"Puyo-Paekche",
65455887,
}
m["xpq"] = {
"Mohegan-Pequot",
3319130,
"alg-eas",
"Latn",
}
m["xpr"] = {
"Parthian",
25953,
"ira-mpr",
"Prti, Mani, Phlv",
translit = {
Prti = "Prti-translit",
Mani = "Mani-translit",
},
}
m["xps"] = {
"Pisidian",
36580,
"ine-luw",
}
m["xpu"] = {
"Punic",
535958,
"sem-can",
"Phnx, Latn, Grek",
ancestors = "phn",
translit = {Phnx = "Phnx-translit"},
}
m["xpv"] = {
"Tommeginne",
7819095,
nil,
"Latn",
}
m["xpw"] = {
"Peerapper",
7160431,
nil,
"Latn",
}
m["xpx"] = {
"Toogee",
7824008,
nil,
"Latn",
}
m["xpy"] = {
"Buyeo",
5003359,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["xpz"] = {
"Bruny Island",
4979601,
nil,
"Latn",
}
m["xqa"] = {
"Karakhanid",
4494885,
"trk-kar",
"Arab",
entry_name = "ar-entryname",
}
m["xqt"] = {
"Qatabanian",
384101,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xra"] = {
"Krahô",
3199549,
"sai-nje",
}
m["xrb"] = {
"Eastern Karaboro",
35716,
"alv-krb",
}
m["xrd"] = {
"Gundungurra",
60611652,
}
m["xre"] = {
"Kreye",
3199686,
"sai-nje",
}
m["xrg"] = {
"Minang",
22893424,
}
m["xri"] = {
"Krikati-Timbira",
3199710,
}
m["xrm"] = {
"Armazic",
7599646,
}
m["xrn"] = {
"Arin",
34088,
"qfa-yso",
"Latn",
}
m["xrq"] = {
"Karranga",
6373349,
nil,
"Latn",
}
m["xrr"] = {
"Raetic",
36689,
"qfa-tyn",
"Ital",
translit = "Ital-translit",
}
m["xrt"] = {
"Aranama-Tamique",
2859505,
}
m["xru"] = {
"Marriammu",
10577724,
"aus-dal",
}
m["xrw"] = {
"Karawa",
6368857,
"paa-spk",
}
m["xsa"] = {
"Sabaean",
1070391,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xsb"] = {
"Sambali",
2592378,
"phi",
"Latn",
}
m["xsd"] = {
"Sidetic",
36659,
"ine-luw",
"Sidt",
}
m["xse"] = {
"Sempan",
3504358,
}
m["xsh"] = {
"Shamang",
3914876,
"nic-plc",
}
m["xsi"] = {
"Sio",
3485100,
"poz-ocw",
}
m["xsj"] = {
"Subi",
7631298,
"bnt-haj",
}
m["xsl"] = {
"South Slavey",
28552,
"den",
"Latn",
}
m["xsm"] = {
"Kasem",
35552,
"nic-gnn",
}
m["xsn"] = {
"Sanga (Nigeria)",
3915334,
"nic-jer",
"Latn",
}
m["xso"] = {
"Solano",
2474492,
nil,
"Latn",
}
m["xsp"] = {
"Silopi",
7515533,
"ngf-mad",
}
m["xsq"] = {
"Makhuwa-Saka",
11008159,
"bnt-mak",
ancestors = "vmw",
}
m["xsr"] = {
"Sherpa",
36612,
"sit-tib",
"Tibt, Deva",
ancestors = "xct",
translit = {
Tibt = "Tibt-translit",
Deva = "xsr-Deva-translit",
},
override_translit = true,
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xss"] = {
"Assan",
34089,
"qfa-yso",
"Latn",
}
m["xsu"] = {
"Sanumá",
251728,
"sai-ynm",
}
m["xsv"] = {
"Sudovian",
35603,
"bat-wes",
"Latn",
}
m["xsy"] = {
"Saisiyat",
716695,
"map",
"Latn",
}
m["xta"] = {
"Alcozauca Mixtec",
25559587,
"omq-mxt",
"Latn",
}
m["xtb"] = {
"Chazumba Mixtec",
12182838,
"omq-mxt",
"Latn",
}
m["xtc"] = {
"Kadugli",
3407136,
"qfa-kad",
"Latn",
}
m["xtd"] = {
"Diuxi-Tilantongo Mixtec",
7802048,
"omq-mxt",
"Latn",
}
m["xte"] = {
"Ketengban",
10990152,
}
m["xth"] = {
"Yitha Yitha",
8053879,
}
m["xti"] = {
"Sinicahua Mixtec",
12953733,
"omq-mxt",
"Latn",
}
m["xtj"] = {
"San Juan Teita Mixtec",
32093049,
"omq-mxt",
"Latn",
}
m["xtl"] = {
"Tijaltepec Mixtec",
12953738,
"omq-mxt",
"Latn",
}
m["xtm"] = {
"Magdalena Peñasco Mixtec",
7179700,
"omq-mxt",
"Latn",
}
m["xtn"] = {
"Northern Tlaxiaco Mixtec",
25559585,
"omq-mxt",
"Latn",
}
m["xto"] = {
"Tocharian A",
2827041,
"ine-toc",
"Latn",
}
m["xtp"] = {
"San Miguel Piedras Mixtec",
7414970,
"omq-mxt",
"Latn",
}
m["xtq"] = {
"Tumshuqese",
65455890,
"xsc-sak",
"Brah, Khar",
translit = "Brah-translit",
}
m["xtr"] = {
"Early Tripuri",
65455891,
}
m["xts"] = {
"Sindihui Mixtec",
13583581,
"omq-mxt",
"Latn",
}
m["xtt"] = {
"Tacahua Mixtec",
7673668,
"omq-mxt",
"Latn",
}
m["xtu"] = {
"Cuyamecalco Mixtec",
12953726,
"omq-mxt",
"Latn",
}
m["xtv"] = {
"Thawa",
7711494,
}
m["xtw"] = {
"Tawandê",
63340139,
"sai-nmk",
"Latn",
}
m["xty"] = {
"Yoloxochitl Mixtec",
8054817,
"omq-mxt",
"Latn",
}
m["xua"] = {
"Alu Kurumba",
12952679,
"dra-kan",
"Knda",
translit = "kn-translit",
}
m["xub"] = {
"Betta Kurumba",
16841033,
"dra-kan",
"Knda, Mlym, Taml",
translit = {
Knda = "kn-translit",
Taml = "ta-translit",
},
}
m["xud"] = {
"Umiida",
61999874,
"aus-wor",
"Latn",
}
m["xug"] = {
"Kunigami",
56558,
"jpx-nry",
"Jpan",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
entry_name = s["jpx-entryname"],
sort_key = s["jpx-sortkey"],
}
m["xuj"] = {
"Jennu Kurumba",
21282543,
"dra-kan",
"Knda",
translit = "kn-translit",
}
m["xul"] = {
"Ngunawal",
7022712,
"aus-yuk",
"Latn",
}
m["xum"] = {
"Umbrian",
36957,
"itc-sbl",
"Ital, Latn",
translit = "Ital-translit",
}
m["xun"] = {
"Unggaranggu",
61999823,
"aus-wor",
"Latn",
}
m["xuo"] = {
"Kuo",
6445233,
"alv-mbm",
}
m["xup"] = {
"Upper Umpqua",
20607,
"ath-pco",
"Latn",
}
m["xur"] = {
"Urartian",
36934,
"qfa-hur",
"Xsux",
}
m["xut"] = {
"Kuthant",
6448417,
}
m["xuu"] = {
"Khwe",
28305,
"khi-kal",
"Latn",
}
m["xve"] = {
"Venetic",
36871,
"ine",
"Ital",
translit = "Ital-translit",
}
-- m["xvi"] = { "Kamviri", 1193495, "nur-nor", Arab } moved to etym-only code
m["xvn"] = {
"Vandalic",
36835,
"gme",
"Latn",
}
m["xvo"] = {
"Volscian",
622110,
"itc-sbl",
"Latn",
}
m["xvs"] = {
"Vestinian",
2576407,
"itc",
"Latn",
}
m["xwa"] = {
"Kwaza",
3200839,
}
m["xwc"] = {
"Woccon",
3569569,
"nai-cat",
"Latn",
}
m["xwd"] = {
"Wadi Wadi",
7959249,
}
m["xwe"] = {
"Xwela Gbe",
36887,
"alv-pph",
}
m["xwg"] = {
"Kwegu",
56723,
"sdv",
}
m["xwj"] = {
"Wajuk",
33110188,
}
m["xwk"] = {
"Wangkumara",
7967891,
"aus-pam",
"Latn",
}
m["xwl"] = {
"Western Xwla Gbe",
36924,
"alv-pph",
"Latn",
}
m["xwo"] = {
"Written Oirat",
56959,
"xgn-cen",
"xwo-Mong",
translit = "xwo-translit",
}
m["xwr"] = {
"Kwerba Mamberamo",
6450325,
"paa-tkw",
}
m["xww"] = {
"Wemba-Wemba",
18472819,
"aus-pam",
"Latn",
}
m["xxb"] = {
"Boro",
16844787,
nil,
"Latn",
}
m["xxk"] = {
"Ke'o",
3195346,
}
m["xxm"] = {
"Minkin",
6867836,
}
m["xxr"] = {
"Koropó",
6432560,
}
m["xxt"] = {
"Tambora",
36711,
"paa",
"Latn",
}
m["xya"] = {
"Yaygir",
8050525,
"aus-pam",
}
m["xyb"] = {
"Yandjibara",
63340189,
nil,
"Latn",
}
m["xyl"] = {
"Yalakalore",
12645352,
"sai-nmk",
"Latn",
}
m["xyt"] = {
"Mayi-Thakurti",
47004719,
"aus-pam",
"Latn",
}
m["xyy"] = {
"Yorta Yorta",
8055849,
"aus-pam",
"Latn",
}
m["xzh"] = {
"Zhang-Zhung",
3437292,
"sit-alm",
"Marc, Tibt",
translit = {Tibt = "Tibt-translit"},
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xzm"] = {
"Zemgalian",
47631,
"bat-eas",
}
m["xzp"] = {
"Ancient Zapotec",
65455892,
}
return m_lang.finalizeData(m_lang.addDefaultTypes(m, true), "languages")
3jwttqxaj14tp1lyqe6l9x632oj5ro3
196151
196150
2024-12-05T05:26:47Z
Lee
19
[[:en:Module:languages/data/3/x]] වෙතින් එක් සංශෝධනයක්
196150
Scribunto
text/plain
local m_lang = require("Module:languages")
local m_langdata = require("Module:languages/data")
local u = require("Module:string utilities").char
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["xaa"] = {
"Andalusian Arabic",
1137945,
"sem-arb",
"Arab, Latn",
entry_name = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {u(0x0671)},
to = {u(0x0627)}
},
}
m["xab"] = {
"Sambe",
36265,
"nic-alu",
"Latn",
}
m["xac"] = {
"Kachari",
3442442,
"tbq-bdg",
}
m["xad"] = {
"Adai",
346744,
nil,
"Latn",
}
m["xae"] = {
"Aequian",
930579,
"itc",
"Latn",
}
m["xag"] = {
"Aghwan",
34931,
"cau-esm",
"Aghb",
translit = "Aghb-translit",
override_translit = true,
}
m["xai"] = {
"Kaimbé",
6348017,
}
m["xaj"] = {
"Ararandewára",
63339949,
"tup-gua",
"Latn",
}
m["xak"] = {
"Maku",
2032882,
nil,
"Latn",
}
m["xal"] = {
"Kalmyk",
33634,
"xgn-cen",
"Cyrl, xwo-Mong",
ancestors = "xwo",
translit = "xal-translit",
override_translit = true,
sort_key = "xal-sortkey",
}
m["xam"] = {
"ǀXam",
2086145,
"khi-tuu",
"Latn",
}
m["xan"] = {
"Xamtanga",
56527,
"cus-cen",
}
m["xao"] = {
"Khao",
3196077,
"mkh-pal",
}
m["xap"] = {
"Apalachee",
686501,
"nai-mus",
"Latn",
}
m["xaq"] = {
"Aquitanian",
500522,
"euq",
"Latn",
}
m["xar"] = {
"Karami",
11732281,
}
m["xas"] = {
"Kamassian",
35991,
translit = "xas-translit",
"syd",
"Cyrl",
}
m["xat"] = {
"Katawixi",
3440512,
"sai-ktk",
}
m["xau"] = {
"Kauwera",
6378983,
"paa-tkw",
}
m["xav"] = {
"Xavante",
36962,
"sai-cje",
"Latn",
}
m["xaw"] = {
"Kawaiisu",
56338,
"azc-num",
"Latn",
}
m["xay"] = {
"Kayan Mahakam",
25337171,
}
m["xbb"] = {
"Lower Burdekin",
6693353,
}
m["xbc"] = {
"Bactrian",
756651,
"ira-sbc",
"Grek, Mani",
translit = "xbc-translit",
entry_name = {
from = {"Þ", "þ"},
to = {"Ϸ", "ϸ"}
},
}
m["xbd"] = {
"Bindal",
4913975,
}
m["xbe"] = {
"Bigambal",
16841801,
"aus-pam", --unclassified within
}
m["xbg"] = {
"Bunganditj",
4997615,
}
m["xbi"] = {
"Kombio",
6428259,
"qfa-tor",
"Latn",
}
m["xbj"] = {
"Birrpayi",
63339969,
}
m["xbm"] = {
"Middle Breton",
787610,
"cel-brs",
"Latn",
ancestors = "obt",
}
m["xbn"] = {
"Kenaboi",
6388752,
}
m["xbo"] = {
"Bulgar",
36880,
"trk-ogr",
"Arab, Grek",
entry_name = {
Arab = "ar-entryname",
}
}
m["xbp"] = {
"Bibbulman",
22918391,
}
m["xbr"] = {
"Kambera",
3053279,
"poz-cet",
"Latn",
}
m["xbw"] = {
"Kambiwá",
9006744,
}
m["xby"] = {
"Butchulla",
31752631,
}
m["xcb"] = {
"Cumbric",
35965,
"cel-brw",
}
m["xcc"] = {
"Camunic",
489011,
nil,
"Ital",
translit = "Ital-translit",
}
m["xce"] = {
"Celtiberian",
37012,
"cel-his",
"Latn",
}
m["xch"] = {
"Chemakum",
56397,
"chi",
"Latn",
}
m["xcl"] = {
"Old Armenian",
181074,
"hyx",
"Armn",
translit = "Armn-translit",
override_translit = true,
entry_name = {
remove_diacritics = "՞՜՛՟",
from = {"եւ", "ՙ", "՚"},
to = {"և", "ʻ", "’"}
},
}
m["xcm"] = {
"Comecrudo",
609808,
"nai-pak",
}
m["xcn"] = {
"Cotoname",
56889,
"nai-pak",
}
m["xco"] = {
"Khwarezmian",
33138,
"ira-sbc",
"Arab, Armi, Chrs, Phlv, Sogd",
translit = {Chrs = "Chrs-translit"},
}
m["xcr"] = {
"Carian",
35929,
"ine-luw",
"Cari",
}
m["xct"] = {
"Classical Tibetan",
5128314,
"sit-tib",
"Tibt, Hani, Marc, Mong, mnc-Mong, xwo-Mong, Phag, Tang, Zanb",
translit = {
Tibt = "Tibt-translit",
Mong = "Mong-translit",
["mnc-Mong"] = "mnc-translit",
["xwo-Mong"] = "xwo-translit",
Tang = "txg-translit",
},
override_translit = true,
display_text = {
Tibt = s["Tibt-displaytext"],
Mong = s["Mong-displaytext"],
},
entry_name = {
Tibt = s["Tibt-entryname"],
Mong = s["Mong-entryname"],
},
sort_key = {
Tibt = "Tibt-sortkey",
Hani = "Hani-sortkey",
},
}
m["xcu"] = {
"Curonian",
35857,
"bat",
"Latn",
}
m["xcv"] = {
"Chuvan",
3516641,
"qfa-yuk",
"Cyrl",
translit = "xcv-translit"
}
m["xcw"] = {
"Coahuilteco",
2008062,
"nai-pak",
}
m["xcy"] = {
"Cayuse",
2472016,
}
m["xda"] = {
"Darkinjung",
5223660,
"aus-yuk",
"Latn",
}
m["xdc"] = {
"Dacian",
682547,
"ine",
"Latn, Polyt",
translit = {Polyt = "grc-translit"},
entry_name = {
Polyt = s["Polyt-entryname"],
},
sort_key = {
Polyt = s["Grek-sortkey"],
},
}
m["xdk"] = {
"Dharug",
1166814,
"aus-yuk",
"Latn",
}
m["xdm"] = {
"Edomite",
2363529,
"sem-can",
"Phnx",
translit = "Phnx-translit",
}
m["xdy"] = {
"Malayic Dayak",
3514892,
}
m["xeb"] = {
"Eblaite",
35345,
"sem-eas",
"Xsux",
}
m["xed"] = {
"Hdi",
56246,
"cdc-cbm",
"Latn",
}
m["xeg"] = {
"ǁXegwi",
3509732,
"khi-tuu",
"Latn",
}
m["xel"] = {
"Kelo",
6386412,
"sdv-eje",
}
m["xem"] = {
"Kembayan",
6386874,
}
m["xep"] = {
"Epi-Olmec",
124257204,
}
m["xer"] = {
"Xerénte",
3073436,
"sai-cje",
"Latn",
}
m["xes"] = {
"Kesawai",
6394907,
"ngf-mad",
"Latn",
}
m["xet"] = {
"Xetá",
2980404,
"tup-gua",
"Latn",
}
m["xeu"] = {
"Keoru-Ahia",
11732313,
"ngf",
}
m["xfa"] = {
"Faliscan",
35669,
"itc",
"Ital, Latn",
translit = "Ital-translit",
entry_name = {remove_diacritics = c.macron .. c.breve .. c.diaer},
}
m["xga"] = {
"Galatian",
27403,
"cel",
"Latn, Grek",
ancestors = "cel-gau",
}
m["xgb"] = {
"Gbin",
16934745,
"dmn-mse",
"Latn",
}
m["xgd"] = {
"Gudang",
5614528,
}
m["xgf"] = {
"Gabrielino-Fernandeño",
56387,
"azc-tak",
"Latn",
}
m["xgg"] = {
"Goreng",
50934914,
}
m["xgi"] = {
"Garingbal",
52008172,
}
m["xgl"] = {
"Galindian",
1190494,
"bat",
"Latn",
}
m["xgm"] = {
"Darumbal",
16954400,
}
m["xgr"] = {
"Garza",
3098656,
"nai-pak",
}
m["xgu"] = {
"Unggumi",
62000004,
"aus-wor",
"Latn",
}
m["xgw"] = {
"Guwa",
5621992,
}
m["xha"] = {
"Harami",
41506724,
nil,
"Sarb",
translit = "Sarb-translit",
}
m["xhc"] = {
"Hunnic",
35959,
}
m["xhd"] = {
"Hadrami",
1032453,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xhe"] = {
"Khetrani",
2614111,
"inc-pan",
ancestors = "lah",
}
m["xhm"] = {
"Middle Khmer",
25226861,
"mkh-kmr",
"Latn, Khmr", --and also Khom
ancestors = "okz",
}
m["xhr"] = {
"Hernican",
5908773,
"itc-sbl",
"Ital",
}
m["xht"] = {
"Hattic",
31107,
"qfa-iso",
"Xsux",
}
m["xhu"] = {
"Hurrian",
35740,
"qfa-hur",
"Xsux, Ugar",
}
m["xhv"] = {
"Khua",
22970290,
"mkh-kat",
}
m["xib"] = {
"Iberian",
855215,
"qfa-iso",
"Latn, Ibrnn, Ibrns",
}
m["xii"] = {
"Xiri",
36876,
}
m["xin"] = {
"Xinca",
1546494,
"nai-xin",
"Latn",
}
m["xil"] = {
"Illyrian",
35976,
"ine",
type = "reconstructed",
}
m["xir"] = {
"Xiriâna",
2028772,
"awd",
"Latn",
}
m["xis"] = {
"Kisan",
63339998,
"dra-kml",
ancestors = "kru",
}
m["xiv"] = {
"Harappan",
3428279,
nil,
"Inds",
}
m["xiy"] = {
"Xipaya",
13226,
"tup",
}
m["xjb"] = {
"Minjungbal",
16334334,
"aus-pam",
"Latn",
}
m["xka"] = {
"Kalkoti",
3877551,
"inc-shn",
"ur-Arab",
}
m["xkb"] = {
"Manigri-Kambolé Ede Nago",
36042,
"alv-ede",
}
m["xkc"] = {
"Khoini",
6401919,
"xme-ttc",
ancestors = "xme-ttc-wes",
}
m["xkd"] = {
"Mendalam Kayan",
12952597,
}
m["xke"] = {
"Kereho",
6437086,
"poz",
"Latn",
}
m["xkf"] = {
"Khengkha",
3695207,
"sit-ebo",
"Tibt",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["xkg"] = {
"Kagoro",
11159524,
"dmn-wmn",
}
m["xki"] = {
"Kenyan Sign Language",
6392859,
"sgn",
}
m["xkj"] = {
"Kajali",
14916876,
"xme-ttc",
ancestors = "xme-ttc-cen",
}
m["xkk"] = {
"Kaco'",
6344767,
"mkh",
}
m["xkl"] = {
"Bakung",
6736761,
"poz-swa",
"Latn",
}
m["xkn"] = {
"Kayan River Kayan",
12473395,
"poz",
}
m["xko"] = {
"Kiorr",
6414519,
"mkh-pal",
}
m["xkp"] = {
"Kabatei",
34165,
"xme-ttc",
ancestors = "xme-ttc-cen",
}
m["xkq"] = {
"Koroni",
3199000,
"poz-btk",
}
m["xkr"] = {
"Xakriabá",
3073441,
"sai-cje",
"Latn",
}
m["xks"] = {
"Kumbewaha",
6443722,
}
m["xkt"] = {
"Kantosi",
35651,
"nic-dag",
}
m["xku"] = {
"Kaamba",
11042324,
"bnt-kng",
}
m["xkv"] = {
"Kgalagadi",
2088743,
"bnt-sts",
"Latn",
}
m["xkw"] = {
"Kembra",
12953627,
"paa-pau",
}
m["xkx"] = {
"Karore",
6373260,
"poz-ocw",
}
m["xky"] = {
"Uma' Lasan",
7881227,
"poz-swa",
}
m["xkz"] = {
"Kurtöp",
3695193,
"sit-ebo",
"Tibt, Latn",
translit = {Tibt = "Tibt-translit"},
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xla"] = {
"Kamula",
10957277,
"ngf",
}
m["xlb"] = {
"Loup B",
13108281,
"alg-eas",
"Latn",
}
m["xlc"] = {
"Lycian",
35969,
"ine-luw",
"Lyci",
translit = "Lyci-translit",
}
m["xld"] = {
"Lydian",
36095,
"ine-ana",
"Lydi",
translit = "Lydi-translit",
}
m["xle"] = {
"Lemnian",
36203,
"qfa-tyn",
"Ital",
translit = "Ital-translit",
}
m["xlg"] = {
"Ancient Ligurian",
36104,
"ine",
"Latn",
}
m["xli"] = {
"Liburnian",
35835,
"ine",
}
m["xln"] = {
"Alanic",
3658580,
"xsc",
"Polyt, Latn",
ancestors = "xsc-sar-pro",
translit = {Polyt = "grc-translit"},
entry_name = {
Polyt = s["Polyt-entryname"],
},
sort_key = {
Polyt = s["Grek-sortkey"],
},
}
m["xlo"] = {
"Loup A",
27921265,
"alg-eas",
"Latn",
}
m["xlp"] = {
"Lepontic",
35993,
"cel",
"Ital",
translit = "Ital-translit",
}
m["xls"] = {
"Lusitanian",
35960,
"ine",
"Latn",
}
m["xlu"] = {
"Luwian",
12634577,
"ine-luw",
"Xsux, Hluw",
}
m["xly"] = {
"Elymian",
35329,
nil,
"Grek",
}
m["xmb"] = {
"Mbonga",
36064,
"nic-jrn",
"Latn",
}
m["xmc"] = {
"Makhuwa-Marrevone",
11127231,
"bnt-mak",
ancestors = "vmw",
}
m["xmd"] = {
"Mbudum",
6799790,
"cdc-cbm",
"Latn",
}
m["xmf"] = {
"Mingrelian",
13359,
"ccs-zan",
"Geor",
translit = "Geor-translit",
override_translit = true,
}
m["xmg"] = {
"Mengaka",
36017,
"bai",
"Latn",
}
m["xmh"] = {
"Kugu-Muminh",
10549849,
"aus-pmn",
"Latn",
}
m["xmj"] = {
"Majera",
6737666,
"cdc-cbm",
"Latn",
}
m["xmk"] = {
"Ancient Macedonian",
35974,
"grk",
"Polyt",
translit = "grc-translit",
entry_name = s["Polyt-entryname"],
sort_key = s["Grek-sortkey"],
}
m["xml"] = {
"Malaysian Sign Language",
33420,
"sgn",
}
m["xmm"] = {
"Manado Malay",
1068112,
"crp",
"Latn",
}
m["xmo"] = {
"Morerebi",
12953749,
"tup",
"Latn",
}
m["xmp"] = {
"Kuku-Mu'inh",
10549852,
nil,
"Latn",
}
m["xmq"] = {
"Kuku-Mangk",
10549851,
"aus-pam",
"Latn",
}
m["xmr"] = {
"Meroitic",
13366,
"afa",
"Mero, Merc, Latn", -- we have entries in Latn
translit = "xmr-translit",
}
m["xms"] = {
"Moroccan Sign Language",
6913107,
"sgn",
}
m["xmt"] = {
"Matbat",
6786187,
"poz-hce",
}
m["xmu"] = {
"Kamu",
6359779,
}
m["xmx"] = {
"Maden",
12952756,
"poz-hce",
}
m["xmy"] = {
"Mayaguduna",
3436736,
}
m["xmz"] = {
"Mori Bawah",
3324069,
"poz-btk",
"Latn",
}
m["xna"] = {
"Ancient North Arabian",
1472213,
"sem-cen",
"Narb",
translit = "Narb-translit",
}
m["xnb"] = {
"Kanakanabu",
172244,
"map",
"Latn",
}
m["xng"] = {
"Middle Mongol",
2582455,
"xgn",
"Mong, Phag, Hani, Arab, Armn",
translit = {Mong = "Mong-translit"},
display_text = {Mong = s["Mong-displaytext"]},
entry_name = {Mong = s["Mong-entryname"]},
sort_key = {Hani = "Hani-sortkey"},
}
m["xnh"] = {
"Kuanhua",
6441084,
"mkh-pal",
}
m["xni"] = {
"Ngarigu",
7022072,
"aus-yuk",
}
m["xnk"] = {
"Nganakarti",
33087049,
}
m["xnn"] = {
"Northern Kankanay", -- use this for now; correction must be "Northern Kankanaey"
12953609,
"phi",
}
-- "xno" IS TREATED AS "fro", SEE WT:LT
m["xnr"] = {
"Kangri",
2331560,
"him",
"Deva, Takr, fa-Arab",
ancestors = "doi",
translit = "hi-translit",
}
m["xns"] = {
"Kanashi",
6360672,
"sit-whm",
}
m["xnt"] = {
"Narragansett",
3336118,
"alg-eas",
"Latn, Hebr",
entry_name = {remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron},
}
m["xnu"] = {
"Nukunul",
7068904,
}
m["xny"] = {
"Nyiyaparli",
16919427,
"aus-nga",
"Latn",
}
m["xoc"] = {
"O'chi'chi'",
3813833,
"nic-cde",
"Latn",
}
m["xod"] = {
"Kokoda",
6426734,
"ngf-sbh",
}
m["xog"] = {
"Soga",
33784,
"bnt-nyg",
"Latn",
}
m["xoi"] = {
"Kominimung",
6428352,
"paa",
"Latn",
}
m["xok"] = {
"Xokleng",
3027930,
"sai-sje",
}
m["xom"] = {
"Komo",
56681,
"ssa-kom",
}
m["xon"] = {
"Konkomba",
35674,
"nic-grm",
"Latn",
}
m["xoo"] = { -- contrast kzw, sai-kat, sai-xoc
"Xukurú",
9096758,
}
m["xop"] = {
"Kopar",
11732346,
}
m["xor"] = {
"Korubo",
3199022,
}
m["xow"] = {
"Kowaki",
6434920,
"ngf-mad",
}
m["xpa"] = {
"Pirriya",
16978087,
}
m["xpb"] = {
"Pyemmairre",
7262964,
nil,
"Latn",
}
m["xpc"] = {
"Pecheneg",
877881,
"trk",
}
m["xpd"] = {
"Paredarerme",
7136678,
nil,
"Latn",
}
m["xpe"] = {
"Liberia Kpelle",
20527226,
"dmn-msw",
"Latn, Kpel",
ancestors = "kpe",
}
m["xpf"] = {
"Southeast Tasmanian",
7068421,
nil,
"Latn",
}
m["xpg"] = {
"Phrygian",
36751,
"ine",
"Polyt",
translit = "grc-translit",
entry_name = s["Polyt-entryname"],
sort_key = s["Grek-sortkey"],
}
m["xph"] = {
"Tyerrernotepanner",
7859815,
nil,
"Latn",
}
m["xpi"] = {
"Pictish",
856383,
"cel-brw",
"Ogam, Latn",
}
m["xpj"] = {
"Mpalitjanh",
6928192,
"aus-pam",
}
m["xpk"] = {
"Kulina",
6443027,
"sai-pan",
}
m["xpl"] = {
"Port Sorell",
7230944,
nil,
"Latn",
}
m["xpm"] = {
"Pumpokol",
2991985,
"qfa-yso",
"Latn",
}
m["xpn"] = {
"Kapinawá",
6366667,
}
m["xpo"] = {
"Pochutec",
2427341,
"azc-nah",
"Latn",
}
m["xpp"] = {
"Puyo-Paekche",
65455887,
}
m["xpq"] = {
"Mohegan-Pequot",
3319130,
"alg-eas",
"Latn",
}
m["xpr"] = {
"Parthian",
25953,
"ira-mpr",
"Prti, Mani, Phlv",
translit = {
Prti = "Prti-translit",
Mani = "Mani-translit",
},
}
m["xps"] = {
"Pisidian",
36580,
"ine-luw",
}
m["xpu"] = {
"Punic",
535958,
"sem-can",
"Phnx, Latn, Grek",
ancestors = "phn",
translit = {Phnx = "Phnx-translit"},
}
m["xpv"] = {
"Tommeginne",
7819095,
nil,
"Latn",
}
m["xpw"] = {
"Peerapper",
7160431,
nil,
"Latn",
}
m["xpx"] = {
"Toogee",
7824008,
nil,
"Latn",
}
m["xpy"] = {
"Buyeo",
5003359,
"qfa-kor",
"Hani",
sort_key = "Hani-sortkey",
}
m["xpz"] = {
"Bruny Island",
4979601,
nil,
"Latn",
}
m["xqa"] = {
"Karakhanid",
4494885,
"trk-kar",
"Arab",
entry_name = "ar-entryname",
}
m["xqt"] = {
"Qatabanian",
384101,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xra"] = {
"Krahô",
3199549,
"sai-nje",
}
m["xrb"] = {
"Eastern Karaboro",
35716,
"alv-krb",
}
m["xrd"] = {
"Gundungurra",
60611652,
}
m["xre"] = {
"Kreye",
3199686,
"sai-nje",
}
m["xrg"] = {
"Minang",
22893424,
}
m["xri"] = {
"Krikati-Timbira",
3199710,
}
m["xrm"] = {
"Armazic",
7599646,
}
m["xrn"] = {
"Arin",
34088,
"qfa-yso",
"Latn",
}
m["xrq"] = {
"Karranga",
6373349,
nil,
"Latn",
}
m["xrr"] = {
"Raetic",
36689,
"qfa-tyn",
"Ital",
translit = "Ital-translit",
}
m["xrt"] = {
"Aranama-Tamique",
2859505,
}
m["xru"] = {
"Marriammu",
10577724,
"aus-dal",
}
m["xrw"] = {
"Karawa",
6368857,
"paa-spk",
}
m["xsa"] = {
"Sabaean",
1070391,
"sem-osa",
"Sarb",
translit = "Sarb-translit",
}
m["xsb"] = {
"Sambali",
2592378,
"phi",
"Latn",
}
m["xsd"] = {
"Sidetic",
36659,
"ine-luw",
"Sidt",
}
m["xse"] = {
"Sempan",
3504358,
}
m["xsh"] = {
"Shamang",
3914876,
"nic-plc",
}
m["xsi"] = {
"Sio",
3485100,
"poz-ocw",
}
m["xsj"] = {
"Subi",
7631298,
"bnt-haj",
}
m["xsl"] = {
"South Slavey",
28552,
"den",
"Latn",
}
m["xsm"] = {
"Kasem",
35552,
"nic-gnn",
}
m["xsn"] = {
"Sanga (Nigeria)",
3915334,
"nic-jer",
"Latn",
}
m["xso"] = {
"Solano",
2474492,
nil,
"Latn",
}
m["xsp"] = {
"Silopi",
7515533,
"ngf-mad",
}
m["xsq"] = {
"Makhuwa-Saka",
11008159,
"bnt-mak",
ancestors = "vmw",
}
m["xsr"] = {
"Sherpa",
36612,
"sit-tib",
"Tibt, Deva",
ancestors = "xct",
translit = {
Tibt = "Tibt-translit",
Deva = "xsr-Deva-translit",
},
override_translit = true,
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xss"] = {
"Assan",
34089,
"qfa-yso",
"Latn",
}
m["xsu"] = {
"Sanumá",
251728,
"sai-ynm",
}
m["xsv"] = {
"Sudovian",
35603,
"bat-wes",
"Latn",
}
m["xsy"] = {
"Saisiyat",
716695,
"map",
"Latn",
}
m["xta"] = {
"Alcozauca Mixtec",
25559587,
"omq-mxt",
"Latn",
}
m["xtb"] = {
"Chazumba Mixtec",
12182838,
"omq-mxt",
"Latn",
}
m["xtc"] = {
"Kadugli",
3407136,
"qfa-kad",
"Latn",
}
m["xtd"] = {
"Diuxi-Tilantongo Mixtec",
7802048,
"omq-mxt",
"Latn",
}
m["xte"] = {
"Ketengban",
10990152,
}
m["xth"] = {
"Yitha Yitha",
8053879,
}
m["xti"] = {
"Sinicahua Mixtec",
12953733,
"omq-mxt",
"Latn",
}
m["xtj"] = {
"San Juan Teita Mixtec",
32093049,
"omq-mxt",
"Latn",
}
m["xtl"] = {
"Tijaltepec Mixtec",
12953738,
"omq-mxt",
"Latn",
}
m["xtm"] = {
"Magdalena Peñasco Mixtec",
7179700,
"omq-mxt",
"Latn",
}
m["xtn"] = {
"Northern Tlaxiaco Mixtec",
25559585,
"omq-mxt",
"Latn",
}
m["xto"] = {
"Tocharian A",
2827041,
"ine-toc",
"Latn",
}
m["xtp"] = {
"San Miguel Piedras Mixtec",
7414970,
"omq-mxt",
"Latn",
}
m["xtq"] = {
"Tumshuqese",
65455890,
"xsc-sak",
"Brah, Khar",
translit = "Brah-translit",
}
m["xtr"] = {
"Early Tripuri",
65455891,
}
m["xts"] = {
"Sindihui Mixtec",
13583581,
"omq-mxt",
"Latn",
}
m["xtt"] = {
"Tacahua Mixtec",
7673668,
"omq-mxt",
"Latn",
}
m["xtu"] = {
"Cuyamecalco Mixtec",
12953726,
"omq-mxt",
"Latn",
}
m["xtv"] = {
"Thawa",
7711494,
}
m["xtw"] = {
"Tawandê",
63340139,
"sai-nmk",
"Latn",
}
m["xty"] = {
"Yoloxochitl Mixtec",
8054817,
"omq-mxt",
"Latn",
}
m["xua"] = {
"Alu Kurumba",
12952679,
"dra-kan",
"Knda",
translit = "kn-translit",
}
m["xub"] = {
"Betta Kurumba",
16841033,
"dra-kan",
"Knda, Mlym, Taml",
translit = {
Knda = "kn-translit",
Taml = "ta-translit",
},
}
m["xud"] = {
"Umiida",
61999874,
"aus-wor",
"Latn",
}
m["xug"] = {
"Kunigami",
56558,
"jpx-nry",
"Jpan",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
entry_name = s["jpx-entryname"],
sort_key = s["jpx-sortkey"],
}
m["xuj"] = {
"Jennu Kurumba",
21282543,
"dra-kan",
"Knda",
translit = "kn-translit",
}
m["xul"] = {
"Ngunawal",
7022712,
"aus-yuk",
"Latn",
}
m["xum"] = {
"Umbrian",
36957,
"itc-sbl",
"Ital, Latn",
translit = "Ital-translit",
}
m["xun"] = {
"Unggaranggu",
61999823,
"aus-wor",
"Latn",
}
m["xuo"] = {
"Kuo",
6445233,
"alv-mbm",
}
m["xup"] = {
"Upper Umpqua",
20607,
"ath-pco",
"Latn",
}
m["xur"] = {
"Urartian",
36934,
"qfa-hur",
"Xsux",
}
m["xut"] = {
"Kuthant",
6448417,
}
m["xuu"] = {
"Khwe",
28305,
"khi-kal",
"Latn",
}
m["xve"] = {
"Venetic",
36871,
"ine",
"Ital",
translit = "Ital-translit",
}
-- m["xvi"] = { "Kamviri", 1193495, "nur-nor", Arab } moved to etym-only code
m["xvn"] = {
"Vandalic",
36835,
"gme",
"Latn",
}
m["xvo"] = {
"Volscian",
622110,
"itc-sbl",
"Latn",
}
m["xvs"] = {
"Vestinian",
2576407,
"itc",
"Latn",
}
m["xwa"] = {
"Kwaza",
3200839,
}
m["xwc"] = {
"Woccon",
3569569,
"nai-cat",
"Latn",
}
m["xwd"] = {
"Wadi Wadi",
7959249,
}
m["xwe"] = {
"Xwela Gbe",
36887,
"alv-pph",
}
m["xwg"] = {
"Kwegu",
56723,
"sdv",
}
m["xwj"] = {
"Wajuk",
33110188,
}
m["xwk"] = {
"Wangkumara",
7967891,
"aus-pam",
"Latn",
}
m["xwl"] = {
"Western Xwla Gbe",
36924,
"alv-pph",
"Latn",
}
m["xwo"] = {
"Written Oirat",
56959,
"xgn-cen",
"xwo-Mong",
translit = "xwo-translit",
}
m["xwr"] = {
"Kwerba Mamberamo",
6450325,
"paa-tkw",
}
m["xww"] = {
"Wemba-Wemba",
18472819,
"aus-pam",
"Latn",
}
m["xxb"] = {
"Boro",
16844787,
nil,
"Latn",
}
m["xxk"] = {
"Ke'o",
3195346,
}
m["xxm"] = {
"Minkin",
6867836,
}
m["xxr"] = {
"Koropó",
6432560,
}
m["xxt"] = {
"Tambora",
36711,
"paa",
"Latn",
}
m["xya"] = {
"Yaygir",
8050525,
"aus-pam",
}
m["xyb"] = {
"Yandjibara",
63340189,
nil,
"Latn",
}
m["xyl"] = {
"Yalakalore",
12645352,
"sai-nmk",
"Latn",
}
m["xyt"] = {
"Mayi-Thakurti",
47004719,
"aus-pam",
"Latn",
}
m["xyy"] = {
"Yorta Yorta",
8055849,
"aus-pam",
"Latn",
}
m["xzh"] = {
"Zhang-Zhung",
3437292,
"sit-alm",
"Marc, Tibt",
translit = {Tibt = "Tibt-translit"},
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["xzm"] = {
"Zemgalian",
47631,
"bat-eas",
}
m["xzp"] = {
"Ancient Zapotec",
65455892,
}
return m_lang.finalizeData(m_lang.addDefaultTypes(m, true), "languages")
3jwttqxaj14tp1lyqe6l9x632oj5ro3
Module:languages/data/3/x/extra
828
6336
196152
182993
2024-11-08T00:50:57Z
en>Theknightwho
0
196152
Scribunto
text/plain
local m = {}
m["xaa"] = {
aliases = {"Andalusi Arabic", "Moorish Arabic", "Spanish Arabic"},
}
m["xab"] = {
}
m["xac"] = {
}
m["xad"] = {
}
m["xae"] = {
}
m["xag"] = {
otherNames = {"Caucasian Albanian", "Old Udi"},
}
m["xai"] = {
}
m["xaj"] = {
}
m["xak"] = {
otherNames = {"Mako", "Máku", "Mácu", "Macú", "Macu", "Máko", "Maku-Auari"},
}
m["xal"] = {
otherNames = {"Oirat", "Modern Oirat"},
}
m["xam"] = {
otherNames = {"ǀKham"},
}
m["xan"] = {
}
m["xao"] = {
}
m["xap"] = {
}
m["xaq"] = {
}
m["xar"] = {
}
m["xas"] = {
}
m["xat"] = {
}
m["xau"] = {
}
m["xav"] = {
}
m["xaw"] = {
}
m["xay"] = {
}
m["xbb"] = {
}
m["xbc"] = {
aliases = {"Greco-Bactrian", "Kushan", "Kushano-Bactrian"},
}
m["xbd"] = {
}
m["xbe"] = {
}
m["xbg"] = {
}
m["xbi"] = {
}
m["xbj"] = {
}
m["xbm"] = {
}
m["xbn"] = {
}
m["xbo"] = {
otherNames = {"Bolğar", "Bulghar", "Bolghar", "Bolgarian", "Bolgar"},
}
m["xbp"] = {
}
m["xbr"] = {
otherNames = {"East Sumbanese", "Sumbanese"},
}
m["xbw"] = {
}
m["xby"] = {
otherNames = {"Badjala"}, -- contrast gbw
}
m["xcb"] = {
}
m["xcc"] = {
}
m["xce"] = {
}
m["xch"] = {
}
m["xcl"] = {
aliases = {"Classical Armenian", "Liturgical Armenian", "Grabar"},
}
m["xcm"] = {
}
m["xcn"] = {
}
m["xco"] = {
otherNames = {"Chorasmian","Khwarazmian","Khorezmian"},
}
m["xcr"] = {
}
m["xct"] = {
}
m["xcu"] = {
}
m["xcv"] = {
otherNames = {"Chuvantsy", "Chuvansky"},
}
m["xcw"] = {
}
m["xcy"] = {
}
m["xda"] = {
}
m["xdc"] = {
}
m["xdk"] = {
otherNames = {"Darug", "Dharruk", "Dharuk", "Eora", "Iora", "Iyora", "Sydney"},
}
m["xdm"] = {
}
m["xdy"] = {
}
m["xeb"] = {
}
m["xed"] = {
}
m["xeg"] = {
}
m["xel"] = {
}
m["xem"] = {
}
m["xep"] = {
}
m["xer"] = {
otherNames = {"Koromu", "Cherente", "Sherenté"},
}
m["xes"] = {
otherNames = {"Koromu"},
}
m["xet"] = {
}
m["xeu"] = {
}
m["xfa"] = {
}
m["xga"] = {
}
m["xgb"] = {
}
m["xgd"] = {
}
m["xgf"] = {
otherNames = {"Tongva", "Gabrielino", "Gabrieleño", "Fernandeño"},
}
m["xgg"] = {
}
m["xgi"] = {
}
m["xgl"] = {
}
m["xgm"] = {
otherNames = {"Darambal", "Dharumbal", "Dharambal", "Guwinmal", "Kuinmabara", "Karunbara", "Rakiwara", "Wapabara"},
}
m["xgr"] = {
}
m["xgu"] = {
}
m["xgw"] = {
}
m["xha"] = {
}
m["xhc"] = {
otherNames = {"Hunnish"},
}
m["xhd"] = {
}
m["xhe"] = {
otherNames = {"Khetranki"},
}
m["xhm"] = {
}
m["xhr"] = {
}
m["xht"] = {
otherNames = {"Hattian"},
}
m["xhu"] = {
}
m["xhv"] = {
}
m["xib"] = {
}
m["xii"] = {
}
m["xin"] = {
}
m["xil"] = {
}
m["xir"] = {
}
m["xis"] = {
}
m["xiv"] = {
otherNames = {"Indus Valley Language"},
}
m["xiy"] = {
otherNames = {"Shipaja", "Xipaia"},
}
m["xjb"] = {
}
m["xka"] = {
}
m["xkb"] = {
}
m["xkc"] = {
aliases = {"Xoini, Kho'ini"},
}
m["xkd"] = {
}
m["xke"] = {
otherNames = {"Krio Dayak", "Krio", "Keriu", "Seputan"},
}
m["xkf"] = {
otherNames = {"Kheng"},
}
m["xkg"] = {
}
m["xki"] = {
}
m["xkj"] = {
}
m["xkk"] = {
otherNames = {"Lamam"}, -- Lamam is a Kaco' clan name, formerly encoded by the ISO as 'lmm'
}
m["xkl"] = {
otherNames = {"Mainstream Kenyah", "Kenyah"},
}
m["xkn"] = {
}
m["xko"] = {
}
m["xkp"] = {
}
m["xkq"] = {
}
m["xkr"] = {
otherNames = {"Chacriabá", "Chacriaba", "Chakriaba", "Xakriaba", "Xacriabá", "Xacriaba", "Chikriaba", "Xikriabá", "Xikriaba", "Shacriaba", "Xicriabá", "Xicriaba", "Chicriabá", "Chicriaba"},
}
m["xks"] = {
}
m["xkt"] = {
}
m["xku"] = {
}
m["xkv"] = {
}
m["xkw"] = {
}
m["xkx"] = {
}
m["xky"] = {
}
m["xkz"] = {
otherNames = {"Kurtop", "Kurtö", "Kurtopkha", "Kurtokha", "Zhâke"},
}
m["xla"] = {
}
m["xlb"] = {
}
m["xlc"] = {
}
m["xld"] = {
}
m["xle"] = {
}
m["xlg"] = {
}
m["xli"] = {
}
m["xln"] = {
}
m["xlo"] = {
}
m["xlp"] = {
}
m["xls"] = {
}
m["xlu"] = {
otherNames = {"Cuneiform Luwian", "Hieroglyphic Luwian"},
}
m["xly"] = {
}
m["xmb"] = {
otherNames = {"Mboa"},
}
m["xmc"] = {
}
m["xmd"] = {
}
m["xmf"] = {
otherNames = {"Megrelian", "Mingrel", "Megrel"},
}
m["xmg"] = {
}
m["xmh"] = {
otherNames = {"Kuku-Muminh", "Wik-Muminh", "Kugu-Nganhcara", "Wik-Nganhcara", "Wikngenchera"},
}
m["xmj"] = {
}
m["xmk"] = {
}
m["xml"] = {
}
m["xmm"] = {
}
m["xmo"] = {
}
m["xmp"] = {
}
m["xmq"] = {
}
m["xmr"] = {
otherNames = {"Kushite"},
}
m["xms"] = {
}
m["xmt"] = {
}
m["xmu"] = {
}
m["xmx"] = {
}
m["xmy"] = {
}
m["xmz"] = {
}
m["xna"] = {
}
m["xnb"] = {
aliases = {"Kanakanavu"},
}
m["xng"] = {
otherNames = {"Middle Mongolian"},
}
m["xnh"] = {
}
m["xni"] = {
}
m["xnk"] = {
}
m["xnn"] = {
aliases = {"Northern Kankana-ey"},
}
m["xnr"] = {
}
m["xns"] = {
}
m["xnt"] = {
}
m["xnu"] = {
}
m["xny"] = {
otherNames = {"Nyiyabali", "Njijabali", "Nijadali"},
}
m["xoc"] = {
}
m["xod"] = {
}
m["xog"] = {
otherNames = {"Lusoga"},
}
m["xoi"] = {
}
m["xok"] = {
}
m["xom"] = {
otherNames = {"Komo (Sudan)", "Madiin"},
}
m["xon"] = {
}
m["xoo"] = { -- contrast kzw, sai-kat, sai-xoc
otherNames = {"Xukuru", "Xucurú", "Xucuru", "Shukurú", "Shukuru", "Shucurú", "Shucuru", "Kirirí", "Kiriri", "Kirirí-Xokó"},
}
m["xop"] = {
}
m["xor"] = {
}
m["xow"] = {
}
m["xpa"] = {
}
m["xpb"] = {
otherNames = {"Northeastern Tasmanian", "North East Tasmanian", "Plangermaireener", "Plangamerina", "Cape Portland", "Ben Lomond", "Pipers River"},
}
m["xpc"] = {
}
m["xpd"] = {
otherNames = {"Oyster Bay", "Oyster Bay Tasmanian", "Paritarami", "Big River", "Big River Tasmanian", "Lairmairrener", "Lemerina"},
}
m["xpe"] = {
}
m["xpf"] = {
otherNames = {"Mainland Southeast Tasmanian", "Nuenonne", "Nyunoni"},
}
m["xpg"] = {
}
m["xph"] = {
otherNames = {"North Midland Tasmanian", "North Midlands Tasmanian", "Cheranotipana"},
}
m["xpi"] = {
}
m["xpj"] = {
otherNames = {"Luthigh"},
}
m["xpk"] = {
otherNames = {"Kulina Pano"},
}
m["xpl"] = {
aliases = {"Port Sorell Tasmanian"},
}
m["xpm"] = {
}
m["xpn"] = {
}
m["xpo"] = {
}
m["xpp"] = {
}
m["xpq"] = {
}
m["xpr"] = {
}
m["xps"] = {
}
m["xpu"] = {
}
m["xpv"] = {
otherNames = {"Tommeeginnee", "Northern Tasmanian"},
}
m["xpw"] = {
otherNames = {"Pirapa", "Northwestern Tasmanian"},
}
m["xpx"] = {
otherNames = {"Southwestern Tasmanian"},
}
m["xpy"] = {
}
m["xpz"] = {
otherNames = {"Bruny Island Tasmanian", "Nuenonne", "Nyunoni"},
}
m["xqa"] = {
}
m["xqt"] = {
}
m["xra"] = {
}
m["xrb"] = {
}
m["xrd"] = {
}
m["xre"] = {
}
m["xrg"] = {
}
m["xri"] = {
}
m["xrm"] = {
}
m["xrn"] = {
}
m["xrq"] = {
otherNames = {"Karrangpurru"},
}
m["xrr"] = {
otherNames = {"Rhaetic", "Rhaetian"},
}
m["xrt"] = {
}
m["xru"] = {
}
m["xrw"] = {
}
m["xsa"] = {
}
m["xsb"] = {
otherNames = {"Sambal", "Tina Sambal", "Tina"},
}
m["xsd"] = {
}
m["xse"] = {
}
m["xsh"] = {
}
m["xsi"] = {
}
m["xsj"] = {
}
m["xsl"] = {
}
m["xsm"] = {
otherNames = {"Kassena"},
}
m["xsn"] = {
otherNames = {"Sanga"},
}
m["xso"] = {
}
m["xsp"] = {
}
m["xsq"] = {
}
m["xsr"] = {
aliases = {"Sharpa", "Sharwa", "Xiaerba"},
}
m["xss"] = {
}
m["xsu"] = {
aliases = {"Sanöma", "Sanɨma", "Sanỳma", "Sanema", "Sanemá", "Sanuma", "Sanima", "Sanma"},
}
m["xsv"] = {
otherNames = {"Jatvingian"},
}
m["xsy"] = {
}
m["xta"] = {
}
m["xtb"] = {
}
m["xtc"] = {
otherNames = {"Katcha-Kadugli-Miri"},
}
m["xtd"] = {
}
m["xte"] = {
}
m["xth"] = {
}
m["xti"] = {
}
m["xtj"] = {
}
m["xtl"] = {
}
m["xtm"] = {
}
m["xtn"] = {
}
m["xto"] = {
otherNames = {"East Tocharian", "Agnean", "Turfanian"},
}
m["xtp"] = {
}
m["xtq"] = {
}
m["xtr"] = {
}
m["xts"] = {
}
m["xtt"] = {
}
m["xtu"] = {
}
m["xtv"] = {
}
m["xtw"] = {
}
m["xty"] = {
}
m["xua"] = {
}
m["xub"] = {
}
m["xud"] = {
}
m["xug"] = {
}
m["xuj"] = {
}
m["xul"] = {
}
m["xum"] = {
}
m["xun"] = {
}
m["xuo"] = {
}
m["xup"] = {
}
m["xur"] = {
otherNames = {"Urartean"},
}
m["xut"] = {
}
m["xuu"] = {
otherNames = {"Kxoe"},
}
m["xve"] = {
}
-- m["xvi"] = { "Kamviri", 1193495, "nur-nor", scripts = {"Arab"} } moved to etym-only code
m["xvn"] = {
}
m["xvo"] = {
}
m["xvs"] = {
}
m["xwa"] = {
}
m["xwc"] = {
}
m["xwd"] = {
}
m["xwe"] = {
}
m["xwg"] = {
}
m["xwj"] = {
}
m["xwk"] = {
otherNames = {"Wanggumara", "Karenggapa", "Punthamara"},
}
m["xwl"] = {
}
m["xwo"] = {
}
m["xwr"] = {
}
m["xww"] = {
otherNames = {"Wemba Wemba", "Wamba-Wamba", "Wamba Wamba", "Wembawemba", "Baraba-Baraba", "Barababaraba", "Nari-Nari", "Wergaia", "Wotjobaluk"},
}
m["xxb"] = {
otherNames = {"Boro (Ghana)"},
}
m["xxk"] = {
}
m["xxm"] = {
}
m["xxr"] = {
}
m["xxt"] = {
}
m["xya"] = {
}
m["xyb"] = {
}
m["xyl"] = {
}
m["xyt"] = {
}
m["xyy"] = {
otherNames = {"Yotayota", "Yortayorta", "Bangerang", "Kailtheban", "Wollithiga", "Jotijota", "Joti-Jota", "Jodajoda"},
}
m["xzh"] = {
}
m["xzm"] = {
otherNames = {"Semigallian", "Semigalian"},
}
m["xzp"] = {
}
return m
4l3q0l0mzx4c4z1plu9an1dppolbssj
196153
196152
2024-12-05T05:26:59Z
Lee
19
[[:en:Module:languages/data/3/x/extra]] වෙතින් එක් සංශෝධනයක්
196152
Scribunto
text/plain
local m = {}
m["xaa"] = {
aliases = {"Andalusi Arabic", "Moorish Arabic", "Spanish Arabic"},
}
m["xab"] = {
}
m["xac"] = {
}
m["xad"] = {
}
m["xae"] = {
}
m["xag"] = {
otherNames = {"Caucasian Albanian", "Old Udi"},
}
m["xai"] = {
}
m["xaj"] = {
}
m["xak"] = {
otherNames = {"Mako", "Máku", "Mácu", "Macú", "Macu", "Máko", "Maku-Auari"},
}
m["xal"] = {
otherNames = {"Oirat", "Modern Oirat"},
}
m["xam"] = {
otherNames = {"ǀKham"},
}
m["xan"] = {
}
m["xao"] = {
}
m["xap"] = {
}
m["xaq"] = {
}
m["xar"] = {
}
m["xas"] = {
}
m["xat"] = {
}
m["xau"] = {
}
m["xav"] = {
}
m["xaw"] = {
}
m["xay"] = {
}
m["xbb"] = {
}
m["xbc"] = {
aliases = {"Greco-Bactrian", "Kushan", "Kushano-Bactrian"},
}
m["xbd"] = {
}
m["xbe"] = {
}
m["xbg"] = {
}
m["xbi"] = {
}
m["xbj"] = {
}
m["xbm"] = {
}
m["xbn"] = {
}
m["xbo"] = {
otherNames = {"Bolğar", "Bulghar", "Bolghar", "Bolgarian", "Bolgar"},
}
m["xbp"] = {
}
m["xbr"] = {
otherNames = {"East Sumbanese", "Sumbanese"},
}
m["xbw"] = {
}
m["xby"] = {
otherNames = {"Badjala"}, -- contrast gbw
}
m["xcb"] = {
}
m["xcc"] = {
}
m["xce"] = {
}
m["xch"] = {
}
m["xcl"] = {
aliases = {"Classical Armenian", "Liturgical Armenian", "Grabar"},
}
m["xcm"] = {
}
m["xcn"] = {
}
m["xco"] = {
otherNames = {"Chorasmian","Khwarazmian","Khorezmian"},
}
m["xcr"] = {
}
m["xct"] = {
}
m["xcu"] = {
}
m["xcv"] = {
otherNames = {"Chuvantsy", "Chuvansky"},
}
m["xcw"] = {
}
m["xcy"] = {
}
m["xda"] = {
}
m["xdc"] = {
}
m["xdk"] = {
otherNames = {"Darug", "Dharruk", "Dharuk", "Eora", "Iora", "Iyora", "Sydney"},
}
m["xdm"] = {
}
m["xdy"] = {
}
m["xeb"] = {
}
m["xed"] = {
}
m["xeg"] = {
}
m["xel"] = {
}
m["xem"] = {
}
m["xep"] = {
}
m["xer"] = {
otherNames = {"Koromu", "Cherente", "Sherenté"},
}
m["xes"] = {
otherNames = {"Koromu"},
}
m["xet"] = {
}
m["xeu"] = {
}
m["xfa"] = {
}
m["xga"] = {
}
m["xgb"] = {
}
m["xgd"] = {
}
m["xgf"] = {
otherNames = {"Tongva", "Gabrielino", "Gabrieleño", "Fernandeño"},
}
m["xgg"] = {
}
m["xgi"] = {
}
m["xgl"] = {
}
m["xgm"] = {
otherNames = {"Darambal", "Dharumbal", "Dharambal", "Guwinmal", "Kuinmabara", "Karunbara", "Rakiwara", "Wapabara"},
}
m["xgr"] = {
}
m["xgu"] = {
}
m["xgw"] = {
}
m["xha"] = {
}
m["xhc"] = {
otherNames = {"Hunnish"},
}
m["xhd"] = {
}
m["xhe"] = {
otherNames = {"Khetranki"},
}
m["xhm"] = {
}
m["xhr"] = {
}
m["xht"] = {
otherNames = {"Hattian"},
}
m["xhu"] = {
}
m["xhv"] = {
}
m["xib"] = {
}
m["xii"] = {
}
m["xin"] = {
}
m["xil"] = {
}
m["xir"] = {
}
m["xis"] = {
}
m["xiv"] = {
otherNames = {"Indus Valley Language"},
}
m["xiy"] = {
otherNames = {"Shipaja", "Xipaia"},
}
m["xjb"] = {
}
m["xka"] = {
}
m["xkb"] = {
}
m["xkc"] = {
aliases = {"Xoini, Kho'ini"},
}
m["xkd"] = {
}
m["xke"] = {
otherNames = {"Krio Dayak", "Krio", "Keriu", "Seputan"},
}
m["xkf"] = {
otherNames = {"Kheng"},
}
m["xkg"] = {
}
m["xki"] = {
}
m["xkj"] = {
}
m["xkk"] = {
otherNames = {"Lamam"}, -- Lamam is a Kaco' clan name, formerly encoded by the ISO as 'lmm'
}
m["xkl"] = {
otherNames = {"Mainstream Kenyah", "Kenyah"},
}
m["xkn"] = {
}
m["xko"] = {
}
m["xkp"] = {
}
m["xkq"] = {
}
m["xkr"] = {
otherNames = {"Chacriabá", "Chacriaba", "Chakriaba", "Xakriaba", "Xacriabá", "Xacriaba", "Chikriaba", "Xikriabá", "Xikriaba", "Shacriaba", "Xicriabá", "Xicriaba", "Chicriabá", "Chicriaba"},
}
m["xks"] = {
}
m["xkt"] = {
}
m["xku"] = {
}
m["xkv"] = {
}
m["xkw"] = {
}
m["xkx"] = {
}
m["xky"] = {
}
m["xkz"] = {
otherNames = {"Kurtop", "Kurtö", "Kurtopkha", "Kurtokha", "Zhâke"},
}
m["xla"] = {
}
m["xlb"] = {
}
m["xlc"] = {
}
m["xld"] = {
}
m["xle"] = {
}
m["xlg"] = {
}
m["xli"] = {
}
m["xln"] = {
}
m["xlo"] = {
}
m["xlp"] = {
}
m["xls"] = {
}
m["xlu"] = {
otherNames = {"Cuneiform Luwian", "Hieroglyphic Luwian"},
}
m["xly"] = {
}
m["xmb"] = {
otherNames = {"Mboa"},
}
m["xmc"] = {
}
m["xmd"] = {
}
m["xmf"] = {
otherNames = {"Megrelian", "Mingrel", "Megrel"},
}
m["xmg"] = {
}
m["xmh"] = {
otherNames = {"Kuku-Muminh", "Wik-Muminh", "Kugu-Nganhcara", "Wik-Nganhcara", "Wikngenchera"},
}
m["xmj"] = {
}
m["xmk"] = {
}
m["xml"] = {
}
m["xmm"] = {
}
m["xmo"] = {
}
m["xmp"] = {
}
m["xmq"] = {
}
m["xmr"] = {
otherNames = {"Kushite"},
}
m["xms"] = {
}
m["xmt"] = {
}
m["xmu"] = {
}
m["xmx"] = {
}
m["xmy"] = {
}
m["xmz"] = {
}
m["xna"] = {
}
m["xnb"] = {
aliases = {"Kanakanavu"},
}
m["xng"] = {
otherNames = {"Middle Mongolian"},
}
m["xnh"] = {
}
m["xni"] = {
}
m["xnk"] = {
}
m["xnn"] = {
aliases = {"Northern Kankana-ey"},
}
m["xnr"] = {
}
m["xns"] = {
}
m["xnt"] = {
}
m["xnu"] = {
}
m["xny"] = {
otherNames = {"Nyiyabali", "Njijabali", "Nijadali"},
}
m["xoc"] = {
}
m["xod"] = {
}
m["xog"] = {
otherNames = {"Lusoga"},
}
m["xoi"] = {
}
m["xok"] = {
}
m["xom"] = {
otherNames = {"Komo (Sudan)", "Madiin"},
}
m["xon"] = {
}
m["xoo"] = { -- contrast kzw, sai-kat, sai-xoc
otherNames = {"Xukuru", "Xucurú", "Xucuru", "Shukurú", "Shukuru", "Shucurú", "Shucuru", "Kirirí", "Kiriri", "Kirirí-Xokó"},
}
m["xop"] = {
}
m["xor"] = {
}
m["xow"] = {
}
m["xpa"] = {
}
m["xpb"] = {
otherNames = {"Northeastern Tasmanian", "North East Tasmanian", "Plangermaireener", "Plangamerina", "Cape Portland", "Ben Lomond", "Pipers River"},
}
m["xpc"] = {
}
m["xpd"] = {
otherNames = {"Oyster Bay", "Oyster Bay Tasmanian", "Paritarami", "Big River", "Big River Tasmanian", "Lairmairrener", "Lemerina"},
}
m["xpe"] = {
}
m["xpf"] = {
otherNames = {"Mainland Southeast Tasmanian", "Nuenonne", "Nyunoni"},
}
m["xpg"] = {
}
m["xph"] = {
otherNames = {"North Midland Tasmanian", "North Midlands Tasmanian", "Cheranotipana"},
}
m["xpi"] = {
}
m["xpj"] = {
otherNames = {"Luthigh"},
}
m["xpk"] = {
otherNames = {"Kulina Pano"},
}
m["xpl"] = {
aliases = {"Port Sorell Tasmanian"},
}
m["xpm"] = {
}
m["xpn"] = {
}
m["xpo"] = {
}
m["xpp"] = {
}
m["xpq"] = {
}
m["xpr"] = {
}
m["xps"] = {
}
m["xpu"] = {
}
m["xpv"] = {
otherNames = {"Tommeeginnee", "Northern Tasmanian"},
}
m["xpw"] = {
otherNames = {"Pirapa", "Northwestern Tasmanian"},
}
m["xpx"] = {
otherNames = {"Southwestern Tasmanian"},
}
m["xpy"] = {
}
m["xpz"] = {
otherNames = {"Bruny Island Tasmanian", "Nuenonne", "Nyunoni"},
}
m["xqa"] = {
}
m["xqt"] = {
}
m["xra"] = {
}
m["xrb"] = {
}
m["xrd"] = {
}
m["xre"] = {
}
m["xrg"] = {
}
m["xri"] = {
}
m["xrm"] = {
}
m["xrn"] = {
}
m["xrq"] = {
otherNames = {"Karrangpurru"},
}
m["xrr"] = {
otherNames = {"Rhaetic", "Rhaetian"},
}
m["xrt"] = {
}
m["xru"] = {
}
m["xrw"] = {
}
m["xsa"] = {
}
m["xsb"] = {
otherNames = {"Sambal", "Tina Sambal", "Tina"},
}
m["xsd"] = {
}
m["xse"] = {
}
m["xsh"] = {
}
m["xsi"] = {
}
m["xsj"] = {
}
m["xsl"] = {
}
m["xsm"] = {
otherNames = {"Kassena"},
}
m["xsn"] = {
otherNames = {"Sanga"},
}
m["xso"] = {
}
m["xsp"] = {
}
m["xsq"] = {
}
m["xsr"] = {
aliases = {"Sharpa", "Sharwa", "Xiaerba"},
}
m["xss"] = {
}
m["xsu"] = {
aliases = {"Sanöma", "Sanɨma", "Sanỳma", "Sanema", "Sanemá", "Sanuma", "Sanima", "Sanma"},
}
m["xsv"] = {
otherNames = {"Jatvingian"},
}
m["xsy"] = {
}
m["xta"] = {
}
m["xtb"] = {
}
m["xtc"] = {
otherNames = {"Katcha-Kadugli-Miri"},
}
m["xtd"] = {
}
m["xte"] = {
}
m["xth"] = {
}
m["xti"] = {
}
m["xtj"] = {
}
m["xtl"] = {
}
m["xtm"] = {
}
m["xtn"] = {
}
m["xto"] = {
otherNames = {"East Tocharian", "Agnean", "Turfanian"},
}
m["xtp"] = {
}
m["xtq"] = {
}
m["xtr"] = {
}
m["xts"] = {
}
m["xtt"] = {
}
m["xtu"] = {
}
m["xtv"] = {
}
m["xtw"] = {
}
m["xty"] = {
}
m["xua"] = {
}
m["xub"] = {
}
m["xud"] = {
}
m["xug"] = {
}
m["xuj"] = {
}
m["xul"] = {
}
m["xum"] = {
}
m["xun"] = {
}
m["xuo"] = {
}
m["xup"] = {
}
m["xur"] = {
otherNames = {"Urartean"},
}
m["xut"] = {
}
m["xuu"] = {
otherNames = {"Kxoe"},
}
m["xve"] = {
}
-- m["xvi"] = { "Kamviri", 1193495, "nur-nor", scripts = {"Arab"} } moved to etym-only code
m["xvn"] = {
}
m["xvo"] = {
}
m["xvs"] = {
}
m["xwa"] = {
}
m["xwc"] = {
}
m["xwd"] = {
}
m["xwe"] = {
}
m["xwg"] = {
}
m["xwj"] = {
}
m["xwk"] = {
otherNames = {"Wanggumara", "Karenggapa", "Punthamara"},
}
m["xwl"] = {
}
m["xwo"] = {
}
m["xwr"] = {
}
m["xww"] = {
otherNames = {"Wemba Wemba", "Wamba-Wamba", "Wamba Wamba", "Wembawemba", "Baraba-Baraba", "Barababaraba", "Nari-Nari", "Wergaia", "Wotjobaluk"},
}
m["xxb"] = {
otherNames = {"Boro (Ghana)"},
}
m["xxk"] = {
}
m["xxm"] = {
}
m["xxr"] = {
}
m["xxt"] = {
}
m["xya"] = {
}
m["xyb"] = {
}
m["xyl"] = {
}
m["xyt"] = {
}
m["xyy"] = {
otherNames = {"Yotayota", "Yortayorta", "Bangerang", "Kailtheban", "Wollithiga", "Jotijota", "Joti-Jota", "Jodajoda"},
}
m["xzh"] = {
}
m["xzm"] = {
otherNames = {"Semigallian", "Semigalian"},
}
m["xzp"] = {
}
return m
4l3q0l0mzx4c4z1plu9an1dppolbssj
Module:mn-translit
828
8209
196009
29368
2024-04-27T09:32:59Z
en>SurjectionBot
0
Protected "[[Module:mn-translit]]": (bot) automatically protect highly visible templates/modules (reference score: 2000+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
196009
Scribunto
text/plain
local export = {}
local mn = require("Module:mn-common")
local gsub = mw.ustring.gsub
local toNFC = mw.ustring.toNFC
local toNFD = mw.ustring.toNFD
local UTF8_char = "[%z\1-\127\194-\244][\128-\191]*"
local preConv = {
["є"] = "ө", ["ѳ"] = "ө", ["ї"] = "ү",
["Є"] = "Ө", ["Ѳ"] = "Ө", ["Ї"] = "Ү"
}
local oneChar = {
["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "je", ["ё"] = "jo", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["й"] = "j", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["ө"] = "ö", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ү"] = "ü", ["ф"] = "f", ["х"] = "x", ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "šč", ["ъ"] = "ʺ", ["ы"] = "y", ["ь"] = "ʹ", ["э"] = "e", ["ю"] = "ju", ["я"] = "ja",
["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "Je", ["Ё"] = "Jo", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["Ө"] = "Ö", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ү"] = "Ü", ["Ф"] = "F", ["Х"] = "X", ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Šč", ["Ъ"] = "ʺ", ["Ы"] = "Y", ["Ь"] = "ʹ", ["Э"] = "E", ["Ю"] = "Ju", ["Я"] = "Ja"
}
local twoChars = {
["ий"] = "ii",
["Ий"] = "Ii"
}
function export.tr(text, lang, sc)
if sc ~= "Cyrl" then
return nil
end
-- Pre-convert any substitute characters.
text = text:gsub(UTF8_char, preConv)
-- Decompose (except for "ё" and "й") so that accents can be consistently detected.
text = toNFD(text)
text = gsub(text, "[еЕ]̈", toNFC)
text = gsub(text, "[иИ]̆", toNFC)
-- Hard sign does nothing if word-final (extremely rare, but attested in borrowings of affected Russian proper nouns like "Коммерсантъ").
text = gsub(text, "[Ъъ]([^а-яёөү])", "%1")
text = gsub(text, "[Ъъ]$", "")
-- "Е" is not iotated after a consonant and "ю" is not iotated after "ж", "ш", "ч" or "щ", so they must be converted to their non-iotated romanizations in advance. However, a soft sign before "е" or "ю" (as a front vowel) creates a morphemic break, which means iotation does occur (i.e. it acts like a hard sign). These exceptions are converted into the iotated romanizations first; then, all instances of "е" and "ю" (which meet the prerequisites) are converted into non-iotated romanizations. This treats all instances of "ю" as front vowels, so deal with any back vowel instances of "ю" once iterating over the vowel harmonic segments later on, before doing the main substitutions.
text = gsub(text, "([Ьь])е", "%1je")
text = gsub(text, "([жчшщЖЧШЩ]ь)ю", "%1ju")
text = gsub(text, "([^̀́̂аеёиоөуүъыэюяАЕЁИОӨУҮЪЫЬЭЮЯ%s][̀́̂]?)е", "%1e")
text = gsub(text, "([жчшщЖЧШЩ]ь?)ю","%1u")
-- Divide into segments by vowel harmony and iterate over them.
text = mn.vowelharmony(text)
text.translit = {}
for i, v in ipairs(text) do
-- "Ю" is "jü/ü" if front harmonic.
if text[i].position == "front" then
-- Latin "u" (from previous substitution).
text[i].substring = gsub(text[i].substring, "u", "ü")
-- Cyrillic "ю".
text[i].substring = gsub(text[i].substring, "ю", "jü")
text[i].substring = gsub(text[i].substring, "Ю", "Jü")
-- "Е" is "jö/ö" if front round harmonic.
if text[i].quality == "rounded" then
-- Latin "e" (from previous substitution).
text[i].substring = gsub(text[i].substring, "e", "ö")
-- Cyrillic "е".
text[i].substring = gsub(text[i].substring, "е", "jö")
text[i].substring = gsub(text[i].substring, "Е", "Jö")
end
-- If back harmonic, any instances of "ю" that were treated as front vowels need to be treated as back vowels (i.e. the soft sign doesn't create a morphemic break, so iotation does not occur).
else
text[i].substring = gsub(text[i].substring, "([Ьь])ju", "%1u")
end
-- Do primary substitutions. If still present, Cyrillic "е" becomes "je" and "ю" becomes "ju".
for digraph, replacement in pairs(twoChars) do
text[i].substring = text[i].substring:gsub(digraph, replacement)
end
text[i].substring = text[i].substring:gsub(UTF8_char, oneChar)
table.insert(text.translit, text[i].substring)
end
return toNFC(table.concat(text.translit, ""))
end
return export
s6emp34egob2vpj3w6dp84tfzheyrm2
196010
196009
2024-12-04T12:33:10Z
Lee
19
[[:en:Module:mn-translit]] වෙතින් එක් සංශෝධනයක්
196009
Scribunto
text/plain
local export = {}
local mn = require("Module:mn-common")
local gsub = mw.ustring.gsub
local toNFC = mw.ustring.toNFC
local toNFD = mw.ustring.toNFD
local UTF8_char = "[%z\1-\127\194-\244][\128-\191]*"
local preConv = {
["є"] = "ө", ["ѳ"] = "ө", ["ї"] = "ү",
["Є"] = "Ө", ["Ѳ"] = "Ө", ["Ї"] = "Ү"
}
local oneChar = {
["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "je", ["ё"] = "jo", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["й"] = "j", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["ө"] = "ö", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ү"] = "ü", ["ф"] = "f", ["х"] = "x", ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "šč", ["ъ"] = "ʺ", ["ы"] = "y", ["ь"] = "ʹ", ["э"] = "e", ["ю"] = "ju", ["я"] = "ja",
["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "Je", ["Ё"] = "Jo", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["Ө"] = "Ö", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ү"] = "Ü", ["Ф"] = "F", ["Х"] = "X", ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Šč", ["Ъ"] = "ʺ", ["Ы"] = "Y", ["Ь"] = "ʹ", ["Э"] = "E", ["Ю"] = "Ju", ["Я"] = "Ja"
}
local twoChars = {
["ий"] = "ii",
["Ий"] = "Ii"
}
function export.tr(text, lang, sc)
if sc ~= "Cyrl" then
return nil
end
-- Pre-convert any substitute characters.
text = text:gsub(UTF8_char, preConv)
-- Decompose (except for "ё" and "й") so that accents can be consistently detected.
text = toNFD(text)
text = gsub(text, "[еЕ]̈", toNFC)
text = gsub(text, "[иИ]̆", toNFC)
-- Hard sign does nothing if word-final (extremely rare, but attested in borrowings of affected Russian proper nouns like "Коммерсантъ").
text = gsub(text, "[Ъъ]([^а-яёөү])", "%1")
text = gsub(text, "[Ъъ]$", "")
-- "Е" is not iotated after a consonant and "ю" is not iotated after "ж", "ш", "ч" or "щ", so they must be converted to their non-iotated romanizations in advance. However, a soft sign before "е" or "ю" (as a front vowel) creates a morphemic break, which means iotation does occur (i.e. it acts like a hard sign). These exceptions are converted into the iotated romanizations first; then, all instances of "е" and "ю" (which meet the prerequisites) are converted into non-iotated romanizations. This treats all instances of "ю" as front vowels, so deal with any back vowel instances of "ю" once iterating over the vowel harmonic segments later on, before doing the main substitutions.
text = gsub(text, "([Ьь])е", "%1je")
text = gsub(text, "([жчшщЖЧШЩ]ь)ю", "%1ju")
text = gsub(text, "([^̀́̂аеёиоөуүъыэюяАЕЁИОӨУҮЪЫЬЭЮЯ%s][̀́̂]?)е", "%1e")
text = gsub(text, "([жчшщЖЧШЩ]ь?)ю","%1u")
-- Divide into segments by vowel harmony and iterate over them.
text = mn.vowelharmony(text)
text.translit = {}
for i, v in ipairs(text) do
-- "Ю" is "jü/ü" if front harmonic.
if text[i].position == "front" then
-- Latin "u" (from previous substitution).
text[i].substring = gsub(text[i].substring, "u", "ü")
-- Cyrillic "ю".
text[i].substring = gsub(text[i].substring, "ю", "jü")
text[i].substring = gsub(text[i].substring, "Ю", "Jü")
-- "Е" is "jö/ö" if front round harmonic.
if text[i].quality == "rounded" then
-- Latin "e" (from previous substitution).
text[i].substring = gsub(text[i].substring, "e", "ö")
-- Cyrillic "е".
text[i].substring = gsub(text[i].substring, "е", "jö")
text[i].substring = gsub(text[i].substring, "Е", "Jö")
end
-- If back harmonic, any instances of "ю" that were treated as front vowels need to be treated as back vowels (i.e. the soft sign doesn't create a morphemic break, so iotation does not occur).
else
text[i].substring = gsub(text[i].substring, "([Ьь])ju", "%1u")
end
-- Do primary substitutions. If still present, Cyrillic "е" becomes "je" and "ю" becomes "ju".
for digraph, replacement in pairs(twoChars) do
text[i].substring = text[i].substring:gsub(digraph, replacement)
end
text[i].substring = text[i].substring:gsub(UTF8_char, oneChar)
table.insert(text.translit, text[i].substring)
end
return toNFC(table.concat(text.translit, ""))
end
return export
s6emp34egob2vpj3w6dp84tfzheyrm2
Module:mn-common
828
8211
196013
29372
2024-04-27T09:32:56Z
en>SurjectionBot
0
Protected "[[Module:mn-common]]": (bot) automatically protect highly visible templates/modules (reference score: 2000+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
196013
Scribunto
text/plain
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local export = {}
local concat = table.concat
local find = m_str_utils.find
local insert = table.insert
local len = m_str_utils.len
local match = m_str_utils.match
local gmatch = m_str_utils.gmatch
local sub = m_str_utils.sub
local gsub = m_str_utils.gsub
local lower = m_str_utils.lower
local reverse = m_str_utils.reverse
local reverse_array = m_table.reverse
local remove_duplicates = m_table.removeDuplicates
local sort = table.sort
local u = m_str_utils.char
export.FVS1 = u( 0x180B )
export.FVS2 = u( 0x180C )
export.FVS3 = u( 0x180D )
export.FVS4 = u( 0x180F )
export.MVS = u( 0x180E )
export.NNBSP = u( 0x202F )
export.stem_barrier = u( 0xF000 )
local function format_Mongolian_text(text) return "<span class=\"Mong\" lang=\"mn\">" .. text .. "</span>" end
function export.see(frame)
local params = {
[1] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local title = args[1]
local curr_title = mw.title.getCurrentTitle().subpageText
local content = mw.title.new(title):getContent()
local senses = {}
local sense_id = 0
local j, pos, s, section
if title == curr_title then
return error("The soft-directed item is the same as the page title.")
end
if content then
if not match(content, "==Mongolian==") then
categories = categories .. "[[Category:Mongolian redlinks/mn-see]]"
elseif not match(content, "mn%-IPA") and not match(content, "mn%-see") then
require("Module:debug").track("mn-see/unidirectional reference to variant")
elseif not match(content, curr_title) then
require("Module:debug").track("mn-see/unidirectional reference variant→orthodox")
end
end
while true do
_, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.-)\n==%f[^=]", pos)
if j == nil then
i, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.+)", pos)
end
if j == nil then
break
else
pos = j - 1
end
if language_name == "Mongolian" then
section = s
end
end
if not section then
return ""
end
section = section:gsub("\n===+Etymology.-(\n==)", "%1")
local text = {}
for sense in section:gmatch("\n# ([^\n]+)") do
if not sense:match("rfdef") and not sense:match("defn") then
sense_id = sense_id + 1
insert(senses, sense)
end
end
insert(text, concat(senses, "\n# "))
insert(text, "</div>")
return frame:preprocess( concat(text) )
end
function export.ipasee(frame)
local params = {
[1] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local title = args[1]
local curr_title = mw.title.getCurrentTitle().subpageText
local content = mw.title.new(title):getContent()
local senses = {}
local sense_id = 0
local j, pos, s, section
if title == curr_title then
return error("The soft-directed item is the same as the page title.")
end
if content then
if not match(content, "==Mongolian==") then
categories = categories .. "[[Category:Mongolian redlinks/mn-IPA-see]]"
elseif not match(content, "mn%-IPA") and not match(content, "mn%-see") and not match(content, "mn%-IPA-see") then
require("Module:debug").track("mn-IPA-see/unidirectional reference to variant")
elseif not match(content, curr_title) then
require("Module:debug").track("mn-IPA-see/unidirectional reference variant→orthodox")
end
end
while true do
_, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.-)\n==%f[^=]", pos)
if j == nil then
i, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.+)", pos)
end
if j == nil then
break
else
pos = j - 1
end
if language_name == "Mongolian" then
section = s
end
end
if not section then
return ""
end
section = section:gsub("\n===+Etymology.-(\n==)", "%1")
local text = {}
if section:match("{{mn-IPA%|([^\n]+)}}") then
return frame:expandTemplate{ title = "mn-IPA", args = { section:match("{{mn-IPA%|([^\n]+)}}") } }
else
return frame:expandTemplate{ title = "mn-IPA", args = { title } }
end
end
--Breaks down a string into vowel harmonic segments
function export.vowelharmony( text, params )
if not params then params = {} end
local vh = {}
local breaks = { 1 }
local switchers = { "ау", "оу", "уу", "иу", "яу", "ёу", "еу", "юу", "уй", "эү", "өү", "үү", "иү", "еү", "юү", "үй", " ", "-" }
local switchers2 = { "аа", "оо", "өө", "ээ", "яа", "ёо", "еө", "еэ", "Аа", "Оо", "Өө", "Ээ", "Яа", "Ёо", "Еө", "Еэ" }
for _, v in pairs( switchers ) do
v = gsub( v, "(.)(.)", "%1" .. u( 0x301 ) .. "?" .. u( 0x300 ) .. "?%2" )
local c = 0
while c ~= nil do
c = find( lower( text ), v, c + 1 )
if c ~= nil and c ~= 1 then
insert( breaks, c )
end
end
end
if params.bor then
for _,v in pairs( switchers2 ) do
if match( text, v .. "$" ) then
insert( breaks, len( text ) - 1 )
end
end
end
sort( breaks )
for i, b in ipairs( breaks ) do
insert( vh, { Cyrl = {}, Mong = {} } )
if i == #breaks then
vh[i].substring = sub( text, b, len( text ) )
else
vh[i].substring = sub( text, b, breaks[i + 1] - 1 )
end
end
if params.bor then
for i,s in ipairs( vh ) do
vh[i] = { Cyrl = {}, Mong = {} }
local orig_text = s.substring
s.substring = lower( s.substring )
if params.bor == "Russian" then s.substring = gsub( s.substring, "у", "ү" ) end
local substring_nostress = gsub( s.substring, "[" .. u( 0x301 ) .. u( 0x300 ) .. "]", "" )
if match( s.substring, "кило" .. u( 0x301 ) .. "?$" ) then -- irregular
vh[i].Cyrl.a = "э"
vh[i].location = find( s.substring, "[эүею]" )
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[аеёиоөуүэюя]у" ) or match( substring_nostress, "уй" ) then
vh[i].Cyrl.a = "а"
vh[i].location = 1
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[аеёиоөуүэюя]ү" ) or match( substring_nostress, "үй" ) then
vh[i].Cyrl.a = "э"
vh[i].location = 1
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( s.substring, "[ауяᠠᠣᠤ]" .. u( 0x301 ) ) then
vh[i].Cyrl.a = "а"
vh[i].location = find( s.substring, u( 0x301 ) ) - 1
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( s.substring, "[оё]" .. u( 0x301 ) ) then
vh[i].Cyrl.a = "о"
vh[i].location = find( s.substring, u( 0x301 ) ) - 1
vh[i].position = "back"
vh[i].quality = "rounded"
elseif ( match( substring_nostress, "[ауяоё]" ) and ( find( substring_nostress, "[ауяоё]" ) == find( substring_nostress, "[ауя]" ) ) ) or match( substring_nostress, "[ᠠᠣᠤ]" ) then
vh[i].Cyrl.a = "а"
vh[i].location = find( substring_nostress, "[ауя]" )
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[ауяоё]" ) and find( substring_nostress, "[ауяоё]" ) == find( substring_nostress, "[оё]" ) then
vh[i].Cyrl.a = "о"
vh[i].location = find( substring_nostress, "[оё]" )
vh[i].position = "back"
vh[i].quality = "rounded"
elseif ( match( substring_nostress, "[эүеюө]" ) and find( substring_nostress, "[эүеюө]" ) == find( substring_nostress, "[эүею]" ) ) or match( substring_nostress, "[ᠡᠥᠦᠧ]" ) then
vh[i].Cyrl.a = "э"
vh[i].location = find( substring_nostress, "[эүею]" )
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[эүеюө]" ) and find( substring_nostress, "[эүеюө]" ) == find( substring_nostress, "ө" ) then
vh[i].Cyrl.a = "ө"
vh[i].location = find( substring_nostress, "ө" )
vh[i].position = "front"
vh[i].quality = "rounded"
else
vh[i].Cyrl.a = "э"
vh[i].location = find( substring_nostress, "и" ) or 1
vh[i].position = "front"
vh[i].quality = "unrounded"
end
if match( vh[i].Cyrl.a, "[ао]" ) then
vh[i].Cyrl.ii = "ы"
vh[i].Cyrl.u = "у"
vh[i].Mong.a = "ᠠ"
vh[i].Mong.u = "ᠤ"
else
vh[i].Cyrl.ii = "ий"
vh[i].Cyrl.u = "ү"
vh[i].Mong.a = "ᠡ"
vh[i].Mong.u = "ᠦ"
end
if match( vh[i].Cyrl.a, "ө" ) then -- ө takes the diphthong эй not өй
vh[i].Cyrl.ai = "эй"
else
vh[i].Cyrl.ai = vh[i].Cyrl.a .. "й"
end
vh[i].Cyrl.aa = vh[i].Cyrl.a .. vh[i].Cyrl.a
vh[i].Cyrl.uu = vh[i].Cyrl.u .. vh[i].Cyrl.u
vh[i].substring = orig_text
end
else
local location
local pattern
for i,s in ipairs( vh ) do
local orig = s.substring
s.substring = reverse( lower( s.substring ) )
local vowel = match( s.substring, "[аеёоөуүэюя]" )
location = (find( s.substring, "[аеёоөуүэюя]" ))
if vh[i].Cyrl.a == nil then
vh[i].Cyrl.a = "э"
vh[i].position = "front"
vh[i].quality = "unrounded"
pattern = "и"
end
vh[i].Cyrl.a = lower( vh[i].Cyrl.a )
if vowel == "а" or vowel == "у" or vowel == "я" then
vh[i].Cyrl.a = "а"
vh[i].position = "back"
vh[i].quality = "unrounded"
pattern = "[ауюя]"
if match( s.substring, "[еёоөүэ]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "о" or vowel == "ё" then
vh[i].Cyrl.a = "о"
vh[i].position = "back"
vh[i].quality = "rounded"
pattern = "[ёо]"
if match( s.substring, "[аеөуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "э" then
vh[i].position = "front"
if location and sub( s.substring, location-1, location-1 ) == "й" and match( s.substring, "[аеёоөуүэюя]", location+1 ) == "ө" then
vh[i].Cyrl.a = "ө"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
elseif vowel == "ү" then
vh[i].Cyrl.a = "э"
vh[i].position = "front"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "ө" then
vh[i].Cyrl.a = "ө"
vh[i].position = "front"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "е" then
vh[i].position = "front"
if match( s.substring, "ө", location+1 ) then
vh[i].Cyrl.a = "ө"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
elseif vowel == "ю" then
vh[i].quality = "unrounded"
if match( s.substring, "[ауя]", location+1 ) then
vh[i].Cyrl.a = "а"
vh[i].position = "back"
pattern = "[ауюя]"
if match( s.substring, "[еёоөүэ]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].position = "front"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
end
location = 0
local function prev_vowel( n ) return match( s.substring, "[аеёиоөуүэюя]", n+1 ) end
local function prev_hvowel( n ) return match( s.substring, pattern, n+1 ) end
while prev_vowel( location ) and ( prev_vowel( location ) == prev_hvowel( location ) or prev_vowel( location ) == "и" ) do
if prev_vowel( location ) == prev_hvowel( location ) then
location = find( s.substring, pattern, location+1 )
else -- if и
local icheck = location+1
while prev_vowel( icheck ) == "и" do
icheck = find( s.substring, "и", icheck+1 )
end
if prev_vowel( icheck ) and prev_vowel( icheck ) == prev_hvowel( icheck ) then
location = icheck
elseif not prev_vowel( icheck ) and vowel == "э" then
location = icheck
elseif vowel == "э" and sub( s.substring, icheck-1, icheck-1 ) == "й" then
location = icheck
else
break
end
end
end
if match( vh[i].Cyrl.a, "[ао]" ) then
vh[i].Cyrl.ii = "ы"
vh[i].Cyrl.u = "у"
vh[i].Mong.a = "ᠠ"
vh[i].Mong.u = "ᠤ"
else
vh[i].Cyrl.ii = "ий"
vh[i].Cyrl.u = "ү"
vh[i].Mong.a = "ᠡ"
vh[i].Mong.u = "ᠦ"
end
if match( vh[i].Cyrl.a, "ө" ) then -- ө takes the diphthong эй not өй
vh[i].Cyrl.ai = "эй"
else
vh[i].Cyrl.ai = vh[i].Cyrl.a .. "й"
end
vh[i].Cyrl.aa = vh[i].Cyrl.a .. vh[i].Cyrl.a
vh[i].Cyrl.uu = vh[i].Cyrl.u .. vh[i].Cyrl.u
s.substring = orig
vh[i].location = len( s.substring ) + breaks[i] - location
end
end
return vh
end
--Breaks down a string into syllables and returns a table
function export.syllables( text, params )
local consonant = "[БВГДЖЗКЛМНПРСТФХЦЧШЩбвгджзклмнпрстфхцчшщ]"
local vowel = "[АОУЭӨҮИЙЫЯЕЁЮаоуэөүийыяеёю]"
local sign = "[ЪЬъь]"
local iotated = "[ЯЕЁЮяеёю]"
local punctuation = "[%s%p]"
local final_clusters = require( "Module:mn/data" ).syll_final_cons
local stress = u( 0x301 ) .. u( 0x300 )
-- Strip diacritics.
local chars = {}
for v in gmatch( text, "[%w%s%p" .. stress .. export.stem_barrier .. "]" ) do
insert( chars, v )
end
local breaks = {}
for i, v in pairs( chars ) do
-- First letter.
if i == 1 or match( chars[i-1], punctuation ) then
insert( breaks, i )
-- Stem barrier is used by the inflection templates.
elseif match( chars[i-1], export.stem_barrier ) then
insert( breaks, i )
-- If a vowel preceded by a hard sign or the temporary break character, then must be the break.
elseif match( v, vowel ) and match( chars[i-1], "[Ъъ]" ) then
insert( breaks, i )
-- If Е/е preceded by a soft sign, count backwards until vowel, punctuation/space or start of string is found; if a vowel is found first, then preceding sign must be medial, so is the break; if punctuation/start of string found first, letter is part of word-initial cluster, so is not the break (occurs in loanwords, e.g. Вьет|нам ("Vietnam")).
elseif match( v, "[Ее]" ) and match( chars[i-1], "[Ьь]" ) then
local j = i - 1
while j > 1 and ( match( chars[j], consonant ) or match( chars[j], sign ) or match( chars[j], "[" .. stress .. "]" ) ) do
j = j - 1
if match( chars[j], vowel ) then
-- If break, replaces the consonant preceding the soft sign as the break.
if breaks[#breaks] == i - 2 then breaks[#breaks] = nil end
insert( breaks, i )
end
end
-- If Ю/ю preceded by a soft sign, calculate vowel harmony and iterate through vowel harmonic segments until reaching the one the letter is in; once found, if front harmonic then letter is the break.
elseif match( v, "[Юю]" ) and match( chars[i-1], "[Ьь]" ) then
vh = export.vowelharmony( text, params )
local k = 0
for j, substring in ipairs(vh) do
local k_increase = mw.ustring.len(gsub(vh[j].substring, "[^%w%s%p" .. stress .. export.stem_barrier .. "]", ""))
if k + k_increase > i then
if vh[j].position == "front" then
-- If break, replaces the consonant preceding the soft sign as the break.
if breaks[#breaks] == i - 2 then breaks[#breaks] = nil end
insert( breaks, i )
end
break
end
k = k + k_increase
end
-- If a consonant followed by vowel (i.e. if lone/cluster-final), count backwards until vowel, punctuation/space or start of string is found; if a vowel is found first, then letter must be medial and lone/cluster-final, so is the break; if punctuation/start of string found first, letter is part of word-initial cluster, so is not the break (occurs in loanwords, e.g. трол|лей|бус ("trolleybus")).
elseif match( v, consonant ) and chars[i+1] and ( match( chars[i+1], vowel ) or ( match( chars[i+1], "[Ьь]" ) and chars[i+2] and match( chars[i+2], vowel ) ) ) then
local j = i
while j > 1 and ( match( chars[j], consonant ) or match( chars[j], sign ) or match( chars[j], "[" .. stress .. "]" ) ) do
j = j - 1
if match( chars[j], vowel ) then
insert( breaks, i )
end
end
-- If word-final consonant, count backwards until vowel, checking if each cluster is allowed as a word-final cluster; if it is, increase "stable" (the number of stable consonants (and signs) at the end) by one; if a vowel is found before an unstable cluster, the loop ends with no change; if an unstable cluster is found, "stable" will not iterate which will trigger an additional unvoweled syllable break at that consonant (occurs in loanwords, e.g. буд|ди|зм ("Buddhism"), ал|ге|бр ("algebra")).
elseif ( match( v, consonant ) or match( v, sign ) ) and ( i == #chars or match( chars[i+1], punctuation ) ) then
local j = i
local check = { chars[j] }
local stable = 1
while j > 1 and j > i - #final_clusters and stable > i - j and ( match( chars[j-1], consonant ) or match( chars[j-1], sign ) ) do
j = j - 1
insert( check, chars[j] )
for k,cluster in ipairs( final_clusters[#check] ) do
if match( concat( reverse_array( check ) ), cluster ) then
stable = stable + 1
break
end
end
if stable == i - j then
insert( breaks, j )
end
end
-- Iotated ("ya"-type) vowel after a vowel.
elseif match( v, iotated ) and ( match( chars[i-1], vowel ) or ( match( chars[i-1], "[".. stress .. "]" ) and match( chars[i-2], vowel ) ) ) then
insert( breaks, i )
end
end
-- Reform text without diacritics.
text = concat( chars )
breaks = remove_duplicates( breaks )
local syll = {}
for i,v in ipairs( breaks ) do
if i == #breaks then
insert( syll, sub( text, v ) )
else
insert( syll, sub( text, v, breaks[i+1] - 1 ) )
end
end
return syll
end
function export.remove_final_short_vowel( text, params )
if not params then params = {} end
local vh = export.vowelharmony( text, params )[#export.vowelharmony( text, params )]
local syllables = #export.syllables( text )
local reduced = text
local no_fv = false
if ( syllables > 1 and match( text, "[бвгджзклмнпрстфхцчшщ][аоөэиь]$" ) ) or match( text, "[ьъ]$" ) then
local matches = {
not params.bor,
match( text, "[ьъ]$" ),
match( text, "[ауя][влмн]ба$" ),
match( text, "[оё][влмн]бо$" ),
match( text, "ө[влмн]бө$" ),
match( text, "[эүе][влмн]бэ$" ),
match( text, "[бвглмнр]" .. vh.Cyrl.a .. u( 0x301 ) .. "?" .. u( 0x300 ) .. "?н" .. vh.Cyrl.a .. "$" ),
match( text, "[ауя]нга$" ),
match( text, "[оё]нго$" ),
match( text, "өнгө$" ),
match( text, "[эүе]нгэ$" )
}
for _,v in pairs( matches ) do
if v then
reduced = sub( text, 1, len( text ) - 1 )
no_fv = true
end
end
end
return reduced, no_fv
end
function export.remove_penultimate_short_vowel( text, params )
if not params then params = {} end
local vh = export.vowelharmony( text, params )[#export.vowelharmony( text, params )]
local syllables = reverse_array( export.syllables( text ) )
if not params.proper and ( vh.location ~= len( text ) - 1 or vh.violation == false ) and not params.bor then -- exclude proper nouns, loanwords and terms where the deleted vowel determines the vowel harmony
local check
local syllable_orig
for i,syllable in ipairs( syllables ) do
if i ~=1 and i ~= #syllables then
syllable_orig = syllable
if match( syllable, export.stem_barrier ) then
break
end
local prev_syllable = gsub( syllables[i+1], export.stem_barrier, "" )
check = ( match( prev_syllable, "[бвгджзклмнпрстфхцчшщь]*$" ) or "" ) .. syllable .. ( match( syllables[i-1], "^[бвгджзклмнпрстфхцчшщь]*" ) or "" )
local matches = {
-- CVC
match( check, "^[влмр]ь?[аиоөэ][вгклмнпр]$" ), -- not [бн]VC
match( check, "^гь?[аиоөэ][влмнр]$" ) and vh.position == "front", -- гV[влмнр] if front vowel only
-- CCVC
match( check, "^[вглмнр]?ь?[джзкпстхцчшщ]ь?[аиоөэ][вгджзклмнпрстцчшщ]$" ),
match( check, "^[вглмнр]?ь?[сх]ь?[тч]ь?[аиоөэ][вглмнр]$" ),
}
local exclusions = {
match( check, "[лм]ь?[аиоөэ]в$" ), -- not [лм]Vв
match( check, "[вдзклмпрстхц]ь?и[вгджзлмнпрстцчшщ]$" ), -- only [кжчш]иC
}
for _,v in pairs( matches ) do
if v then
syllables[i] = sub( syllable, 1, len( syllable ) - 1 )
for _,e in pairs( exclusions ) do
if e then syllables[i] = syllable_orig end
end
end
end
if syllables[i] ~= syllable_orig then
break
end
end
end
end
return concat( reverse_array( syllables ) )
end
function export.concat_forms_in_slot( forms )
if forms then
local new_vals = {}
for _, v in ipairs( forms ) do
local val = gsub( v.form, "|", "<!>" )
insert( new_vals, val )
end
return concat( new_vals, "," )
else
return nil
end
end
function export.combine_stem_ending( stem, ending )
if stem == "?" then
return "?"
else
return stem .. ending
end
end
function export.generate_form( form, footnotes )
if type( footnotes ) == "string" then
footnotes = { footnotes }
end
if footnotes then
return { form = form, footnotes = footnotes }
else
return form
end
end
return export
9ajjz7vrbe5jlvakf707q7y8fglcm75
196014
196013
2024-12-04T12:34:06Z
Lee
19
[[:en:Module:mn-common]] වෙතින් එක් සංශෝධනයක්
196013
Scribunto
text/plain
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local export = {}
local concat = table.concat
local find = m_str_utils.find
local insert = table.insert
local len = m_str_utils.len
local match = m_str_utils.match
local gmatch = m_str_utils.gmatch
local sub = m_str_utils.sub
local gsub = m_str_utils.gsub
local lower = m_str_utils.lower
local reverse = m_str_utils.reverse
local reverse_array = m_table.reverse
local remove_duplicates = m_table.removeDuplicates
local sort = table.sort
local u = m_str_utils.char
export.FVS1 = u( 0x180B )
export.FVS2 = u( 0x180C )
export.FVS3 = u( 0x180D )
export.FVS4 = u( 0x180F )
export.MVS = u( 0x180E )
export.NNBSP = u( 0x202F )
export.stem_barrier = u( 0xF000 )
local function format_Mongolian_text(text) return "<span class=\"Mong\" lang=\"mn\">" .. text .. "</span>" end
function export.see(frame)
local params = {
[1] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local title = args[1]
local curr_title = mw.title.getCurrentTitle().subpageText
local content = mw.title.new(title):getContent()
local senses = {}
local sense_id = 0
local j, pos, s, section
if title == curr_title then
return error("The soft-directed item is the same as the page title.")
end
if content then
if not match(content, "==Mongolian==") then
categories = categories .. "[[Category:Mongolian redlinks/mn-see]]"
elseif not match(content, "mn%-IPA") and not match(content, "mn%-see") then
require("Module:debug").track("mn-see/unidirectional reference to variant")
elseif not match(content, curr_title) then
require("Module:debug").track("mn-see/unidirectional reference variant→orthodox")
end
end
while true do
_, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.-)\n==%f[^=]", pos)
if j == nil then
i, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.+)", pos)
end
if j == nil then
break
else
pos = j - 1
end
if language_name == "Mongolian" then
section = s
end
end
if not section then
return ""
end
section = section:gsub("\n===+Etymology.-(\n==)", "%1")
local text = {}
for sense in section:gmatch("\n# ([^\n]+)") do
if not sense:match("rfdef") and not sense:match("defn") then
sense_id = sense_id + 1
insert(senses, sense)
end
end
insert(text, concat(senses, "\n# "))
insert(text, "</div>")
return frame:preprocess( concat(text) )
end
function export.ipasee(frame)
local params = {
[1] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local title = args[1]
local curr_title = mw.title.getCurrentTitle().subpageText
local content = mw.title.new(title):getContent()
local senses = {}
local sense_id = 0
local j, pos, s, section
if title == curr_title then
return error("The soft-directed item is the same as the page title.")
end
if content then
if not match(content, "==Mongolian==") then
categories = categories .. "[[Category:Mongolian redlinks/mn-IPA-see]]"
elseif not match(content, "mn%-IPA") and not match(content, "mn%-see") and not match(content, "mn%-IPA-see") then
require("Module:debug").track("mn-IPA-see/unidirectional reference to variant")
elseif not match(content, curr_title) then
require("Module:debug").track("mn-IPA-see/unidirectional reference variant→orthodox")
end
end
while true do
_, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.-)\n==%f[^=]", pos)
if j == nil then
i, j, language_name, s = content:find("%f[=]==%s*([^=]+)%s*==(\n.+)", pos)
end
if j == nil then
break
else
pos = j - 1
end
if language_name == "Mongolian" then
section = s
end
end
if not section then
return ""
end
section = section:gsub("\n===+Etymology.-(\n==)", "%1")
local text = {}
if section:match("{{mn-IPA%|([^\n]+)}}") then
return frame:expandTemplate{ title = "mn-IPA", args = { section:match("{{mn-IPA%|([^\n]+)}}") } }
else
return frame:expandTemplate{ title = "mn-IPA", args = { title } }
end
end
--Breaks down a string into vowel harmonic segments
function export.vowelharmony( text, params )
if not params then params = {} end
local vh = {}
local breaks = { 1 }
local switchers = { "ау", "оу", "уу", "иу", "яу", "ёу", "еу", "юу", "уй", "эү", "өү", "үү", "иү", "еү", "юү", "үй", " ", "-" }
local switchers2 = { "аа", "оо", "өө", "ээ", "яа", "ёо", "еө", "еэ", "Аа", "Оо", "Өө", "Ээ", "Яа", "Ёо", "Еө", "Еэ" }
for _, v in pairs( switchers ) do
v = gsub( v, "(.)(.)", "%1" .. u( 0x301 ) .. "?" .. u( 0x300 ) .. "?%2" )
local c = 0
while c ~= nil do
c = find( lower( text ), v, c + 1 )
if c ~= nil and c ~= 1 then
insert( breaks, c )
end
end
end
if params.bor then
for _,v in pairs( switchers2 ) do
if match( text, v .. "$" ) then
insert( breaks, len( text ) - 1 )
end
end
end
sort( breaks )
for i, b in ipairs( breaks ) do
insert( vh, { Cyrl = {}, Mong = {} } )
if i == #breaks then
vh[i].substring = sub( text, b, len( text ) )
else
vh[i].substring = sub( text, b, breaks[i + 1] - 1 )
end
end
if params.bor then
for i,s in ipairs( vh ) do
vh[i] = { Cyrl = {}, Mong = {} }
local orig_text = s.substring
s.substring = lower( s.substring )
if params.bor == "Russian" then s.substring = gsub( s.substring, "у", "ү" ) end
local substring_nostress = gsub( s.substring, "[" .. u( 0x301 ) .. u( 0x300 ) .. "]", "" )
if match( s.substring, "кило" .. u( 0x301 ) .. "?$" ) then -- irregular
vh[i].Cyrl.a = "э"
vh[i].location = find( s.substring, "[эүею]" )
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[аеёиоөуүэюя]у" ) or match( substring_nostress, "уй" ) then
vh[i].Cyrl.a = "а"
vh[i].location = 1
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[аеёиоөуүэюя]ү" ) or match( substring_nostress, "үй" ) then
vh[i].Cyrl.a = "э"
vh[i].location = 1
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( s.substring, "[ауяᠠᠣᠤ]" .. u( 0x301 ) ) then
vh[i].Cyrl.a = "а"
vh[i].location = find( s.substring, u( 0x301 ) ) - 1
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( s.substring, "[оё]" .. u( 0x301 ) ) then
vh[i].Cyrl.a = "о"
vh[i].location = find( s.substring, u( 0x301 ) ) - 1
vh[i].position = "back"
vh[i].quality = "rounded"
elseif ( match( substring_nostress, "[ауяоё]" ) and ( find( substring_nostress, "[ауяоё]" ) == find( substring_nostress, "[ауя]" ) ) ) or match( substring_nostress, "[ᠠᠣᠤ]" ) then
vh[i].Cyrl.a = "а"
vh[i].location = find( substring_nostress, "[ауя]" )
vh[i].position = "back"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[ауяоё]" ) and find( substring_nostress, "[ауяоё]" ) == find( substring_nostress, "[оё]" ) then
vh[i].Cyrl.a = "о"
vh[i].location = find( substring_nostress, "[оё]" )
vh[i].position = "back"
vh[i].quality = "rounded"
elseif ( match( substring_nostress, "[эүеюө]" ) and find( substring_nostress, "[эүеюө]" ) == find( substring_nostress, "[эүею]" ) ) or match( substring_nostress, "[ᠡᠥᠦᠧ]" ) then
vh[i].Cyrl.a = "э"
vh[i].location = find( substring_nostress, "[эүею]" )
vh[i].position = "front"
vh[i].quality = "unrounded"
elseif match( substring_nostress, "[эүеюө]" ) and find( substring_nostress, "[эүеюө]" ) == find( substring_nostress, "ө" ) then
vh[i].Cyrl.a = "ө"
vh[i].location = find( substring_nostress, "ө" )
vh[i].position = "front"
vh[i].quality = "rounded"
else
vh[i].Cyrl.a = "э"
vh[i].location = find( substring_nostress, "и" ) or 1
vh[i].position = "front"
vh[i].quality = "unrounded"
end
if match( vh[i].Cyrl.a, "[ао]" ) then
vh[i].Cyrl.ii = "ы"
vh[i].Cyrl.u = "у"
vh[i].Mong.a = "ᠠ"
vh[i].Mong.u = "ᠤ"
else
vh[i].Cyrl.ii = "ий"
vh[i].Cyrl.u = "ү"
vh[i].Mong.a = "ᠡ"
vh[i].Mong.u = "ᠦ"
end
if match( vh[i].Cyrl.a, "ө" ) then -- ө takes the diphthong эй not өй
vh[i].Cyrl.ai = "эй"
else
vh[i].Cyrl.ai = vh[i].Cyrl.a .. "й"
end
vh[i].Cyrl.aa = vh[i].Cyrl.a .. vh[i].Cyrl.a
vh[i].Cyrl.uu = vh[i].Cyrl.u .. vh[i].Cyrl.u
vh[i].substring = orig_text
end
else
local location
local pattern
for i,s in ipairs( vh ) do
local orig = s.substring
s.substring = reverse( lower( s.substring ) )
local vowel = match( s.substring, "[аеёоөуүэюя]" )
location = (find( s.substring, "[аеёоөуүэюя]" ))
if vh[i].Cyrl.a == nil then
vh[i].Cyrl.a = "э"
vh[i].position = "front"
vh[i].quality = "unrounded"
pattern = "и"
end
vh[i].Cyrl.a = lower( vh[i].Cyrl.a )
if vowel == "а" or vowel == "у" or vowel == "я" then
vh[i].Cyrl.a = "а"
vh[i].position = "back"
vh[i].quality = "unrounded"
pattern = "[ауюя]"
if match( s.substring, "[еёоөүэ]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "о" or vowel == "ё" then
vh[i].Cyrl.a = "о"
vh[i].position = "back"
vh[i].quality = "rounded"
pattern = "[ёо]"
if match( s.substring, "[аеөуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "э" then
vh[i].position = "front"
if location and sub( s.substring, location-1, location-1 ) == "й" and match( s.substring, "[аеёоөуүэюя]", location+1 ) == "ө" then
vh[i].Cyrl.a = "ө"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
elseif vowel == "ү" then
vh[i].Cyrl.a = "э"
vh[i].position = "front"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "ө" then
vh[i].Cyrl.a = "ө"
vh[i].position = "front"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
elseif vowel == "е" then
vh[i].position = "front"
if match( s.substring, "ө", location+1 ) then
vh[i].Cyrl.a = "ө"
vh[i].quality = "rounded"
pattern = "[еө]"
if match( s.substring, "[аёоуүэюя]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].quality = "unrounded"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
elseif vowel == "ю" then
vh[i].quality = "unrounded"
if match( s.substring, "[ауя]", location+1 ) then
vh[i].Cyrl.a = "а"
vh[i].position = "back"
pattern = "[ауюя]"
if match( s.substring, "[еёоөүэ]" ) then vh[i].violation = true else vh[i].violation = false end
else
vh[i].Cyrl.a = "э"
vh[i].position = "front"
pattern = "[еүэю]"
if match( s.substring, "[аёоөуя]" ) then vh[i].violation = true else vh[i].violation = false end
end
end
location = 0
local function prev_vowel( n ) return match( s.substring, "[аеёиоөуүэюя]", n+1 ) end
local function prev_hvowel( n ) return match( s.substring, pattern, n+1 ) end
while prev_vowel( location ) and ( prev_vowel( location ) == prev_hvowel( location ) or prev_vowel( location ) == "и" ) do
if prev_vowel( location ) == prev_hvowel( location ) then
location = find( s.substring, pattern, location+1 )
else -- if и
local icheck = location+1
while prev_vowel( icheck ) == "и" do
icheck = find( s.substring, "и", icheck+1 )
end
if prev_vowel( icheck ) and prev_vowel( icheck ) == prev_hvowel( icheck ) then
location = icheck
elseif not prev_vowel( icheck ) and vowel == "э" then
location = icheck
elseif vowel == "э" and sub( s.substring, icheck-1, icheck-1 ) == "й" then
location = icheck
else
break
end
end
end
if match( vh[i].Cyrl.a, "[ао]" ) then
vh[i].Cyrl.ii = "ы"
vh[i].Cyrl.u = "у"
vh[i].Mong.a = "ᠠ"
vh[i].Mong.u = "ᠤ"
else
vh[i].Cyrl.ii = "ий"
vh[i].Cyrl.u = "ү"
vh[i].Mong.a = "ᠡ"
vh[i].Mong.u = "ᠦ"
end
if match( vh[i].Cyrl.a, "ө" ) then -- ө takes the diphthong эй not өй
vh[i].Cyrl.ai = "эй"
else
vh[i].Cyrl.ai = vh[i].Cyrl.a .. "й"
end
vh[i].Cyrl.aa = vh[i].Cyrl.a .. vh[i].Cyrl.a
vh[i].Cyrl.uu = vh[i].Cyrl.u .. vh[i].Cyrl.u
s.substring = orig
vh[i].location = len( s.substring ) + breaks[i] - location
end
end
return vh
end
--Breaks down a string into syllables and returns a table
function export.syllables( text, params )
local consonant = "[БВГДЖЗКЛМНПРСТФХЦЧШЩбвгджзклмнпрстфхцчшщ]"
local vowel = "[АОУЭӨҮИЙЫЯЕЁЮаоуэөүийыяеёю]"
local sign = "[ЪЬъь]"
local iotated = "[ЯЕЁЮяеёю]"
local punctuation = "[%s%p]"
local final_clusters = require( "Module:mn/data" ).syll_final_cons
local stress = u( 0x301 ) .. u( 0x300 )
-- Strip diacritics.
local chars = {}
for v in gmatch( text, "[%w%s%p" .. stress .. export.stem_barrier .. "]" ) do
insert( chars, v )
end
local breaks = {}
for i, v in pairs( chars ) do
-- First letter.
if i == 1 or match( chars[i-1], punctuation ) then
insert( breaks, i )
-- Stem barrier is used by the inflection templates.
elseif match( chars[i-1], export.stem_barrier ) then
insert( breaks, i )
-- If a vowel preceded by a hard sign or the temporary break character, then must be the break.
elseif match( v, vowel ) and match( chars[i-1], "[Ъъ]" ) then
insert( breaks, i )
-- If Е/е preceded by a soft sign, count backwards until vowel, punctuation/space or start of string is found; if a vowel is found first, then preceding sign must be medial, so is the break; if punctuation/start of string found first, letter is part of word-initial cluster, so is not the break (occurs in loanwords, e.g. Вьет|нам ("Vietnam")).
elseif match( v, "[Ее]" ) and match( chars[i-1], "[Ьь]" ) then
local j = i - 1
while j > 1 and ( match( chars[j], consonant ) or match( chars[j], sign ) or match( chars[j], "[" .. stress .. "]" ) ) do
j = j - 1
if match( chars[j], vowel ) then
-- If break, replaces the consonant preceding the soft sign as the break.
if breaks[#breaks] == i - 2 then breaks[#breaks] = nil end
insert( breaks, i )
end
end
-- If Ю/ю preceded by a soft sign, calculate vowel harmony and iterate through vowel harmonic segments until reaching the one the letter is in; once found, if front harmonic then letter is the break.
elseif match( v, "[Юю]" ) and match( chars[i-1], "[Ьь]" ) then
vh = export.vowelharmony( text, params )
local k = 0
for j, substring in ipairs(vh) do
local k_increase = mw.ustring.len(gsub(vh[j].substring, "[^%w%s%p" .. stress .. export.stem_barrier .. "]", ""))
if k + k_increase > i then
if vh[j].position == "front" then
-- If break, replaces the consonant preceding the soft sign as the break.
if breaks[#breaks] == i - 2 then breaks[#breaks] = nil end
insert( breaks, i )
end
break
end
k = k + k_increase
end
-- If a consonant followed by vowel (i.e. if lone/cluster-final), count backwards until vowel, punctuation/space or start of string is found; if a vowel is found first, then letter must be medial and lone/cluster-final, so is the break; if punctuation/start of string found first, letter is part of word-initial cluster, so is not the break (occurs in loanwords, e.g. трол|лей|бус ("trolleybus")).
elseif match( v, consonant ) and chars[i+1] and ( match( chars[i+1], vowel ) or ( match( chars[i+1], "[Ьь]" ) and chars[i+2] and match( chars[i+2], vowel ) ) ) then
local j = i
while j > 1 and ( match( chars[j], consonant ) or match( chars[j], sign ) or match( chars[j], "[" .. stress .. "]" ) ) do
j = j - 1
if match( chars[j], vowel ) then
insert( breaks, i )
end
end
-- If word-final consonant, count backwards until vowel, checking if each cluster is allowed as a word-final cluster; if it is, increase "stable" (the number of stable consonants (and signs) at the end) by one; if a vowel is found before an unstable cluster, the loop ends with no change; if an unstable cluster is found, "stable" will not iterate which will trigger an additional unvoweled syllable break at that consonant (occurs in loanwords, e.g. буд|ди|зм ("Buddhism"), ал|ге|бр ("algebra")).
elseif ( match( v, consonant ) or match( v, sign ) ) and ( i == #chars or match( chars[i+1], punctuation ) ) then
local j = i
local check = { chars[j] }
local stable = 1
while j > 1 and j > i - #final_clusters and stable > i - j and ( match( chars[j-1], consonant ) or match( chars[j-1], sign ) ) do
j = j - 1
insert( check, chars[j] )
for k,cluster in ipairs( final_clusters[#check] ) do
if match( concat( reverse_array( check ) ), cluster ) then
stable = stable + 1
break
end
end
if stable == i - j then
insert( breaks, j )
end
end
-- Iotated ("ya"-type) vowel after a vowel.
elseif match( v, iotated ) and ( match( chars[i-1], vowel ) or ( match( chars[i-1], "[".. stress .. "]" ) and match( chars[i-2], vowel ) ) ) then
insert( breaks, i )
end
end
-- Reform text without diacritics.
text = concat( chars )
breaks = remove_duplicates( breaks )
local syll = {}
for i,v in ipairs( breaks ) do
if i == #breaks then
insert( syll, sub( text, v ) )
else
insert( syll, sub( text, v, breaks[i+1] - 1 ) )
end
end
return syll
end
function export.remove_final_short_vowel( text, params )
if not params then params = {} end
local vh = export.vowelharmony( text, params )[#export.vowelharmony( text, params )]
local syllables = #export.syllables( text )
local reduced = text
local no_fv = false
if ( syllables > 1 and match( text, "[бвгджзклмнпрстфхцчшщ][аоөэиь]$" ) ) or match( text, "[ьъ]$" ) then
local matches = {
not params.bor,
match( text, "[ьъ]$" ),
match( text, "[ауя][влмн]ба$" ),
match( text, "[оё][влмн]бо$" ),
match( text, "ө[влмн]бө$" ),
match( text, "[эүе][влмн]бэ$" ),
match( text, "[бвглмнр]" .. vh.Cyrl.a .. u( 0x301 ) .. "?" .. u( 0x300 ) .. "?н" .. vh.Cyrl.a .. "$" ),
match( text, "[ауя]нга$" ),
match( text, "[оё]нго$" ),
match( text, "өнгө$" ),
match( text, "[эүе]нгэ$" )
}
for _,v in pairs( matches ) do
if v then
reduced = sub( text, 1, len( text ) - 1 )
no_fv = true
end
end
end
return reduced, no_fv
end
function export.remove_penultimate_short_vowel( text, params )
if not params then params = {} end
local vh = export.vowelharmony( text, params )[#export.vowelharmony( text, params )]
local syllables = reverse_array( export.syllables( text ) )
if not params.proper and ( vh.location ~= len( text ) - 1 or vh.violation == false ) and not params.bor then -- exclude proper nouns, loanwords and terms where the deleted vowel determines the vowel harmony
local check
local syllable_orig
for i,syllable in ipairs( syllables ) do
if i ~=1 and i ~= #syllables then
syllable_orig = syllable
if match( syllable, export.stem_barrier ) then
break
end
local prev_syllable = gsub( syllables[i+1], export.stem_barrier, "" )
check = ( match( prev_syllable, "[бвгджзклмнпрстфхцчшщь]*$" ) or "" ) .. syllable .. ( match( syllables[i-1], "^[бвгджзклмнпрстфхцчшщь]*" ) or "" )
local matches = {
-- CVC
match( check, "^[влмр]ь?[аиоөэ][вгклмнпр]$" ), -- not [бн]VC
match( check, "^гь?[аиоөэ][влмнр]$" ) and vh.position == "front", -- гV[влмнр] if front vowel only
-- CCVC
match( check, "^[вглмнр]?ь?[джзкпстхцчшщ]ь?[аиоөэ][вгджзклмнпрстцчшщ]$" ),
match( check, "^[вглмнр]?ь?[сх]ь?[тч]ь?[аиоөэ][вглмнр]$" ),
}
local exclusions = {
match( check, "[лм]ь?[аиоөэ]в$" ), -- not [лм]Vв
match( check, "[вдзклмпрстхц]ь?и[вгджзлмнпрстцчшщ]$" ), -- only [кжчш]иC
}
for _,v in pairs( matches ) do
if v then
syllables[i] = sub( syllable, 1, len( syllable ) - 1 )
for _,e in pairs( exclusions ) do
if e then syllables[i] = syllable_orig end
end
end
end
if syllables[i] ~= syllable_orig then
break
end
end
end
end
return concat( reverse_array( syllables ) )
end
function export.concat_forms_in_slot( forms )
if forms then
local new_vals = {}
for _, v in ipairs( forms ) do
local val = gsub( v.form, "|", "<!>" )
insert( new_vals, val )
end
return concat( new_vals, "," )
else
return nil
end
end
function export.combine_stem_ending( stem, ending )
if stem == "?" then
return "?"
else
return stem .. ending
end
end
function export.generate_form( form, footnotes )
if type( footnotes ) == "string" then
footnotes = { footnotes }
end
if footnotes then
return { form = form, footnotes = footnotes }
else
return form
end
end
return export
9ajjz7vrbe5jlvakf707q7y8fglcm75
සැකිල්ල:pi-decl-noun
10
8328
196063
29654
2024-04-27T13:46:23Z
en>SurjectionBot
0
Protected "[[Template:pi-decl-noun]]": (bot) automatically protect highly visible templates/modules (reference score: 1996+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
29653
wikitext
text/x-wiki
<includeonly>{{#invoke:pi-decl/noun|show}}</includeonly><noinclude>
{{documentation}}
[[Category:Pali noun inflection-table templates]]</noinclude>
44852qzkgulvu8xwq7r0mgjxsd5hk0j
196064
196063
2024-12-04T13:52:55Z
Lee
19
[[:en:Template:pi-decl-noun]] වෙතින් එක් සංශෝධනයක්
29653
wikitext
text/x-wiki
<includeonly>{{#invoke:pi-decl/noun|show}}</includeonly><noinclude>
{{documentation}}
[[Category:Pali noun inflection-table templates]]</noinclude>
44852qzkgulvu8xwq7r0mgjxsd5hk0j
Module:pi-decl/noun
828
8330
196069
194992
2024-12-04T13:58:31Z
Lee
19
[[මනුස්ස]] ප්රවේශයේ පරිවර්තන කටයුතු
196069
Scribunto
text/plain
local export = {}
-- require("Module:log globals") -- Examine Lua logs at end of preview for results.
local links = require("Module:links")
local lang = require("Module:languages").getByCode("pi")
local m_parameters = require("Module:parameters")
local m_str_utils = require("Module:string utilities")
local m_translit
local to_script
local find = m_str_utils.find
local gsub = m_str_utils.gsub
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char -- For readability.
local load = mw.loadData
local ti = table.insert
local currentScript
local scriptCode
local genders = {
["m"] = "පුරුෂ ලිංග", ["f"] = "feminine", ["n"] = "neuter",
}
local rows = {
"Nominative (first)", "Accusative (second)", "Instrumental (third)", "Dative (fourth)",
"Ablative (fifth)", "Genitive (sixth)", "Locative (seventh)", "Vocative (calling)",
}
local endings = {
["one"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["a"] = {},
["ā"] = { "า", "ा", "आ", "া", "আ", "ါ", "ာ", " ႃ", "ᩣ", "ᩤ", "າ", "ា", u(0x17A4),
"ා", "ආ", "𑀸", "𑀆", "𑄂" },
["i"] = { "ิ", "ि", "इ", "ি", "ই", "ိ", "ဣ", "ᩥ", "ᩍ", "ິ", "ិ", "ឥ",
"ි", "ඉ", "𑀺", "𑀇", "𑄨" },
["ī"] = { "ี", "ी", "ई", "ী", "ঈ", "ီ", "ဳ", "ဤ", "ᩦ", "ᩎ", "ີ", "ី", "ឦ",
"ී", "ඊ", "𑀻", "𑀈", "𑄩" },
["u"] = { "ุ", "ु", "उ", "ু", "উ", "ု", "ဥ", "ᩩ", "ᩏ", "ຸ", "ុ", "ឧ",
"ු", "උ", "𑀼", "𑀉", "𑄪" },
["ū"] = { "ู", "ू", "ऊ", "ূ", "ঊ", "ူ", "ဦ", "ᩪ", "ᩐ", "ູ", "ូ", "ឨ", "ឩ",
"ූ", "ඌ", "𑀽", "𑀊", "𑄫" },
["ah"] = { "ะ", "ະ"},
},
["two"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["ar"] = { "รฺ", "ัร", "र्", "র্", "ရ်", "ᩁ᩺", "ᩁ᩼", "ຣ໌", "ຣ຺", "ັຣ", "រ៑",
"ර්", "𑀭𑁆", "𑄢𑄴"},
["as"] = { "สฺ", "ัส", "स्", "স্", "သ်", "ᩈ᩺", "ᩈ᩼", "ສ໌", "ສ຺", "ັສ", "ស៑",
"ස්", "𑀲𑁆", "𑄥𑄴" },
["an"] = { "นฺ", "ัน", "न्", "ন্", "န်", "ᨶ᩺", "ᨶ᩼", "ນ໌", "ນ຺", "ັນ", "ន៑",
"න්", "𑀦𑁆", "𑄚𑄴"},
ent = { "นต", "ນຕ"},
["in"] = { "ิน", "ິນ"},
},
three = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "ันต" , "ັນຕ"},
ent = {},
ont = {},
["in"] = { "ินฺ", "िन्", "িন্", "ိန်", "ᩥᨶ᩺", "ິນ຺", "ិន៑",
"ින්", "𑀺𑀦𑁆", "𑄨𑄚𑄴" },
},
four = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "นฺตฺ", "न्त्", "ন্ত্", "န္တ်", "ᨶ᩠ᨲ᩺", "ᨶ᩠ᨲ᩼", "ນ຺ຕ໌", "ນ຺ຕ຺", "ន្ត៑",
"න්ත්", "𑀦𑁆𑀢𑁆", "𑄚𑄴𑄖𑄴" },
vant = { "วันต", "ວັນຕ" },
mant = { "มันต", "ມັນຕ" },
},
five = { -- 'ent' and 'ont' are discontiguous for Thai and Lao. Assume NFC (as above).
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
antT = { "න්ත්" },
vant = { "วนฺตฺ", "वन्त्", "ৱন্ত্","ৰন্ত্", "ွန္တ်", "ဝန္တ်", "ᩅᨶ᩠ᨲ᩺", "ᩅᨶ᩠ᨲ᩼", "ວນ຺ຕ຺", "ວນ຺ຕ໌", "វន្ត៑",
"වන්ත්", "𑀯𑀦𑁆𑀢𑁆", "𑅇𑄚𑄴𑄖𑄴" },
mant = { "มนฺตฺ", "मन्त्", "মন্ত্", "မန္တ်", "ᨾᨶ᩠ᨲ᩺", "ᨾᨶ᩠ᨲ᩼", "ມນ຺ຕ຺", "ມນ຺ຕ໌", "មន្ត៑",
"ᩜᨶ᩠ᨲ᩺", "ᩜᨶ᩠ᨲ᩼",
"මන්ත්", "𑀫𑀦𑁆𑀢𑁆", "𑄟𑄚𑄴𑄖𑄴"},
ent = { "ेन्त्", "েন্ত্", "ေန္တ်", "ᩮᨶ᩠ᨲ᩺", "ᩮᨶ᩠ᨲ᩼", "េន្ត៑",
"एन्त्", "এন্ত্", "ဧန္တ်", "ᩑᨶ᩠ᨲ᩺", "ᩑᨶ᩠ᨲ᩼", "ឯន្ត៑",
"ෙන්ත්", "𑁂𑀦𑁆𑀢𑁆", "𑄬𑄚𑄴𑄖𑄴" ,
"එන්ත්", "𑀏𑀦𑁆𑀢𑁆" },
ont = { "ोन्त्", "োন্ত্", "ာန္တ်", "ါန္တ်", "ᩣᨶ᩠ᨲ᩺", "ᩣᨶ᩠ᨲ᩼", "ោន្ត៑",
"ᩤᨶ᩠ᨲ᩺", "ᩤᨶ᩠ᨲ᩼",
"ओन्त्", "ওন্ত্", "ဩန္တ်", "ᩰᨶ᩠ᨲ᩺", "ᩰᨶ᩠ᨲ᩼", "ឲន្ត៑",
"ᩒᨶ᩠ᨲ᩺", "ᩒᨶ᩠ᨲ᩼",
"ොන්ත්", "𑁄𑀦𑁆𑀢𑁆", "𑄮𑄚𑄴𑄖𑄴",
"ඔන්ත්", "𑀑𑀦𑁆𑀢𑁆"},
},
six = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah
vantT = {"වන්ත්" },
mantT = {"මන්ත්" },
entT = {"ෙන්ත්",
"එන්ත්" },
ontT = {"ොන්ත්",
"ඔන්ත්" },
},
}
function export.detectEnding(stem, options)
-- Correct checking order is last 6, last 5, last 4, last 3, last 2, last 1, but we
-- Can do slightly better by knowing the data.
local oneLetter = sub(stem, -1)
for key, arr in pairs(endings.one) do
if oneLetter == key then
return key
end
for _, val in ipairs(arr) do
if oneLetter == val then
return key
end
end
end
-- Check Latin script first
local fourLetters = sub(stem, -4)
if 'mant' == fourLetters or 'vant' == fourLetters then
return fourLetters
end
local wordEnd = sub(stem, -6)
for key, arr in pairs(endings.six) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
wordEnd = sub(stem, -5)
for key, arr in pairs(endings.five) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
for key, arr in pairs(endings.four) do
if fourLetters == key then return key end
for _, val in ipairs(arr) do
if fourLetters == val then
-- Scripts with visually ordered preposed vowels have not been checked thoroughly
if key == 'ant' and
(oneLetter == u(0x0E3A) or oneLetter == u(0xECC) or
oneLetter == u(0x0EBA)) then
local pm6 = sub(stem, -6, -6)
if match(pm6, '[เโເໂ]') then -- 1 char onset
return 'ent' -- 'ent' for 'ont' matters not.
elseif match(pm6, '['..u(0x0E3A)..u(0x0EBA)..']')
and match(sub(stem, -8, -8), '[เโເໂ]') then -- 2 char onset
return 'ent' -- 'ent' for 'ont' matters not.
else
return key
end
else
return key
end
end
end
end
local threeLetters = sub(stem, -3)
for key, arr in pairs(endings.three) do
if threeLetters == key then
return key
end
for _, val in ipairs(arr) do
if threeLetters == val then return key; end
end
end
local impl = options and options.impl or 'yes' -- Fudge to pass old tests.
wordEnd = sub(stem, -2)
for key, arr in pairs(endings.two) do
if wordEnd == key then
return key
end
for _, val in ipairs(arr) do
if wordEnd == val then
if key == 'ent' then
local pm3 = sub(stem, -3, -3)
if match(pm3, '['..u(0x0e31)..u(0xeb1)..']') then
-- Recognise below
return 'ant'
elseif match(sub(stem, -4, -3), '[เโເໂ][ก-ฮກ-ຮ]') then -- 1 char onset
return 'ent'
elseif match(sub(stem, -5, -3), '[เโເໂ][ก-ฮກ-ຮ][ก-ฮກ-ຮ]') then -- 2 char onset
return 'ent'
end
elseif wordEnd == "ิน" or wordEnd == "ິນ" then
if impl == 'yes' then
return 'a'
elseif impl == 'both' then
error("Does "..stem.." end in -in or -ina?")
else
return key
end
else
return key
end
end
end
end
return "a"
end
-- Selectively converts touching to conjoining.
local sinh_flip = {["කⒿ්ව"]="ක්ව",
["තⒿ්ථ"]="ත්ථ", ["තⒿ්ව"]="ත්ව",
["නⒿ්ථ"]="න්ථ", ["නⒿ්ද"]="න්ද", ["නⒿ්ධ"]="න්ධ", ["නⒿ්ව"]="න්ව",
}
-- Argument option is optional.
function export.joinSuffix(scriptCode, stem, suffixes, option)
if stem == nil then
errmes = {}
table.insert(errmes, 'joinSuffix('..scriptCode)
table.insert(errmes, tostring(stem))
table.insert(errmes, tostring(suffixes))
table.insert(errmes, tostring(option)..')')
error(table.concat(errmes, ','))
end
local output = {}
local term
local aa = option and option.aa or "default"
local join, term2
if scriptCode == 'Lana' or scriptCode == 'Mymr' or scriptCode == 'Sinh' then
join = 'Ⓙ'
else
join = ""
end
for _,suffix in ipairs(suffixes) do
if match(suffix, "^⌫⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -6) .. join .. sub(suffix, 6, -1)
elseif match(suffix, "^⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -5) .. join .. sub(suffix, 5, -1)
elseif match(suffix, "^⌫⌫⌫") then --backspace
term = sub(stem, 1, -4) .. join .. sub(suffix, 4, -1)
elseif match(suffix, "^⌫⌫") then --backspace
term = sub(stem, 1, -3) .. join .. sub(suffix, 3, -1)
elseif match(suffix, "^⌫") then --backspace
term = sub(stem, 1, -2) .. join .. sub(suffix, 2, -1)
else
term = stem .. join .. suffix
end
--note: Sinh conjuncts are already ready.
if scriptCode == "Thai" then
term = gsub(term, "(.)↶([เโ])", "%2%1") --swap
elseif scriptCode == "Mymr" then
-- term = gsub(term, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
term = gsub(term, "(င်္)([ခဂငဒပဝ])(ေ?)Ⓙာ", "%1%2%3ါ") -- redundant!
-- term = gsub(term, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "Ⓙ္[ယရ]", { ["Ⓙ္ယ"] = "ျ", ["Ⓙ္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "^([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2ါ")
term = gsub(term, "([^္])([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([^္])Ⓙ([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])(္[က-အဿ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])Ⓙ(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
-- term = gsub(term, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
-- term = gsub(term, "ဉ္ဉ", "ည")
-- term = gsub(term, "သ္သ", "ဿ")
term = gsub(term, 'Ⓙ', '')
elseif scriptCode == "Lana" then
if aa == "both" then
term2 = gsub(term, 'Ⓙ', '')
end
if aa == "tall" or aa == "both" then
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "(ᨻᩛ)Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, 'Ⓙ', '')
if aa == "tall" then
term2 = term
end
elseif aa == "round" then
term = gsub(term, 'Ⓙ', '')
term2 = term
elseif aa == "default" then
-- term = gsub(term, "ᨦ᩠", "ᩘ")
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
-- term = gsub(term, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
-- term = gsub(term, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
-- term = gsub(term, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
-- term = gsub(term, "ᩈ᩠ᩈ", "ᩔ")
term = gsub(term, 'Ⓙ', '')
term2 = term
else
error('Parameter aa has undefined value "'..aa..'".')
end
if term ~= term2 then table.insert(output, term2) end
elseif scriptCode == "Beng" then
term = gsub(term, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif scriptCode == "Laoo" then
term = gsub(term, "(.຺?)↶([ເໂ])", "%2%1")
elseif scriptCode == "Sinh" then
-- Assume cluster formation appends the joiner.
term = gsub(term, "[කතන]Ⓙ..[ථදධව]", sinh_flip)
term = gsub(term, 'Ⓙ', '')
end
table.insert(output, term)
end
return output
end
function export.joinSuffixes(scriptCode, stem, pattern, option)
local forms = {}
for i,_ in ipairs(rows) do
forms[2*i-1] = export.joinSuffix(scriptCode, stem, pattern[2 * i - 1],
option)
forms[2*i] = export.joinSuffix(scriptCode, stem, pattern[2 * i],
option)
end
return forms
end
function export.orJoin(script, list, options) -- options is optional!
local output = {};
local scriptCode = script:getCode()
local showtr = options and options.showtr or 'plain'
local sep = ''
if 'Latn' == scriptCode then showtr = 'none' end
for _,term in ipairs(list) do
local item = {sc = script, lang = lang, term = term} -- links.full_link() is at liberty to trash this table.
ti(output, sep)
sep = " <small style=\"color:888\">or</small> "
if showtr == 'none' then
item.tr = '-'
else
if options and options.subst then
-- Legal stuff:
-- The contents of this block were lifted from English Wiktionary Module:usex lines 97 to 101
-- of 3 July 2021, which see for attribution, and then localised.
local substs = mw.text.split(options.subst, ",")
for _, subpair in ipairs(substs) do
local subsplit =
mw.text.split(subpair, find(subpair, "//") and "//" or "/")
term = gsub(term, subsplit[1], subsplit[2])
end
end
local aslat = nil
if (scriptCode == 'Thai' and options and options.impl == 'no' or
scriptCode == 'Laoo') then
m_translit = m_translit or require("Module:pi-translit")
aslat = m_translit.trwo(term, 'pi', scriptCode, options)
elseif term ~= item.term then -- Must complete transliteration
aslat = (lang:transliterate(term, script))
end
if showtr == 'plain' then
item.tr = aslat
elseif showtr == 'link' then
aslat = aslat or (lang:transliterate(term, script))
item.tr = links.full_link({term = aslat, lang = lang})
else
item.tr = '-'
error('Bad value for option showtr.')
end
end
ti(output, links.full_link(item))
end
return table.concat(output)
end
-- convert Latin script inflections to another script
-- C2 is second character of pseudostem. Ignored if NIL.
local function convert_one_set(stem, nstrip, suffixes, sc, impl, c2)
local form, pre
local strip = string.rep("⌫", nstrip)
local option = {impl = impl}
local xlitend = {}
form = export.joinSuffix('Latn', stem, suffixes)
for ia, va in pairs(form) do
local altform = sub(to_script(va..'#', sc, option), 1, -2)
-- Special handling is needed for a preposed vowel.
pre = match(altform, "^[เโເໂ]")
if pre then
xlitend[ia] = strip .. "↶" .. pre .. sub(altform, 3)
-- Quick cheat for Myanmar script variants.
elseif c2 and c2 == sub(altform,2,2) then
xlitend[ia] = sub(strip, 2) .. sub(altform, 3)
-- Back to the normal case.
else
xlitend[ia] = strip .. sub(altform, 2)
end
end
return xlitend
end
local convert_suffixes = function(stem, nstrip, suffixes, sc, impl)
local xlitend = {}
to_script = to_script or require("Module:pi-Latn-translit").tr
local c2
if nstrip > 0 and sc == 'Mymr' then
c2 = sub(to_script(stem, sc, option), 2, 2)
end
-- Seemingly #suffixes doesn't work because the module is loaded!
-- Testing didn't reveal a problem, but avoiding it solved the problem!
-- for k = 1, #suffixes do
if #suffixes ~= 16 then error('#suffixes = '..tostring(#suffixes)) end
for k, _ in ipairs(suffixes) do
xlitend[k] = convert_one_set(stem, nstrip, suffixes[k], sc, impl, c2)
end
return xlitend
end
local liapise = function(retval, liap) -- Change Lao abl/ins plural
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local dob = nil local dobh = nil local sena = nil
if liap == 'b' then
dob = 1
elseif liap == 'bh' then
dobh = 1
elseif liap == 'b.' then
sena = 1
elseif liap == 'bbh' then
dob = 1 dobh = 1
elseif liap == 'bb.' then
dob = 1 sena = 1
elseif liap == 'bhb.' then
dobh = 1 sena = 1
elseif liap == 'none' then
elseif liap == 'all' or liap == 'bbhb.' then
dob = 1 dobh = 1 sena = 1
else
error('Value "'..liap..'" of liap is not understood.')
end
for caseno = 6, 10, 4 do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if sub(form, -2, -1) == 'ຠິ' then
if dob then table.insert(nuforms, sub(form,1,-3)..'ພິ') end
if dobh then table.insert(nuforms, form) end
if sena then table.insert(nuforms, sub(form,1,-3)..'ພ຺ິ') end
else
table.insert(nuforms, form)
end
end
retval[caseno] = nuforms
end
return retval
end
local yselect = function(retval, yval, nvals) -- Change Lao case ending
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local yung = nil local yaa = nil
if yval == 'both' then
yung = 1
yaa = 1
elseif yval == 'ຍ' then
yung = 1
elseif yval == 'ຢ' then
yaa = 1
elseif yval == 'yung' then
yung = 1
elseif yval == 'yaa' then
yaa = 1
else
error('Value "'..yval..'" of argument y is not understood.')
end
for caseno = 1, nvals do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if yung then
local s = gsub(form, '[ຍຢ]', 'ຍ') -- gsub() is a bad actual arg!
table.insert(nuforms, s)
end
if yaa then
local s = gsub(form, '[ຍຢ]', 'ຢ')
table.insert(nuforms, s)
end
end
retval[caseno] = nuforms
end
return retval
end
function export.arrcat_nodup(a1, a2) -- Concatenate two arrays without duplication
-- One of the arrays may have been 'loaded', so cannot use the # operator.
local n1 = 0
local cat = {}
for _, a1v in ipairs(a1) do
n1 = n1 + 1
cat[n1] = a1v
end
for _, a2v in ipairs(a2) do
local met = false
for j = 1, n1 do
if a2v == cat[j] then
met = true
break
end
end
if not met then
n1 = n1 + 1
cat[n1] = a2v
end
end
return cat
end
local arrcat = export.arrcat_nodup
local both_sets = function(scriptCode, ending, g, option)
option.impl= 'yes'
iset = export.getSuffixes(scriptCode, ending, g, option)
option.impl = 'no'
eset = export.getSuffixes(scriptCode, ending, g, option)
retval = {}
-- error('i='..iset[3][1]..' e='..eset[3][1])
for ic = 1, 16 do
retval[ic] = arrcat(iset[ic], eset[ic])
end
-- error('m1='..'<'..tostring(retval[1][1])..'>'..' m2='..'<'..tostring(retval[1][2])..'>')
return retval
end
local function wayToConvert(ending, impl)
local antlen = {yes = 4, no = 3} -- Length by implicitness.
local inlen = {yes = 3, no = 2}
local way = {
a = {pseudoStem = 'ka', ndel = 0},
ar = {pseudoStem = 'kar', ndel = 2},
as = {pseudoStem = 'kas', ndel = 2},
an = {pseudoStem = 'kan', ndel = 2},
ant = {pseudoStem = 'kant', ndel = antlen[impl]},
ent = {pseudoStem = 'kant', ndel = antlen[impl]},
ont = {pseudoStem = 'kant', ndel = antlen[impl]},
mant = {pseudoStem = 'kant', ndel = antlen[impl]},
vant = {pseudoStem = 'kant', ndel = antlen[impl]},
antT = {pseudoStem = 'kant', ndel = 5},
entT = {pseudoStem = 'kant', ndel = 5},
ontT = {pseudoStem = 'kant', ndel = 5},
mantT = {pseudoStem = 'kant', ndel = 5},
vantT = {pseudoStem = 'kant', ndel = 5},
["ā"] = {pseudoStem = 'kā', ndel = 1},
i = {pseudoStem = 'ki', ndel = 1},
["ī"] = {pseudoStem = 'kī', ndel = 1},
["in"]= {pseudoStem = 'kin', ndel = inlen[impl]},
u = {pseudoStem = 'ku', ndel = 1},
["ū"] = {pseudoStem = 'kū', ndel = 1},
}
if impl == 'no' then
way.a = {pseudoStem = 'ka', ndel = 1}
way.ent = {pseudoStem = 'knt', ndel = 2}
way.ont = {pseudoStem = 'knt', ndel = 2}
end
return way[ending]
end
function export.getSuffixes(scriptCode, ending, g, option)
local impl = option and option.impl or 'yes'
if (impl == 'both') then
return both_sets(scriptCode, ending, g, option)
end
local pattern = load("Module:pi-decl/noun/" .. scriptCode)
local applicable = pattern and pattern[ending] and pattern[ending][g]
if applicable then
if impl == 'yes' or ending == 'ah' then
return applicable
end
elseif 'Latn' == scriptCode then
return nil
elseif 'ah' == ending then
ending = 'a'
impl = 'no'
end
pattern = require("Module:pi-decl/noun/Latn") -- Why doesn't load work with testcases?
local tabulated_ending = ending
if 'T' == sub(ending, -1) then
tabulated_ending = sub(ending, 1, -2)
end
applicable = pattern and pattern[tabulated_ending] and
pattern[tabulated_ending][g]
if not applicable then
error('Not even Latin script has ' .. g .. ' -'..tabulated_ending..
' endings.')
return nil -- If you don't like the message above!
end
way = wayToConvert(ending, impl)
if not way then return nil end
return convert_suffixes(way.pseudoStem, way.ndel, applicable,
scriptCode, impl)
end
function export.present(stem, g, forms, number, options) -- options is optional
local gmark, dos, dop
if 'no' == g then
gmark = ''
else
gmark = ' (' .. genders[g] .. ')'
end
if not number or number == 'both'then
dos = 1; dop = 1
elseif number == 's' then
dos = 1; dop = nil;
elseif number == 'p' then
dos = nil; dop = 1;
else
error('Parameter "number" has meaningless value "'..number..'".' )
end
local output = {}
table.insert(output, '<div class="NavFrame" style="min-width:30%"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff)">"' .. stem .. '" සඳහා වරනැඟීම් වගුව' .. gmark..'</div><div class="NavContent">')
table.insert(output, '<table class="inflection-table" style="background:var(--wikt-palette-paleblue,#f8f9fa);text-align:center;width:100%"><tr><th style="background:var(--wikt-palette-cyan,#eaffff)">Case \\ Number</th>')
if dos then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">Singular</th>')
end
if dop then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">Plural</th></tr>')
end
for i,v in ipairs(rows) do
if #forms[2*i-1] > 0 or #forms[2*i] > 0 then
table.insert(output, "<tr><td style=\"background:var(--wikt-palette-cyan,#eaffff)\">" .. v .. "</td>")
if dos then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i - 1], options))
table.insert(output, "</td>")
end
if dop then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i], options))
table.insert(output, "</td>")
end
table.insert(output, "</tr>")
end
end
table.insert(output, "</table></div></div>")
return table.concat(output)
end
local function unwritten() error('Code missing.') end
local function liapise_one_set(set, liap)
local forms = { {}, {}, {}, {}, {}, set,
{}, {}, {}, {}, {},
{}, {}, {}, {}, {} }
local modified = liapise(forms, liap)
return modified[6]
end
local function modify_form_set(stem, ending, name, caseno, forms, at)
local ipalts = at[name]
local way = at[name..'_mod']
to_script = to_script or require("Module:pi-Latn-translit").tr
if ipalts and #ipalts > 0 then
local alts = {}
for j, v in ipairs(ipalts) do
local c1 = string.sub(v,1,1)
local vsc = lang:findBestScript(v):getCode()
if vsc == 'None' then
vsc = at.sc and sc or vsc
end
if '+' == c1 then
local vext
v = string.sub(v,2)
if vsc ~= 'Latn' then
vext = {at.dc and dc(v) or v}
elseif scriptCode ~= 'Latn' then
local impls
if at.impl == 'both' then
impls = {'yes', 'no'}
else
impls = {at.impl}
end
vext = {}
for _, impl in ipairs(impls) do
local cvtway = wayToConvert(ending, impl)
local vset = convert_one_set(cvtway.pseudoStem, cvtway.ndel,
{v}, scriptCode, impl, nil)
vext = arrcat(vext, vset)
end
if scriptCode == 'Laoo' then
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
else
vext = {v}
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
end
local vext = export.joinSuffix(scriptCode, stem, vext, at)
for _, vv in ipairs(vext) do ti(alts, vv) end
elseif vsc == scriptCode then
ti(alts, v)
elseif vsc == 'Latn' then
-- TODO: Sane Myanmar and Lao script support.
local options = {}
local vext = {}
if at.impl and at.impl == 'both' then
options.y = at.y -- Probably ineffective
options.impl = 'yes'
ti(vext, to_script(v, scriptCode, options))
options.impl = 'no'
ti(vext, to_script(v, scriptCode, options))
else
ti(vext, to_script(v, scriptCode, options))
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
for _, vv in ipairs(vext) do ti(alts, vv) end
else
ti(alts, v) -- Go ahead anyway
end
end
if 'after' == way then
forms[caseno] = arrcat(forms[caseno], alts)
elseif 'before' == way then
forms[caseno] = arrcat(alts, forms[caseno])
elseif 'replace' == way then
forms[caseno] = alts;
elseif 'blank' == way then
-- Issue warning about alts?
forms[caseno] = {}
else
error('Bad value for parameter '..name..'_mod')
end
elseif 'blank' == way then
forms[caseno] = {}
end
end
local function modify(stem, ending, forms, args)
local mod_default = 'after'
local params = {
[1] = {alias_of = 'stem'},
[2] = {alias_of = 'ending'},
[3] = {alias_of = 'g'},
stem = {},
ending = {},
g = {required = true},
gender = {alias_of = 'g'},
v = {},
variation = {alias_of = 'v'},
label = {},
number = {},
showtr = {},
subst = {},
sc = {},
aa = {default = 'default'},
liap = {default = 'default'},
impl = {default = 'yes'},
y = {default = 'default'},
nonom = {type = 'boolean'},
noms = {list = true},
noms_mod = {default = mod_default},
nomp = {list = true},
nomp_mod = {default = mod_default},
noacc = {type = 'boolean'},
accs = {list = true},
accs_mod = {default = mod_default},
accp = {list = true},
accp_mod = {default = mod_default},
noins = {type = 'boolean'},
inss = {list = true},
inss_mod = {default = mod_default},
insp = {list = true},
insp_mod = {default = mod_default},
nodat = {type = 'boolean'},
dats = {list = true},
dats_mod = {default = mod_default},
datp = {list = true},
datp_mod = {default = mod_default},
noabl = {type = 'boolean'},
abls = {list = true},
abls_mod = {default = mod_default},
ablp = {list = true},
ablp_mod = {default = mod_default},
nogen = {type = 'boolean'},
gens = {list = true},
gens_mod = {default = mod_default},
genp = {list = true},
genp_mod = {default = mod_default},
noloc = {type = 'boolean'},
locs = {list = true},
locs_mod = {default = mod_default},
locp = {list = true},
locp_mod = {default = mod_default},
novoc = {type = 'boolean'},
vocs = {list = true},
vocs_mod = {default = mod_default},
vocp = {list = true},
vocp_mod = {default = mod_default},
}
local at = m_parameters.process(args, params)
if ending == 'ah' then
at.impl = 'no'
end
for i, v in ipairs(rows) do
local name = string.lower(string.sub(v,1,3))
if at['no'..name] then
forms[2*i] = {}
forms[2*i-1] = {}
else
modify_form_set(stem, ending, name..'s', 2*i-1, forms, at)
modify_form_set(stem, ending, name..'p', 2*i, forms, at)
end
end
return forms;
end
function export.show(frame)
local args = frame:getParent().args
local PAGENAME = mw.title.getCurrentTitle().text
local stem = args[1] or args["stem"] or PAGENAME
currentScript = lang:findBestScript(stem)
scriptCode = currentScript:getCode()
if scriptCode == "None" and args["sc"] then
scriptCode = args["sc"]
currentScript = require("Module:scripts").getByCode(scriptCode, "No such script as "..scriptCode)
end
local g = args[3] or args["g"] or args["gender"] -- for each gender only
local variation = args["v"] or args["variation"] -- for some scripts
if not g then
error("A gender is required to display proper declensions.")
end
local lookup_g = g
if 'no' == lookup_g then lookup_g = 'm' end -- Arbitrary!
local option = {impl = args["impl"] or 'yes'}
local xlit_options = {}
xlit_options.impl = option.impl
xlit_options.showtr = args.showtr
local ending = args[2] or args["ending"] or export.detectEnding(stem, option)
if ending == 'ah' then xlit_options.impl = 'no' end
local selectedPattern =
export.getSuffixes(scriptCode, ending, lookup_g, option)
if args["liap"] and (scriptCode == 'Laoo') then
selectedPattern = liapise(selectedPattern, args["liap"])
end
if args.y and (scriptCode == 'Laoo') then
selectedPattern = yselect(selectedPattern, args.y, 16)
xlit_options.y = args.y
end
option.aa = args["aa"] -- Reusable!
local forms = export.joinSuffixes(scriptCode, stem, selectedPattern, option)
modify(stem, ending, forms, args)
for ic = 1, 16 do forms[ic] = arrcat({}, forms[ic]) end -- Remove duplicates.
xlit_options.subst = args["subst"]
-- for name, _ in pairs(_G) do mw.addWarning('Global '..name) end
return export.present(args["label"] or stem, g, forms, args["number"], xlit_options)
end
return export
tgapzlv6xursvtosouoxl8v45be6nuw
196070
196069
2024-12-04T14:01:24Z
Lee
19
[[මනුස්ස]] ප්රවේශයේ පරිවර්තන කටයුතු
196070
Scribunto
text/plain
local export = {}
-- require("Module:log globals") -- Examine Lua logs at end of preview for results.
local links = require("Module:links")
local lang = require("Module:languages").getByCode("pi")
local m_parameters = require("Module:parameters")
local m_str_utils = require("Module:string utilities")
local m_translit
local to_script
local find = m_str_utils.find
local gsub = m_str_utils.gsub
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char -- For readability.
local load = mw.loadData
local ti = table.insert
local currentScript
local scriptCode
local genders = {
["m"] = "පුරුෂ ලිංග", ["f"] = "feminine", ["n"] = "neuter",
}
local rows = {
"Nominative (first)", "Accusative (second)", "Instrumental (third)", "Dative (fourth)",
"Ablative (fifth)", "Genitive (sixth)", "Locative (seventh)", "Vocative (calling)",
}
local endings = {
["one"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["a"] = {},
["ā"] = { "า", "ा", "आ", "া", "আ", "ါ", "ာ", " ႃ", "ᩣ", "ᩤ", "າ", "ា", u(0x17A4),
"ා", "ආ", "𑀸", "𑀆", "𑄂" },
["i"] = { "ิ", "ि", "इ", "ি", "ই", "ိ", "ဣ", "ᩥ", "ᩍ", "ິ", "ិ", "ឥ",
"ි", "ඉ", "𑀺", "𑀇", "𑄨" },
["ī"] = { "ี", "ी", "ई", "ী", "ঈ", "ီ", "ဳ", "ဤ", "ᩦ", "ᩎ", "ີ", "ី", "ឦ",
"ී", "ඊ", "𑀻", "𑀈", "𑄩" },
["u"] = { "ุ", "ु", "उ", "ু", "উ", "ု", "ဥ", "ᩩ", "ᩏ", "ຸ", "ុ", "ឧ",
"ු", "උ", "𑀼", "𑀉", "𑄪" },
["ū"] = { "ู", "ू", "ऊ", "ূ", "ঊ", "ူ", "ဦ", "ᩪ", "ᩐ", "ູ", "ូ", "ឨ", "ឩ",
"ූ", "ඌ", "𑀽", "𑀊", "𑄫" },
["ah"] = { "ะ", "ະ"},
},
["two"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["ar"] = { "รฺ", "ัร", "र्", "র্", "ရ်", "ᩁ᩺", "ᩁ᩼", "ຣ໌", "ຣ຺", "ັຣ", "រ៑",
"ර්", "𑀭𑁆", "𑄢𑄴"},
["as"] = { "สฺ", "ัส", "स्", "স্", "သ်", "ᩈ᩺", "ᩈ᩼", "ສ໌", "ສ຺", "ັສ", "ស៑",
"ස්", "𑀲𑁆", "𑄥𑄴" },
["an"] = { "นฺ", "ัน", "न्", "ন্", "န်", "ᨶ᩺", "ᨶ᩼", "ນ໌", "ນ຺", "ັນ", "ន៑",
"න්", "𑀦𑁆", "𑄚𑄴"},
ent = { "นต", "ນຕ"},
["in"] = { "ิน", "ິນ"},
},
three = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "ันต" , "ັນຕ"},
ent = {},
ont = {},
["in"] = { "ินฺ", "िन्", "িন্", "ိန်", "ᩥᨶ᩺", "ິນ຺", "ិន៑",
"ින්", "𑀺𑀦𑁆", "𑄨𑄚𑄴" },
},
four = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "นฺตฺ", "न्त्", "ন্ত্", "န္တ်", "ᨶ᩠ᨲ᩺", "ᨶ᩠ᨲ᩼", "ນ຺ຕ໌", "ນ຺ຕ຺", "ន្ត៑",
"න්ත්", "𑀦𑁆𑀢𑁆", "𑄚𑄴𑄖𑄴" },
vant = { "วันต", "ວັນຕ" },
mant = { "มันต", "ມັນຕ" },
},
five = { -- 'ent' and 'ont' are discontiguous for Thai and Lao. Assume NFC (as above).
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
antT = { "න්ත්" },
vant = { "วนฺตฺ", "वन्त्", "ৱন্ত্","ৰন্ত্", "ွန္တ်", "ဝန္တ်", "ᩅᨶ᩠ᨲ᩺", "ᩅᨶ᩠ᨲ᩼", "ວນ຺ຕ຺", "ວນ຺ຕ໌", "វន្ត៑",
"වන්ත්", "𑀯𑀦𑁆𑀢𑁆", "𑅇𑄚𑄴𑄖𑄴" },
mant = { "มนฺตฺ", "मन्त्", "মন্ত্", "မန္တ်", "ᨾᨶ᩠ᨲ᩺", "ᨾᨶ᩠ᨲ᩼", "ມນ຺ຕ຺", "ມນ຺ຕ໌", "មន្ត៑",
"ᩜᨶ᩠ᨲ᩺", "ᩜᨶ᩠ᨲ᩼",
"මන්ත්", "𑀫𑀦𑁆𑀢𑁆", "𑄟𑄚𑄴𑄖𑄴"},
ent = { "ेन्त्", "েন্ত্", "ေန္တ်", "ᩮᨶ᩠ᨲ᩺", "ᩮᨶ᩠ᨲ᩼", "េន្ត៑",
"एन्त्", "এন্ত্", "ဧန္တ်", "ᩑᨶ᩠ᨲ᩺", "ᩑᨶ᩠ᨲ᩼", "ឯន្ត៑",
"ෙන්ත්", "𑁂𑀦𑁆𑀢𑁆", "𑄬𑄚𑄴𑄖𑄴" ,
"එන්ත්", "𑀏𑀦𑁆𑀢𑁆" },
ont = { "ोन्त्", "োন্ত্", "ာန္တ်", "ါန္တ်", "ᩣᨶ᩠ᨲ᩺", "ᩣᨶ᩠ᨲ᩼", "ោន្ត៑",
"ᩤᨶ᩠ᨲ᩺", "ᩤᨶ᩠ᨲ᩼",
"ओन्त्", "ওন্ত্", "ဩန္တ်", "ᩰᨶ᩠ᨲ᩺", "ᩰᨶ᩠ᨲ᩼", "ឲន្ត៑",
"ᩒᨶ᩠ᨲ᩺", "ᩒᨶ᩠ᨲ᩼",
"ොන්ත්", "𑁄𑀦𑁆𑀢𑁆", "𑄮𑄚𑄴𑄖𑄴",
"ඔන්ත්", "𑀑𑀦𑁆𑀢𑁆"},
},
six = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah
vantT = {"වන්ත්" },
mantT = {"මන්ත්" },
entT = {"ෙන්ත්",
"එන්ත්" },
ontT = {"ොන්ත්",
"ඔන්ත්" },
},
}
function export.detectEnding(stem, options)
-- Correct checking order is last 6, last 5, last 4, last 3, last 2, last 1, but we
-- Can do slightly better by knowing the data.
local oneLetter = sub(stem, -1)
for key, arr in pairs(endings.one) do
if oneLetter == key then
return key
end
for _, val in ipairs(arr) do
if oneLetter == val then
return key
end
end
end
-- Check Latin script first
local fourLetters = sub(stem, -4)
if 'mant' == fourLetters or 'vant' == fourLetters then
return fourLetters
end
local wordEnd = sub(stem, -6)
for key, arr in pairs(endings.six) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
wordEnd = sub(stem, -5)
for key, arr in pairs(endings.five) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
for key, arr in pairs(endings.four) do
if fourLetters == key then return key end
for _, val in ipairs(arr) do
if fourLetters == val then
-- Scripts with visually ordered preposed vowels have not been checked thoroughly
if key == 'ant' and
(oneLetter == u(0x0E3A) or oneLetter == u(0xECC) or
oneLetter == u(0x0EBA)) then
local pm6 = sub(stem, -6, -6)
if match(pm6, '[เโເໂ]') then -- 1 char onset
return 'ent' -- 'ent' for 'ont' matters not.
elseif match(pm6, '['..u(0x0E3A)..u(0x0EBA)..']')
and match(sub(stem, -8, -8), '[เโເໂ]') then -- 2 char onset
return 'ent' -- 'ent' for 'ont' matters not.
else
return key
end
else
return key
end
end
end
end
local threeLetters = sub(stem, -3)
for key, arr in pairs(endings.three) do
if threeLetters == key then
return key
end
for _, val in ipairs(arr) do
if threeLetters == val then return key; end
end
end
local impl = options and options.impl or 'yes' -- Fudge to pass old tests.
wordEnd = sub(stem, -2)
for key, arr in pairs(endings.two) do
if wordEnd == key then
return key
end
for _, val in ipairs(arr) do
if wordEnd == val then
if key == 'ent' then
local pm3 = sub(stem, -3, -3)
if match(pm3, '['..u(0x0e31)..u(0xeb1)..']') then
-- Recognise below
return 'ant'
elseif match(sub(stem, -4, -3), '[เโເໂ][ก-ฮກ-ຮ]') then -- 1 char onset
return 'ent'
elseif match(sub(stem, -5, -3), '[เโເໂ][ก-ฮກ-ຮ][ก-ฮກ-ຮ]') then -- 2 char onset
return 'ent'
end
elseif wordEnd == "ิน" or wordEnd == "ິນ" then
if impl == 'yes' then
return 'a'
elseif impl == 'both' then
error("Does "..stem.." end in -in or -ina?")
else
return key
end
else
return key
end
end
end
end
return "a"
end
-- Selectively converts touching to conjoining.
local sinh_flip = {["කⒿ්ව"]="ක්ව",
["තⒿ්ථ"]="ත්ථ", ["තⒿ්ව"]="ත්ව",
["නⒿ්ථ"]="න්ථ", ["නⒿ්ද"]="න්ද", ["නⒿ්ධ"]="න්ධ", ["නⒿ්ව"]="න්ව",
}
-- Argument option is optional.
function export.joinSuffix(scriptCode, stem, suffixes, option)
if stem == nil then
errmes = {}
table.insert(errmes, 'joinSuffix('..scriptCode)
table.insert(errmes, tostring(stem))
table.insert(errmes, tostring(suffixes))
table.insert(errmes, tostring(option)..')')
error(table.concat(errmes, ','))
end
local output = {}
local term
local aa = option and option.aa or "default"
local join, term2
if scriptCode == 'Lana' or scriptCode == 'Mymr' or scriptCode == 'Sinh' then
join = 'Ⓙ'
else
join = ""
end
for _,suffix in ipairs(suffixes) do
if match(suffix, "^⌫⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -6) .. join .. sub(suffix, 6, -1)
elseif match(suffix, "^⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -5) .. join .. sub(suffix, 5, -1)
elseif match(suffix, "^⌫⌫⌫") then --backspace
term = sub(stem, 1, -4) .. join .. sub(suffix, 4, -1)
elseif match(suffix, "^⌫⌫") then --backspace
term = sub(stem, 1, -3) .. join .. sub(suffix, 3, -1)
elseif match(suffix, "^⌫") then --backspace
term = sub(stem, 1, -2) .. join .. sub(suffix, 2, -1)
else
term = stem .. join .. suffix
end
--note: Sinh conjuncts are already ready.
if scriptCode == "Thai" then
term = gsub(term, "(.)↶([เโ])", "%2%1") --swap
elseif scriptCode == "Mymr" then
-- term = gsub(term, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
term = gsub(term, "(င်္)([ခဂငဒပဝ])(ေ?)Ⓙာ", "%1%2%3ါ") -- redundant!
-- term = gsub(term, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "Ⓙ္[ယရ]", { ["Ⓙ္ယ"] = "ျ", ["Ⓙ္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "^([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2ါ")
term = gsub(term, "([^္])([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([^္])Ⓙ([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])(္[က-အဿ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])Ⓙ(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
-- term = gsub(term, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
-- term = gsub(term, "ဉ္ဉ", "ည")
-- term = gsub(term, "သ္သ", "ဿ")
term = gsub(term, 'Ⓙ', '')
elseif scriptCode == "Lana" then
if aa == "both" then
term2 = gsub(term, 'Ⓙ', '')
end
if aa == "tall" or aa == "both" then
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "(ᨻᩛ)Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, 'Ⓙ', '')
if aa == "tall" then
term2 = term
end
elseif aa == "round" then
term = gsub(term, 'Ⓙ', '')
term2 = term
elseif aa == "default" then
-- term = gsub(term, "ᨦ᩠", "ᩘ")
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
-- term = gsub(term, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
-- term = gsub(term, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
-- term = gsub(term, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
-- term = gsub(term, "ᩈ᩠ᩈ", "ᩔ")
term = gsub(term, 'Ⓙ', '')
term2 = term
else
error('Parameter aa has undefined value "'..aa..'".')
end
if term ~= term2 then table.insert(output, term2) end
elseif scriptCode == "Beng" then
term = gsub(term, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif scriptCode == "Laoo" then
term = gsub(term, "(.຺?)↶([ເໂ])", "%2%1")
elseif scriptCode == "Sinh" then
-- Assume cluster formation appends the joiner.
term = gsub(term, "[කතන]Ⓙ..[ථදධව]", sinh_flip)
term = gsub(term, 'Ⓙ', '')
end
table.insert(output, term)
end
return output
end
function export.joinSuffixes(scriptCode, stem, pattern, option)
local forms = {}
for i,_ in ipairs(rows) do
forms[2*i-1] = export.joinSuffix(scriptCode, stem, pattern[2 * i - 1],
option)
forms[2*i] = export.joinSuffix(scriptCode, stem, pattern[2 * i],
option)
end
return forms
end
function export.orJoin(script, list, options) -- options is optional!
local output = {};
local scriptCode = script:getCode()
local showtr = options and options.showtr or 'plain'
local sep = ''
if 'Latn' == scriptCode then showtr = 'none' end
for _,term in ipairs(list) do
local item = {sc = script, lang = lang, term = term} -- links.full_link() is at liberty to trash this table.
ti(output, sep)
sep = " <small style=\"color:888\">or</small> "
if showtr == 'none' then
item.tr = '-'
else
if options and options.subst then
-- Legal stuff:
-- The contents of this block were lifted from English Wiktionary Module:usex lines 97 to 101
-- of 3 July 2021, which see for attribution, and then localised.
local substs = mw.text.split(options.subst, ",")
for _, subpair in ipairs(substs) do
local subsplit =
mw.text.split(subpair, find(subpair, "//") and "//" or "/")
term = gsub(term, subsplit[1], subsplit[2])
end
end
local aslat = nil
if (scriptCode == 'Thai' and options and options.impl == 'no' or
scriptCode == 'Laoo') then
m_translit = m_translit or require("Module:pi-translit")
aslat = m_translit.trwo(term, 'pi', scriptCode, options)
elseif term ~= item.term then -- Must complete transliteration
aslat = (lang:transliterate(term, script))
end
if showtr == 'plain' then
item.tr = aslat
elseif showtr == 'link' then
aslat = aslat or (lang:transliterate(term, script))
item.tr = links.full_link({term = aslat, lang = lang})
else
item.tr = '-'
error('Bad value for option showtr.')
end
end
ti(output, links.full_link(item))
end
return table.concat(output)
end
-- convert Latin script inflections to another script
-- C2 is second character of pseudostem. Ignored if NIL.
local function convert_one_set(stem, nstrip, suffixes, sc, impl, c2)
local form, pre
local strip = string.rep("⌫", nstrip)
local option = {impl = impl}
local xlitend = {}
form = export.joinSuffix('Latn', stem, suffixes)
for ia, va in pairs(form) do
local altform = sub(to_script(va..'#', sc, option), 1, -2)
-- Special handling is needed for a preposed vowel.
pre = match(altform, "^[เโເໂ]")
if pre then
xlitend[ia] = strip .. "↶" .. pre .. sub(altform, 3)
-- Quick cheat for Myanmar script variants.
elseif c2 and c2 == sub(altform,2,2) then
xlitend[ia] = sub(strip, 2) .. sub(altform, 3)
-- Back to the normal case.
else
xlitend[ia] = strip .. sub(altform, 2)
end
end
return xlitend
end
local convert_suffixes = function(stem, nstrip, suffixes, sc, impl)
local xlitend = {}
to_script = to_script or require("Module:pi-Latn-translit").tr
local c2
if nstrip > 0 and sc == 'Mymr' then
c2 = sub(to_script(stem, sc, option), 2, 2)
end
-- Seemingly #suffixes doesn't work because the module is loaded!
-- Testing didn't reveal a problem, but avoiding it solved the problem!
-- for k = 1, #suffixes do
if #suffixes ~= 16 then error('#suffixes = '..tostring(#suffixes)) end
for k, _ in ipairs(suffixes) do
xlitend[k] = convert_one_set(stem, nstrip, suffixes[k], sc, impl, c2)
end
return xlitend
end
local liapise = function(retval, liap) -- Change Lao abl/ins plural
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local dob = nil local dobh = nil local sena = nil
if liap == 'b' then
dob = 1
elseif liap == 'bh' then
dobh = 1
elseif liap == 'b.' then
sena = 1
elseif liap == 'bbh' then
dob = 1 dobh = 1
elseif liap == 'bb.' then
dob = 1 sena = 1
elseif liap == 'bhb.' then
dobh = 1 sena = 1
elseif liap == 'none' then
elseif liap == 'all' or liap == 'bbhb.' then
dob = 1 dobh = 1 sena = 1
else
error('Value "'..liap..'" of liap is not understood.')
end
for caseno = 6, 10, 4 do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if sub(form, -2, -1) == 'ຠິ' then
if dob then table.insert(nuforms, sub(form,1,-3)..'ພິ') end
if dobh then table.insert(nuforms, form) end
if sena then table.insert(nuforms, sub(form,1,-3)..'ພ຺ິ') end
else
table.insert(nuforms, form)
end
end
retval[caseno] = nuforms
end
return retval
end
local yselect = function(retval, yval, nvals) -- Change Lao case ending
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local yung = nil local yaa = nil
if yval == 'both' then
yung = 1
yaa = 1
elseif yval == 'ຍ' then
yung = 1
elseif yval == 'ຢ' then
yaa = 1
elseif yval == 'yung' then
yung = 1
elseif yval == 'yaa' then
yaa = 1
else
error('Value "'..yval..'" of argument y is not understood.')
end
for caseno = 1, nvals do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if yung then
local s = gsub(form, '[ຍຢ]', 'ຍ') -- gsub() is a bad actual arg!
table.insert(nuforms, s)
end
if yaa then
local s = gsub(form, '[ຍຢ]', 'ຢ')
table.insert(nuforms, s)
end
end
retval[caseno] = nuforms
end
return retval
end
function export.arrcat_nodup(a1, a2) -- Concatenate two arrays without duplication
-- One of the arrays may have been 'loaded', so cannot use the # operator.
local n1 = 0
local cat = {}
for _, a1v in ipairs(a1) do
n1 = n1 + 1
cat[n1] = a1v
end
for _, a2v in ipairs(a2) do
local met = false
for j = 1, n1 do
if a2v == cat[j] then
met = true
break
end
end
if not met then
n1 = n1 + 1
cat[n1] = a2v
end
end
return cat
end
local arrcat = export.arrcat_nodup
local both_sets = function(scriptCode, ending, g, option)
option.impl= 'yes'
iset = export.getSuffixes(scriptCode, ending, g, option)
option.impl = 'no'
eset = export.getSuffixes(scriptCode, ending, g, option)
retval = {}
-- error('i='..iset[3][1]..' e='..eset[3][1])
for ic = 1, 16 do
retval[ic] = arrcat(iset[ic], eset[ic])
end
-- error('m1='..'<'..tostring(retval[1][1])..'>'..' m2='..'<'..tostring(retval[1][2])..'>')
return retval
end
local function wayToConvert(ending, impl)
local antlen = {yes = 4, no = 3} -- Length by implicitness.
local inlen = {yes = 3, no = 2}
local way = {
a = {pseudoStem = 'ka', ndel = 0},
ar = {pseudoStem = 'kar', ndel = 2},
as = {pseudoStem = 'kas', ndel = 2},
an = {pseudoStem = 'kan', ndel = 2},
ant = {pseudoStem = 'kant', ndel = antlen[impl]},
ent = {pseudoStem = 'kant', ndel = antlen[impl]},
ont = {pseudoStem = 'kant', ndel = antlen[impl]},
mant = {pseudoStem = 'kant', ndel = antlen[impl]},
vant = {pseudoStem = 'kant', ndel = antlen[impl]},
antT = {pseudoStem = 'kant', ndel = 5},
entT = {pseudoStem = 'kant', ndel = 5},
ontT = {pseudoStem = 'kant', ndel = 5},
mantT = {pseudoStem = 'kant', ndel = 5},
vantT = {pseudoStem = 'kant', ndel = 5},
["ā"] = {pseudoStem = 'kā', ndel = 1},
i = {pseudoStem = 'ki', ndel = 1},
["ī"] = {pseudoStem = 'kī', ndel = 1},
["in"]= {pseudoStem = 'kin', ndel = inlen[impl]},
u = {pseudoStem = 'ku', ndel = 1},
["ū"] = {pseudoStem = 'kū', ndel = 1},
}
if impl == 'no' then
way.a = {pseudoStem = 'ka', ndel = 1}
way.ent = {pseudoStem = 'knt', ndel = 2}
way.ont = {pseudoStem = 'knt', ndel = 2}
end
return way[ending]
end
function export.getSuffixes(scriptCode, ending, g, option)
local impl = option and option.impl or 'yes'
if (impl == 'both') then
return both_sets(scriptCode, ending, g, option)
end
local pattern = load("Module:pi-decl/noun/" .. scriptCode)
local applicable = pattern and pattern[ending] and pattern[ending][g]
if applicable then
if impl == 'yes' or ending == 'ah' then
return applicable
end
elseif 'Latn' == scriptCode then
return nil
elseif 'ah' == ending then
ending = 'a'
impl = 'no'
end
pattern = require("Module:pi-decl/noun/Latn") -- Why doesn't load work with testcases?
local tabulated_ending = ending
if 'T' == sub(ending, -1) then
tabulated_ending = sub(ending, 1, -2)
end
applicable = pattern and pattern[tabulated_ending] and
pattern[tabulated_ending][g]
if not applicable then
error('Not even Latin script has ' .. g .. ' -'..tabulated_ending..
' endings.')
return nil -- If you don't like the message above!
end
way = wayToConvert(ending, impl)
if not way then return nil end
return convert_suffixes(way.pseudoStem, way.ndel, applicable,
scriptCode, impl)
end
function export.present(stem, g, forms, number, options) -- options is optional
local gmark, dos, dop
if 'no' == g then
gmark = ''
else
gmark = ' (' .. genders[g] .. ')'
end
if not number or number == 'both'then
dos = 1; dop = 1
elseif number == 's' then
dos = 1; dop = nil;
elseif number == 'p' then
dos = nil; dop = 1;
else
error('Parameter "number" has meaningless value "'..number..'".' )
end
local output = {}
table.insert(output, '<div class="NavFrame" style="min-width:30%"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff)">"' .. stem .. '" සඳහා වරනැඟීම් වගුව' .. gmark..'</div><div class="NavContent">')
table.insert(output, '<table class="inflection-table" style="background:var(--wikt-palette-paleblue,#f8f9fa);text-align:center;width:100%"><tr><th style="background:var(--wikt-palette-cyan,#eaffff)">Case \\ Number</th>')
if dos then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">ඒකවචන</th>')
end
if dop then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">බහුවචන</th></tr>')
end
for i,v in ipairs(rows) do
if #forms[2*i-1] > 0 or #forms[2*i] > 0 then
table.insert(output, "<tr><td style=\"background:var(--wikt-palette-cyan,#eaffff)\">" .. v .. "</td>")
if dos then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i - 1], options))
table.insert(output, "</td>")
end
if dop then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i], options))
table.insert(output, "</td>")
end
table.insert(output, "</tr>")
end
end
table.insert(output, "</table></div></div>")
return table.concat(output)
end
local function unwritten() error('Code missing.') end
local function liapise_one_set(set, liap)
local forms = { {}, {}, {}, {}, {}, set,
{}, {}, {}, {}, {},
{}, {}, {}, {}, {} }
local modified = liapise(forms, liap)
return modified[6]
end
local function modify_form_set(stem, ending, name, caseno, forms, at)
local ipalts = at[name]
local way = at[name..'_mod']
to_script = to_script or require("Module:pi-Latn-translit").tr
if ipalts and #ipalts > 0 then
local alts = {}
for j, v in ipairs(ipalts) do
local c1 = string.sub(v,1,1)
local vsc = lang:findBestScript(v):getCode()
if vsc == 'None' then
vsc = at.sc and sc or vsc
end
if '+' == c1 then
local vext
v = string.sub(v,2)
if vsc ~= 'Latn' then
vext = {at.dc and dc(v) or v}
elseif scriptCode ~= 'Latn' then
local impls
if at.impl == 'both' then
impls = {'yes', 'no'}
else
impls = {at.impl}
end
vext = {}
for _, impl in ipairs(impls) do
local cvtway = wayToConvert(ending, impl)
local vset = convert_one_set(cvtway.pseudoStem, cvtway.ndel,
{v}, scriptCode, impl, nil)
vext = arrcat(vext, vset)
end
if scriptCode == 'Laoo' then
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
else
vext = {v}
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
end
local vext = export.joinSuffix(scriptCode, stem, vext, at)
for _, vv in ipairs(vext) do ti(alts, vv) end
elseif vsc == scriptCode then
ti(alts, v)
elseif vsc == 'Latn' then
-- TODO: Sane Myanmar and Lao script support.
local options = {}
local vext = {}
if at.impl and at.impl == 'both' then
options.y = at.y -- Probably ineffective
options.impl = 'yes'
ti(vext, to_script(v, scriptCode, options))
options.impl = 'no'
ti(vext, to_script(v, scriptCode, options))
else
ti(vext, to_script(v, scriptCode, options))
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
for _, vv in ipairs(vext) do ti(alts, vv) end
else
ti(alts, v) -- Go ahead anyway
end
end
if 'after' == way then
forms[caseno] = arrcat(forms[caseno], alts)
elseif 'before' == way then
forms[caseno] = arrcat(alts, forms[caseno])
elseif 'replace' == way then
forms[caseno] = alts;
elseif 'blank' == way then
-- Issue warning about alts?
forms[caseno] = {}
else
error('Bad value for parameter '..name..'_mod')
end
elseif 'blank' == way then
forms[caseno] = {}
end
end
local function modify(stem, ending, forms, args)
local mod_default = 'after'
local params = {
[1] = {alias_of = 'stem'},
[2] = {alias_of = 'ending'},
[3] = {alias_of = 'g'},
stem = {},
ending = {},
g = {required = true},
gender = {alias_of = 'g'},
v = {},
variation = {alias_of = 'v'},
label = {},
number = {},
showtr = {},
subst = {},
sc = {},
aa = {default = 'default'},
liap = {default = 'default'},
impl = {default = 'yes'},
y = {default = 'default'},
nonom = {type = 'boolean'},
noms = {list = true},
noms_mod = {default = mod_default},
nomp = {list = true},
nomp_mod = {default = mod_default},
noacc = {type = 'boolean'},
accs = {list = true},
accs_mod = {default = mod_default},
accp = {list = true},
accp_mod = {default = mod_default},
noins = {type = 'boolean'},
inss = {list = true},
inss_mod = {default = mod_default},
insp = {list = true},
insp_mod = {default = mod_default},
nodat = {type = 'boolean'},
dats = {list = true},
dats_mod = {default = mod_default},
datp = {list = true},
datp_mod = {default = mod_default},
noabl = {type = 'boolean'},
abls = {list = true},
abls_mod = {default = mod_default},
ablp = {list = true},
ablp_mod = {default = mod_default},
nogen = {type = 'boolean'},
gens = {list = true},
gens_mod = {default = mod_default},
genp = {list = true},
genp_mod = {default = mod_default},
noloc = {type = 'boolean'},
locs = {list = true},
locs_mod = {default = mod_default},
locp = {list = true},
locp_mod = {default = mod_default},
novoc = {type = 'boolean'},
vocs = {list = true},
vocs_mod = {default = mod_default},
vocp = {list = true},
vocp_mod = {default = mod_default},
}
local at = m_parameters.process(args, params)
if ending == 'ah' then
at.impl = 'no'
end
for i, v in ipairs(rows) do
local name = string.lower(string.sub(v,1,3))
if at['no'..name] then
forms[2*i] = {}
forms[2*i-1] = {}
else
modify_form_set(stem, ending, name..'s', 2*i-1, forms, at)
modify_form_set(stem, ending, name..'p', 2*i, forms, at)
end
end
return forms;
end
function export.show(frame)
local args = frame:getParent().args
local PAGENAME = mw.title.getCurrentTitle().text
local stem = args[1] or args["stem"] or PAGENAME
currentScript = lang:findBestScript(stem)
scriptCode = currentScript:getCode()
if scriptCode == "None" and args["sc"] then
scriptCode = args["sc"]
currentScript = require("Module:scripts").getByCode(scriptCode, "No such script as "..scriptCode)
end
local g = args[3] or args["g"] or args["gender"] -- for each gender only
local variation = args["v"] or args["variation"] -- for some scripts
if not g then
error("A gender is required to display proper declensions.")
end
local lookup_g = g
if 'no' == lookup_g then lookup_g = 'm' end -- Arbitrary!
local option = {impl = args["impl"] or 'yes'}
local xlit_options = {}
xlit_options.impl = option.impl
xlit_options.showtr = args.showtr
local ending = args[2] or args["ending"] or export.detectEnding(stem, option)
if ending == 'ah' then xlit_options.impl = 'no' end
local selectedPattern =
export.getSuffixes(scriptCode, ending, lookup_g, option)
if args["liap"] and (scriptCode == 'Laoo') then
selectedPattern = liapise(selectedPattern, args["liap"])
end
if args.y and (scriptCode == 'Laoo') then
selectedPattern = yselect(selectedPattern, args.y, 16)
xlit_options.y = args.y
end
option.aa = args["aa"] -- Reusable!
local forms = export.joinSuffixes(scriptCode, stem, selectedPattern, option)
modify(stem, ending, forms, args)
for ic = 1, 16 do forms[ic] = arrcat({}, forms[ic]) end -- Remove duplicates.
xlit_options.subst = args["subst"]
-- for name, _ in pairs(_G) do mw.addWarning('Global '..name) end
return export.present(args["label"] or stem, g, forms, args["number"], xlit_options)
end
return export
jfv9gbytc1pbdzwu06wvasjphybsv72
196077
196070
2024-12-04T15:23:37Z
Lee
19
[[මනුස්ස]] ප්රවේශයේ පරිවර්තන කටයුතු
196077
Scribunto
text/plain
local export = {}
-- require("Module:log globals") -- Examine Lua logs at end of preview for results.
local links = require("Module:links")
local lang = require("Module:languages").getByCode("pi")
local m_parameters = require("Module:parameters")
local m_str_utils = require("Module:string utilities")
local m_translit
local to_script
local find = m_str_utils.find
local gsub = m_str_utils.gsub
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char -- For readability.
local load = mw.loadData
local ti = table.insert
local currentScript
local scriptCode
local genders = {
["m"] = "පුරුෂ ලිංග", ["f"] = "feminine", ["n"] = "neuter",
}
local rows = {
"Nominative (first)", "Accusative (second)", "Instrumental (third)", "Dative (fourth)",
"Ablative (fifth)", "Genitive (sixth)", "Locative (seventh)", "Vocative (calling)",
}
local endings = {
["one"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["a"] = {},
["ā"] = { "า", "ा", "आ", "া", "আ", "ါ", "ာ", " ႃ", "ᩣ", "ᩤ", "າ", "ា", u(0x17A4),
"ා", "ආ", "𑀸", "𑀆", "𑄂" },
["i"] = { "ิ", "ि", "इ", "ি", "ই", "ိ", "ဣ", "ᩥ", "ᩍ", "ິ", "ិ", "ឥ",
"ි", "ඉ", "𑀺", "𑀇", "𑄨" },
["ī"] = { "ี", "ी", "ई", "ী", "ঈ", "ီ", "ဳ", "ဤ", "ᩦ", "ᩎ", "ີ", "ី", "ឦ",
"ී", "ඊ", "𑀻", "𑀈", "𑄩" },
["u"] = { "ุ", "ु", "उ", "ু", "উ", "ု", "ဥ", "ᩩ", "ᩏ", "ຸ", "ុ", "ឧ",
"ු", "උ", "𑀼", "𑀉", "𑄪" },
["ū"] = { "ู", "ू", "ऊ", "ূ", "ঊ", "ူ", "ဦ", "ᩪ", "ᩐ", "ູ", "ូ", "ឨ", "ឩ",
"ූ", "ඌ", "𑀽", "𑀊", "𑄫" },
["ah"] = { "ะ", "ະ"},
},
["two"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["ar"] = { "รฺ", "ัร", "र्", "র্", "ရ်", "ᩁ᩺", "ᩁ᩼", "ຣ໌", "ຣ຺", "ັຣ", "រ៑",
"ර්", "𑀭𑁆", "𑄢𑄴"},
["as"] = { "สฺ", "ัส", "स्", "স্", "သ်", "ᩈ᩺", "ᩈ᩼", "ສ໌", "ສ຺", "ັສ", "ស៑",
"ස්", "𑀲𑁆", "𑄥𑄴" },
["an"] = { "นฺ", "ัน", "न्", "ন্", "န်", "ᨶ᩺", "ᨶ᩼", "ນ໌", "ນ຺", "ັນ", "ន៑",
"න්", "𑀦𑁆", "𑄚𑄴"},
ent = { "นต", "ນຕ"},
["in"] = { "ิน", "ິນ"},
},
three = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "ันต" , "ັນຕ"},
ent = {},
ont = {},
["in"] = { "ินฺ", "िन्", "িন্", "ိန်", "ᩥᨶ᩺", "ິນ຺", "ិន៑",
"ින්", "𑀺𑀦𑁆", "𑄨𑄚𑄴" },
},
four = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "นฺตฺ", "न्त्", "ন্ত্", "န္တ်", "ᨶ᩠ᨲ᩺", "ᨶ᩠ᨲ᩼", "ນ຺ຕ໌", "ນ຺ຕ຺", "ន្ត៑",
"න්ත්", "𑀦𑁆𑀢𑁆", "𑄚𑄴𑄖𑄴" },
vant = { "วันต", "ວັນຕ" },
mant = { "มันต", "ມັນຕ" },
},
five = { -- 'ent' and 'ont' are discontiguous for Thai and Lao. Assume NFC (as above).
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
antT = { "න්ත්" },
vant = { "วนฺตฺ", "वन्त्", "ৱন্ত্","ৰন্ত্", "ွန္တ်", "ဝန္တ်", "ᩅᨶ᩠ᨲ᩺", "ᩅᨶ᩠ᨲ᩼", "ວນ຺ຕ຺", "ວນ຺ຕ໌", "វន្ត៑",
"වන්ත්", "𑀯𑀦𑁆𑀢𑁆", "𑅇𑄚𑄴𑄖𑄴" },
mant = { "มนฺตฺ", "मन्त्", "মন্ত্", "မန္တ်", "ᨾᨶ᩠ᨲ᩺", "ᨾᨶ᩠ᨲ᩼", "ມນ຺ຕ຺", "ມນ຺ຕ໌", "មន្ត៑",
"ᩜᨶ᩠ᨲ᩺", "ᩜᨶ᩠ᨲ᩼",
"මන්ත්", "𑀫𑀦𑁆𑀢𑁆", "𑄟𑄚𑄴𑄖𑄴"},
ent = { "ेन्त्", "েন্ত্", "ေန္တ်", "ᩮᨶ᩠ᨲ᩺", "ᩮᨶ᩠ᨲ᩼", "េន្ត៑",
"एन्त्", "এন্ত্", "ဧန္တ်", "ᩑᨶ᩠ᨲ᩺", "ᩑᨶ᩠ᨲ᩼", "ឯន្ត៑",
"ෙන්ත්", "𑁂𑀦𑁆𑀢𑁆", "𑄬𑄚𑄴𑄖𑄴" ,
"එන්ත්", "𑀏𑀦𑁆𑀢𑁆" },
ont = { "ोन्त्", "োন্ত্", "ာန္တ်", "ါန္တ်", "ᩣᨶ᩠ᨲ᩺", "ᩣᨶ᩠ᨲ᩼", "ោន្ត៑",
"ᩤᨶ᩠ᨲ᩺", "ᩤᨶ᩠ᨲ᩼",
"ओन्त्", "ওন্ত্", "ဩန္တ်", "ᩰᨶ᩠ᨲ᩺", "ᩰᨶ᩠ᨲ᩼", "ឲន្ត៑",
"ᩒᨶ᩠ᨲ᩺", "ᩒᨶ᩠ᨲ᩼",
"ොන්ත්", "𑁄𑀦𑁆𑀢𑁆", "𑄮𑄚𑄴𑄖𑄴",
"ඔන්ත්", "𑀑𑀦𑁆𑀢𑁆"},
},
six = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah
vantT = {"වන්ත්" },
mantT = {"මන්ත්" },
entT = {"ෙන්ත්",
"එන්ත්" },
ontT = {"ොන්ත්",
"ඔන්ත්" },
},
}
function export.detectEnding(stem, options)
-- Correct checking order is last 6, last 5, last 4, last 3, last 2, last 1, but we
-- Can do slightly better by knowing the data.
local oneLetter = sub(stem, -1)
for key, arr in pairs(endings.one) do
if oneLetter == key then
return key
end
for _, val in ipairs(arr) do
if oneLetter == val then
return key
end
end
end
-- Check Latin script first
local fourLetters = sub(stem, -4)
if 'mant' == fourLetters or 'vant' == fourLetters then
return fourLetters
end
local wordEnd = sub(stem, -6)
for key, arr in pairs(endings.six) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
wordEnd = sub(stem, -5)
for key, arr in pairs(endings.five) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
for key, arr in pairs(endings.four) do
if fourLetters == key then return key end
for _, val in ipairs(arr) do
if fourLetters == val then
-- Scripts with visually ordered preposed vowels have not been checked thoroughly
if key == 'ant' and
(oneLetter == u(0x0E3A) or oneLetter == u(0xECC) or
oneLetter == u(0x0EBA)) then
local pm6 = sub(stem, -6, -6)
if match(pm6, '[เโເໂ]') then -- 1 char onset
return 'ent' -- 'ent' for 'ont' matters not.
elseif match(pm6, '['..u(0x0E3A)..u(0x0EBA)..']')
and match(sub(stem, -8, -8), '[เโເໂ]') then -- 2 char onset
return 'ent' -- 'ent' for 'ont' matters not.
else
return key
end
else
return key
end
end
end
end
local threeLetters = sub(stem, -3)
for key, arr in pairs(endings.three) do
if threeLetters == key then
return key
end
for _, val in ipairs(arr) do
if threeLetters == val then return key; end
end
end
local impl = options and options.impl or 'yes' -- Fudge to pass old tests.
wordEnd = sub(stem, -2)
for key, arr in pairs(endings.two) do
if wordEnd == key then
return key
end
for _, val in ipairs(arr) do
if wordEnd == val then
if key == 'ent' then
local pm3 = sub(stem, -3, -3)
if match(pm3, '['..u(0x0e31)..u(0xeb1)..']') then
-- Recognise below
return 'ant'
elseif match(sub(stem, -4, -3), '[เโເໂ][ก-ฮກ-ຮ]') then -- 1 char onset
return 'ent'
elseif match(sub(stem, -5, -3), '[เโເໂ][ก-ฮກ-ຮ][ก-ฮກ-ຮ]') then -- 2 char onset
return 'ent'
end
elseif wordEnd == "ิน" or wordEnd == "ິນ" then
if impl == 'yes' then
return 'a'
elseif impl == 'both' then
error("Does "..stem.." end in -in or -ina?")
else
return key
end
else
return key
end
end
end
end
return "a"
end
-- Selectively converts touching to conjoining.
local sinh_flip = {["කⒿ්ව"]="ක්ව",
["තⒿ්ථ"]="ත්ථ", ["තⒿ්ව"]="ත්ව",
["නⒿ්ථ"]="න්ථ", ["නⒿ්ද"]="න්ද", ["නⒿ්ධ"]="න්ධ", ["නⒿ්ව"]="න්ව",
}
-- Argument option is optional.
function export.joinSuffix(scriptCode, stem, suffixes, option)
if stem == nil then
errmes = {}
table.insert(errmes, 'joinSuffix('..scriptCode)
table.insert(errmes, tostring(stem))
table.insert(errmes, tostring(suffixes))
table.insert(errmes, tostring(option)..')')
error(table.concat(errmes, ','))
end
local output = {}
local term
local aa = option and option.aa or "default"
local join, term2
if scriptCode == 'Lana' or scriptCode == 'Mymr' or scriptCode == 'Sinh' then
join = 'Ⓙ'
else
join = ""
end
for _,suffix in ipairs(suffixes) do
if match(suffix, "^⌫⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -6) .. join .. sub(suffix, 6, -1)
elseif match(suffix, "^⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -5) .. join .. sub(suffix, 5, -1)
elseif match(suffix, "^⌫⌫⌫") then --backspace
term = sub(stem, 1, -4) .. join .. sub(suffix, 4, -1)
elseif match(suffix, "^⌫⌫") then --backspace
term = sub(stem, 1, -3) .. join .. sub(suffix, 3, -1)
elseif match(suffix, "^⌫") then --backspace
term = sub(stem, 1, -2) .. join .. sub(suffix, 2, -1)
else
term = stem .. join .. suffix
end
--note: Sinh conjuncts are already ready.
if scriptCode == "Thai" then
term = gsub(term, "(.)↶([เโ])", "%2%1") --swap
elseif scriptCode == "Mymr" then
-- term = gsub(term, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
term = gsub(term, "(င်္)([ခဂငဒပဝ])(ေ?)Ⓙာ", "%1%2%3ါ") -- redundant!
-- term = gsub(term, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "Ⓙ္[ယရ]", { ["Ⓙ္ယ"] = "ျ", ["Ⓙ္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "^([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2ါ")
term = gsub(term, "([^္])([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([^္])Ⓙ([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])(္[က-အဿ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])Ⓙ(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
-- term = gsub(term, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
-- term = gsub(term, "ဉ္ဉ", "ည")
-- term = gsub(term, "သ္သ", "ဿ")
term = gsub(term, 'Ⓙ', '')
elseif scriptCode == "Lana" then
if aa == "both" then
term2 = gsub(term, 'Ⓙ', '')
end
if aa == "tall" or aa == "both" then
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "(ᨻᩛ)Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, 'Ⓙ', '')
if aa == "tall" then
term2 = term
end
elseif aa == "round" then
term = gsub(term, 'Ⓙ', '')
term2 = term
elseif aa == "default" then
-- term = gsub(term, "ᨦ᩠", "ᩘ")
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
-- term = gsub(term, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
-- term = gsub(term, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
-- term = gsub(term, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
-- term = gsub(term, "ᩈ᩠ᩈ", "ᩔ")
term = gsub(term, 'Ⓙ', '')
term2 = term
else
error('Parameter aa has undefined value "'..aa..'".')
end
if term ~= term2 then table.insert(output, term2) end
elseif scriptCode == "Beng" then
term = gsub(term, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif scriptCode == "Laoo" then
term = gsub(term, "(.຺?)↶([ເໂ])", "%2%1")
elseif scriptCode == "Sinh" then
-- Assume cluster formation appends the joiner.
term = gsub(term, "[කතන]Ⓙ..[ථදධව]", sinh_flip)
term = gsub(term, 'Ⓙ', '')
end
table.insert(output, term)
end
return output
end
function export.joinSuffixes(scriptCode, stem, pattern, option)
local forms = {}
for i,_ in ipairs(rows) do
forms[2*i-1] = export.joinSuffix(scriptCode, stem, pattern[2 * i - 1],
option)
forms[2*i] = export.joinSuffix(scriptCode, stem, pattern[2 * i],
option)
end
return forms
end
function export.orJoin(script, list, options) -- options is optional!
local output = {};
local scriptCode = script:getCode()
local showtr = options and options.showtr or 'plain'
local sep = ''
if 'Latn' == scriptCode then showtr = 'none' end
for _,term in ipairs(list) do
local item = {sc = script, lang = lang, term = term} -- links.full_link() is at liberty to trash this table.
ti(output, sep)
sep = " <small style=\"color:888\">or</small> "
if showtr == 'none' then
item.tr = '-'
else
if options and options.subst then
-- Legal stuff:
-- The contents of this block were lifted from English Wiktionary Module:usex lines 97 to 101
-- of 3 July 2021, which see for attribution, and then localised.
local substs = mw.text.split(options.subst, ",")
for _, subpair in ipairs(substs) do
local subsplit =
mw.text.split(subpair, find(subpair, "//") and "//" or "/")
term = gsub(term, subsplit[1], subsplit[2])
end
end
local aslat = nil
if (scriptCode == 'Thai' and options and options.impl == 'no' or
scriptCode == 'Laoo') then
m_translit = m_translit or require("Module:pi-translit")
aslat = m_translit.trwo(term, 'pi', scriptCode, options)
elseif term ~= item.term then -- Must complete transliteration
aslat = (lang:transliterate(term, script))
end
if showtr == 'plain' then
item.tr = aslat
elseif showtr == 'link' then
aslat = aslat or (lang:transliterate(term, script))
item.tr = links.full_link({term = aslat, lang = lang})
else
item.tr = '-'
error('Bad value for option showtr.')
end
end
ti(output, links.full_link(item))
end
return table.concat(output)
end
-- convert Latin script inflections to another script
-- C2 is second character of pseudostem. Ignored if NIL.
local function convert_one_set(stem, nstrip, suffixes, sc, impl, c2)
local form, pre
local strip = string.rep("⌫", nstrip)
local option = {impl = impl}
local xlitend = {}
form = export.joinSuffix('Latn', stem, suffixes)
for ia, va in pairs(form) do
local altform = sub(to_script(va..'#', sc, option), 1, -2)
-- Special handling is needed for a preposed vowel.
pre = match(altform, "^[เโເໂ]")
if pre then
xlitend[ia] = strip .. "↶" .. pre .. sub(altform, 3)
-- Quick cheat for Myanmar script variants.
elseif c2 and c2 == sub(altform,2,2) then
xlitend[ia] = sub(strip, 2) .. sub(altform, 3)
-- Back to the normal case.
else
xlitend[ia] = strip .. sub(altform, 2)
end
end
return xlitend
end
local convert_suffixes = function(stem, nstrip, suffixes, sc, impl)
local xlitend = {}
to_script = to_script or require("Module:pi-Latn-translit").tr
local c2
if nstrip > 0 and sc == 'Mymr' then
c2 = sub(to_script(stem, sc, option), 2, 2)
end
-- Seemingly #suffixes doesn't work because the module is loaded!
-- Testing didn't reveal a problem, but avoiding it solved the problem!
-- for k = 1, #suffixes do
if #suffixes ~= 16 then error('#suffixes = '..tostring(#suffixes)) end
for k, _ in ipairs(suffixes) do
xlitend[k] = convert_one_set(stem, nstrip, suffixes[k], sc, impl, c2)
end
return xlitend
end
local liapise = function(retval, liap) -- Change Lao abl/ins plural
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local dob = nil local dobh = nil local sena = nil
if liap == 'b' then
dob = 1
elseif liap == 'bh' then
dobh = 1
elseif liap == 'b.' then
sena = 1
elseif liap == 'bbh' then
dob = 1 dobh = 1
elseif liap == 'bb.' then
dob = 1 sena = 1
elseif liap == 'bhb.' then
dobh = 1 sena = 1
elseif liap == 'none' then
elseif liap == 'all' or liap == 'bbhb.' then
dob = 1 dobh = 1 sena = 1
else
error('Value "'..liap..'" of liap is not understood.')
end
for caseno = 6, 10, 4 do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if sub(form, -2, -1) == 'ຠິ' then
if dob then table.insert(nuforms, sub(form,1,-3)..'ພິ') end
if dobh then table.insert(nuforms, form) end
if sena then table.insert(nuforms, sub(form,1,-3)..'ພ຺ິ') end
else
table.insert(nuforms, form)
end
end
retval[caseno] = nuforms
end
return retval
end
local yselect = function(retval, yval, nvals) -- Change Lao case ending
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local yung = nil local yaa = nil
if yval == 'both' then
yung = 1
yaa = 1
elseif yval == 'ຍ' then
yung = 1
elseif yval == 'ຢ' then
yaa = 1
elseif yval == 'yung' then
yung = 1
elseif yval == 'yaa' then
yaa = 1
else
error('Value "'..yval..'" of argument y is not understood.')
end
for caseno = 1, nvals do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if yung then
local s = gsub(form, '[ຍຢ]', 'ຍ') -- gsub() is a bad actual arg!
table.insert(nuforms, s)
end
if yaa then
local s = gsub(form, '[ຍຢ]', 'ຢ')
table.insert(nuforms, s)
end
end
retval[caseno] = nuforms
end
return retval
end
function export.arrcat_nodup(a1, a2) -- Concatenate two arrays without duplication
-- One of the arrays may have been 'loaded', so cannot use the # operator.
local n1 = 0
local cat = {}
for _, a1v in ipairs(a1) do
n1 = n1 + 1
cat[n1] = a1v
end
for _, a2v in ipairs(a2) do
local met = false
for j = 1, n1 do
if a2v == cat[j] then
met = true
break
end
end
if not met then
n1 = n1 + 1
cat[n1] = a2v
end
end
return cat
end
local arrcat = export.arrcat_nodup
local both_sets = function(scriptCode, ending, g, option)
option.impl= 'yes'
iset = export.getSuffixes(scriptCode, ending, g, option)
option.impl = 'no'
eset = export.getSuffixes(scriptCode, ending, g, option)
retval = {}
-- error('i='..iset[3][1]..' e='..eset[3][1])
for ic = 1, 16 do
retval[ic] = arrcat(iset[ic], eset[ic])
end
-- error('m1='..'<'..tostring(retval[1][1])..'>'..' m2='..'<'..tostring(retval[1][2])..'>')
return retval
end
local function wayToConvert(ending, impl)
local antlen = {yes = 4, no = 3} -- Length by implicitness.
local inlen = {yes = 3, no = 2}
local way = {
a = {pseudoStem = 'ka', ndel = 0},
ar = {pseudoStem = 'kar', ndel = 2},
as = {pseudoStem = 'kas', ndel = 2},
an = {pseudoStem = 'kan', ndel = 2},
ant = {pseudoStem = 'kant', ndel = antlen[impl]},
ent = {pseudoStem = 'kant', ndel = antlen[impl]},
ont = {pseudoStem = 'kant', ndel = antlen[impl]},
mant = {pseudoStem = 'kant', ndel = antlen[impl]},
vant = {pseudoStem = 'kant', ndel = antlen[impl]},
antT = {pseudoStem = 'kant', ndel = 5},
entT = {pseudoStem = 'kant', ndel = 5},
ontT = {pseudoStem = 'kant', ndel = 5},
mantT = {pseudoStem = 'kant', ndel = 5},
vantT = {pseudoStem = 'kant', ndel = 5},
["ā"] = {pseudoStem = 'kā', ndel = 1},
i = {pseudoStem = 'ki', ndel = 1},
["ī"] = {pseudoStem = 'kī', ndel = 1},
["in"]= {pseudoStem = 'kin', ndel = inlen[impl]},
u = {pseudoStem = 'ku', ndel = 1},
["ū"] = {pseudoStem = 'kū', ndel = 1},
}
if impl == 'no' then
way.a = {pseudoStem = 'ka', ndel = 1}
way.ent = {pseudoStem = 'knt', ndel = 2}
way.ont = {pseudoStem = 'knt', ndel = 2}
end
return way[ending]
end
function export.getSuffixes(scriptCode, ending, g, option)
local impl = option and option.impl or 'yes'
if (impl == 'both') then
return both_sets(scriptCode, ending, g, option)
end
local pattern = load("Module:pi-decl/noun/" .. scriptCode)
local applicable = pattern and pattern[ending] and pattern[ending][g]
if applicable then
if impl == 'yes' or ending == 'ah' then
return applicable
end
elseif 'Latn' == scriptCode then
return nil
elseif 'ah' == ending then
ending = 'a'
impl = 'no'
end
pattern = require("Module:pi-decl/noun/Latn") -- Why doesn't load work with testcases?
local tabulated_ending = ending
if 'T' == sub(ending, -1) then
tabulated_ending = sub(ending, 1, -2)
end
applicable = pattern and pattern[tabulated_ending] and
pattern[tabulated_ending][g]
if not applicable then
error('Not even Latin script has ' .. g .. ' -'..tabulated_ending..
' endings.')
return nil -- If you don't like the message above!
end
way = wayToConvert(ending, impl)
if not way then return nil end
return convert_suffixes(way.pseudoStem, way.ndel, applicable,
scriptCode, impl)
end
function export.present(stem, g, forms, number, options) -- options is optional
local gmark, dos, dop
if 'no' == g then
gmark = ''
else
gmark = ' (' .. genders[g] .. ')'
end
if not number or number == 'both'then
dos = 1; dop = 1
elseif number == 's' then
dos = 1; dop = nil;
elseif number == 'p' then
dos = nil; dop = 1;
else
error('Parameter "number" has meaningless value "'..number..'".' )
end
local output = {}
table.insert(output, '<div class="NavFrame" style="min-width:30%"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff)">"' .. stem .. '" සඳහා වරනැඟීම් වගුව' .. gmark..'</div><div class="NavContent">')
table.insert(output, '<table class="inflection-table" style="background:var(--wikt-palette-paleblue,#f8f9fa);text-align:center;width:100%"><tr><th style="background:var(--wikt-palette-cyan,#eaffff)">විභක්ති \\ ඒකවචන, බහුවචන</th>')
if dos then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">ඒකවචන</th>')
end
if dop then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">බහුවචන</th></tr>')
end
for i,v in ipairs(rows) do
if #forms[2*i-1] > 0 or #forms[2*i] > 0 then
table.insert(output, "<tr><td style=\"background:var(--wikt-palette-cyan,#eaffff)\">" .. v .. "</td>")
if dos then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i - 1], options))
table.insert(output, "</td>")
end
if dop then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i], options))
table.insert(output, "</td>")
end
table.insert(output, "</tr>")
end
end
table.insert(output, "</table></div></div>")
return table.concat(output)
end
local function unwritten() error('Code missing.') end
local function liapise_one_set(set, liap)
local forms = { {}, {}, {}, {}, {}, set,
{}, {}, {}, {}, {},
{}, {}, {}, {}, {} }
local modified = liapise(forms, liap)
return modified[6]
end
local function modify_form_set(stem, ending, name, caseno, forms, at)
local ipalts = at[name]
local way = at[name..'_mod']
to_script = to_script or require("Module:pi-Latn-translit").tr
if ipalts and #ipalts > 0 then
local alts = {}
for j, v in ipairs(ipalts) do
local c1 = string.sub(v,1,1)
local vsc = lang:findBestScript(v):getCode()
if vsc == 'None' then
vsc = at.sc and sc or vsc
end
if '+' == c1 then
local vext
v = string.sub(v,2)
if vsc ~= 'Latn' then
vext = {at.dc and dc(v) or v}
elseif scriptCode ~= 'Latn' then
local impls
if at.impl == 'both' then
impls = {'yes', 'no'}
else
impls = {at.impl}
end
vext = {}
for _, impl in ipairs(impls) do
local cvtway = wayToConvert(ending, impl)
local vset = convert_one_set(cvtway.pseudoStem, cvtway.ndel,
{v}, scriptCode, impl, nil)
vext = arrcat(vext, vset)
end
if scriptCode == 'Laoo' then
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
else
vext = {v}
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
end
local vext = export.joinSuffix(scriptCode, stem, vext, at)
for _, vv in ipairs(vext) do ti(alts, vv) end
elseif vsc == scriptCode then
ti(alts, v)
elseif vsc == 'Latn' then
-- TODO: Sane Myanmar and Lao script support.
local options = {}
local vext = {}
if at.impl and at.impl == 'both' then
options.y = at.y -- Probably ineffective
options.impl = 'yes'
ti(vext, to_script(v, scriptCode, options))
options.impl = 'no'
ti(vext, to_script(v, scriptCode, options))
else
ti(vext, to_script(v, scriptCode, options))
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
for _, vv in ipairs(vext) do ti(alts, vv) end
else
ti(alts, v) -- Go ahead anyway
end
end
if 'after' == way then
forms[caseno] = arrcat(forms[caseno], alts)
elseif 'before' == way then
forms[caseno] = arrcat(alts, forms[caseno])
elseif 'replace' == way then
forms[caseno] = alts;
elseif 'blank' == way then
-- Issue warning about alts?
forms[caseno] = {}
else
error('Bad value for parameter '..name..'_mod')
end
elseif 'blank' == way then
forms[caseno] = {}
end
end
local function modify(stem, ending, forms, args)
local mod_default = 'after'
local params = {
[1] = {alias_of = 'stem'},
[2] = {alias_of = 'ending'},
[3] = {alias_of = 'g'},
stem = {},
ending = {},
g = {required = true},
gender = {alias_of = 'g'},
v = {},
variation = {alias_of = 'v'},
label = {},
number = {},
showtr = {},
subst = {},
sc = {},
aa = {default = 'default'},
liap = {default = 'default'},
impl = {default = 'yes'},
y = {default = 'default'},
nonom = {type = 'boolean'},
noms = {list = true},
noms_mod = {default = mod_default},
nomp = {list = true},
nomp_mod = {default = mod_default},
noacc = {type = 'boolean'},
accs = {list = true},
accs_mod = {default = mod_default},
accp = {list = true},
accp_mod = {default = mod_default},
noins = {type = 'boolean'},
inss = {list = true},
inss_mod = {default = mod_default},
insp = {list = true},
insp_mod = {default = mod_default},
nodat = {type = 'boolean'},
dats = {list = true},
dats_mod = {default = mod_default},
datp = {list = true},
datp_mod = {default = mod_default},
noabl = {type = 'boolean'},
abls = {list = true},
abls_mod = {default = mod_default},
ablp = {list = true},
ablp_mod = {default = mod_default},
nogen = {type = 'boolean'},
gens = {list = true},
gens_mod = {default = mod_default},
genp = {list = true},
genp_mod = {default = mod_default},
noloc = {type = 'boolean'},
locs = {list = true},
locs_mod = {default = mod_default},
locp = {list = true},
locp_mod = {default = mod_default},
novoc = {type = 'boolean'},
vocs = {list = true},
vocs_mod = {default = mod_default},
vocp = {list = true},
vocp_mod = {default = mod_default},
}
local at = m_parameters.process(args, params)
if ending == 'ah' then
at.impl = 'no'
end
for i, v in ipairs(rows) do
local name = string.lower(string.sub(v,1,3))
if at['no'..name] then
forms[2*i] = {}
forms[2*i-1] = {}
else
modify_form_set(stem, ending, name..'s', 2*i-1, forms, at)
modify_form_set(stem, ending, name..'p', 2*i, forms, at)
end
end
return forms;
end
function export.show(frame)
local args = frame:getParent().args
local PAGENAME = mw.title.getCurrentTitle().text
local stem = args[1] or args["stem"] or PAGENAME
currentScript = lang:findBestScript(stem)
scriptCode = currentScript:getCode()
if scriptCode == "None" and args["sc"] then
scriptCode = args["sc"]
currentScript = require("Module:scripts").getByCode(scriptCode, "No such script as "..scriptCode)
end
local g = args[3] or args["g"] or args["gender"] -- for each gender only
local variation = args["v"] or args["variation"] -- for some scripts
if not g then
error("A gender is required to display proper declensions.")
end
local lookup_g = g
if 'no' == lookup_g then lookup_g = 'm' end -- Arbitrary!
local option = {impl = args["impl"] or 'yes'}
local xlit_options = {}
xlit_options.impl = option.impl
xlit_options.showtr = args.showtr
local ending = args[2] or args["ending"] or export.detectEnding(stem, option)
if ending == 'ah' then xlit_options.impl = 'no' end
local selectedPattern =
export.getSuffixes(scriptCode, ending, lookup_g, option)
if args["liap"] and (scriptCode == 'Laoo') then
selectedPattern = liapise(selectedPattern, args["liap"])
end
if args.y and (scriptCode == 'Laoo') then
selectedPattern = yselect(selectedPattern, args.y, 16)
xlit_options.y = args.y
end
option.aa = args["aa"] -- Reusable!
local forms = export.joinSuffixes(scriptCode, stem, selectedPattern, option)
modify(stem, ending, forms, args)
for ic = 1, 16 do forms[ic] = arrcat({}, forms[ic]) end -- Remove duplicates.
xlit_options.subst = args["subst"]
-- for name, _ in pairs(_G) do mw.addWarning('Global '..name) end
return export.present(args["label"] or stem, g, forms, args["number"], xlit_options)
end
return export
gbfq8eksq2y7gvcpj23jza4a3zc6z7e
196078
196077
2024-12-04T15:25:32Z
Lee
19
[[මනුස්ස]] ප්රවේශයේ පරිවර්තන කටයුතු
196078
Scribunto
text/plain
local export = {}
-- require("Module:log globals") -- Examine Lua logs at end of preview for results.
local links = require("Module:links")
local lang = require("Module:languages").getByCode("pi")
local m_parameters = require("Module:parameters")
local m_str_utils = require("Module:string utilities")
local m_translit
local to_script
local find = m_str_utils.find
local gsub = m_str_utils.gsub
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char -- For readability.
local load = mw.loadData
local ti = table.insert
local currentScript
local scriptCode
local genders = {
["m"] = "පුරුෂ ලිංග", ["f"] = "feminine", ["n"] = "neuter",
}
local rows = {
"ප්රථමා විභක්ති (first)", "Accusative (second)", "Instrumental (third)", "Dative (fourth)",
"Ablative (fifth)", "Genitive (sixth)", "Locative (seventh)", "Vocative (calling)",
}
local endings = {
["one"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["a"] = {},
["ā"] = { "า", "ा", "आ", "া", "আ", "ါ", "ာ", " ႃ", "ᩣ", "ᩤ", "າ", "ា", u(0x17A4),
"ා", "ආ", "𑀸", "𑀆", "𑄂" },
["i"] = { "ิ", "ि", "इ", "ি", "ই", "ိ", "ဣ", "ᩥ", "ᩍ", "ິ", "ិ", "ឥ",
"ි", "ඉ", "𑀺", "𑀇", "𑄨" },
["ī"] = { "ี", "ी", "ई", "ী", "ঈ", "ီ", "ဳ", "ဤ", "ᩦ", "ᩎ", "ີ", "ី", "ឦ",
"ී", "ඊ", "𑀻", "𑀈", "𑄩" },
["u"] = { "ุ", "ु", "उ", "ু", "উ", "ု", "ဥ", "ᩩ", "ᩏ", "ຸ", "ុ", "ឧ",
"ු", "උ", "𑀼", "𑀉", "𑄪" },
["ū"] = { "ู", "ू", "ऊ", "ূ", "ঊ", "ူ", "ဦ", "ᩪ", "ᩐ", "ູ", "ូ", "ឨ", "ឩ",
"ූ", "ඌ", "𑀽", "𑀊", "𑄫" },
["ah"] = { "ะ", "ະ"},
},
["two"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["ar"] = { "รฺ", "ัร", "र्", "র্", "ရ်", "ᩁ᩺", "ᩁ᩼", "ຣ໌", "ຣ຺", "ັຣ", "រ៑",
"ර්", "𑀭𑁆", "𑄢𑄴"},
["as"] = { "สฺ", "ัส", "स्", "স্", "သ်", "ᩈ᩺", "ᩈ᩼", "ສ໌", "ສ຺", "ັສ", "ស៑",
"ස්", "𑀲𑁆", "𑄥𑄴" },
["an"] = { "นฺ", "ัน", "न्", "ন্", "န်", "ᨶ᩺", "ᨶ᩼", "ນ໌", "ນ຺", "ັນ", "ន៑",
"න්", "𑀦𑁆", "𑄚𑄴"},
ent = { "นต", "ນຕ"},
["in"] = { "ิน", "ິນ"},
},
three = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "ันต" , "ັນຕ"},
ent = {},
ont = {},
["in"] = { "ินฺ", "िन्", "িন্", "ိန်", "ᩥᨶ᩺", "ິນ຺", "ិន៑",
"ින්", "𑀺𑀦𑁆", "𑄨𑄚𑄴" },
},
four = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "นฺตฺ", "न्त्", "ন্ত্", "န္တ်", "ᨶ᩠ᨲ᩺", "ᨶ᩠ᨲ᩼", "ນ຺ຕ໌", "ນ຺ຕ຺", "ន្ត៑",
"න්ත්", "𑀦𑁆𑀢𑁆", "𑄚𑄴𑄖𑄴" },
vant = { "วันต", "ວັນຕ" },
mant = { "มันต", "ມັນຕ" },
},
five = { -- 'ent' and 'ont' are discontiguous for Thai and Lao. Assume NFC (as above).
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
antT = { "න්ත්" },
vant = { "วนฺตฺ", "वन्त्", "ৱন্ত্","ৰন্ত্", "ွန္တ်", "ဝန္တ်", "ᩅᨶ᩠ᨲ᩺", "ᩅᨶ᩠ᨲ᩼", "ວນ຺ຕ຺", "ວນ຺ຕ໌", "វន្ត៑",
"වන්ත්", "𑀯𑀦𑁆𑀢𑁆", "𑅇𑄚𑄴𑄖𑄴" },
mant = { "มนฺตฺ", "मन्त्", "মন্ত্", "မန္တ်", "ᨾᨶ᩠ᨲ᩺", "ᨾᨶ᩠ᨲ᩼", "ມນ຺ຕ຺", "ມນ຺ຕ໌", "មន្ត៑",
"ᩜᨶ᩠ᨲ᩺", "ᩜᨶ᩠ᨲ᩼",
"මන්ත්", "𑀫𑀦𑁆𑀢𑁆", "𑄟𑄚𑄴𑄖𑄴"},
ent = { "ेन्त्", "েন্ত্", "ေန္တ်", "ᩮᨶ᩠ᨲ᩺", "ᩮᨶ᩠ᨲ᩼", "េន្ត៑",
"एन्त्", "এন্ত্", "ဧန္တ်", "ᩑᨶ᩠ᨲ᩺", "ᩑᨶ᩠ᨲ᩼", "ឯន្ត៑",
"ෙන්ත්", "𑁂𑀦𑁆𑀢𑁆", "𑄬𑄚𑄴𑄖𑄴" ,
"එන්ත්", "𑀏𑀦𑁆𑀢𑁆" },
ont = { "ोन्त्", "োন্ত্", "ာန္တ်", "ါန္တ်", "ᩣᨶ᩠ᨲ᩺", "ᩣᨶ᩠ᨲ᩼", "ោន្ត៑",
"ᩤᨶ᩠ᨲ᩺", "ᩤᨶ᩠ᨲ᩼",
"ओन्त्", "ওন্ত্", "ဩန္တ်", "ᩰᨶ᩠ᨲ᩺", "ᩰᨶ᩠ᨲ᩼", "ឲន្ត៑",
"ᩒᨶ᩠ᨲ᩺", "ᩒᨶ᩠ᨲ᩼",
"ොන්ත්", "𑁄𑀦𑁆𑀢𑁆", "𑄮𑄚𑄴𑄖𑄴",
"ඔන්ත්", "𑀑𑀦𑁆𑀢𑁆"},
},
six = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah
vantT = {"වන්ත්" },
mantT = {"මන්ත්" },
entT = {"ෙන්ත්",
"එන්ත්" },
ontT = {"ොන්ත්",
"ඔන්ත්" },
},
}
function export.detectEnding(stem, options)
-- Correct checking order is last 6, last 5, last 4, last 3, last 2, last 1, but we
-- Can do slightly better by knowing the data.
local oneLetter = sub(stem, -1)
for key, arr in pairs(endings.one) do
if oneLetter == key then
return key
end
for _, val in ipairs(arr) do
if oneLetter == val then
return key
end
end
end
-- Check Latin script first
local fourLetters = sub(stem, -4)
if 'mant' == fourLetters or 'vant' == fourLetters then
return fourLetters
end
local wordEnd = sub(stem, -6)
for key, arr in pairs(endings.six) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
wordEnd = sub(stem, -5)
for key, arr in pairs(endings.five) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
for key, arr in pairs(endings.four) do
if fourLetters == key then return key end
for _, val in ipairs(arr) do
if fourLetters == val then
-- Scripts with visually ordered preposed vowels have not been checked thoroughly
if key == 'ant' and
(oneLetter == u(0x0E3A) or oneLetter == u(0xECC) or
oneLetter == u(0x0EBA)) then
local pm6 = sub(stem, -6, -6)
if match(pm6, '[เโເໂ]') then -- 1 char onset
return 'ent' -- 'ent' for 'ont' matters not.
elseif match(pm6, '['..u(0x0E3A)..u(0x0EBA)..']')
and match(sub(stem, -8, -8), '[เโເໂ]') then -- 2 char onset
return 'ent' -- 'ent' for 'ont' matters not.
else
return key
end
else
return key
end
end
end
end
local threeLetters = sub(stem, -3)
for key, arr in pairs(endings.three) do
if threeLetters == key then
return key
end
for _, val in ipairs(arr) do
if threeLetters == val then return key; end
end
end
local impl = options and options.impl or 'yes' -- Fudge to pass old tests.
wordEnd = sub(stem, -2)
for key, arr in pairs(endings.two) do
if wordEnd == key then
return key
end
for _, val in ipairs(arr) do
if wordEnd == val then
if key == 'ent' then
local pm3 = sub(stem, -3, -3)
if match(pm3, '['..u(0x0e31)..u(0xeb1)..']') then
-- Recognise below
return 'ant'
elseif match(sub(stem, -4, -3), '[เโເໂ][ก-ฮກ-ຮ]') then -- 1 char onset
return 'ent'
elseif match(sub(stem, -5, -3), '[เโເໂ][ก-ฮກ-ຮ][ก-ฮກ-ຮ]') then -- 2 char onset
return 'ent'
end
elseif wordEnd == "ิน" or wordEnd == "ິນ" then
if impl == 'yes' then
return 'a'
elseif impl == 'both' then
error("Does "..stem.." end in -in or -ina?")
else
return key
end
else
return key
end
end
end
end
return "a"
end
-- Selectively converts touching to conjoining.
local sinh_flip = {["කⒿ්ව"]="ක්ව",
["තⒿ්ථ"]="ත්ථ", ["තⒿ්ව"]="ත්ව",
["නⒿ්ථ"]="න්ථ", ["නⒿ්ද"]="න්ද", ["නⒿ්ධ"]="න්ධ", ["නⒿ්ව"]="න්ව",
}
-- Argument option is optional.
function export.joinSuffix(scriptCode, stem, suffixes, option)
if stem == nil then
errmes = {}
table.insert(errmes, 'joinSuffix('..scriptCode)
table.insert(errmes, tostring(stem))
table.insert(errmes, tostring(suffixes))
table.insert(errmes, tostring(option)..')')
error(table.concat(errmes, ','))
end
local output = {}
local term
local aa = option and option.aa or "default"
local join, term2
if scriptCode == 'Lana' or scriptCode == 'Mymr' or scriptCode == 'Sinh' then
join = 'Ⓙ'
else
join = ""
end
for _,suffix in ipairs(suffixes) do
if match(suffix, "^⌫⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -6) .. join .. sub(suffix, 6, -1)
elseif match(suffix, "^⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -5) .. join .. sub(suffix, 5, -1)
elseif match(suffix, "^⌫⌫⌫") then --backspace
term = sub(stem, 1, -4) .. join .. sub(suffix, 4, -1)
elseif match(suffix, "^⌫⌫") then --backspace
term = sub(stem, 1, -3) .. join .. sub(suffix, 3, -1)
elseif match(suffix, "^⌫") then --backspace
term = sub(stem, 1, -2) .. join .. sub(suffix, 2, -1)
else
term = stem .. join .. suffix
end
--note: Sinh conjuncts are already ready.
if scriptCode == "Thai" then
term = gsub(term, "(.)↶([เโ])", "%2%1") --swap
elseif scriptCode == "Mymr" then
-- term = gsub(term, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
term = gsub(term, "(င်္)([ခဂငဒပဝ])(ေ?)Ⓙာ", "%1%2%3ါ") -- redundant!
-- term = gsub(term, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "Ⓙ္[ယရ]", { ["Ⓙ္ယ"] = "ျ", ["Ⓙ္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "^([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2ါ")
term = gsub(term, "([^္])([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([^္])Ⓙ([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])(္[က-အဿ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])Ⓙ(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
-- term = gsub(term, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
-- term = gsub(term, "ဉ္ဉ", "ည")
-- term = gsub(term, "သ္သ", "ဿ")
term = gsub(term, 'Ⓙ', '')
elseif scriptCode == "Lana" then
if aa == "both" then
term2 = gsub(term, 'Ⓙ', '')
end
if aa == "tall" or aa == "both" then
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "(ᨻᩛ)Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, 'Ⓙ', '')
if aa == "tall" then
term2 = term
end
elseif aa == "round" then
term = gsub(term, 'Ⓙ', '')
term2 = term
elseif aa == "default" then
-- term = gsub(term, "ᨦ᩠", "ᩘ")
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
-- term = gsub(term, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
-- term = gsub(term, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
-- term = gsub(term, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
-- term = gsub(term, "ᩈ᩠ᩈ", "ᩔ")
term = gsub(term, 'Ⓙ', '')
term2 = term
else
error('Parameter aa has undefined value "'..aa..'".')
end
if term ~= term2 then table.insert(output, term2) end
elseif scriptCode == "Beng" then
term = gsub(term, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif scriptCode == "Laoo" then
term = gsub(term, "(.຺?)↶([ເໂ])", "%2%1")
elseif scriptCode == "Sinh" then
-- Assume cluster formation appends the joiner.
term = gsub(term, "[කතන]Ⓙ..[ථදධව]", sinh_flip)
term = gsub(term, 'Ⓙ', '')
end
table.insert(output, term)
end
return output
end
function export.joinSuffixes(scriptCode, stem, pattern, option)
local forms = {}
for i,_ in ipairs(rows) do
forms[2*i-1] = export.joinSuffix(scriptCode, stem, pattern[2 * i - 1],
option)
forms[2*i] = export.joinSuffix(scriptCode, stem, pattern[2 * i],
option)
end
return forms
end
function export.orJoin(script, list, options) -- options is optional!
local output = {};
local scriptCode = script:getCode()
local showtr = options and options.showtr or 'plain'
local sep = ''
if 'Latn' == scriptCode then showtr = 'none' end
for _,term in ipairs(list) do
local item = {sc = script, lang = lang, term = term} -- links.full_link() is at liberty to trash this table.
ti(output, sep)
sep = " <small style=\"color:888\">or</small> "
if showtr == 'none' then
item.tr = '-'
else
if options and options.subst then
-- Legal stuff:
-- The contents of this block were lifted from English Wiktionary Module:usex lines 97 to 101
-- of 3 July 2021, which see for attribution, and then localised.
local substs = mw.text.split(options.subst, ",")
for _, subpair in ipairs(substs) do
local subsplit =
mw.text.split(subpair, find(subpair, "//") and "//" or "/")
term = gsub(term, subsplit[1], subsplit[2])
end
end
local aslat = nil
if (scriptCode == 'Thai' and options and options.impl == 'no' or
scriptCode == 'Laoo') then
m_translit = m_translit or require("Module:pi-translit")
aslat = m_translit.trwo(term, 'pi', scriptCode, options)
elseif term ~= item.term then -- Must complete transliteration
aslat = (lang:transliterate(term, script))
end
if showtr == 'plain' then
item.tr = aslat
elseif showtr == 'link' then
aslat = aslat or (lang:transliterate(term, script))
item.tr = links.full_link({term = aslat, lang = lang})
else
item.tr = '-'
error('Bad value for option showtr.')
end
end
ti(output, links.full_link(item))
end
return table.concat(output)
end
-- convert Latin script inflections to another script
-- C2 is second character of pseudostem. Ignored if NIL.
local function convert_one_set(stem, nstrip, suffixes, sc, impl, c2)
local form, pre
local strip = string.rep("⌫", nstrip)
local option = {impl = impl}
local xlitend = {}
form = export.joinSuffix('Latn', stem, suffixes)
for ia, va in pairs(form) do
local altform = sub(to_script(va..'#', sc, option), 1, -2)
-- Special handling is needed for a preposed vowel.
pre = match(altform, "^[เโເໂ]")
if pre then
xlitend[ia] = strip .. "↶" .. pre .. sub(altform, 3)
-- Quick cheat for Myanmar script variants.
elseif c2 and c2 == sub(altform,2,2) then
xlitend[ia] = sub(strip, 2) .. sub(altform, 3)
-- Back to the normal case.
else
xlitend[ia] = strip .. sub(altform, 2)
end
end
return xlitend
end
local convert_suffixes = function(stem, nstrip, suffixes, sc, impl)
local xlitend = {}
to_script = to_script or require("Module:pi-Latn-translit").tr
local c2
if nstrip > 0 and sc == 'Mymr' then
c2 = sub(to_script(stem, sc, option), 2, 2)
end
-- Seemingly #suffixes doesn't work because the module is loaded!
-- Testing didn't reveal a problem, but avoiding it solved the problem!
-- for k = 1, #suffixes do
if #suffixes ~= 16 then error('#suffixes = '..tostring(#suffixes)) end
for k, _ in ipairs(suffixes) do
xlitend[k] = convert_one_set(stem, nstrip, suffixes[k], sc, impl, c2)
end
return xlitend
end
local liapise = function(retval, liap) -- Change Lao abl/ins plural
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local dob = nil local dobh = nil local sena = nil
if liap == 'b' then
dob = 1
elseif liap == 'bh' then
dobh = 1
elseif liap == 'b.' then
sena = 1
elseif liap == 'bbh' then
dob = 1 dobh = 1
elseif liap == 'bb.' then
dob = 1 sena = 1
elseif liap == 'bhb.' then
dobh = 1 sena = 1
elseif liap == 'none' then
elseif liap == 'all' or liap == 'bbhb.' then
dob = 1 dobh = 1 sena = 1
else
error('Value "'..liap..'" of liap is not understood.')
end
for caseno = 6, 10, 4 do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if sub(form, -2, -1) == 'ຠິ' then
if dob then table.insert(nuforms, sub(form,1,-3)..'ພິ') end
if dobh then table.insert(nuforms, form) end
if sena then table.insert(nuforms, sub(form,1,-3)..'ພ຺ິ') end
else
table.insert(nuforms, form)
end
end
retval[caseno] = nuforms
end
return retval
end
local yselect = function(retval, yval, nvals) -- Change Lao case ending
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local yung = nil local yaa = nil
if yval == 'both' then
yung = 1
yaa = 1
elseif yval == 'ຍ' then
yung = 1
elseif yval == 'ຢ' then
yaa = 1
elseif yval == 'yung' then
yung = 1
elseif yval == 'yaa' then
yaa = 1
else
error('Value "'..yval..'" of argument y is not understood.')
end
for caseno = 1, nvals do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if yung then
local s = gsub(form, '[ຍຢ]', 'ຍ') -- gsub() is a bad actual arg!
table.insert(nuforms, s)
end
if yaa then
local s = gsub(form, '[ຍຢ]', 'ຢ')
table.insert(nuforms, s)
end
end
retval[caseno] = nuforms
end
return retval
end
function export.arrcat_nodup(a1, a2) -- Concatenate two arrays without duplication
-- One of the arrays may have been 'loaded', so cannot use the # operator.
local n1 = 0
local cat = {}
for _, a1v in ipairs(a1) do
n1 = n1 + 1
cat[n1] = a1v
end
for _, a2v in ipairs(a2) do
local met = false
for j = 1, n1 do
if a2v == cat[j] then
met = true
break
end
end
if not met then
n1 = n1 + 1
cat[n1] = a2v
end
end
return cat
end
local arrcat = export.arrcat_nodup
local both_sets = function(scriptCode, ending, g, option)
option.impl= 'yes'
iset = export.getSuffixes(scriptCode, ending, g, option)
option.impl = 'no'
eset = export.getSuffixes(scriptCode, ending, g, option)
retval = {}
-- error('i='..iset[3][1]..' e='..eset[3][1])
for ic = 1, 16 do
retval[ic] = arrcat(iset[ic], eset[ic])
end
-- error('m1='..'<'..tostring(retval[1][1])..'>'..' m2='..'<'..tostring(retval[1][2])..'>')
return retval
end
local function wayToConvert(ending, impl)
local antlen = {yes = 4, no = 3} -- Length by implicitness.
local inlen = {yes = 3, no = 2}
local way = {
a = {pseudoStem = 'ka', ndel = 0},
ar = {pseudoStem = 'kar', ndel = 2},
as = {pseudoStem = 'kas', ndel = 2},
an = {pseudoStem = 'kan', ndel = 2},
ant = {pseudoStem = 'kant', ndel = antlen[impl]},
ent = {pseudoStem = 'kant', ndel = antlen[impl]},
ont = {pseudoStem = 'kant', ndel = antlen[impl]},
mant = {pseudoStem = 'kant', ndel = antlen[impl]},
vant = {pseudoStem = 'kant', ndel = antlen[impl]},
antT = {pseudoStem = 'kant', ndel = 5},
entT = {pseudoStem = 'kant', ndel = 5},
ontT = {pseudoStem = 'kant', ndel = 5},
mantT = {pseudoStem = 'kant', ndel = 5},
vantT = {pseudoStem = 'kant', ndel = 5},
["ā"] = {pseudoStem = 'kā', ndel = 1},
i = {pseudoStem = 'ki', ndel = 1},
["ī"] = {pseudoStem = 'kī', ndel = 1},
["in"]= {pseudoStem = 'kin', ndel = inlen[impl]},
u = {pseudoStem = 'ku', ndel = 1},
["ū"] = {pseudoStem = 'kū', ndel = 1},
}
if impl == 'no' then
way.a = {pseudoStem = 'ka', ndel = 1}
way.ent = {pseudoStem = 'knt', ndel = 2}
way.ont = {pseudoStem = 'knt', ndel = 2}
end
return way[ending]
end
function export.getSuffixes(scriptCode, ending, g, option)
local impl = option and option.impl or 'yes'
if (impl == 'both') then
return both_sets(scriptCode, ending, g, option)
end
local pattern = load("Module:pi-decl/noun/" .. scriptCode)
local applicable = pattern and pattern[ending] and pattern[ending][g]
if applicable then
if impl == 'yes' or ending == 'ah' then
return applicable
end
elseif 'Latn' == scriptCode then
return nil
elseif 'ah' == ending then
ending = 'a'
impl = 'no'
end
pattern = require("Module:pi-decl/noun/Latn") -- Why doesn't load work with testcases?
local tabulated_ending = ending
if 'T' == sub(ending, -1) then
tabulated_ending = sub(ending, 1, -2)
end
applicable = pattern and pattern[tabulated_ending] and
pattern[tabulated_ending][g]
if not applicable then
error('Not even Latin script has ' .. g .. ' -'..tabulated_ending..
' endings.')
return nil -- If you don't like the message above!
end
way = wayToConvert(ending, impl)
if not way then return nil end
return convert_suffixes(way.pseudoStem, way.ndel, applicable,
scriptCode, impl)
end
function export.present(stem, g, forms, number, options) -- options is optional
local gmark, dos, dop
if 'no' == g then
gmark = ''
else
gmark = ' (' .. genders[g] .. ')'
end
if not number or number == 'both'then
dos = 1; dop = 1
elseif number == 's' then
dos = 1; dop = nil;
elseif number == 'p' then
dos = nil; dop = 1;
else
error('Parameter "number" has meaningless value "'..number..'".' )
end
local output = {}
table.insert(output, '<div class="NavFrame" style="min-width:30%"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff)">"' .. stem .. '" සඳහා වරනැඟීම් වගුව' .. gmark..'</div><div class="NavContent">')
table.insert(output, '<table class="inflection-table" style="background:var(--wikt-palette-paleblue,#f8f9fa);text-align:center;width:100%"><tr><th style="background:var(--wikt-palette-cyan,#eaffff)">විභක්ති \\ ඒකවචන, බහුවචන</th>')
if dos then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">ඒකවචන</th>')
end
if dop then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">බහුවචන</th></tr>')
end
for i,v in ipairs(rows) do
if #forms[2*i-1] > 0 or #forms[2*i] > 0 then
table.insert(output, "<tr><td style=\"background:var(--wikt-palette-cyan,#eaffff)\">" .. v .. "</td>")
if dos then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i - 1], options))
table.insert(output, "</td>")
end
if dop then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i], options))
table.insert(output, "</td>")
end
table.insert(output, "</tr>")
end
end
table.insert(output, "</table></div></div>")
return table.concat(output)
end
local function unwritten() error('Code missing.') end
local function liapise_one_set(set, liap)
local forms = { {}, {}, {}, {}, {}, set,
{}, {}, {}, {}, {},
{}, {}, {}, {}, {} }
local modified = liapise(forms, liap)
return modified[6]
end
local function modify_form_set(stem, ending, name, caseno, forms, at)
local ipalts = at[name]
local way = at[name..'_mod']
to_script = to_script or require("Module:pi-Latn-translit").tr
if ipalts and #ipalts > 0 then
local alts = {}
for j, v in ipairs(ipalts) do
local c1 = string.sub(v,1,1)
local vsc = lang:findBestScript(v):getCode()
if vsc == 'None' then
vsc = at.sc and sc or vsc
end
if '+' == c1 then
local vext
v = string.sub(v,2)
if vsc ~= 'Latn' then
vext = {at.dc and dc(v) or v}
elseif scriptCode ~= 'Latn' then
local impls
if at.impl == 'both' then
impls = {'yes', 'no'}
else
impls = {at.impl}
end
vext = {}
for _, impl in ipairs(impls) do
local cvtway = wayToConvert(ending, impl)
local vset = convert_one_set(cvtway.pseudoStem, cvtway.ndel,
{v}, scriptCode, impl, nil)
vext = arrcat(vext, vset)
end
if scriptCode == 'Laoo' then
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
else
vext = {v}
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
end
local vext = export.joinSuffix(scriptCode, stem, vext, at)
for _, vv in ipairs(vext) do ti(alts, vv) end
elseif vsc == scriptCode then
ti(alts, v)
elseif vsc == 'Latn' then
-- TODO: Sane Myanmar and Lao script support.
local options = {}
local vext = {}
if at.impl and at.impl == 'both' then
options.y = at.y -- Probably ineffective
options.impl = 'yes'
ti(vext, to_script(v, scriptCode, options))
options.impl = 'no'
ti(vext, to_script(v, scriptCode, options))
else
ti(vext, to_script(v, scriptCode, options))
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
for _, vv in ipairs(vext) do ti(alts, vv) end
else
ti(alts, v) -- Go ahead anyway
end
end
if 'after' == way then
forms[caseno] = arrcat(forms[caseno], alts)
elseif 'before' == way then
forms[caseno] = arrcat(alts, forms[caseno])
elseif 'replace' == way then
forms[caseno] = alts;
elseif 'blank' == way then
-- Issue warning about alts?
forms[caseno] = {}
else
error('Bad value for parameter '..name..'_mod')
end
elseif 'blank' == way then
forms[caseno] = {}
end
end
local function modify(stem, ending, forms, args)
local mod_default = 'after'
local params = {
[1] = {alias_of = 'stem'},
[2] = {alias_of = 'ending'},
[3] = {alias_of = 'g'},
stem = {},
ending = {},
g = {required = true},
gender = {alias_of = 'g'},
v = {},
variation = {alias_of = 'v'},
label = {},
number = {},
showtr = {},
subst = {},
sc = {},
aa = {default = 'default'},
liap = {default = 'default'},
impl = {default = 'yes'},
y = {default = 'default'},
nonom = {type = 'boolean'},
noms = {list = true},
noms_mod = {default = mod_default},
nomp = {list = true},
nomp_mod = {default = mod_default},
noacc = {type = 'boolean'},
accs = {list = true},
accs_mod = {default = mod_default},
accp = {list = true},
accp_mod = {default = mod_default},
noins = {type = 'boolean'},
inss = {list = true},
inss_mod = {default = mod_default},
insp = {list = true},
insp_mod = {default = mod_default},
nodat = {type = 'boolean'},
dats = {list = true},
dats_mod = {default = mod_default},
datp = {list = true},
datp_mod = {default = mod_default},
noabl = {type = 'boolean'},
abls = {list = true},
abls_mod = {default = mod_default},
ablp = {list = true},
ablp_mod = {default = mod_default},
nogen = {type = 'boolean'},
gens = {list = true},
gens_mod = {default = mod_default},
genp = {list = true},
genp_mod = {default = mod_default},
noloc = {type = 'boolean'},
locs = {list = true},
locs_mod = {default = mod_default},
locp = {list = true},
locp_mod = {default = mod_default},
novoc = {type = 'boolean'},
vocs = {list = true},
vocs_mod = {default = mod_default},
vocp = {list = true},
vocp_mod = {default = mod_default},
}
local at = m_parameters.process(args, params)
if ending == 'ah' then
at.impl = 'no'
end
for i, v in ipairs(rows) do
local name = string.lower(string.sub(v,1,3))
if at['no'..name] then
forms[2*i] = {}
forms[2*i-1] = {}
else
modify_form_set(stem, ending, name..'s', 2*i-1, forms, at)
modify_form_set(stem, ending, name..'p', 2*i, forms, at)
end
end
return forms;
end
function export.show(frame)
local args = frame:getParent().args
local PAGENAME = mw.title.getCurrentTitle().text
local stem = args[1] or args["stem"] or PAGENAME
currentScript = lang:findBestScript(stem)
scriptCode = currentScript:getCode()
if scriptCode == "None" and args["sc"] then
scriptCode = args["sc"]
currentScript = require("Module:scripts").getByCode(scriptCode, "No such script as "..scriptCode)
end
local g = args[3] or args["g"] or args["gender"] -- for each gender only
local variation = args["v"] or args["variation"] -- for some scripts
if not g then
error("A gender is required to display proper declensions.")
end
local lookup_g = g
if 'no' == lookup_g then lookup_g = 'm' end -- Arbitrary!
local option = {impl = args["impl"] or 'yes'}
local xlit_options = {}
xlit_options.impl = option.impl
xlit_options.showtr = args.showtr
local ending = args[2] or args["ending"] or export.detectEnding(stem, option)
if ending == 'ah' then xlit_options.impl = 'no' end
local selectedPattern =
export.getSuffixes(scriptCode, ending, lookup_g, option)
if args["liap"] and (scriptCode == 'Laoo') then
selectedPattern = liapise(selectedPattern, args["liap"])
end
if args.y and (scriptCode == 'Laoo') then
selectedPattern = yselect(selectedPattern, args.y, 16)
xlit_options.y = args.y
end
option.aa = args["aa"] -- Reusable!
local forms = export.joinSuffixes(scriptCode, stem, selectedPattern, option)
modify(stem, ending, forms, args)
for ic = 1, 16 do forms[ic] = arrcat({}, forms[ic]) end -- Remove duplicates.
xlit_options.subst = args["subst"]
-- for name, _ in pairs(_G) do mw.addWarning('Global '..name) end
return export.present(args["label"] or stem, g, forms, args["number"], xlit_options)
end
return export
5jkw1dlawgdriy4wg9uhaagcs7l52e3
196080
196078
2024-12-04T15:28:30Z
Lee
19
[[මනුස්ස]] ප්රවේශයේ පරිවර්තන කටයුතු
196080
Scribunto
text/plain
local export = {}
-- require("Module:log globals") -- Examine Lua logs at end of preview for results.
local links = require("Module:links")
local lang = require("Module:languages").getByCode("pi")
local m_parameters = require("Module:parameters")
local m_str_utils = require("Module:string utilities")
local m_translit
local to_script
local find = m_str_utils.find
local gsub = m_str_utils.gsub
local match = m_str_utils.match
local sub = m_str_utils.sub
local u = m_str_utils.char -- For readability.
local load = mw.loadData
local ti = table.insert
local currentScript
local scriptCode
local genders = {
["m"] = "පුරුෂ ලිංග", ["f"] = "feminine", ["n"] = "neuter",
}
local rows = {
"පෙර විබත් (ප්රථමා)", "Accusative (second)", "Instrumental (third)", "Dative (fourth)",
"Ablative (fifth)", "Genitive (sixth)", "Locative (seventh)", "අලප් විබත් (ආලපන)",
}
local endings = {
["one"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["a"] = {},
["ā"] = { "า", "ा", "आ", "া", "আ", "ါ", "ာ", " ႃ", "ᩣ", "ᩤ", "າ", "ា", u(0x17A4),
"ා", "ආ", "𑀸", "𑀆", "𑄂" },
["i"] = { "ิ", "ि", "इ", "ি", "ই", "ိ", "ဣ", "ᩥ", "ᩍ", "ິ", "ិ", "ឥ",
"ි", "ඉ", "𑀺", "𑀇", "𑄨" },
["ī"] = { "ี", "ी", "ई", "ী", "ঈ", "ီ", "ဳ", "ဤ", "ᩦ", "ᩎ", "ີ", "ី", "ឦ",
"ී", "ඊ", "𑀻", "𑀈", "𑄩" },
["u"] = { "ุ", "ु", "उ", "ু", "উ", "ု", "ဥ", "ᩩ", "ᩏ", "ຸ", "ុ", "ឧ",
"ු", "උ", "𑀼", "𑀉", "𑄪" },
["ū"] = { "ู", "ू", "ऊ", "ূ", "ঊ", "ူ", "ဦ", "ᩪ", "ᩐ", "ູ", "ូ", "ឨ", "ឩ",
"ූ", "ඌ", "𑀽", "𑀊", "𑄫" },
["ah"] = { "ะ", "ະ"},
},
["two"] = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
["ar"] = { "รฺ", "ัร", "र्", "র্", "ရ်", "ᩁ᩺", "ᩁ᩼", "ຣ໌", "ຣ຺", "ັຣ", "រ៑",
"ර්", "𑀭𑁆", "𑄢𑄴"},
["as"] = { "สฺ", "ัส", "स्", "স্", "သ်", "ᩈ᩺", "ᩈ᩼", "ສ໌", "ສ຺", "ັສ", "ស៑",
"ස්", "𑀲𑁆", "𑄥𑄴" },
["an"] = { "นฺ", "ัน", "न्", "ন্", "န်", "ᨶ᩺", "ᨶ᩼", "ນ໌", "ນ຺", "ັນ", "ន៑",
"න්", "𑀦𑁆", "𑄚𑄴"},
ent = { "นต", "ນຕ"},
["in"] = { "ิน", "ິນ"},
},
three = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "ันต" , "ັນຕ"},
ent = {},
ont = {},
["in"] = { "ินฺ", "िन्", "িন্", "ိန်", "ᩥᨶ᩺", "ິນ຺", "ិន៑",
"ින්", "𑀺𑀦𑁆", "𑄨𑄚𑄴" },
},
four = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
ant = { "นฺตฺ", "न्त्", "ন্ত্", "န္တ်", "ᨶ᩠ᨲ᩺", "ᨶ᩠ᨲ᩼", "ນ຺ຕ໌", "ນ຺ຕ຺", "ន្ត៑",
"න්ත්", "𑀦𑁆𑀢𑁆", "𑄚𑄴𑄖𑄴" },
vant = { "วันต", "ວັນຕ" },
mant = { "มันต", "ມັນຕ" },
},
five = { -- 'ent' and 'ont' are discontiguous for Thai and Lao. Assume NFC (as above).
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah Cakm
antT = { "න්ත්" },
vant = { "วนฺตฺ", "वन्त्", "ৱন্ত্","ৰন্ত্", "ွန္တ်", "ဝန္တ်", "ᩅᨶ᩠ᨲ᩺", "ᩅᨶ᩠ᨲ᩼", "ວນ຺ຕ຺", "ວນ຺ຕ໌", "វន្ត៑",
"වන්ත්", "𑀯𑀦𑁆𑀢𑁆", "𑅇𑄚𑄴𑄖𑄴" },
mant = { "มนฺตฺ", "मन्त्", "মন্ত্", "မန္တ်", "ᨾᨶ᩠ᨲ᩺", "ᨾᨶ᩠ᨲ᩼", "ມນ຺ຕ຺", "ມນ຺ຕ໌", "មន្ត៑",
"ᩜᨶ᩠ᨲ᩺", "ᩜᨶ᩠ᨲ᩼",
"මන්ත්", "𑀫𑀦𑁆𑀢𑁆", "𑄟𑄚𑄴𑄖𑄴"},
ent = { "ेन्त्", "েন্ত্", "ေန္တ်", "ᩮᨶ᩠ᨲ᩺", "ᩮᨶ᩠ᨲ᩼", "េន្ត៑",
"एन्त्", "এন্ত্", "ဧန္တ်", "ᩑᨶ᩠ᨲ᩺", "ᩑᨶ᩠ᨲ᩼", "ឯន្ត៑",
"ෙන්ත්", "𑁂𑀦𑁆𑀢𑁆", "𑄬𑄚𑄴𑄖𑄴" ,
"එන්ත්", "𑀏𑀦𑁆𑀢𑁆" },
ont = { "ोन्त्", "োন্ত্", "ာန္တ်", "ါန္တ်", "ᩣᨶ᩠ᨲ᩺", "ᩣᨶ᩠ᨲ᩼", "ោន្ត៑",
"ᩤᨶ᩠ᨲ᩺", "ᩤᨶ᩠ᨲ᩼",
"ओन्त्", "ওন্ত্", "ဩန္တ်", "ᩰᨶ᩠ᨲ᩺", "ᩰᨶ᩠ᨲ᩼", "ឲន្ត៑",
"ᩒᨶ᩠ᨲ᩺", "ᩒᨶ᩠ᨲ᩼",
"ොන්ත්", "𑁄𑀦𑁆𑀢𑁆", "𑄮𑄚𑄴𑄖𑄴",
"ඔන්ත්", "𑀑𑀦𑁆𑀢𑁆"},
},
six = {
-- key(Ln) Thai Deva Beng Mymr Lana Laoo Khmr
-- Sinh Brah
vantT = {"වන්ත්" },
mantT = {"මන්ත්" },
entT = {"ෙන්ත්",
"එන්ත්" },
ontT = {"ොන්ත්",
"ඔන්ත්" },
},
}
function export.detectEnding(stem, options)
-- Correct checking order is last 6, last 5, last 4, last 3, last 2, last 1, but we
-- Can do slightly better by knowing the data.
local oneLetter = sub(stem, -1)
for key, arr in pairs(endings.one) do
if oneLetter == key then
return key
end
for _, val in ipairs(arr) do
if oneLetter == val then
return key
end
end
end
-- Check Latin script first
local fourLetters = sub(stem, -4)
if 'mant' == fourLetters or 'vant' == fourLetters then
return fourLetters
end
local wordEnd = sub(stem, -6)
for key, arr in pairs(endings.six) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
wordEnd = sub(stem, -5)
for key, arr in pairs(endings.five) do
-- if wordEnd == key then
-- return key
-- end
for _, val in ipairs(arr) do
if wordEnd == val then
return key
end
end
end
for key, arr in pairs(endings.four) do
if fourLetters == key then return key end
for _, val in ipairs(arr) do
if fourLetters == val then
-- Scripts with visually ordered preposed vowels have not been checked thoroughly
if key == 'ant' and
(oneLetter == u(0x0E3A) or oneLetter == u(0xECC) or
oneLetter == u(0x0EBA)) then
local pm6 = sub(stem, -6, -6)
if match(pm6, '[เโເໂ]') then -- 1 char onset
return 'ent' -- 'ent' for 'ont' matters not.
elseif match(pm6, '['..u(0x0E3A)..u(0x0EBA)..']')
and match(sub(stem, -8, -8), '[เโເໂ]') then -- 2 char onset
return 'ent' -- 'ent' for 'ont' matters not.
else
return key
end
else
return key
end
end
end
end
local threeLetters = sub(stem, -3)
for key, arr in pairs(endings.three) do
if threeLetters == key then
return key
end
for _, val in ipairs(arr) do
if threeLetters == val then return key; end
end
end
local impl = options and options.impl or 'yes' -- Fudge to pass old tests.
wordEnd = sub(stem, -2)
for key, arr in pairs(endings.two) do
if wordEnd == key then
return key
end
for _, val in ipairs(arr) do
if wordEnd == val then
if key == 'ent' then
local pm3 = sub(stem, -3, -3)
if match(pm3, '['..u(0x0e31)..u(0xeb1)..']') then
-- Recognise below
return 'ant'
elseif match(sub(stem, -4, -3), '[เโເໂ][ก-ฮກ-ຮ]') then -- 1 char onset
return 'ent'
elseif match(sub(stem, -5, -3), '[เโເໂ][ก-ฮກ-ຮ][ก-ฮກ-ຮ]') then -- 2 char onset
return 'ent'
end
elseif wordEnd == "ิน" or wordEnd == "ິນ" then
if impl == 'yes' then
return 'a'
elseif impl == 'both' then
error("Does "..stem.." end in -in or -ina?")
else
return key
end
else
return key
end
end
end
end
return "a"
end
-- Selectively converts touching to conjoining.
local sinh_flip = {["කⒿ්ව"]="ක්ව",
["තⒿ්ථ"]="ත්ථ", ["තⒿ්ව"]="ත්ව",
["නⒿ්ථ"]="න්ථ", ["නⒿ්ද"]="න්ද", ["නⒿ්ධ"]="න්ධ", ["නⒿ්ව"]="න්ව",
}
-- Argument option is optional.
function export.joinSuffix(scriptCode, stem, suffixes, option)
if stem == nil then
errmes = {}
table.insert(errmes, 'joinSuffix('..scriptCode)
table.insert(errmes, tostring(stem))
table.insert(errmes, tostring(suffixes))
table.insert(errmes, tostring(option)..')')
error(table.concat(errmes, ','))
end
local output = {}
local term
local aa = option and option.aa or "default"
local join, term2
if scriptCode == 'Lana' or scriptCode == 'Mymr' or scriptCode == 'Sinh' then
join = 'Ⓙ'
else
join = ""
end
for _,suffix in ipairs(suffixes) do
if match(suffix, "^⌫⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -6) .. join .. sub(suffix, 6, -1)
elseif match(suffix, "^⌫⌫⌫⌫") then --backspace
term = sub(stem, 1, -5) .. join .. sub(suffix, 5, -1)
elseif match(suffix, "^⌫⌫⌫") then --backspace
term = sub(stem, 1, -4) .. join .. sub(suffix, 4, -1)
elseif match(suffix, "^⌫⌫") then --backspace
term = sub(stem, 1, -3) .. join .. sub(suffix, 3, -1)
elseif match(suffix, "^⌫") then --backspace
term = sub(stem, 1, -2) .. join .. sub(suffix, 2, -1)
else
term = stem .. join .. suffix
end
--note: Sinh conjuncts are already ready.
if scriptCode == "Thai" then
term = gsub(term, "(.)↶([เโ])", "%2%1") --swap
elseif scriptCode == "Mymr" then
-- term = gsub(term, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha.
term = gsub(term, "(င်္)([ခဂငဒပဝ])(ေ?)Ⓙာ", "%1%2%3ါ") -- redundant!
-- term = gsub(term, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "Ⓙ္[ယရ]", { ["Ⓙ္ယ"] = "ျ", ["Ⓙ္ရ"] = "ြ" }) --these not need tall aa
term = gsub(term, "^([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2ါ")
term = gsub(term, "([^္])([ခဂငဒပဝ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([^္])Ⓙ([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])(္[က-အဿ])Ⓙ(ေ?)ာ", "%1%2%3ါ")
term = gsub(term, "([ခဂငဒပဝ])Ⓙ(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ")
-- term = gsub(term, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" })
-- term = gsub(term, "ဉ္ဉ", "ည")
-- term = gsub(term, "သ္သ", "ဿ")
term = gsub(term, 'Ⓙ', '')
elseif scriptCode == "Lana" then
if aa == "both" then
term2 = gsub(term, 'Ⓙ', '')
end
if aa == "tall" or aa == "both" then
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "(ᨻᩛ)Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, 'Ⓙ', '')
if aa == "tall" then
term2 = term
end
elseif aa == "round" then
term = gsub(term, 'Ⓙ', '')
term2 = term
elseif aa == "default" then
-- term = gsub(term, "ᨦ᩠", "ᩘ")
term = gsub(term, "^([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2ᩤ")
term = gsub(term, "([^᩠])([ᨣᨴᨵᨷᩅ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([^᩠])Ⓙ([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])Ⓙ(ᩮ?)ᩣ", "%1%2%3ᩤ")
term = gsub(term, "([ᨣᨴᨵᨷᩅ])Ⓙ(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ")
-- term = gsub(term, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" })
-- term = gsub(term, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ")
-- term = gsub(term, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ")
-- term = gsub(term, "ᩈ᩠ᩈ", "ᩔ")
term = gsub(term, 'Ⓙ', '')
term2 = term
else
error('Parameter aa has undefined value "'..aa..'".')
end
if term ~= term2 then table.insert(output, term2) end
elseif scriptCode == "Beng" then
term = gsub(term, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly
elseif scriptCode == "Laoo" then
term = gsub(term, "(.຺?)↶([ເໂ])", "%2%1")
elseif scriptCode == "Sinh" then
-- Assume cluster formation appends the joiner.
term = gsub(term, "[කතන]Ⓙ..[ථදධව]", sinh_flip)
term = gsub(term, 'Ⓙ', '')
end
table.insert(output, term)
end
return output
end
function export.joinSuffixes(scriptCode, stem, pattern, option)
local forms = {}
for i,_ in ipairs(rows) do
forms[2*i-1] = export.joinSuffix(scriptCode, stem, pattern[2 * i - 1],
option)
forms[2*i] = export.joinSuffix(scriptCode, stem, pattern[2 * i],
option)
end
return forms
end
function export.orJoin(script, list, options) -- options is optional!
local output = {};
local scriptCode = script:getCode()
local showtr = options and options.showtr or 'plain'
local sep = ''
if 'Latn' == scriptCode then showtr = 'none' end
for _,term in ipairs(list) do
local item = {sc = script, lang = lang, term = term} -- links.full_link() is at liberty to trash this table.
ti(output, sep)
sep = " <small style=\"color:888\">or</small> "
if showtr == 'none' then
item.tr = '-'
else
if options and options.subst then
-- Legal stuff:
-- The contents of this block were lifted from English Wiktionary Module:usex lines 97 to 101
-- of 3 July 2021, which see for attribution, and then localised.
local substs = mw.text.split(options.subst, ",")
for _, subpair in ipairs(substs) do
local subsplit =
mw.text.split(subpair, find(subpair, "//") and "//" or "/")
term = gsub(term, subsplit[1], subsplit[2])
end
end
local aslat = nil
if (scriptCode == 'Thai' and options and options.impl == 'no' or
scriptCode == 'Laoo') then
m_translit = m_translit or require("Module:pi-translit")
aslat = m_translit.trwo(term, 'pi', scriptCode, options)
elseif term ~= item.term then -- Must complete transliteration
aslat = (lang:transliterate(term, script))
end
if showtr == 'plain' then
item.tr = aslat
elseif showtr == 'link' then
aslat = aslat or (lang:transliterate(term, script))
item.tr = links.full_link({term = aslat, lang = lang})
else
item.tr = '-'
error('Bad value for option showtr.')
end
end
ti(output, links.full_link(item))
end
return table.concat(output)
end
-- convert Latin script inflections to another script
-- C2 is second character of pseudostem. Ignored if NIL.
local function convert_one_set(stem, nstrip, suffixes, sc, impl, c2)
local form, pre
local strip = string.rep("⌫", nstrip)
local option = {impl = impl}
local xlitend = {}
form = export.joinSuffix('Latn', stem, suffixes)
for ia, va in pairs(form) do
local altform = sub(to_script(va..'#', sc, option), 1, -2)
-- Special handling is needed for a preposed vowel.
pre = match(altform, "^[เโເໂ]")
if pre then
xlitend[ia] = strip .. "↶" .. pre .. sub(altform, 3)
-- Quick cheat for Myanmar script variants.
elseif c2 and c2 == sub(altform,2,2) then
xlitend[ia] = sub(strip, 2) .. sub(altform, 3)
-- Back to the normal case.
else
xlitend[ia] = strip .. sub(altform, 2)
end
end
return xlitend
end
local convert_suffixes = function(stem, nstrip, suffixes, sc, impl)
local xlitend = {}
to_script = to_script or require("Module:pi-Latn-translit").tr
local c2
if nstrip > 0 and sc == 'Mymr' then
c2 = sub(to_script(stem, sc, option), 2, 2)
end
-- Seemingly #suffixes doesn't work because the module is loaded!
-- Testing didn't reveal a problem, but avoiding it solved the problem!
-- for k = 1, #suffixes do
if #suffixes ~= 16 then error('#suffixes = '..tostring(#suffixes)) end
for k, _ in ipairs(suffixes) do
xlitend[k] = convert_one_set(stem, nstrip, suffixes[k], sc, impl, c2)
end
return xlitend
end
local liapise = function(retval, liap) -- Change Lao abl/ins plural
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local dob = nil local dobh = nil local sena = nil
if liap == 'b' then
dob = 1
elseif liap == 'bh' then
dobh = 1
elseif liap == 'b.' then
sena = 1
elseif liap == 'bbh' then
dob = 1 dobh = 1
elseif liap == 'bb.' then
dob = 1 sena = 1
elseif liap == 'bhb.' then
dobh = 1 sena = 1
elseif liap == 'none' then
elseif liap == 'all' or liap == 'bbhb.' then
dob = 1 dobh = 1 sena = 1
else
error('Value "'..liap..'" of liap is not understood.')
end
for caseno = 6, 10, 4 do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if sub(form, -2, -1) == 'ຠິ' then
if dob then table.insert(nuforms, sub(form,1,-3)..'ພິ') end
if dobh then table.insert(nuforms, form) end
if sena then table.insert(nuforms, sub(form,1,-3)..'ພ຺ິ') end
else
table.insert(nuforms, form)
end
end
retval[caseno] = nuforms
end
return retval
end
local yselect = function(retval, yval, nvals) -- Change Lao case ending
-- Copy list to avoid changing data from data module.
local oval = retval retval = {}
for _, forms in ipairs(oval) do table.insert(retval, forms) end
local yung = nil local yaa = nil
if yval == 'both' then
yung = 1
yaa = 1
elseif yval == 'ຍ' then
yung = 1
elseif yval == 'ຢ' then
yaa = 1
elseif yval == 'yung' then
yung = 1
elseif yval == 'yaa' then
yaa = 1
else
error('Value "'..yval..'" of argument y is not understood.')
end
for caseno = 1, nvals do
local forms = retval[caseno]
local nuforms = {}
for _, form in ipairs(forms) do
if yung then
local s = gsub(form, '[ຍຢ]', 'ຍ') -- gsub() is a bad actual arg!
table.insert(nuforms, s)
end
if yaa then
local s = gsub(form, '[ຍຢ]', 'ຢ')
table.insert(nuforms, s)
end
end
retval[caseno] = nuforms
end
return retval
end
function export.arrcat_nodup(a1, a2) -- Concatenate two arrays without duplication
-- One of the arrays may have been 'loaded', so cannot use the # operator.
local n1 = 0
local cat = {}
for _, a1v in ipairs(a1) do
n1 = n1 + 1
cat[n1] = a1v
end
for _, a2v in ipairs(a2) do
local met = false
for j = 1, n1 do
if a2v == cat[j] then
met = true
break
end
end
if not met then
n1 = n1 + 1
cat[n1] = a2v
end
end
return cat
end
local arrcat = export.arrcat_nodup
local both_sets = function(scriptCode, ending, g, option)
option.impl= 'yes'
iset = export.getSuffixes(scriptCode, ending, g, option)
option.impl = 'no'
eset = export.getSuffixes(scriptCode, ending, g, option)
retval = {}
-- error('i='..iset[3][1]..' e='..eset[3][1])
for ic = 1, 16 do
retval[ic] = arrcat(iset[ic], eset[ic])
end
-- error('m1='..'<'..tostring(retval[1][1])..'>'..' m2='..'<'..tostring(retval[1][2])..'>')
return retval
end
local function wayToConvert(ending, impl)
local antlen = {yes = 4, no = 3} -- Length by implicitness.
local inlen = {yes = 3, no = 2}
local way = {
a = {pseudoStem = 'ka', ndel = 0},
ar = {pseudoStem = 'kar', ndel = 2},
as = {pseudoStem = 'kas', ndel = 2},
an = {pseudoStem = 'kan', ndel = 2},
ant = {pseudoStem = 'kant', ndel = antlen[impl]},
ent = {pseudoStem = 'kant', ndel = antlen[impl]},
ont = {pseudoStem = 'kant', ndel = antlen[impl]},
mant = {pseudoStem = 'kant', ndel = antlen[impl]},
vant = {pseudoStem = 'kant', ndel = antlen[impl]},
antT = {pseudoStem = 'kant', ndel = 5},
entT = {pseudoStem = 'kant', ndel = 5},
ontT = {pseudoStem = 'kant', ndel = 5},
mantT = {pseudoStem = 'kant', ndel = 5},
vantT = {pseudoStem = 'kant', ndel = 5},
["ā"] = {pseudoStem = 'kā', ndel = 1},
i = {pseudoStem = 'ki', ndel = 1},
["ī"] = {pseudoStem = 'kī', ndel = 1},
["in"]= {pseudoStem = 'kin', ndel = inlen[impl]},
u = {pseudoStem = 'ku', ndel = 1},
["ū"] = {pseudoStem = 'kū', ndel = 1},
}
if impl == 'no' then
way.a = {pseudoStem = 'ka', ndel = 1}
way.ent = {pseudoStem = 'knt', ndel = 2}
way.ont = {pseudoStem = 'knt', ndel = 2}
end
return way[ending]
end
function export.getSuffixes(scriptCode, ending, g, option)
local impl = option and option.impl or 'yes'
if (impl == 'both') then
return both_sets(scriptCode, ending, g, option)
end
local pattern = load("Module:pi-decl/noun/" .. scriptCode)
local applicable = pattern and pattern[ending] and pattern[ending][g]
if applicable then
if impl == 'yes' or ending == 'ah' then
return applicable
end
elseif 'Latn' == scriptCode then
return nil
elseif 'ah' == ending then
ending = 'a'
impl = 'no'
end
pattern = require("Module:pi-decl/noun/Latn") -- Why doesn't load work with testcases?
local tabulated_ending = ending
if 'T' == sub(ending, -1) then
tabulated_ending = sub(ending, 1, -2)
end
applicable = pattern and pattern[tabulated_ending] and
pattern[tabulated_ending][g]
if not applicable then
error('Not even Latin script has ' .. g .. ' -'..tabulated_ending..
' endings.')
return nil -- If you don't like the message above!
end
way = wayToConvert(ending, impl)
if not way then return nil end
return convert_suffixes(way.pseudoStem, way.ndel, applicable,
scriptCode, impl)
end
function export.present(stem, g, forms, number, options) -- options is optional
local gmark, dos, dop
if 'no' == g then
gmark = ''
else
gmark = ' (' .. genders[g] .. ')'
end
if not number or number == 'both'then
dos = 1; dop = 1
elseif number == 's' then
dos = 1; dop = nil;
elseif number == 'p' then
dos = nil; dop = 1;
else
error('Parameter "number" has meaningless value "'..number..'".' )
end
local output = {}
table.insert(output, '<div class="NavFrame" style="min-width:30%"><div class="NavHead" style="background:var(--wikt-palette-lightblue,#d9ebff)">"' .. stem .. '" සඳහා වරනැඟීම් වගුව' .. gmark..'</div><div class="NavContent">')
table.insert(output, '<table class="inflection-table" style="background:var(--wikt-palette-paleblue,#f8f9fa);text-align:center;width:100%"><tr><th style="background:var(--wikt-palette-cyan,#eaffff)">විභක්ති \\ ඒකවචන, බහුවචන</th>')
if dos then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">ඒකවචන</th>')
end
if dop then
table.insert(output, '<th style="background:var(--wikt-palette-cyan,#eaffff)">බහුවචන</th></tr>')
end
for i,v in ipairs(rows) do
if #forms[2*i-1] > 0 or #forms[2*i] > 0 then
table.insert(output, "<tr><td style=\"background:var(--wikt-palette-cyan,#eaffff)\">" .. v .. "</td>")
if dos then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i - 1], options))
table.insert(output, "</td>")
end
if dop then
table.insert(output, "<td>")
table.insert(output, export.orJoin(currentScript, forms[2 * i], options))
table.insert(output, "</td>")
end
table.insert(output, "</tr>")
end
end
table.insert(output, "</table></div></div>")
return table.concat(output)
end
local function unwritten() error('Code missing.') end
local function liapise_one_set(set, liap)
local forms = { {}, {}, {}, {}, {}, set,
{}, {}, {}, {}, {},
{}, {}, {}, {}, {} }
local modified = liapise(forms, liap)
return modified[6]
end
local function modify_form_set(stem, ending, name, caseno, forms, at)
local ipalts = at[name]
local way = at[name..'_mod']
to_script = to_script or require("Module:pi-Latn-translit").tr
if ipalts and #ipalts > 0 then
local alts = {}
for j, v in ipairs(ipalts) do
local c1 = string.sub(v,1,1)
local vsc = lang:findBestScript(v):getCode()
if vsc == 'None' then
vsc = at.sc and sc or vsc
end
if '+' == c1 then
local vext
v = string.sub(v,2)
if vsc ~= 'Latn' then
vext = {at.dc and dc(v) or v}
elseif scriptCode ~= 'Latn' then
local impls
if at.impl == 'both' then
impls = {'yes', 'no'}
else
impls = {at.impl}
end
vext = {}
for _, impl in ipairs(impls) do
local cvtway = wayToConvert(ending, impl)
local vset = convert_one_set(cvtway.pseudoStem, cvtway.ndel,
{v}, scriptCode, impl, nil)
vext = arrcat(vext, vset)
end
if scriptCode == 'Laoo' then
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
else
vext = {v}
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
end
local vext = export.joinSuffix(scriptCode, stem, vext, at)
for _, vv in ipairs(vext) do ti(alts, vv) end
elseif vsc == scriptCode then
ti(alts, v)
elseif vsc == 'Latn' then
-- TODO: Sane Myanmar and Lao script support.
local options = {}
local vext = {}
if at.impl and at.impl == 'both' then
options.y = at.y -- Probably ineffective
options.impl = 'yes'
ti(vext, to_script(v, scriptCode, options))
options.impl = 'no'
ti(vext, to_script(v, scriptCode, options))
else
ti(vext, to_script(v, scriptCode, options))
end
if scriptCode == 'Laoo' and vsc == 'Latn'
and (caseno == 6 or caseno == 10) then
vext = liapise_one_set(vext, at.liap)
local vexset = yselect({vext}, at.y, 1)
vext = vexset(1)
end
for _, vv in ipairs(vext) do ti(alts, vv) end
else
ti(alts, v) -- Go ahead anyway
end
end
if 'after' == way then
forms[caseno] = arrcat(forms[caseno], alts)
elseif 'before' == way then
forms[caseno] = arrcat(alts, forms[caseno])
elseif 'replace' == way then
forms[caseno] = alts;
elseif 'blank' == way then
-- Issue warning about alts?
forms[caseno] = {}
else
error('Bad value for parameter '..name..'_mod')
end
elseif 'blank' == way then
forms[caseno] = {}
end
end
local function modify(stem, ending, forms, args)
local mod_default = 'after'
local params = {
[1] = {alias_of = 'stem'},
[2] = {alias_of = 'ending'},
[3] = {alias_of = 'g'},
stem = {},
ending = {},
g = {required = true},
gender = {alias_of = 'g'},
v = {},
variation = {alias_of = 'v'},
label = {},
number = {},
showtr = {},
subst = {},
sc = {},
aa = {default = 'default'},
liap = {default = 'default'},
impl = {default = 'yes'},
y = {default = 'default'},
nonom = {type = 'boolean'},
noms = {list = true},
noms_mod = {default = mod_default},
nomp = {list = true},
nomp_mod = {default = mod_default},
noacc = {type = 'boolean'},
accs = {list = true},
accs_mod = {default = mod_default},
accp = {list = true},
accp_mod = {default = mod_default},
noins = {type = 'boolean'},
inss = {list = true},
inss_mod = {default = mod_default},
insp = {list = true},
insp_mod = {default = mod_default},
nodat = {type = 'boolean'},
dats = {list = true},
dats_mod = {default = mod_default},
datp = {list = true},
datp_mod = {default = mod_default},
noabl = {type = 'boolean'},
abls = {list = true},
abls_mod = {default = mod_default},
ablp = {list = true},
ablp_mod = {default = mod_default},
nogen = {type = 'boolean'},
gens = {list = true},
gens_mod = {default = mod_default},
genp = {list = true},
genp_mod = {default = mod_default},
noloc = {type = 'boolean'},
locs = {list = true},
locs_mod = {default = mod_default},
locp = {list = true},
locp_mod = {default = mod_default},
novoc = {type = 'boolean'},
vocs = {list = true},
vocs_mod = {default = mod_default},
vocp = {list = true},
vocp_mod = {default = mod_default},
}
local at = m_parameters.process(args, params)
if ending == 'ah' then
at.impl = 'no'
end
for i, v in ipairs(rows) do
local name = string.lower(string.sub(v,1,3))
if at['no'..name] then
forms[2*i] = {}
forms[2*i-1] = {}
else
modify_form_set(stem, ending, name..'s', 2*i-1, forms, at)
modify_form_set(stem, ending, name..'p', 2*i, forms, at)
end
end
return forms;
end
function export.show(frame)
local args = frame:getParent().args
local PAGENAME = mw.title.getCurrentTitle().text
local stem = args[1] or args["stem"] or PAGENAME
currentScript = lang:findBestScript(stem)
scriptCode = currentScript:getCode()
if scriptCode == "None" and args["sc"] then
scriptCode = args["sc"]
currentScript = require("Module:scripts").getByCode(scriptCode, "No such script as "..scriptCode)
end
local g = args[3] or args["g"] or args["gender"] -- for each gender only
local variation = args["v"] or args["variation"] -- for some scripts
if not g then
error("A gender is required to display proper declensions.")
end
local lookup_g = g
if 'no' == lookup_g then lookup_g = 'm' end -- Arbitrary!
local option = {impl = args["impl"] or 'yes'}
local xlit_options = {}
xlit_options.impl = option.impl
xlit_options.showtr = args.showtr
local ending = args[2] or args["ending"] or export.detectEnding(stem, option)
if ending == 'ah' then xlit_options.impl = 'no' end
local selectedPattern =
export.getSuffixes(scriptCode, ending, lookup_g, option)
if args["liap"] and (scriptCode == 'Laoo') then
selectedPattern = liapise(selectedPattern, args["liap"])
end
if args.y and (scriptCode == 'Laoo') then
selectedPattern = yselect(selectedPattern, args.y, 16)
xlit_options.y = args.y
end
option.aa = args["aa"] -- Reusable!
local forms = export.joinSuffixes(scriptCode, stem, selectedPattern, option)
modify(stem, ending, forms, args)
for ic = 1, 16 do forms[ic] = arrcat({}, forms[ic]) end -- Remove duplicates.
xlit_options.subst = args["subst"]
-- for name, _ in pairs(_G) do mw.addWarning('Global '..name) end
return export.present(args["label"] or stem, g, forms, args["number"], xlit_options)
end
return export
5ejflnrqlz0bpkb0ztvui7ojtnzekmk
Module:category tree/poscatboiler/data/lemmas
828
9487
196037
186491
2024-11-28T21:30:06Z
en>Surjection
0
for Northern Mansi
196037
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
local diminutive_augmentative_poses = {
"adjectives",
"adverbs",
"interjections",
"nouns",
"numerals",
"prefixes",
"proper nouns",
"pronouns",
"suffixes",
"verbs"
}
labels["lemmas"] = {
description = "{{{langname}}} [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "Fundamental",
parents = {{name = "{{{langcat}}}", raw = true, sort = " "}},
}
labels["abstract verbs"] = {
description = "{{{langname}}} abstract verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action. Abstract verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect.",
additional = "See also [[abstract verb]].",
parents = {"verbs"},
}
labels["action nouns"] = {
description = "{{{langname}}} nouns denoting action of a verb or verbal root that it is derived from.",
parents = {"nouns"},
}
labels["act-related adverbs"] = {
description = "{{{langname}}} adverbs that indicate the motive or other background information for an action.",
parents = {"adverbs"},
}
labels["active verbs"] = {
description = "{{{langname}}} verbs that indicate an activity",
parents = {"verbs"},
}
labels["adjective concords"] = {
description = "{{{langname}}} concords that are prefixed to adjective stems.",
parents = {"concords"},
}
labels["adjectives"] = {
description = "{{{langname}}} terms that give attributes to nouns, extending their definitions.",
parents = {"lemmas"},
}
labels["adverbial accusatives"] = {
description = "Accusative case-forms in {{{langname}}} used as adverbs.",
parents = {"adverbs"},
}
labels["adverbs"] = {
description = "{{{langname}}} terms that modify clauses, sentences and phrases directly.",
parents = {"lemmas"},
}
labels["affixes"] = {
description = "Morphemes attached to existing {{{langname}}} words.",
parents = {"morphemes"},
}
labels["agent nouns"] = {
description = "{{{langname}}} nouns that denote an agent that performs the action denoted by the verb from which the noun is derived.",
parents = {"nouns"},
}
labels["ambipositions"] = {
description = "{{{langname}}} adpositions that can occur either before or after their objects.",
parents = {"lemmas"},
}
labels["ambitransitive verbs"] = {
description = "{{{langname}}} verbs that may or may not direct actions, occurrences or states to grammatical objects.",
parents = {"verbs", "transitive verbs", "intransitive verbs"},
}
labels["animal commands"] = {
description = "{{{langname}}} words used to communicate with animals.",
parents = {"interjections"},
}
labels["articles"] = {
description = "{{{langname}}} terms that indicate and specify nouns.",
parents = {"determiners"},
}
labels["aspect adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Grammatical aspect|grammatical aspect]], describing the flow of time in relation to a statement.",
parents = {"adverbs"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["augmentative " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey big size or big intensity.",
parents = {pos},
}
end
labels["attenuative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event is performed or takes place gently, lightly, partially, perfunctorily or to an otherwise reduced extent.",
parents = {"verbs"},
}
labels["autobenefactive verbs"] = {
description = "{{{langname}}} verbs that indicate that the agent of an action is also its benefactor.",
parents = {"verbs"},
}
labels["automative verbs"] = {
description = "{{{langname}}} verbs that indicate actions directed at or a change of state of the grammatical subject.",
parents = {"verbs"},
}
labels["auxiliary verbs"] = {
description = "{{{langname}}} verbs that provide additional conjugations for other verbs.",
parents = {"verbs"},
}
labels["biaspectual verbs"] = {
description = "{{{langname}}} verbs that can be both imperfective and perfective.",
parents = {"verbs"},
}
labels["causative verbs"] = {
description = "{{{langname}}} verbs that express causing actions or states rather than performing or being them directly. Use this only for separate verbs (as opposed to causative forms that are part of the inflection of verbs).",
parents = {"verbs"},
}
labels["circumfixes"] = {
description = "Affixes attached to both the beginning and the end of {{{langname}}} words, functioning together as single units.",
parents = {"morphemes"},
}
labels["circumpositions"] = {
description = "{{{langname}}} adpositions that appear on both sides of their objects.",
parents = {"lemmas"},
}
labels["classifiers"] = {
description = "{{{langname}}} terms that classify nouns according to their meanings.",
parents = {"lemmas"},
}
labels["clitics"] = {
description = "{{{langname}}} morphemes that function as independent words, but are always attached to another word.",
parents = {"morphemes"},
}
for _, pos in ipairs { "nouns", "suffixes" } do
labels["collective " .. pos] = {
description = "{{{langname}}} " .. pos .. " that indicate groups of related things or beings, without the need of grammatical pluralization.",
parents = {pos},
}
end
labels["combining forms"] = {
description = "Forms of {{{langname}}} words that do not occur independently, but are used when joined with other words.",
parents = {"morphemes"},
}
labels["comparable adjectives"] = {
description = "{{{langname}}} adjectives that can be inflected to display different degrees of comparison.",
parents = {"adjectives"},
}
labels["comparable adverbs"] = {
description = "{{{langname}}} adverbs that can be inflected to display different degrees of comparison.",
parents = {"adverbs"},
}
labels["comparative-only adjectives"] = {
description = "{{{langname}}} adjectives that are only used in their comparative forms.",
parents = {"adjectives"},
}
labels["completive verbs"] = {
description = "{{{langname}}} verbs which refer to the completion of an action which has already commenced or which has already been performed upon a subset of the entities which it affects.",
parents = {"verbs"},
}
labels["concords"] = {
description = "{{{langname}}} prefixes attached to words to show agreement with a noun or pronoun.",
parents = {"prefixes"},
}
labels["concrete verbs"] = {
description = "{{{langname}}} concrete verbs refer to a verbal aspect in verbs of motion that is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions). Concrete verbs may be either imperfective or perfective.",
additional = "See also [[concrete verb]].",
parents = {"verbs"},
}
labels["conjunctions"] = {
description = "{{{langname}}} terms that connect words, phrases or clauses together.",
parents = {"lemmas"},
}
labels["conjunctive adverbs"] = {
description = "{{{langname}}} adverbs that connect two independent clauses together.",
parents = {"adverbs"},
}
labels["continuative verbs"] = {
description = "{{{langname}}} verbs that express continuing action.",
parents = {"verbs"},
}
labels["control verbs"] = {
description = "{{{langname}}} verbs that take multiple arguments, one of which is another verb. One of the control verb's arguments is syntactically both an argument of the control verb and an argument of the other verb.",
parents = {"verbs"},
}
labels["cooperative verbs"] = {
description = "{{{langname}}} verbs that indicate cooperation",
parents = {"verbs"},
}
labels["coordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate equal syntactic importance between connected items.",
parents = {"conjunctions"},
}
labels["copulative verbs"] = {
description = "{{{langname}}} verbs that may take adjectives as their complement.",
parents = {"verbs"},
}
for _, pos in ipairs { "nouns", "proper nouns" } do
labels["countable " .. pos] = {
description = "{{{langname}}} " .. pos .. " that can be quantified directly by numerals.",
parents = {pos},
}
end
labels["countable numerals"] = {
description = "{{{langname}}} numerals that can be quantified directly by other numerals.",
parents = {"numerals"},
}
labels["countable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that can be quantified directly by numerals.",
parents = {"numerals"},
}
labels["counters"] = {
description = "{{{langname}}} terms that combine with numerals to express quantity of nouns.",
parents = {"lemmas"},
}
labels["cumulative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event gradually yields a certain or significant quantity or effect.",
parents = {"verbs"},
}
labels["degree adverbs"] = {
description = "{{{langname}}} adverbs that express a particular degree to which the word they modify applies.",
parents = {"adverbs"},
}
labels["delimitative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event is performed or takes place briefly or to an otherwise reduced extent.",
parents = {"verbs"},
}
labels["demonstrative adjectives"] = {
description = "{{{langname}}} adjectives that refer to nouns, comparing them to external references.",
parents = {"adjectives", {name = "demonstrative pro-forms", sort = "adjectives"}},
}
labels["demonstrative adverbs"] = {
description = "{{{langname}}} adverbs that refer to other adverbs, comparing them to external references.",
parents = {"adverbs", {name = "demonstrative pro-forms", sort = "adverbs"}},
}
labels["denominal verbs"] = { -- in [[Appendix:Glossary]]; "denominative" more frequent?
description = "{{{langname}}} verbs that derive from nouns.",
parents = { "verbs" },
}
labels["demonstrative determiners"] = {
description = "{{{langname}}} determiners that refer to nouns, comparing them to external references.",
parents = {"determiners", {name = "demonstrative pro-forms", sort = "determiners"}},
}
labels["demonstrative pronouns"] = {
description = "{{{langname}}} pronouns that refer to nouns, comparing them to external references.",
parents = {"pronouns", {name = "demonstrative pro-forms", sort = "pronouns"}},
}
labels["deponent verbs"] = {
description = "{{{langname}}} verbs that have active meanings but are not conjugated in the active voice.",
parents = {"verbs"},
}
labels["derivational prefixes"] = {
description = "{{{langname}}} prefixes that are used to create new words.",
parents = {"prefixes"},
}
labels["derivational suffixes"] = {
description = "{{{langname}}} suffixes that are used to create new words.",
parents = {"suffixes"},
}
labels["derivative verbs"] = {
description = "{{{langname}}} verbs that are derived from nouns and adjectives.",
parents = {"verbs"},
}
labels["desiderative verbs"] = {
description = "{{{langname}}} verbs with the following morphology: verbal root xxx + [[desiderative]] affix, and the following semantics: to wish to do the action xxx.",
parents = {"verbs"},
}
labels["determinatives"] = {
description = "{{{langname}}} terms that indicate the general class to which the following logogram belongs.",
parents = {"lemmas"},
}
labels["determiners"] = {
description = "{{{langname}}} terms that narrow down, within the conversational context, the referent of the following noun.",
parents = {"lemmas"},
}
labels["diminutiva tantum"] = {
description = "{{{langname}}} nouns or noun senses that are mostly or exclusively used in the diminutive form.",
parents = {"nouns"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["diminutive " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey endearment, small size or small intensity.",
parents = {pos},
}
end
labels["discourse particles"] = {
description = "{{{langname}}} particles that manage the flow and structure of discourse.",
parents = {"particles"},
}
labels["distributive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event involves multiple participants or a large quantity of an uncountable mass, usually as the grammatical subject in the case of intransitive verbs and as the grammatical object in the case of transitive verbs.",
parents = {"verbs"},
}
labels["ditransitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states of two grammatical objects simultaneously, one direct and one indirect.",
parents = {"verbs", "transitive verbs"},
}
labels["dualia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the dual form.",
parents = {"nouns"},
}
labels["duration adverbs"] = {
description = "{{{langname}}} adverbs that express duration in time, such as (in English) [[always]], [[all night]] and [[ever since]].",
parents = {"time adverbs"},
}
labels["ergative verbs"] = {
description = "{{{langname}}} [[Appendix:Glossary#ergative|ergative verb]]s: intransitive verbs that become causatives when used transitively.",
parents = {"verbs", "intransitive verbs", "transitive verbs"},
}
labels["excessive verbs"] = {
description = "{{{langname}}} verbs that indicate that an action is performed to an excessive extent.",
parents = {"verbs"},
}
labels["enclitics"] = {
description = "{{{langname}}} clitics that attach to the preceding word.",
parents = {"clitics"},
}
labels["nouns with other-gender equivalents"] = {
description = "{{{langname}}} nouns that refer to gendered concepts (e.g. [[actor]] vs. [[actress]], [[king]] vs. [[queen]]) and have corresponding other-gender equivalent terms.",
parents = {"nouns"},
}
labels["female equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to female beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["neuter equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to neuter beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["female equivalent suffixes"] = {
description = "{{{langname}}} suffixes that refer to female beings with the same characteristics as the base suffix.",
parents = {"noun-forming suffixes"},
}
labels["focus adverbs"] = {
description = "{{{langname}}} adverbs that indicate [[w:Focus (linguistics)|focus]] within the sentence.",
parents = {"adverbs"},
}
labels["frequency adverbs"] = {
description = "{{{langname}}} adverbs that express repetition with a certain frequency or interval, such as (in English) [[monthly]], [[continually]] and [[once in a while]].",
parents = {"time adverbs"},
}
labels["frequentative verbs"] = {
description = "{{{langname}}} verbs that express repeated action.",
parents = {"verbs"},
}
labels["general pronouns"] = {
description = "{{{langname}}} pronouns that refer to all persons, things, abstract ideas and their characteristics.",
parents = {"pronouns"},
}
labels["generational moieties"] = {
description = "{{{langname}}} moieties that alternate every generation.",
parents = {"moieties"},
}
labels["ideophones"] = {
description = "{{{langname}}} terms that evoke an idea, especially a sensation or impression, with a sound.",
parents = {"lemmas"},
}
labels["imperfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as ongoing or continuous, as opposed to completed events.",
parents = {"verbs"},
}
labels["impersonal verbs"] = {
description = "{{{langname}}} verbs that do not indicate actions, occurrences or states of any specific grammatical subject.",
parents = {"verbs"},
}
labels["inchoative verbs"] = {
description = "{{{langname}}} verbs that indicate the beginning of an action or event.",
parents = {"verbs"},
}
labels["indefinite adjectives"] = {
description = "{{{langname}}} adjectives that refer to unspecified adjective meanings.",
parents = {"adjectives", {name = "indefinite pro-forms", sort = "adjectives"}},
}
labels["indefinite adverbs"] = {
description = "{{{langname}}} adverbs that refer to unspecified adverbial meanings.",
parents = {"adverbs", {name = "indefinite pro-forms", sort = "adverbs"}},
}
labels["indefinite determiners"] = {
description = "{{{langname}}} determiners that designate an unidentified noun.",
parents = {"determiners", {name = "indefinite pro-forms", sort = "determiners"}},
}
labels["indefinite pronouns"] = {
description = "{{{langname}}} pronouns that refer to unspecified nouns.",
parents = {"pronouns", {name = "indefinite pro-forms", sort = "pronouns"}},
}
labels["infixes"] = {
description = "Affixes inserted inside {{{langname}}} words.",
parents = {"morphemes"},
}
labels["inflectional prefixes"] = {
description = "{{{langname}}} prefixes that are used as inflectional beginnings in noun, adjective or verb paradigms.",
parents = {"prefixes"},
}
labels["inflectional suffixes"] = {
description = "{{{langname}}} suffixes that are used as inflectional endings in noun, adjective or verb paradigms.",
parents = {"suffixes"},
}
labels["intensive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed vigorously, enthusiastically, forcefully or to an otherwise enlarged extent.",
parents = {"verbs"},
}
labels["interfixes"] = {
description = "Affixes used to join two {{{langname}}} words or morphemes together.",
parents = {"morphemes"},
}
labels["interjections"] = {
description = "{{{langname}}} terms that express emotions, sounds, etc. as exclamations.",
parents = {"lemmas"},
}
labels["interrogative adjectives"] = {
description = "{{{langname}}} adjectives that indicate questions.",
parents = {"adjectives", {name = "interrogative pro-forms", sort = "adjectives"}},
}
labels["interrogative adverbs"] = {
description = "{{{langname}}} adverbs that indicate questions.",
parents = {"adverbs", {name = "interrogative pro-forms", sort = "adverbs"}},
}
labels["interrogative determiners"] = {
description = "{{{langname}}} determiners that indicate questions.",
parents = {"determiners", {name = "interrogative pro-forms", sort = "determiners"}},
}
labels["interrogative particles"] = {
description = "{{{langname}}} particles that indicate questions.",
parents = {"particles", {name = "interrogative pro-forms", sort = "particles"}},
}
labels["interrogative pronouns"] = {
description = "{{{langname}}} pronouns that indicate questions.",
parents = {"pronouns", {name = "interrogative pro-forms", sort = "pronouns"}},
}
labels["intransitive verbs"] = {
description = "{{{langname}}} verbs that don't require any grammatical objects.",
parents = {"verbs"},
}
labels["iterative verbs"] = {
description = "{{{langname}}} verbs that express the repetition of an event.",
parents = {"verbs"},
}
labels["location adverbs"] = {
description = "{{{langname}}} adverbs that indicate location.",
parents = {"adverbs"},
}
labels["male equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to male beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["manner adverbs"] = {
description = "{{{langname}}} adverbs that indicate the manner, way or style in which an action is performed.",
parents = {"adverbs"},
}
labels["modal adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Linguistic modality|linguistic modality]], indicating the mood or attitude of the speaker with respect to what is being said.",
parents = {"sentence adverbs"},
}
labels["modal particles"] = {
description = "{{{langname}}} particles that reflect the mood or attitude of the speaker, without changing the basic meaning of the sentence.",
parents = {"particles"},
}
labels["modal verbs"] = {
description = "{{{langname}}} verbs that indicate [[grammatical mood]].",
parents = {"auxiliary verbs"},
}
labels["moieties"] = {
description = "{{{langname}}} pairs of abstract categories separating people and the environment.",
parents = {"lemmas"},
}
labels["momentane verbs"] = {
description = "{{{langname}}} verbs that express a sudden and brief action.",
parents = {"verbs"},
}
labels["morphemes"] = {
description = "{{{langname}}} word-elements used to form full words.",
parents = {"lemmas"},
}
labels["multiword terms"] = {
description = "{{{langname}}} lemmas that are a combination of multiple words, including [[WT:CFI#Idiomaticity|idiomatic]] combinations.",
parents = {"lemmas"},
}
labels["negative verbs"] = {
description = "{{{langname}}} verbs that indicate the lack of an action.",
parents = {"verbs"},
}
labels["negative particles"] = {
description = "{{{langname}}} particles that indicate negation.",
parents = {"particles"},
}
labels["negative pronouns"] = {
description = "{{{langname}}} pronouns that refer to negative or non-existent references.",
parents = {"pronouns"},
}
labels["neutral verbs"] = {
description = "{{{langname}}} verbs that indicate either or both an activity or a result of an activity",
parents = {"verbs"},
}
labels["nominalized adjectives"] = {
description = "{{{langname}}} adjectives that are used as nouns.",
parents = {"nouns", "adjectives"},
}
labels["non-constituents"] = {
description = "{{{langname}}} terms that are not grammatical [[constituent#Noun|constituents]], and therefore need to be combined with additional terms to form a complete phrase.",
parents = {"phrases"},
}
labels["noun prefixes"] = {
description = "{{{langname}}} prefixes attached to a noun that display its noun class.",
parents = {"prefixes"},
}
labels["nouns"] = {
description = "{{{langname}}} terms that indicate people, beings, things, places, phenomena, qualities or ideas.",
parents = {"lemmas"},
}
labels["nouns by classifier"] = {
description = "{{{langname}}} nouns organized by the classifier they are used with.",
parents = {{name = "nouns", sort = "classifier"}},
}
labels["numerals"] = {
description = "{{{langname}}} terms that quantify nouns.",
parents = {"lemmas"},
}
labels["object concords"] = {
description = "{{{langname}}} concords used to show the grammatical object.",
parents = {"concords"},
}
labels["object pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical objects.",
parents = {"pronouns"},
}
labels["particles"] = {
description = "{{{langname}}} terms that do not belong to any of the inflected grammatical word classes, often lacking their own grammatical functions and forming other parts of speech or expressing the relationship between clauses.",
parents = {"lemmas"},
}
labels["passive verbs"] = {
description = "{{{langname}}} verbs that are usually used in passive voice.",
parents = {"verbs"},
}
labels["perfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as completed events, as opposed to ongoing or continuous.",
parents = {"verbs"},
}
labels["personal pronouns"] = {
description = "{{{langname}}} pronouns that are used as substitutes for known nouns.",
parents = {"pronouns"},
}
labels["phrasal verbs"] = {
description = "{{{langname}}} verbs accompanied by particles, such as prepositions and adverbs.",
parents = {"verbs", "phrases"},
}
labels["phrasal prepositions"] = {
description = "{{{langname}}} prepositions formed with combinations of other terms.",
parents = {"prepositions", "phrases"},
}
labels["pluralia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the plural form.",
parents = {"nouns"},
}
labels["point-in-time adverbs"] = {
description = "{{{langname}}} adverbs that reference a specific point in time, e.g. {{m|en|yesterday}}, {{m+|es|anoche||last night}} or {{m+|hu|egykor||at one o'clock}}.",
parents = {"time adverbs"},
}
labels["possessable nouns"] = {
description = "{{{langname}}} nouns can have their possession indicated directly by possessive pronouns.",
parents = {"nouns"},
umbrella = {
description = "Categories with nouns that can have their possession indicated directly by possessive pronouns and, in some languages, be transformed into adjectives.",
parents = {"Lemmas subcategories by language"},
breadcrumb = "Possessable nouns by language",
},
}
labels["possessional adjectives"] = {
description = "{{{langname}}} adjectives that indicate that a noun is in possession of something.",
parents = {"adjectives"},
}
labels["possessive adjectives"] = {
description = "{{{langname}}} adjectives that indicate ownership.",
parents = {"adjectives"},
}
labels["possessive concords"] = {
description = "{{{langname}}} concords used to show possession.",
parents = {"concords"},
}
labels["possessive determiners"] = {
description = "{{{langname}}} determiners that indicate ownership.",
parents = {"determiners"},
}
labels["possessive pronouns"] = {
description = "{{{langname}}} pronouns that indicate ownership.",
parents = {"pronouns"},
}
labels["postpositional phrases"] = {
description = "{{{langname}}} phrases headed by a postposition.",
parents = {"phrases", "postpositions"},
}
labels["postpositions"] = {
description = "{{{langname}}} adpositions that are placed after their objects.",
parents = {"lemmas"},
}
labels["predicatives"] = {
description = "{{{langname}}} elements of the predicate that supplement the subject or object of a sentence via the verb.",
parents = {"lemmas"},
}
labels["prefixes"] = {
description = "Affixes attached to the beginning of {{{langname}}} words.",
parents = {"morphemes"},
}
labels["prepositional phrases"] = {
description = "{{{langname}}} phrases headed by a preposition.",
parents = {"phrases", "prepositions"},
}
labels["prepositions"] = {
description = "{{{langname}}} adpositions that are placed before their objects.",
parents = {"lemmas"},
}
labels["ablative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the ablative case.",
parents = {"prepositions"},
}
labels["ablative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the ablative case.",
parents = {"postpositions"},
}
labels["accusative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the accusative case.",
parents = {"prepositions"},
}
labels["dative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the dative case.",
parents = {"prepositions"},
}
labels["genitive prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the genitive case.",
parents = {"prepositions"},
}
labels["instrumental prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the instrumental case.",
parents = {"prepositions"},
}
labels["locative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the locative case.",
parents = {"prepositions"},
}
labels["locative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the locative case.",
parents = {"postpositions"},
}
labels["matrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's mother.",
parents = {"moieties"},
}
labels["nominative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the nominative case.",
parents = {"prepositions"},
}
labels["patrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's father.",
parents = {"moieties"},
}
labels["pejorative suffixes"] = {
description = "{{{langname}}} suffixes that [[belittle]] (lessen in value).",
parents = {"suffixes"},
}
labels["prepositional prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the prepositional case.",
parents = {"prepositions"},
}
labels["prenouns"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to nouns.",
parents = {"prefixes"},
}
labels["preverbs"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to verbs.",
parents = {"prefixes"},
}
labels["privative verbs"] = {
description = "{{{langname}}} verbs that indicate that the grammatical object is deprived of something or that something is removed from the object.",
parents = {"verbs"},
}
labels["pronominal adverbs"] = {
description = "{{{langname}}} adverbs that are formed by combining a pronoun with a preposition.",
parents = {"adverbs", "prepositions", "pronouns"},
}
labels["pronominal concords"] = {
description = "{{{langname}}} concords that are prefixed to pronominal stems.",
parents = {"concords"},
}
labels["pronouns"] = {
description = "{{{langname}}} terms that refer to and substitute nouns.",
parents = {"lemmas"},
}
labels["proper nouns"] = {
description = "{{{langname}}} nouns that indicate individual entities, such as names of persons, places or organizations.",
parents = {"nouns"},
}
labels["raising verbs"] = {
description = "{{{langname}}} verbs that, in a matrix or main clause, take an argument from an embedded or subordinate clause; in other words, a raising verb appears with a syntactic argument that is not its semantic argument, but is rather the semantic argument of an embedded predicate.",
parents = {"verbs"},
}
labels["reciprocal pronouns"] = {
description = "{{{langname}}} pronouns that refer back to a plural subject and express an action done in two or more directions.",
parents = {"pronouns", "personal pronouns"},
}
labels["reciprocal verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from multiple subjects to each other.",
parents = {"verbs"},
}
labels["reflexive pronouns"] = {
description = "{{{langname}}} pronouns that refer back to the subject.",
parents = {"pronouns", "personal pronouns"},
}
labels["reflexive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from the grammatical subjects to themselves.",
parents = {"verbs"},
}
labels["relational adjectives"] = {
description = "{{{langname}}} adjectives that stand in place of a noun when modifying another noun.",
parents = {"adjectives"},
}
labels["relational nouns"] = {
description = "{{{langname}}} nouns used to indicate a relation between other two nouns by means of possession.",
parents = {"nouns"},
}
labels["relative adjectives"] = {
description = "{{{langname}}} adjectives used to indicate [[relative clause]]s.",
parents = {"adjectives", {name = "relative pro-forms", sort = "adjectives"}},
}
labels["relative adverbs"] = {
description = "{{{langname}}} adverbs used to indicate [[relative clause]]s.",
parents = {"adverbs", {name = "relative pro-forms", sort = "adverbs"}},
}
labels["relative determiners"] = {
description = "{{{langname}}} determiners used to indicate [[relative clause]]s.",
parents = {"determiners", {name = "relative pro-forms", sort = "determiners"}},
}
labels["relative concords"] = {
description = "{{{langname}}} concords that are prefixed to relative stems.",
parents = {"concords"},
}
labels["relative pronouns"] = {
description = "{{{langname}}} pronouns used to indicate [[relative clause]]s.",
parents = {"pronouns", {name = "relative pro-forms", sort = "pronouns"}},
}
labels["relatives"] = {
description = "{{{langname}}} terms that give attributes to nouns, acting grammatically as relative clauses.",
parents = {"lemmas"},
}
labels["repetitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions or events which are performed or occur again, anew or differently.",
parents = {"verbs"},
}
labels["resultative verbs"] = {
description = "{{{langname}}} verbs that indicate a result of some action",
parents = {"verbs"},
}
labels["reversative verbs"] = {
description = "{{{langname}}} verbs that indicate that the reversal or undoing of an action, event or state.",
parents = {"verbs"},
}
labels["saturative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed to the point of saturation or satisfaction.",
parents = {"verbs"},
}
labels["semelfactive verbs"] = {
description = "{{{langname}}} verbs that are punctual (instantaneous, momentive), perfective (treated as a unitary whole with no explicit internal temporal structure), and telic (having a boundary out of which the activity cannot be said to have taken place or continue).",
parents = {"verbs"},
}
labels["sentence adverbs"] = {
description = "{{{langname}}} adverbs that modify an entire clause or sentence.",
parents = {"adverbs"},
}
labels["sequence adverbs"] = {
description = "{{{langname}}} conjunctive adverbs that express sequence in space or time.",
parents = {"conjunctive adverbs"},
}
labels["simulfixes"] = {
description = "Affixes replacing positions in {{{langname}}} words.",
parents = {"morphemes"},
}
labels["singulative nouns"] = {
description = "{{{langname}}} nouns that indicate a single item of a group of related things or beings.",
parents = {"nouns"},
}
labels["singularia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the singular form.",
parents = {"nouns"},
}
labels["solitary pronouns"] = {
description = "{{{langname}}} pronouns that refer to specific people in particular and sets them apart from anyone else.",
parents = {"pronouns", "personal pronouns"},
}
labels["stative verbs"] = {
description = "{{{langname}}} verbs that define a state with no or insignificant internal dynamics.",
parents = {"verbs"},
}
labels["stems"] = {
description = "Morphemes from which {{{langname}}} words are formed.",
parents = {"morphemes"},
}
labels["subordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate relations of syntactic dependence between connected items.",
parents = {"conjunctions"},
}
labels["subject concords"] = {
description = "{{{langname}}} concords used to show the grammatical subject.",
parents = {"concords"},
}
labels["subject pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical subjects.",
parents = {"pronouns"},
}
labels["suffixes"] = {
description = "Affixes attached to the end of {{{langname}}} words.",
parents = {"morphemes"},
}
labels["splitting verbs"] = {
description = "{{{langname}}} bisyllabic verbs that obligatorily split around a direct object or pronoun.",
parents = {"verbs"},
}
labels["terminative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event ceases.",
parents = {"verbs"},
}
labels["time adverbs"] = {
description = "{{{langname}}} adverbs that indicate time, expressing either [[duration]], [[frequency]] or a [[point]] in [[time]].",
parents = {"adverbs"},
}
labels["transfixes"] = {
description = "Discontinuous affixes inserted within a word root.",
parents = {"morphemes"},
}
labels["transformative verbs"] = {
description = "{{{langname}}} verbs that indicate a change of state or nature, in the subject for intransitive verbs and in the object for transitive verbs.",
parents = {"verbs"},
}
labels["transitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed to one or more grammatical objects.",
parents = {"verbs"},
}
labels["uncomparable adjectives"] = {
description = "{{{langname}}} adjectives that are not inflected to display different degrees of comparison.",
parents = {"adjectives"},
}
labels["uncomparable adverbs"] = {
description = "{{{langname}}} adverbs that are not inflected to display different degrees of comparison.",
parents = {"adverbs"},
}
labels["uncountable nouns"] = {
description = "{{{langname}}} nouns that indicate qualities, ideas, unbounded mass or other abstract concepts that cannot be quantified directly by numerals.",
parents = {"nouns"},
}
labels["uncountable numerals"] = {
description = "{{{langname}}} numerals that cannot be quantified directly by other numerals.",
parents = {"numerals"},
}
labels["uncountable proper nouns"] = {
description = "{{{langname}}} proper nouns that cannot be quantified directly by numerals.",
parents = {"proper nouns"},
}
labels["uncountable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that cannot be quantified directly by numerals.",
parents = {"numerals"},
}
labels["unpossessable nouns"] = {
description = "{{{langname}}} nouns that cannot have their possession indicated directly by possessive pronouns.",
parents = {"nouns"},
umbrella = {
description = "Categories with nouns that cannot have their possession indicated directly by possessive pronouns or, in some languages, be transformed into adjectives.",
parents = {"Lemmas subcategories by language"},
breadcrumb = "Unpossessable nouns by language",
},
}
labels["verbal nouns"] = {
description = "{{{langname}}} nouns morphologically related to a verb and similar to it in meaning.",
parents = {"nouns"},
}
labels["verbal adjectives"] = {
description = "{{{langname}}} adjectives describing the condition or state resulting from the action of the corresponding verb.",
parents = {"adjectives"},
}
labels["verbs"] = {
description = "{{{langname}}} terms that indicate actions, occurrences or states.",
parents = {"lemmas"},
}
labels["verbs of movement"] = {
description = "{{{langname}}} verbs that indicate physical movement of the grammatical subject across a trajectory, with a starting point and an endpoint.",
parents = {"verbs"},
}
-- Add "POS-forming suffixes".
local poses_derived_by_suffix = {
"adjective", "adverb", "noun", "verb",
}
for _, pos in pairs(poses_derived_by_suffix) do
labels[pos .. "-forming suffixes"] = {
description = "{{{langname}}} suffixes that are used to derive " .. pos .. "s from other words.",
parents = {"derivational suffixes"},
}
end
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "Lemmas subcategories by language"
end
labels2["reconstructed " .. key] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "Lemmas subcategories by language",
parents = {key, {name = "reconstructed terms", sort = key}}
}
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["Lemmas subcategories by language"] = {
description = "Umbrella categories covering topics related to lemmas.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Umbrella metacategories",
{name = "lemmas", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:English phrasal verbs formed with "aback"]].
table.insert(handlers, function(data)
local particle = data.label:match("^phrasal verbs formed with \"(.-)\"$")
if particle then
local tagged_text = require("Module:script utilities").tag_text(particle, data.lang, nil, "term")
local link = require("Module:links").full_link({ term = particle, lang = data.lang }, "term")
return {
description = "{{{langname}}} {{w|phrasal verb}}s formed with the adverb or preposition " .. link .. ".",
displaytitle = '{{{langname}}} phrasal verbs formed with "' .. tagged_text .. '"',
breadcrumb = tagged_text,
parents = {{ name = "phrasal verbs", sort = particle }},
umbrella = false,
}
end
end)
return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}
9mytx9w1blyiqif4npynhgfradt5p9h
196038
196037
2024-12-04T12:48:26Z
Lee
19
[[:en:Module:category_tree/poscatboiler/data/lemmas]] වෙතින් එක් සංශෝධනයක්
196037
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
local diminutive_augmentative_poses = {
"adjectives",
"adverbs",
"interjections",
"nouns",
"numerals",
"prefixes",
"proper nouns",
"pronouns",
"suffixes",
"verbs"
}
labels["lemmas"] = {
description = "{{{langname}}} [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "Fundamental",
parents = {{name = "{{{langcat}}}", raw = true, sort = " "}},
}
labels["abstract verbs"] = {
description = "{{{langname}}} abstract verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action. Abstract verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect.",
additional = "See also [[abstract verb]].",
parents = {"verbs"},
}
labels["action nouns"] = {
description = "{{{langname}}} nouns denoting action of a verb or verbal root that it is derived from.",
parents = {"nouns"},
}
labels["act-related adverbs"] = {
description = "{{{langname}}} adverbs that indicate the motive or other background information for an action.",
parents = {"adverbs"},
}
labels["active verbs"] = {
description = "{{{langname}}} verbs that indicate an activity",
parents = {"verbs"},
}
labels["adjective concords"] = {
description = "{{{langname}}} concords that are prefixed to adjective stems.",
parents = {"concords"},
}
labels["adjectives"] = {
description = "{{{langname}}} terms that give attributes to nouns, extending their definitions.",
parents = {"lemmas"},
}
labels["adverbial accusatives"] = {
description = "Accusative case-forms in {{{langname}}} used as adverbs.",
parents = {"adverbs"},
}
labels["adverbs"] = {
description = "{{{langname}}} terms that modify clauses, sentences and phrases directly.",
parents = {"lemmas"},
}
labels["affixes"] = {
description = "Morphemes attached to existing {{{langname}}} words.",
parents = {"morphemes"},
}
labels["agent nouns"] = {
description = "{{{langname}}} nouns that denote an agent that performs the action denoted by the verb from which the noun is derived.",
parents = {"nouns"},
}
labels["ambipositions"] = {
description = "{{{langname}}} adpositions that can occur either before or after their objects.",
parents = {"lemmas"},
}
labels["ambitransitive verbs"] = {
description = "{{{langname}}} verbs that may or may not direct actions, occurrences or states to grammatical objects.",
parents = {"verbs", "transitive verbs", "intransitive verbs"},
}
labels["animal commands"] = {
description = "{{{langname}}} words used to communicate with animals.",
parents = {"interjections"},
}
labels["articles"] = {
description = "{{{langname}}} terms that indicate and specify nouns.",
parents = {"determiners"},
}
labels["aspect adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Grammatical aspect|grammatical aspect]], describing the flow of time in relation to a statement.",
parents = {"adverbs"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["augmentative " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey big size or big intensity.",
parents = {pos},
}
end
labels["attenuative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event is performed or takes place gently, lightly, partially, perfunctorily or to an otherwise reduced extent.",
parents = {"verbs"},
}
labels["autobenefactive verbs"] = {
description = "{{{langname}}} verbs that indicate that the agent of an action is also its benefactor.",
parents = {"verbs"},
}
labels["automative verbs"] = {
description = "{{{langname}}} verbs that indicate actions directed at or a change of state of the grammatical subject.",
parents = {"verbs"},
}
labels["auxiliary verbs"] = {
description = "{{{langname}}} verbs that provide additional conjugations for other verbs.",
parents = {"verbs"},
}
labels["biaspectual verbs"] = {
description = "{{{langname}}} verbs that can be both imperfective and perfective.",
parents = {"verbs"},
}
labels["causative verbs"] = {
description = "{{{langname}}} verbs that express causing actions or states rather than performing or being them directly. Use this only for separate verbs (as opposed to causative forms that are part of the inflection of verbs).",
parents = {"verbs"},
}
labels["circumfixes"] = {
description = "Affixes attached to both the beginning and the end of {{{langname}}} words, functioning together as single units.",
parents = {"morphemes"},
}
labels["circumpositions"] = {
description = "{{{langname}}} adpositions that appear on both sides of their objects.",
parents = {"lemmas"},
}
labels["classifiers"] = {
description = "{{{langname}}} terms that classify nouns according to their meanings.",
parents = {"lemmas"},
}
labels["clitics"] = {
description = "{{{langname}}} morphemes that function as independent words, but are always attached to another word.",
parents = {"morphemes"},
}
for _, pos in ipairs { "nouns", "suffixes" } do
labels["collective " .. pos] = {
description = "{{{langname}}} " .. pos .. " that indicate groups of related things or beings, without the need of grammatical pluralization.",
parents = {pos},
}
end
labels["combining forms"] = {
description = "Forms of {{{langname}}} words that do not occur independently, but are used when joined with other words.",
parents = {"morphemes"},
}
labels["comparable adjectives"] = {
description = "{{{langname}}} adjectives that can be inflected to display different degrees of comparison.",
parents = {"adjectives"},
}
labels["comparable adverbs"] = {
description = "{{{langname}}} adverbs that can be inflected to display different degrees of comparison.",
parents = {"adverbs"},
}
labels["comparative-only adjectives"] = {
description = "{{{langname}}} adjectives that are only used in their comparative forms.",
parents = {"adjectives"},
}
labels["completive verbs"] = {
description = "{{{langname}}} verbs which refer to the completion of an action which has already commenced or which has already been performed upon a subset of the entities which it affects.",
parents = {"verbs"},
}
labels["concords"] = {
description = "{{{langname}}} prefixes attached to words to show agreement with a noun or pronoun.",
parents = {"prefixes"},
}
labels["concrete verbs"] = {
description = "{{{langname}}} concrete verbs refer to a verbal aspect in verbs of motion that is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions). Concrete verbs may be either imperfective or perfective.",
additional = "See also [[concrete verb]].",
parents = {"verbs"},
}
labels["conjunctions"] = {
description = "{{{langname}}} terms that connect words, phrases or clauses together.",
parents = {"lemmas"},
}
labels["conjunctive adverbs"] = {
description = "{{{langname}}} adverbs that connect two independent clauses together.",
parents = {"adverbs"},
}
labels["continuative verbs"] = {
description = "{{{langname}}} verbs that express continuing action.",
parents = {"verbs"},
}
labels["control verbs"] = {
description = "{{{langname}}} verbs that take multiple arguments, one of which is another verb. One of the control verb's arguments is syntactically both an argument of the control verb and an argument of the other verb.",
parents = {"verbs"},
}
labels["cooperative verbs"] = {
description = "{{{langname}}} verbs that indicate cooperation",
parents = {"verbs"},
}
labels["coordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate equal syntactic importance between connected items.",
parents = {"conjunctions"},
}
labels["copulative verbs"] = {
description = "{{{langname}}} verbs that may take adjectives as their complement.",
parents = {"verbs"},
}
for _, pos in ipairs { "nouns", "proper nouns" } do
labels["countable " .. pos] = {
description = "{{{langname}}} " .. pos .. " that can be quantified directly by numerals.",
parents = {pos},
}
end
labels["countable numerals"] = {
description = "{{{langname}}} numerals that can be quantified directly by other numerals.",
parents = {"numerals"},
}
labels["countable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that can be quantified directly by numerals.",
parents = {"numerals"},
}
labels["counters"] = {
description = "{{{langname}}} terms that combine with numerals to express quantity of nouns.",
parents = {"lemmas"},
}
labels["cumulative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event gradually yields a certain or significant quantity or effect.",
parents = {"verbs"},
}
labels["degree adverbs"] = {
description = "{{{langname}}} adverbs that express a particular degree to which the word they modify applies.",
parents = {"adverbs"},
}
labels["delimitative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event is performed or takes place briefly or to an otherwise reduced extent.",
parents = {"verbs"},
}
labels["demonstrative adjectives"] = {
description = "{{{langname}}} adjectives that refer to nouns, comparing them to external references.",
parents = {"adjectives", {name = "demonstrative pro-forms", sort = "adjectives"}},
}
labels["demonstrative adverbs"] = {
description = "{{{langname}}} adverbs that refer to other adverbs, comparing them to external references.",
parents = {"adverbs", {name = "demonstrative pro-forms", sort = "adverbs"}},
}
labels["denominal verbs"] = { -- in [[Appendix:Glossary]]; "denominative" more frequent?
description = "{{{langname}}} verbs that derive from nouns.",
parents = { "verbs" },
}
labels["demonstrative determiners"] = {
description = "{{{langname}}} determiners that refer to nouns, comparing them to external references.",
parents = {"determiners", {name = "demonstrative pro-forms", sort = "determiners"}},
}
labels["demonstrative pronouns"] = {
description = "{{{langname}}} pronouns that refer to nouns, comparing them to external references.",
parents = {"pronouns", {name = "demonstrative pro-forms", sort = "pronouns"}},
}
labels["deponent verbs"] = {
description = "{{{langname}}} verbs that have active meanings but are not conjugated in the active voice.",
parents = {"verbs"},
}
labels["derivational prefixes"] = {
description = "{{{langname}}} prefixes that are used to create new words.",
parents = {"prefixes"},
}
labels["derivational suffixes"] = {
description = "{{{langname}}} suffixes that are used to create new words.",
parents = {"suffixes"},
}
labels["derivative verbs"] = {
description = "{{{langname}}} verbs that are derived from nouns and adjectives.",
parents = {"verbs"},
}
labels["desiderative verbs"] = {
description = "{{{langname}}} verbs with the following morphology: verbal root xxx + [[desiderative]] affix, and the following semantics: to wish to do the action xxx.",
parents = {"verbs"},
}
labels["determinatives"] = {
description = "{{{langname}}} terms that indicate the general class to which the following logogram belongs.",
parents = {"lemmas"},
}
labels["determiners"] = {
description = "{{{langname}}} terms that narrow down, within the conversational context, the referent of the following noun.",
parents = {"lemmas"},
}
labels["diminutiva tantum"] = {
description = "{{{langname}}} nouns or noun senses that are mostly or exclusively used in the diminutive form.",
parents = {"nouns"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["diminutive " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey endearment, small size or small intensity.",
parents = {pos},
}
end
labels["discourse particles"] = {
description = "{{{langname}}} particles that manage the flow and structure of discourse.",
parents = {"particles"},
}
labels["distributive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event involves multiple participants or a large quantity of an uncountable mass, usually as the grammatical subject in the case of intransitive verbs and as the grammatical object in the case of transitive verbs.",
parents = {"verbs"},
}
labels["ditransitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states of two grammatical objects simultaneously, one direct and one indirect.",
parents = {"verbs", "transitive verbs"},
}
labels["dualia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the dual form.",
parents = {"nouns"},
}
labels["duration adverbs"] = {
description = "{{{langname}}} adverbs that express duration in time, such as (in English) [[always]], [[all night]] and [[ever since]].",
parents = {"time adverbs"},
}
labels["ergative verbs"] = {
description = "{{{langname}}} [[Appendix:Glossary#ergative|ergative verb]]s: intransitive verbs that become causatives when used transitively.",
parents = {"verbs", "intransitive verbs", "transitive verbs"},
}
labels["excessive verbs"] = {
description = "{{{langname}}} verbs that indicate that an action is performed to an excessive extent.",
parents = {"verbs"},
}
labels["enclitics"] = {
description = "{{{langname}}} clitics that attach to the preceding word.",
parents = {"clitics"},
}
labels["nouns with other-gender equivalents"] = {
description = "{{{langname}}} nouns that refer to gendered concepts (e.g. [[actor]] vs. [[actress]], [[king]] vs. [[queen]]) and have corresponding other-gender equivalent terms.",
parents = {"nouns"},
}
labels["female equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to female beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["neuter equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to neuter beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["female equivalent suffixes"] = {
description = "{{{langname}}} suffixes that refer to female beings with the same characteristics as the base suffix.",
parents = {"noun-forming suffixes"},
}
labels["focus adverbs"] = {
description = "{{{langname}}} adverbs that indicate [[w:Focus (linguistics)|focus]] within the sentence.",
parents = {"adverbs"},
}
labels["frequency adverbs"] = {
description = "{{{langname}}} adverbs that express repetition with a certain frequency or interval, such as (in English) [[monthly]], [[continually]] and [[once in a while]].",
parents = {"time adverbs"},
}
labels["frequentative verbs"] = {
description = "{{{langname}}} verbs that express repeated action.",
parents = {"verbs"},
}
labels["general pronouns"] = {
description = "{{{langname}}} pronouns that refer to all persons, things, abstract ideas and their characteristics.",
parents = {"pronouns"},
}
labels["generational moieties"] = {
description = "{{{langname}}} moieties that alternate every generation.",
parents = {"moieties"},
}
labels["ideophones"] = {
description = "{{{langname}}} terms that evoke an idea, especially a sensation or impression, with a sound.",
parents = {"lemmas"},
}
labels["imperfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as ongoing or continuous, as opposed to completed events.",
parents = {"verbs"},
}
labels["impersonal verbs"] = {
description = "{{{langname}}} verbs that do not indicate actions, occurrences or states of any specific grammatical subject.",
parents = {"verbs"},
}
labels["inchoative verbs"] = {
description = "{{{langname}}} verbs that indicate the beginning of an action or event.",
parents = {"verbs"},
}
labels["indefinite adjectives"] = {
description = "{{{langname}}} adjectives that refer to unspecified adjective meanings.",
parents = {"adjectives", {name = "indefinite pro-forms", sort = "adjectives"}},
}
labels["indefinite adverbs"] = {
description = "{{{langname}}} adverbs that refer to unspecified adverbial meanings.",
parents = {"adverbs", {name = "indefinite pro-forms", sort = "adverbs"}},
}
labels["indefinite determiners"] = {
description = "{{{langname}}} determiners that designate an unidentified noun.",
parents = {"determiners", {name = "indefinite pro-forms", sort = "determiners"}},
}
labels["indefinite pronouns"] = {
description = "{{{langname}}} pronouns that refer to unspecified nouns.",
parents = {"pronouns", {name = "indefinite pro-forms", sort = "pronouns"}},
}
labels["infixes"] = {
description = "Affixes inserted inside {{{langname}}} words.",
parents = {"morphemes"},
}
labels["inflectional prefixes"] = {
description = "{{{langname}}} prefixes that are used as inflectional beginnings in noun, adjective or verb paradigms.",
parents = {"prefixes"},
}
labels["inflectional suffixes"] = {
description = "{{{langname}}} suffixes that are used as inflectional endings in noun, adjective or verb paradigms.",
parents = {"suffixes"},
}
labels["intensive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed vigorously, enthusiastically, forcefully or to an otherwise enlarged extent.",
parents = {"verbs"},
}
labels["interfixes"] = {
description = "Affixes used to join two {{{langname}}} words or morphemes together.",
parents = {"morphemes"},
}
labels["interjections"] = {
description = "{{{langname}}} terms that express emotions, sounds, etc. as exclamations.",
parents = {"lemmas"},
}
labels["interrogative adjectives"] = {
description = "{{{langname}}} adjectives that indicate questions.",
parents = {"adjectives", {name = "interrogative pro-forms", sort = "adjectives"}},
}
labels["interrogative adverbs"] = {
description = "{{{langname}}} adverbs that indicate questions.",
parents = {"adverbs", {name = "interrogative pro-forms", sort = "adverbs"}},
}
labels["interrogative determiners"] = {
description = "{{{langname}}} determiners that indicate questions.",
parents = {"determiners", {name = "interrogative pro-forms", sort = "determiners"}},
}
labels["interrogative particles"] = {
description = "{{{langname}}} particles that indicate questions.",
parents = {"particles", {name = "interrogative pro-forms", sort = "particles"}},
}
labels["interrogative pronouns"] = {
description = "{{{langname}}} pronouns that indicate questions.",
parents = {"pronouns", {name = "interrogative pro-forms", sort = "pronouns"}},
}
labels["intransitive verbs"] = {
description = "{{{langname}}} verbs that don't require any grammatical objects.",
parents = {"verbs"},
}
labels["iterative verbs"] = {
description = "{{{langname}}} verbs that express the repetition of an event.",
parents = {"verbs"},
}
labels["location adverbs"] = {
description = "{{{langname}}} adverbs that indicate location.",
parents = {"adverbs"},
}
labels["male equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to male beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["manner adverbs"] = {
description = "{{{langname}}} adverbs that indicate the manner, way or style in which an action is performed.",
parents = {"adverbs"},
}
labels["modal adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Linguistic modality|linguistic modality]], indicating the mood or attitude of the speaker with respect to what is being said.",
parents = {"sentence adverbs"},
}
labels["modal particles"] = {
description = "{{{langname}}} particles that reflect the mood or attitude of the speaker, without changing the basic meaning of the sentence.",
parents = {"particles"},
}
labels["modal verbs"] = {
description = "{{{langname}}} verbs that indicate [[grammatical mood]].",
parents = {"auxiliary verbs"},
}
labels["moieties"] = {
description = "{{{langname}}} pairs of abstract categories separating people and the environment.",
parents = {"lemmas"},
}
labels["momentane verbs"] = {
description = "{{{langname}}} verbs that express a sudden and brief action.",
parents = {"verbs"},
}
labels["morphemes"] = {
description = "{{{langname}}} word-elements used to form full words.",
parents = {"lemmas"},
}
labels["multiword terms"] = {
description = "{{{langname}}} lemmas that are a combination of multiple words, including [[WT:CFI#Idiomaticity|idiomatic]] combinations.",
parents = {"lemmas"},
}
labels["negative verbs"] = {
description = "{{{langname}}} verbs that indicate the lack of an action.",
parents = {"verbs"},
}
labels["negative particles"] = {
description = "{{{langname}}} particles that indicate negation.",
parents = {"particles"},
}
labels["negative pronouns"] = {
description = "{{{langname}}} pronouns that refer to negative or non-existent references.",
parents = {"pronouns"},
}
labels["neutral verbs"] = {
description = "{{{langname}}} verbs that indicate either or both an activity or a result of an activity",
parents = {"verbs"},
}
labels["nominalized adjectives"] = {
description = "{{{langname}}} adjectives that are used as nouns.",
parents = {"nouns", "adjectives"},
}
labels["non-constituents"] = {
description = "{{{langname}}} terms that are not grammatical [[constituent#Noun|constituents]], and therefore need to be combined with additional terms to form a complete phrase.",
parents = {"phrases"},
}
labels["noun prefixes"] = {
description = "{{{langname}}} prefixes attached to a noun that display its noun class.",
parents = {"prefixes"},
}
labels["nouns"] = {
description = "{{{langname}}} terms that indicate people, beings, things, places, phenomena, qualities or ideas.",
parents = {"lemmas"},
}
labels["nouns by classifier"] = {
description = "{{{langname}}} nouns organized by the classifier they are used with.",
parents = {{name = "nouns", sort = "classifier"}},
}
labels["numerals"] = {
description = "{{{langname}}} terms that quantify nouns.",
parents = {"lemmas"},
}
labels["object concords"] = {
description = "{{{langname}}} concords used to show the grammatical object.",
parents = {"concords"},
}
labels["object pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical objects.",
parents = {"pronouns"},
}
labels["particles"] = {
description = "{{{langname}}} terms that do not belong to any of the inflected grammatical word classes, often lacking their own grammatical functions and forming other parts of speech or expressing the relationship between clauses.",
parents = {"lemmas"},
}
labels["passive verbs"] = {
description = "{{{langname}}} verbs that are usually used in passive voice.",
parents = {"verbs"},
}
labels["perfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as completed events, as opposed to ongoing or continuous.",
parents = {"verbs"},
}
labels["personal pronouns"] = {
description = "{{{langname}}} pronouns that are used as substitutes for known nouns.",
parents = {"pronouns"},
}
labels["phrasal verbs"] = {
description = "{{{langname}}} verbs accompanied by particles, such as prepositions and adverbs.",
parents = {"verbs", "phrases"},
}
labels["phrasal prepositions"] = {
description = "{{{langname}}} prepositions formed with combinations of other terms.",
parents = {"prepositions", "phrases"},
}
labels["pluralia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the plural form.",
parents = {"nouns"},
}
labels["point-in-time adverbs"] = {
description = "{{{langname}}} adverbs that reference a specific point in time, e.g. {{m|en|yesterday}}, {{m+|es|anoche||last night}} or {{m+|hu|egykor||at one o'clock}}.",
parents = {"time adverbs"},
}
labels["possessable nouns"] = {
description = "{{{langname}}} nouns can have their possession indicated directly by possessive pronouns.",
parents = {"nouns"},
umbrella = {
description = "Categories with nouns that can have their possession indicated directly by possessive pronouns and, in some languages, be transformed into adjectives.",
parents = {"Lemmas subcategories by language"},
breadcrumb = "Possessable nouns by language",
},
}
labels["possessional adjectives"] = {
description = "{{{langname}}} adjectives that indicate that a noun is in possession of something.",
parents = {"adjectives"},
}
labels["possessive adjectives"] = {
description = "{{{langname}}} adjectives that indicate ownership.",
parents = {"adjectives"},
}
labels["possessive concords"] = {
description = "{{{langname}}} concords used to show possession.",
parents = {"concords"},
}
labels["possessive determiners"] = {
description = "{{{langname}}} determiners that indicate ownership.",
parents = {"determiners"},
}
labels["possessive pronouns"] = {
description = "{{{langname}}} pronouns that indicate ownership.",
parents = {"pronouns"},
}
labels["postpositional phrases"] = {
description = "{{{langname}}} phrases headed by a postposition.",
parents = {"phrases", "postpositions"},
}
labels["postpositions"] = {
description = "{{{langname}}} adpositions that are placed after their objects.",
parents = {"lemmas"},
}
labels["predicatives"] = {
description = "{{{langname}}} elements of the predicate that supplement the subject or object of a sentence via the verb.",
parents = {"lemmas"},
}
labels["prefixes"] = {
description = "Affixes attached to the beginning of {{{langname}}} words.",
parents = {"morphemes"},
}
labels["prepositional phrases"] = {
description = "{{{langname}}} phrases headed by a preposition.",
parents = {"phrases", "prepositions"},
}
labels["prepositions"] = {
description = "{{{langname}}} adpositions that are placed before their objects.",
parents = {"lemmas"},
}
labels["ablative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the ablative case.",
parents = {"prepositions"},
}
labels["ablative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the ablative case.",
parents = {"postpositions"},
}
labels["accusative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the accusative case.",
parents = {"prepositions"},
}
labels["dative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the dative case.",
parents = {"prepositions"},
}
labels["genitive prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the genitive case.",
parents = {"prepositions"},
}
labels["instrumental prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the instrumental case.",
parents = {"prepositions"},
}
labels["locative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the locative case.",
parents = {"prepositions"},
}
labels["locative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the locative case.",
parents = {"postpositions"},
}
labels["matrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's mother.",
parents = {"moieties"},
}
labels["nominative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the nominative case.",
parents = {"prepositions"},
}
labels["patrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's father.",
parents = {"moieties"},
}
labels["pejorative suffixes"] = {
description = "{{{langname}}} suffixes that [[belittle]] (lessen in value).",
parents = {"suffixes"},
}
labels["prepositional prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the prepositional case.",
parents = {"prepositions"},
}
labels["prenouns"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to nouns.",
parents = {"prefixes"},
}
labels["preverbs"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to verbs.",
parents = {"prefixes"},
}
labels["privative verbs"] = {
description = "{{{langname}}} verbs that indicate that the grammatical object is deprived of something or that something is removed from the object.",
parents = {"verbs"},
}
labels["pronominal adverbs"] = {
description = "{{{langname}}} adverbs that are formed by combining a pronoun with a preposition.",
parents = {"adverbs", "prepositions", "pronouns"},
}
labels["pronominal concords"] = {
description = "{{{langname}}} concords that are prefixed to pronominal stems.",
parents = {"concords"},
}
labels["pronouns"] = {
description = "{{{langname}}} terms that refer to and substitute nouns.",
parents = {"lemmas"},
}
labels["proper nouns"] = {
description = "{{{langname}}} nouns that indicate individual entities, such as names of persons, places or organizations.",
parents = {"nouns"},
}
labels["raising verbs"] = {
description = "{{{langname}}} verbs that, in a matrix or main clause, take an argument from an embedded or subordinate clause; in other words, a raising verb appears with a syntactic argument that is not its semantic argument, but is rather the semantic argument of an embedded predicate.",
parents = {"verbs"},
}
labels["reciprocal pronouns"] = {
description = "{{{langname}}} pronouns that refer back to a plural subject and express an action done in two or more directions.",
parents = {"pronouns", "personal pronouns"},
}
labels["reciprocal verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from multiple subjects to each other.",
parents = {"verbs"},
}
labels["reflexive pronouns"] = {
description = "{{{langname}}} pronouns that refer back to the subject.",
parents = {"pronouns", "personal pronouns"},
}
labels["reflexive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from the grammatical subjects to themselves.",
parents = {"verbs"},
}
labels["relational adjectives"] = {
description = "{{{langname}}} adjectives that stand in place of a noun when modifying another noun.",
parents = {"adjectives"},
}
labels["relational nouns"] = {
description = "{{{langname}}} nouns used to indicate a relation between other two nouns by means of possession.",
parents = {"nouns"},
}
labels["relative adjectives"] = {
description = "{{{langname}}} adjectives used to indicate [[relative clause]]s.",
parents = {"adjectives", {name = "relative pro-forms", sort = "adjectives"}},
}
labels["relative adverbs"] = {
description = "{{{langname}}} adverbs used to indicate [[relative clause]]s.",
parents = {"adverbs", {name = "relative pro-forms", sort = "adverbs"}},
}
labels["relative determiners"] = {
description = "{{{langname}}} determiners used to indicate [[relative clause]]s.",
parents = {"determiners", {name = "relative pro-forms", sort = "determiners"}},
}
labels["relative concords"] = {
description = "{{{langname}}} concords that are prefixed to relative stems.",
parents = {"concords"},
}
labels["relative pronouns"] = {
description = "{{{langname}}} pronouns used to indicate [[relative clause]]s.",
parents = {"pronouns", {name = "relative pro-forms", sort = "pronouns"}},
}
labels["relatives"] = {
description = "{{{langname}}} terms that give attributes to nouns, acting grammatically as relative clauses.",
parents = {"lemmas"},
}
labels["repetitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions or events which are performed or occur again, anew or differently.",
parents = {"verbs"},
}
labels["resultative verbs"] = {
description = "{{{langname}}} verbs that indicate a result of some action",
parents = {"verbs"},
}
labels["reversative verbs"] = {
description = "{{{langname}}} verbs that indicate that the reversal or undoing of an action, event or state.",
parents = {"verbs"},
}
labels["saturative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed to the point of saturation or satisfaction.",
parents = {"verbs"},
}
labels["semelfactive verbs"] = {
description = "{{{langname}}} verbs that are punctual (instantaneous, momentive), perfective (treated as a unitary whole with no explicit internal temporal structure), and telic (having a boundary out of which the activity cannot be said to have taken place or continue).",
parents = {"verbs"},
}
labels["sentence adverbs"] = {
description = "{{{langname}}} adverbs that modify an entire clause or sentence.",
parents = {"adverbs"},
}
labels["sequence adverbs"] = {
description = "{{{langname}}} conjunctive adverbs that express sequence in space or time.",
parents = {"conjunctive adverbs"},
}
labels["simulfixes"] = {
description = "Affixes replacing positions in {{{langname}}} words.",
parents = {"morphemes"},
}
labels["singulative nouns"] = {
description = "{{{langname}}} nouns that indicate a single item of a group of related things or beings.",
parents = {"nouns"},
}
labels["singularia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the singular form.",
parents = {"nouns"},
}
labels["solitary pronouns"] = {
description = "{{{langname}}} pronouns that refer to specific people in particular and sets them apart from anyone else.",
parents = {"pronouns", "personal pronouns"},
}
labels["stative verbs"] = {
description = "{{{langname}}} verbs that define a state with no or insignificant internal dynamics.",
parents = {"verbs"},
}
labels["stems"] = {
description = "Morphemes from which {{{langname}}} words are formed.",
parents = {"morphemes"},
}
labels["subordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate relations of syntactic dependence between connected items.",
parents = {"conjunctions"},
}
labels["subject concords"] = {
description = "{{{langname}}} concords used to show the grammatical subject.",
parents = {"concords"},
}
labels["subject pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical subjects.",
parents = {"pronouns"},
}
labels["suffixes"] = {
description = "Affixes attached to the end of {{{langname}}} words.",
parents = {"morphemes"},
}
labels["splitting verbs"] = {
description = "{{{langname}}} bisyllabic verbs that obligatorily split around a direct object or pronoun.",
parents = {"verbs"},
}
labels["terminative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event ceases.",
parents = {"verbs"},
}
labels["time adverbs"] = {
description = "{{{langname}}} adverbs that indicate time, expressing either [[duration]], [[frequency]] or a [[point]] in [[time]].",
parents = {"adverbs"},
}
labels["transfixes"] = {
description = "Discontinuous affixes inserted within a word root.",
parents = {"morphemes"},
}
labels["transformative verbs"] = {
description = "{{{langname}}} verbs that indicate a change of state or nature, in the subject for intransitive verbs and in the object for transitive verbs.",
parents = {"verbs"},
}
labels["transitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed to one or more grammatical objects.",
parents = {"verbs"},
}
labels["uncomparable adjectives"] = {
description = "{{{langname}}} adjectives that are not inflected to display different degrees of comparison.",
parents = {"adjectives"},
}
labels["uncomparable adverbs"] = {
description = "{{{langname}}} adverbs that are not inflected to display different degrees of comparison.",
parents = {"adverbs"},
}
labels["uncountable nouns"] = {
description = "{{{langname}}} nouns that indicate qualities, ideas, unbounded mass or other abstract concepts that cannot be quantified directly by numerals.",
parents = {"nouns"},
}
labels["uncountable numerals"] = {
description = "{{{langname}}} numerals that cannot be quantified directly by other numerals.",
parents = {"numerals"},
}
labels["uncountable proper nouns"] = {
description = "{{{langname}}} proper nouns that cannot be quantified directly by numerals.",
parents = {"proper nouns"},
}
labels["uncountable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that cannot be quantified directly by numerals.",
parents = {"numerals"},
}
labels["unpossessable nouns"] = {
description = "{{{langname}}} nouns that cannot have their possession indicated directly by possessive pronouns.",
parents = {"nouns"},
umbrella = {
description = "Categories with nouns that cannot have their possession indicated directly by possessive pronouns or, in some languages, be transformed into adjectives.",
parents = {"Lemmas subcategories by language"},
breadcrumb = "Unpossessable nouns by language",
},
}
labels["verbal nouns"] = {
description = "{{{langname}}} nouns morphologically related to a verb and similar to it in meaning.",
parents = {"nouns"},
}
labels["verbal adjectives"] = {
description = "{{{langname}}} adjectives describing the condition or state resulting from the action of the corresponding verb.",
parents = {"adjectives"},
}
labels["verbs"] = {
description = "{{{langname}}} terms that indicate actions, occurrences or states.",
parents = {"lemmas"},
}
labels["verbs of movement"] = {
description = "{{{langname}}} verbs that indicate physical movement of the grammatical subject across a trajectory, with a starting point and an endpoint.",
parents = {"verbs"},
}
-- Add "POS-forming suffixes".
local poses_derived_by_suffix = {
"adjective", "adverb", "noun", "verb",
}
for _, pos in pairs(poses_derived_by_suffix) do
labels[pos .. "-forming suffixes"] = {
description = "{{{langname}}} suffixes that are used to derive " .. pos .. "s from other words.",
parents = {"derivational suffixes"},
}
end
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "Lemmas subcategories by language"
end
labels2["reconstructed " .. key] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "Lemmas subcategories by language",
parents = {key, {name = "reconstructed terms", sort = key}}
}
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["Lemmas subcategories by language"] = {
description = "Umbrella categories covering topics related to lemmas.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Umbrella metacategories",
{name = "lemmas", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:English phrasal verbs formed with "aback"]].
table.insert(handlers, function(data)
local particle = data.label:match("^phrasal verbs formed with \"(.-)\"$")
if particle then
local tagged_text = require("Module:script utilities").tag_text(particle, data.lang, nil, "term")
local link = require("Module:links").full_link({ term = particle, lang = data.lang }, "term")
return {
description = "{{{langname}}} {{w|phrasal verb}}s formed with the adverb or preposition " .. link .. ".",
displaytitle = '{{{langname}}} phrasal verbs formed with "' .. tagged_text .. '"',
breadcrumb = tagged_text,
parents = {{ name = "phrasal verbs", sort = particle }},
umbrella = false,
}
end
end)
return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}
9mytx9w1blyiqif4npynhgfradt5p9h
196039
196038
2024-12-04T12:48:44Z
Lee
19
පැරණි සංස්කරණයකින් ගත් කොටස්...
196039
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
local diminutive_augmentative_poses = {
"නාම විශේෂණ පද",
"ක්රියා විශේෂණ පද",
"විශ්මයාර්ථ පද",
"නාම පද",
"සංඛ්යාංක",
"උපසර්ග",
"සංඥා නාම පද",
"සර්වනාම",
"ප්රත්ය",
"ක්රියා පද"
}
labels["පාඨ"] = {
description = "{{{langname}}} [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "මූලධර්ම",
parents = {{name = "{{{langcat}}}", raw = true, sort = " "}},
}
labels["abstract verbs"] = {
description = "{{{langname}}} abstract verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action. Abstract verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect.",
additional = "See also [[abstract verb]].",
parents = {"ක්රියා පද"},
}
labels["action nouns"] = {
description = "{{{langname}}} nouns denoting action of a verb or verbal root that it is derived from.",
parents = {"නාම පද"},
}
labels["act-related adverbs"] = {
description = "{{{langname}}} adverbs that indicate the motive or other background information for an action.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["active verbs"] = {
description = "{{{langname}}} verbs that indicate an activity",
parents = {"ක්රියා පද"},
}
labels["adjective concords"] = {
description = "{{{langname}}} concords that are prefixed to adjective stems.",
parents = {"concords"},
}
labels["නාම විශේෂණ පද"] = {
description = "{{{langname}}} terms that give attributes to nouns, extending their definitions.",
parents = {"පාඨ"},
}
labels["adverbial accusatives"] = {
description = "Accusative case-forms in {{{langname}}} used as adverbs.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["ක්රියා විශේෂණ පද"] = {
description = "{{{langname}}} terms that modify clauses, sentences and phrases directly.",
parents = {"පාඨ"},
}
labels["affixes"] = {
description = "Morphemes attached to existing {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["agent nouns"] = {
description = "{{{langname}}} nouns that denote an agent that performs the action denoted by the verb from which the noun is derived.",
parents = {"නාම පද"},
}
labels["ambipositions"] = {
description = "{{{langname}}} adpositions that can occur either before or after their objects.",
parents = {"පාඨ"},
}
labels["ambitransitive verbs"] = {
description = "{{{langname}}} verbs that may or may not direct actions, occurrences or states to grammatical objects.",
parents = {"ක්රියා පද", "transitive verbs", "intransitive verbs"},
}
labels["animal commands"] = {
description = "{{{langname}}} words used to communicate with animals.",
parents = {"විශ්මයාර්ථ පද"},
}
labels["articles"] = {
description = "{{{langname}}} terms that indicate and specify nouns.",
parents = {"determiners"},
}
labels["aspect adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Grammatical aspect|grammatical aspect]], describing the flow of time in relation to a statement.",
parents = {"ක්රියා විශේෂණ පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["augmentative " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey big size or big intensity.",
parents = {pos},
}
end
labels["attenuative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event is performed or takes place gently, lightly, partially, perfunctorily or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["autobenefactive verbs"] = {
description = "{{{langname}}} verbs that indicate that the agent of an action is also its benefactor.",
parents = {"ක්රියා පද"},
}
labels["automative verbs"] = {
description = "{{{langname}}} verbs that indicate actions directed at or a change of state of the grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["auxiliary verbs"] = {
description = "{{{langname}}} verbs that provide additional conjugations for other verbs.",
parents = {"ක්රියා පද"},
}
labels["biaspectual verbs"] = {
description = "{{{langname}}} verbs that can be both imperfective and perfective.",
parents = {"ක්රියා පද"},
}
labels["causative verbs"] = {
description = "{{{langname}}} verbs that express causing actions or states rather than performing or being them directly. Use this only for separate verbs (as opposed to causative forms that are part of the inflection of verbs).",
parents = {"ක්රියා පද"},
}
labels["circumfixes"] = {
description = "Affixes attached to both the beginning and the end of {{{langname}}} words, functioning together as single units.",
parents = {"පදාණු"},
}
labels["circumpositions"] = {
description = "{{{langname}}} adpositions that appear on both sides of their objects.",
parents = {"පාඨ"},
}
labels["classifiers"] = {
description = "{{{langname}}} terms that classify nouns according to their meanings.",
parents = {"පාඨ"},
}
labels["clitics"] = {
description = "{{{langname}}} morphemes that function as independent words, but are always attached to another word.",
parents = {"පදාණු"},
}
for _, pos in ipairs { "නාම පද", "ප්රත්ය" } do
labels["සමූහවාචී " .. pos] = {
description = "{{{langname}}} " .. pos .. " that indicate groups of related things or beings, without the need of grammatical pluralization.",
parents = {pos},
}
end
labels["combining forms"] = {
description = "Forms of {{{langname}}} words that do not occur independently, but are used when joined with other words.",
parents = {"පදාණු"},
}
labels["comparable adjectives"] = {
description = "{{{langname}}} adjectives that can be inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["comparable adverbs"] = {
description = "{{{langname}}} adverbs that can be inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["comparative-only adjectives"] = {
description = "{{{langname}}} adjectives that are only used in their comparative forms.",
parents = {"නාම විශේෂණ පද"},
}
labels["completive verbs"] = {
description = "{{{langname}}} verbs which refer to the completion of an action which has already commenced or which has already been performed upon a subset of the entities which it affects.",
parents = {"ක්රියා පද"},
}
labels["concords"] = {
description = "{{{langname}}} prefixes attached to words to show agreement with a noun or pronoun.",
parents = {"උපසර්ග"},
}
labels["concrete verbs"] = {
description = "{{{langname}}} concrete verbs refer to a verbal aspect in verbs of motion that is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions). Concrete verbs may be either imperfective or perfective.",
additional = "See also [[concrete verb]].",
parents = {"ක්රියා පද"},
}
labels["conjunctions"] = {
description = "{{{langname}}} terms that connect words, phrases or clauses together.",
parents = {"පාඨ"},
}
labels["conjunctive adverbs"] = {
description = "{{{langname}}} adverbs that connect two independent clauses together.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["continuative verbs"] = {
description = "{{{langname}}} verbs that express continuing action.",
parents = {"ක්රියා පද"},
}
labels["control verbs"] = {
description = "{{{langname}}} verbs that take multiple arguments, one of which is another verb. One of the control verb's arguments is syntactically both an argument of the control verb and an argument of the other verb.",
parents = {"ක්රියා පද"},
}
labels["cooperative verbs"] = {
description = "{{{langname}}} verbs that indicate cooperation",
parents = {"ක්රියා පද"},
}
labels["coordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate equal syntactic importance between connected items.",
parents = {"conjunctions"},
}
labels["copulative verbs"] = {
description = "{{{langname}}} verbs that may take adjectives as their complement.",
parents = {"ක්රියා පද"},
}
for _, pos in ipairs { "නාම පද", "සංඥා නාම පද" } do
labels["ගැණිය හැකි " .. pos] = {
description = "{{{langname}}} " .. pos .. " that can be quantified directly by numerals.",
parents = {pos},
}
end
labels["countable numerals"] = {
description = "{{{langname}}} numerals that can be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["countable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that can be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["counters"] = {
description = "{{{langname}}} terms that combine with numerals to express quantity of nouns.",
parents = {"පාඨ"},
}
labels["cumulative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event gradually yields a certain or significant quantity or effect.",
parents = {"ක්රියා පද"},
}
labels["degree adverbs"] = {
description = "{{{langname}}} adverbs that express a particular degree to which the word they modify applies.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["delimitative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event is performed or takes place briefly or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["demonstrative adjectives"] = {
description = "{{{langname}}} adjectives that refer to nouns, comparing them to external references.",
parents = {"නාම විශේෂණ පද", {name = "demonstrative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["demonstrative adverbs"] = {
description = "{{{langname}}} adverbs that refer to other adverbs, comparing them to external references.",
parents = {"ක්රියා විශේෂණ පද", {name = "demonstrative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["denominal verbs"] = { -- in [[Appendix:Glossary]]; "denominative" more frequent?
description = "{{{langname}}} verbs that derive from nouns.",
parents = { "ක්රියා පද" },
}
labels["demonstrative determiners"] = {
description = "{{{langname}}} determiners that refer to nouns, comparing them to external references.",
parents = {"determiners", {name = "demonstrative pro-forms", sort = "determiners"}},
}
labels["demonstrative pronouns"] = {
description = "{{{langname}}} pronouns that refer to nouns, comparing them to external references.",
parents = {"සර්වනාම", {name = "demonstrative pro-forms", sort = "සර්වනාම"}},
}
labels["deponent verbs"] = {
description = "{{{langname}}} verbs that have active meanings but are not conjugated in the active voice.",
parents = {"ක්රියා පද"},
}
labels["derivational prefixes"] = {
description = "{{{langname}}} prefixes that are used to create new words.",
parents = {"උපසර්ග"},
}
labels["derivational suffixes"] = {
description = "{{{langname}}} suffixes that are used to create new words.",
parents = {"ප්රත්ය"},
}
labels["derivative verbs"] = {
description = "{{{langname}}} verbs that are derived from nouns and adjectives.",
parents = {"ක්රියා පද"},
}
labels["desiderative verbs"] = {
description = "{{{langname}}} verbs with the following morphology: verbal root xxx + [[desiderative]] affix, and the following semantics: to wish to do the action xxx.",
parents = {"ක්රියා පද"},
}
labels["determinatives"] = {
description = "{{{langname}}} terms that indicate the general class to which the following logogram belongs.",
parents = {"පාඨ"},
}
labels["determiners"] = {
description = "{{{langname}}} terms that narrow down, within the conversational context, the referent of the following noun.",
parents = {"පාඨ"},
}
labels["diminutiva tantum"] = {
description = "{{{langname}}} nouns or noun senses that are mostly or exclusively used in the diminutive form.",
parents = {"නාම පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["diminutive " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey endearment, small size or small intensity.",
parents = {pos},
}
end
labels["discourse particles"] = {
description = "{{{langname}}} particles that manage the flow and structure of discourse.",
parents = {"නිපාත පද"},
}
labels["distributive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event involves multiple participants or a large quantity of an uncountable mass, usually as the grammatical subject in the case of intransitive verbs and as the grammatical object in the case of transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["ditransitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states of two grammatical objects simultaneously, one direct and one indirect.",
parents = {"ක්රියා පද", "transitive verbs"},
}
labels["dualia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the dual form.",
parents = {"නාම පද"},
}
labels["duration adverbs"] = {
description = "{{{langname}}} adverbs that express duration in time, such as (in English) [[always]], [[all night]] and [[ever since]].",
parents = {"time adverbs"},
}
labels["ergative verbs"] = {
description = "{{{langname}}} [[Appendix:Glossary#ergative|ergative verb]]s: intransitive verbs that become causatives when used transitively.",
parents = {"ක්රියා පද", "intransitive verbs", "transitive verbs"},
}
labels["excessive verbs"] = {
description = "{{{langname}}} verbs that indicate that an action is performed to an excessive extent.",
parents = {"ක්රියා පද"},
}
labels["enclitics"] = {
description = "{{{langname}}} clitics that attach to the preceding word.",
parents = {"clitics"},
}
labels["nouns with other-gender equivalents"] = {
description = "{{{langname}}} nouns that refer to gendered concepts (e.g. [[actor]] vs. [[actress]], [[king]] vs. [[queen]]) and have corresponding other-gender equivalent terms.",
parents = {"නාම පද"},
}
labels["female equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to female beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["neuter equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to neuter beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["female equivalent suffixes"] = {
description = "{{{langname}}} suffixes that refer to female beings with the same characteristics as the base suffix.",
parents = {"noun-forming suffixes"},
}
labels["focus adverbs"] = {
description = "{{{langname}}} adverbs that indicate [[w:Focus (linguistics)|focus]] within the sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["frequency adverbs"] = {
description = "{{{langname}}} adverbs that express repetition with a certain frequency or interval, such as (in English) [[monthly]], [[continually]] and [[once in a while]].",
parents = {"time adverbs"},
}
labels["frequentative verbs"] = {
description = "{{{langname}}} verbs that express repeated action.",
parents = {"ක්රියා පද"},
}
labels["general pronouns"] = {
description = "{{{langname}}} pronouns that refer to all persons, things, abstract ideas and their characteristics.",
parents = {"සර්වනාම"},
}
labels["generational moieties"] = {
description = "{{{langname}}} moieties that alternate every generation.",
parents = {"moieties"},
}
labels["ideophones"] = {
description = "{{{langname}}} terms that evoke an idea, especially a sensation or impression, with a sound.",
parents = {"පාඨ"},
}
labels["imperfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as ongoing or continuous, as opposed to completed events.",
parents = {"ක්රියා පද"},
}
labels["impersonal verbs"] = {
description = "{{{langname}}} verbs that do not indicate actions, occurrences or states of any specific grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["inchoative verbs"] = {
description = "{{{langname}}} verbs that indicate the beginning of an action or event.",
parents = {"ක්රියා පද"},
}
labels["indefinite adjectives"] = {
description = "{{{langname}}} adjectives that refer to unspecified adjective meanings.",
parents = {"නාම විශේෂණ පද", {name = "indefinite pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["indefinite adverbs"] = {
description = "{{{langname}}} adverbs that refer to unspecified adverbial meanings.",
parents = {"ක්රියා විශේෂණ පද", {name = "indefinite pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["indefinite determiners"] = {
description = "{{{langname}}} determiners that designate an unidentified noun.",
parents = {"determiners", {name = "indefinite pro-forms", sort = "determiners"}},
}
labels["indefinite pronouns"] = {
description = "{{{langname}}} pronouns that refer to unspecified nouns.",
parents = {"සර්වනාම", {name = "indefinite pro-forms", sort = "සර්වනාම"}},
}
labels["infixes"] = {
description = "Affixes inserted inside {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["inflectional prefixes"] = {
description = "{{{langname}}} prefixes that are used as inflectional beginnings in noun, adjective or verb paradigms.",
parents = {"උපසර්ග"},
}
labels["inflectional suffixes"] = {
description = "{{{langname}}} suffixes that are used as inflectional endings in noun, adjective or verb paradigms.",
parents = {"ප්රත්ය"},
}
labels["intensive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed vigorously, enthusiastically, forcefully or to an otherwise enlarged extent.",
parents = {"ක්රියා පද"},
}
labels["interfixes"] = {
description = "Affixes used to join two {{{langname}}} words or morphemes together.",
parents = {"පදාණු"},
}
labels["විශ්මයාර්ථ පද"] = {
description = "{{{langname}}} terms that express emotions, sounds, etc. as exclamations.",
parents = {"පාඨ"},
}
labels["interrogative adjectives"] = {
description = "{{{langname}}} adjectives that indicate questions.",
parents = {"නාම විශේෂණ පද", {name = "interrogative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["interrogative adverbs"] = {
description = "{{{langname}}} adverbs that indicate questions.",
parents = {"ක්රියා විශේෂණ පද", {name = "interrogative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["interrogative determiners"] = {
description = "{{{langname}}} determiners that indicate questions.",
parents = {"determiners", {name = "interrogative pro-forms", sort = "determiners"}},
}
labels["interrogative particles"] = {
description = "{{{langname}}} particles that indicate questions.",
parents = {"නිපාත පද", {name = "interrogative pro-forms", sort = "නිපාත පද"}},
}
labels["interrogative pronouns"] = {
description = "{{{langname}}} pronouns that indicate questions.",
parents = {"සර්වනාම", {name = "interrogative pro-forms", sort = "සර්වනාම"}},
}
labels["intransitive verbs"] = {
description = "{{{langname}}} verbs that don't require any grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["iterative verbs"] = {
description = "{{{langname}}} verbs that express the repetition of an event.",
parents = {"ක්රියා පද"},
}
labels["location adverbs"] = {
description = "{{{langname}}} adverbs that indicate location.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["male equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to male beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["manner adverbs"] = {
description = "{{{langname}}} adverbs that indicate the manner, way or style in which an action is performed.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["modal adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Linguistic modality|linguistic modality]], indicating the mood or attitude of the speaker with respect to what is being said.",
parents = {"sentence adverbs"},
}
labels["modal particles"] = {
description = "{{{langname}}} particles that reflect the mood or attitude of the speaker, without changing the basic meaning of the sentence.",
parents = {"නිපාත පද"},
}
labels["modal verbs"] = {
description = "{{{langname}}} verbs that indicate [[grammatical mood]].",
parents = {"auxiliary verbs"},
}
labels["moieties"] = {
description = "{{{langname}}} pairs of abstract categories separating people and the environment.",
parents = {"පාඨ"},
}
labels["momentane verbs"] = {
description = "{{{langname}}} verbs that express a sudden and brief action.",
parents = {"ක්රියා පද"},
}
labels["පදාණු"] = {
description = "{{{langname}}} word-elements used to form full words.",
parents = {"පාඨ"},
}
labels["multiword terms"] = {
description = "{{{langname}}} lemmas that are a combination of multiple words, including [[WT:CFI#Idiomaticity|idiomatic]] combinations.",
parents = {"පාඨ"},
}
labels["negative verbs"] = {
description = "{{{langname}}} verbs that indicate the lack of an action.",
parents = {"ක්රියා පද"},
}
labels["negative particles"] = {
description = "{{{langname}}} particles that indicate negation.",
parents = {"නිපාත පද"},
}
labels["negative pronouns"] = {
description = "{{{langname}}} pronouns that refer to negative or non-existent references.",
parents = {"සර්වනාම"},
}
labels["neutral verbs"] = {
description = "{{{langname}}} verbs that indicate either or both an activity or a result of an activity",
parents = {"ක්රියා පද"},
}
labels["nominalized adjectives"] = {
description = "{{{langname}}} adjectives that are used as nouns.",
parents = {"නාම පද", "නාම විශේෂණ පද"},
}
labels["non-constituents"] = {
description = "{{{langname}}} terms that are not grammatical [[constituent#Noun|constituents]], and therefore need to be combined with additional terms to form a complete phrase.",
parents = {"වාක්ය ඛණ්ඩ"},
}
labels["noun prefixes"] = {
description = "{{{langname}}} prefixes attached to a noun that display its noun class.",
parents = {"උපසර්ග"},
}
labels["නාම පද"] = {
description = "{{{langname}}} terms that indicate people, beings, things, places, phenomena, qualities or ideas.",
parents = {"පාඨ"},
}
labels["nouns by classifier"] = {
description = "{{{langname}}} nouns organized by the classifier they are used with.",
parents = {{name = "නාම පද", sort = "classifier"}},
}
labels["සංඛ්යාංක"] = {
description = "{{{langname}}} terms that quantify nouns.",
parents = {"පාඨ"},
}
labels["object concords"] = {
description = "{{{langname}}} concords used to show the grammatical object.",
parents = {"concords"},
}
labels["object pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical objects.",
parents = {"සර්වනාම"},
}
labels["නිපාත පද"] = {
description = "{{{langname}}} terms that do not belong to any of the inflected grammatical word classes, often lacking their own grammatical functions and forming other parts of speech or expressing the relationship between clauses.",
parents = {"පාඨ"},
}
labels["passive verbs"] = {
description = "{{{langname}}} verbs that are usually used in passive voice.",
parents = {"ක්රියා පද"},
}
labels["perfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as completed events, as opposed to ongoing or continuous.",
parents = {"ක්රියා පද"},
}
labels["personal pronouns"] = {
description = "{{{langname}}} pronouns that are used as substitutes for known nouns.",
parents = {"සර්වනාම"},
}
labels["phrasal verbs"] = {
description = "{{{langname}}} verbs accompanied by particles, such as prepositions and adverbs.",
parents = {"ක්රියා පද", "වාක්ය ඛණ්ඩ"},
}
labels["phrasal prepositions"] = {
description = "{{{langname}}} prepositions formed with combinations of other terms.",
parents = {"prepositions", "වාක්ය ඛණ්ඩ"},
}
labels["pluralia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the plural form.",
parents = {"නාම පද"},
}
labels["point-in-time adverbs"] = {
description = "{{{langname}}} adverbs that reference a specific point in time, e.g. {{m|en|yesterday}}, {{m+|es|anoche||last night}} or {{m+|hu|egykor||at one o'clock}}.",
parents = {"time adverbs"},
}
labels["possessable nouns"] = {
description = "{{{langname}}} nouns can have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that can have their possession indicated directly by possessive pronouns and, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Possessable nouns by language",
},
}
labels["possessional adjectives"] = {
description = "{{{langname}}} adjectives that indicate that a noun is in possession of something.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive adjectives"] = {
description = "{{{langname}}} adjectives that indicate ownership.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive concords"] = {
description = "{{{langname}}} concords used to show possession.",
parents = {"concords"},
}
labels["possessive determiners"] = {
description = "{{{langname}}} determiners that indicate ownership.",
parents = {"determiners"},
}
labels["possessive pronouns"] = {
description = "{{{langname}}} pronouns that indicate ownership.",
parents = {"සර්වනාම"},
}
labels["postpositional phrases"] = {
description = "{{{langname}}} phrases headed by a postposition.",
parents = {"වාක්ය ඛණ්ඩ", "postpositions"},
}
labels["postpositions"] = {
description = "{{{langname}}} adpositions that are placed after their objects.",
parents = {"පාඨ"},
}
labels["predicatives"] = {
description = "{{{langname}}} elements of the predicate that supplement the subject or object of a sentence via the verb.",
parents = {"පාඨ"},
}
labels["උපසර්ග"] = {
description = "Affixes attached to the beginning of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["prepositional phrases"] = {
description = "{{{langname}}} phrases headed by a preposition.",
parents = {"වාක්ය ඛණ්ඩ", "prepositions"},
}
labels["prepositions"] = {
description = "{{{langname}}} adpositions that are placed before their objects.",
parents = {"පාඨ"},
}
labels["ablative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the ablative case.",
parents = {"prepositions"},
}
labels["ablative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the ablative case.",
parents = {"postpositions"},
}
labels["accusative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the accusative case.",
parents = {"prepositions"},
}
labels["dative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the dative case.",
parents = {"prepositions"},
}
labels["genitive prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the genitive case.",
parents = {"prepositions"},
}
labels["instrumental prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the instrumental case.",
parents = {"prepositions"},
}
labels["locative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the locative case.",
parents = {"prepositions"},
}
labels["locative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the locative case.",
parents = {"postpositions"},
}
labels["matrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's mother.",
parents = {"moieties"},
}
labels["nominative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the nominative case.",
parents = {"prepositions"},
}
labels["patrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's father.",
parents = {"moieties"},
}
labels["pejorative suffixes"] = {
description = "{{{langname}}} suffixes that [[belittle]] (lessen in value).",
parents = {"ප්රත්ය"},
}
labels["prepositional prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the prepositional case.",
parents = {"prepositions"},
}
labels["prenouns"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to nouns.",
parents = {"උපසර්ග"},
}
labels["preverbs"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to verbs.",
parents = {"උපසර්ග"},
}
labels["privative verbs"] = {
description = "{{{langname}}} verbs that indicate that the grammatical object is deprived of something or that something is removed from the object.",
parents = {"ක්රියා පද"},
}
labels["pronominal adverbs"] = {
description = "{{{langname}}} adverbs that are formed by combining a pronoun with a preposition.",
parents = {"ක්රියා විශේෂණ පද", "prepositions", "සර්වනාම"},
}
labels["pronominal concords"] = {
description = "{{{langname}}} concords that are prefixed to pronominal stems.",
parents = {"concords"},
}
labels["සර්වනාම"] = {
description = "{{{langname}}} terms that refer to and substitute nouns.",
parents = {"පාඨ"},
}
labels["සංඥා නාම පද"] = {
description = "{{{langname}}} nouns that indicate individual entities, such as names of persons, places or organizations.",
parents = {"නාම පද"},
}
labels["raising verbs"] = {
description = "{{{langname}}} verbs that, in a matrix or main clause, take an argument from an embedded or subordinate clause; in other words, a raising verb appears with a syntactic argument that is not its semantic argument, but is rather the semantic argument of an embedded predicate.",
parents = {"ක්රියා පද"},
}
labels["reciprocal pronouns"] = {
description = "{{{langname}}} pronouns that refer back to a plural subject and express an action done in two or more directions.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reciprocal verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from multiple subjects to each other.",
parents = {"ක්රියා පද"},
}
labels["reflexive pronouns"] = {
description = "{{{langname}}} pronouns that refer back to the subject.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reflexive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from the grammatical subjects to themselves.",
parents = {"ක්රියා පද"},
}
labels["relational adjectives"] = {
description = "{{{langname}}} adjectives that stand in place of a noun when modifying another noun.",
parents = {"නාම විශේෂණ පද"},
}
labels["relational nouns"] = {
description = "{{{langname}}} nouns used to indicate a relation between other two nouns by means of possession.",
parents = {"නාම පද"},
}
labels["relative adjectives"] = {
description = "{{{langname}}} adjectives used to indicate [[relative clause]]s.",
parents = {"නාම විශේෂණ පද", {name = "relative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["relative adverbs"] = {
description = "{{{langname}}} adverbs used to indicate [[relative clause]]s.",
parents = {"ක්රියා විශේෂණ පද", {name = "relative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["relative determiners"] = {
description = "{{{langname}}} determiners used to indicate [[relative clause]]s.",
parents = {"determiners", {name = "relative pro-forms", sort = "determiners"}},
}
labels["relative concords"] = {
description = "{{{langname}}} concords that are prefixed to relative stems.",
parents = {"concords"},
}
labels["relative pronouns"] = {
description = "{{{langname}}} pronouns used to indicate [[relative clause]]s.",
parents = {"සර්වනාම", {name = "relative pro-forms", sort = "සර්වනාම"}},
}
labels["relatives"] = {
description = "{{{langname}}} terms that give attributes to nouns, acting grammatically as relative clauses.",
parents = {"පාඨ"},
}
labels["repetitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions or events which are performed or occur again, anew or differently.",
parents = {"ක්රියා පද"},
}
labels["resultative verbs"] = {
description = "{{{langname}}} verbs that indicate a result of some action",
parents = {"ක්රියා පද"},
}
labels["reversative verbs"] = {
description = "{{{langname}}} verbs that indicate that the reversal or undoing of an action, event or state.",
parents = {"ක්රියා පද"},
}
labels["saturative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed to the point of saturation or satisfaction.",
parents = {"ක්රියා පද"},
}
labels["semelfactive verbs"] = {
description = "{{{langname}}} verbs that are punctual (instantaneous, momentive), perfective (treated as a unitary whole with no explicit internal temporal structure), and telic (having a boundary out of which the activity cannot be said to have taken place or continue).",
parents = {"ක්රියා පද"},
}
labels["sentence adverbs"] = {
description = "{{{langname}}} adverbs that modify an entire clause or sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["sequence adverbs"] = {
description = "{{{langname}}} conjunctive adverbs that express sequence in space or time.",
parents = {"conjunctive adverbs"},
}
labels["simulfixes"] = {
description = "Affixes replacing positions in {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["singulative nouns"] = {
description = "{{{langname}}} nouns that indicate a single item of a group of related things or beings.",
parents = {"නාම පද"},
}
labels["singularia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the singular form.",
parents = {"නාම පද"},
}
labels["solitary pronouns"] = {
description = "{{{langname}}} pronouns that refer to specific people in particular and sets them apart from anyone else.",
parents = {"pronouns", "personal pronouns"},
}
labels["stative verbs"] = {
description = "{{{langname}}} verbs that define a state with no or insignificant internal dynamics.",
parents = {"ක්රියා පද"},
}
labels["stems"] = {
description = "Morphemes from which {{{langname}}} words are formed.",
parents = {"පදාණු"},
}
labels["subordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate relations of syntactic dependence between connected items.",
parents = {"conjunctions"},
}
labels["subject concords"] = {
description = "{{{langname}}} concords used to show the grammatical subject.",
parents = {"concords"},
}
labels["subject pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical subjects.",
parents = {"සර්වනාම"},
}
labels["ප්රත්ය"] = {
description = "Affixes attached to the end of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["splitting verbs"] = {
description = "{{{langname}}} bisyllabic verbs that obligatorily split around a direct object or pronoun.",
parents = {"ක්රියා පද"},
}
labels["terminative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event ceases.",
parents = {"ක්රියා පද"},
}
labels["time adverbs"] = {
description = "{{{langname}}} adverbs that indicate time, expressing either [[duration]], [[frequency]] or a [[point]] in [[time]].",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["transfixes"] = {
description = "Discontinuous affixes inserted within a word root.",
parents = {"පදාණු"},
}
labels["transformative verbs"] = {
description = "{{{langname}}} verbs that indicate a change of state or nature, in the subject for intransitive verbs and in the object for transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["transitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed to one or more grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["uncomparable adjectives"] = {
description = "{{{langname}}} adjectives that are not inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["uncomparable adverbs"] = {
description = "{{{langname}}} adverbs that are not inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["නොගැණිය හැකි නාම පද"] = {
description = "{{{langname}}} nouns that indicate qualities, ideas, unbounded mass or other abstract concepts that cannot be quantified directly by numerals.",
parents = {"නාම පද"},
}
labels["uncountable numerals"] = {
description = "{{{langname}}} numerals that cannot be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["නොගැණිය හැකි සංඥා නාම පද"] = {
description = "{{{langname}}} proper nouns that cannot be quantified directly by numerals.",
parents = {"සංඥා නාම පද"},
}
labels["uncountable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that cannot be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["unpossessable nouns"] = {
description = "{{{langname}}} nouns that cannot have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that cannot have their possession indicated directly by possessive pronouns or, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Unpossessable nouns by language",
},
}
labels["verbal nouns"] = {
description = "{{{langname}}} nouns morphologically related to a verb and similar to it in meaning.",
parents = {"නාම පද"},
}
labels["verbal adjectives"] = {
description = "{{{langname}}} adjectives describing the condition or state resulting from the action of the corresponding verb.",
parents = {"නාම විශේෂණ පද"},
}
labels["ක්රියා පද"] = {
description = "{{{langname}}} terms that indicate actions, occurrences or states.",
parents = {"පාඨ"},
}
labels["verbs of movement"] = {
description = "{{{langname}}} verbs that indicate physical movement of the grammatical subject across a trajectory, with a starting point and an endpoint.",
parents = {"ක්රියා පද"},
}
-- Add "POS-forming suffixes".
local poses_derived_by_suffix = {
"adjective", "adverb", "noun", "verb",
}
for _, pos in pairs(poses_derived_by_suffix) do
labels[pos .. "-forming suffixes"] = {
description = "{{{langname}}} suffixes that are used to derive " .. pos .. "s from other words.",
parents = {"derivational suffixes"},
}
end
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග"
end
labels2["reconstructed " .. key] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග",
parents = {key, {name = "reconstructed terms", sort = key}}
}
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["භාෂාව අනුව ලෙමා උප ප්රවර්ග"] = {
description = "ලෙමා හා සබැඳි මාතෘකා ආවරණය කරන ඡත්ර ප්රවර්ග.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"ඡත්ර මෙටා ප්රවර්ග",
{name = "පාඨ", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:English phrasal verbs formed with "aback"]].
table.insert(handlers, function(data)
local particle = data.label:match("^phrasal verbs formed with \"(.-)\"$")
if particle then
local tagged_text = require("Module:script utilities").tag_text(particle, data.lang, nil, "term")
local link = require("Module:links").full_link({ term = particle, lang = data.lang }, "term")
return {
description = "{{{langname}}} {{w|phrasal verb}}s formed with the adverb or preposition " .. link .. ".",
displaytitle = '{{{langname}}} phrasal verbs formed with "' .. tagged_text .. '"',
breadcrumb = tagged_text,
parents = {{ name = "phrasal verbs", sort = particle }},
umbrella = false,
}
end
end)
return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}
1tq0umznwdjk0v8x9lfhlu606jqdlcq
196040
196039
2024-12-04T12:50:21Z
Lee
19
"pronouns" සිට "සර්වනාම" වෙතට
196040
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
local diminutive_augmentative_poses = {
"නාම විශේෂණ පද",
"ක්රියා විශේෂණ පද",
"විශ්මයාර්ථ පද",
"නාම පද",
"සංඛ්යාංක",
"උපසර්ග",
"සංඥා නාම පද",
"සර්වනාම",
"ප්රත්ය",
"ක්රියා පද"
}
labels["පාඨ"] = {
description = "{{{langname}}} [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "මූලධර්ම",
parents = {{name = "{{{langcat}}}", raw = true, sort = " "}},
}
labels["abstract verbs"] = {
description = "{{{langname}}} abstract verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action. Abstract verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect.",
additional = "See also [[abstract verb]].",
parents = {"ක්රියා පද"},
}
labels["action nouns"] = {
description = "{{{langname}}} nouns denoting action of a verb or verbal root that it is derived from.",
parents = {"නාම පද"},
}
labels["act-related adverbs"] = {
description = "{{{langname}}} adverbs that indicate the motive or other background information for an action.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["active verbs"] = {
description = "{{{langname}}} verbs that indicate an activity",
parents = {"ක්රියා පද"},
}
labels["adjective concords"] = {
description = "{{{langname}}} concords that are prefixed to adjective stems.",
parents = {"concords"},
}
labels["නාම විශේෂණ පද"] = {
description = "{{{langname}}} terms that give attributes to nouns, extending their definitions.",
parents = {"පාඨ"},
}
labels["adverbial accusatives"] = {
description = "Accusative case-forms in {{{langname}}} used as adverbs.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["ක්රියා විශේෂණ පද"] = {
description = "{{{langname}}} terms that modify clauses, sentences and phrases directly.",
parents = {"පාඨ"},
}
labels["affixes"] = {
description = "Morphemes attached to existing {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["agent nouns"] = {
description = "{{{langname}}} nouns that denote an agent that performs the action denoted by the verb from which the noun is derived.",
parents = {"නාම පද"},
}
labels["ambipositions"] = {
description = "{{{langname}}} adpositions that can occur either before or after their objects.",
parents = {"පාඨ"},
}
labels["ambitransitive verbs"] = {
description = "{{{langname}}} verbs that may or may not direct actions, occurrences or states to grammatical objects.",
parents = {"ක්රියා පද", "transitive verbs", "intransitive verbs"},
}
labels["animal commands"] = {
description = "{{{langname}}} words used to communicate with animals.",
parents = {"විශ්මයාර්ථ පද"},
}
labels["articles"] = {
description = "{{{langname}}} terms that indicate and specify nouns.",
parents = {"determiners"},
}
labels["aspect adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Grammatical aspect|grammatical aspect]], describing the flow of time in relation to a statement.",
parents = {"ක්රියා විශේෂණ පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["augmentative " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey big size or big intensity.",
parents = {pos},
}
end
labels["attenuative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event is performed or takes place gently, lightly, partially, perfunctorily or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["autobenefactive verbs"] = {
description = "{{{langname}}} verbs that indicate that the agent of an action is also its benefactor.",
parents = {"ක්රියා පද"},
}
labels["automative verbs"] = {
description = "{{{langname}}} verbs that indicate actions directed at or a change of state of the grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["auxiliary verbs"] = {
description = "{{{langname}}} verbs that provide additional conjugations for other verbs.",
parents = {"ක්රියා පද"},
}
labels["biaspectual verbs"] = {
description = "{{{langname}}} verbs that can be both imperfective and perfective.",
parents = {"ක්රියා පද"},
}
labels["causative verbs"] = {
description = "{{{langname}}} verbs that express causing actions or states rather than performing or being them directly. Use this only for separate verbs (as opposed to causative forms that are part of the inflection of verbs).",
parents = {"ක්රියා පද"},
}
labels["circumfixes"] = {
description = "Affixes attached to both the beginning and the end of {{{langname}}} words, functioning together as single units.",
parents = {"පදාණු"},
}
labels["circumpositions"] = {
description = "{{{langname}}} adpositions that appear on both sides of their objects.",
parents = {"පාඨ"},
}
labels["classifiers"] = {
description = "{{{langname}}} terms that classify nouns according to their meanings.",
parents = {"පාඨ"},
}
labels["clitics"] = {
description = "{{{langname}}} morphemes that function as independent words, but are always attached to another word.",
parents = {"පදාණු"},
}
for _, pos in ipairs { "නාම පද", "ප්රත්ය" } do
labels["සමූහවාචී " .. pos] = {
description = "{{{langname}}} " .. pos .. " that indicate groups of related things or beings, without the need of grammatical pluralization.",
parents = {pos},
}
end
labels["combining forms"] = {
description = "Forms of {{{langname}}} words that do not occur independently, but are used when joined with other words.",
parents = {"පදාණු"},
}
labels["comparable adjectives"] = {
description = "{{{langname}}} adjectives that can be inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["comparable adverbs"] = {
description = "{{{langname}}} adverbs that can be inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["comparative-only adjectives"] = {
description = "{{{langname}}} adjectives that are only used in their comparative forms.",
parents = {"නාම විශේෂණ පද"},
}
labels["completive verbs"] = {
description = "{{{langname}}} verbs which refer to the completion of an action which has already commenced or which has already been performed upon a subset of the entities which it affects.",
parents = {"ක්රියා පද"},
}
labels["concords"] = {
description = "{{{langname}}} prefixes attached to words to show agreement with a noun or pronoun.",
parents = {"උපසර්ග"},
}
labels["concrete verbs"] = {
description = "{{{langname}}} concrete verbs refer to a verbal aspect in verbs of motion that is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions). Concrete verbs may be either imperfective or perfective.",
additional = "See also [[concrete verb]].",
parents = {"ක්රියා පද"},
}
labels["conjunctions"] = {
description = "{{{langname}}} terms that connect words, phrases or clauses together.",
parents = {"පාඨ"},
}
labels["conjunctive adverbs"] = {
description = "{{{langname}}} adverbs that connect two independent clauses together.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["continuative verbs"] = {
description = "{{{langname}}} verbs that express continuing action.",
parents = {"ක්රියා පද"},
}
labels["control verbs"] = {
description = "{{{langname}}} verbs that take multiple arguments, one of which is another verb. One of the control verb's arguments is syntactically both an argument of the control verb and an argument of the other verb.",
parents = {"ක්රියා පද"},
}
labels["cooperative verbs"] = {
description = "{{{langname}}} verbs that indicate cooperation",
parents = {"ක්රියා පද"},
}
labels["coordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate equal syntactic importance between connected items.",
parents = {"conjunctions"},
}
labels["copulative verbs"] = {
description = "{{{langname}}} verbs that may take adjectives as their complement.",
parents = {"ක්රියා පද"},
}
for _, pos in ipairs { "නාම පද", "සංඥා නාම පද" } do
labels["ගැණිය හැකි " .. pos] = {
description = "{{{langname}}} " .. pos .. " that can be quantified directly by numerals.",
parents = {pos},
}
end
labels["countable numerals"] = {
description = "{{{langname}}} numerals that can be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["countable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that can be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["counters"] = {
description = "{{{langname}}} terms that combine with numerals to express quantity of nouns.",
parents = {"පාඨ"},
}
labels["cumulative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event gradually yields a certain or significant quantity or effect.",
parents = {"ක්රියා පද"},
}
labels["degree adverbs"] = {
description = "{{{langname}}} adverbs that express a particular degree to which the word they modify applies.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["delimitative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event is performed or takes place briefly or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["demonstrative adjectives"] = {
description = "{{{langname}}} adjectives that refer to nouns, comparing them to external references.",
parents = {"නාම විශේෂණ පද", {name = "demonstrative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["demonstrative adverbs"] = {
description = "{{{langname}}} adverbs that refer to other adverbs, comparing them to external references.",
parents = {"ක්රියා විශේෂණ පද", {name = "demonstrative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["denominal verbs"] = { -- in [[Appendix:Glossary]]; "denominative" more frequent?
description = "{{{langname}}} verbs that derive from nouns.",
parents = { "ක්රියා පද" },
}
labels["demonstrative determiners"] = {
description = "{{{langname}}} determiners that refer to nouns, comparing them to external references.",
parents = {"determiners", {name = "demonstrative pro-forms", sort = "determiners"}},
}
labels["demonstrative pronouns"] = {
description = "{{{langname}}} pronouns that refer to nouns, comparing them to external references.",
parents = {"සර්වනාම", {name = "demonstrative pro-forms", sort = "සර්වනාම"}},
}
labels["deponent verbs"] = {
description = "{{{langname}}} verbs that have active meanings but are not conjugated in the active voice.",
parents = {"ක්රියා පද"},
}
labels["derivational prefixes"] = {
description = "{{{langname}}} prefixes that are used to create new words.",
parents = {"උපසර්ග"},
}
labels["derivational suffixes"] = {
description = "{{{langname}}} suffixes that are used to create new words.",
parents = {"ප්රත්ය"},
}
labels["derivative verbs"] = {
description = "{{{langname}}} verbs that are derived from nouns and adjectives.",
parents = {"ක්රියා පද"},
}
labels["desiderative verbs"] = {
description = "{{{langname}}} verbs with the following morphology: verbal root xxx + [[desiderative]] affix, and the following semantics: to wish to do the action xxx.",
parents = {"ක්රියා පද"},
}
labels["determinatives"] = {
description = "{{{langname}}} terms that indicate the general class to which the following logogram belongs.",
parents = {"පාඨ"},
}
labels["determiners"] = {
description = "{{{langname}}} terms that narrow down, within the conversational context, the referent of the following noun.",
parents = {"පාඨ"},
}
labels["diminutiva tantum"] = {
description = "{{{langname}}} nouns or noun senses that are mostly or exclusively used in the diminutive form.",
parents = {"නාම පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["diminutive " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey endearment, small size or small intensity.",
parents = {pos},
}
end
labels["discourse particles"] = {
description = "{{{langname}}} particles that manage the flow and structure of discourse.",
parents = {"නිපාත පද"},
}
labels["distributive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event involves multiple participants or a large quantity of an uncountable mass, usually as the grammatical subject in the case of intransitive verbs and as the grammatical object in the case of transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["ditransitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states of two grammatical objects simultaneously, one direct and one indirect.",
parents = {"ක්රියා පද", "transitive verbs"},
}
labels["dualia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the dual form.",
parents = {"නාම පද"},
}
labels["duration adverbs"] = {
description = "{{{langname}}} adverbs that express duration in time, such as (in English) [[always]], [[all night]] and [[ever since]].",
parents = {"time adverbs"},
}
labels["ergative verbs"] = {
description = "{{{langname}}} [[Appendix:Glossary#ergative|ergative verb]]s: intransitive verbs that become causatives when used transitively.",
parents = {"ක්රියා පද", "intransitive verbs", "transitive verbs"},
}
labels["excessive verbs"] = {
description = "{{{langname}}} verbs that indicate that an action is performed to an excessive extent.",
parents = {"ක්රියා පද"},
}
labels["enclitics"] = {
description = "{{{langname}}} clitics that attach to the preceding word.",
parents = {"clitics"},
}
labels["nouns with other-gender equivalents"] = {
description = "{{{langname}}} nouns that refer to gendered concepts (e.g. [[actor]] vs. [[actress]], [[king]] vs. [[queen]]) and have corresponding other-gender equivalent terms.",
parents = {"නාම පද"},
}
labels["female equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to female beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["neuter equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to neuter beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["female equivalent suffixes"] = {
description = "{{{langname}}} suffixes that refer to female beings with the same characteristics as the base suffix.",
parents = {"noun-forming suffixes"},
}
labels["focus adverbs"] = {
description = "{{{langname}}} adverbs that indicate [[w:Focus (linguistics)|focus]] within the sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["frequency adverbs"] = {
description = "{{{langname}}} adverbs that express repetition with a certain frequency or interval, such as (in English) [[monthly]], [[continually]] and [[once in a while]].",
parents = {"time adverbs"},
}
labels["frequentative verbs"] = {
description = "{{{langname}}} verbs that express repeated action.",
parents = {"ක්රියා පද"},
}
labels["general pronouns"] = {
description = "{{{langname}}} pronouns that refer to all persons, things, abstract ideas and their characteristics.",
parents = {"සර්වනාම"},
}
labels["generational moieties"] = {
description = "{{{langname}}} moieties that alternate every generation.",
parents = {"moieties"},
}
labels["ideophones"] = {
description = "{{{langname}}} terms that evoke an idea, especially a sensation or impression, with a sound.",
parents = {"පාඨ"},
}
labels["imperfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as ongoing or continuous, as opposed to completed events.",
parents = {"ක්රියා පද"},
}
labels["impersonal verbs"] = {
description = "{{{langname}}} verbs that do not indicate actions, occurrences or states of any specific grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["inchoative verbs"] = {
description = "{{{langname}}} verbs that indicate the beginning of an action or event.",
parents = {"ක්රියා පද"},
}
labels["indefinite adjectives"] = {
description = "{{{langname}}} adjectives that refer to unspecified adjective meanings.",
parents = {"නාම විශේෂණ පද", {name = "indefinite pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["indefinite adverbs"] = {
description = "{{{langname}}} adverbs that refer to unspecified adverbial meanings.",
parents = {"ක්රියා විශේෂණ පද", {name = "indefinite pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["indefinite determiners"] = {
description = "{{{langname}}} determiners that designate an unidentified noun.",
parents = {"determiners", {name = "indefinite pro-forms", sort = "determiners"}},
}
labels["indefinite pronouns"] = {
description = "{{{langname}}} pronouns that refer to unspecified nouns.",
parents = {"සර්වනාම", {name = "indefinite pro-forms", sort = "සර්වනාම"}},
}
labels["infixes"] = {
description = "Affixes inserted inside {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["inflectional prefixes"] = {
description = "{{{langname}}} prefixes that are used as inflectional beginnings in noun, adjective or verb paradigms.",
parents = {"උපසර්ග"},
}
labels["inflectional suffixes"] = {
description = "{{{langname}}} suffixes that are used as inflectional endings in noun, adjective or verb paradigms.",
parents = {"ප්රත්ය"},
}
labels["intensive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed vigorously, enthusiastically, forcefully or to an otherwise enlarged extent.",
parents = {"ක්රියා පද"},
}
labels["interfixes"] = {
description = "Affixes used to join two {{{langname}}} words or morphemes together.",
parents = {"පදාණු"},
}
labels["විශ්මයාර්ථ පද"] = {
description = "{{{langname}}} terms that express emotions, sounds, etc. as exclamations.",
parents = {"පාඨ"},
}
labels["interrogative adjectives"] = {
description = "{{{langname}}} adjectives that indicate questions.",
parents = {"නාම විශේෂණ පද", {name = "interrogative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["interrogative adverbs"] = {
description = "{{{langname}}} adverbs that indicate questions.",
parents = {"ක්රියා විශේෂණ පද", {name = "interrogative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["interrogative determiners"] = {
description = "{{{langname}}} determiners that indicate questions.",
parents = {"determiners", {name = "interrogative pro-forms", sort = "determiners"}},
}
labels["interrogative particles"] = {
description = "{{{langname}}} particles that indicate questions.",
parents = {"නිපාත පද", {name = "interrogative pro-forms", sort = "නිපාත පද"}},
}
labels["interrogative pronouns"] = {
description = "{{{langname}}} pronouns that indicate questions.",
parents = {"සර්වනාම", {name = "interrogative pro-forms", sort = "සර්වනාම"}},
}
labels["intransitive verbs"] = {
description = "{{{langname}}} verbs that don't require any grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["iterative verbs"] = {
description = "{{{langname}}} verbs that express the repetition of an event.",
parents = {"ක්රියා පද"},
}
labels["location adverbs"] = {
description = "{{{langname}}} adverbs that indicate location.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["male equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to male beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["manner adverbs"] = {
description = "{{{langname}}} adverbs that indicate the manner, way or style in which an action is performed.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["modal adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Linguistic modality|linguistic modality]], indicating the mood or attitude of the speaker with respect to what is being said.",
parents = {"sentence adverbs"},
}
labels["modal particles"] = {
description = "{{{langname}}} particles that reflect the mood or attitude of the speaker, without changing the basic meaning of the sentence.",
parents = {"නිපාත පද"},
}
labels["modal verbs"] = {
description = "{{{langname}}} verbs that indicate [[grammatical mood]].",
parents = {"auxiliary verbs"},
}
labels["moieties"] = {
description = "{{{langname}}} pairs of abstract categories separating people and the environment.",
parents = {"පාඨ"},
}
labels["momentane verbs"] = {
description = "{{{langname}}} verbs that express a sudden and brief action.",
parents = {"ක්රියා පද"},
}
labels["පදාණු"] = {
description = "{{{langname}}} word-elements used to form full words.",
parents = {"පාඨ"},
}
labels["multiword terms"] = {
description = "{{{langname}}} lemmas that are a combination of multiple words, including [[WT:CFI#Idiomaticity|idiomatic]] combinations.",
parents = {"පාඨ"},
}
labels["negative verbs"] = {
description = "{{{langname}}} verbs that indicate the lack of an action.",
parents = {"ක්රියා පද"},
}
labels["negative particles"] = {
description = "{{{langname}}} particles that indicate negation.",
parents = {"නිපාත පද"},
}
labels["negative pronouns"] = {
description = "{{{langname}}} pronouns that refer to negative or non-existent references.",
parents = {"සර්වනාම"},
}
labels["neutral verbs"] = {
description = "{{{langname}}} verbs that indicate either or both an activity or a result of an activity",
parents = {"ක්රියා පද"},
}
labels["nominalized adjectives"] = {
description = "{{{langname}}} adjectives that are used as nouns.",
parents = {"නාම පද", "නාම විශේෂණ පද"},
}
labels["non-constituents"] = {
description = "{{{langname}}} terms that are not grammatical [[constituent#Noun|constituents]], and therefore need to be combined with additional terms to form a complete phrase.",
parents = {"වාක්ය ඛණ්ඩ"},
}
labels["noun prefixes"] = {
description = "{{{langname}}} prefixes attached to a noun that display its noun class.",
parents = {"උපසර්ග"},
}
labels["නාම පද"] = {
description = "{{{langname}}} terms that indicate people, beings, things, places, phenomena, qualities or ideas.",
parents = {"පාඨ"},
}
labels["nouns by classifier"] = {
description = "{{{langname}}} nouns organized by the classifier they are used with.",
parents = {{name = "නාම පද", sort = "classifier"}},
}
labels["සංඛ්යාංක"] = {
description = "{{{langname}}} terms that quantify nouns.",
parents = {"පාඨ"},
}
labels["object concords"] = {
description = "{{{langname}}} concords used to show the grammatical object.",
parents = {"concords"},
}
labels["object pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical objects.",
parents = {"සර්වනාම"},
}
labels["නිපාත පද"] = {
description = "{{{langname}}} terms that do not belong to any of the inflected grammatical word classes, often lacking their own grammatical functions and forming other parts of speech or expressing the relationship between clauses.",
parents = {"පාඨ"},
}
labels["passive verbs"] = {
description = "{{{langname}}} verbs that are usually used in passive voice.",
parents = {"ක්රියා පද"},
}
labels["perfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as completed events, as opposed to ongoing or continuous.",
parents = {"ක්රියා පද"},
}
labels["personal pronouns"] = {
description = "{{{langname}}} pronouns that are used as substitutes for known nouns.",
parents = {"සර්වනාම"},
}
labels["phrasal verbs"] = {
description = "{{{langname}}} verbs accompanied by particles, such as prepositions and adverbs.",
parents = {"ක්රියා පද", "වාක්ය ඛණ්ඩ"},
}
labels["phrasal prepositions"] = {
description = "{{{langname}}} prepositions formed with combinations of other terms.",
parents = {"prepositions", "වාක්ය ඛණ්ඩ"},
}
labels["pluralia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the plural form.",
parents = {"නාම පද"},
}
labels["point-in-time adverbs"] = {
description = "{{{langname}}} adverbs that reference a specific point in time, e.g. {{m|en|yesterday}}, {{m+|es|anoche||last night}} or {{m+|hu|egykor||at one o'clock}}.",
parents = {"time adverbs"},
}
labels["possessable nouns"] = {
description = "{{{langname}}} nouns can have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that can have their possession indicated directly by possessive pronouns and, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Possessable nouns by language",
},
}
labels["possessional adjectives"] = {
description = "{{{langname}}} adjectives that indicate that a noun is in possession of something.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive adjectives"] = {
description = "{{{langname}}} adjectives that indicate ownership.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive concords"] = {
description = "{{{langname}}} concords used to show possession.",
parents = {"concords"},
}
labels["possessive determiners"] = {
description = "{{{langname}}} determiners that indicate ownership.",
parents = {"determiners"},
}
labels["possessive pronouns"] = {
description = "{{{langname}}} pronouns that indicate ownership.",
parents = {"සර්වනාම"},
}
labels["postpositional phrases"] = {
description = "{{{langname}}} phrases headed by a postposition.",
parents = {"වාක්ය ඛණ්ඩ", "postpositions"},
}
labels["postpositions"] = {
description = "{{{langname}}} adpositions that are placed after their objects.",
parents = {"පාඨ"},
}
labels["predicatives"] = {
description = "{{{langname}}} elements of the predicate that supplement the subject or object of a sentence via the verb.",
parents = {"පාඨ"},
}
labels["උපසර්ග"] = {
description = "Affixes attached to the beginning of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["prepositional phrases"] = {
description = "{{{langname}}} phrases headed by a preposition.",
parents = {"වාක්ය ඛණ්ඩ", "prepositions"},
}
labels["prepositions"] = {
description = "{{{langname}}} adpositions that are placed before their objects.",
parents = {"පාඨ"},
}
labels["ablative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the ablative case.",
parents = {"prepositions"},
}
labels["ablative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the ablative case.",
parents = {"postpositions"},
}
labels["accusative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the accusative case.",
parents = {"prepositions"},
}
labels["dative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the dative case.",
parents = {"prepositions"},
}
labels["genitive prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the genitive case.",
parents = {"prepositions"},
}
labels["instrumental prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the instrumental case.",
parents = {"prepositions"},
}
labels["locative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the locative case.",
parents = {"prepositions"},
}
labels["locative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the locative case.",
parents = {"postpositions"},
}
labels["matrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's mother.",
parents = {"moieties"},
}
labels["nominative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the nominative case.",
parents = {"prepositions"},
}
labels["patrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's father.",
parents = {"moieties"},
}
labels["pejorative suffixes"] = {
description = "{{{langname}}} suffixes that [[belittle]] (lessen in value).",
parents = {"ප්රත්ය"},
}
labels["prepositional prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the prepositional case.",
parents = {"prepositions"},
}
labels["prenouns"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to nouns.",
parents = {"උපසර්ග"},
}
labels["preverbs"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to verbs.",
parents = {"උපසර්ග"},
}
labels["privative verbs"] = {
description = "{{{langname}}} verbs that indicate that the grammatical object is deprived of something or that something is removed from the object.",
parents = {"ක්රියා පද"},
}
labels["pronominal adverbs"] = {
description = "{{{langname}}} adverbs that are formed by combining a pronoun with a preposition.",
parents = {"ක්රියා විශේෂණ පද", "prepositions", "සර්වනාම"},
}
labels["pronominal concords"] = {
description = "{{{langname}}} concords that are prefixed to pronominal stems.",
parents = {"concords"},
}
labels["සර්වනාම"] = {
description = "{{{langname}}} terms that refer to and substitute nouns.",
parents = {"පාඨ"},
}
labels["සංඥා නාම පද"] = {
description = "{{{langname}}} nouns that indicate individual entities, such as names of persons, places or organizations.",
parents = {"නාම පද"},
}
labels["raising verbs"] = {
description = "{{{langname}}} verbs that, in a matrix or main clause, take an argument from an embedded or subordinate clause; in other words, a raising verb appears with a syntactic argument that is not its semantic argument, but is rather the semantic argument of an embedded predicate.",
parents = {"ක්රියා පද"},
}
labels["reciprocal pronouns"] = {
description = "{{{langname}}} pronouns that refer back to a plural subject and express an action done in two or more directions.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reciprocal verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from multiple subjects to each other.",
parents = {"ක්රියා පද"},
}
labels["reflexive pronouns"] = {
description = "{{{langname}}} pronouns that refer back to the subject.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reflexive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from the grammatical subjects to themselves.",
parents = {"ක්රියා පද"},
}
labels["relational adjectives"] = {
description = "{{{langname}}} adjectives that stand in place of a noun when modifying another noun.",
parents = {"නාම විශේෂණ පද"},
}
labels["relational nouns"] = {
description = "{{{langname}}} nouns used to indicate a relation between other two nouns by means of possession.",
parents = {"නාම පද"},
}
labels["relative adjectives"] = {
description = "{{{langname}}} adjectives used to indicate [[relative clause]]s.",
parents = {"නාම විශේෂණ පද", {name = "relative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["relative adverbs"] = {
description = "{{{langname}}} adverbs used to indicate [[relative clause]]s.",
parents = {"ක්රියා විශේෂණ පද", {name = "relative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["relative determiners"] = {
description = "{{{langname}}} determiners used to indicate [[relative clause]]s.",
parents = {"determiners", {name = "relative pro-forms", sort = "determiners"}},
}
labels["relative concords"] = {
description = "{{{langname}}} concords that are prefixed to relative stems.",
parents = {"concords"},
}
labels["relative pronouns"] = {
description = "{{{langname}}} pronouns used to indicate [[relative clause]]s.",
parents = {"සර්වනාම", {name = "relative pro-forms", sort = "සර්වනාම"}},
}
labels["relatives"] = {
description = "{{{langname}}} terms that give attributes to nouns, acting grammatically as relative clauses.",
parents = {"පාඨ"},
}
labels["repetitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions or events which are performed or occur again, anew or differently.",
parents = {"ක්රියා පද"},
}
labels["resultative verbs"] = {
description = "{{{langname}}} verbs that indicate a result of some action",
parents = {"ක්රියා පද"},
}
labels["reversative verbs"] = {
description = "{{{langname}}} verbs that indicate that the reversal or undoing of an action, event or state.",
parents = {"ක්රියා පද"},
}
labels["saturative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed to the point of saturation or satisfaction.",
parents = {"ක්රියා පද"},
}
labels["semelfactive verbs"] = {
description = "{{{langname}}} verbs that are punctual (instantaneous, momentive), perfective (treated as a unitary whole with no explicit internal temporal structure), and telic (having a boundary out of which the activity cannot be said to have taken place or continue).",
parents = {"ක්රියා පද"},
}
labels["sentence adverbs"] = {
description = "{{{langname}}} adverbs that modify an entire clause or sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["sequence adverbs"] = {
description = "{{{langname}}} conjunctive adverbs that express sequence in space or time.",
parents = {"conjunctive adverbs"},
}
labels["simulfixes"] = {
description = "Affixes replacing positions in {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["singulative nouns"] = {
description = "{{{langname}}} nouns that indicate a single item of a group of related things or beings.",
parents = {"නාම පද"},
}
labels["singularia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the singular form.",
parents = {"නාම පද"},
}
labels["solitary pronouns"] = {
description = "{{{langname}}} pronouns that refer to specific people in particular and sets them apart from anyone else.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["stative verbs"] = {
description = "{{{langname}}} verbs that define a state with no or insignificant internal dynamics.",
parents = {"ක්රියා පද"},
}
labels["stems"] = {
description = "Morphemes from which {{{langname}}} words are formed.",
parents = {"පදාණු"},
}
labels["subordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate relations of syntactic dependence between connected items.",
parents = {"conjunctions"},
}
labels["subject concords"] = {
description = "{{{langname}}} concords used to show the grammatical subject.",
parents = {"concords"},
}
labels["subject pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical subjects.",
parents = {"සර්වනාම"},
}
labels["ප්රත්ය"] = {
description = "Affixes attached to the end of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["splitting verbs"] = {
description = "{{{langname}}} bisyllabic verbs that obligatorily split around a direct object or pronoun.",
parents = {"ක්රියා පද"},
}
labels["terminative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event ceases.",
parents = {"ක්රියා පද"},
}
labels["time adverbs"] = {
description = "{{{langname}}} adverbs that indicate time, expressing either [[duration]], [[frequency]] or a [[point]] in [[time]].",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["transfixes"] = {
description = "Discontinuous affixes inserted within a word root.",
parents = {"පදාණු"},
}
labels["transformative verbs"] = {
description = "{{{langname}}} verbs that indicate a change of state or nature, in the subject for intransitive verbs and in the object for transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["transitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed to one or more grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["uncomparable adjectives"] = {
description = "{{{langname}}} adjectives that are not inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["uncomparable adverbs"] = {
description = "{{{langname}}} adverbs that are not inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["නොගැණිය හැකි නාම පද"] = {
description = "{{{langname}}} nouns that indicate qualities, ideas, unbounded mass or other abstract concepts that cannot be quantified directly by numerals.",
parents = {"නාම පද"},
}
labels["uncountable numerals"] = {
description = "{{{langname}}} numerals that cannot be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["නොගැණිය හැකි සංඥා නාම පද"] = {
description = "{{{langname}}} proper nouns that cannot be quantified directly by numerals.",
parents = {"සංඥා නාම පද"},
}
labels["uncountable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that cannot be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["unpossessable nouns"] = {
description = "{{{langname}}} nouns that cannot have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that cannot have their possession indicated directly by possessive pronouns or, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Unpossessable nouns by language",
},
}
labels["verbal nouns"] = {
description = "{{{langname}}} nouns morphologically related to a verb and similar to it in meaning.",
parents = {"නාම පද"},
}
labels["verbal adjectives"] = {
description = "{{{langname}}} adjectives describing the condition or state resulting from the action of the corresponding verb.",
parents = {"නාම විශේෂණ පද"},
}
labels["ක්රියා පද"] = {
description = "{{{langname}}} terms that indicate actions, occurrences or states.",
parents = {"පාඨ"},
}
labels["verbs of movement"] = {
description = "{{{langname}}} verbs that indicate physical movement of the grammatical subject across a trajectory, with a starting point and an endpoint.",
parents = {"ක්රියා පද"},
}
-- Add "POS-forming suffixes".
local poses_derived_by_suffix = {
"adjective", "adverb", "noun", "verb",
}
for _, pos in pairs(poses_derived_by_suffix) do
labels[pos .. "-forming suffixes"] = {
description = "{{{langname}}} suffixes that are used to derive " .. pos .. "s from other words.",
parents = {"derivational suffixes"},
}
end
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග"
end
labels2["reconstructed " .. key] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග",
parents = {key, {name = "reconstructed terms", sort = key}}
}
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["භාෂාව අනුව ලෙමා උප ප්රවර්ග"] = {
description = "ලෙමා හා සබැඳි මාතෘකා ආවරණය කරන ඡත්ර ප්රවර්ග.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"ඡත්ර මෙටා ප්රවර්ග",
{name = "පාඨ", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:English phrasal verbs formed with "aback"]].
table.insert(handlers, function(data)
local particle = data.label:match("^phrasal verbs formed with \"(.-)\"$")
if particle then
local tagged_text = require("Module:script utilities").tag_text(particle, data.lang, nil, "term")
local link = require("Module:links").full_link({ term = particle, lang = data.lang }, "term")
return {
description = "{{{langname}}} {{w|phrasal verb}}s formed with the adverb or preposition " .. link .. ".",
displaytitle = '{{{langname}}} phrasal verbs formed with "' .. tagged_text .. '"',
breadcrumb = tagged_text,
parents = {{ name = "phrasal verbs", sort = particle }},
umbrella = false,
}
end
end)
return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}
8d9fme4nacbxwzebuksih1islw0c5co
196049
196040
2024-12-04T13:00:41Z
Lee
19
[[:ප්රවර්ගය:මොංගෝලියානු පාඨ]] සඳහා සහාය
196049
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
local diminutive_augmentative_poses = {
"නාම විශේෂණ පද",
"ක්රියා විශේෂණ පද",
"විශ්මයාර්ථ පද",
"නාම පද",
"සංඛ්යාංක",
"උපසර්ග",
"සංඥා නාම පද",
"සර්වනාම",
"ප්රත්ය",
"ක්රියා පද"
}
labels["පාඨ"] = {
description = "{{{langname}}} [[Wiktionary:Lemmas|ලෙමා]], ඒවායේ part of speech අනුව වර්ගීකරණය කළ.",
umbrella_parents = "මූලධර්ම",
parents = {{name = "{{{langcat}}}", raw = true, sort = " "}},
}
labels["abstract verbs"] = {
description = "{{{langname}}} abstract verbs of motion whose motion is multidirectional (as opposed to unidirectional) or indirect, or whose action is repeated or in a series, instead of being a single, completed action. Abstract verbs are always imperfective in aspect, even with prefixes that are normally associated with the perfective aspect.",
additional = "See also [[abstract verb]].",
parents = {"ක්රියා පද"},
}
labels["action nouns"] = {
description = "{{{langname}}} nouns denoting action of a verb or verbal root that it is derived from.",
parents = {"නාම පද"},
}
labels["act-related adverbs"] = {
description = "{{{langname}}} adverbs that indicate the motive or other background information for an action.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["active verbs"] = {
description = "{{{langname}}} verbs that indicate an activity",
parents = {"ක්රියා පද"},
}
labels["adjective concords"] = {
description = "{{{langname}}} concords that are prefixed to adjective stems.",
parents = {"concords"},
}
labels["නාම විශේෂණ පද"] = {
description = "{{{langname}}} terms that give attributes to nouns, extending their definitions.",
parents = {"පාඨ"},
}
labels["adverbial accusatives"] = {
description = "Accusative case-forms in {{{langname}}} used as adverbs.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["ක්රියා විශේෂණ පද"] = {
description = "{{{langname}}} terms that modify clauses, sentences and phrases directly.",
parents = {"පාඨ"},
}
labels["affixes"] = {
description = "Morphemes attached to existing {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["agent nouns"] = {
description = "{{{langname}}} nouns that denote an agent that performs the action denoted by the verb from which the noun is derived.",
parents = {"නාම පද"},
}
labels["ambipositions"] = {
description = "{{{langname}}} adpositions that can occur either before or after their objects.",
parents = {"පාඨ"},
}
labels["ambitransitive verbs"] = {
description = "{{{langname}}} verbs that may or may not direct actions, occurrences or states to grammatical objects.",
parents = {"ක්රියා පද", "transitive verbs", "intransitive verbs"},
}
labels["animal commands"] = {
description = "{{{langname}}} words used to communicate with animals.",
parents = {"විශ්මයාර්ථ පද"},
}
labels["articles"] = {
description = "{{{langname}}} terms that indicate and specify nouns.",
parents = {"determiners"},
}
labels["aspect adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Grammatical aspect|grammatical aspect]], describing the flow of time in relation to a statement.",
parents = {"ක්රියා විශේෂණ පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["augmentative " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey big size or big intensity.",
parents = {pos},
}
end
labels["attenuative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event is performed or takes place gently, lightly, partially, perfunctorily or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["autobenefactive verbs"] = {
description = "{{{langname}}} verbs that indicate that the agent of an action is also its benefactor.",
parents = {"ක්රියා පද"},
}
labels["automative verbs"] = {
description = "{{{langname}}} verbs that indicate actions directed at or a change of state of the grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["auxiliary verbs"] = {
description = "{{{langname}}} verbs that provide additional conjugations for other verbs.",
parents = {"ක්රියා පද"},
}
labels["biaspectual verbs"] = {
description = "{{{langname}}} verbs that can be both imperfective and perfective.",
parents = {"ක්රියා පද"},
}
labels["causative verbs"] = {
description = "{{{langname}}} verbs that express causing actions or states rather than performing or being them directly. Use this only for separate verbs (as opposed to causative forms that are part of the inflection of verbs).",
parents = {"ක්රියා පද"},
}
labels["circumfixes"] = {
description = "Affixes attached to both the beginning and the end of {{{langname}}} words, functioning together as single units.",
parents = {"පදාණු"},
}
labels["circumpositions"] = {
description = "{{{langname}}} adpositions that appear on both sides of their objects.",
parents = {"පාඨ"},
}
labels["classifiers"] = {
description = "{{{langname}}} terms that classify nouns according to their meanings.",
parents = {"පාඨ"},
}
labels["clitics"] = {
description = "{{{langname}}} morphemes that function as independent words, but are always attached to another word.",
parents = {"පදාණු"},
}
for _, pos in ipairs { "නාම පද", "ප්රත්ය" } do
labels["සමූහවාචී " .. pos] = {
description = "{{{langname}}} " .. pos .. " that indicate groups of related things or beings, without the need of grammatical pluralization.",
parents = {pos},
}
end
labels["combining forms"] = {
description = "Forms of {{{langname}}} words that do not occur independently, but are used when joined with other words.",
parents = {"පදාණු"},
}
labels["comparable adjectives"] = {
description = "{{{langname}}} adjectives that can be inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["comparable adverbs"] = {
description = "{{{langname}}} adverbs that can be inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["comparative-only adjectives"] = {
description = "{{{langname}}} adjectives that are only used in their comparative forms.",
parents = {"නාම විශේෂණ පද"},
}
labels["completive verbs"] = {
description = "{{{langname}}} verbs which refer to the completion of an action which has already commenced or which has already been performed upon a subset of the entities which it affects.",
parents = {"ක්රියා පද"},
}
labels["concords"] = {
description = "{{{langname}}} prefixes attached to words to show agreement with a noun or pronoun.",
parents = {"උපසර්ග"},
}
labels["concrete verbs"] = {
description = "{{{langname}}} concrete verbs refer to a verbal aspect in verbs of motion that is unidirectional (as opposed to multidirectional), a definitely directed motion, or a single, completed action (instead of a repeated action or series of actions). Concrete verbs may be either imperfective or perfective.",
additional = "See also [[concrete verb]].",
parents = {"ක්රියා පද"},
}
labels["conjunctions"] = {
description = "{{{langname}}} terms that connect words, phrases or clauses together.",
parents = {"පාඨ"},
}
labels["conjunctive adverbs"] = {
description = "{{{langname}}} adverbs that connect two independent clauses together.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["continuative verbs"] = {
description = "{{{langname}}} verbs that express continuing action.",
parents = {"ක්රියා පද"},
}
labels["control verbs"] = {
description = "{{{langname}}} verbs that take multiple arguments, one of which is another verb. One of the control verb's arguments is syntactically both an argument of the control verb and an argument of the other verb.",
parents = {"ක්රියා පද"},
}
labels["cooperative verbs"] = {
description = "{{{langname}}} verbs that indicate cooperation",
parents = {"ක්රියා පද"},
}
labels["coordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate equal syntactic importance between connected items.",
parents = {"conjunctions"},
}
labels["copulative verbs"] = {
description = "{{{langname}}} verbs that may take adjectives as their complement.",
parents = {"ක්රියා පද"},
}
for _, pos in ipairs { "නාම පද", "සංඥා නාම පද" } do
labels["ගැණිය හැකි " .. pos] = {
description = "{{{langname}}} " .. pos .. " that can be quantified directly by numerals.",
parents = {pos},
}
end
labels["countable numerals"] = {
description = "{{{langname}}} numerals that can be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["countable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that can be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["counters"] = {
description = "{{{langname}}} terms that combine with numerals to express quantity of nouns.",
parents = {"පාඨ"},
}
labels["cumulative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event gradually yields a certain or significant quantity or effect.",
parents = {"ක්රියා පද"},
}
labels["degree adverbs"] = {
description = "{{{langname}}} adverbs that express a particular degree to which the word they modify applies.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["delimitative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event is performed or takes place briefly or to an otherwise reduced extent.",
parents = {"ක්රියා පද"},
}
labels["demonstrative adjectives"] = {
description = "{{{langname}}} adjectives that refer to nouns, comparing them to external references.",
parents = {"නාම විශේෂණ පද", {name = "demonstrative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["demonstrative adverbs"] = {
description = "{{{langname}}} adverbs that refer to other adverbs, comparing them to external references.",
parents = {"ක්රියා විශේෂණ පද", {name = "demonstrative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["denominal verbs"] = { -- in [[Appendix:Glossary]]; "denominative" more frequent?
description = "{{{langname}}} verbs that derive from nouns.",
parents = { "ක්රියා පද" },
}
labels["demonstrative determiners"] = {
description = "{{{langname}}} determiners that refer to nouns, comparing them to external references.",
parents = {"determiners", {name = "demonstrative pro-forms", sort = "determiners"}},
}
labels["demonstrative pronouns"] = {
description = "{{{langname}}} pronouns that refer to nouns, comparing them to external references.",
parents = {"සර්වනාම", {name = "demonstrative pro-forms", sort = "සර්වනාම"}},
}
labels["deponent verbs"] = {
description = "{{{langname}}} verbs that have active meanings but are not conjugated in the active voice.",
parents = {"ක්රියා පද"},
}
labels["derivational prefixes"] = {
description = "{{{langname}}} prefixes that are used to create new words.",
parents = {"උපසර්ග"},
}
labels["derivational suffixes"] = {
description = "{{{langname}}} suffixes that are used to create new words.",
parents = {"ප්රත්ය"},
}
labels["derivative verbs"] = {
description = "{{{langname}}} verbs that are derived from nouns and adjectives.",
parents = {"ක්රියා පද"},
}
labels["desiderative verbs"] = {
description = "{{{langname}}} verbs with the following morphology: verbal root xxx + [[desiderative]] affix, and the following semantics: to wish to do the action xxx.",
parents = {"ක්රියා පද"},
}
labels["determinatives"] = {
description = "{{{langname}}} terms that indicate the general class to which the following logogram belongs.",
parents = {"පාඨ"},
}
labels["determiners"] = {
description = "{{{langname}}} terms that narrow down, within the conversational context, the referent of the following noun.",
parents = {"පාඨ"},
}
labels["diminutiva tantum"] = {
description = "{{{langname}}} nouns or noun senses that are mostly or exclusively used in the diminutive form.",
parents = {"නාම පද"},
}
for _, pos in ipairs(diminutive_augmentative_poses) do
labels["diminutive " .. pos] = {
description = "{{{langname}}} " .. pos .. " that are derived from a base word to convey endearment, small size or small intensity.",
parents = {pos},
}
end
labels["discourse particles"] = {
description = "{{{langname}}} particles that manage the flow and structure of discourse.",
parents = {"නිපාත පද"},
}
labels["distributive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action or event involves multiple participants or a large quantity of an uncountable mass, usually as the grammatical subject in the case of intransitive verbs and as the grammatical object in the case of transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["ditransitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states of two grammatical objects simultaneously, one direct and one indirect.",
parents = {"ක්රියා පද", "transitive verbs"},
}
labels["dualia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the dual form.",
parents = {"නාම පද"},
}
labels["duration adverbs"] = {
description = "{{{langname}}} adverbs that express duration in time, such as (in English) [[always]], [[all night]] and [[ever since]].",
parents = {"time adverbs"},
}
labels["ergative verbs"] = {
description = "{{{langname}}} [[Appendix:Glossary#ergative|ergative verb]]s: intransitive verbs that become causatives when used transitively.",
parents = {"ක්රියා පද", "intransitive verbs", "transitive verbs"},
}
labels["excessive verbs"] = {
description = "{{{langname}}} verbs that indicate that an action is performed to an excessive extent.",
parents = {"ක්රියා පද"},
}
labels["enclitics"] = {
description = "{{{langname}}} clitics that attach to the preceding word.",
parents = {"clitics"},
}
labels["nouns with other-gender equivalents"] = {
description = "{{{langname}}} nouns that refer to gendered concepts (e.g. [[actor]] vs. [[actress]], [[king]] vs. [[queen]]) and have corresponding other-gender equivalent terms.",
parents = {"නාම පද"},
}
labels["female equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to female beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["neuter equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to neuter beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["female equivalent suffixes"] = {
description = "{{{langname}}} suffixes that refer to female beings with the same characteristics as the base suffix.",
parents = {"noun-forming suffixes"},
}
labels["focus adverbs"] = {
description = "{{{langname}}} adverbs that indicate [[w:Focus (linguistics)|focus]] within the sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["frequency adverbs"] = {
description = "{{{langname}}} adverbs that express repetition with a certain frequency or interval, such as (in English) [[monthly]], [[continually]] and [[once in a while]].",
parents = {"time adverbs"},
}
labels["frequentative verbs"] = {
description = "{{{langname}}} verbs that express repeated action.",
parents = {"ක්රියා පද"},
}
labels["general pronouns"] = {
description = "{{{langname}}} pronouns that refer to all persons, things, abstract ideas and their characteristics.",
parents = {"සර්වනාම"},
}
labels["generational moieties"] = {
description = "{{{langname}}} moieties that alternate every generation.",
parents = {"moieties"},
}
labels["ideophones"] = {
description = "{{{langname}}} terms that evoke an idea, especially a sensation or impression, with a sound.",
parents = {"පාඨ"},
}
labels["imperfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as ongoing or continuous, as opposed to completed events.",
parents = {"ක්රියා පද"},
}
labels["impersonal verbs"] = {
description = "{{{langname}}} verbs that do not indicate actions, occurrences or states of any specific grammatical subject.",
parents = {"ක්රියා පද"},
}
labels["inchoative verbs"] = {
description = "{{{langname}}} verbs that indicate the beginning of an action or event.",
parents = {"ක්රියා පද"},
}
labels["indefinite adjectives"] = {
description = "{{{langname}}} adjectives that refer to unspecified adjective meanings.",
parents = {"නාම විශේෂණ පද", {name = "indefinite pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["indefinite adverbs"] = {
description = "{{{langname}}} adverbs that refer to unspecified adverbial meanings.",
parents = {"ක්රියා විශේෂණ පද", {name = "indefinite pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["indefinite determiners"] = {
description = "{{{langname}}} determiners that designate an unidentified noun.",
parents = {"determiners", {name = "indefinite pro-forms", sort = "determiners"}},
}
labels["indefinite pronouns"] = {
description = "{{{langname}}} pronouns that refer to unspecified nouns.",
parents = {"සර්වනාම", {name = "indefinite pro-forms", sort = "සර්වනාම"}},
}
labels["infixes"] = {
description = "Affixes inserted inside {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["inflectional prefixes"] = {
description = "{{{langname}}} prefixes that are used as inflectional beginnings in noun, adjective or verb paradigms.",
parents = {"උපසර්ග"},
}
labels["inflectional suffixes"] = {
description = "{{{langname}}} suffixes that are used as inflectional endings in noun, adjective or verb paradigms.",
parents = {"ප්රත්ය"},
}
labels["intensive verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed vigorously, enthusiastically, forcefully or to an otherwise enlarged extent.",
parents = {"ක්රියා පද"},
}
labels["interfixes"] = {
description = "Affixes used to join two {{{langname}}} words or morphemes together.",
parents = {"පදාණු"},
}
labels["විශ්මයාර්ථ පද"] = {
description = "{{{langname}}} terms that express emotions, sounds, etc. as exclamations.",
parents = {"පාඨ"},
}
labels["interrogative adjectives"] = {
description = "{{{langname}}} adjectives that indicate questions.",
parents = {"නාම විශේෂණ පද", {name = "interrogative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["interrogative adverbs"] = {
description = "{{{langname}}} adverbs that indicate questions.",
parents = {"ක්රියා විශේෂණ පද", {name = "interrogative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["interrogative determiners"] = {
description = "{{{langname}}} determiners that indicate questions.",
parents = {"determiners", {name = "interrogative pro-forms", sort = "determiners"}},
}
labels["interrogative particles"] = {
description = "{{{langname}}} particles that indicate questions.",
parents = {"නිපාත පද", {name = "interrogative pro-forms", sort = "නිපාත පද"}},
}
labels["interrogative pronouns"] = {
description = "{{{langname}}} pronouns that indicate questions.",
parents = {"සර්වනාම", {name = "interrogative pro-forms", sort = "සර්වනාම"}},
}
labels["intransitive verbs"] = {
description = "{{{langname}}} verbs that don't require any grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["iterative verbs"] = {
description = "{{{langname}}} verbs that express the repetition of an event.",
parents = {"ක්රියා පද"},
}
labels["location adverbs"] = {
description = "{{{langname}}} adverbs that indicate location.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["male equivalent nouns"] = {
description = "{{{langname}}} nouns that refer to male beings with the same characteristics as the base noun.",
parents = {"nouns with other-gender equivalents"},
}
labels["manner adverbs"] = {
description = "{{{langname}}} adverbs that indicate the manner, way or style in which an action is performed.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["modal adverbs"] = {
description = "{{{langname}}} adverbs that express [[w:Linguistic modality|linguistic modality]], indicating the mood or attitude of the speaker with respect to what is being said.",
parents = {"sentence adverbs"},
}
labels["modal particles"] = {
description = "{{{langname}}} particles that reflect the mood or attitude of the speaker, without changing the basic meaning of the sentence.",
parents = {"නිපාත පද"},
}
labels["modal verbs"] = {
description = "{{{langname}}} verbs that indicate [[grammatical mood]].",
parents = {"auxiliary verbs"},
}
labels["moieties"] = {
description = "{{{langname}}} pairs of abstract categories separating people and the environment.",
parents = {"පාඨ"},
}
labels["momentane verbs"] = {
description = "{{{langname}}} verbs that express a sudden and brief action.",
parents = {"ක්රියා පද"},
}
labels["පදාණු"] = {
description = "{{{langname}}} word-elements used to form full words.",
parents = {"පාඨ"},
}
labels["multiword terms"] = {
description = "{{{langname}}} lemmas that are a combination of multiple words, including [[WT:CFI#Idiomaticity|idiomatic]] combinations.",
parents = {"පාඨ"},
}
labels["negative verbs"] = {
description = "{{{langname}}} verbs that indicate the lack of an action.",
parents = {"ක්රියා පද"},
}
labels["negative particles"] = {
description = "{{{langname}}} particles that indicate negation.",
parents = {"නිපාත පද"},
}
labels["negative pronouns"] = {
description = "{{{langname}}} pronouns that refer to negative or non-existent references.",
parents = {"සර්වනාම"},
}
labels["neutral verbs"] = {
description = "{{{langname}}} verbs that indicate either or both an activity or a result of an activity",
parents = {"ක්රියා පද"},
}
labels["nominalized adjectives"] = {
description = "{{{langname}}} adjectives that are used as nouns.",
parents = {"නාම පද", "නාම විශේෂණ පද"},
}
labels["non-constituents"] = {
description = "{{{langname}}} terms that are not grammatical [[constituent#Noun|constituents]], and therefore need to be combined with additional terms to form a complete phrase.",
parents = {"වාක්ය ඛණ්ඩ"},
}
labels["noun prefixes"] = {
description = "{{{langname}}} prefixes attached to a noun that display its noun class.",
parents = {"උපසර්ග"},
}
labels["නාම පද"] = {
description = "{{{langname}}} terms that indicate people, beings, things, places, phenomena, qualities or ideas.",
parents = {"පාඨ"},
}
labels["nouns by classifier"] = {
description = "{{{langname}}} nouns organized by the classifier they are used with.",
parents = {{name = "නාම පද", sort = "classifier"}},
}
labels["සංඛ්යාංක"] = {
description = "{{{langname}}} terms that quantify nouns.",
parents = {"පාඨ"},
}
labels["object concords"] = {
description = "{{{langname}}} concords used to show the grammatical object.",
parents = {"concords"},
}
labels["object pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical objects.",
parents = {"සර්වනාම"},
}
labels["නිපාත පද"] = {
description = "{{{langname}}} terms that do not belong to any of the inflected grammatical word classes, often lacking their own grammatical functions and forming other parts of speech or expressing the relationship between clauses.",
parents = {"පාඨ"},
}
labels["passive verbs"] = {
description = "{{{langname}}} verbs that are usually used in passive voice.",
parents = {"ක්රියා පද"},
}
labels["perfective verbs"] = {
description = "{{{langname}}} verbs that express actions considered as completed events, as opposed to ongoing or continuous.",
parents = {"ක්රියා පද"},
}
labels["personal pronouns"] = {
description = "{{{langname}}} pronouns that are used as substitutes for known nouns.",
parents = {"සර්වනාම"},
}
labels["phrasal verbs"] = {
description = "{{{langname}}} verbs accompanied by particles, such as prepositions and adverbs.",
parents = {"ක්රියා පද", "වාක්ය ඛණ්ඩ"},
}
labels["phrasal prepositions"] = {
description = "{{{langname}}} prepositions formed with combinations of other terms.",
parents = {"prepositions", "වාක්ය ඛණ්ඩ"},
}
labels["pluralia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the plural form.",
parents = {"නාම පද"},
}
labels["point-in-time adverbs"] = {
description = "{{{langname}}} adverbs that reference a specific point in time, e.g. {{m|en|yesterday}}, {{m+|es|anoche||last night}} or {{m+|hu|egykor||at one o'clock}}.",
parents = {"time adverbs"},
}
labels["possessable nouns"] = {
description = "{{{langname}}} nouns can have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that can have their possession indicated directly by possessive pronouns and, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Possessable nouns by language",
},
}
labels["possessional adjectives"] = {
description = "{{{langname}}} adjectives that indicate that a noun is in possession of something.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive adjectives"] = {
description = "{{{langname}}} adjectives that indicate ownership.",
parents = {"නාම විශේෂණ පද"},
}
labels["possessive concords"] = {
description = "{{{langname}}} concords used to show possession.",
parents = {"concords"},
}
labels["possessive determiners"] = {
description = "{{{langname}}} determiners that indicate ownership.",
parents = {"determiners"},
}
labels["possessive pronouns"] = {
description = "{{{langname}}} pronouns that indicate ownership.",
parents = {"සර්වනාම"},
}
labels["postpositional phrases"] = {
description = "{{{langname}}} phrases headed by a postposition.",
parents = {"වාක්ය ඛණ්ඩ", "postpositions"},
}
labels["postpositions"] = {
description = "{{{langname}}} adpositions that are placed after their objects.",
parents = {"පාඨ"},
}
labels["predicatives"] = {
description = "{{{langname}}} elements of the predicate that supplement the subject or object of a sentence via the verb.",
parents = {"පාඨ"},
}
labels["උපසර්ග"] = {
description = "Affixes attached to the beginning of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["prepositional phrases"] = {
description = "{{{langname}}} phrases headed by a preposition.",
parents = {"වාක්ය ඛණ්ඩ", "prepositions"},
}
labels["prepositions"] = {
description = "{{{langname}}} adpositions that are placed before their objects.",
parents = {"පාඨ"},
}
labels["ablative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the ablative case.",
parents = {"prepositions"},
}
labels["ablative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the ablative case.",
parents = {"postpositions"},
}
labels["accusative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the accusative case.",
parents = {"prepositions"},
}
labels["dative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the dative case.",
parents = {"prepositions"},
}
labels["genitive prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the genitive case.",
parents = {"prepositions"},
}
labels["instrumental prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the instrumental case.",
parents = {"prepositions"},
}
labels["locative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the locative case.",
parents = {"prepositions"},
}
labels["locative postpositions"] = {
description = "{{{langname}}} postpositions that cause the preceding noun to be in the locative case.",
parents = {"postpositions"},
}
labels["matrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's mother.",
parents = {"moieties"},
}
labels["nominative prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the nominative case.",
parents = {"prepositions"},
}
labels["patrilineal moieties"] = {
description = "{{{langname}}} moieties inherited from an individual's father.",
parents = {"moieties"},
}
labels["pejorative suffixes"] = {
description = "{{{langname}}} suffixes that [[belittle]] (lessen in value).",
parents = {"ප්රත්ය"},
}
labels["prepositional prepositions"] = {
description = "{{{langname}}} prepositions that cause the succeeding noun to be in the prepositional case.",
parents = {"prepositions"},
}
labels["prenouns"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to nouns.",
parents = {"උපසර්ග"},
}
labels["preverbs"] = {
description = "{{{langname}}} prefixes of various kinds that are attached to verbs.",
parents = {"උපසර්ග"},
}
labels["privative verbs"] = {
description = "{{{langname}}} verbs that indicate that the grammatical object is deprived of something or that something is removed from the object.",
parents = {"ක්රියා පද"},
}
labels["pronominal adverbs"] = {
description = "{{{langname}}} adverbs that are formed by combining a pronoun with a preposition.",
parents = {"ක්රියා විශේෂණ පද", "prepositions", "සර්වනාම"},
}
labels["pronominal concords"] = {
description = "{{{langname}}} concords that are prefixed to pronominal stems.",
parents = {"concords"},
}
labels["සර්වනාම"] = {
description = "{{{langname}}} terms that refer to and substitute nouns.",
parents = {"පාඨ"},
}
labels["සංඥා නාම පද"] = {
description = "{{{langname}}} nouns that indicate individual entities, such as names of persons, places or organizations.",
parents = {"නාම පද"},
}
labels["raising verbs"] = {
description = "{{{langname}}} verbs that, in a matrix or main clause, take an argument from an embedded or subordinate clause; in other words, a raising verb appears with a syntactic argument that is not its semantic argument, but is rather the semantic argument of an embedded predicate.",
parents = {"ක්රියා පද"},
}
labels["reciprocal pronouns"] = {
description = "{{{langname}}} pronouns that refer back to a plural subject and express an action done in two or more directions.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reciprocal verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from multiple subjects to each other.",
parents = {"ක්රියා පද"},
}
labels["reflexive pronouns"] = {
description = "{{{langname}}} pronouns that refer back to the subject.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["reflexive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed from the grammatical subjects to themselves.",
parents = {"ක්රියා පද"},
}
labels["relational adjectives"] = {
description = "{{{langname}}} adjectives that stand in place of a noun when modifying another noun.",
parents = {"නාම විශේෂණ පද"},
}
labels["relational nouns"] = {
description = "{{{langname}}} nouns used to indicate a relation between other two nouns by means of possession.",
parents = {"නාම පද"},
}
labels["relative adjectives"] = {
description = "{{{langname}}} adjectives used to indicate [[relative clause]]s.",
parents = {"නාම විශේෂණ පද", {name = "relative pro-forms", sort = "නාම විශේෂණ පද"}},
}
labels["relative adverbs"] = {
description = "{{{langname}}} adverbs used to indicate [[relative clause]]s.",
parents = {"ක්රියා විශේෂණ පද", {name = "relative pro-forms", sort = "ක්රියා විශේෂණ පද"}},
}
labels["relative determiners"] = {
description = "{{{langname}}} determiners used to indicate [[relative clause]]s.",
parents = {"determiners", {name = "relative pro-forms", sort = "determiners"}},
}
labels["relative concords"] = {
description = "{{{langname}}} concords that are prefixed to relative stems.",
parents = {"concords"},
}
labels["relative pronouns"] = {
description = "{{{langname}}} pronouns used to indicate [[relative clause]]s.",
parents = {"සර්වනාම", {name = "relative pro-forms", sort = "සර්වනාම"}},
}
labels["relatives"] = {
description = "{{{langname}}} terms that give attributes to nouns, acting grammatically as relative clauses.",
parents = {"පාඨ"},
}
labels["repetitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions or events which are performed or occur again, anew or differently.",
parents = {"ක්රියා පද"},
}
labels["resultative verbs"] = {
description = "{{{langname}}} verbs that indicate a result of some action",
parents = {"ක්රියා පද"},
}
labels["reversative verbs"] = {
description = "{{{langname}}} verbs that indicate that the reversal or undoing of an action, event or state.",
parents = {"ක්රියා පද"},
}
labels["saturative verbs"] = {
description = "{{{langname}}} verbs which indicate that an action is performed to the point of saturation or satisfaction.",
parents = {"ක්රියා පද"},
}
labels["semelfactive verbs"] = {
description = "{{{langname}}} verbs that are punctual (instantaneous, momentive), perfective (treated as a unitary whole with no explicit internal temporal structure), and telic (having a boundary out of which the activity cannot be said to have taken place or continue).",
parents = {"ක්රියා පද"},
}
labels["sentence adverbs"] = {
description = "{{{langname}}} adverbs that modify an entire clause or sentence.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["sequence adverbs"] = {
description = "{{{langname}}} conjunctive adverbs that express sequence in space or time.",
parents = {"conjunctive adverbs"},
}
labels["simulfixes"] = {
description = "Affixes replacing positions in {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["singulative nouns"] = {
description = "{{{langname}}} nouns that indicate a single item of a group of related things or beings.",
parents = {"නාම පද"},
}
labels["singularia tantum"] = {
description = "{{{langname}}} nouns that are mostly or exclusively used in the singular form.",
parents = {"නාම පද"},
}
labels["solitary pronouns"] = {
description = "{{{langname}}} pronouns that refer to specific people in particular and sets them apart from anyone else.",
parents = {"සර්වනාම", "personal pronouns"},
}
labels["stative verbs"] = {
description = "{{{langname}}} verbs that define a state with no or insignificant internal dynamics.",
parents = {"ක්රියා පද"},
}
labels["stems"] = {
description = "Morphemes from which {{{langname}}} words are formed.",
parents = {"පදාණු"},
}
labels["subordinating conjunctions"] = {
description = "{{{langname}}} conjunctions that indicate relations of syntactic dependence between connected items.",
parents = {"conjunctions"},
}
labels["subject concords"] = {
description = "{{{langname}}} concords used to show the grammatical subject.",
parents = {"concords"},
}
labels["subject pronouns"] = {
description = "{{{langname}}} pronouns that refer to grammatical subjects.",
parents = {"සර්වනාම"},
}
labels["ප්රත්ය"] = {
description = "Affixes attached to the end of {{{langname}}} words.",
parents = {"පදාණු"},
}
labels["splitting verbs"] = {
description = "{{{langname}}} bisyllabic verbs that obligatorily split around a direct object or pronoun.",
parents = {"ක්රියා පද"},
}
labels["terminative verbs"] = {
description = "{{{langname}}} verbs that indicate that an action or event ceases.",
parents = {"ක්රියා පද"},
}
labels["time adverbs"] = {
description = "{{{langname}}} adverbs that indicate time, expressing either [[duration]], [[frequency]] or a [[point]] in [[time]].",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["transfixes"] = {
description = "Discontinuous affixes inserted within a word root.",
parents = {"පදාණු"},
}
labels["transformative verbs"] = {
description = "{{{langname}}} verbs that indicate a change of state or nature, in the subject for intransitive verbs and in the object for transitive verbs.",
parents = {"ක්රියා පද"},
}
labels["transitive verbs"] = {
description = "{{{langname}}} verbs that indicate actions, occurrences or states directed to one or more grammatical objects.",
parents = {"ක්රියා පද"},
}
labels["uncomparable adjectives"] = {
description = "{{{langname}}} adjectives that are not inflected to display different degrees of comparison.",
parents = {"නාම විශේෂණ පද"},
}
labels["uncomparable adverbs"] = {
description = "{{{langname}}} adverbs that are not inflected to display different degrees of comparison.",
parents = {"ක්රියා විශේෂණ පද"},
}
labels["නොගැණිය හැකි නාම පද"] = {
description = "{{{langname}}} nouns that indicate qualities, ideas, unbounded mass or other abstract concepts that cannot be quantified directly by numerals.",
parents = {"නාම පද"},
}
labels["uncountable numerals"] = {
description = "{{{langname}}} numerals that cannot be quantified directly by other numerals.",
parents = {"සංඛ්යාංක"},
}
labels["නොගැණිය හැකි සංඥා නාම පද"] = {
description = "{{{langname}}} proper nouns that cannot be quantified directly by numerals.",
parents = {"සංඥා නාම පද"},
}
labels["uncountable suffixes"] = {
description = "{{{langname}}} suffixes that can be used to form nouns that cannot be quantified directly by numerals.",
parents = {"සංඛ්යාංක"},
}
labels["unpossessable nouns"] = {
description = "{{{langname}}} nouns that cannot have their possession indicated directly by possessive pronouns.",
parents = {"නාම පද"},
umbrella = {
description = "Categories with nouns that cannot have their possession indicated directly by possessive pronouns or, in some languages, be transformed into adjectives.",
parents = {"භාෂාව අනුව ලෙමා උප ප්රවර්ග"},
breadcrumb = "Unpossessable nouns by language",
},
}
labels["verbal nouns"] = {
description = "{{{langname}}} nouns morphologically related to a verb and similar to it in meaning.",
parents = {"නාම පද"},
}
labels["verbal adjectives"] = {
description = "{{{langname}}} adjectives describing the condition or state resulting from the action of the corresponding verb.",
parents = {"නාම විශේෂණ පද"},
}
labels["ක්රියා පද"] = {
description = "{{{langname}}} terms that indicate actions, occurrences or states.",
parents = {"පාඨ"},
}
labels["verbs of movement"] = {
description = "{{{langname}}} verbs that indicate physical movement of the grammatical subject across a trajectory, with a starting point and an endpoint.",
parents = {"ක්රියා පද"},
}
-- Add "POS-forming suffixes".
local poses_derived_by_suffix = {
"adjective", "adverb", "noun", "verb",
}
for _, pos in pairs(poses_derived_by_suffix) do
labels[pos .. "-forming suffixes"] = {
description = "{{{langname}}} suffixes that are used to derive " .. pos .. "s from other words.",
parents = {"derivational suffixes"},
}
end
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග"
end
labels2["reconstructed " .. key] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "භාෂාව අනුව ලෙමා උප ප්රවර්ග",
parents = {key, {name = "reconstructed terms", sort = key}}
}
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["භාෂාව අනුව ලෙමා උප ප්රවර්ග"] = {
description = "ලෙමා හා සබැඳි මාතෘකා ආවරණය කරන ඡත්ර ප්රවර්ග.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"ඡත්ර මෙටා ප්රවර්ග",
{name = "පාඨ", is_label = true, sort = " "},
},
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:English phrasal verbs formed with "aback"]].
table.insert(handlers, function(data)
local particle = data.label:match("^phrasal verbs formed with \"(.-)\"$")
if particle then
local tagged_text = require("Module:script utilities").tag_text(particle, data.lang, nil, "term")
local link = require("Module:links").full_link({ term = particle, lang = data.lang }, "term")
return {
description = "{{{langname}}} {{w|phrasal verb}}s formed with the adverb or preposition " .. link .. ".",
displaytitle = '{{{langname}}} phrasal verbs formed with "' .. tagged_text .. '"',
breadcrumb = tagged_text,
parents = {{ name = "phrasal verbs", sort = particle }},
umbrella = false,
}
end
end)
return {LABELS = labels2, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}
aj1pw9x8e7canre1lqjpe0st58uyh4b
Module:category tree/poscatboiler/data/symbols
828
9493
196047
186942
2024-12-04T12:56:31Z
Lee
19
[[:ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක සංකේත]] සඳහා සහාය
196047
Scribunto
text/plain
local labels = {}
local raw_categories = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["සංකේත"] = {
description = "{{{langname}}} written signs.",
umbrella_parents = "මූලධර්ම",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["diacritical marks"] = {
description = "{{{langname}}} glyphs that are added to characters to modify their sounds or meanings.",
parents = {"සංකේත"},
}
labels["හන් අනුලක්ෂණ"] = {
description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.",
topright = "{{wp|Chinese characters}}",
parents = {"ලෝගෝග්රෑම"},
}
labels["ideograms"] = {
description = "{{{langname}}} symbols that represent objects, ideas or concepts directly.",
umbrella_parents = "මූලධර්ම",
parents = {"සංකේත"},
}
labels["iteration marks"] = {
description = "{{{langname}}} glyphs that act as a shorthand for repeated text.",
parents = {"කෙටි යෙදුම්", "සංකේත"},
}
labels["අකුරු"] = {
description = "{{{langname}}} symbols that represent single sounds. Variations of letters, such as letters with diacritics, should also be categorized here.",
parents = {"සංකේත"},
}
labels["ligatures"] = {
description = "{{{langname}}} letters that have been combined into a single graphical unit.",
parents = {"සංකේත"},
}
labels["ලෝගෝග්රෑම"] = {
description = "{{{langname}}} සංකේත, තනි වචන හෝ [[පදාණු]] වෙනුවෙන් පෙනී සිටින.",
parents = {"සංකේත"},
}
labels["matched pairs"] = {
description = "{{{langname}}} pairs of separate characters that are used together. Example: [[( )]].",
parents = {"සංකේත"},
}
labels["සංඛ්යාංක සංකේත"] = {
description = "{{{langname}}} සංකේත, සංඛ්යාංක දක්වා සිටින.",
parents = {"සංකේත"},
}
labels["punctuation marks"] = {
description = "{{{langname}}} symbols that indicate structure and organization of writing.",
parents = {"සංකේත"},
}
labels["syllables"] = {
description = "{{{langname}}} symbols that represent groups of sounds. Variations of syllables, such as syllables with diacritics, should also be categorized here.",
parents = {"සංකේත"},
}
labels["multigraphs"] = {
description = "{{{langname}}} symbols consisting of multiple letters.",
parents = {"සංකේත"},
}
local function multigraph(name, n)
labels[name] = {
description = "{{{langname}}} symbols consisting of " .. n .. " letters.",
parents = {"multigraphs"},
}
end
multigraph("digraphs", "two")
multigraph("trigraphs", "three")
multigraph("tetragraphs", "four")
multigraph("pentagraphs", "five")
multigraph("hexagraphs", "six")
multigraph("heptagraphs", "seven")
multigraph("octagraphs", "eight")
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "භාෂාව අනුව සංකේත උප ප්රවර්ග"
end
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["භාෂාව අනුව සංකේත උප ප්රවර්ග"] = {
description = "සංකේත හා සබැඳි මාතෘකා අවරණය කරන ඡත්ර ප්රවර්ග.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"ඡත්ර මෙටා ප්රවර්ග",
{name = "සංකේත", is_label = true, sort = " "},
},
}
raw_categories["IPA symbols"] = {
description = "Symbols which are part of the {{w|International Phonetic Alphabet}}.",
additional = "For more information, see [[Wiktionary:About International Phonetic Alphabet]].",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
raw_categories["NAPA symbols"] = {
description = "Symbols which are part of the {{w|Americanist phonetic notation|North American Phonetic Alphabet}}.",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
raw_categories["UPA symbols"] = {
description = "Symbols which are part of the {{w|Uralic Phonetic Alphabet}}.",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
return {LABELS = labels, RAW_CATEGORIES = raw_categories}
8sqaiaomvvitrphsu0hduiex2z8nvqx
196048
196047
2024-12-04T12:58:41Z
Lee
19
[[:ප්රවර්ගය:මොංගෝලියානු සංකේත]] සඳහා සහාය
196048
Scribunto
text/plain
local labels = {}
local raw_categories = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["සංකේත"] = {
description = "{{{langname}}} ලිඛිත සලකුණු.",
umbrella_parents = "මූලධර්ම",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["diacritical marks"] = {
description = "{{{langname}}} glyphs that are added to characters to modify their sounds or meanings.",
parents = {"සංකේත"},
}
labels["හන් අනුලක්ෂණ"] = {
description = "{{{langname}}} symbols of the Han logographic script, which can represent sounds or convey meanings directly.",
topright = "{{wp|Chinese characters}}",
parents = {"ලෝගෝග්රෑම"},
}
labels["ideograms"] = {
description = "{{{langname}}} symbols that represent objects, ideas or concepts directly.",
umbrella_parents = "මූලධර්ම",
parents = {"සංකේත"},
}
labels["iteration marks"] = {
description = "{{{langname}}} glyphs that act as a shorthand for repeated text.",
parents = {"කෙටි යෙදුම්", "සංකේත"},
}
labels["අකුරු"] = {
description = "{{{langname}}} symbols that represent single sounds. Variations of letters, such as letters with diacritics, should also be categorized here.",
parents = {"සංකේත"},
}
labels["ligatures"] = {
description = "{{{langname}}} letters that have been combined into a single graphical unit.",
parents = {"සංකේත"},
}
labels["ලෝගෝග්රෑම"] = {
description = "{{{langname}}} සංකේත, තනි වචන හෝ [[පදාණු]] වෙනුවෙන් පෙනී සිටින.",
parents = {"සංකේත"},
}
labels["matched pairs"] = {
description = "{{{langname}}} pairs of separate characters that are used together. Example: [[( )]].",
parents = {"සංකේත"},
}
labels["සංඛ්යාංක සංකේත"] = {
description = "{{{langname}}} සංකේත, සංඛ්යාංක දක්වා සිටින.",
parents = {"සංකේත"},
}
labels["punctuation marks"] = {
description = "{{{langname}}} symbols that indicate structure and organization of writing.",
parents = {"සංකේත"},
}
labels["syllables"] = {
description = "{{{langname}}} symbols that represent groups of sounds. Variations of syllables, such as syllables with diacritics, should also be categorized here.",
parents = {"සංකේත"},
}
labels["multigraphs"] = {
description = "{{{langname}}} symbols consisting of multiple letters.",
parents = {"සංකේත"},
}
local function multigraph(name, n)
labels[name] = {
description = "{{{langname}}} symbols consisting of " .. n .. " letters.",
parents = {"multigraphs"},
}
end
multigraph("digraphs", "two")
multigraph("trigraphs", "three")
multigraph("tetragraphs", "four")
multigraph("pentagraphs", "five")
multigraph("hexagraphs", "six")
multigraph("heptagraphs", "seven")
multigraph("octagraphs", "eight")
-- Add 'umbrella_parents' key if not already present.
for key, data in pairs(labels) do
if not data.umbrella_parents then
data.umbrella_parents = "භාෂාව අනුව සංකේත උප ප්රවර්ග"
end
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["භාෂාව අනුව සංකේත උප ප්රවර්ග"] = {
description = "සංකේත හා සබැඳි මාතෘකා අවරණය කරන ඡත්ර ප්රවර්ග.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"ඡත්ර මෙටා ප්රවර්ග",
{name = "සංකේත", is_label = true, sort = " "},
},
}
raw_categories["IPA symbols"] = {
description = "Symbols which are part of the {{w|International Phonetic Alphabet}}.",
additional = "For more information, see [[Wiktionary:About International Phonetic Alphabet]].",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
raw_categories["NAPA symbols"] = {
description = "Symbols which are part of the {{w|Americanist phonetic notation|North American Phonetic Alphabet}}.",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
raw_categories["UPA symbols"] = {
description = "Symbols which are part of the {{w|Uralic Phonetic Alphabet}}.",
catfix = "mul",
parents = {
{name = "සංකේත", is_label = true, lang = "mul"},
},
}
return {LABELS = labels, RAW_CATEGORIES = raw_categories}
h9em47wsrvu5esq3prqz43tb75i640h
බමුණා
0
11428
196074
37156
2024-12-04T15:03:39Z
WrdSrchSi
3305
Added: නිරුක්තිය
196074
wikitext
text/x-wiki
==සිංහල==
=== නිරුක්තිය ===
''[[බමුණු]] + [[ආ]] > බමුණ් + '''උ''' ([[ස්වර ලොපය]]) + ආ > බමුණ් + ආ '' > [[බමුණා]]
===නාම පදය===
{{si-noun|බමුණෝ}}
# {{rfdef|si}}
lr5b9p7by8eb2m4nbkrdb58pyp2t8ey
ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක සංකේත
14
14989
196018
44820
2024-12-04T12:37:08Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Translingual numeral symbols]] සිට [[ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක සංකේත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
44819
wikitext
text/x-wiki
{{merge|Category:Translingual numerals|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
{{auto cat}}
See also [[:Category:Translingual numerals]]
12milsy059yhulppsxeo3zd9dyv27ik
196021
196018
2024-12-04T12:37:28Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196021
wikitext
text/x-wiki
{{merge|Category:Translingual numerals|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
{{auto cat}}
See also [[:Category:Translingual numerals]]
[[en:Category:Translingual numeral symbols]]
8djmf5o4ghz78rz4m84j58omgvwtqv4
196026
196021
2024-12-04T12:38:18Z
Pinthura
2424
සේවා: auto cat භාවිතය පරික්ෂාව
196026
wikitext
text/x-wiki
{{auto cat}}{{merge|Category:Translingual numerals|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
See also [[:Category:Translingual numerals]]
[[en:Category:Translingual numeral symbols]]
mnpp3kea55l8w02brqud02emnj2lkbz
196032
196026
2024-12-04T12:39:19Z
Lee
19
196032
wikitext
text/x-wiki
See also [[:Category:Translingual numerals]]
{{auto cat}}
sqnyk04qajjf970jwyw87jso4h4m4fa
196036
196032
2024-12-04T12:40:22Z
Pinthura
2424
සේවා: auto cat භාවිතය පරික්ෂාව
196036
wikitext
text/x-wiki
{{auto cat}}See also [[:Category:Translingual numerals]]
7czcnofopwightq3t151q1xzvq0322o
ප්රවර්ග සාකච්ඡාව:Chinese reference templates
15
30908
196082
78146
2024-12-04T20:59:05Z
EmausBot
1976
Fixing double redirect from [[ප්රවර්ග සාකච්ඡාව:Chinese reference සැකිලි]] to [[ප්රවර්ග සාකච්ඡාව:චීන මූලාශ්ර සැකිලි]]
196082
wikitext
text/x-wiki
#යළියොමුව [[ප්රවර්ග සාකච්ඡාව:චීන මූලාශ්ර සැකිලි]]
3pzd87cayyl6hot167gy7acl16qc552
මිනිස්සු
0
113621
196001
195927
2024-12-04T12:18:14Z
WrdSrchSi
3305
Added: {{plural of|si|මිනිසා}}
196001
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[මිනිස්]]'' + ''[[හු]]'' > ''[[මිනිස්හු]]'' > [[මිනිස්සු]]
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|මිනිසා}}
#: ''{{{2|'''මිනිස්සු''' [[වෙයින්]] '''දුවති'''}}}''.
d469okm56jr33a7g88h05x2345rwi2h
සරව්ව
0
114063
195999
170430
2024-12-04T12:00:06Z
WrdSrchSi
3305
Added: {{t|en|car}}
195999
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
සරවනුයේ (ගමන් කරවීමෙහි) > සරව්ව වියැ හැකියි. මූලාශ්රයේ නිරුත දක්වා නැත.
=== නාම පදය ===
{{si-noun|සරවු}}
# [[මොටර් රථය|මෝටර් රථයක්]] (මූලාශ්රයේ දක්වා ඇති පරිදි) හෝ ඉංග්රීසියෙන් "කාර්" ලෙස හැඳින්වෙන රියක්.
:# [[CAR|car]] (Noun)
==== පරිවර්තන ====
{{trans-top|සරව්ව}}
* ඉංග්රීසි: {{t|en|car}}
{{trans-bottom}}
hcabncknnv01kw8j0od068bhqrgd7or
කමිටුව
0
114094
196079
183899
2024-12-04T15:26:05Z
WrdSrchSi
3305
Rephrased: නිරුක්තිය
196079
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[කමිටු]] + [[අ]] > කමිටු + '''ව්''' ([[ව්යඤ්ජනාගමනය]]) + අ'' > '''කමිටුව'''
=== නාම පදය ===
{{si-noun|කමිටු}}
# නිශ්චිත කාර්යයක් ඉටුකරනුව පත් කෙරෙන කණ්ඩායමක්.
:# {{l|en|committee}} (noun)
==== පරිවර්තන ====
{{trans-top|නිශ්චිත කාර්යයක් ඉටුකරනුව පත් කෙරෙන කණ්ඩායම}}
* ඉංග්රීසි: {{t|en|committee}}
* චීන:
*: කැන්ටනීස්: {{t|yue|委員會|tr=wai2 jyun4 wui6-2}}
*: මැන්ඩරින්: {{t+|cmn|委員會|tr=wěiyuánhuì}}
* ඕලන්ද: {{t+|nl|comité|n}}, {{t+|nl|commissie|f}}
* ප්රංශ: {{t+|fr|comité|m}}, {{t+|fr|commission|f}}
* ජර්මන්: {{t+|de|Komitee|n}}, {{t+|de|Ausschuß|m}}, {{t+|de|Kommission|f}}
* ග්රීක: {{t+|el|επιτροπή|f}}
* හීබෲ: {{t|he|וְעָדָה|f|tr=v'adá}}
* හින්දි: {{t+|hi|समिति|f}}, {{t+|hi|कमेटी|f}}
* ජපන්: {{t+|ja|委員会|tr=いいんかい, iinkai}}
* ලතින්: {{t|la|consilium|n}}
* මරාථි: {{t|mr|समिती|f}}
* පෘතුගීසි: {{t+|pt|comité|m}}, {{t+|pt|comitê|m}}, {{t+|pt|comissão|f}}
* රුසියානු: {{t+|ru|комите́т|m}}, {{t+|ru|коми́ссия|f}}
* ස්පාඤ්ඤ: {{t+|es|comité|m}}, {{t+|es|comisión|f}}
* තායි: {{t|th|คณะกรรมการ}}
{{trans-bottom}}
pod5j1o8awle59eu4c0xst3f41v6pht
ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න
14
114896
196128
169936
2024-12-05T05:13:55Z
Lee
19
Lee විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී
169934
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න
14
114999
196135
170192
2024-12-05T05:21:46Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
170190
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196137
196135
2024-12-05T05:21:56Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196137
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Terms derived from Proto-Indo-European roots]]
rdwrjw3cu648f3603jmcocmshykw4az
ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න
14
120873
196144
184912
2024-12-05T05:24:13Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
184910
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196146
196144
2024-12-05T05:24:23Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196146
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Terms derived from the Proto-Indo-European root *deyḱ-]]
dgyuj9o19iuhgdvy7j1db4tj9kh4zbk
ප්රවර්ගය:Latin entries referencing etymons with invalid IDs
14
126398
196083
195669
2024-12-05T01:14:43Z
Pinthura
2424
රොබෝ: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම
196083
wikitext
text/x-wiki
{{category redirect|ලතින් entries referencing etymons with invalid IDs}}
bg19sz2zpyp9bwqk3ounnqmjh4hn968
මව්හු
0
126413
196179
195700
2024-12-05T10:45:43Z
WrdSrchSi
3305
Added: plural of|si|මව
196179
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[මව්]] + [[හු]] >'' [[මව්හු]]
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|මව}}
#: ''{{{2|'''මව්හු''' පුතුන් සොයති.}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
tk29207hkr8ky7w322ovbc278buz73w
ඇත්තු
0
126414
196178
195703
2024-12-05T10:40:46Z
WrdSrchSi
3305
Added: {{plural of|si|ඇතා}}
196178
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[ඇත්]] + [[හු]] > ඇත්හු >'' [[ඇත්තු]] ''(පූර්ව ව්යඤ්ජන සාම්යය)''
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|ඇතා}}
#: ''{{{2|'''ඇත්තු''' ගම් වදිති.}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
3a7xkks6q92ppwv1650aacjxxs1yv0m
මිනිස්
0
126468
196054
195928
2024-12-04T13:14:06Z
Lee
19
196054
wikitext
text/x-wiki
==සිංහල==
=== නිරුක්තිය ===
{{rfe|si}}
=== නමු පියවිය ===
# [[මූල නාම ප්රකෘතිය]]
#: ''{{{2|'''මිනිස්''' + [[ආ]] > [[මිනිසා]]}}}''
#: ''{{{2|'''මිනිස්''' + [[හු]] > [[මිනිස්හු]] > [[මිනිස්සු]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# [[මිනිසා|මිනිසාට]] අදාළ
#:''{{{2|කැණීමෙන් '''මිනිස්''' හිසක් හමු වියැ.}}}''
#:''{{{2|'''මිනිස්''' ලෙය පාටින් රතු යි.}}}''
===ව්යුත්පන්න පද===
* [[මිනිසා]] (''[[මිනිස්]] + [[ආ]]'')
* [[මිනිස්සු]] (''[[මිනිස්]] + [[හු]]'')
* [[මිනිසුන්]] (''[[මිනිස්]] + [[උන්]]'')
* [[මිනිසාට]] (''[[මිනිස්]] + [[ආට]]'')
* [[මිනිසුනට]] (''[[මිනිස්]] + [[උනට]]'')
* [[මිනිස]] (''[[මිනිස්]] + [[අ]]'')
* [[මිනිසුනි]] (''[[මිනිස්]] + [[උනි]]'')
* [[මිනිසි]] (''[[මිනිස්]] + [[ඉ]]'')
* [[මිනිසියාව?]] (''[[මිනිස්]] + ?'')
nlf0mddhh6aa3buixw15bpg17c280l7
ප්රවර්ගය:Translingual terms with redundant script codes
14
126475
196084
195942
2024-12-05T01:14:53Z
Pinthura
2424
රොබෝ: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම
196084
wikitext
text/x-wiki
{{category redirect|සර්ව භාෂාමය terms with redundant script codes}}
px6dk3gdhizv6m02tnezokggv9r7zls
ප්රවර්ගය:Entries that don't exist by language
14
126478
196085
195954
2024-12-05T01:15:03Z
Pinthura
2424
රොබෝ: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම
196085
wikitext
text/x-wiki
{{category redirect|භාෂාව අනුව Entries that don't exist}}
fo35wervwxuk3j0ztncxfvmwwzl3wmc
අත්
0
126500
196000
195997
2024-12-04T12:12:46Z
WrdSrchSi
3305
Added: {{plural of|si|අත}}
196000
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{rfe|si}}
===නමු පියවිය===
# [[මූල නාම ප්රකෘතිය]]
#: ''{{{2|'''අත්''' + [[අ]] > [[අත]]}}}''
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|අත}}
#: ''{{{2|සිසුහු '''අත්''' ඔසවති.}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# [[අත]] යන යෙදුමෙහි නාම විශේෂණ පදය
#: ''{{{2|'''අත්''' බෑගය}}}''
#: ''{{{2|'''අත්''' අකුරු}}}''
===ව්යුත්පන්න පද===
* [[අත]] (''[[අත්]] + [[අ]]'')
* [[අතින්]] (''[[අත්]] + [[ඉන්]]'')
* [[අතට]] (''[[අත්]] + [[අට]]'')
* [[අතැ]] (''[[අත්]] + [[ඇ]]'')
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
t1mtbtk6rdykr7cvag2jafx7qw65brc
ප්රවර්ගය:Combining forms by language
14
126501
196005
2022-06-20T04:40:14Z
en>WingerBot
0
use {{auto cat}}, remove extraneous {{catfix}}/TOC templates (manually assisted)
196005
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196006
196005
2024-12-04T12:27:04Z
Lee
19
[[:en:Category:Combining_forms_by_language]] වෙතින් එක් සංශෝධනයක්
196005
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
වික්ෂනරි:ATTEST
4
126502
196007
2024-01-22T07:00:38Z
en>Chuck Entz
0
Protected "[[Wiktionary:ATTEST]]": No reason for non-admins to edit this. Ever. ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
196007
wikitext
text/x-wiki
#REDIRECT [[Wiktionary:Criteria for inclusion#Attestation]]
bqz7srr2423qcvk9difumynrlnxqx51
196008
196007
2024-12-04T12:27:51Z
Lee
19
[[:en:Wiktionary:ATTEST]] වෙතින් එක් සංශෝධනයක්
196007
wikitext
text/x-wiki
#REDIRECT [[Wiktionary:Criteria for inclusion#Attestation]]
bqz7srr2423qcvk9difumynrlnxqx51
Module:mn-translit/documentation
828
126503
196011
2023-01-25T11:35:32Z
en>Theknightwho
0
196011
wikitext
text/x-wiki
{{translit module documentation}}
8zdhvu7d00lrp6fban8tkoywlys7oi0
196012
196011
2024-12-04T12:33:32Z
Lee
19
[[:en:Module:mn-translit/documentation]] වෙතින් එක් සංශෝධනයක්
196011
wikitext
text/x-wiki
{{translit module documentation}}
8zdhvu7d00lrp6fban8tkoywlys7oi0
ප්රවර්ගය:මොංගෝලියානු පාඨ
14
126504
196015
2024-12-04T12:36:48Z
Pinthura
2424
සේවා: [[:[[en:Category:Mongolian lemmas]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196015
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196016
196015
2024-12-04T12:36:58Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Mongolian lemmas]] සිට [[ප්රවර්ගය:මොංගෝලියානු පාඨ]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196015
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196020
196016
2024-12-04T12:37:18Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196020
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Mongolian lemmas]]
2ecq2yizu7t4in5nisbvracftzpg0wd
ප්රවර්ගය:Mongolian lemmas
14
126505
196017
2024-12-04T12:36:59Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Mongolian lemmas]] සිට [[ප්රවර්ගය:මොංගෝලියානු පාඨ]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196017
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:මොංගෝලියානු පාඨ]]
0hnbqqg5h2c2uxl5wlq6d5ppgdz2fa8
196022
196017
2024-12-04T12:37:38Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196022
wikitext
text/x-wiki
{{category redirect|මොංගෝලියානු පාඨ}}
8wbycdxbs53jta7lul82zn1fy7kbthb
ප්රවර්ගය:Translingual numeral symbols
14
126506
196019
2024-12-04T12:37:09Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Translingual numeral symbols]] සිට [[ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක සංකේත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196019
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක සංකේත]]
2fyhwt2kavmxdurlm7xqv3ge7cpr8eo
196023
196019
2024-12-04T12:37:48Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196023
wikitext
text/x-wiki
{{category redirect|සර්ව භාෂාමය සංඛ්යාංක සංකේත}}
1re01jm7hzrt4kcylnli7vvdvr16lob
ප්රවර්ගය:Mongolian පාඨ
14
126507
196024
2024-12-04T12:37:58Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196024
wikitext
text/x-wiki
{{category redirect|මොංගෝලියානු පාඨ}}
8wbycdxbs53jta7lul82zn1fy7kbthb
ප්රවර්ගය:Translingual සංඛ්යාංක සංකේත
14
126508
196025
2024-12-04T12:38:08Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196025
wikitext
text/x-wiki
{{category redirect|සර්ව භාෂාමය සංඛ්යාංක සංකේත}}
1re01jm7hzrt4kcylnli7vvdvr16lob
ප්රවර්ගය:මොංගෝලියානු සංකේත
14
126509
196027
2024-12-04T12:38:46Z
Pinthura
2424
සේවා: [[:[[en:Category:Mongolian symbols]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196027
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196028
196027
2024-12-04T12:38:56Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Mongolian symbols]] සිට [[ප්රවර්ගය:මොංගෝලියානු සංකේත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196027
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196030
196028
2024-12-04T12:39:06Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196030
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Mongolian symbols]]
pcp7qnbj5rcgrlqk02z4uk8ek00c5eo
ප්රවර්ගය:Mongolian symbols
14
126510
196029
2024-12-04T12:38:57Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Mongolian symbols]] සිට [[ප්රවර්ගය:මොංගෝලියානු සංකේත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196029
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:මොංගෝලියානු සංකේත]]
675vxtb3jq0ne19sck8ivi7waj8ozje
196031
196029
2024-12-04T12:39:16Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196031
wikitext
text/x-wiki
{{category redirect|මොංගෝලියානු සංකේත}}
loelbhz77w96vlgrqwqnad07asdodag
ප්රවර්ගය:Mongolian සංකේත
14
126511
196033
2024-12-04T12:39:26Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196033
wikitext
text/x-wiki
{{category redirect|මොංගෝලියානු සංකේත}}
loelbhz77w96vlgrqwqnad07asdodag
ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක
14
126512
196034
2023-02-25T07:04:21Z
en>ExcarnateSojourner
0
add section to RFM link
196034
wikitext
text/x-wiki
{{auto cat}}
{{merge|Category:Translingual numeral symbols|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
[[Category:Translingual symbols]]
5kd316y9dvuoz1s2cd006ifhnjlbee9
196035
196034
2024-12-04T12:39:45Z
Lee
19
[[:en:Category:Translingual_numerals]] වෙතින් එක් සංශෝධනයක්
196034
wikitext
text/x-wiki
{{auto cat}}
{{merge|Category:Translingual numeral symbols|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
[[Category:Translingual symbols]]
5kd316y9dvuoz1s2cd006ifhnjlbee9
196041
196035
2024-12-04T12:52:23Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Translingual numerals]] සිට [[ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196034
wikitext
text/x-wiki
{{auto cat}}
{{merge|Category:Translingual numeral symbols|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
[[Category:Translingual symbols]]
5kd316y9dvuoz1s2cd006ifhnjlbee9
196043
196041
2024-12-04T12:52:33Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196043
wikitext
text/x-wiki
{{auto cat}}
{{merge|Category:Translingual numeral symbols|fragment=Category:Translingual numerals or Category:Translingual numeral symbols}}
[[Category:Translingual symbols]]
[[en:Category:Translingual numerals]]
84hy22mdtdjlzy9w5bzg58m5hsmbw6i
196046
196043
2024-12-04T12:53:30Z
Lee
19
196046
wikitext
text/x-wiki
{{auto cat}}
[[Category:Translingual symbols]]
[[en:Category:Translingual numerals]]
bteot3dln26loavr4mipus3s45fgscc
ප්රවර්ගය:Translingual numerals
14
126513
196042
2024-12-04T12:52:24Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Translingual numerals]] සිට [[ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196042
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:සර්ව භාෂාමය සංඛ්යාංක]]
49fjsinvm0jwmknkuq2nnfl6w5itw48
196044
196042
2024-12-04T12:52:43Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196044
wikitext
text/x-wiki
{{category redirect|සර්ව භාෂාමය සංඛ්යාංක}}
8f8na74c5gqb12951pdspznhpkqicve
ප්රවර්ගය:Translingual සංඛ්යාංක
14
126514
196045
2024-12-04T12:52:53Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196045
wikitext
text/x-wiki
{{category redirect|සර්ව භාෂාමය සංඛ්යාංක}}
8f8na74c5gqb12951pdspznhpkqicve
මනුස්ස
0
126515
196055
2024-12-04T13:49:15Z
Lee
19
නිර්මාණය
196055
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
===Etymology===
{{inh+|pi|sa|मनुष्य}}.
===Pronunciation===
{{IPA|pi|/manus.sa/}}
===Noun===
{{pi-noun|m}}
# [[මිනිසා]]
====Declension====
{{pi-decl-noun|මනුස්ස|a|m}}
====Derived terms====
* {{l|pi|අමනුස්ස}}
====Descendants====
* {{desc|bor=1|my|မနုဿ}}
* {{desc|bor=1|km|មនុស្ស}}
* {{desc|lo|ມະນຸດ|bor=1}}
* {{desctree|bor=1|kaw|mānuṣa}}
===Further reading===
* {{R:pi:PTS}}
4cx48leh0ydmrv3xjtpesr91nd5xkgx
196056
196055
2024-12-04T13:49:58Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196056
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
=== නිරුක්තිය ===
{{inh+|pi|sa|मनुष्य}}.
=== උච්චාරණය ===
{{IPA|pi|/manus.sa/}}
=== නාම පදය ===
{{pi-noun|m}}
# [[මිනිසා]]
==== වරනැඟීම ====
{{pi-decl-noun|මනුස්ස|a|m}}
==== ව්යුත්පන්න යෙදුම් ====
* {{l|pi|අමනුස්ස}}
====Descendants====
* {{desc|bor=1|my|မနုဿ}}
* {{desc|bor=1|km|មនុស្ស}}
* {{desc|lo|ມະນຸດ|bor=1}}
* {{desctree|bor=1|kaw|mānuṣa}}
=== වැඩිදුර් කියවීම සඳහා ===
* {{R:pi:PTS}}
4wnvdv3mkjjeefp0xbtz6fbi2mdu2mp
196071
196056
2024-12-04T14:03:35Z
Lee
19
196071
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
=== නිරුක්තිය ===
{{etymon|id=manussa|pi|inh|sa>मनुष्य>manussa|tree=1}}
{{inh+|pi|sa|मनुष्य}}.
=== උච්චාරණය ===
{{IPA|pi|/manus.sa/}}
=== නාම පදය ===
{{pi-noun|m}}
# [[මිනිසා]]
==== වරනැඟීම ====
{{pi-decl-noun|මනුස්ස|a|m}}
==== ව්යුත්පන්න යෙදුම් ====
* {{l|pi|අමනුස්ස}}
====Descendants====
* {{desc|bor=1|my|မနုဿ}}
* {{desc|bor=1|km|មនុស្ស}}
* {{desc|lo|ມະນຸດ|bor=1}}
* {{desctree|bor=1|kaw|mānuṣa}}
=== වැඩිදුර් කියවීම සඳහා ===
* {{R:pi:PTS}}
3f004l0r837jsidwzfu7p7fzxfsfl1d
ප්රවර්ගය:පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත
14
126516
196057
2024-12-04T13:51:34Z
Pinthura
2424
සේවා: [[:[[en:Category:Pali terms with IPA pronunciation]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196057
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196058
196057
2024-12-04T13:51:44Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Pali terms with IPA pronunciation]] සිට [[ප්රවර්ගය:පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196057
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196060
196058
2024-12-04T13:51:54Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196060
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Pali terms with IPA pronunciation]]
r5lvp9aaelnbiqx0tp7cc9a44js8c0n
ප්රවර්ගය:Pali terms with IPA pronunciation
14
126517
196059
2024-12-04T13:51:45Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Pali terms with IPA pronunciation]] සිට [[ප්රවර්ගය:පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196059
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත]]
566ztffw1j6jt46lp51bgi09hk514cs
196061
196059
2024-12-04T13:52:04Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196061
wikitext
text/x-wiki
{{category redirect|පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත}}
0ja36tysd96d35ub33cjtvx3t59lvw8
ප්රවර්ගය:Pali යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත
14
126518
196062
2024-12-04T13:52:14Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196062
wikitext
text/x-wiki
{{category redirect|පාලි යෙදුම්, ස්වරශාස්ත්ර හෝඩි උච්චාරණ සහිත}}
0ja36tysd96d35ub33cjtvx3t59lvw8
සැකිල්ල:pi-decl-noun/test1
10
126519
196065
2018-09-26T19:15:11Z
en>RichardW57
0
Created page with "<includeonly>{{#invoke:pi-decl/noun/testcases|show}}</includeonly><noinclude>[[Category:Pali noun inflection-table templates]]</noinclude>"
196065
wikitext
text/x-wiki
<includeonly>{{#invoke:pi-decl/noun/testcases|show}}</includeonly><noinclude>[[Category:Pali noun inflection-table templates]]</noinclude>
sfil88x7gtq4yo1rrupdcbz1nm0x311
196066
196065
2024-12-04T13:53:17Z
Lee
19
[[:en:Template:pi-decl-noun/test1]] වෙතින් එක් සංශෝධනයක්
196065
wikitext
text/x-wiki
<includeonly>{{#invoke:pi-decl/noun/testcases|show}}</includeonly><noinclude>[[Category:Pali noun inflection-table templates]]</noinclude>
sfil88x7gtq4yo1rrupdcbz1nm0x311
සැකිල්ල:pi-decl-noun/documentation
10
126520
196067
2022-08-28T05:25:03Z
en>WingerBot
0
remove extraneous spaces at end of line
196067
wikitext
text/x-wiki
{{documentation subpage}}
==Purpose==
This template, which works for all the standard Pali scripts, generates a declension table for a noun. It may also be used for a pronoun or the gender of an adjective. The template itself is a front-end for [[Module:pi-decl/noun]].
The template will also work for 'non-standard' abugidic scripts whose implicit vowel is 'a' if:
* [[Module:pi-Latn-translit]] supports transliteration to that script;
* The declension data module Module:pi-decl/noun/<script> exists; it need only return an empty table; and
* There are no idiosyncratic interactions between stem and affix.
In these cases, the parameters {{para|sc}} and {{para|ending}} are required.
==Regular Declensions==
14 'regular' vocalic* patterns of declension and 9 consonantal patterns of declension are recognised:
{|class="wikitable" style=text-align:center
! Exemplar
!colspan=3|Gender
|-
! Ending
! Masculine
! Feminine
! Neuter
|-
! a || {{l|pi|deva}}<br>(devo) || - || {{l|pi|rūpa}}<br>(rūpaṃ)
|-
<!-- ! ā || {{l|pi|candimā}} || {{l|pi|kaññā}} || - -->
! ā || {{l|pi|candimā}} || {{l|pi|gāthā}} || -
|-
! i || {{l|pi|muni}} || {{l|pi|bodhi}} || {{l|pi|aṭṭhi}}
|-
! ī || {{l|pi|antevāsī}} || {{l|pi|nadī}} || -
|-
<!-- ! u || {{l|pi|bandhu}} || {{l|pi|dhenu}} || {{l|pi|cakkhu}} -->
! u || {{l|pi|bandhu}} || {{l|pi|jambu}} || {{l|pi|cakkhu}}
|-
! ū || {{l|pi|viññū}} || {{l|pi|sassū}} ||
|-
! in || {{l|pi|sāmin}} (sāmī) || - || {{l|pi|balin}} (bali)
|-
! ar || {{l|pi|satthar}}<br>(satthā) || - || -
|-
! as || - || - || {{l|pi|sotas}}<br>soto
|-
! an || {{l|pi|attan}}<br>(attā) || - || -
|-
<!-- ! ant || {{l|pi|pacant}}<br>(pacaṃ) || - || {{l|pi|pacant}}<br>(pacaṃ) -->
! ant || {{l|pi|arahant}}<br>(arahaṃ) || - || {{l|pi|arahant}}<br>(arahaṃ)
|-
<!-- ! mant/​vant || {{l|pi|guṇavant}}<br>(guṇavā) || - || {{l|pi|guṇavant}}<br>(guṇavaṃ) -->
! mant/​vant || {{l|pi|himavant}}<br>(himavā) || - || {{l|pi|himavant}}<br>(himavaṃ)
|}
If different from the stem, the commonest nominative singular is given in parentheses after it. The masculine -ī and -in declensions, and as another pair the neuter -i and -in declensions, are indistinguishable. The use of the masculine -ī declension and the neuter -in declension are deprecated; the masculine -in and neuter -i declensions should be used instead.
===Special Handling for Sinhala Script===
Two variants of endings in 'nt' are recognised for the Sinhala script - combinations with touching letters (thematic masculine nominative singular ending {{lang|pi|න්තො}}), the traditional form, and combinations with a bare al-lakuna (thematic nominative singular ending {{lang|pi|න්තො}}) as commonly used in writing the Sinhalese language. The simple codes such as 'ant' are used for bare al-lakuna: special codes with 'T' suffixed, such as 'antT', are used for touching letters.
This feature should be hidden from the user interface - that will be future enhancement. Note that this feature need only be used for present participles whose stem ends in {{lang|pi|මන්ත්}} or {{lang|pi|වන්ත්}}; automatic stem recognition handles the other cases.
==Irregular Declension==
Irregular declension is treated as a deviation from regular declension. Parameters are provided to suppress cases and override or supplement case forms.
==Usage==
The simplest, and commonest, invocation is of the form {{tl|pi-decl-noun|g=m}} for the declension of the head word. To display the declension of the feminine of {{l|pi|pāpa}} within that page, one can simply write {{tl|pi-decl-noun|pāpī|g=f}}. To display the masculine of the present participle of {{l|pi|kilamati}}, one writes {{tl|pi-decl-noun|kilamant|ant|g=m}}:
{{pi-decl-noun|kilamant|ant|g=m}}
Simply writing {{tl|pi-decl-noun|kilamant|g=m}} would generate an incorrect nominative singular masculine:
{{pi-decl-noun|kilamant|g=m}}
===Parameters===
{| class="wikitable"
! Parameter !! Description !! Type !! Default
|-
! stem
| The stem to which the inflectional endings are added. Note that the stem's ending may be replaced as part of the process.
| string
| The name of the page. The first anonymous parameter is used in preference to the named parameter.
|-
! ending
| This is the ending of the stem that, along with the gender, defines the declension. The ending is given in lower case in the Roman script.
The second anonymous parameter is used in preference to the named parameter.
| string
| If the parameter is omitted, the ending is taken from the end of the stem. The parameter is only required in three cases:
# to distinguish a participle coincidentally ending in -mant or -vant from an adjective in -mant or -vant. The former may be indicated by specifying this parameter as 'ant'.
# to distinguish -in from the coincidental ending in -ina when a script is used as both an abugida and as an alphabet.
# For a non-standard script; the script is given by the parameter {{para|sc}}.
|-
! gender
| The gender of the noun; more precisely, the gender according to which it is declined. Four values are allowed: m/f/n/no. The special value 'no' suppresses the display of the gender; the endings are selected as though 'm' had been specified. The third anonymous parameter is used in preference to the named parameter.
| wiki-user-name
| required
|-
! g
|colspan=3| Alias for parameter 'gender'.
|-
! label
| This is the label to use in the table heading instead of the stem.
| string
| If the parameter is omitted, the table heading is based on the stem.
|-
! number
| Which numbers to show the endings for - 's' for singular, 'p' for plural, or 'both' for both. This is intended for use with substantives and numerals that are only used or attested in the singular or in the plural.
| string
| both
|-
! showtr
| How to display transliterations to Roman scripts. There are three options - 'none' for no transliterations, 'plain' for transliterations in plain text and 'link' for transliterations as links. The use of 'link' is not recommended for general use, as the transliteration does not always match the Roman script usage, e.g. Tai Tham {{m|pi|ᨾᩘᩈ|t=flesh}} compared to Roman script equivalent {{m|pi|maṃsa}}.
| string
| plain
|-
! subst
| Substitutions to be applied to handle anomalous or unimplemented transliteration. If specified, should be one or more substitution expressions separated by commas. Each substitution expression is of the form <code>FROM//TO</code> (<code>FROM/TO</code> is also accepted), where <code>FROM</code> is the source text as found in the example, and <code>TO</code> is the corresponding respelling in the word's script (e.g. Burmese or Lao). The substitutions are applied in order and before transliteration. The idea is to respell words with irregular transliteration so that the transliteration comes out correctly; there is no explicit mechanism to transliterate a single item. Note that <code>FROM</code> and <code>TO</code> are actually Lua patterns (see [[WT:LUA]]). This means, for example, that a hyphen in the source text needs to be "escaped" by writing it as <code>%-</code>.
One can address a single spelling by the use of beginning and end of string anchors <code>^</code> and <code>$</code>.
| string
|
|-
! sc
| If the word to be inflected is not in one of the standard scripts, this is the code of the script it is in. In this case, {{para|ending}} is also required.
| string
|
|-
! impl
| In the Thai and Lao scripts, there are two main writing systems for Pali. One is an abugida, i.e. has an implicit vowel, and the other always indicates the vowel ('alphabetic'). This parameter, which defaults to 'yes', commands whether implicit vowels are used. The value 'both' indicates that forms for both writing systems should be shown in the declension table. If the lemma ends in the visual representation of the implicit vowel, the declension will only be shown with alphabetic spellings. The response to requesting the declension in a writing system formally inconsistent with the lemma is undefined.
The use of the value 'both' causes incorrect transliteration for most masculine and neuter nouns, and therefore should not be used for them.
This option is only valid for the Thai and Lao scripts.
| string
| yes
|-
! aa
| In the Burmese and Tai Tham scripts, there are two different vowels corresponding to ā. The choice depends on the preceding consonants, but there are different conventions. This parameter selects which value is used in the inflectional ending if the attested conventions may make different choices. The valid values are 'round', 'tall', 'both' and 'default'.
Note that the stem may limit the number of applicable conventions; it is the responsibility of the editor to avoid impossible combinations.
So far, this has only been implemented for the Tai Tham script.
| string
| The value defaults to 'default'
|-
! liap
| This parameter is only meaningful for the Lao script. Because the Lao script has had poor support for Pali, there are three different was of writing the instrumental and ablative plural ending in -bhi. Not all stem forms are compatible with all three endings, and for a given stem form, which endings are compatible with it may also depend on its etymology. This parameter lists the forms to be used using a rough Romanisation, resulting in six supported combinations: 'b' for -ພິ, 'bh' for -ຠິ, 'b.' for -ພ຺ິ, 'bbh' for -ພິ and -ຠິ, 'bb.' for -ພິ and -ພ຺ິ, 'bhb.' for -ຠິ and -ພ຺ິ, and 'all' or 'bbhb.' for all three. The value 'none' is also permitted as a way to specify that none be used.
| string
| bh
|-
! y
| This parameter is only meaningful for the Lao script. Some Lao script writing systems use yo yung (ຍ) for Pali <y>, while others use yo ya (ຢ). This option selects which value is used in the case endings. The allowed values are: yung/yaa/ຍ/ຢ/both.
| string
| (Accept choice of Lao script declension table or transliteration routine if no table.)
|-
! nonom
| Whether to suppress the nominative case.
| boolean
| false
|-
! noms_mod
| Whether the alternative case forms for the nominative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! noms
| Alternative case form of nominative singular. Additional alternatives may be specified by noms2, noms3,..
| string
|-
! nomp_mod
| Whether the alternative case forms for the nominative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! nomp
| Alternative case form of nominative plural. Additional alternatives may be specified by nomp2, nomp3,.."
| string
|-
! noacc
| Whether to suppress the accusative case.
| boolean
| false
|-
! accs_mod
| Whether the alternative case forms for the accusative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! accs
| Alternative case form of accusative singular. Additional alternatives may be specified by accs2, accs3,.."
| string
|-
! accp_mod
| Whether the alternative case forms for the accusative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! accp
| Alternative case form of accusative plural. Additional alternatives may be specified by accp2, accp3,.."
| string
|-
! noins
| Whether to suppress the instrumental case."
| boolean
| false
|-
! inss_mod
| Whether the alternative case forms for the instrumental singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! inss
| Alternative case form of instrumental singular. Additional alternatives may be specified by inss2, inss3,..
| string
|-
! insp_mod
| Whether the alternative case forms for the instrumental plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! insp
| Alternative case form of instrumental plural. Additional alternatives may be specified by insp2, insp3,..
| string
|-
! nodat
| Whether to suppress the dative case.
| boolean
| false
|-
! dats_mod
| Whether the alternative case forms for the dative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! dats
| Alternative case form of dative singular. Additional alternatives may be specified by dats2, dats3,..
| string
|-
! datp_mod
| Whether the alternative case forms for the dative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! datp
| Alternative case form of dative plural. Additional alternatives may be specified by datp2, datp3,..
| string
|-
! noabl
| Whether to suppress the ablative case.
| boolean
| false
|-
! abls_mod
| Whether the alternative case forms for the ablative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! abls
| Alternative case form of ablative singular. Additional alternatives may be specified by abls2, abls3,..
| string
|-
! ablp_mod
| Whether the alternative case forms for the ablative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! ablp
| Alternative case form of nominative plural. Additional alternatives may be specified by ablp2, ablp3,..
| string
|-
! nogen
| Whether to suppress the genitive case.
| boolean
| false
|-
! gens_mod
| Whether the alternative case forms for the genitive singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! gens
| Alternative case form of genitive singular. Additional alternatives may be specified by gens2, gens3,..
| string
|-
! genp_mod
| Whether the alternative case forms for the genitive plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! genp
| Alternative case form of genitive plural. Additional alternatives may be specified by genp2, genp3,..
| string
|-
! noloc
| Whether to suppress the locative case.
| boolean
| false
|-
! locs_mod
| Whether the alternative case forms for the locative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! locs
| Alternative case form of locative singular. Additional alternatives may be specified by locs2, locs3,..
| string
|-
! locp_mod
| Whether the alternative case forms for the locative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! locp
| Alternative case form of locative plural. Additional alternatives may be specified by locp2, locp3,..
| string
|-
! novoc
| Whether to suppress the vocative case.
| boolean
| false
|-
! vocs_mod
| Whether the alternative case forms for the vocative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! vocs
| Alternative case form of vocative singular. Additional alternatives may be specified by vocs2, vocs3,..
| string
|-
! vocp_mod
| Whether the alternative case forms for the nominative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! vocp
| Alternative case form of vocative plural. Additional alternatives may be specified by vocp2, vocp3,..
| string
| description
|}
d9o0ppmd8bi3w8br4pfzo496utarh07
196068
196067
2024-12-04T13:53:23Z
Lee
19
[[:en:Template:pi-decl-noun/documentation]] වෙතින් එක් සංශෝධනයක්
196067
wikitext
text/x-wiki
{{documentation subpage}}
==Purpose==
This template, which works for all the standard Pali scripts, generates a declension table for a noun. It may also be used for a pronoun or the gender of an adjective. The template itself is a front-end for [[Module:pi-decl/noun]].
The template will also work for 'non-standard' abugidic scripts whose implicit vowel is 'a' if:
* [[Module:pi-Latn-translit]] supports transliteration to that script;
* The declension data module Module:pi-decl/noun/<script> exists; it need only return an empty table; and
* There are no idiosyncratic interactions between stem and affix.
In these cases, the parameters {{para|sc}} and {{para|ending}} are required.
==Regular Declensions==
14 'regular' vocalic* patterns of declension and 9 consonantal patterns of declension are recognised:
{|class="wikitable" style=text-align:center
! Exemplar
!colspan=3|Gender
|-
! Ending
! Masculine
! Feminine
! Neuter
|-
! a || {{l|pi|deva}}<br>(devo) || - || {{l|pi|rūpa}}<br>(rūpaṃ)
|-
<!-- ! ā || {{l|pi|candimā}} || {{l|pi|kaññā}} || - -->
! ā || {{l|pi|candimā}} || {{l|pi|gāthā}} || -
|-
! i || {{l|pi|muni}} || {{l|pi|bodhi}} || {{l|pi|aṭṭhi}}
|-
! ī || {{l|pi|antevāsī}} || {{l|pi|nadī}} || -
|-
<!-- ! u || {{l|pi|bandhu}} || {{l|pi|dhenu}} || {{l|pi|cakkhu}} -->
! u || {{l|pi|bandhu}} || {{l|pi|jambu}} || {{l|pi|cakkhu}}
|-
! ū || {{l|pi|viññū}} || {{l|pi|sassū}} ||
|-
! in || {{l|pi|sāmin}} (sāmī) || - || {{l|pi|balin}} (bali)
|-
! ar || {{l|pi|satthar}}<br>(satthā) || - || -
|-
! as || - || - || {{l|pi|sotas}}<br>soto
|-
! an || {{l|pi|attan}}<br>(attā) || - || -
|-
<!-- ! ant || {{l|pi|pacant}}<br>(pacaṃ) || - || {{l|pi|pacant}}<br>(pacaṃ) -->
! ant || {{l|pi|arahant}}<br>(arahaṃ) || - || {{l|pi|arahant}}<br>(arahaṃ)
|-
<!-- ! mant/​vant || {{l|pi|guṇavant}}<br>(guṇavā) || - || {{l|pi|guṇavant}}<br>(guṇavaṃ) -->
! mant/​vant || {{l|pi|himavant}}<br>(himavā) || - || {{l|pi|himavant}}<br>(himavaṃ)
|}
If different from the stem, the commonest nominative singular is given in parentheses after it. The masculine -ī and -in declensions, and as another pair the neuter -i and -in declensions, are indistinguishable. The use of the masculine -ī declension and the neuter -in declension are deprecated; the masculine -in and neuter -i declensions should be used instead.
===Special Handling for Sinhala Script===
Two variants of endings in 'nt' are recognised for the Sinhala script - combinations with touching letters (thematic masculine nominative singular ending {{lang|pi|න්තො}}), the traditional form, and combinations with a bare al-lakuna (thematic nominative singular ending {{lang|pi|න්තො}}) as commonly used in writing the Sinhalese language. The simple codes such as 'ant' are used for bare al-lakuna: special codes with 'T' suffixed, such as 'antT', are used for touching letters.
This feature should be hidden from the user interface - that will be future enhancement. Note that this feature need only be used for present participles whose stem ends in {{lang|pi|මන්ත්}} or {{lang|pi|වන්ත්}}; automatic stem recognition handles the other cases.
==Irregular Declension==
Irregular declension is treated as a deviation from regular declension. Parameters are provided to suppress cases and override or supplement case forms.
==Usage==
The simplest, and commonest, invocation is of the form {{tl|pi-decl-noun|g=m}} for the declension of the head word. To display the declension of the feminine of {{l|pi|pāpa}} within that page, one can simply write {{tl|pi-decl-noun|pāpī|g=f}}. To display the masculine of the present participle of {{l|pi|kilamati}}, one writes {{tl|pi-decl-noun|kilamant|ant|g=m}}:
{{pi-decl-noun|kilamant|ant|g=m}}
Simply writing {{tl|pi-decl-noun|kilamant|g=m}} would generate an incorrect nominative singular masculine:
{{pi-decl-noun|kilamant|g=m}}
===Parameters===
{| class="wikitable"
! Parameter !! Description !! Type !! Default
|-
! stem
| The stem to which the inflectional endings are added. Note that the stem's ending may be replaced as part of the process.
| string
| The name of the page. The first anonymous parameter is used in preference to the named parameter.
|-
! ending
| This is the ending of the stem that, along with the gender, defines the declension. The ending is given in lower case in the Roman script.
The second anonymous parameter is used in preference to the named parameter.
| string
| If the parameter is omitted, the ending is taken from the end of the stem. The parameter is only required in three cases:
# to distinguish a participle coincidentally ending in -mant or -vant from an adjective in -mant or -vant. The former may be indicated by specifying this parameter as 'ant'.
# to distinguish -in from the coincidental ending in -ina when a script is used as both an abugida and as an alphabet.
# For a non-standard script; the script is given by the parameter {{para|sc}}.
|-
! gender
| The gender of the noun; more precisely, the gender according to which it is declined. Four values are allowed: m/f/n/no. The special value 'no' suppresses the display of the gender; the endings are selected as though 'm' had been specified. The third anonymous parameter is used in preference to the named parameter.
| wiki-user-name
| required
|-
! g
|colspan=3| Alias for parameter 'gender'.
|-
! label
| This is the label to use in the table heading instead of the stem.
| string
| If the parameter is omitted, the table heading is based on the stem.
|-
! number
| Which numbers to show the endings for - 's' for singular, 'p' for plural, or 'both' for both. This is intended for use with substantives and numerals that are only used or attested in the singular or in the plural.
| string
| both
|-
! showtr
| How to display transliterations to Roman scripts. There are three options - 'none' for no transliterations, 'plain' for transliterations in plain text and 'link' for transliterations as links. The use of 'link' is not recommended for general use, as the transliteration does not always match the Roman script usage, e.g. Tai Tham {{m|pi|ᨾᩘᩈ|t=flesh}} compared to Roman script equivalent {{m|pi|maṃsa}}.
| string
| plain
|-
! subst
| Substitutions to be applied to handle anomalous or unimplemented transliteration. If specified, should be one or more substitution expressions separated by commas. Each substitution expression is of the form <code>FROM//TO</code> (<code>FROM/TO</code> is also accepted), where <code>FROM</code> is the source text as found in the example, and <code>TO</code> is the corresponding respelling in the word's script (e.g. Burmese or Lao). The substitutions are applied in order and before transliteration. The idea is to respell words with irregular transliteration so that the transliteration comes out correctly; there is no explicit mechanism to transliterate a single item. Note that <code>FROM</code> and <code>TO</code> are actually Lua patterns (see [[WT:LUA]]). This means, for example, that a hyphen in the source text needs to be "escaped" by writing it as <code>%-</code>.
One can address a single spelling by the use of beginning and end of string anchors <code>^</code> and <code>$</code>.
| string
|
|-
! sc
| If the word to be inflected is not in one of the standard scripts, this is the code of the script it is in. In this case, {{para|ending}} is also required.
| string
|
|-
! impl
| In the Thai and Lao scripts, there are two main writing systems for Pali. One is an abugida, i.e. has an implicit vowel, and the other always indicates the vowel ('alphabetic'). This parameter, which defaults to 'yes', commands whether implicit vowels are used. The value 'both' indicates that forms for both writing systems should be shown in the declension table. If the lemma ends in the visual representation of the implicit vowel, the declension will only be shown with alphabetic spellings. The response to requesting the declension in a writing system formally inconsistent with the lemma is undefined.
The use of the value 'both' causes incorrect transliteration for most masculine and neuter nouns, and therefore should not be used for them.
This option is only valid for the Thai and Lao scripts.
| string
| yes
|-
! aa
| In the Burmese and Tai Tham scripts, there are two different vowels corresponding to ā. The choice depends on the preceding consonants, but there are different conventions. This parameter selects which value is used in the inflectional ending if the attested conventions may make different choices. The valid values are 'round', 'tall', 'both' and 'default'.
Note that the stem may limit the number of applicable conventions; it is the responsibility of the editor to avoid impossible combinations.
So far, this has only been implemented for the Tai Tham script.
| string
| The value defaults to 'default'
|-
! liap
| This parameter is only meaningful for the Lao script. Because the Lao script has had poor support for Pali, there are three different was of writing the instrumental and ablative plural ending in -bhi. Not all stem forms are compatible with all three endings, and for a given stem form, which endings are compatible with it may also depend on its etymology. This parameter lists the forms to be used using a rough Romanisation, resulting in six supported combinations: 'b' for -ພິ, 'bh' for -ຠິ, 'b.' for -ພ຺ິ, 'bbh' for -ພິ and -ຠິ, 'bb.' for -ພິ and -ພ຺ິ, 'bhb.' for -ຠິ and -ພ຺ິ, and 'all' or 'bbhb.' for all three. The value 'none' is also permitted as a way to specify that none be used.
| string
| bh
|-
! y
| This parameter is only meaningful for the Lao script. Some Lao script writing systems use yo yung (ຍ) for Pali <y>, while others use yo ya (ຢ). This option selects which value is used in the case endings. The allowed values are: yung/yaa/ຍ/ຢ/both.
| string
| (Accept choice of Lao script declension table or transliteration routine if no table.)
|-
! nonom
| Whether to suppress the nominative case.
| boolean
| false
|-
! noms_mod
| Whether the alternative case forms for the nominative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! noms
| Alternative case form of nominative singular. Additional alternatives may be specified by noms2, noms3,..
| string
|-
! nomp_mod
| Whether the alternative case forms for the nominative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! nomp
| Alternative case form of nominative plural. Additional alternatives may be specified by nomp2, nomp3,.."
| string
|-
! noacc
| Whether to suppress the accusative case.
| boolean
| false
|-
! accs_mod
| Whether the alternative case forms for the accusative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! accs
| Alternative case form of accusative singular. Additional alternatives may be specified by accs2, accs3,.."
| string
|-
! accp_mod
| Whether the alternative case forms for the accusative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! accp
| Alternative case form of accusative plural. Additional alternatives may be specified by accp2, accp3,.."
| string
|-
! noins
| Whether to suppress the instrumental case."
| boolean
| false
|-
! inss_mod
| Whether the alternative case forms for the instrumental singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! inss
| Alternative case form of instrumental singular. Additional alternatives may be specified by inss2, inss3,..
| string
|-
! insp_mod
| Whether the alternative case forms for the instrumental plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! insp
| Alternative case form of instrumental plural. Additional alternatives may be specified by insp2, insp3,..
| string
|-
! nodat
| Whether to suppress the dative case.
| boolean
| false
|-
! dats_mod
| Whether the alternative case forms for the dative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! dats
| Alternative case form of dative singular. Additional alternatives may be specified by dats2, dats3,..
| string
|-
! datp_mod
| Whether the alternative case forms for the dative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! datp
| Alternative case form of dative plural. Additional alternatives may be specified by datp2, datp3,..
| string
|-
! noabl
| Whether to suppress the ablative case.
| boolean
| false
|-
! abls_mod
| Whether the alternative case forms for the ablative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! abls
| Alternative case form of ablative singular. Additional alternatives may be specified by abls2, abls3,..
| string
|-
! ablp_mod
| Whether the alternative case forms for the ablative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! ablp
| Alternative case form of nominative plural. Additional alternatives may be specified by ablp2, ablp3,..
| string
|-
! nogen
| Whether to suppress the genitive case.
| boolean
| false
|-
! gens_mod
| Whether the alternative case forms for the genitive singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! gens
| Alternative case form of genitive singular. Additional alternatives may be specified by gens2, gens3,..
| string
|-
! genp_mod
| Whether the alternative case forms for the genitive plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! genp
| Alternative case form of genitive plural. Additional alternatives may be specified by genp2, genp3,..
| string
|-
! noloc
| Whether to suppress the locative case.
| boolean
| false
|-
! locs_mod
| Whether the alternative case forms for the locative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace"
| string
| after
|-
! locs
| Alternative case form of locative singular. Additional alternatives may be specified by locs2, locs3,..
| string
|-
! locp_mod
| Whether the alternative case forms for the locative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! locp
| Alternative case form of locative plural. Additional alternatives may be specified by locp2, locp3,..
| string
|-
! novoc
| Whether to suppress the vocative case.
| boolean
| false
|-
! vocs_mod
| Whether the alternative case forms for the vocative singular are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! vocs
| Alternative case form of vocative singular. Additional alternatives may be specified by vocs2, vocs3,..
| string
|-
! vocp_mod
| Whether the alternative case forms for the nominative plural are listed before, after, or replace, the forms for the regular declension. Three values are allowed: before/after/replace
| string
| after
|-
! vocp
| Alternative case form of vocative plural. Additional alternatives may be specified by vocp2, vocp3,..
| string
| description
|}
d9o0ppmd8bi3w8br4pfzo496utarh07
manussa
0
126521
196072
2024-12-04T14:07:08Z
Lee
19
නිර්මාණය
196072
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
===Pronunciation===
{{IPA|pi|/manus.sa/}}
===Noun===
{{pi-noun|m}}
# {{pi-sc|Latn|මනුස්ස}}.
6k8g7hzysyqtsvcx0rx5zj6rgq0fnmz
196076
196072
2024-12-04T15:16:21Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196076
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
=== උච්චාරණය ===
{{IPA|pi|/manus.sa/}}
=== නාම පදය ===
{{pi-noun|m}}
# {{pi-sc|Latn|මනුස්ස}}.
fyup6imxgre7ue61ugiz57uaioipt1v
කොටියා
0
126522
196073
2024-12-04T14:55:23Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === ''[[කොටි]] + [[ආ]] > කොටි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + ආ '' > [[කොටියා]] === නාම පදය === {{si-noun|කොටියෝ}} # {{rfdef|si}} <!-- ==== පරිවර්තන ==== {{trans-top|පරිවර්තන}} * ඉංග්රීසි: {{t|en|<<ඉංග්රීසි...' යොදමින් නව පිටුවක් තනන ලදි
196073
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[කොටි]] + [[ආ]] > කොටි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + ආ '' > [[කොටියා]]
=== නාම පදය ===
{{si-noun|කොටියෝ}}
# {{rfdef|si}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
4juh9akbonzu2dkkxyqy292uvjr7bd1
196091
196073
2024-12-05T01:24:27Z
Lee
19
196091
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[කොටි]] + [[ආ]] > කොටි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + ආ '' > [[කොටියා]]
=== නාම පදය ===
{{si-noun|කොටියෝ}}
# {{ඒකවචනය|si|කොටි}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
hs53acfj4c8pa862qtqaz15h8bmzqwa
196102
196091
2024-12-05T01:46:58Z
Lee
19
196102
wikitext
text/x-wiki
== සිංහල ==
[[File:Sri Lankan leopard (Panthera pardus kotiya) at Wilpattu National Park.jpg|කොටියා]]
=== නිරුක්තිය ===
''[[කොටි]] + [[ආ]] > කොටි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + ආ '' > [[කොටියා]]
=== නාම පදය ===
{{si-noun|කොටියෝ}}
# {{ඒකවචනය|si|කොටි}}
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|leopard}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|ව්යාඝ්රයා}}
fb7q7eaxx8p17cd7l6a575onx2wnor1
196103
196102
2024-12-05T01:47:15Z
Lee
19
196103
wikitext
text/x-wiki
== සිංහල ==
[[File:Sri Lankan leopard (Panthera pardus kotiya) at Wilpattu National Park.jpg|right|thumb|කොටියා]]
=== නිරුක්තිය ===
''[[කොටි]] + [[ආ]] > කොටි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + ආ '' > [[කොටියා]]
=== නාම පදය ===
{{si-noun|කොටියෝ}}
# {{ඒකවචනය|si|කොටි}}
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|leopard}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|ව්යාඝ්රයා}}
390jurytvn95u433436lt9db1byy63b
කමිටු
0
126523
196075
2024-12-04T15:15:26Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === ''[[කාර්ය]] [[ඉෂ්ට]] කරනුයේ, [[කම්]] + [[ඉටු]]'' > '''කමිටු''' === නාම පදය === {{si-noun}} # {{plural of|si|කමිටුව}} #: ''{{{2|පැනය විසඳනුව '''කමිටු''' කිහිපයක් පත් කෙරිණි.}}}'' <!-- ==== පරිවර්තන ==== {...' යොදමින් නව පිටුවක් තනන ලදි
196075
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[කාර්ය]] [[ඉෂ්ට]] කරනුයේ, [[කම්]] + [[ඉටු]]'' > '''කමිටු'''
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|කමිටුව}}
#: ''{{{2|පැනය විසඳනුව '''කමිටු''' කිහිපයක් පත් කෙරිණි.}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
kjpk8vvz0ydoiin7ix1b09iz2vkfh99
කොටි
0
126524
196081
2024-12-04T17:14:38Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === *''කොටු ඇතියේ, [[කොටු]] + [[ඉ]]'' > '''කොටි''' ([[නම්නමුව]]) *[[සකුව|සකුවෙන්]] '''කෝෂ්ටෘ''' > [[සිංහලය|සිංහලයට]] '''කොටි''' === නාම පදය === {{si-noun}} # [[නම්නමුව]] #: ''{{{2|'''කොටි''' + ය් + ආ > ක...' යොදමින් නව පිටුවක් තනන ලදි
196081
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
*''කොටු ඇතියේ, [[කොටු]] + [[ඉ]]'' > '''කොටි''' ([[නම්නමුව]])
*[[සකුව|සකුවෙන්]] '''කෝෂ්ටෘ''' > [[සිංහලය|සිංහලයට]] '''කොටි'''
=== නාම පදය ===
{{si-noun}}
# [[නම්නමුව]]
#: ''{{{2|'''කොටි''' + ය් + ආ > [[කොටියා]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# {{l|si|කොටියා}} යන්නෙහි නාම විශේෂණ පදය
#: ''{{{2|'''කොටි''' හිස}}}''
#: ''{{{2|'''කොටි''' රැල}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
3y5qsnrcn9k6ndcm91ac1811c7cixrp
196086
196081
2024-12-05T01:19:03Z
Lee
19
196086
wikitext
text/x-wiki
== සිංහල ==
{{විකිපීඩියා}}
=== නිරුක්තිය ===
*''කොටු ඇතියේ, [[කොටු]] + [[ඉ]]'' > '''කොටි''' ([[නම්නමුව]])
*[[සකුව|සකුවෙන්]] '''කෝෂ්ටෘ''' > [[සිංහලය|සිංහලයට]] '''කොටි'''
=== නාම පදය ===
{{si-noun}}
# [[නම්නමුව]]
#: ''{{{2|'''කොටි''' + ය් + ආ > [[කොටියා]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# {{l|si|කොටියා}} යන්නෙහි නාම විශේෂණ පදය
#: ''{{{2|'''කොටි''' හිස}}}''
#: ''{{{2|'''කොටි''' රැල}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
mdvx5qdc4qfufzj1pbev6jpfuu4kluq
196087
196086
2024-12-05T01:21:19Z
Lee
19
196087
wikitext
text/x-wiki
== සිංහල ==
{{විකිපීඩියා}}
=== නිරුක්තිය ===
{{etymon|id=කොටි (සත්තු)|si|sa>කෝෂ්ටෘ>කොටි (සත්තු)|tree=1}}
*''කොටු ඇතියේ, [[කොටු]] + [[ඉ]]'' > '''කොටි''' ([[නම්නමුව]])
*[[සකුව|සකුවෙන්]] '''කෝෂ්ටෘ''' > [[සිංහලය|සිංහලයට]] '''කොටි'''
=== නාම පදය ===
{{si-noun}}
# [[නම්නමුව]]
#: ''{{{2|'''කොටි''' + ය් + ආ > [[කොටියා]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# {{l|si|කොටියා}} යන්නෙහි නාම විශේෂණ පදය
#: ''{{{2|'''කොටි''' හිස}}}''
#: ''{{{2|'''කොටි''' රැල}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
ftdskgv85io43q01pmo44y51ih7qbg8
196088
196087
2024-12-05T01:21:37Z
Lee
19
196088
wikitext
text/x-wiki
== සිංහල ==
{{විකිපීඩියා}}
=== නිරුක්තිය ===
{{etymon|id=කොටි (සත්තු)|si|der|sa>කෝෂ්ටෘ>කොටි (සත්තු)|tree=1}}
*''කොටු ඇතියේ, [[කොටු]] + [[ඉ]]'' > '''කොටි''' ([[නම්නමුව]])
*[[සකුව|සකුවෙන්]] '''කෝෂ්ටෘ''' > [[සිංහලය|සිංහලයට]] '''කොටි'''
=== නාම පදය ===
{{si-noun}}
# [[නම්නමුව]]
#: ''{{{2|'''කොටි''' + ය් + ආ > [[කොටියා]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
# {{l|si|කොටියා}} යන්නෙහි නාම විශේෂණ පදය
#: ''{{{2|'''කොටි''' හිස}}}''
#: ''{{{2|'''කොටි''' රැල}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
5b7xkhbilinvnbfe9slvsysmo1z5wk4
සැකිල්ල:ඒකවචනය
10
126525
196089
2024-12-05T01:24:04Z
Lee
19
නිර්මාණය
196089
wikitext
text/x-wiki
#යළියොමුව [[Template:singular of]]
g1x0v1vcmbx05z2esmpnsvnq15z8rvc
සැකිල්ල:ඒක
10
126526
196090
2024-12-05T01:24:15Z
Lee
19
නිර්මාණය
196090
wikitext
text/x-wiki
#යළියොමුව [[Template:singular of]]
g1x0v1vcmbx05z2esmpnsvnq15z8rvc
සැකිල්ල:බහු
10
126527
196092
2024-12-05T01:26:20Z
Lee
19
නිර්මාණය
196092
wikitext
text/x-wiki
#යළියොමුව [[Template:plural of]]
gax306h3n9v5h1dxt011v8i3ywp3kpu
සැකිල්ල:බහුවචනය
10
126528
196093
2024-12-05T01:26:27Z
Lee
19
නිර්මාණය
196093
wikitext
text/x-wiki
#යළියොමුව [[Template:plural of]]
gax306h3n9v5h1dxt011v8i3ywp3kpu
tigers
0
126529
196094
2024-12-05T01:32:58Z
Lee
19
නිර්මාණය
196094
wikitext
text/x-wiki
{{also|Tigers}}
==English==
===Noun===
{{head|en|noun form}}
# {{plural of|en|tiger}}
==Danish==
===Noun===
{{head|da|noun form|g=c}}
# {{inflection of|da|tiger||indef|gen|s}}
==Swedish==
===Noun===
{{head|sv|noun form}}
# {{noun form of|sv|tiger||indef|gen|s}}
alxvasmc15fxxdp14dje7hl31yanto3
196117
196094
2024-12-05T02:12:17Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196117
wikitext
text/x-wiki
{{also|Tigers}}
== ඉංග්රීසි ==
=== නාම පදය ===
{{head|en|noun form}}
# {{plural of|en|tiger}}
== ඩෙන්මාර්ක ==
=== නාම පදය ===
{{head|da|noun form|g=c}}
# {{inflection of|da|tiger||indef|gen|s}}
== ස්වීඩන් ==
=== නාම පදය ===
{{head|sv|noun form}}
# {{noun form of|sv|tiger||indef|gen|s}}
cx5190jywuwshtcyi2zvxxbq3x0ztdc
ව්යාඝ්රයා
0
126530
196095
2024-12-05T01:37:09Z
Lee
19
නිර්මාණය
196095
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{rfe|si}}
=== නාම පදය ===
{{si-noun}}
# {{ඒකවචනය|si|ව්යාඝ්ර}}
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|tiger}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|කොටියා}}
by0rvg4w0yjwi56dmqvh88ijm6fo0hv
196101
196095
2024-12-05T01:43:59Z
Lee
19
196101
wikitext
text/x-wiki
== සිංහල ==
[[Image:Panthera tigris tigris.jpg|thumb|ව්යාඝ්රයා]]
{{විකිපීඩියා}}
=== නිරුක්තිය ===
{{rfe|si}}
=== නාම පදය ===
{{si-noun}}
# {{ඒකවචනය|si|ව්යාඝ්ර}}
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|tiger}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|කොටියා}}
penbp26b3crx4htqjth7num2fv72pvg
ව්යාඝ්ර
0
126531
196096
2024-12-05T01:40:26Z
Lee
19
නිර්මාණය
196096
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{etymon|id=ව්යාඝ්ර (සත්තු)|si|bor>sa>व्याघ्र>ව්යාඝ්ර (සත්තු)|tree=1}}
Borrowed from {{bor|si|sa|व्याघ्र}}
=== නාම පදය ===
{{si-noun}}
# {{rfdef|si}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
4i4bjo3u93a59f7xwrz6c3elro5t57t
196097
196096
2024-12-05T01:41:00Z
Lee
19
196097
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
{{etymon|id=ව්යාඝ්ර (සත්තු)|si|bor|sa>व्याघ्र>ව්යාඝ්ර (සත්තු)|tree=1}}
Borrowed from {{bor|si|sa|व्याघ्र}}
=== නාම පදය ===
{{si-noun}}
# {{rfdef|si}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
qpu00amq8lqgk84ig902fkzwsr86bwd
व्याघ्र
0
126532
196098
2024-12-05T01:41:18Z
Lee
19
නිර්මාණය
196098
wikitext
text/x-wiki
==Sanskrit==
{{wp|lang=sa|व्याघ्रः}}
===Alternative scripts===
{{sa-alt}}
===Etymology===
{{etymon|sa|id=tiger|af|unc|ine-pro>*weyh₁->chase|ine-pro>*gʰer->yellow}}
{{unk|sa}}; perhaps from {{inh|sa|inc-pro|*wiHaHagʰrás}}, from {{inh|sa|iir-pro|*wiHaHagʰrás}}, from {{inh|sa|ine-pro||*wih₁-h₂oh₂ogʰró-s}}, from {{m|ine-pro|*weyh₁-|t=to chase, pursue}} + {{m|ine-pro||*h₂o-h₂o-gʰr-ó-s}}, from {{m|ine-pro|*gʰer-|t=yellow, orange}}. Possible cognate with {{cog|grc|ὠχρός|t=ochre, pale}}.<ref>{{R:grc:Boisacq|ωχρός|page=1085}}</ref><ref>{{R:ine:LIPP|vol=II|page=329}}</ref>
===Pronunciation===
{{sa-IPA|a=2}}
===Noun===
{{sa-noun|g=m|tr=vyāghrá}}<ref>{{R:Cappeller Sanskrit-English|column=2|page=529|व्याघ्र॑}}</ref><ref>{{R:MCD|303}}</ref><ref>{{R:MW|1036/2|head=Vyāghrá}}</ref>
# a [[tiger]] (not in {{sa-a|RV}}, but in {{sa-a|AV}}, often mentioned with the lion; according to {{sa-a|R}} III, 30, 26, {{m|sa|शार्दूली}} is the mythical mother of tigers; but in {{m|sa|वह्निपुराण|tr=vahni-purāṇa}} they are said to be the offspring of {{m|sa|कश्यप}}'s wife {{m|sa|दंष्ट्रा}}; compare {{m|sa|चित्रव्याघ्र|tr=citra-vyāghra}}) ({{sa-a|AV}} etc.)
# any pre-eminently strong or noble person, "a tiger among men" (compare {{m|sa|ऋषभ}}, {{m|sa|सिंह}})
# {{taxlink|Millettia pinnata|species}} ({{sa-a|L}})
# a red variety of the [[castor-oil]] [[plant]] ({{sa-a|L}})
# name of a [[rakshasa|rākṣasa]] ({{sa-a|VP}})
# name of a king ({{sa-a|Rājat}})
# name of various authors (also abridged from {{m|sa|व्याघ्रपद्|tr=vyāghra-pad}}) ({{sa-a|Cat}})
====Declension====
{{sa-decl-noun-m|vyāghrá}}
====Descendants====
* Dardic:
** {{desc|scl|بگ|tr=băg}}
* {{desc|pi|byaggha|vyaggha}}
* {{desc|pra|𑀯𑀕𑁆𑀖}}
** Central:
*** {{desctree|pra-sau|𑀯𑀕𑁆𑀖}}
*** {{desc|pra-ard|𑀯𑀕𑁆𑀖}}
**** {{desc|awa|बाघ}}
** Eastern:
*** {{desc|pra-mag|*𑀩𑀸𑀕𑁆𑀖}}
**** {{desc|as|বাঘ}}
**** {{desc|bn|বাঘ}}
**** {{desc|bh}}
***** {{desc|bho|-}} bāgh
*****: {{desc|bho|बाघ|tr=-|sclb=1}}
*****: {{desc|bho|𑂥𑂰𑂐|tr=-|sclb=1}}
***** {{desc|mai|बाघ}}
**** {{desc|bpy|বাঘ}}
**** {{desc|or|ବାଘ}}
**** {{desc|rhg|bag}}
**** {{desc|syl|ꠛꠣꠊ}}
**** {{desc|tnv|𑄝𑄊𑄴|tr=bagh}}
** Northern:
*** {{desc|pra-kha}}
**** Central Pahari:
***** {{desc|gbm|बाग}}
***** {{desc|kfy|बाग|tr=bāg}}
**** Eastern Pahari:
***** {{desc|ne|बाघ|बाग}}
**** Western Pahari:
***** {{desc|bhd|ढ्ळाह्ग|ढ्ळाग}}
***** {{desc|cdj|ब्राह्ग}}
***** {{desc|xnr|बराघ}}
** Northwestern:
*** {{desc|pra-pai}}
**** {{desc|inc-ata}}
***** {{desc|pa|-}} bāgh
*****: {{desc|pa|ਬਾਘ|tr=-|sclb=1}}
*****: {{desc|pa|باگھ|tr=-|sclb=1}}
**** {{desc|inc-avr}}
***** {{desc|sd|-}} vāghu
*****: {{desc|sd|وَاگهُ|sclb=1}}
*****: {{desc|sd|वाघु|sclb=1}}
****** {{desc|jdg||tr=brāgg}}
** Southern:
*** {{desc|pra-hel}}
**** {{desc|dv|ވަގު}}
**** {{desc|si|වග}}
*** {{desc|pra-mah|𑀯𑀕𑁆𑀖}}
**** {{desc|kok|-}} vāgu
****: {{desc|kok|वागु|tr=-|sclb=1}}
****: {{desc|kok|vagu|sclb=1}}
****: {{desc|kok|ವಾಗು|tr=-|sclb=1}}
**** {{desc|mr|वाघ}}
'''Borrowed terms'''
* {{desc|xcl|վագր|bor=1}} {{q|perhaps via an Iranian borrowing}}
* {{desc|oge|ვიგრი|bor=1}} {{q|perhaps via an Iranian borrowing}}
* {{desc|ml|വ്യാഘ്രം|bor=1}}
* {{desc|te|వ్యాఘ్రము|bor=1}}
* {{desc|en|Viagra|bor=1|unc=1}}
===References===
<references />
* {{R:CDIAL|vyaghra|12193|page=706}}
{{C|sa|Felids}}
h3yqyewwnzs6k1tz9ig2z3lnoecszbc
196116
196098
2024-12-05T02:12:07Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196116
wikitext
text/x-wiki
== සංස්කෘත ==
{{wp|lang=sa|व्याघ्रः}}
=== වෙනත් අක්ෂරක්රම ===
{{sa-alt}}
=== නිරුක්තිය ===
{{etymon|sa|id=tiger|af|unc|ine-pro>*weyh₁->chase|ine-pro>*gʰer->yellow}}
{{unk|sa}}; perhaps from {{inh|sa|inc-pro|*wiHaHagʰrás}}, from {{inh|sa|iir-pro|*wiHaHagʰrás}}, from {{inh|sa|ine-pro||*wih₁-h₂oh₂ogʰró-s}}, from {{m|ine-pro|*weyh₁-|t=to chase, pursue}} + {{m|ine-pro||*h₂o-h₂o-gʰr-ó-s}}, from {{m|ine-pro|*gʰer-|t=yellow, orange}}. Possible cognate with {{cog|grc|ὠχρός|t=ochre, pale}}.<ref>{{R:grc:Boisacq|ωχρός|page=1085}}</ref><ref>{{R:ine:LIPP|vol=II|page=329}}</ref>
=== උච්චාරණය ===
{{sa-IPA|a=2}}
=== නාම පදය ===
{{sa-noun|g=m|tr=vyāghrá}}<ref>{{R:Cappeller Sanskrit-English|column=2|page=529|व्याघ्र॑}}</ref><ref>{{R:MCD|303}}</ref><ref>{{R:MW|1036/2|head=Vyāghrá}}</ref>
# a [[tiger]] (not in {{sa-a|RV}}, but in {{sa-a|AV}}, often mentioned with the lion; according to {{sa-a|R}} III, 30, 26, {{m|sa|शार्दूली}} is the mythical mother of tigers; but in {{m|sa|वह्निपुराण|tr=vahni-purāṇa}} they are said to be the offspring of {{m|sa|कश्यप}}'s wife {{m|sa|दंष्ट्रा}}; compare {{m|sa|चित्रव्याघ्र|tr=citra-vyāghra}}) ({{sa-a|AV}} etc.)
# any pre-eminently strong or noble person, "a tiger among men" (compare {{m|sa|ऋषभ}}, {{m|sa|सिंह}})
# {{taxlink|Millettia pinnata|species}} ({{sa-a|L}})
# a red variety of the [[castor-oil]] [[plant]] ({{sa-a|L}})
# name of a [[rakshasa|rākṣasa]] ({{sa-a|VP}})
# name of a king ({{sa-a|Rājat}})
# name of various authors (also abridged from {{m|sa|व्याघ्रपद्|tr=vyāghra-pad}}) ({{sa-a|Cat}})
==== වරනැඟීම ====
{{sa-decl-noun-m|vyāghrá}}
====Descendants====
* Dardic:
** {{desc|scl|بگ|tr=băg}}
* {{desc|pi|byaggha|vyaggha}}
* {{desc|pra|𑀯𑀕𑁆𑀖}}
** Central:
*** {{desctree|pra-sau|𑀯𑀕𑁆𑀖}}
*** {{desc|pra-ard|𑀯𑀕𑁆𑀖}}
**** {{desc|awa|बाघ}}
** Eastern:
*** {{desc|pra-mag|*𑀩𑀸𑀕𑁆𑀖}}
**** {{desc|as|বাঘ}}
**** {{desc|bn|বাঘ}}
**** {{desc|bh}}
***** {{desc|bho|-}} bāgh
*****: {{desc|bho|बाघ|tr=-|sclb=1}}
*****: {{desc|bho|𑂥𑂰𑂐|tr=-|sclb=1}}
***** {{desc|mai|बाघ}}
**** {{desc|bpy|বাঘ}}
**** {{desc|or|ବାଘ}}
**** {{desc|rhg|bag}}
**** {{desc|syl|ꠛꠣꠊ}}
**** {{desc|tnv|𑄝𑄊𑄴|tr=bagh}}
** Northern:
*** {{desc|pra-kha}}
**** Central Pahari:
***** {{desc|gbm|बाग}}
***** {{desc|kfy|बाग|tr=bāg}}
**** Eastern Pahari:
***** {{desc|ne|बाघ|बाग}}
**** Western Pahari:
***** {{desc|bhd|ढ्ळाह्ग|ढ्ळाग}}
***** {{desc|cdj|ब्राह्ग}}
***** {{desc|xnr|बराघ}}
** Northwestern:
*** {{desc|pra-pai}}
**** {{desc|inc-ata}}
***** {{desc|pa|-}} bāgh
*****: {{desc|pa|ਬਾਘ|tr=-|sclb=1}}
*****: {{desc|pa|باگھ|tr=-|sclb=1}}
**** {{desc|inc-avr}}
***** {{desc|sd|-}} vāghu
*****: {{desc|sd|وَاگهُ|sclb=1}}
*****: {{desc|sd|वाघु|sclb=1}}
****** {{desc|jdg||tr=brāgg}}
** Southern:
*** {{desc|pra-hel}}
**** {{desc|dv|ވަގު}}
**** {{desc|si|වග}}
*** {{desc|pra-mah|𑀯𑀕𑁆𑀖}}
**** {{desc|kok|-}} vāgu
****: {{desc|kok|वागु|tr=-|sclb=1}}
****: {{desc|kok|vagu|sclb=1}}
****: {{desc|kok|ವಾಗು|tr=-|sclb=1}}
**** {{desc|mr|वाघ}}
'''Borrowed terms'''
* {{desc|xcl|վագր|bor=1}} {{q|perhaps via an Iranian borrowing}}
* {{desc|oge|ვიგრი|bor=1}} {{q|perhaps via an Iranian borrowing}}
* {{desc|ml|വ്യാഘ്രം|bor=1}}
* {{desc|te|వ్యాఘ్రము|bor=1}}
* {{desc|en|Viagra|bor=1|unc=1}}
=== මූලාශ්ර ===
<references />
* {{R:CDIAL|vyaghra|12193|page=706}}
{{C|sa|Felids}}
p8n0opcsmbrun87mxvcqu405wj83sm1
τίγρις
0
126533
196099
2024-12-05T01:42:30Z
Lee
19
නිර්මාණය
196099
wikitext
text/x-wiki
{{also|Τίγρις}}
==Ancient Greek==
===Etymology===
From an {{der|grc|iir|-}} language. Some suppose a relation to {{cog|ae|𐬝𐬌𐬔𐬭𐬌||arrow}}, {{cog|peo|𐎫𐎥𐎼||pointed, sharp}}. According to Watkins, ultimately from {{der|grc|ine-pro|*(s)teyg-|t=to point, stick}}.<ref>{{R:American_Heritage_Dictionary|tiger}}</ref>
===Pronunciation===
{{grc-IPA|τῐ́γρῐς}}
===Noun===
{{grc-noun|head=τῐ́γρῐς|τῐ́γρεως|f|third}}
# [[tiger]]
====Inflection====
{{grc-decl|form=F-full|τῐ́γρῐς|τῐ́γρεως}}
====Descendants====
* {{desc|arc|טיגריס}}
** {{desc|syc|ܛܝܓܪܝܣ}}
* {{desc|el|τίγρη}}
* {{desc|he|טיגריס}}
* {{desc|la|tigris|bor=yes}}
** {{desc|en|tiger|bor=yes}}
** {{desc|fr|tigre|bor=yes}}
* {{desctree|ota|تكیر|tr=tekir|bor=1}}
* {{desc|ru|тигр}}
===References===
<references/>
===Further reading===
* {{R:LSJ}}
* {{R:Middle Liddell}}
* {{R:Bailly}}
* {{R:Woodhouse|874}}
{{C|grc|Panthers}}
==Greek==
===Noun===
{{el-noun|f|}}
# {{el-Katharevousa form of|τίγρη|gloss=tiger}}
89x36h9nobkdfqrny7z2t4usogiw95t
196115
196099
2024-12-05T02:11:57Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196115
wikitext
text/x-wiki
{{also|Τίγρις}}
== පුරාතන ග්රීක ==
=== නිරුක්තිය ===
From an {{der|grc|iir|-}} language. Some suppose a relation to {{cog|ae|𐬝𐬌𐬔𐬭𐬌||arrow}}, {{cog|peo|𐎫𐎥𐎼||pointed, sharp}}. According to Watkins, ultimately from {{der|grc|ine-pro|*(s)teyg-|t=to point, stick}}.<ref>{{R:American_Heritage_Dictionary|tiger}}</ref>
=== උච්චාරණය ===
{{grc-IPA|τῐ́γρῐς}}
=== නාම පදය ===
{{grc-noun|head=τῐ́γρῐς|τῐ́γρεως|f|third}}
# [[tiger]]
====Inflection====
{{grc-decl|form=F-full|τῐ́γρῐς|τῐ́γρεως}}
====Descendants====
* {{desc|arc|טיגריס}}
** {{desc|syc|ܛܝܓܪܝܣ}}
* {{desc|el|τίγρη}}
* {{desc|he|טיגריס}}
* {{desc|la|tigris|bor=yes}}
** {{desc|en|tiger|bor=yes}}
** {{desc|fr|tigre|bor=yes}}
* {{desctree|ota|تكیر|tr=tekir|bor=1}}
* {{desc|ru|тигр}}
=== මූලාශ්ර ===
<references/>
=== වැඩිදුර් කියවීම සඳහා ===
* {{R:LSJ}}
* {{R:Middle Liddell}}
* {{R:Bailly}}
* {{R:Woodhouse|874}}
{{C|grc|Panthers}}
== ග්රීක ==
=== නාම පදය ===
{{el-noun|f|}}
# {{el-Katharevousa form of|τίγρη|gloss=tiger}}
cxk2jnfy2218ibyvyhu3wootc3ajcv3
Reconstruction:ප්රොටෝ-ඉන්දු-යුරෝපීය/(s)teyg-
0
126534
196100
2024-12-05T01:42:57Z
Lee
19
නිර්මාණය
196100
wikitext
text/x-wiki
{{reconstructed}}
==Proto-Indo-European==
{{etymon|ine-pro|id=to be sharp}}
===Root===
{{ine-root}}<ref>{{R:ine:IEW|page=1016}}</ref><ref name="LIV">{{R:ine:LIV|head=*(s)tei̯g-|page=592}}</ref><ref>{{R:grc:Beekes|head=στίζω|page=1405|volume=I}}</ref><ref>{{R:inc:IAIL|tej}}</ref><ref>{{R:ine:Mallory:2006|372}}</ref>
# to be [[sharp]]
# to [[sting]]
====Derived terms====
{{rootsee}}
* {{l|ine-pro||*(s)tig-yé-ti|pos=ye-present}}<ref name="LIV" />
** {{desc|grk-pro|*stiďďō}}
*** {{desc|grc|στίζω}}
* {{l|ine-pro||*(s)téyg-e-tor}}
** {{desc|iir-pro|*táyǰatay}}
*** {{desc|inc-pro|*táyȷ́atay}}
**** {{desc|sa|तेजते|tr=téjate}}
** {{desc|itc-pro|*steigō}}<ref>{{R:itc:EDL|head=īnstīgāre|page=305}}</ref>
*** {{desc|la|instigo|alt=(īn-)stīgō}}
* {{l|ine-pro||*(s)tig-e-ti}}<ref>{{R:gem:EDPG|*stekan-|476}}</ref>
** {{desc|gem-pro|*stikaną}}
* {{l|ine-pro||*(s)téyg-os ~ *(s)téyg-es-os}}
** {{desc|iir-pro|*táyǰas}}
*** {{desc|inc-pro|*táyȷ́as}}
**** {{desc|sa|तेजस्|tr=téjas}}
* {{l|ine-pro||*(s)tig-tó-s}}
** {{desc|iir-pro|*tiktás}}
*** {{desc|inc-pro|*tiktás}}
**** {{desc|sa|तिक्त|tr=tiktá}} {{see desc}}
*** {{desc|os|цыхт|tr=cyxt}}
* {{l|ine-pro||*(s)tig-mó-s}}
** {{desc|iir-pro|*tigmás}}
*** {{desc|inc-pro|*tigmás}}
**** {{desc|sa|तिग्म|tr=tigmá}}
* {{l|ine-pro||*(s)tig-ró-s}}
** {{desc|iir-pro|*tigrás}}
*** {{desc|ira-pro|*tigráh}}
**** {{desc|ae|𐬙𐬌𐬖𐬭𐬀}}
**** {{desc|peo|𐎫𐎡𐎥𐎼|ts=tigra}}
* {{l|ine-pro||*(s)téyg-yōs ~ *(s)tig-is-és}}
** {{desc|iir-pro|*táyǰyas}}
*** {{desc|inc-pro|*táyȷ́yas}}
**** {{desc|sa|तेजीयस्|tr=téjīyas}}
*** {{desc|ira-pro|*táyǰyah}}<ref>{{R:inc:IAIL|tigmá-}}</ref>
**** {{desc|pal|tr=tyc|ts=tēz}}
***** {{desc|fa|تیز|tr=tiz}}
**** Kurdish:
****: {{desc|kmr|tîj}}, {{l|kmr|tûj}}
****: {{desc|ckb|تیژ}}, {{l|ckb|تێژ}}
* (s)téyg-mn̥ ~ *(s)tig-mén-s
** {{desc|grk-pro}}
*** {{desc|grc|στῐ́γμᾰ}}
; Unsorted formations
* {{desc|gem-pro|*þistilaz}}
* {{desc|iir-pro|*tikšnás}}
** {{desc|inc-pro|*tikṣṇás}}
*** {{desc|sa|तीक्ष्ण|tr=tīkṣṇá}}
===References===
<references/>
cmch6xc2jgh1w8lw1kguso4i61m860w
196114
196100
2024-12-05T02:11:47Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196114
wikitext
text/x-wiki
{{reconstructed}}
== ප්රොටෝ-ඉන්දු-යුරෝපීය ==
{{etymon|ine-pro|id=to be sharp}}
===Root===
{{ine-root}}<ref>{{R:ine:IEW|page=1016}}</ref><ref name="LIV">{{R:ine:LIV|head=*(s)tei̯g-|page=592}}</ref><ref>{{R:grc:Beekes|head=στίζω|page=1405|volume=I}}</ref><ref>{{R:inc:IAIL|tej}}</ref><ref>{{R:ine:Mallory:2006|372}}</ref>
# to be [[sharp]]
# to [[sting]]
==== ව්යුත්පන්න යෙදුම් ====
{{rootsee}}
* {{l|ine-pro||*(s)tig-yé-ti|pos=ye-present}}<ref name="LIV" />
** {{desc|grk-pro|*stiďďō}}
*** {{desc|grc|στίζω}}
* {{l|ine-pro||*(s)téyg-e-tor}}
** {{desc|iir-pro|*táyǰatay}}
*** {{desc|inc-pro|*táyȷ́atay}}
**** {{desc|sa|तेजते|tr=téjate}}
** {{desc|itc-pro|*steigō}}<ref>{{R:itc:EDL|head=īnstīgāre|page=305}}</ref>
*** {{desc|la|instigo|alt=(īn-)stīgō}}
* {{l|ine-pro||*(s)tig-e-ti}}<ref>{{R:gem:EDPG|*stekan-|476}}</ref>
** {{desc|gem-pro|*stikaną}}
* {{l|ine-pro||*(s)téyg-os ~ *(s)téyg-es-os}}
** {{desc|iir-pro|*táyǰas}}
*** {{desc|inc-pro|*táyȷ́as}}
**** {{desc|sa|तेजस्|tr=téjas}}
* {{l|ine-pro||*(s)tig-tó-s}}
** {{desc|iir-pro|*tiktás}}
*** {{desc|inc-pro|*tiktás}}
**** {{desc|sa|तिक्त|tr=tiktá}} {{see desc}}
*** {{desc|os|цыхт|tr=cyxt}}
* {{l|ine-pro||*(s)tig-mó-s}}
** {{desc|iir-pro|*tigmás}}
*** {{desc|inc-pro|*tigmás}}
**** {{desc|sa|तिग्म|tr=tigmá}}
* {{l|ine-pro||*(s)tig-ró-s}}
** {{desc|iir-pro|*tigrás}}
*** {{desc|ira-pro|*tigráh}}
**** {{desc|ae|𐬙𐬌𐬖𐬭𐬀}}
**** {{desc|peo|𐎫𐎡𐎥𐎼|ts=tigra}}
* {{l|ine-pro||*(s)téyg-yōs ~ *(s)tig-is-és}}
** {{desc|iir-pro|*táyǰyas}}
*** {{desc|inc-pro|*táyȷ́yas}}
**** {{desc|sa|तेजीयस्|tr=téjīyas}}
*** {{desc|ira-pro|*táyǰyah}}<ref>{{R:inc:IAIL|tigmá-}}</ref>
**** {{desc|pal|tr=tyc|ts=tēz}}
***** {{desc|fa|تیز|tr=tiz}}
**** Kurdish:
****: {{desc|kmr|tîj}}, {{l|kmr|tûj}}
****: {{desc|ckb|تیژ}}, {{l|ckb|تێژ}}
* (s)téyg-mn̥ ~ *(s)tig-mén-s
** {{desc|grk-pro}}
*** {{desc|grc|στῐ́γμᾰ}}
; Unsorted formations
* {{desc|gem-pro|*þistilaz}}
* {{desc|iir-pro|*tikšnás}}
** {{desc|inc-pro|*tikṣṇás}}
*** {{desc|sa|तीक्ष्ण|tr=tīkṣṇá}}
=== මූලාශ්ර ===
<references/>
j48ie1cv20cc96krkno9mbzb086r82r
196123
196114
2024-12-05T05:08:48Z
Lee
19
196123
wikitext
text/x-wiki
{{reconstructed}}
== ප්රොටෝ-ඉන්දු-යුරෝපීය ==
{{etymon|ine-pro|id=to be sharp}}
===Root===
{{ine-root}}<ref>{{R:ine:IEW|page=1016}}</ref><ref name="LIV">{{R:ine:LIV|head=*(s)tei̯g-|page=592}}</ref><ref>{{R:grc:Beekes|head=στίζω|page=1405|volume=I}}</ref><ref>{{R:inc:IAIL|tej}}</ref><ref>{{R:ine:Mallory:2006|372}}</ref>
# to be [[sharp]]
# to [[sting]]
==== ව්යුත්පන්න යෙදුම් ====
{{rootsee}}
* {{l|ine-pro||*(s)tig-yé-ti|pos=ye-present}}<ref name="LIV" />
** {{desc|grk-pro|*stiďďō}}
*** {{desc|grc|στίζω}}
* {{l|ine-pro||*(s)téyg-e-tor}}
** {{desc|iir-pro|*táyǰatay}}
*** {{desc|inc-pro|*táyȷ́atay}}
**** {{desc|sa|तेजते|tr=téjate}}
** {{desc|itc-pro|*steigō}}<ref>{{R:itc:EDL|head=īnstīgāre|page=305}}</ref>
*** {{desc|la|instigo|alt=(īn-)stīgō}}
* {{l|ine-pro||*(s)tig-e-ti}}<ref>{{R:gem:EDPG|*stekan-|476}}</ref>
** {{desc|gem-pro|*stikaną}}
* {{l|ine-pro||*(s)téyg-os ~ *(s)téyg-es-os}}
** {{desc|iir-pro|*táyǰas}}
*** {{desc|inc-pro|*táyȷ́as}}
**** {{desc|sa|तेजस्|tr=téjas}}
* {{l|ine-pro||*(s)tig-tó-s}}
** {{desc|iir-pro|*tiktás}}
*** {{desc|inc-pro|*tiktás}}
**** {{desc|sa|तिक्त|tr=tiktá}} {{see desc}}
*** {{desc|os|цыхт|tr=cyxt}}
* {{l|ine-pro||*(s)tig-mó-s}}
** {{desc|iir-pro|*tigmás}}
*** {{desc|inc-pro|*tigmás}}
**** {{desc|sa|तिग्म|tr=tigmá}}
* {{l|ine-pro||*(s)tig-ró-s}}
** {{desc|iir-pro|*tigrás}}
*** {{desc|ira-pro|*tigráh}}
**** {{desc|ae|𐬙𐬌𐬖𐬭𐬀}}
**** {{desc|peo|𐎫𐎡𐎥𐎼|ts=tigra}}
* {{l|ine-pro||*(s)téyg-yōs ~ *(s)tig-is-és}}
** {{desc|iir-pro|*táyǰyas}}
*** {{desc|inc-pro|*táyȷ́yas}}
**** {{desc|sa|तेजीयस्|tr=téjīyas}}
*** {{desc|ira-pro|*táyǰyah}}<ref>{{R:inc:IAIL|tigmá-}}</ref>
**** {{desc|pal|tr=tyc|ts=tēz}}
***** {{desc|fa|تیز|tr=tiz}}
**** Kurdish:
****: {{desc|kmr|tîj}}, {{l|kmr|tûj}}
****: {{desc|ckb|تیژ}}, {{l|ckb|تێژ}}
* (s)téyg-mn̥ ~ *(s)tig-mén-s
** {{desc|grk-pro}}
*** {{desc|grc|στῐ́γμᾰ}}
; Unsorted formations
* {{desc|gem-pro|*þistilaz}}
* {{desc|iir-pro|*tikšnás}}
** {{desc|inc-pro|*tikṣṇás}}
*** {{desc|sa|तीक्ष्ण|tr=tīkṣṇá}}
=== මූලාශ්ර ===
<references/>
[[en:Reconstruction:Proto-Indo-European/(s)teyg-]]
5f8q3dq2cqbpesjzna18orhht8hg9tz
196124
196123
2024-12-05T05:09:30Z
Lee
19
Lee විසින් [[Reconstruction:Proto-Indo-European/(s)teyg-]] සිට [[Reconstruction:ප්රොටෝ-ඉන්දු-යුරෝපීය/(s)teyg-]] වෙත පිටුව ගෙන යන ලදී
196123
wikitext
text/x-wiki
{{reconstructed}}
== ප්රොටෝ-ඉන්දු-යුරෝපීය ==
{{etymon|ine-pro|id=to be sharp}}
===Root===
{{ine-root}}<ref>{{R:ine:IEW|page=1016}}</ref><ref name="LIV">{{R:ine:LIV|head=*(s)tei̯g-|page=592}}</ref><ref>{{R:grc:Beekes|head=στίζω|page=1405|volume=I}}</ref><ref>{{R:inc:IAIL|tej}}</ref><ref>{{R:ine:Mallory:2006|372}}</ref>
# to be [[sharp]]
# to [[sting]]
==== ව්යුත්පන්න යෙදුම් ====
{{rootsee}}
* {{l|ine-pro||*(s)tig-yé-ti|pos=ye-present}}<ref name="LIV" />
** {{desc|grk-pro|*stiďďō}}
*** {{desc|grc|στίζω}}
* {{l|ine-pro||*(s)téyg-e-tor}}
** {{desc|iir-pro|*táyǰatay}}
*** {{desc|inc-pro|*táyȷ́atay}}
**** {{desc|sa|तेजते|tr=téjate}}
** {{desc|itc-pro|*steigō}}<ref>{{R:itc:EDL|head=īnstīgāre|page=305}}</ref>
*** {{desc|la|instigo|alt=(īn-)stīgō}}
* {{l|ine-pro||*(s)tig-e-ti}}<ref>{{R:gem:EDPG|*stekan-|476}}</ref>
** {{desc|gem-pro|*stikaną}}
* {{l|ine-pro||*(s)téyg-os ~ *(s)téyg-es-os}}
** {{desc|iir-pro|*táyǰas}}
*** {{desc|inc-pro|*táyȷ́as}}
**** {{desc|sa|तेजस्|tr=téjas}}
* {{l|ine-pro||*(s)tig-tó-s}}
** {{desc|iir-pro|*tiktás}}
*** {{desc|inc-pro|*tiktás}}
**** {{desc|sa|तिक्त|tr=tiktá}} {{see desc}}
*** {{desc|os|цыхт|tr=cyxt}}
* {{l|ine-pro||*(s)tig-mó-s}}
** {{desc|iir-pro|*tigmás}}
*** {{desc|inc-pro|*tigmás}}
**** {{desc|sa|तिग्म|tr=tigmá}}
* {{l|ine-pro||*(s)tig-ró-s}}
** {{desc|iir-pro|*tigrás}}
*** {{desc|ira-pro|*tigráh}}
**** {{desc|ae|𐬙𐬌𐬖𐬭𐬀}}
**** {{desc|peo|𐎫𐎡𐎥𐎼|ts=tigra}}
* {{l|ine-pro||*(s)téyg-yōs ~ *(s)tig-is-és}}
** {{desc|iir-pro|*táyǰyas}}
*** {{desc|inc-pro|*táyȷ́yas}}
**** {{desc|sa|तेजीयस्|tr=téjīyas}}
*** {{desc|ira-pro|*táyǰyah}}<ref>{{R:inc:IAIL|tigmá-}}</ref>
**** {{desc|pal|tr=tyc|ts=tēz}}
***** {{desc|fa|تیز|tr=tiz}}
**** Kurdish:
****: {{desc|kmr|tîj}}, {{l|kmr|tûj}}
****: {{desc|ckb|تیژ}}, {{l|ckb|تێژ}}
* (s)téyg-mn̥ ~ *(s)tig-mén-s
** {{desc|grk-pro}}
*** {{desc|grc|στῐ́γμᾰ}}
; Unsorted formations
* {{desc|gem-pro|*þistilaz}}
* {{desc|iir-pro|*tikšnás}}
** {{desc|inc-pro|*tikṣṇás}}
*** {{desc|sa|तीक्ष्ण|tr=tīkṣṇá}}
=== මූලාශ්ර ===
<references/>
[[en:Reconstruction:Proto-Indo-European/(s)teyg-]]
5f8q3dq2cqbpesjzna18orhht8hg9tz
tiger
0
126535
196104
2024-12-05T01:56:20Z
Lee
19
නිර්මාණය
196104
wikitext
text/x-wiki
{{also|Tiger|TIGER}}
==English==
[[Image:Panthera tigris tigris.jpg|thumb|Siberian tiger]]
===Alternative forms===
* {{alter|en|tigre||obsolete}}
* {{alter|en|tyger||dated}}
===Etymology 1===
From {{inh|en|enm|tygre}}, in part from {{inh|en|ang|tigras}} (pl.), in part from {{der|en|xno|-}} {{m|fro|tigre}}, both from {{der|en|la|tigris}}, from {{der|en|grc|τίγρις}}, from {{der|en|ira|-}} (compare {{cog|ae|𐬙𐬌𐬔𐬭𐬌|t=arrow}}, {{m|ae|𐬙𐬌𐬖𐬭𐬀|t=pointed}}). Ultimately from {{der|en|ine-pro|*(s)teyg-|t=to pierce, prick, be sharp}}. Compare English {{m|en|stick}}.
====Pronunciation====
* {{enPR|tī'gər|a=GenAm}}, {{IPA|en|/ˈtaɪɡɚ/}}
* {{IPA|en|[ˈtʌɪɡɚ]|a=CA,Inland North,New England,some speakers}}
* {{IPA|en|/ˈtaɪɡə/|a=RP}}
* {{audio|en|en-us-tiger.ogg|a=US}}
* {{rhymes|en|aɪɡə(ɹ)|s=2}}
* {{homophones|en|taiga|aa=non-rhotic}}
====Noun====
{{en-noun}}
# {{senseid|en|Q19939}}{{taxfmt|Panthera tigris|species}}, [[ව්යාඝ්රයා]].
#* {{RQ:Spenser Faerie Queene|book=II|canto=IX|stanza=14|page=311|passage=For with ſuch puiſſance and impetuous maine / Thoſe Champions broke on them, that forſt the fly, / Like ſcattered Sheepe, whenas the Shepherds ſwaine / A Lyon and a '''Tigre''' doth eſpye, / With greedy pace forth ruſhing from the foreſt nye.}}
#: {{hyper|en|felid}}
#: {{hypo|en|tiger cub|tigress}}
## A [[male]] tiger; as opposed to a [[tigress]].
##: {{coord|en|tigress}}
{{cln|en|autohyponyms|terms of address}}
{{C|en|Dragonflies and damselflies|Noctuoid moths|Panthers|People|Danaine butterflies}}
==Middle English==
===Noun===
{{enm-noun}}
# {{alt form|enm|tygre}}
==Old English==
===Etymology===
{{dercat|ang|la|grc}}
From {{inh|ang|gmw-pro|*tīgr|t=tiger}}.
===Pronunciation===
* {{ang-IPA|tiger}}
===Noun===
{{ang-noun|m|tigras}}
# [[#English|tiger]]
====Declension====
{{ang-decl-noun-a-m|tigr|nomsg=tiger}}
====Derived terms====
* {{l|ang|tigrisċ}}
====Descendants====
* {{desctree|enm|tygre|qq=partially from Old French}}
{{C|ang|Felids}}
4o4nkfbn3g613tdfo0kv5l4dtoumuy5
196113
196104
2024-12-05T02:11:37Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196113
wikitext
text/x-wiki
{{also|Tiger|TIGER}}
== ඉංග්රීසි ==
[[Image:Panthera tigris tigris.jpg|thumb|Siberian tiger]]
=== වෙනත් ආකාර ===
* {{alter|en|tigre||obsolete}}
* {{alter|en|tyger||dated}}
=== නිරුක්තිය 1 ===
From {{inh|en|enm|tygre}}, in part from {{inh|en|ang|tigras}} (pl.), in part from {{der|en|xno|-}} {{m|fro|tigre}}, both from {{der|en|la|tigris}}, from {{der|en|grc|τίγρις}}, from {{der|en|ira|-}} (compare {{cog|ae|𐬙𐬌𐬔𐬭𐬌|t=arrow}}, {{m|ae|𐬙𐬌𐬖𐬭𐬀|t=pointed}}). Ultimately from {{der|en|ine-pro|*(s)teyg-|t=to pierce, prick, be sharp}}. Compare English {{m|en|stick}}.
==== උච්චාරණය ====
* {{enPR|tī'gər|a=GenAm}}, {{IPA|en|/ˈtaɪɡɚ/}}
* {{IPA|en|[ˈtʌɪɡɚ]|a=CA,Inland North,New England,some speakers}}
* {{IPA|en|/ˈtaɪɡə/|a=RP}}
* {{audio|en|en-us-tiger.ogg|a=US}}
* {{rhymes|en|aɪɡə(ɹ)|s=2}}
* {{homophones|en|taiga|aa=non-rhotic}}
==== නාම පදය ====
{{en-noun}}
# {{senseid|en|Q19939}}{{taxfmt|Panthera tigris|species}}, [[ව්යාඝ්රයා]].
#* {{RQ:Spenser Faerie Queene|book=II|canto=IX|stanza=14|page=311|passage=For with ſuch puiſſance and impetuous maine / Thoſe Champions broke on them, that forſt the fly, / Like ſcattered Sheepe, whenas the Shepherds ſwaine / A Lyon and a '''Tigre''' doth eſpye, / With greedy pace forth ruſhing from the foreſt nye.}}
#: {{hyper|en|felid}}
#: {{hypo|en|tiger cub|tigress}}
## A [[male]] tiger; as opposed to a [[tigress]].
##: {{coord|en|tigress}}
{{cln|en|autohyponyms|terms of address}}
{{C|en|Dragonflies and damselflies|Noctuoid moths|Panthers|People|Danaine butterflies}}
== මධ්යකාලීන ඉංග්රීසි ==
=== නාම පදය ===
{{enm-noun}}
# {{alt form|enm|tygre}}
== පුරාතන ඉංග්රීසි ==
=== නිරුක්තිය ===
{{dercat|ang|la|grc}}
From {{inh|ang|gmw-pro|*tīgr|t=tiger}}.
=== උච්චාරණය ===
* {{ang-IPA|tiger}}
=== නාම පදය ===
{{ang-noun|m|tigras}}
# [[#English|tiger]]
==== වරනැඟීම ====
{{ang-decl-noun-a-m|tigr|nomsg=tiger}}
==== ව්යුත්පන්න යෙදුම් ====
* {{l|ang|tigrisċ}}
====Descendants====
* {{desctree|enm|tygre|qq=partially from Old French}}
{{C|ang|Felids}}
cyad0phoppaa99v4itzszk5iovwzkay
tygre
0
126536
196105
2024-12-05T01:56:46Z
Lee
19
නිර්මාණය
196105
wikitext
text/x-wiki
==Middle English==
===Alternative forms===
* {{alter|enm|tygur|tygyr|tigre|tiger|teger|tegre}}
===Etymology===
From {{bor|enm|xno|tigre}} and {{inh|enm|ang|tigras}} (pl.), from {{der|enm|la|tigris}}, from {{der|enm|grc|τίγρις}}, from an {{der|enm|ira|-}} language.
===Pronunciation===
* {{IPA|enm|/ˈtiːɡər/|/ˈtiɡər/|/ˈteːɡər/|/-ɡrə/}}
===Noun===
{{enm-noun}}
# [[tiger]] {{gloss|The [[felid]] {{taxfmt|Panthera tigris|species}}}}
# {{lb|enm|figurative}} A dangerous or ferocious individual.
====Descendants====
* {{desc|en|tiger}} {{see desc}}
* {{desc|sco|teeger}}
====References====
* {{R:MED Online|entry=tigre|part of speech=n|id=MED45806}}
{{C|enm|Felids|People}}
4vdt66rtqoewq6f89ak8uznv30j0m5v
196112
196105
2024-12-05T02:11:27Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196112
wikitext
text/x-wiki
== මධ්යකාලීන ඉංග්රීසි ==
=== වෙනත් ආකාර ===
* {{alter|enm|tygur|tygyr|tigre|tiger|teger|tegre}}
=== නිරුක්තිය ===
From {{bor|enm|xno|tigre}} and {{inh|enm|ang|tigras}} (pl.), from {{der|enm|la|tigris}}, from {{der|enm|grc|τίγρις}}, from an {{der|enm|ira|-}} language.
=== උච්චාරණය ===
* {{IPA|enm|/ˈtiːɡər/|/ˈtiɡər/|/ˈteːɡər/|/-ɡrə/}}
=== නාම පදය ===
{{enm-noun}}
# [[tiger]] {{gloss|The [[felid]] {{taxfmt|Panthera tigris|species}}}}
# {{lb|enm|figurative}} A dangerous or ferocious individual.
====Descendants====
* {{desc|en|tiger}} {{see desc}}
* {{desc|sco|teeger}}
==== මූලාශ්ර ====
* {{R:MED Online|entry=tigre|part of speech=n|id=MED45806}}
{{C|enm|Felids|People}}
l7zlyu2vgb5e7vgvmg5h358euwxrqib
196185
196112
2024-12-05T11:37:41Z
Lee
19
196185
wikitext
text/x-wiki
== මධ්යකාලීන ඉංග්රීසි ==
=== වෙනත් ආකාර ===
* {{alter|enm|tygur|tygyr|tigre|tiger|teger|tegre}}
=== නිරුක්තිය ===
From {{bor|enm|xno|tigre}} and {{inh|enm|ang|tigras}} (pl.), from {{der|enm|la|tigris}}, from {{der|enm|grc|τίγρις}}, from an {{der|enm|ira|-}} language.
=== උච්චාරණය ===
* {{IPA|enm|/ˈtiːɡər/|/ˈtiɡər/|/ˈteːɡər/|/-ɡrə/}}
=== නාම පදය ===
{{enm-noun}}
# [[ව්යාඝ්රයා]] {{gloss|The [[felid]] {{taxfmt|Panthera tigris|species}}}}
# {{lb|enm|figurative}} A dangerous or ferocious individual.
====Descendants====
* {{desc|en|tiger}} {{see desc}}
* {{desc|sco|teeger}}
==== මූලාශ්ර ====
* {{R:MED Online|entry=tigre|part of speech=n|id=MED45806}}
{{C|enm|Felids|People}}
jzlni9ao1wusiijwec4tpaip11813p7
tigras
0
126537
196106
2024-12-05T01:57:39Z
Lee
19
නිර්මාණය
196106
wikitext
text/x-wiki
==French==
===Pronunciation===
* {{homophones|fr|tigra|tigrât}}
===Verb===
{{head|fr|verb form}}
# {{inflection of|fr|tigrer||2|s|phis}}
==Old English==
===Noun===
{{head|ang|noun form}}
# {{inflection of|ang|tiger||nom//acc|pl}}
gcuuf9o7xbzvnee33rvcg10iqa9ft5b
196111
196106
2024-12-05T02:11:17Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196111
wikitext
text/x-wiki
== ප්රංශ ==
=== උච්චාරණය ===
* {{homophones|fr|tigra|tigrât}}
=== ක්රියා පදය ===
{{head|fr|verb form}}
# {{inflection of|fr|tigrer||2|s|phis}}
== පුරාතන ඉංග්රීසි ==
=== නාම පදය ===
{{head|ang|noun form}}
# {{inflection of|ang|tiger||nom//acc|pl}}
84evkzmhcbwts84q0bcfycif23uc2xs
tigre
0
126538
196107
2024-12-05T01:59:48Z
Lee
19
නිර්මාණය
196107
wikitext
text/x-wiki
{{also|Tigre|tigré|Tigré|tîgre}}
==English==
===Noun===
{{en-noun}}
# {{obsolete form of|en|tiger}}
==French==
===Etymology===
{{bor+|fr|la|tigris}}.
===Pronunciation===
* {{fr-IPA}}
* {{audio|fr|Fr-tigre.ogg}}
===Noun===
{{fr-noun|m|f=tigresse}}
# [[tiger]]
====Derived terms====
{{col3|fr
|jaloux comme un tigre
|porcelaine tigre
|requin tigre
|tigre de papier
|tigre du Bengale
|tigre à dents de sabre
|Tigres tamouls
}}
===Further reading===
* {{R:fr:TLFi}}
{{C|fr|Panthers}}
==Middle English==
===Noun===
{{head|enm|noun}}
# {{alt form|enm|tygre}}
==Middle French==
===Noun===
{{frm-noun|m}}
# [[tiger]]
{{c|frm|Panthers}}
==Old French==
===Noun===
{{fro-noun|m}}
# [[tiger]]
===Noun===
{{fro-noun|f}}
# [[tigress]]
{{c|fro|Female animals|Panthers}}
ftznxqhammngpnxj3jwetd59tlb6qfd
196110
196107
2024-12-05T02:11:07Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196110
wikitext
text/x-wiki
{{also|Tigre|tigré|Tigré|tîgre}}
== ඉංග්රීසි ==
=== නාම පදය ===
{{en-noun}}
# {{obsolete form of|en|tiger}}
== ප්රංශ ==
=== නිරුක්තිය ===
{{bor+|fr|la|tigris}}.
=== උච්චාරණය ===
* {{fr-IPA}}
* {{audio|fr|Fr-tigre.ogg}}
=== නාම පදය ===
{{fr-noun|m|f=tigresse}}
# [[tiger]]
==== ව්යුත්පන්න යෙදුම් ====
{{col3|fr
|jaloux comme un tigre
|porcelaine tigre
|requin tigre
|tigre de papier
|tigre du Bengale
|tigre à dents de sabre
|Tigres tamouls
}}
=== වැඩිදුර් කියවීම සඳහා ===
* {{R:fr:TLFi}}
{{C|fr|Panthers}}
== මධ්යකාලීන ඉංග්රීසි ==
=== නාම පදය ===
{{head|enm|noun}}
# {{alt form|enm|tygre}}
== මධ්යකාලීන ප්රංශ ==
=== නාම පදය ===
{{frm-noun|m}}
# [[tiger]]
{{c|frm|Panthers}}
== පුරාතන ප්රංශ ==
=== නාම පදය ===
{{fro-noun|m}}
# [[tiger]]
=== නාම පදය ===
{{fro-noun|f}}
# [[tigress]]
{{c|fro|Female animals|Panthers}}
fd5iy38948q3sr5kv7x3tvtycovlekn
tigris
0
126539
196108
2024-12-05T02:00:43Z
Lee
19
නිර්මාණය
196108
wikitext
text/x-wiki
{{also|Tigris|Tígris}}
==Latin==
[[Image:Panthera tigris tigris.jpg|thumb|tigris (a tiger)]]
===Etymology===
From {{bor|la|grc|τίγρις||tiger}}, probably of {{der|la|ira|-}} origin.
===Pronunciation===
* {{la-IPA|tigris}}
===Noun===
{{la-noun|((tigris<3.acc-im-in-em.abl-i>,tigris/tigrid<3>))|g=m}}
# [[tiger]]
# {{lb|la|poetic}} [[tigress]]
# a tiger [[skin]]
====Declension====
{{la-ndecl|((tigris<3.acc-im-in-em.abl-i>,tigris/tigrid<3>))}}
====Related terms====
{{rel-top}}
* {{l|la|tigriceps}}
* {{l|la|tigrifer}}
* {{l|la|tigriger}}
* {{l|la|tigrīnus}}
{{rel-bottom}}
====Descendants====
{{top2}}
* {{desc|rup|tigru}}
* {{desc|ca|tigre}}
* {{desc|fr|tigre}}
* {{desc|it|tigre}}
* {{desc|pt|tigre}}
* {{desc|ro|tigru}}
* {{desc|scn|trighi}}
* {{desc|es|tigre}}
* {{desc|eo|tigro|bor=1}}
* {{desc|hu|tigris|bor=1}}
* {{desc|ia|tigre|bor=1}}
* {{desc|gmw-pro|*tīgr|bor=1}} {{see desc}}
{{bottom}}
===See also===
* {{l|la|Tigris}}
===References===
* {{R:L&S}}
* {{R:Elementary Lewis}}
* {{R:du Cange}}
* {{R:Gaffiot}}
* {{R:PersEnc}}
* {{R:Peck}}
* {{R:Smith's Geography}}
{{topics|la|Panthers}}
2svf63tib1x7oas7wlh965w69vb18tm
196109
196108
2024-12-05T02:10:57Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196109
wikitext
text/x-wiki
{{also|Tigris|Tígris}}
== ලතින් ==
[[Image:Panthera tigris tigris.jpg|thumb|tigris (a tiger)]]
=== නිරුක්තිය ===
From {{bor|la|grc|τίγρις||tiger}}, probably of {{der|la|ira|-}} origin.
=== උච්චාරණය ===
* {{la-IPA|tigris}}
=== නාම පදය ===
{{la-noun|((tigris<3.acc-im-in-em.abl-i>,tigris/tigrid<3>))|g=m}}
# [[tiger]]
# {{lb|la|poetic}} [[tigress]]
# a tiger [[skin]]
==== වරනැඟීම ====
{{la-ndecl|((tigris<3.acc-im-in-em.abl-i>,tigris/tigrid<3>))}}
==== ආශ්රිත යෙදුම් ====
{{rel-top}}
* {{l|la|tigriceps}}
* {{l|la|tigrifer}}
* {{l|la|tigriger}}
* {{l|la|tigrīnus}}
{{rel-bottom}}
====Descendants====
{{top2}}
* {{desc|rup|tigru}}
* {{desc|ca|tigre}}
* {{desc|fr|tigre}}
* {{desc|it|tigre}}
* {{desc|pt|tigre}}
* {{desc|ro|tigru}}
* {{desc|scn|trighi}}
* {{desc|es|tigre}}
* {{desc|eo|tigro|bor=1}}
* {{desc|hu|tigris|bor=1}}
* {{desc|ia|tigre|bor=1}}
* {{desc|gmw-pro|*tīgr|bor=1}} {{see desc}}
{{bottom}}
=== අමතර අවධානයට ===
* {{l|la|Tigris}}
=== මූලාශ්ර ===
* {{R:L&S}}
* {{R:Elementary Lewis}}
* {{R:du Cange}}
* {{R:Gaffiot}}
* {{R:PersEnc}}
* {{R:Peck}}
* {{R:Smith's Geography}}
{{topics|la|Panthers}}
2zhsk4n856cyegs53amtiumm9np057o
නැණවතා
0
126540
196118
2024-12-05T02:19:03Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === ''[[නැණවත්]] + [[ආ]]'' > [[නැණවතා]] === නාම පදය === {{si-noun|නැණවත්තු}} # [[ඥානවන්තයා]] <!-- ==== පරිවර්තන ==== {{trans-top|පරිවර්තන}} * ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}} {{trans-bottom}} === අමතර...' යොදමින් නව පිටුවක් තනන ලදි
196118
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[නැණවත්]] + [[ආ]]'' > [[නැණවතා]]
=== නාම පදය ===
{{si-noun|නැණවත්තු}}
# [[ඥානවන්තයා]]
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
180vhdfkwh2xhoh00ibdveigl2agk3v
නැණවත්තු
0
126541
196119
2024-12-05T02:35:25Z
WrdSrchSi
3305
'== සිංහල == [[නැණවතුන්]] යන යෙදුම සමඟ පටලවා නො ගත යුතු යි. === නිරුක්තිය === ''[[නැණවත්]] + [[හු]] > නැණවත්හු'' > [[නැණවත්තු]] ''([[පූර්ව ව්යඤ්ජන සාම්යය]])'' === නාම පදය === {{si-noun}} # {{plural of|si|නැණවතා}}...' යොදමින් නව පිටුවක් තනන ලදි
196119
wikitext
text/x-wiki
== සිංහල ==
[[නැණවතුන්]] යන යෙදුම සමඟ පටලවා නො ගත යුතු යි.
=== නිරුක්තිය ===
''[[නැණවත්]] + [[හු]] > නැණවත්හු'' > [[නැණවත්තු]] ''([[පූර්ව ව්යඤ්ජන සාම්යය]])''
=== නාම පදය ===
{{si-noun}}
# {{plural of|si|නැණවතා}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
tezy3to7ctd4h88duil88frvc1m34vv
නැයිනිය
0
126542
196120
2024-12-05T03:26:33Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === ''[[නැයිනි]] + [[අ]] > නැයිනි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + අ ''> '''නැයිනිය''' === නාම පදය === {{si-noun|නැයිනියෝ}} # '''{{l|si|නයා}}''' ''යන යෙදුමෙහි උපග්%E2%80%8Dරන්ථය:ගැටපද_විවරණය#ස්...' යොදමින් නව පිටුවක් තනන ලදි
196120
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[නැයිනි]] + [[අ]] > නැයිනි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + අ ''> '''නැයිනිය'''
=== නාම පදය ===
{{si-noun|නැයිනියෝ}}
# '''{{l|si|නයා}}''' ''යන යෙදුමෙහි [[උපග්%E2%80%8Dරන්ථය:ගැටපද_විවරණය#ස්ත්රී ලිංග_number|ස්ත්රී ලිංග]] පදය''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
tao0ud92rfamusr8lxgfu1otk4n0mxc
196177
196120
2024-12-05T10:28:16Z
WrdSrchSi
3305
Added: {{feminine singular of|si|නයා}}
196177
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[නැයිනි]] + [[අ]] > නැයිනි + '''ය්''' ([[ව්යඤ්ජනාගමනය]]) + අ ''> '''නැයිනිය'''
=== නාම පදය ===
{{si-noun|නැයිනියෝ}}
# {{feminine singular of|si|නයා}}
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
3ai7jzd36394rvdk0agl1wzcxwvvvh8
Reconstruction:Proto-Indo-European/(s)teyg-
0
126543
196125
2024-12-05T05:09:31Z
Lee
19
Lee විසින් [[Reconstruction:Proto-Indo-European/(s)teyg-]] සිට [[Reconstruction:ප්රොටෝ-ඉන්දු-යුරෝපීය/(s)teyg-]] වෙත පිටුව ගෙන යන ලදී
196125
wikitext
text/x-wiki
#යළියොමුව [[Reconstruction:ප්රොටෝ-ඉන්දු-යුරෝපීය/(s)teyg-]]
g9y9uua7sbqlfhsci1cbm3127ras1zl
ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න
14
126544
196126
2020-10-29T02:24:27Z
en>WingerBot
0
Created page with "{{auto cat}}"
196126
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196127
196126
2024-12-05T05:11:12Z
Lee
19
[[:en:Category:Terms_derived_from_the_Proto-Indo-European_root_*(s)teyg-]] වෙතින් එක් සංශෝධනයක්
196126
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196130
196127
2024-12-05T05:19:38Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Terms derived from the Proto-Indo-European root *(s)teyg-]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196126
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196132
196130
2024-12-05T05:19:48Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196132
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Terms derived from the Proto-Indo-European root *(s)teyg-]]
gnqt4lth2l5vh60pqw0nofeu0k6bicu
196140
196132
2024-12-05T05:23:03Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196132
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Terms derived from the Proto-Indo-European root *(s)teyg-]]
gnqt4lth2l5vh60pqw0nofeu0k6bicu
ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න
14
126545
196129
2024-12-05T05:13:56Z
Lee
19
Lee විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී
196129
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *peg- වෙතින් ව්යුත්පන්න]]
56dabctd6bckdn7yj4hpgtns1ui40nw
ප්රවර්ගය:Terms derived from the Proto-Indo-European root *(s)teyg-
14
126546
196131
2024-12-05T05:19:39Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Terms derived from the Proto-Indo-European root *(s)teyg-]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196131
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න]]
0nypaglp5sanakqq84y48dn2iced5d3
196133
196131
2024-12-05T05:19:58Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196133
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න}}
pjprr9q8rhb6j1ox01zuwonxup56hcu
ප්රවර්ගය:යෙදුම්, Proto-Indo-European මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න
14
126547
196134
2024-12-05T05:20:08Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196134
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න}}
pjprr9q8rhb6j1ox01zuwonxup56hcu
ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න
14
126548
196136
2024-12-05T05:21:47Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196136
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න]]
tdap8hm7uoo652dntlicgh4w9co3sr8
196138
196136
2024-12-05T05:22:06Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196138
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න}}
68wn6njumj3nkfqk4w8qdt61fi461z9
ප්රවර්ගය:යෙදුම්, Proto-Indo-European මූල වෙතින් ව්යුත්පන්න
14
126549
196139
2024-12-05T05:22:16Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196139
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූල වෙතින් ව්යුත්පන්න}}
68wn6njumj3nkfqk4w8qdt61fi461z9
ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න
14
126550
196141
2024-12-05T05:23:04Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg-- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196141
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න]]
eftvt1yqkvpdzfyf35ad2jcso6btddg
196142
196141
2024-12-05T05:23:13Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196142
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න}}
19o29livazf8w56vfb0z8rxqxc5jhrq
ප්රවර්ගය:යෙදුම්, Proto-Indo-European මූලය *(s)teyg- වෙතින් ව්යුත්පන්න
14
126551
196143
2024-12-05T05:23:23Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196143
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *(s)teyg- වෙතින් ව්යුත්පන්න}}
19o29livazf8w56vfb0z8rxqxc5jhrq
ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න
14
126552
196145
2024-12-05T05:24:14Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:පද, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න]] සිට [[ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196145
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න]]
riuqq76lpa349e5civlhr1hvd14c0jz
196147
196145
2024-12-05T05:24:33Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196147
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න}}
dz9s6ios5ujmy8rnsoj7osus2q1bbet
ප්රවර්ගය:යෙදුම්, Proto-Indo-European මූලය *deyḱ- වෙතින් ව්යුත්පන්න
14
126553
196148
2024-12-05T05:24:43Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196148
wikitext
text/x-wiki
{{category redirect|යෙදුම්, ප්රොටෝ-ඉන්දු-යුරෝපීය මූලය *deyḱ- වෙතින් ව්යුත්පන්න}}
dz9s6ios5ujmy8rnsoj7osus2q1bbet
නය්
0
126554
196149
2024-12-05T05:25:57Z
WrdSrchSi
3305
'==සිංහල== ===නමු පියවිය=== '''{{l|si|නය්|}}''' # [[මූල නාම ප්රකෘතිය]] #: ''{{{2|'''නය්''' + [[ආ]] > [[නයා]]}}}'' ===නාම විශේෂණ පදය=== {{si-adj}} (''වත්මන් ව්යවහාරය {{l|si|'''නයි'''|}}'') # '''{{l|si|නයා|}}''' ''යන යෙදුමට අදාළ'' #:''{{{2|නය් ප...' යොදමින් නව පිටුවක් තනන ලදි
196149
wikitext
text/x-wiki
==සිංහල==
===නමු පියවිය===
'''{{l|si|නය්|}}'''
# [[මූල නාම ප්රකෘතිය]]
#: ''{{{2|'''නය්''' + [[ආ]] > [[නයා]]}}}''
===නාම විශේෂණ පදය===
{{si-adj}}
(''වත්මන් ව්යවහාරය {{l|si|'''නයි'''|}}'')
# '''{{l|si|නයා|}}''' ''යන යෙදුමට අදාළ''
#:''{{{2|නය් පැටියා}}}''
921bqer99axhdrz47o4wcqbkt39lw6i
සැකිල්ල:noun form of
10
126555
196154
2024-11-09T20:22:13Z
en>Surjection
0
Changed protection settings for "[[Template:noun form of]]" ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite))
196154
wikitext
text/x-wiki
{{#invoke:form of/templates|inflection_of_t|def=p=n}}<!--
--><noinclude>{{documentation}}</noinclude>
g4wshxr88ecl2og6ybkomzc1ttwxx8u
196155
196154
2024-12-05T05:28:16Z
Lee
19
[[:en:Template:noun_form_of]] වෙතින් එක් සංශෝධනයක්
196154
wikitext
text/x-wiki
{{#invoke:form of/templates|inflection_of_t|def=p=n}}<!--
--><noinclude>{{documentation}}</noinclude>
g4wshxr88ecl2og6ybkomzc1ttwxx8u
සැකිල්ල:noun form of/documentation
10
126556
196156
2019-10-17T05:30:00Z
en>WingerBot
0
convert {{docparam}} to {{para}} (13)
196156
wikitext
text/x-wiki
{{documentation subpage}}
This template is used to create definition lines for inflected (non-lemma) forms of other terms, specifically for forms of nouns. It use [[Module:form of]] as a back-end.
This template is exactly identical to {{temp|inflection of|...|p=n}}. That is, it is equivalent to calling {{temp|inflection of}} and auto-setting the part of speech of the form to noun.
==Parameters==
; {{para|1|req=1}}
: The [[WT:LANGCODE|language code]] of the lemma linked to (which this page is an inflection of). See [[Wiktionary:List of languages]]. <small>The parameter {{para|lang}} is a deprecated synonym; please do not use. If this is used, all numbered parameters move down by one.</small>
; {{para|2|req=1}}
: The lemma form of the term that this is an inflection of. This is used to create a link.
; {{para|3}} or {{para|alt}}
: The alternative display form of the lemma. This works like the third parameter of {{temp|l}} and {{temp|m}}.
; {{para|4|req=1}}, {{para|5}} ... etc.
: One or more grammar tags to show. These give the definition by describing the relevant grammatical properties of this inflected form. A grammar tag can potentially be any text, but certain tags such as <code>nominative</code>, <code>feminine</code>, <code>first-person</code> or <code>subjunctive</code> that are recognized internally will automatically be linked to the appropriate entry in [[Appendix:Glossary]] (or in some cases, to the relevant Wiktionary or Wikipedia entry). As an example, <code>nominative</code> is displayed as ''[[Appendix:Glossary#nominative|nominative]]'', with an appropriate link. Certain tags are recognised as shortcuts and are equivalent to spelling out the tag. For example, <code>1</code> is equivalent to <code>first-person</code>; both will be displayed as ''[[Appendix:Glossary#first-person|first-person]]''. Similarly, <code>f</code> is equivalent to <code>feminine</code>, and <code>nom</code> is equivalent to <code>nominative</code>. The full, up-to-date list of recognized tags and their shortcuts and display forms is specified below.
:Multiple tags are normally separated by spaces, so that e.g. <code>nom|f|s</code> will be displayed as ''[[Appendix:Glossary#nominative|nominative]] [[Appendix:Glossary#feminine|feminine]] [[Appendix:Glossary#singular|singular]]''. However, when punctuation characters are used as tags, they will be displayed appropriately for that punctuation character. For example, <code>nom|,|with|3|s|object</code> will display as ''[[Appendix:Glossary#nominative|nominative]], with [[Appendix:Glossary#third-person|third-person]] [[Appendix:Glossary#singular|singular]] object'' (i.e. without a space preceding the comma). Among the punctuation characters recognized and handled correctly are comma, colon, parens, brackets, slash, and hyphen. The full list can be found below.
:It is also possible to put one or more tags or shortcuts between <code>//</code> separators, which will be expanded into a list separated by ''and''. For example, writing <code>nom//acc</code> will expand to ''[[Appendix:Glossary#nominative|nominative]] and [[Appendix:Glossary#accusative|accusative]]''. When three or more tags are separated this way, commas will be used except for the last two items; for example, <code>nom//acc//voc//dat</code> will expand to ''[[Appendix:Glossary#nominative|nominative]], [[Appendix:Glossary#accusative|accusative]], [[Appendix:Glossary#vocative|vocative]] and [[Appendix:Glossary#dative|dative]]''. Note that the default is to not display a [[w:serial comma|serial comma]] preceding the word "and", but this can be changed using CSS.
:The inflection tag <code>;</code> is recognized specially and is used to separate two inflections of the same word. Sets of tags separated by a semicolon tag will be displayed on separate lines. See examples below.
; {{para|t}}
: A gloss or short translation of the word. <small>The parameter {{para|gloss}} is a deprecated synonym; please do not use.</small>
; {{para|tr}}
: Transliteration for non-Latin-script words, if different from the automatically-generated one.
; {{para|ts}}
: Transcription for non-Latin-script words whose transliteration is markedly different from the actual pronunciation. Should not be used for IPA pronunciations.
; {{para|p}} or {{para|POS}}
: Part-of-speech tag or abbreviation (see below). Defaults to <code>n</code>. Currently used only for categorization, which depends on the particular inflection tags and the language in question. Note that there are related templates {{temp|verb form of}} and {{temp|adj form of}}, which are exactly the same as this template but have (respectively) {{para|p|v}} and {{para|p|a}} as defaults, as well as {{temp|inflection of}}, which is like this template but doesn't set a default for {{para|p}}.
; {{para|id}}
: A sense id for the term, which links to anchors on the page set by the {{temp|senseid}} template.
; {{para|sc}}
: Script code to use, if script detection does not work.
==Grammar tags==
The following grammar tags are available for shortcut use in entering descriptions as per [[Module:form of/data]] (more common tags) and [[Module:form of/data2]] (less common tags):
{{#invoke:form of doc/templates|tagtable_t}}
Other items (such as "atelic") may be used as needed, but should be spelled out in full (see examples).
====Example 1====
On the page for the Latin non-lemma form {{l|la|deārum}}:
<pre># {{noun form of|la|dea||gen|p}}</pre> gives
# {{noun form of|la|dea||gen|p}}
====Example 2====
On the page for the Russian non-lemma form {{l|ru|пути́}}:
<pre># {{inflection of|ru|путь||gen//dat//pre|s|;|nom//acc|p}}</pre> gives
# {{inflection of|ru|путь||gen//dat//pre|s|;|nom//acc|p}}
Note here how the <code>//</code> separator separates tags when multiple tags apply, and <code>;</code> separates inflections. When <code>;</code> is used, the display format changes to a multi-line format, as shown. Furthermore, since the lemma is in a non-Latin script in a language with automatic transliteration, that transliteration is automatically shown.
==Part-of-speech tags==
The following part-of-speech tags are available for use as the {{para|p}} or {{para|POS}} parameter. Note that either the full (canonical) form or any of the short forms can be used and are equivalent.
{{#invoke:form of doc/templates|postable_t}}
<includeonly>
[[Category:Form-of templates|*]]
[[Category:Grammar form-of templates|*]]
</includeonly>
pphnfis34exqxbfijw45ld2arpjjly6
196157
196156
2024-12-05T05:28:38Z
Lee
19
[[:en:Template:noun_form_of/documentation]] වෙතින් එක් සංශෝධනයක්
196156
wikitext
text/x-wiki
{{documentation subpage}}
This template is used to create definition lines for inflected (non-lemma) forms of other terms, specifically for forms of nouns. It use [[Module:form of]] as a back-end.
This template is exactly identical to {{temp|inflection of|...|p=n}}. That is, it is equivalent to calling {{temp|inflection of}} and auto-setting the part of speech of the form to noun.
==Parameters==
; {{para|1|req=1}}
: The [[WT:LANGCODE|language code]] of the lemma linked to (which this page is an inflection of). See [[Wiktionary:List of languages]]. <small>The parameter {{para|lang}} is a deprecated synonym; please do not use. If this is used, all numbered parameters move down by one.</small>
; {{para|2|req=1}}
: The lemma form of the term that this is an inflection of. This is used to create a link.
; {{para|3}} or {{para|alt}}
: The alternative display form of the lemma. This works like the third parameter of {{temp|l}} and {{temp|m}}.
; {{para|4|req=1}}, {{para|5}} ... etc.
: One or more grammar tags to show. These give the definition by describing the relevant grammatical properties of this inflected form. A grammar tag can potentially be any text, but certain tags such as <code>nominative</code>, <code>feminine</code>, <code>first-person</code> or <code>subjunctive</code> that are recognized internally will automatically be linked to the appropriate entry in [[Appendix:Glossary]] (or in some cases, to the relevant Wiktionary or Wikipedia entry). As an example, <code>nominative</code> is displayed as ''[[Appendix:Glossary#nominative|nominative]]'', with an appropriate link. Certain tags are recognised as shortcuts and are equivalent to spelling out the tag. For example, <code>1</code> is equivalent to <code>first-person</code>; both will be displayed as ''[[Appendix:Glossary#first-person|first-person]]''. Similarly, <code>f</code> is equivalent to <code>feminine</code>, and <code>nom</code> is equivalent to <code>nominative</code>. The full, up-to-date list of recognized tags and their shortcuts and display forms is specified below.
:Multiple tags are normally separated by spaces, so that e.g. <code>nom|f|s</code> will be displayed as ''[[Appendix:Glossary#nominative|nominative]] [[Appendix:Glossary#feminine|feminine]] [[Appendix:Glossary#singular|singular]]''. However, when punctuation characters are used as tags, they will be displayed appropriately for that punctuation character. For example, <code>nom|,|with|3|s|object</code> will display as ''[[Appendix:Glossary#nominative|nominative]], with [[Appendix:Glossary#third-person|third-person]] [[Appendix:Glossary#singular|singular]] object'' (i.e. without a space preceding the comma). Among the punctuation characters recognized and handled correctly are comma, colon, parens, brackets, slash, and hyphen. The full list can be found below.
:It is also possible to put one or more tags or shortcuts between <code>//</code> separators, which will be expanded into a list separated by ''and''. For example, writing <code>nom//acc</code> will expand to ''[[Appendix:Glossary#nominative|nominative]] and [[Appendix:Glossary#accusative|accusative]]''. When three or more tags are separated this way, commas will be used except for the last two items; for example, <code>nom//acc//voc//dat</code> will expand to ''[[Appendix:Glossary#nominative|nominative]], [[Appendix:Glossary#accusative|accusative]], [[Appendix:Glossary#vocative|vocative]] and [[Appendix:Glossary#dative|dative]]''. Note that the default is to not display a [[w:serial comma|serial comma]] preceding the word "and", but this can be changed using CSS.
:The inflection tag <code>;</code> is recognized specially and is used to separate two inflections of the same word. Sets of tags separated by a semicolon tag will be displayed on separate lines. See examples below.
; {{para|t}}
: A gloss or short translation of the word. <small>The parameter {{para|gloss}} is a deprecated synonym; please do not use.</small>
; {{para|tr}}
: Transliteration for non-Latin-script words, if different from the automatically-generated one.
; {{para|ts}}
: Transcription for non-Latin-script words whose transliteration is markedly different from the actual pronunciation. Should not be used for IPA pronunciations.
; {{para|p}} or {{para|POS}}
: Part-of-speech tag or abbreviation (see below). Defaults to <code>n</code>. Currently used only for categorization, which depends on the particular inflection tags and the language in question. Note that there are related templates {{temp|verb form of}} and {{temp|adj form of}}, which are exactly the same as this template but have (respectively) {{para|p|v}} and {{para|p|a}} as defaults, as well as {{temp|inflection of}}, which is like this template but doesn't set a default for {{para|p}}.
; {{para|id}}
: A sense id for the term, which links to anchors on the page set by the {{temp|senseid}} template.
; {{para|sc}}
: Script code to use, if script detection does not work.
==Grammar tags==
The following grammar tags are available for shortcut use in entering descriptions as per [[Module:form of/data]] (more common tags) and [[Module:form of/data2]] (less common tags):
{{#invoke:form of doc/templates|tagtable_t}}
Other items (such as "atelic") may be used as needed, but should be spelled out in full (see examples).
====Example 1====
On the page for the Latin non-lemma form {{l|la|deārum}}:
<pre># {{noun form of|la|dea||gen|p}}</pre> gives
# {{noun form of|la|dea||gen|p}}
====Example 2====
On the page for the Russian non-lemma form {{l|ru|пути́}}:
<pre># {{inflection of|ru|путь||gen//dat//pre|s|;|nom//acc|p}}</pre> gives
# {{inflection of|ru|путь||gen//dat//pre|s|;|nom//acc|p}}
Note here how the <code>//</code> separator separates tags when multiple tags apply, and <code>;</code> separates inflections. When <code>;</code> is used, the display format changes to a multi-line format, as shown. Furthermore, since the lemma is in a non-Latin script in a language with automatic transliteration, that transliteration is automatically shown.
==Part-of-speech tags==
The following part-of-speech tags are available for use as the {{para|p}} or {{para|POS}} parameter. Note that either the full (canonical) form or any of the short forms can be used and are equivalent.
{{#invoke:form of doc/templates|postable_t}}
<includeonly>
[[Category:Form-of templates|*]]
[[Category:Grammar form-of templates|*]]
</includeonly>
pphnfis34exqxbfijw45ld2arpjjly6
ප්රවර්ගය:ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප
14
126557
196158
2024-12-05T05:31:26Z
Pinthura
2424
සේවා: [[:[[en:Category:Danish non-lemma forms]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196158
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196161
196158
2024-12-05T05:31:56Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Danish non-lemma forms]] සිට [[ප්රවර්ගය:ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196158
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196167
196161
2024-12-05T05:32:26Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196167
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Danish non-lemma forms]]
syzhrmp3n0z6vjcuouvazg4jw3vd48z
ප්රවර්ගය:ඩෙන්මාර්ක නාම පද ස්වරූප
14
126558
196159
2024-12-05T05:31:36Z
Pinthura
2424
සේවා: [[:[[en:Category:Danish noun forms]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196159
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196163
196159
2024-12-05T05:32:06Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Danish noun forms]] සිට [[ප්රවර්ගය:ඩෙන්මාර්ක නාම පද ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196159
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196168
196163
2024-12-05T05:32:36Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196168
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Danish noun forms]]
nzi2gb22xf4qyplwcnh79cwgtmunvrb
ප්රවර්ගය:ස්වීඩන් නාම පද ස්වරූප
14
126559
196160
2024-12-05T05:31:46Z
Pinthura
2424
සේවා: [[:[[en:Category:Swedish noun forms]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196160
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196165
196160
2024-12-05T05:32:16Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Swedish noun forms]] සිට [[ප්රවර්ගය:ස්වීඩන් නාම පද ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196160
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196169
196165
2024-12-05T05:32:46Z
Pinthura
2424
සේවා: ඉංග්රීසි ව්යාපෘතිය වෙත සබැඳියක් එක් කිරීම.
196169
wikitext
text/x-wiki
{{auto cat}}
[[en:Category:Swedish noun forms]]
25m3rq1xfcbamacd5i5j8iy3tavllu0
ප්රවර්ගය:Danish non-lemma forms
14
126560
196162
2024-12-05T05:31:57Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Danish non-lemma forms]] සිට [[ප්රවර්ගය:ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196162
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප]]
hyvka4d2ajubo8hljtmbacw9i68520x
196170
196162
2024-12-05T05:32:56Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196170
wikitext
text/x-wiki
{{category redirect|ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප}}
7932qn7f0yx4qxywlui2o3zs8mjrlwh
ප්රවර්ගය:Danish noun forms
14
126561
196164
2024-12-05T05:32:06Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Danish noun forms]] සිට [[ප්රවර්ගය:ඩෙන්මාර්ක නාම පද ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196164
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:ඩෙන්මාර්ක නාම පද ස්වරූප]]
9i9g2m4jt6e3xoc78oq2cwj176uxnx0
196171
196164
2024-12-05T05:33:06Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196171
wikitext
text/x-wiki
{{category redirect|ඩෙන්මාර්ක නාම පද ස්වරූප}}
bu6p1wqhezct0r7migw1otasfo04v5v
ප්රවර්ගය:Swedish noun forms
14
126562
196166
2024-12-05T05:32:16Z
Pinthura
2424
Pinthura විසින් [[ප්රවර්ගය:Swedish noun forms]] සිට [[ප්රවර්ගය:ස්වීඩන් නාම පද ස්වරූප]] වෙත පිටුව ගෙන යන ලදී: සේවා: නව ප්රවර්ග නාමය වෙත ගෙනයාම.
196166
wikitext
text/x-wiki
#යළියොමුව [[:ප්රවර්ගය:ස්වීඩන් නාම පද ස්වරූප]]
9t6dsqk3ozellysluk66zehiidf6hwt
196172
196166
2024-12-05T05:33:16Z
Pinthura
2424
සේවා: යළියොමුව, මෘදු ප්රවර්ග යළියොමුවක් බවට හැරවීම.
196172
wikitext
text/x-wiki
{{category redirect|ස්වීඩන් නාම පද ස්වරූප}}
3yvlaywy84qvpmw07qmt473t1cvt3sw
ප්රවර්ගය:Danish ලෙමා-නොවන ස්වරූප
14
126563
196173
2024-12-05T05:33:26Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196173
wikitext
text/x-wiki
{{category redirect|ඩෙන්මාර්ක ලෙමා-නොවන ස්වරූප}}
7932qn7f0yx4qxywlui2o3zs8mjrlwh
ප්රවර්ගය:Danish නාම පද ස්වරූප
14
126564
196174
2024-12-05T05:33:36Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196174
wikitext
text/x-wiki
{{category redirect|ඩෙන්මාර්ක නාම පද ස්වරූප}}
bu6p1wqhezct0r7migw1otasfo04v5v
ප්රවර්ගය:Swedish නාම පද ස්වරූප
14
126565
196175
2024-12-05T05:33:46Z
Pinthura
2424
සේවා: මෘදු ප්රවර්ග යළියොමුවක් නිර්මාණය.
196175
wikitext
text/x-wiki
{{category redirect|ස්වීඩන් නාම පද ස්වරූප}}
3yvlaywy84qvpmw07qmt473t1cvt3sw
පුවසුරුවා
0
126566
196176
2024-12-05T06:23:33Z
WrdSrchSi
3305
'== සිංහල == === නිරුක්තිය === ''[[පුවසුරු]] + [[ආ]] > පුවසුරු + ව් ([[ව්යඤ්ජනාගමනය]]) + ආ'' > '''පුවසුරුවා''' === නාම පදය === {{si-noun|පුවසුරුවෝ}} # {{ඒකවචනය|si|පුවසුරු}} #:''{{{2|'''පුවසුරුවා''' දෙසුම නවතා පිර...' යොදමින් නව පිටුවක් තනන ලදි
196176
wikitext
text/x-wiki
== සිංහල ==
=== නිරුක්තිය ===
''[[පුවසුරු]] + [[ආ]] > පුවසුරු + ව් ([[ව්යඤ්ජනාගමනය]]) + ආ'' > '''පුවසුරුවා'''
=== නාම පදය ===
{{si-noun|පුවසුරුවෝ}}
# {{ඒකවචනය|si|පුවසුරු}}
#:''{{{2|'''පුවසුරුවා''' දෙසුම නවතා පිරියෙසුම අරඹයි.}}}''
<!--
==== පරිවර්තන ====
{{trans-top|පරිවර්තන}}
* ඉංග්රීසි: {{t|en|<<ඉංග්රීසි වචනය>>}}
{{trans-bottom}}
=== අමතර අවධානයට ===
* {{l|si|<<ආශ්රිත පවතින වෙනත් වචන>>}}
-->
pmv2t0ws2ix4hawn18daxyjv4lgcc04
ප්රවර්ගය:enm:Felids
14
126567
196181
2024-04-23T09:05:54Z
en>WingerBot
0
rename {{autocat}} to {{auto cat}}
196181
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196182
196181
2024-12-05T11:35:29Z
Lee
19
[[:en:Category:enm:Felids]] වෙතින් එක් සංශෝධනයක්
196181
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ප්රවර්ගය:enm:People
14
126568
196183
2022-06-19T16:17:49Z
en>Dpleibovitz
0
{{auto cat}}
196183
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
196184
196183
2024-12-05T11:36:14Z
Lee
19
[[:en:Category:enm:People]] වෙතින් එක් සංශෝධනයක්
196183
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
සැකිල්ල:enm-noun
10
126569
196186
2024-04-27T12:52:04Z
en>SurjectionBot
0
Protected "[[Template:enm-noun]]": (bot) automatically protect highly visible templates/modules (reference score: 1999+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
196186
wikitext
text/x-wiki
{{head|enm|{{#ifeq:{{NAMESPACE}}|Reconstruction|reconstructed nouns|nouns}}|head={{{head|}}}|sort={{{sort|}}}|g={{{g|}}}|g2={{{g2|}}}|g3={{{g3|}}}}}<!--
--> (<!--
-->{{#ifeq:{{{1}}}|-<!--
-->|<!--
-->''[[Appendix:Glossary#uncountable|uncountable]]''{{catlangname|enm|uncountable nouns}}<!--
-->|<!--
-->''plural'' <!--
-->'''{{l-self|enm|{{{pl|{{{1|{{PAGENAME}}s}}}}}}}}'''<!--
-->{{#if:{{{pl2|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl2_qual|}}}<!--
-->|<!--
-->{{q|{{{pl2_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl3|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl3_qual|}}}<!--
-->|<!--
-->{{q|{{{pl3_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl3}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl4|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl4_qual|}}}<!--
-->|<!--
-->{{q|{{{pl4_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl4}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl5|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl5_qual|}}}<!--
-->|<!--
-->{{q|{{{pl5_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl5}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl6|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl6_qual|}}}<!--
-->|<!--
-->{{q|{{{pl6_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl6}}}}}'''<!--
-->}}<!--
-->}}<!--
-->{{#if:{{{gen|}}}<!--
-->|<!--
-->, ''genitive'' <!--
-->'''{{l-self|enm|{{{gen}}}}}'''<!--
-->{{#if:{{{gen2|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{gen2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{gen3|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{gen3}}}}}'''<!--
-->}}<!--
-->}}<!--
-->{{#if:{{{dat|}}}<!--
-->|<!--
-->, ''dative'' <!--
-->'''{{l-self|enm|{{{dat}}}}}'''<!--
-->{{#if:{{{dat2|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{dat2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{dat3|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{dat3}}}}}'''<!--
-->}}<!--
-->}}<!--
-->)<!--
--><noinclude>{{documentation}}</noinclude>
if1ef038lsnwb0fj7oj2wwye1y4ib5y
196187
196186
2024-12-05T11:38:05Z
Lee
19
[[:en:Template:enm-noun]] වෙතින් එක් සංශෝධනයක්
196186
wikitext
text/x-wiki
{{head|enm|{{#ifeq:{{NAMESPACE}}|Reconstruction|reconstructed nouns|nouns}}|head={{{head|}}}|sort={{{sort|}}}|g={{{g|}}}|g2={{{g2|}}}|g3={{{g3|}}}}}<!--
--> (<!--
-->{{#ifeq:{{{1}}}|-<!--
-->|<!--
-->''[[Appendix:Glossary#uncountable|uncountable]]''{{catlangname|enm|uncountable nouns}}<!--
-->|<!--
-->''plural'' <!--
-->'''{{l-self|enm|{{{pl|{{{1|{{PAGENAME}}s}}}}}}}}'''<!--
-->{{#if:{{{pl2|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl2_qual|}}}<!--
-->|<!--
-->{{q|{{{pl2_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl3|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl3_qual|}}}<!--
-->|<!--
-->{{q|{{{pl3_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl3}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl4|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl4_qual|}}}<!--
-->|<!--
-->{{q|{{{pl4_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl4}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl5|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl5_qual|}}}<!--
-->|<!--
-->{{q|{{{pl5_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl5}}}}}'''<!--
-->}}<!--
-->{{#if:{{{pl6|}}}<!--
-->|<!--
--> ''or'' {{#if:{{{pl6_qual|}}}<!--
-->|<!--
-->{{q|{{{pl6_qual}}}}}<!--
--> <!--
-->}}<!--
-->'''{{l-self|enm|{{{pl6}}}}}'''<!--
-->}}<!--
-->}}<!--
-->{{#if:{{{gen|}}}<!--
-->|<!--
-->, ''genitive'' <!--
-->'''{{l-self|enm|{{{gen}}}}}'''<!--
-->{{#if:{{{gen2|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{gen2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{gen3|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{gen3}}}}}'''<!--
-->}}<!--
-->}}<!--
-->{{#if:{{{dat|}}}<!--
-->|<!--
-->, ''dative'' <!--
-->'''{{l-self|enm|{{{dat}}}}}'''<!--
-->{{#if:{{{dat2|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{dat2}}}}}'''<!--
-->}}<!--
-->{{#if:{{{dat3|}}}<!--
-->|<!--
--> ''or'' <!--
-->'''{{l-self|enm|{{{dat3}}}}}'''<!--
-->}}<!--
-->}}<!--
-->)<!--
--><noinclude>{{documentation}}</noinclude>
if1ef038lsnwb0fj7oj2wwye1y4ib5y
සැකිල්ල:enm-noun/documentation
10
126570
196188
2021-10-12T04:04:04Z
en>Hazarasp
0
/* Parameters */
196188
wikitext
text/x-wiki
{{documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
===Usage===
This template is designed to format the head word (in bold), category, and inflection line of Middle English nouns. For noun plurals, please use {{temp|plural of}}, for other noun forms, please use {{temp|head}} and/or {{temp|form of}}.
===Parameters===
enm-noun has no mandatory parameters, all parameters are optional:
* <tt>p1</tt> or <tt>plural</tt>: the plural. Default: <nowiki>{{PAGENAME}}s</nowiki>. When specified as <tt>-</tt> (<tt><nowiki>{{enm-noun|-}}</nowiki></tt>), the noun is displayed as being [[uncountable]] and is added to [[:Category:Middle English uncountable nouns]].
* <tt>pl2...pl6</tt>: the second through sixth plurals. No defaults, optional
* <tt>pl2_qual...pl6_qual</tt>: qualifiers for the second through sixth plurals. No defaults, optional
* <tt>gen</tt>: the genitive. No default, optional
* <tt>gen2...gen3</tt>: the second and third genitives. No defaults, optional
* <tt>dat</tt>: the dative. No default, optional
* <tt>dat2...dat3</tt>: the second and third datives. No defaults, optional
* <tt>head</tt>: the head word in bold, for example to use macrons or to link to individual words. Default: <nowiki>{{PAGENAME}}</nowiki>
* <tt>sort</tt>: the sort key for [[:Category:Middle English nouns]], for example when a page name includes capital letters, diacritics or ligatures. Default: <nowiki>{{PAGENAME}}</nowiki>
===See also===
* {{temp|enm-verb}}
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:Middle English headword-line templates|noun]]
</includeonly>
inv23vambj5m9k8aqtj8f7v0zagnt9b
196189
196188
2024-12-05T11:38:28Z
Lee
19
[[:en:Template:enm-noun/documentation]] වෙතින් එක් සංශෝධනයක්
196188
wikitext
text/x-wiki
{{documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
===Usage===
This template is designed to format the head word (in bold), category, and inflection line of Middle English nouns. For noun plurals, please use {{temp|plural of}}, for other noun forms, please use {{temp|head}} and/or {{temp|form of}}.
===Parameters===
enm-noun has no mandatory parameters, all parameters are optional:
* <tt>p1</tt> or <tt>plural</tt>: the plural. Default: <nowiki>{{PAGENAME}}s</nowiki>. When specified as <tt>-</tt> (<tt><nowiki>{{enm-noun|-}}</nowiki></tt>), the noun is displayed as being [[uncountable]] and is added to [[:Category:Middle English uncountable nouns]].
* <tt>pl2...pl6</tt>: the second through sixth plurals. No defaults, optional
* <tt>pl2_qual...pl6_qual</tt>: qualifiers for the second through sixth plurals. No defaults, optional
* <tt>gen</tt>: the genitive. No default, optional
* <tt>gen2...gen3</tt>: the second and third genitives. No defaults, optional
* <tt>dat</tt>: the dative. No default, optional
* <tt>dat2...dat3</tt>: the second and third datives. No defaults, optional
* <tt>head</tt>: the head word in bold, for example to use macrons or to link to individual words. Default: <nowiki>{{PAGENAME}}</nowiki>
* <tt>sort</tt>: the sort key for [[:Category:Middle English nouns]], for example when a page name includes capital letters, diacritics or ligatures. Default: <nowiki>{{PAGENAME}}</nowiki>
===See also===
* {{temp|enm-verb}}
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:Middle English headword-line templates|noun]]
</includeonly>
inv23vambj5m9k8aqtj8f7v0zagnt9b
ᨾᨶᩩᩔ
0
126571
196190
2024-12-05T11:43:15Z
Lee
19
නිර්මාණය
196190
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
===Noun===
{{pi-noun|m}}
# {{pi-sc|Lana|manussa}} (“human”)
#* {{RQ:pi:Phaya Luang Maha Sena quote|25|sugato|19}}
====Declension====
{{pi-decl-noun|g=m}}
====References====
{{pi-Lana-MFL|ᨾᨶᩩᩔ}}
cbewn8iigmeo5z8k3t7e0v4d6e3c2hl
196191
196190
2024-12-05T11:43:49Z
Lee
19
196191
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
===Noun===
{{pi-noun|m}}
# {{pi-sc|Lana|මනුස්ස}}
#* {{RQ:pi:Phaya Luang Maha Sena quote|25|sugato|19}}
====Declension====
{{pi-decl-noun|g=m}}
====References====
{{pi-Lana-MFL|ᨾᨶᩩᩔ}}
sotnvhv0l3o9f4yr9mbhh0xvsh7sqra
196192
196191
2024-12-05T11:44:18Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196192
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Latn=manussa|Laoo=ມນຸສ຺ສ|Laoo2=ມະນຸສສະ|Laoo3=ມະນຸດສະ}}
=== නාම පදය ===
{{pi-noun|m}}
# {{pi-sc|Lana|මනුස්ස}}
#* {{RQ:pi:Phaya Luang Maha Sena quote|25|sugato|19}}
==== වරනැඟීම ====
{{pi-decl-noun|g=m}}
==== මූලාශ්ර ====
{{pi-Lana-MFL|ᨾᨶᩩᩔ}}
fd8jbydf9e0skbtdsrcyuzkzqz5e1e5
මනුස්සො
0
126572
196193
2024-12-05T11:47:38Z
Lee
19
නිර්මාණය
196193
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Latn=manusso|Laoo=ມນຸສ຺ໂສ|Laoo2=ມະນຸສໂສ|Laoo3=ມະນຸດໂສ}}
===Noun===
{{pi-noun form}}
# {{inflection of|pi|මනුස්ස||nom|s|t=මනුස්ස}}
af91vy9riznldetr7hi1cf4e777lsdp
196196
196193
2024-12-05T11:53:49Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196196
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Latn=manusso|Laoo=ມນຸສ຺ໂສ|Laoo2=ມະນຸສໂສ|Laoo3=ມະນຸດໂສ}}
=== නාම පදය ===
{{pi-noun form}}
# {{inflection of|pi|මනුස්ස||nom|s|t=මනුස්ස}}
l1tedutyhlmvf96zsx9waushpl9rdpg
manusso
0
126573
196194
2024-12-05T11:53:14Z
Lee
19
නිර්මාණය
196194
wikitext
text/x-wiki
==Pali==
===Alternative forms===
{{pi-alt|Latn=manusso|Laoo=ມນຸສ຺ໂສ|Laoo2=ມະນຸສໂສ|Laoo3=ມະນຸດໂສ}}
===Noun===
{{pi-noun form}}
# {{pi-sc|Latn|මනුස්සො}}, {{inflection of|pi|manussa||nom|s|t=මනුස්ස}}
3xqcl947cr0cbiz0rtycow6q00t3wm0
196195
196194
2024-12-05T11:53:39Z
Pinthura
2424
යොමු තොරතුරු පරිවර්තනය
196195
wikitext
text/x-wiki
== පාලි ==
=== වෙනත් ආකාර ===
{{pi-alt|Latn=manusso|Laoo=ມນຸສ຺ໂສ|Laoo2=ມະນຸສໂສ|Laoo3=ມະນຸດໂສ}}
=== නාම පදය ===
{{pi-noun form}}
# {{pi-sc|Latn|මනුස්සො}}, {{inflection of|pi|manussa||nom|s|t=මනුස්ස}}
0airm1vuoj064bhk7udqm7s1hhthqoc
සැකිල්ල:pi-noun form
10
126574
196197
2024-04-27T13:46:31Z
en>SurjectionBot
0
Protected "[[Template:pi-noun form]]": (bot) automatically protect highly visible templates/modules (reference score: 1214+ >= 1000) ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
196197
wikitext
text/x-wiki
{{head|pi|noun form|tr={{pi-hwtr|{{{tr|-}}}}}<noinclude>|head=PAGENAME</noinclude>|g={{{1|}}}|sccat=1}}<!--
-->{{#ifeq:{{{tr}}}||[[category:Pali terms with bad transliteration code]]}}<!--
--><noinclude>{{documentation}}</noinclude>
k3yxd2ympjc7m0g94hfujakiqb87l8o
196198
196197
2024-12-05T11:55:18Z
Lee
19
[[:en:Template:pi-noun_form]] වෙතින් එක් සංශෝධනයක්
196197
wikitext
text/x-wiki
{{head|pi|noun form|tr={{pi-hwtr|{{{tr|-}}}}}<noinclude>|head=PAGENAME</noinclude>|g={{{1|}}}|sccat=1}}<!--
-->{{#ifeq:{{{tr}}}||[[category:Pali terms with bad transliteration code]]}}<!--
--><noinclude>{{documentation}}</noinclude>
k3yxd2ympjc7m0g94hfujakiqb87l8o
සැකිල්ල:pi-noun form/documentation
10
126575
196199
2023-06-29T19:20:03Z
en>RichardW57
0
196199
wikitext
text/x-wiki
{{documentation subpage}}
This template is used for displaying Pali noun form headword, optionally with its gender. Additionally, it also puts the word into "Category:Pali noun forms in ... script".
== Parameters ==
; {{para|1=1|opt=1}}
: Specify gender of the noun.
; {{para|g2|opt=1}}
: Additional gender(s).
; {{para|tr|opt=1}}
: Transliteration. It is only needed for non-Roman script forms for which it is not implicitly given by {{tl|pi-sc}} on the definition line. If the parameter name is given as {{para|tr|+}} (e.g. {{tl|pi-noun form|m|tr=+}} in [[ສັມພຸດໂທ]]), the default transliteration (''sambuddo'' in this case) will appear. It the parameter is omitted, no transliteration will appear.
<includeonly>
[[Category:Pali headword-line templates|noun form]]
</includeonly>
9dr1kc32985j19kp0cocxe00wgwmuce
196200
196199
2024-12-05T11:55:43Z
Lee
19
[[:en:Template:pi-noun_form/documentation]] වෙතින් එක් සංශෝධනයක්
196199
wikitext
text/x-wiki
{{documentation subpage}}
This template is used for displaying Pali noun form headword, optionally with its gender. Additionally, it also puts the word into "Category:Pali noun forms in ... script".
== Parameters ==
; {{para|1=1|opt=1}}
: Specify gender of the noun.
; {{para|g2|opt=1}}
: Additional gender(s).
; {{para|tr|opt=1}}
: Transliteration. It is only needed for non-Roman script forms for which it is not implicitly given by {{tl|pi-sc}} on the definition line. If the parameter name is given as {{para|tr|+}} (e.g. {{tl|pi-noun form|m|tr=+}} in [[ສັມພຸດໂທ]]), the default transliteration (''sambuddo'' in this case) will appear. It the parameter is omitted, no transliteration will appear.
<includeonly>
[[Category:Pali headword-line templates|noun form]]
</includeonly>
9dr1kc32985j19kp0cocxe00wgwmuce
ප්රවර්ගය:පාලි නාම පද ස්වරූප
14
126576
196201
2024-12-05T11:58:51Z
Pinthura
2424
සේවා: [[:[[en:Category:Pali noun forms]]]] තුළ තිබූ පෙළ මෙහි ඇතුළු කිරීම.
196201
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx