ဝိၵ်ႇသျိၼ်ႇၼရီႇ shnwiktionary https://shn.wiktionary.org/wiki/%E1%80%9D%E1%80%AD%E1%81%B5%E1%80%BA%E1%82%87%E1%80%9E%E1%80%BB%E1%80%AD%E1%81%BC%E1%80%BA%E1%82%87%E1%81%BC%E1%80%9B%E1%80%AE%E1%82%87:%E1%81%BC%E1%82%83%E1%82%88%E1%82%81%E1%80%B0%E1%80%9D%E1%80%BA%E1%82%81%E1%82%85%E1%81%B5%E1%80%BA%E1%82%88 MediaWiki 1.47.0-wmf.2 case-sensitive သိုဝ်ႇၶၢဝ်ႇ ၶိုၵ်ႉတွၼ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဝိၵ်ႇသျိၼ်ႇၼရီႇ လွင်ႈဢုပ်ႇဢူဝ်း ဝိၵ်ႇသျိၼ်ႇၼရီႇ ၾၢႆႇ ဢုပ်ႇၵုမ် ၾၢႆႇ မီႇတီႇယႃႇဝီႇၶီႇ ဢုပ်ႇၵုမ် မီႇတီႇယႃႇဝီႇၶီႇ ထႅမ်းပလဵတ်ႉ ဢုပ်ႇၵုမ် ထႅမ်းပလဵတ်ႉ လွင်ႈၸွႆႈထႅမ် ဢုပ်ႇၵုမ် လွင်ႈၸွႆႈထႅမ် ပိူင်ထၢၼ်ႈ ဢုပ်ႇၵုမ် ပိူင်ထၢၼ်ႈ ၵိူၼ်ႇတူ ဢုပ်ႇၵုမ် ၵိူၼ်ႇတူ တွၼ်ႈၸပ်းႁၢင် ဢုပ်ႇၵုမ် တွၼ်ႈၸပ်းႁၢင် တူၼ်းၸၢပ်ႈလႅပ်ႈ ဢုပ်ႇၵုမ် တူၼ်းၸၢပ်ႈလႅပ်ႈ ၶိုၼ်းၵေႃႇသၢင်ႈ ဢုပ်ႇၵုမ် ၶိုၼ်းၵေႃႇသၢင်ႈ TimedText TimedText talk မေႃႇၵျူး ဢုပ်ႇၵုမ် မေႃႇၵျူး Event Event talk မေႃႇၵျူး:form of/templates 828 20459 266450 254589 2026-05-19T03:00:49Z Hiyuune 871 266450 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local form_of_module = "Module:form of" local functions_module = "Module:fun" local headword_data_module = "Module:headword/data" local languages_module = "Module:languages" local load_module = "Module:load" local parameters_module = "Module:parameters" local parameter_utilities_module = "Module:parameter utilities" local parse_interface_module = "Module:parse interface" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local insert = table.insert local ipairs = ipairs local pairs = pairs local require = require -- FIXME: Finish [[Module:format utilities]]. -- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true} --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_form_of(...) format_form_of = require(form_of_module).format_form_of return format_form_of(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function is_callable(...) is_callable = require(functions_module).is_callable return is_callable(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function safe_load_data(...) safe_load_data = require(load_module).safe_load_data return safe_load_data(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_tag_set(...) split_tag_set = require(form_of_module).split_tag_set return split_tag_set(...) end local function tagged_inflections(...) tagged_inflections = require(form_of_module).tagged_inflections return tagged_inflections(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ucfirst(...) ucfirst = require(string_utilities_module).ucfirst return ucfirst(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local force_cat local function get_force_cat() force_cat, get_force_cat = require(form_of_module).force_cat, nil return force_cat end local m_form_of_pos local function get_m_form_of_pos() m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil return m_form_of_pos end local module_prefix local function get_module_prefix() module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil return module_prefix end --[==[ intro: This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other [[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also [[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules. ]==] -- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is -- [[Wiktionary:Tracking/form-of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form -- [[Wiktionary:Tracking/form-of/PAGE]]. local function track(page, template) debug_track("form of/" .. (template and template .. "/" or "") .. page) end local function get_common_template_params() return { -- Named params not controlling link display ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["notext"] = {type = "boolean"}, ["sort"] = true, ["enclitic"] = true, -- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the -- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances. ["nocap"] = {type = "boolean"}, ["addl"] = true, -- additional text to display at the end, before the closing </span> ["pagename"] = true, -- for testing, etc. } end -- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which -- may be nil for no splitting. local function split_inflection_tags(tagspecs, split_regex) if not split_regex then return tagspecs end local inflection_tags = {} for _, tagspec in ipairs(tagspecs) do for tag in gsplit(tagspec, split_regex) do insert(inflection_tags, tag) end end return inflection_tags end local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang) local function generate_obj(term) return {lang = lang, term = decode_entities(term)} end return parse_inline_modifiers(val, { paramname = paramname, param_mods = param_mods, generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end -- Modify PARAMS in-place by adding parameters that control the link to the -- main entry. TERM_PARAM is the number of the param specifying the main -- entry itself; TERM_PARAM + 1 will be the display text, and TERM_PARAM + 2 -- will be the gloss, unless NO_NUMBERED_GLOSS is given. local function add_link_params(parent_args, params, term_param, no_numbered_gloss) params[term_param + 1] = {alias_of = "alt"} if not no_numbered_gloss then params[term_param + 2] = {alias_of = "t"} end -- Numbered params controlling link display params[term_param] = true end -- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this -- before calling [[Module:parameters]] on parent_args. local function ine(arg) if not arg then return nil end arg = trim(arg) return arg ~= "" and arg or nil end local function add_base_lemma_params(parent_args, iargs, params, compat) -- Check the language-specific data for additional base lemma params. But if there's no language-specific data, -- attempt any parent varieties as well (i.e. superordinate varieties). local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true) while lang do local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode()) if langdata then local base_lemma_params = langdata.base_lemma_params if base_lemma_params then for _, param in ipairs(base_lemma_params) do params[param.param] = true end return base_lemma_params end end lang = lang:getParent() end end local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local base_lemma_params if not iargs.nolink and not iargs.linktext then add_link_params(parent_args, params, term_param, no_numbered_gloss) base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat) end return base_lemma_params end local function handle_withdot_withcap(iargs, params) local ignored_tracked_params = {} if iargs.withdot then params.dot = true params.nodot = {type = "boolean"} end if iargs.withcap and iargs.withencap then error("Internal error: Can specify only one of withcap= and withencap=") end if not iargs.withcap then params.cap = {type = "boolean"} ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always" end return ignored_tracked_params end --[=[ Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the following fields: * `template`: Approximate template name, for debug tracking; * `iargs`: processed invocation arguments; * `parent_args`: raw parent args from `frame:getParent().args`; * `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but without any link params; * `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed; * `term_param`: the parent argument specifying the main entry; * `compat`: true if the language code is found in args.lang instead of args[1]; * `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data; * `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any language-specific categories. See below. This function does several things: # If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params` structure with separate link parameters. # Modify the parent args as appropriate if invocation arguments def= or ignore= are given. # Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may consist of multiple comma-separated terms). # Compute categories to add to the page, including language-specific categories and any categories requested by the invocation or parent args. # Parse enclitic and extra base lemma parameters. # Construct the actual text using `do_form_of`. # Add a terminating period/dot as appropriate, along with the formatted categories. `do_form_of` takes one argument, `lemma_data`, which looks like this: { lang = LANG, args = {ARG = VALUE, ARG = VALUE, ...}, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...}, base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...}, categories = {"CATEGORY", "CATEGORY", ...}, posttext = "POSTTEXT" or nil, } where * LANG is the language code; * ARGS is the parsed arguments, based on what the user specified; * LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]]; however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the invocation argument nolink= is given, it will be nil; * ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]]; * BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as {"comd"} or {"past", "part"}; * CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or parent args and any tracking categories, but not any additional lang-specific categories that may be added by {{inflection of}} or similar templates); * POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first line, before the colon, in a multiline {{infl of}} call). `do_form_of` should return two arguments: (1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating period/dot. (2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the invocation or parent arguments, which will automatically be added to the page). ]=] local function construct_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, do_form_of = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of local term_param = iargs.term_param local compat = iargs.lang or parent_args.lang term_param = term_param or compat and 1 or 2 -- Numbered params params[compat and "lang" or 1] = { required = not iargs.lang, type = "language", default = iargs.lang or "und" } local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local ignored_tracked_params = handle_withdot_withcap(iargs, params) --[=[ Process parent arguments. This is similar to the following: require("Module:parameters").process(parent_args, params) but in addition it does the following: (1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters will process the value appropriately. (2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or list-argument names to remove of the form "ARG:list". (3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set-type table where the keys are arguments as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be boolean true. ]=]-- local defaults = iargs.def local ignorespecs = iargs.ignore if defaults[1] or ignorespecs[1] then local new_parent_args = {} for _, default in ipairs(defaults) do local defparam, defval = default:match("^(.-)=(.*)$") if not defparam then error("Bad default spec " .. default) end new_parent_args[defparam] = defval end local params_to_ignore = {} local numbered_list_params_to_ignore = {} local named_list_params_to_ignore = {} for _, ignorespec in ipairs(ignorespecs) do for ignore in gsplit(ignorespec, ",") do local param = ignore:match("^(.*):list$") if param then if param:match("^%d+$") then insert(numbered_list_params_to_ignore, tonumber(param)) else insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$") end else if ignore:match("^%d+$") then ignore = tonumber(ignore) end params_to_ignore[ignore] = true end end end for k, v in pairs(parent_args) do if not params_to_ignore[k] then local ignore_me = false if type(k) == "number" then for _, lparam in ipairs(numbered_list_params_to_ignore) do if k >= lparam then ignore_me = true break end end else for _, lparam in ipairs(named_list_params_to_ignore) do if k:match(lparam) then ignore_me = true break end end end if not ignore_me then new_parent_args[k] = v end end end parent_args = new_parent_args end local m_param_utils, param_mods local function init_param_mods() if not m_param_utils then m_param_utils = require(parameter_utilities_module) param_mods = m_param_utils.construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "conj", set = allowed_conj_set, overall = true}, } end end local terms, args if iargs.nolink or iargs.linktext then args = process_params(parent_args, params) else init_param_mods() terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params { params = params, param_mods = param_mods, raw_args = parent_args, termarg = term_param, track_module = "form-of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc", -- Don't do this, doesn't seem to make sense. -- parse_lang_prefix = true, make_separate_g_into_list = true, splitchar = ",", subitem_param_handling = "last", } end local lang = args[compat and "lang" or 1] -- Tracking for certain user-specified params. This is generally used for -- parameters that we accept but ignore, so that we can eventually remove -- all uses of these params and stop accepting them. if ignored_tracked_params then for ignored_tracked_param, condition in pairs(ignored_tracked_params) do if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then track("arg/" .. ignored_tracked_param, template) track("arg/" .. ignored_tracked_param) end end end -- Determine categories for the page, including tracking categories local categories = {} if not args.nocat then for _, cat in ipairs(iargs.cat) do insert(categories, cat .. lang:getFullName()) end end for _, cat in ipairs(args.cat) do insert(categories, cat .. lang:getFullName()) end -- Format the link, preceding text and categories local function add_term_tracking_categories(term) -- add tracking category if term is same as page title if term and mw.title.getCurrentTitle().text == (lang:makeEntryName(term)) then insert(categories, "Forms linking to themselves") end -- maybe add tracking category if primary entry doesn't exist (this is an -- expensive call so we don't do it by default) if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == "" and not mw.title.new(term):getContent() then insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat) end end local lemmas if iargs.nolink then lemmas = nil elseif iargs.linktext then lemmas = iargs.linktext else if not terms.terms[1] then if mw.title.getCurrentTitle().nsText == "ထႅမ်းပလဵတ်ႉ" then terms.terms[1] = { lang = lang, term = "term" } else error("No linked-to term specified") end end for _, termobj in ipairs(terms.terms) do if termobj.term then add_term_tracking_categories(termobj.term) end -- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've -- changed it. Hopefully nothing depended on the old behavior. end lemmas = terms.terms end local enclitics, enclitic_conj if args.enclitic then init_param_mods() local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, param_mods, lang) enclitics = enclitics_obj.terms enclitic_conj = enclitics_obj.conj end local base_lemmas = {} if base_lemma_params then for _, base_lemma_param_obj in ipairs(base_lemma_params) do local param = base_lemma_param_obj.param if args[param] then init_param_mods() local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param], param_mods, lang) insert(base_lemmas, { paramobj = base_lemma_param_obj, lemmas = base_lemmas_obj.terms, conj = base_lemmas_obj.conj, }) end end end local posttext = iargs.posttext local addl = args.addl if addl then posttext = posttext or "" if addl:find("^[;:]") then posttext = posttext .. addl elseif addl:find("^_") then posttext = posttext .. " " .. addl:sub(2) else posttext = posttext .. ", " .. addl end end local lemma_data = { lang = lang, args = args, lemmas = lemmas, conj = terms and terms.conj or iargs.conj, enclitics = enclitics, enclitic_conj = enclitic_conj, base_lemmas = base_lemmas, categories = categories, posttext = posttext, } local form_of_text, lang_cats = do_form_of(lemma_data) extend(lemma_data.categories, lang_cats) local text = form_of_text .. ( args.nodot and "" or args.dot or iargs.withdot and "." or "" ) if #lemma_data.categories == 0 then return text end return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort, -- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given, -- it will override the base; otherwise, the base will be converted appropriately to a sort key using the -- same algorithm applied to pagenames. iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term, -- Supply the first lemma's script for sort key computation. force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc) end -- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). local function get_common_invocation_params() return { ["term_param"] = {type = "number"}, ["lang"] = true, -- To be used as the default code in params. ["sc"] = {type = "script"}, ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["ignore"] = {list = true}, ["def"] = {list = true}, ["conj"] = {set = allowed_conj_set, default = "and"}, ["withcap"] = {type = "boolean"}, ["withencap"] = {type = "boolean"}, ["withdot"] = {type = "boolean"}, ["nolink"] = {type = "boolean"}, ["linktext"] = true, ["posttext"] = true, ["noprimaryentrycat"] = true, ["lemma_is_sort_key"] = true, } end local function should_ucfirst_text(args, iargs, lang) local code = lang:getCode() return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap end --[==[ Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}} or templates that take tagged inflection parameters). Invocation params: ; {{para|1|req=1}} : Text to display before the link. ; {{para|term_param}} : Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template param {{para|lang}} is present, otherwise 2. ; {{para|lang}} : Default language code for language-specific templates. If specified, no language code needs to be specified, and if specified it needs to be set using {{para|lang}}, not {{para|1}}. ; {{para|sc}} : Default script code for language-specific templates. The script code can still be overridden using template param {{para|sc}}. ; {{para|cat}}, {{para|cat2}}, ...: : Categories to place the page into. The language name will automatically be prepended. Note that there is also a template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param can specify multiple comma-separated categories if no space follows the comma. ; {{para|ignore}}, {{para|ignore2}}, ...: : One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or specifications of the form `PARAM:list` to specify that the parameter is a list parameter. ; {{para|def}}, {{para|def2}}, ...: : One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default for template param {{para|tr}} to be `-`. Actual template params override these defaults. ; {{para|withcap}} : Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given. ; {{para|withencap}} : Capitalize the first character of the text preceding the link if the language is English and template param {{para|nocap}} is not given. ; {{para|withdot}} : Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or {{para|dot}} is given to specify an alternative punctuation character. ; {{para|nolink}} : Suppress the display of the link. If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. {{para|linktext}} : Override the display of the link with the specified text. This is useful if a custom template is available to format the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. ; {{para|posttext}} : Additional text to display directly after the formatted link, before any terminating period/dot and inside of `<span class='use-with-mention'>`. ; {{para|noprimaryentrycat}} : Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be prepended. ; {{para|lemma_is_sort_key}} : If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself). ]==] function export.form_of_t(frame) local iparams = get_common_invocation_params() iparams[1] = {required = true} local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() if next(iargs.cat) then params.nocat = {type = "boolean"} end return construct_form_of_text { template = "form-of-t", iargs = iargs, parent_args = parent_args, params = params, do_form_of = function(lemma_data) local args = lemma_data.args local text if args.notext then text = "" else text = iargs[1] if should_ucfirst_text(args, iargs, lemma_data.lang) then text = ucfirst(text) end end return format_form_of { text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", posttext = lemma_data.posttext }, {} end } end --[=[ Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags. This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags. It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and should be directly returned as the template function's return value. ]=] local function construct_tagged_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, tags = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags -- Named params not controlling link display -- Always included because lang-specific categories may be added params.nocat = {type = "boolean"} params.p = true params.POS = {alias_of = "p"} return construct_form_of_text { template = template, iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = no_numbered_gloss, do_form_of = function(lemma_data) local args = lemma_data.args if is_callable(tags) then tags = tags(args) end -- NOTE: tagged_inflections returns two values, so we do too. return tagged_inflections { lang = lemma_data.lang, tags = tags, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, enclitic_conj = lemma_data.enclitic_conj, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", POS = args.p, pagename = args.pagename, -- Set no_format_categories because we do it ourselves in construct_form_of_text(). no_format_categories = true, nocat = args.nocat, notext = args.notext, capfirst = should_ucfirst_text(args, iargs, lemma_data.lang), posttext = lemma_data.posttext, } end } end --[==[ Function that implements form-of templates that are defined by specific tagged inflections (typically a template referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the "form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags. Invocation params: ; {{para|1|req=1}}, {{para|2}}, ... : One or more inflection tags describing the inflection in question. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. ; {{para|term_param}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap}} ; {{para|withencap}} ; {{para|withdot}} ; {{para|nolink}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key}} : All of these are the same as in {form_of_t()}. ]==] function export.tagged_form_of_t(frame) local iparams = get_common_invocation_params() iparams[1] = {list = true, required = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() return construct_tagged_form_of_text { template = "tagged-form-of-t", iargs = iargs, parent_args = parent_args, params = params, tags = split_inflection_tags(iargs[1], iargs.split_tags), } end --[==[ Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and {{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of inflection tags. It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling template is : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}} instead of : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}} Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or {{para|gloss}}. Invocation params: ; {{para|preinfl}}, {{para|preinfl2}}, ... : Extra inflection tags to automatically prepend to the tags specified by the template. ; {{para|postinfl}}, {{para|postinfl2}}, ... : Extra inflection tags to automatically append to the tags specified by the template. Used for example by {{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which past participle form the page refers to. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags. ; {{para|term_param}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap}} ; {{para|withencap}} ; {{para|withdot}} ; {{para|nolink}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key}} : All of these are the same as in {form_of_t()}. ]==] function export.inflection_of_t(frame) local iparams = get_common_invocation_params() iparams.preinfl = {list = true} iparams.postinfl = {list = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() local compat = iargs.lang or parent_args.lang local tagsind = (iargs.term_param or compat and 1 or 2) + 2 params[tagsind] = {list = true, -- at least one inflection tag is required unless preinfl or postinfl tags are given required = #iargs.preinfl == 0 and #iargs.postinfl == 0} return construct_tagged_form_of_text { template = "inflection-of-t", iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = true, tags = function(args) local infls if not next(iargs.preinfl) and not next(iargs.postinfl) then -- If no preinfl or postinfl tags, just use the user-specified tags directly. infls = args[tagsind] else -- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set -- (no semicolon), it's easier. Since this is common, we optimize for it. infls = {} local saw_semicolon = false for _, infl in ipairs(args[tagsind]) do if infl == ";" then saw_semicolon = true break end end local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags) local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags) if not saw_semicolon then extend(infls, split_preinfl) extend(infls, args[tagsind]) extend(infls, split_postinfl) else local groups = split_tag_set(args[tagsind]) for _, group in ipairs(groups) do if #infls > 0 then insert(infls, ";") end extend(infls, split_preinfl) extend(infls, group) extend(infls, split_postinfl) end end end return infls end, } end --[==[ Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of invocation arg {{para|default}}. ]==] function export.normalize_pos(frame) local iparams = { [1] = true, ["default"] = true, } local iargs = process_params(frame.args, iparams) if not iargs[1] and not iargs.default then error("Either 1= or default= must be given in the invocation args") end if not iargs[1] then return iargs.default end return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1] end return export gt1oalvoq8y7nb21mfb4kbjj3qv1jv6 ထႅမ်းပလဵတ်ႉ:en-archaic second-person singular of 10 33417 266454 79100 2026-05-19T03:07:38Z Hiyuune 871 Requesting deletion ([[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]] v3.1b) 266454 wikitext text/x-wiki <noinclude>{{delete|template not used <small>[[:m:Special:MyLanguage/User:TenWhile6/XReport|XReport]]</small>}}</noinclude> {{lb|en|archaic|nocat=1}} {{#invoke:form of/templates|form_of_t|second-person singular simple present form of|lang=en|cat=second-person singular forms}}<!-- --><noinclude>{{documentation}}</noinclude> scccp6v0sj829an21qja13lxqfxmr5c barest 0 33419 266451 241842 2026-05-19T03:03:38Z Hiyuune 871 /* */ edited using [[wikt:User:Dixtosa/AjaxEdit.js|AjaxEdit]] 266451 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ငဝ်ႈငႃႇၶေႃႈၵႂၢမ်း=== {{ety|en|:af|bare|-est|text=+|tree=1}} ===သဵင်ဢွၵ်ႇ=== * {{audio|en|en-us-barest.ogg|သဵင် (US)}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|bare}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|bare||st-form}} # {{infl of|en|bear||st-past-form}} oybhdc72k0oxjo8pt20fgw1692l805j 266452 266451 2026-05-19T03:04:21Z Hiyuune 871 /* */ edited using [[wikt:User:Dixtosa/AjaxEdit.js|AjaxEdit]] 266452 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ငဝ်ႈငႃႇၶေႃႈၵႂၢမ်း=== {{ety|en|:af|bare|-est|text=+|tree=1}} ===သဵင်ဢွၵ်ႇ=== * {{audio|en|en-us-barest.ogg|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|bare}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|bare||st-form}} # {{infl of|en|bear||st-past-form}} k52e2je3elkueo906iliwjttuje4e5r fastest 0 34104 266453 121838 2026-05-19T03:05:12Z Hiyuune 871 /* */ edited using [[wikt:User:Dixtosa/AjaxEdit.js|AjaxEdit]] 266453 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Flame, not lame-fastest.wav|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|fast|pos=ၵမ်ႉႁိၵ်ႈ}} ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|fast|pos=ၵမ်ႉသၢင်ႈ}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|fast||st-form}} 1ybazmc8wpyqy7j5s9jwbf82zbzk6tg မေႃႇၵျူး:chemical element list 828 54842 266449 260862 2026-05-19T02:54:21Z Hiyuune 871 fix error 266449 Scribunto text/plain local export = {} local M = require("Module:module loader").init({ require = { links = "Module:links", string_utilities = "Module:string utilities", table = "Module:table", qualifier = "Module:qualifier", gender_and_number = "Module:gender and number", parameters = "Module:parameters", }, loadData = { common_elements_data = "Module:chemical element list/data/common", }, }) local function common_element_row_with_symbol(atomic_number) local el = M.common_elements_data and M.common_elements_data.elements local row = el and el[atomic_number] if type(row) == "table" and type(row.symbol) == "string" and row.symbol ~= "" then return row end return nil end local concat = table.concat local insert = table.insert local lower = string.lower local upper = string.upper local UI_STRINGS = { default_name_display = "ၸိုဝ်ႈ", atomic_number_caption = "မၢႆဢတေႃးမိၵ်ႉ %s", block_suffix = "ၸုမ်း-", classification_fields = { { key = "period", label = "ထႅဝ်ၼွၼ်း", full_label = "ထႅဝ်ၼွၼ်း" }, { key = "group", label = "ထႅဝ်တင်ႈ", full_label = "ထႅဝ်တင်ႈ" }, { key = "block", label = "ၸုမ်း", full_label = "ၸုမ်းထၢတ်ႈၸွမ်းၸၼ်ႉႁႅင်း" }, { key = "element_class", label = "မဵဝ်း", full_label = "မဵဝ်းထၢတ်ႈငဝ်ႈ" }, }, previous = "ပူၼ်ႉမႃး: ", next = "တေမႃး: ", appendix_list_title = "ထၢတ်ႈငဝ်ႈ တီႈ %s", header_appendix_link = "[[Appendix:%s|ထၢတ်ႈငဝ်ႈ]]", header_generic = "[[:en:chemical element|ထၢတ်ႈငဝ်ႈ]]", wikipedia_footer_portal = "[[w:%s:|ဝီႇၶီႇၽီးတီးယႃး%s]]", wikipedia_footer_article_on = "လိၵ်ႈႁွမ်တွမ် ", edit_link_label = "ထတ်း", legacy_systematic_name_label = "Former IUPAC systematic name", alternative_names_heading = "ၸိုဝ်ႈတၢင်ႇဢၼ်", collapsible_expand = "ၼႄ", collapsible_collapse = "သိူင်ႇ", classification_data_heading = "ၵၢၼ်ၸႅၵ်ႇမဵဝ်း ၶေႃႈမုၼ်း", } local default_name_types = { { key = "name", display = UI_STRINGS.default_name_display }, } function export.get_data_module_name(langcode) return "Module:chemical element list/data/" .. langcode end local function normalize_atomic_number(value) if not value then return nil end value = tostring(value):gsub(",", "") if not value:find("^%d+$") then return nil end return tostring(tonumber(value)) end local function normalize_symbol(value) if not value or value == "" then return nil end local symbol = tostring(value) return upper(symbol:sub(1, 1)) .. lower(symbol:sub(2)) end local EXTENDED_DIGIT_DATA = { ["0"] = { symbol = "n", name = "nil" }, ["1"] = { symbol = "u", name = "un" }, ["2"] = { symbol = "b", name = "bi" }, ["3"] = { symbol = "t", name = "tri" }, ["4"] = { symbol = "q", name = "quad" }, ["5"] = { symbol = "p", name = "pent" }, ["6"] = { symbol = "h", name = "hex" }, ["7"] = { symbol = "s", name = "sept" }, ["8"] = { symbol = "o", name = "oct" }, ["9"] = { symbol = "e", name = "enn" }, } local DEFAULT_SYSTEMATIC_ELISIONS = { { "iium$", "ium" }, { "ennnil", "ennil" }, } local function build_systematic_maps(systematic_config) local config = systematic_config or {} local digit_data = config.digit_data if type(digit_data) ~= "table" then digit_data = {} for digit, data in pairs(EXTENDED_DIGIT_DATA) do digit_data[digit] = data end end local symbol_digits = {} local name_digits = {} local symbol_reverse_digits = {} for digit, data in pairs(digit_data) do local symbol = data and data.symbol local name = data and data.name if symbol and name then symbol_digits[digit] = symbol name_digits[digit] = name symbol_reverse_digits[symbol] = digit end end return symbol_digits, name_digits, symbol_reverse_digits end local function build_systematic_symbol_from_number(atomic_number, systematic_config) local symbol_digits = build_systematic_maps(systematic_config) local symbol_parts = {} for digit in tostring(atomic_number):gmatch("%d") do local symbol_part = symbol_digits[digit] if not symbol_part then return nil end insert(symbol_parts, symbol_part) end if #symbol_parts == 0 then return nil end symbol_parts[1] = upper(symbol_parts[1]) return concat(symbol_parts) end local function get_extended_symbol(atomic_number, systematic_config) return build_systematic_symbol_from_number(atomic_number, systematic_config) end local function build_systematic_name_from_number(atomic_number, systematic_config) local _, name_digits = build_systematic_maps(systematic_config) local name_parts = {} for digit in tostring(atomic_number):gmatch("%d") do local name_part = name_digits[digit] if not name_part then return nil end insert(name_parts, name_part) end if #name_parts == 0 then return nil end local suffix = systematic_config and systematic_config.suffix or "ium" local name = concat(name_parts) .. suffix -- IUPAC elisions for temporary systematic names. local elisions = systematic_config and systematic_config.elisions if systematic_config and systematic_config.replace_default_elisions and type(elisions) == "table" then for _, rule in ipairs(elisions) do local pattern = rule and rule[1] local repl = rule and rule[2] or "" if pattern then name = name:gsub(pattern, repl) end end else for _, rule in ipairs(DEFAULT_SYSTEMATIC_ELISIONS) do local pattern = rule[1] local repl = rule[2] or "" name = name:gsub(pattern, repl) end if type(elisions) == "table" then for _, rule in ipairs(elisions) do local pattern = rule and rule[1] local repl = rule and rule[2] or "" if pattern then name = name:gsub(pattern, repl) end end end end return name end local function get_extended_name(atomic_number, systematic_config) if common_element_row_with_symbol(atomic_number) then return nil end return build_systematic_name_from_number(atomic_number, systematic_config) end local function parse_extended_symbol_to_number(symbol, systematic_config) if type(symbol) ~= "string" or symbol == "" then return nil end local _, _, symbol_reverse_digits = build_systematic_maps(systematic_config) local digits = {} for char in lower(symbol):gmatch(".") do local digit = symbol_reverse_digits[char] if not digit then return nil end insert(digits, digit) end if #digits == 0 then return nil end local normalized = normalize_atomic_number(concat(digits)) if not normalized then return nil end local number = tonumber(normalized) if not number or common_element_row_with_symbol(number) then return nil end return normalized end local function parse_systematic_name_to_number(name, systematic_config) if type(name) ~= "string" or name == "" then return nil end local normalized_name = lower(name):gsub("[%s%-]", "") for number = 1, 999 do if not common_element_row_with_symbol(number) then local ext = get_extended_name(number, systematic_config) if ext and ext == normalized_name then return tostring(number) end end end return nil end -- Legacy temporary IUPAC names/symbols (e.g. ununoctium/Uuo) should resolve -- to official elements when those atomic numbers already exist in the dataset. local function parse_legacy_systematic_alias_to_number(value, systematic_config) if type(value) ~= "string" or value == "" then return nil end local normalized_value = lower(value):gsub("[%s%-]", "") for number = 100, 999 do local name = build_systematic_name_from_number(number, systematic_config) if name and lower(name) == normalized_value then return tostring(number) end end local normalized_symbol = normalize_symbol(value) for number = 100, 999 do local symbol = build_systematic_symbol_from_number(number, systematic_config) if symbol and symbol == normalized_symbol then return tostring(number) end end return nil end local function get_systematic_config(m_data, langcode) local systematic_naming = m_data and m_data.systematic_naming if systematic_naming == true then return {} end if type(systematic_naming) == "table" then if systematic_naming.enabled == false then return nil end return systematic_naming end return nil end function export.get_universal_symbol(atomic_number) local normalized_number = normalize_atomic_number(atomic_number) if not normalized_number then return nil end local number = tonumber(normalized_number) local row = common_element_row_with_symbol(number) if row then return row.symbol end return get_extended_symbol(number, nil) end function export.get_systematic_element_name(atomic_number, systematic_naming) local normalized_number = normalize_atomic_number(atomic_number) if not normalized_number then return nil end return get_extended_name(tonumber(normalized_number), systematic_naming) end local function get_element_symbol(element, atomic_number) local symbol = type(element) == "table" and normalize_symbol(element.symbol) or nil if symbol then return symbol end return export.get_universal_symbol(atomic_number) end -- Parse a form with modifiers. function export.parse_form_and_modifiers(form_with_modifiers) local formobj = {} local form = form_with_modifiers while true do local new_form, angle_bracketed = form:match("^(.-)(%b<>)$") if not new_form then break end local prefix, content = angle_bracketed:match("^<(%w+):(.+)>$") if not prefix then break end if prefix == "tag" then formobj.tag = formobj.tag or {} insert(formobj.tag, content) elseif prefix == "q" or prefix == "qq" or prefix == "tr" or prefix == "link" or prefix == "id" or prefix == "g" or prefix == "alt" then if formobj[prefix] then error(("Duplicate modifier '%s' in data module form: %s"):format(prefix, form_with_modifiers)) end formobj[prefix] = content else error(("Unrecognized modifier '%s' in data module form: %s"):format(prefix, form_with_modifiers)) end form = new_form end formobj.form = form return formobj end local function split_form_variants(form) if type(form) ~= "string" then return {} end if not form:find("//", nil, true) then return { form } end local forms = M.links.split_on_slashes(form) if type(forms) ~= "table" or #forms == 0 then return { form } end return forms end local function form_matches_pagename(form, pagename, lang) for _, variant in ipairs(split_form_variants(form)) do if lang:stripDiacritics(M.links.remove_links(variant)) == pagename then return true end end return false end local function form_equals_pagename(formobj, pagename, lang) if formobj.link == pagename then return true end if form_matches_pagename(formobj.form, pagename, lang) then return true end if formobj.alt and form_matches_pagename(formobj.alt, pagename, lang) then return true end return false end local function get_symbol_to_number_map(m_data) if type(m_data._symbol_to_number_cache) == "table" then return m_data._symbol_to_number_cache end local map = {} local explicit_map = m_data.symbol_to_number or m_data.symbols if type(explicit_map) == "table" then for symbol, number in pairs(explicit_map) do local normalized_symbol = normalize_symbol(symbol) local normalized_number = normalize_atomic_number(number) if normalized_symbol and normalized_number then map[normalized_symbol] = normalized_number end end end -- Auto-derive any missing mappings from the elements table. for atomic_number, element in pairs(m_data.elements or {}) do local normalized_number = normalize_atomic_number(atomic_number) local symbol = get_element_symbol(element, normalized_number) if normalized_number and symbol and not map[symbol] then map[symbol] = normalized_number end end m_data._symbol_to_number_cache = map return map end local function resolve_element_data(m_data, atomic_number_or_symbol, systematic_config) if not m_data or type(m_data.elements) ~= "table" then return nil, nil, false end local normalized_number = normalize_atomic_number(atomic_number_or_symbol) if normalized_number then local data = m_data.elements[normalized_number] or m_data.elements[tonumber(normalized_number)] if systematic_config and not data then local number = tonumber(normalized_number) local systematic_name = number and get_extended_name(number, systematic_config) or nil if systematic_name then data = { name = systematic_name, symbol = export.get_universal_symbol(number), } end end return normalized_number, data, false end local symbol_to_number = get_symbol_to_number_map(m_data) local symbol = normalize_symbol(atomic_number_or_symbol) local mapped_number = symbol and symbol_to_number[symbol] or nil if mapped_number then local normalized_mapped = normalize_atomic_number(mapped_number) local data = normalized_mapped and (m_data.elements[normalized_mapped] or m_data.elements[tonumber(normalized_mapped)]) or nil return normalized_mapped, data, false end local extended_number = parse_extended_symbol_to_number(atomic_number_or_symbol, systematic_config) if extended_number then local data = m_data.elements[extended_number] or m_data.elements[tonumber(extended_number)] if systematic_config and not data then local number = tonumber(extended_number) data = { name = get_extended_name(number, systematic_config), symbol = export.get_universal_symbol(number), } end return extended_number, data, false end local legacy_number = parse_legacy_systematic_alias_to_number(atomic_number_or_symbol, systematic_config) if legacy_number then local data = m_data.elements[legacy_number] or m_data.elements[tonumber(legacy_number)] return legacy_number, data, true end return nil, nil, false end local function merge_element_data(common_elements, atomic_number, element) local common_entry = nil local normalized_number = normalize_atomic_number(atomic_number) if common_elements and normalized_number then common_entry = common_elements[normalized_number] or common_elements[tonumber(normalized_number)] end if type(common_entry) ~= "table" then return element end local merged = M.table.deepCopy(common_entry) if type(element) == "table" then for key, value in pairs(element) do merged[key] = value end end return merged end local function sorted_atomic_numbers(m_data) local numbers = {} for number, _ in pairs(m_data.elements or {}) do local normalized = normalize_atomic_number(number) if normalized then insert(numbers, tonumber(normalized)) end end table.sort(numbers) return numbers end local function get_next_and_prev_keys(m_data, current_atomic_number) local current = tonumber(current_atomic_number) if not current then return nil, nil end local element = m_data.elements[current_atomic_number] or m_data.elements[current] local next_number = element and element.next and normalize_atomic_number(element.next) or nil local prev_number = element and element.prev and normalize_atomic_number(element.prev) or nil if next_number and prev_number then return next_number, prev_number end local numbers = sorted_atomic_numbers(m_data) for i, number in ipairs(numbers) do if number == current then next_number = next_number or (numbers[i + 1] and tostring(numbers[i + 1]) or nil) prev_number = prev_number or (numbers[i - 1] and tostring(numbers[i - 1]) or nil) break end end if not next_number then next_number = tostring(current + 1) end if not prev_number and current > 1 then prev_number = tostring(current - 1) end return next_number, prev_number end local ELEMENT_CLASS_TO_CATEGORIES = { ["alkali metal"] = { label = "Alkali metals", }, ["alkaline earth metal"] = { label = "Alkaline earth metals", }, ["transition metal"] = { label = "ၶူဝ်းႁေႈ ဢၼ်လႅၵ်ႈလၢႆႈ", }, ["post-transition metal"] = { label = "Post-transition metals", }, ["lanthanide"] = { label = "Lanthanide series chemical elements", }, ["actinide"] = { label = "Actinide series chemical elements", }, ["metalloid"] = { label = "Metalloids", }, ["ႁႄႇလူဝ်ႇၵျႅၼ်ႇ"] = { label = "ႁႄႇလူဝ်ႇၵျႅၼ်ႇ", }, ["noble gas"] = { label = "Noble gases", }, ["nonmetal"] = { label = "Nonmetals", }, } local GROUP_TO_SUBCAT = { [13] = "Boron group elements", [14] = "Carbon group elements", [15] = "Pnictogens", [16] = "Chalcogens", [17] = "ႁႄႇလူဝ်ႇၵျႅၼ်ႇ", [18] = "Noble gases", } local function get_auto_subcategories(langcode, atomic_number, m_data) local n = tonumber(atomic_number) if not n then return {} end local subcats = {} local seen_subcats = {} local function add(cat_name) if not cat_name or seen_subcats[cat_name] then return end seen_subcats[cat_name] = true insert(subcats, ("[[Category:%s:%s]]"):format(langcode, cat_name)) end -- Optional data-driven override, keyed by atomic number: { [8] = {"Chalcogens"} }. local by_number = m_data and m_data.subcategories_by_atomic_number if type(by_number) == "table" and type(by_number[n]) == "table" then for _, cat_name in ipairs(by_number[n]) do add(cat_name) end return subcats end local common_elements = M.common_elements_data and M.common_elements_data.elements or nil local common_entry = common_elements and (common_elements[n] or common_elements[tostring(n)]) or nil local added_from_common = false if type(common_entry) == "table" then local class_key = common_entry.element_class and lower(tostring(common_entry.element_class)) or nil local class_map = class_key and ELEMENT_CLASS_TO_CATEGORIES[class_key] or nil local class_label = class_map and class_map.label or nil if class_label then add(class_label) added_from_common = true end local period_number = tonumber(common_entry.period) if period_number then add(("ထၢတ်ႈငဝ်ႈ ထႅဝ်ၼွၼ်း %d"):format(period_number)) added_from_common = true end local group_number = tonumber(common_entry.group) if group_number then add(("ထၢတ်ႈငဝ်ႈ ထႅဝ်တင်ႈ %d"):format(group_number)) added_from_common = true end local group_cat = group_number and GROUP_TO_SUBCAT[group_number] or nil if group_cat then add(group_cat) added_from_common = true end local block_name = common_entry.block and lower(tostring(common_entry.block)) or nil if block_name and block_name:match("^[spdf]$") then add("ၸုမ်းထၢတ်ႈငဝ်ႈ-"..upper(block_name)) added_from_common = true end end if added_from_common then return subcats end return subcats end local function lookup_element_by_form(lang, m_data, pagename, requested_type, name_types) local matches = {} local seen_matches = {} local function check_form(raw_form, atomic_number, name_type) local formobj = export.parse_form_and_modifiers(raw_form) if form_equals_pagename(formobj, pagename, lang) and (not requested_type or requested_type == name_type) then local normalized_number = normalize_atomic_number(atomic_number) if normalized_number then local key = normalized_number .. "||" .. name_type if not seen_matches[key] then seen_matches[key] = true insert(matches, { normalized_number, name_type }) end end end end for atomic_number, element in pairs(m_data.elements or {}) do for _, name_type in ipairs(name_types) do local key = name_type.key local value = element[key] if value then if type(value) == "table" then for _, form in ipairs(value) do check_form(form, atomic_number, key) end else check_form(value, atomic_number, key) end end end end return matches end local function add_name_types(name_types, additional_types) local types = M.table.deepCopy(name_types) for _, additional_type in ipairs(additional_types) do insert(types, additional_type) end return types end function export.get_name_types(m_data) if m_data.additional_name_types then return add_name_types(default_name_types, m_data.additional_name_types) end return default_name_types end function export.display_name_type(name_type) if name_type.display then return name_type.display end return name_type.key:gsub("^.", upper):gsub("_", " ") end function export.format_formobj(formobj, lang) local left_q = formobj.q and M.qualifier.format_qualifier(formobj.q) .. " " or "" local right_q = ((formobj.g and " " .. M.gender_and_number.format_genders(M.string_utilities.split(formobj.g, ",")) or "") .. (formobj.qq and " " .. M.qualifier.format_qualifier(formobj.qq) or "")) local term = formobj.link or formobj.form local alt = formobj.alt if not alt and formobj.link then alt = formobj.form end return left_q .. M.links.full_link { lang = lang, term = term, alt = alt, tr = formobj.tr, id = formobj.id, } .. right_q end local function get_name_form_links(element, lang) local forms = element and element.name if not forms then return {} end if type(forms) ~= "table" then forms = { forms } end local linked_forms = {} for _, form in ipairs(forms) do if type(form) == "string" then local formobj = export.parse_form_and_modifiers(form) insert(linked_forms, export.format_formobj(formobj, lang)) end end return linked_forms end local function get_name_form_displays(element, lang) local forms = element and element.name if not forms then return {} end if type(forms) ~= "table" then forms = { forms } end local displays = {} for _, form in ipairs(forms) do if type(form) == "string" then local formobj = export.parse_form_and_modifiers(form) insert(displays, { formobj = formobj, formatted = export.format_formobj(formobj, lang), }) end end return displays end local function format_element_label(atomic_number, element, lang, pagename, primary_name_override, resolved_via_legacy_systematic_alias) local symbol = get_element_symbol(element, atomic_number) or "?" local name_displays = get_name_form_displays(element, lang) local primary_idx = 1 if pagename then for idx, item in ipairs(name_displays) do if form_equals_pagename(item.formobj, pagename, lang) then primary_idx = idx break end end end local primary_name = #name_displays > 0 and name_displays[primary_idx].formatted or "—" if primary_name_override and primary_name_override ~= "" then primary_name = primary_name_override end local alternative_names = {} for idx, item in ipairs(name_displays) do if primary_name_override and primary_name_override ~= "" then insert(alternative_names, item.formatted) elseif idx ~= primary_idx then insert(alternative_names, item.formatted) end end local legacy_note = "" if resolved_via_legacy_systematic_alias then legacy_note = ('<br/><span class="chemical-element-box-legacy-systematic">%s</span>'):format( UI_STRINGS.legacy_systematic_name_label) end local atomic_caption = UI_STRINGS.atomic_number_caption:format(atomic_number) return ('<span class="chemical-element-box-symbol"><b>%s</b></span><br/>' .. '<span class="chemical-element-box-atomic-caption">%s</span><br/>' .. '<span class="chemical-element-box-primary-name">%s</span>%s'):format(symbol, atomic_caption, primary_name, legacy_note), (#alternative_names > 0 and concat(alternative_names, ", ") or nil) end local function get_optional_classification_fields(element) local block_suffix = UI_STRINGS.block_suffix or "ၸုမ်း-" local out = {} for _, field in ipairs(UI_STRINGS.classification_fields) do local value = element and element[field.key] if value ~= nil and value ~= "" then if field.key == "block" then local normalized = lower(tostring(value)) if normalized:match("^[spdfg]$") then value = block_suffix .. normalized end end insert(out, { label = field.label, full_label = field.full_label or field.label, value = tostring(value) }) end end return out end local function render_classification_fields(classification_fields) if not classification_fields or #classification_fields == 0 then return nil end local lines = { '<table class="chemical-element-box-classification-table">', } for _, field in ipairs(classification_fields) do insert(lines, "<tr>") insert(lines, ('<th class="chemical-element-box-classification-th" title="%s">%s</th>'):format(field.full_label, field.label)) insert(lines, ('<td class="chemical-element-box-classification-td">%s</td>'):format(field.value)) insert(lines, "</tr>") end insert(lines, "</table>") return concat(lines, "\n") end local function format_adjacent_display(lang, element, atomic_number, direction) if not element then return "&mdash;" end local linked_forms = get_name_form_links(element, lang) local linked_name = #linked_forms > 0 and concat(linked_forms, ", ") or (get_element_symbol(element, atomic_number) or "?") local arrows = direction == "prev" and "&#8592;&nbsp;" or direction == "next" and "&nbsp;&#8594;" or "" return ("<b>%s%s (%s)%s</b>"):format( direction == "prev" and arrows or "", linked_name, get_element_symbol(element, atomic_number) or "?", direction == "next" and arrows or "" ) end local function add_category(lines, langcode, sort_key) insert(lines, ("[[Category:%s:%s]]"):format(langcode, sort_key)) end local function common_has_element_row(elements, z_num) if type(elements) ~= "table" or not z_num then return false end return elements[z_num] ~= nil or elements[tostring(z_num)] ~= nil end local function include_hypothetical_element_category(atomic_number_num) local els = M.common_elements_data and M.common_elements_data.elements return not common_has_element_row(els, atomic_number_num) end -- Implementation of {{chemical element box}}. function export.show_box(frame) local params = { [1] = { required = true, type = "language", default = "und" }, [2] = true, -- atomic number or symbol pagename = true, type = true, symbol = true, } local args = M.parameters.process(frame:getParent().args, params, nil, "chemical element list", "show_box") local lang = args[1] local langcode = lang:getCode() local pagename = args.pagename or mw.loadData("Module:headword/data").pagename local module_name = export.get_data_module_name(langcode) local m_data = require(module_name) if type(m_data.elements) ~= "table" then error(("Module '%s' must export an `elements` table."):format(module_name)) end local name_types = export.get_name_types(m_data) local common_elements_data = M.common_elements_data and M.common_elements_data.elements or nil local requested_type = args.type local atomic_number = nil local element = nil local resolved_via_legacy_alias = false local systematic_config = get_systematic_config(m_data, langcode) if args[2] then atomic_number, element, resolved_via_legacy_alias = resolve_element_data(m_data, args[2], systematic_config) elseif args.symbol then atomic_number, element, resolved_via_legacy_alias = resolve_element_data(m_data, args.symbol, systematic_config) end if element and requested_type and not element[requested_type] then error(("The name type '%s' for element %s is not found in [[%s]]."):format(requested_type, atomic_number, module_name)) end if not element then local matches = lookup_element_by_form(lang, m_data, pagename, requested_type, name_types) if #matches == 0 then local title = mw.title.getCurrentTitle() if langcode == "und" and title and title.nsText == "ထႅမ်းပလဵတ်ႉ" then local numbers = sorted_atomic_numbers(m_data) if numbers[1] then atomic_number = tostring(numbers[1]) element = m_data.elements[atomic_number] or m_data.elements[tonumber(atomic_number)] end end if not element and systematic_config then local systematic_number = parse_systematic_name_to_number(pagename, systematic_config) if systematic_number then atomic_number, element = resolve_element_data(m_data, systematic_number, systematic_config) end end if not element then local legacy_number = parse_legacy_systematic_alias_to_number(pagename, systematic_config) if legacy_number then atomic_number, element = resolve_element_data(m_data, legacy_number, systematic_config) resolved_via_legacy_alias = element ~= nil end end if not element then error(("The page name '%s' does not match any known element in [[%s]]."):format(pagename, module_name)) end else local unique_numbers = {} local number_list = {} for _, match in ipairs(matches) do local normalized_number = normalize_atomic_number(match[1]) if normalized_number and not unique_numbers[normalized_number] then unique_numbers[normalized_number] = true insert(number_list, normalized_number) end end if #number_list > 1 then error(("The page name '%s' matches multiple element entries in [[%s]] (atomic numbers: %s). Please specify 2= or symbol=.") :format( pagename, module_name, concat(number_list, ", "))) end local first_match = matches[1] atomic_number = normalize_atomic_number(first_match[1]) element = atomic_number and (m_data.elements[atomic_number] or m_data.elements[tonumber(atomic_number)]) or nil requested_type = requested_type or first_match[2] end end if not atomic_number or not element then error("Unable to resolve current element entry.") end element = merge_element_data(common_elements_data, atomic_number, element) local formatted_forms = {} for _, name_type in ipairs(name_types) do local forms = element[name_type.key] if forms then local forms_list = type(forms) == "table" and forms or { forms } local formatted = {} local pagename_among_forms = false for _, form in ipairs(forms_list) do local formobj = export.parse_form_and_modifiers(form) insert(formatted, export.format_formobj(formobj, lang)) if not pagename_among_forms and form_equals_pagename(formobj, pagename, lang) then pagename_among_forms = true requested_type = requested_type or name_type.key end end local displayed_type = export.display_name_type(name_type) if pagename_among_forms then displayed_type = "'''" .. displayed_type .. "'''" end insert(formatted_forms, " &nbsp;&nbsp;&nbsp; ''" .. displayed_type .. "'': " .. concat(formatted, ", ")) end end local next_number, prev_number = get_next_and_prev_keys(m_data, atomic_number) local next_element = nil local prev_element = nil if next_number then _, next_element = resolve_element_data(m_data, next_number, systematic_config) end if prev_number then _, prev_element = resolve_element_data(m_data, prev_number, systematic_config) end local U = UI_STRINGS local prev_display = UI_STRINGS.previous .. format_adjacent_display(lang, prev_element, prev_number, "prev") local next_display = UI_STRINGS.next .. format_adjacent_display(lang, next_element, next_number, "next") local primary_name_override = nil if resolved_via_legacy_alias and type(pagename) == "string" and pagename ~= "" then primary_name_override = export.format_formobj({ form = pagename }, lang) end local current_display, alternative_names_display = format_element_label(atomic_number, element, lang, pagename, primary_name_override, resolved_via_legacy_alias) local classification_fields = get_optional_classification_fields(element) local classification_fields_display = render_classification_fields(classification_fields) local appendix_name = UI_STRINGS.appendix_list_title:format(lang:getCanonicalName()) local appendix_title = mw.title.new(appendix_name, "Appendix") local header_link = appendix_title and appendix_title:getContent() and UI_STRINGS.header_appendix_link:format(appendix_name) or UI_STRINGS.header_generic local footer_line = nil if element.wplink then local wplink_langcode = lang:getCode() footer_line = "| colspan=\"3\" class=\"chemical-element-box-footer\" | " .. UI_STRINGS.wikipedia_footer_article_on .. M.links.full_link { lang = lang, term = "w:" .. wplink_langcode .. ":" .. element.wplink, alt = element.wplink, } .. " တီႈ " .. UI_STRINGS.wikipedia_footer_portal:format(wplink_langcode, lang:getCanonicalName()) end local edit_link = ' <sup>(<span class="plainlinks chemical-element-box-edit-link">[' .. tostring(mw.uri.fullUrl(module_name, { action = "edit" })) .. " " .. UI_STRINGS.edit_link_label .. "]</span>)</sup>" local lines = { '{| class="chemical-element-box-wrapper chemical-element-box"', "|-", '! class="chemical-element-box-heading" | ' .. header_link .. edit_link, "|-", '| class="chemical-element-box-main" | ' .. current_display, } if alternative_names_display then insert(lines, "|-") insert(lines, '| class="chemical-element-box-text chemical-element-box-alt-names" | <b>' .. UI_STRINGS.alternative_names_heading .. "</b>: " .. alternative_names_display) end if classification_fields_display then insert(lines, "|-") insert(lines, '| class="chemical-element-box-text chemical-element-box-classification-cell" | ' .. '<div class="mw-collapsible mw-collapsed" data-expandtext="' .. UI_STRINGS.collapsible_expand .. '" data-collapsetext="' .. UI_STRINGS.collapsible_collapse .. '">' .. '<div class="chemical-element-box-classification-title">' .. UI_STRINGS.classification_data_heading .. "</div>" .. '<div class="mw-collapsible-content chemical-element-box-classification-body">' .. classification_fields_display .. "</div>" .. "</div>") end insert(lines, "|-") insert(lines, '| class="chemical-element-box-text" | ' .. prev_display) insert(lines, "|-") insert(lines, '| class="chemical-element-box-text" | ' .. next_display) if footer_line then insert(lines, "|-") insert(lines, '| class="chemical-element-box-text" | ' .. footer_line:gsub('^| colspan="3" class="chemical%-element%-box%-footer" | ', "")) end insert(lines, "|}") local atomic_number_num = tonumber(atomic_number) local data_entry = m_data.elements[atomic_number] or (atomic_number_num and m_data.elements[atomic_number_num] or nil) local is_systematic_fallback_element = systematic_config and atomic_number_num and not data_entry and not common_element_row_with_symbol(atomic_number_num) local title_obj = mw.title.getCurrentTitle() if langcode ~= "und" and title_obj and title_obj.nsText ~= "ထႅမ်းပလဵတ်ႉ" then add_category(lines, langcode, "ထၢတ်ႈငဝ်ႈ") if is_systematic_fallback_element or resolved_via_legacy_alias then add_category(lines, langcode, "Systematic element names") end if is_systematic_fallback_element and include_hypothetical_element_category(atomic_number_num) then add_category(lines, langcode, "Hypothetical chemical elements") end if not resolved_via_legacy_alias then for _, subcat in ipairs(get_auto_subcategories(langcode, atomic_number, m_data)) do insert(lines, subcat) end end end local wikitext = concat(lines, "\n") local styles = frame:extensionTag("templatestyles", "", { src = "Template:chemical element box/style.css" }) return styles .. "\n" .. wikitext end return export orxrhb9pp15vxzm2imk5b4a10bq7yh0 chunter 0 55318 266441 2026-05-18T11:59:18Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈtʃʌn.tə/|a=UK}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-chunter.wav|a=Southern England}} * {{IPA|en|/ˈt͡ʃʌn.tɚ/|a=US}} * {{rhymes|en|ʌntə(ɹ)|s=2}} ===သၢင်ႈ=== {{en-verb}} # လၢတ်ႈ၊ ၶင်း ႁႂ်ႈပေႃးလီၶၢၼ်ႉထွမ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VP..." 266441 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈtʃʌn.tə/|a=UK}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-chunter.wav|a=Southern England}} * {{IPA|en|/ˈt͡ʃʌn.tɚ/|a=US}} * {{rhymes|en|ʌntə(ɹ)|s=2}} ===သၢင်ႈ=== {{en-verb}} # လၢတ်ႈ၊ ၶင်း ႁႂ်ႈပေႃးလီၶၢၼ်ႉထွမ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} mb8i3zxotd09sw13py5gxcrona6rbnx တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ʌntə(ɹ) 106 55319 266442 2026-05-19T01:26:32Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "{{rhymes nav|en|ʌ|ntə(ɹ)}} ==သဵင်ဢွၵ်ႇ== * {{enPR|-ŭntə(r)}}, {{IPA|en|/-ʌntə(ɹ)/}} ===ၶေႃႈမၢႆတွင်း=== # In non-rhotic accents, words ending in [[Rhymes:ဢိင်းၵလဵတ်ႈ/ʌntə|-ʌntə]] are also rhymes for words on this page. # For more rhymes, add ''er'' to some nouns and adjectives at [[Rhymes:ဢိင်းၵလဵတ်ႈ/ʌnt|-ʌnt]]. ==..." 266442 wikitext text/x-wiki {{rhymes nav|en|ʌ|ntə(ɹ)}} ==သဵင်ဢွၵ်ႇ== * {{enPR|-ŭntə(r)}}, {{IPA|en|/-ʌntə(ɹ)/}} ===ၶေႃႈမၢႆတွင်း=== # In non-rhotic accents, words ending in [[Rhymes:ဢိင်းၵလဵတ်ႈ/ʌntə|-ʌntə]] are also rhymes for words on this page. # For more rhymes, add ''er'' to some nouns and adjectives at [[Rhymes:ဢိင်းၵလဵတ်ႈ/ʌnt|-ʌnt]]. ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> * [[bunter]], [[w:Billy Bunter|Bunter]] * [[chunter]] * [[fronter]] * [[grunter]] * [[w:Gunter, Texas|Gunter]] (''in Texas''), [[w:Edmund Gunter|Gunter]] (''mathematician'') * [[hunter]] * [[punter]] * [[shunter]] * [[stunter]] ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> tozuw1jm5potrlurrratpovs0qsucny chunters 0 55320 266443 2026-05-19T01:27:18Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||s-verb-form}} ===ဢၼၵရမ်ႇ=== * {{anagrams|en|a=cehnrstu|churnest|trunches}}" 266443 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||s-verb-form}} ===ဢၼၵရမ်ႇ=== * {{anagrams|en|a=cehnrstu|churnest|trunches}} okd9ibjv4rlypti9d8wrewkq6i90fpj chuntering 0 55321 266444 2026-05-19T01:28:05Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||ing-form}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈလၢတ်ႈ၊ ၶင်း ႁႂ်ႈပေႃးလီၶၢၼ်ႉထွမ်ႇ။ #* {{quote-text|en|year=2013|author=Gaynor Gabriel|title=The Long Shadow|page=101 |passage=Such misgivings were expr..." 266444 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||ing-form}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈလၢတ်ႈ၊ ၶင်း ႁႂ်ႈပေႃးလီၶၢၼ်ႉထွမ်ႇ။ #* {{quote-text|en|year=2013|author=Gaynor Gabriel|title=The Long Shadow|page=101 |passage=Such misgivings were expressed to anyone who would listen to the '''chunterings''' of an increasingly frail old lady.}} 6ph0zchvy3e15jzyn6gamz57bq008am chunterings 0 55322 266445 2026-05-19T01:28:25Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|chuntering}}" 266445 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|chuntering}} p5wxlgaytagm83sug6qxzayo6xg3oeg chuntered 0 55323 266446 2026-05-19T01:28:52Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||ed-form}} ===ဢၼၵရမ်ႇ=== * {{anagrams|en|a=cdeehnrtu|underetch}}" 266446 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|chunter||ed-form}} ===ဢၼၵရမ်ႇ=== * {{anagrams|en|a=cdeehnrtu|underetch}} d8vp1k0whejsl6u67p61vykr5zldwmj ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ʌntə(ɹ) 14 55324 266447 2026-05-19T01:29:08Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]]" 266447 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] f1zjkkxugfio8bf6xzm84da272trlw0 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ʌntə(ɹ)/2 သဵင် 14 55325 266448 2026-05-19T01:29:20Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ʌntə(ɹ)]]" 266448 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ʌntə(ɹ)]] 6ypuddhpxnhxbnq7x4d3za8v6wwmsuz church 0 55326 266455 2026-05-19T06:53:13Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== [[Image:St Mary's Catherdral, Perth.JPG|thumb|right|]] ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈt͡ʃɜːt͡ʃ/|a=RP}} * {{audio|en|En-uk-church.ogg|a=UK}} * {{IPA|en|/ˈt͡ʃɝt͡ʃ/|a=GenAm}} * {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-church.wav|a=GA}} * {{audio|en|en-us-church.ogg|a=US}} * {{IPA|en|/ˈt͡ʃʊrt͡ʃ/|/ˈt͡ʃɪrt͡ʃ/|qual2=r..." 266455 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== [[Image:St Mary's Catherdral, Perth.JPG|thumb|right|]] ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈt͡ʃɜːt͡ʃ/|a=RP}} * {{audio|en|En-uk-church.ogg|a=UK}} * {{IPA|en|/ˈt͡ʃɝt͡ʃ/|a=GenAm}} * {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-church.wav|a=GA}} * {{audio|en|en-us-church.ogg|a=US}} * {{IPA|en|/ˈt͡ʃʊrt͡ʃ/|/ˈt͡ʃɪrt͡ʃ/|qual2=rarer|a=Early Modern}}<ref>{{R:en:Dobson:1957|II|82|572|passage=''Church'' (late OE (Southern) {{m|ang|cyrice|cy̆rice}} < {{m|ang|cirice|cĭrice}}), in which the preceding {{IPAchar|[tʃ]}} aids the rounding, has normal ''ŭ'' (so in Hart, Bullokar, Robinson, and Gil), but the original ''ĭ'' remains in Salesbury, Smith (beside ''ŭ''), and the Northerner Poole (beside ''ŭ'').}}</ref> * {{rhymes|en|ɜː(ɹ)tʃ|s=1}} * {{hyph|en|church}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ဝတ်ႉဝႆႈၽြႃး ၸၢဝ်းၶရိတ်ႉ။ # ၵူၼ်းႁဵတ်းၵၢၼ် ၼႂ်းဝတ်ႉၶရိတ်ႉ။ # ၸုမ်းႁဵတ်းၵၢၼ်သႃႇသၼႃႇၶရိတ်ႉ။ ===ၽိုၼ်ဢိင်=== * {{VPS Ref}} oglyft44tw6t2d21zxnpsx8x37bh16q 266459 266455 2026-05-19T09:46:11Z Sai Myo Thura Kyaw 38 /* ဢိင်းၵလဵတ်ႈ */ 266459 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== [[Image:St Mary's Catherdral, Perth.JPG|thumb|right|]] ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈt͡ʃɜːt͡ʃ/|a=RP}} * {{audio|en|En-uk-church.ogg|a=UK}} * {{IPA|en|/ˈt͡ʃɝt͡ʃ/|a=GenAm}} * {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-church.wav|a=GA}} * {{audio|en|en-us-church.ogg|a=US}} * {{IPA|en|/ˈt͡ʃʊrt͡ʃ/|/ˈt͡ʃɪrt͡ʃ/|qual2=rarer|a=Early Modern}}<ref>{{R:en:Dobson:1957|II|82|572|passage=''Church'' (late OE (Southern) {{m|ang|cyrice|cy̆rice}} < {{m|ang|cirice|cĭrice}}), in which the preceding {{IPAchar|[tʃ]}} aids the rounding, has normal ''ŭ'' (so in Hart, Bullokar, Robinson, and Gil), but the original ''ĭ'' remains in Salesbury, Smith (beside ''ŭ''), and the Northerner Poole (beside ''ŭ'').}}</ref> * {{rhymes|en|ɜː(ɹ)tʃ|s=1}} * {{hyph|en|church}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ဝတ်ႉဝႆႈၽြႃး ၸၢဝ်းၶရိတ်ႉ။ # ၵူၼ်းႁဵတ်းၵၢၼ် ၼႂ်းဝတ်ႉၶရိတ်ႉ။ # ၸုမ်းႁဵတ်းၵၢၼ်သႃႇသၼႃႇၶရိတ်ႉ။ ===သၢင်ႈ=== {{en-verb}} # ပၼ်တၢင်းႁူႉ ၽၢႆႇသႃႇသၼႃႇ ၽႂ်မၼ်း မိူၼ်ၼင်ႇ ၼႂ်းဝတ်ႉဝႆႈၽြႃးၸၢဝ်းၶရိတ်ႉ။ ===ၽိုၼ်ဢိင်=== * {{VPS Ref}} 5ci07v3zjtgnt2hbb7rbk7hb4daw93e churches 0 55327 266456 2026-05-19T06:54:14Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈt͡ʃɝt͡ʃɪz/|a=GA}} * {{IPA|en|/ˈtʃɜːt͡ʃɪz/|a=RP}} * {{audio|en|en-us-churches.ogg|a=US}} * {{rhymes|en|ɜː(ɹ)t͡ʃɪz|s=2}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|church}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl o..." 266456 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈt͡ʃɝt͡ʃɪz/|a=GA}} * {{IPA|en|/ˈtʃɜːt͡ʃɪz/|a=RP}} * {{audio|en|en-us-churches.ogg|a=US}} * {{rhymes|en|ɜː(ɹ)t͡ʃɪz|s=2}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|church}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|church||s-verb-form}} cn9mnnuhtrt1z5zh3hsdn0dgcy1orww ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɜː(ɹ)t͡ʃɪz 14 55328 266457 2026-05-19T07:13:54Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]]" 266457 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] f1zjkkxugfio8bf6xzm84da272trlw0 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɜː(ɹ)t͡ʃɪz/2 သဵင် 14 55329 266458 2026-05-19T07:14:05Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɜː(ɹ)t͡ʃɪz]]" 266458 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɜː(ɹ)t͡ʃɪz]] 54zhm0ewxttvti2m1qerzvdleix0tu6 churching 0 55330 266460 2026-05-19T09:47:22Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # ၾိင်ႈထုင်း ပၼ်ၽွၼ်းလီ ၼၢင်းယိင်း ဢၼ်ၵိူတ်ႇလုၵ်ႈယဝ်ႉ။ #: {{ux|en|The '''churching''' of women traditionally includes thanksgiving for the women's survival of childbirth.}} #* {{quote-text|en|year=1834|author=w:Charles Dickens|chapter=The Blooms..." 266460 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # ၾိင်ႈထုင်း ပၼ်ၽွၼ်းလီ ၼၢင်းယိင်း ဢၼ်ၵိူတ်ႇလုၵ်ႈယဝ်ႉ။ #: {{ux|en|The '''churching''' of women traditionally includes thanksgiving for the women's survival of childbirth.}} #* {{quote-text|en|year=1834|author=w:Charles Dickens|chapter=The Bloomsbury Christening|title=w:Sketches by Boz |passage=The clergyman had to dine some distance from town, and had got two '''churchings''', three christenings, and a funeral, to perform in something less than an hour.}} #* {{quote-text|en|year=2010|author=Chris Given-Wilson|title=Fourteenth Century England VI|page=145|passage=As discussed in detail by Caroline Shenton, the '''churchings''' of Queen Philippa, for which the details following Isabella's birth in 1333 survive, represented a 'gigantic festival of a family whose start in life had been extremely unsteady'.}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|church||ing-form}} sr4leu42dqs5zm3vlzx3wedbkbbyhp8 churchings 0 55331 266461 2026-05-19T09:47:46Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|churching}}" 266461 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|churching}} hdq6stim7sf9v3bboduc79kfio2ya6h churched 0 55332 266462 2026-05-19T09:49:32Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|?}} # ဢၼ်မီး ၵျွင်းၽြႃး ၸၢဝ်းၶရိတ်ႉ။ #* {{quote-book|en|year=1911| title=Proceedings of the First Interdenominational Conference|author=| page=48| passage=As to new churches in an already sufficiently '''churched''' community can this body say that such churches will not be recog..." 266462 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|?}} # ဢၼ်မီး ၵျွင်းၽြႃး ၸၢဝ်းၶရိတ်ႉ။ #* {{quote-book|en|year=1911| title=Proceedings of the First Interdenominational Conference|author=| page=48| passage=As to new churches in an already sufficiently '''churched''' community can this body say that such churches will not be recognized by the parent body?}} # ဢၼ်ၶဝ်ႈႁူမ်ႈတူင်ႉၼိုင် ၼႂ်းၵၢၼ်ၽွမ်ႉႁူမ်ႈ လႄႈ ၵၢၼ်တူင်ႉၼိုင် ၵျွင်းၽြႃး လႄႈ ၵမ်ႉထႅမ် ၶေႃႈသင်ႇသွၼ် ၵျွင်းၽြႃး ၸၢဝ်းၶရိတ်ႉ။ #* {{quote-book|en|year=1980| title=Turning Point: Christian America at the Crossroads |author=| page=80| passage=Most of the presently unchurched have had a traditionally religious background — in fact, to about the same extent as the '''churched'''. }} #* {{quote-book|en|year=1989| title=The People's Religion: American Faith in the 90's |author=George Gallup, Jim Castelli | page=135| passage=The unchurched are less likely than the '''churched''' to be registered to vote: 75 percent of the unchurched, 79 percent of the '''churched''' and 82 percent of the superchurched are registered. }} #* {{quote-book|en|year=2017| title=Church Talk Makes Men Walk|author=Woody L. Davis | page=| passage=Hypothesis H2, that '''churched''' men in general would endorse stereotypcially feminine message behavior more than would unchurched men, was tested by means of t-test.}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|church||ed-form}} ===ဢၼၵရမ်ႇ=== * {{anagrams|en|a=ccdehhru|dechurch}} 5zyan0dnvyhpwbk3ors1xvhs6l6p4kn ပိူင်ထၢၼ်ႈ:Old English links with redundant target parameters 14 55333 266463 2026-05-19T09:50:20Z Sai Myo Thura Kyaw 38 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "__HIDDENCAT__" 266463 wikitext text/x-wiki __HIDDENCAT__ 2twjmejn56ditxo46hqinfh52nh6flb