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/&#x200b;vant || {{l|pi|guṇavant}}<br>(guṇavā) || - || {{l|pi|guṇavant}}<br>(guṇavaṃ) --> ! mant/&#x200b;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/&#x200b;vant || {{l|pi|guṇavant}}<br>(guṇavā) || - || {{l|pi|guṇavant}}<br>(guṇavaṃ) --> ! mant/&#x200b;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|}}}}}<!-- -->&#32;(<!-- -->{{#ifeq:{{{1}}}|-<!-- -->|<!-- -->''[[Appendix:Glossary#uncountable|uncountable]]''{{catlangname|enm|uncountable nouns}}<!-- -->|<!-- -->''plural'' <!-- -->'''{{l-self|enm|{{{pl|{{{1|{{PAGENAME}}s}}}}}}}}'''<!-- -->{{#if:{{{pl2|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl2_qual|}}}<!-- -->|<!-- -->{{q|{{{pl2_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl3|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl3_qual|}}}<!-- -->|<!-- -->{{q|{{{pl3_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl3}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl4|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl4_qual|}}}<!-- -->|<!-- -->{{q|{{{pl4_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl4}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl5|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl5_qual|}}}<!-- -->|<!-- -->{{q|{{{pl5_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl5}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl6|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl6_qual|}}}<!-- -->|<!-- -->{{q|{{{pl6_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl6}}}}}'''<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{gen|}}}<!-- -->|<!-- -->,&#32;''genitive'' <!-- -->'''{{l-self|enm|{{{gen}}}}}'''<!-- -->{{#if:{{{gen2|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{gen2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{gen3|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{gen3}}}}}'''<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{dat|}}}<!-- -->|<!-- -->,&#32;''dative'' <!-- -->'''{{l-self|enm|{{{dat}}}}}'''<!-- -->{{#if:{{{dat2|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{dat2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{dat3|}}}<!-- -->|<!-- -->&#32;''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|}}}}}<!-- -->&#32;(<!-- -->{{#ifeq:{{{1}}}|-<!-- -->|<!-- -->''[[Appendix:Glossary#uncountable|uncountable]]''{{catlangname|enm|uncountable nouns}}<!-- -->|<!-- -->''plural'' <!-- -->'''{{l-self|enm|{{{pl|{{{1|{{PAGENAME}}s}}}}}}}}'''<!-- -->{{#if:{{{pl2|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl2_qual|}}}<!-- -->|<!-- -->{{q|{{{pl2_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl3|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl3_qual|}}}<!-- -->|<!-- -->{{q|{{{pl3_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl3}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl4|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl4_qual|}}}<!-- -->|<!-- -->{{q|{{{pl4_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl4}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl5|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl5_qual|}}}<!-- -->|<!-- -->{{q|{{{pl5_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl5}}}}}'''<!-- -->}}<!-- -->{{#if:{{{pl6|}}}<!-- -->|<!-- -->&#32;''or'' {{#if:{{{pl6_qual|}}}<!-- -->|<!-- -->{{q|{{{pl6_qual}}}}}<!-- -->&#32;<!-- -->}}<!-- -->'''{{l-self|enm|{{{pl6}}}}}'''<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{gen|}}}<!-- -->|<!-- -->,&#32;''genitive'' <!-- -->'''{{l-self|enm|{{{gen}}}}}'''<!-- -->{{#if:{{{gen2|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{gen2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{gen3|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{gen3}}}}}'''<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{dat|}}}<!-- -->|<!-- -->,&#32;''dative'' <!-- -->'''{{l-self|enm|{{{dat}}}}}'''<!-- -->{{#if:{{{dat2|}}}<!-- -->|<!-- -->&#32;''or'' <!-- -->'''{{l-self|enm|{{{dat2}}}}}'''<!-- -->}}<!-- -->{{#if:{{{dat3|}}}<!-- -->|<!-- -->&#32;''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