ဝိက်ရှေန်နရဳ
mnwwiktionary
https://mnw.wiktionary.org/wiki/%E1%80%9D%E1%80%AD%E1%80%80%E1%80%BA%E1%80%9B%E1%80%BE%E1%80%B1%E1%80%94%E1%80%BA%E1%80%94%E1%80%9B%E1%80%B3:%E1%80%99%E1%80%AF%E1%80%80%E1%80%BA%E1%80%9C%E1%80%AD%E1%80%80%E1%80%BA%E1%80%90%E1%80%99%E1%80%BA
MediaWiki 1.46.0-wmf.24
case-sensitive
မဳဒဳယာ
တၟေင်
ဓရီုကျာ
ညးလွပ်
ညးလွပ် ဓရီုကျာ
ဝိက်ရှေန်နရဳ
ဝိက်ရှေန်နရဳ ဓရီုကျာ
ဝှာင်
ဝှာင် ဓရီုကျာ
မဳဒဳယာဝဳကဳ
မဳဒဳယာဝဳကဳ ဓရီုကျာ
ထာမ်ပလိက်
ထာမ်ပလိက် ဓရီုကျာ
ရီု
ရီု ဓရီုကျာ
ကဏ္ဍ
ကဏ္ဍ ဓရီုကျာ
အဆက်လက္ကရဴ
အဆက်လက္ကရဴ ဓရီုကျာ
ကာရန်
ကာရန် ဓရီုကျာ
အဘိဓာန်
အဘိဓာန် ဓရီုကျာ
ဗီုပြၚ်သိုၚ်တၟိ
ဗီုပြၚ်သိုၚ်တၟိ ဓရီုကျာ
TimedText
TimedText talk
မဝ်ဂျူ
မဝ်ဂျူ ဓရီုကျာ
Event
Event talk
မဝ်ဂျူ:it-headword
828
26024
393634
393433
2026-04-26T18:57:00Z
咽頭べさ
33
393634
Scribunto
text/plain
-- This module contains code for Italian headword templates.
-- Templates covered are:
-- * {{it-noun}}, {{it-proper noun}};
-- * {{it-verb}};
-- * {{it-adj}}, {{it-adj-comp}}, {{it-adj-sup}};
-- * {{it-det}};
-- * {{it-art}};
-- * {{it-pron-adj}};
-- * {{it-pp}};
-- * {{it-presp}};
-- * {{it-card-noun}}, {{it-card-adj}}, {{it-card-inv}};
-- * {{it-adv}};
-- * {{it-pos}};
-- * {{it-suffix form}}.
-- See [[Module:it-verb]] for Italian conjugation templates.
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local m_strutils = require("Module:string utilities")
local usub = m_strutils.sub
local require_when_needed = require("Module:require when needed")
local insert = table.insert
local remove = table.remove
local m_table = require("Module:table")
local com = require("Module:it-common")
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local inflection_utilities_module = "Module:inflection utilities"
local it_verb_module = "Module:it-verb"
local parse_interface_module = "Module:parse interface"
local romut_module = "Module:romance utilities"
local lang = require("Module:languages").getByCode("it")
local langname = lang:getCanonicalName()
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local no_split_apostrophe_words = {
["c'è"] = true,
["c'era"] = true,
["c'erano"] = true,
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local function track(page)
require("Module:debug/track")("it-headword/" .. page)
return true
end
-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments come
-- from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are given;
-- `accel` is the accelerator form, or nil.
local function parse_and_insert_inflection(data, args, field, label, accel, frob)
m_headword_utilities.parse_and_insert_inflection {
headdata = data,
forms = args[field],
paramname = field,
splitchar = ",",
label = label,
accel = accel and {form = accel} or nil,
frob = frob,
}
end
local function replace_hash_with_lemma(term, lemma)
-- If there is a % sign in the lemma, we have to replace it with %% so it doesn't get interpreted as a capture
-- replace expression.
lemma = lemma:gsub("%%", "%%%%")
return (term:gsub("#", lemma))
end
local list_param = {list = true, disallow_holes = true}
local boolean_param = {type = "boolean"}
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local poscat = frame.args[1]
or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local parargs = frame:getParent().args
local params = {
["head"] = list_param,
["id"] = true,
["sort"] = true,
["apoc"] = boolean_param,
["splithyph"] = boolean_param,
["nolinkhead"] = boolean_param,
["nolink"] = {type = "boolean", alias_of = "nolinkhead"},
["json"] = boolean_param,
["pagename"] = true, -- for testing
}
if pos_functions[poscat] then
for key, val in pairs(pos_functions[poscat].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = args.head
local heads = user_specified_heads
if args.nolinkhead then
if #heads == 0 then
heads = {pagename}
end
else
local romut = require(romut_module)
local auto_linked_head = romut.add_links_to_multiword_term(pagename, args.splithyph,
no_split_apostrophe_words)
if #heads == 0 then
heads = {auto_linked_head}
else
for i, head in ipairs(heads) do
if head:find("^~") then
head = romut.apply_link_modifiers(auto_linked_head, usub(head, 2))
heads[i] = head
end
if head == auto_linked_head then
track("redundant-head")
end
end
end
end
local data = {
lang = lang,
pos_category = pos_functions[poscat] and pos_functions[poscat].pos_category or poscat,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
no_redundant_head_cat = #user_specified_heads == 0,
genders = {},
inflections = {},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
checkredlinks = pos_functions[poscat] and pos_functions[poscat].redlink_pos or true,
}
if pagename:find("^%-") and poscat ~= "ဗီုပြၚ်အဆက်လက္ကရဴ" then
data.is_suffix = true
data.pos_category = "အဆက်လက္ကရဴ"
data.checkredlinks = true
-- local singular_poscat = m_en_utilities.singularize(poscat)
-- insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes")
-- insert(data.inflections, {label = singular_poscat .. "-forming suffix"})
end
if pos_functions[poscat] then
pos_functions[poscat].func(args, data)
end
if args.apoc then
-- Apocopated form of a term; do this after calling pos_functions[], because the function might modify
-- data.pos_category.
local pos = data.pos_category
if not pos:find(" forms") then
-- Apocopated forms are non-lemma forms.
--local singular_poscat = m_en_utilities.singularize(pos)
data.pos_category = "ဗီုပြၚ်" .. singular_poscat
end
-- If this is a suffix, insert label 'apocopated' after 'FOO-forming suffix', otherwise insert at the beginning.
insert(data.inflections, data.is_suffix and 2 or 1, {label = glossary_link("apocopated")})
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
local deriv_params = {
{"dim", glossary_link("diminutive")},
{"dim_dim", "double " .. glossary_link("diminutive")},
{"aug_dim", glossary_link("augmentative") .. "-" .. glossary_link("diminutive")},
{"aug", glossary_link("augmentative")},
{"dim_aug", glossary_link("diminutive") .. "-" .. glossary_link("augmentative")},
{"aug_aug", "double " .. glossary_link("augmentative")},
{"pej", glossary_link("pejorative")},
{"dim_pej", glossary_link("diminutive") .. "-" .. glossary_link("pejorative")},
{"aug_pej", glossary_link("augmentative") .. "-" .. glossary_link("pejorative")},
{"pej_pej", "double " .. glossary_link("pejorative")},
{"end", glossary_link("endearing")},
{"dim_end", glossary_link("diminutive") .. "-" .. glossary_link("endearing")},
{"aug_end", glossary_link("augmentative") .. "-" .. glossary_link("endearing")},
{"derog", glossary_link("derogatory")},
{"dim_derog", glossary_link("diminutive") .. "-" .. glossary_link("derogatory")},
{"aug_derog", glossary_link("augmentative") .. "-" .. glossary_link("derogatory")},
{"end_derog", glossary_link("endearing") .. "-" .. glossary_link("derogatory")},
}
local function insert_deriv_params(params)
for _, deriv_param in ipairs(deriv_params) do
local param = unpack(deriv_param)
params[param] = list_param
end
end
local param_mods = {
t = {
-- We need to store the <t:...> inline modifier into the "gloss" key of the parsed part, because that is what
-- [[Module:links]] expects.
item_dest = "gloss",
},
gloss = {},
-- no 'tr' or 'ts', doesn't make sense for Italian
g = {
-- We need to store the <g:...> inline modifier into the "genders" key of the parsed part, because that is what
-- [[Module:links]] expects.
item_dest = "genders",
sublist = true,
},
id = {},
alt = {},
q = {type = "qualifier"},
qq = {type = "qualifier"},
lit = {},
pos = {},
-- no 'sc', doesn't make sense for Italian
}
local function parse_term_with_modifiers(paramname, val)
local function generate_obj(term)
local decomp = com.decompose(term)
local lemma = com.remove_non_final_accents(decomp)
if lemma ~= decomp then
term = com.compose("[[" .. lemma .. "|" .. decomp .. "]]")
end
return {term = term}
end
local retval = require(parse_interface_module).parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = "[/;,]",
preserve_splitchar = true,
})
for _, obj in ipairs(retval) do
if obj.delimiter == ";" then
obj.separator = "; "
elseif obj.delimiter == "/" then
obj.separator = "/"
-- default to nil for comma
end
end
return retval
end
local function insert_deriv_inflections(data, args)
for _, deriv_param in ipairs(deriv_params) do
local param, desc = unpack(deriv_param)
if #args[param] > 0 then
local inflection = {label = desc}
for _, term in ipairs(args[param]) do
local parsed_terms = parse_term_with_modifiers(param, term)
for _, parsed_term in ipairs(parsed_terms) do
insert(inflection, parsed_term)
end
end
insert(data.inflections, inflection)
end
end
end
-----------------------------------------------------------------------------------------
-- Nouns --
-----------------------------------------------------------------------------------------
local allowed_genders = m_table.listToSet(
{"m", "f", "mf", "mfbysense", "mfequiv", "gneut", "n", "m-p", "f-p", "mf-p", "mfbysense-p", "mfequiv-p", "gneut-p", "n-p", "?", "?-p"}
)
local function validate_genders(genders)
for _, g in ipairs(genders) do
if type(g) == "table" then
g = g.spec
end
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
end
end
local function do_noun(args, data, is_proper)
local is_plurale_tantum = false
local has_singular = false
local category_plpos = data.checkredlinks
if category_plpos == true then
category_plpos = data.pos_category
end
--local category_pos = m_en_utilities.singularize(category_plpos)
validate_genders(args[1])
data.genders = args[1]
local saw_m = false
local saw_f = false
local gender_for_default_plural
-- Check for specific genders and pluralia tantum.
for _, g in ipairs(args[1]) do
if type(g) == "table" then
g = g.spec
end
if g:find("-p$") then
is_plurale_tantum = true
else
has_singular = true
if g == "m" or g == "mf" or g == "mfbysense" then
saw_m = true
end
if g == "f" or g == "mf" or g == "mfbysense" then
saw_f = true
end
end
end
if saw_m and saw_f then
gender_for_default_plural = "mf"
elseif saw_f then
gender_for_default_plural = "f"
else
gender_for_default_plural = "m"
end
local lemma = data.pagename
local function inscat(cat)
insert(data.categories, cat .. langname)
end
local function insert_noun_inflection(terms, label, accel, no_inv)
for _, term in ipairs(terms) do
if not no_inv and term.term == lemma then
term.term = nil
term.label = glossary_link("ဟွံပြံၚ်လှာဲ")
end
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
}
end
-- Plural
local plurals = {}
-- Fetch explicit masculine and feminine plurals here because we may change them below when processing plurals.
local mpls = m_headword_utilities.parse_term_list_with_modifiers {
paramname = "mpl",
forms = args.mpl,
splitchar = ",",
}
local fpls = m_headword_utilities.parse_term_list_with_modifiers {
paramname = "fpl",
forms = args.fpl,
splitchar = ",",
}
if is_plurale_tantum and not has_singular then
if args[2][1] then
error("Can't specify plurals of plurale tantum " .. category_pos)
end
insert(data.inflections, {label = glossary_link("ပါဲနူကိုန်ဗဟုဝစ်")})
elseif args.apoc then
-- apocopated noun
if args[2][1] then
error("Can't specify plurals of apocopated " .. category_pos)
end
else
-- Fetch plurals and associated qualifiers, labels and genders.
plurals = m_headword_utilities.parse_term_list_with_modifiers {
paramname = {2, "pl"},
forms = args[2],
splitchar = ",",
include_mods = {"g"},
}
-- Check for special plural signals
local mode = nil
local pl1 = plurals[1]
if pl1 and #pl1.term == 1 then
mode = pl1.term
if mode == "?" or mode == "!" or mode == "-" or mode == "~" then
pl1.term = nil
if next(pl1) then
error(("Can't specify inline modifiers with plural code '%s'"):format(mode))
end
remove(plurals, 1) -- Remove the mode parameter
elseif mode ~= "+" and mode ~= "#" then
error(("Unexpected plural code '%s'"):format(mode))
end
end
if is_plurale_tantum then
-- both singular and plural
insert(data.inflections, {label = "ပါဲနူကိုန်ဗဟုဝစ်" .. glossary_link("လ္ၚဵုလ္ၚဵု") .. ", in variation"})
end
if mode == "?" then
-- Plural is unknown
insert(data.categories, category_plpos .. langname .. "မနွံကဵုကိုန်ဗဟုဝစ်ဟွံတီကၠး ဝါ ဟွံချိုတ်ပၠိုတ်ဂမၠိုၚ်")
elseif mode == "!" then
-- Plural is not attested
insert(data.inflections, {label = "plural not attested"})
insert(data.categories, category_plpos .. langname .. "မနွံကဵုကိုန်ဗဟုဝစ်ဟွံဒးစုတ်စရၚ်စေဝ်စၞောန်ဂမၠိုၚ်")
if plurals[1] then
error("Can't specify any plurals along with unattested plural code '!'")
end
elseif mode == "-" then
-- Uncountable noun; may occasionally have a plural
insert(data.categories, category_plpos .. langname .. "မတော်ဟွံဂွံဂမၠိုၚ်")
-- If plural forms were given explicitly, then show "usually"
if plurals[1] then
insert(data.inflections, {label = "usually " .. glossary_link("မတော်ဟွံဂွံ")})
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
else
insert(data.inflections, {label = glossary_link("မတော်ဟွံဂွံ")})
end
else
-- Countable or mixed countable/uncountable
-- If no plurals, use the default plural unless mpl= or fpl= explicitly given.
if not plurals[1] and not mpls[1] and not fpls[1] and not is_proper then
plurals[1] = {term = "+"}
end
if mode == "~" then
-- Mixed countable/uncountable noun, always has a plural
insert(data.inflections, {label = glossary_link("မတော်ဂွံ") .. " ကဵု " .. glossary_link("မတော်ဟွ")})
insert(data.categories, category_plpos .. langname .. " မတော်ဟွံဂွံဂမၠိုၚ်")
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
elseif plurals[1] then
-- Countable nouns
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
else
-- Uncountable nouns
insert(data.categories, category_plpos .. langname .. "မတော်ဟွံဂွံဂမၠိုၚ်")
end
end
-- Process plurals, handling requests for default plurals.
local has_default_or_hash = false
for _, pl in ipairs(plurals) do
if pl.term:find("^%+") or pl.term:find("#") or pl.term == "cap*" or pl.term == "cap*+" then
has_default_or_hash = true
break
end
end
if has_default_or_hash then
local newpls = {}
local function insert_pl(pl, defpl)
pl.term = defpl
insert(newpls, pl)
end
local function make_gendered_plural(pl, special)
if gender_for_default_plural == "mf" then
local default_mpl = com.make_plural(lemma, "m", special)
local default_fpl = com.make_plural(lemma, "f", special)
if default_mpl then
if default_mpl == default_fpl then
insert_pl(pl, default_mpl)
else
if args.mpl[1] or args.fpl[1] then
error("Can't specify gendered plural spec '" .. (special or "+") ..
"' along with gender=" .. gender_for_default_plural ..
" and also specify mpl= or fpl=")
end
mpls = {m_table.shallowCopy(pl)}
mpls[1].term = default_mpl
fpls = {pl}
fpls[1].term = default_fpl
end
end
else
local defpl = com.make_plural(lemma, gender_for_default_plural, special)
if defpl then
insert_pl(pl, defpl)
end
end
end
for _, pl in ipairs(plurals) do
if pl.term == "cap*" or pl.term == "cap*+" then
make_gendered_plural(pl, pl.term)
elseif pl.term == "+" then
make_gendered_plural(pl)
elseif pl.term:find("^%+") then
local special = require(romut_module).get_special_indicator(pl.term)
make_gendered_plural(pl, special)
else
insert_pl(pl, replace_hash_with_lemma(pl.term, lemma))
end
end
plurals = newpls
end
if plurals[2] then
--inscat(category_plpos .. " with multiple plurals")
end
-- If the first or only plural is the same as the singular, replace it with 'invariable', or 'usually
-- invariable' if there is more than one plural.
pl1 = plurals[1]
if pl1 and pl1.term == lemma then
if plurals[2] then
insert(data.inflections, {label = "ဗွဲတၟေၚ်" .. glossary_link("ဟွံပြၚ်လှာဲ"),
q = pl1.q, qq = pl1.qq, l = pl1.l, ll = pl1.ll, refs = pl1.refs
})
else
insert(data.inflections, {label = glossary_link("ဟွံပြၚ်လှာဲ"),
q = pl1.q, qq = pl1.qq, l = pl1.l, ll = pl1.ll, refs = pl1.refs
})
end
remove(plurals, 1)
--inscat("indeclinable " .. category_plpos)
end
if plurals[1] then
-- Check for gender-changing plurals.
for _, pl in ipairs(plurals) do
if pl.genders then
for _, g in ipairs(pl.genders) do
if type(g) ~= "table" then
g = {spec = g}
end
if g.spec == "m" and not saw_m or g.spec == "f" and not saw_f then
--inscat(category_plpos .. " that change gender in the plural")
end
end
end
end
end
end
-- Gather masculines/feminines. For each one, generate the corresponding plural. `field` is the name of the field
-- containing the masculine or feminine forms (normally "m" or "f"); `inflect` is a function of one or two arguments
-- to generate the default masculine or feminine from the lemma (the arguments are the lemma and optionally a
-- "special" flag to indicate how to handle multiword lemmas, and the function is normally make_feminine or
-- make_masculine from [[Module:it-common]]); and `default_plurals` is a list into which the corresponding default
-- plurals of the gathered or generated masculine or feminine forms are stored.
local function handle_mf(field, inflect, default_plurals)
local special
local mfs = m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[field],
splitchar = ",",
frob = function(term)
if term == "+" then
-- Generate default masculine/feminine.
term = inflect(lemma)
else
term = replace_hash_with_lemma(term, lemma)
end
special = require(romut_module).get_special_indicator(term)
if special then
term = inflect(lemma, special)
end
return term
end
}
for _, mf in ipairs(mfs) do
local plobj = m_table.shallowCopy(mf)
plobj.term = com.make_plural(mf.term, field, special)
if plobj.term then
-- Add an accelerator for each masculine/feminine plural whose lemma is the corresponding singular, so that
-- the accelerated entry that is generated has a definition that looks like
-- # {{plural of|it|MFSING}}
plobj.accel = {form = "p", lemma = mf.term}
insert(default_plurals, plobj)
end
end
return mfs
end
local feminine_plurals = {}
local feminines = handle_mf("f", com.make_feminine, feminine_plurals)
local masculine_plurals = {}
local masculines = handle_mf("m", com.make_masculine, masculine_plurals)
local function handle_mf_plural(mfplfield, mfpls, gender, default_plurals, singulars)
if is_plurale_tantum then
return mfpls, true
end
local new_mfpls = {}
local saw_plus
local noinv
for i, mfpl in ipairs(mfpls) do
local accel
if #mfpls == #singulars then
-- If same number of overriding masculine/feminine plurals as singulars, assume each plural goes with
-- the corresponding singular and use each corresponding singular as the lemma in the accelerator. The
-- generated entry will have
-- # {{plural of|it|SINGULAR}}
-- as the definition.
accel = {form = "p", lemma = singulars[i].term}
else
accel = nil
end
if mfpl.term == "+" then
-- We should never see + twice. If we do, it will lead to problems since we overwrite the values of
-- default_plurals the first time around.
if saw_plus then
error(("Saw + twice when handling %s="):format(mfplfield))
end
saw_plus = true
if not default_plurals[1] then
local defpl = com.make_plural(lemma, gender)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
default_plurals[1] = {term = defpl}
end
for _, defpl in ipairs(default_plurals) do
-- defpl is already a table and has an accel field
m_headword_utilities.combine_termobj_qualifiers_labels(defpl, mfpl)
insert(new_mfpls, defpl)
end
-- don't use "invariable" because the plural is not with respect to the lemma but with respect to the
-- masc/fem singular
noinv = true
elseif mfpl.term == "cap*" or mfpl.term == "cap*+" or mfpl.term:find("^%+") then
if mfpl.term:find("^%+") then
mfpl.term = require(romut_module).get_special_indicator(mfpl.term)
end
if singulars[1] then
for _, mf in ipairs(singulars) do
local mfplobj = m_table.shallowCopy(mfpl)
mfplobj.term = com.make_plural(mf.term, gender, mfpl.term)
if mfplobj.term then
mfplobj.accel = accel
m_headword_utilities.combine_termobj_qualifiers_labels(mfplobj, mf)
insert(new_mfpls, mfplobj)
end
-- don't use "invariable" because the plural is not with respect to the lemma but with respect
-- to the masc/fem singular
noinv = true
-- FIXME: Should we throw an error if no plural could be generated?
end
else
-- FIXME: This clause didn't exist in the corresponding code in [[Module:pt-headword]]. Is it
-- correct?
mfpl.term = com.make_plural(lemma, gender, mfpl.term)
if mfpl.term then
insert(new_mfpls, mfpl)
end
end
else
mfpl.accel = accel
mfpl.term = replace_hash_with_lemma(mfpl.term, lemma)
insert(new_mfpls, mfpl)
-- don't use "invariable" if masc/fem singular present because the plural is not with respect to
-- the lemma but with respect to the masc/fem singular
noinv = noinv or #singulars > 0
end
end
return new_mfpls, noinv
end
local mpl_noinv, fpl_noinv
-- Not fpls[1] because if the user didn't specify any explicit mpl= or fpl= but the lemma gender is mf or mfbysense
-- and has separate masculine and feminine plural forms (e.g. any term in -ista), we don't want to reprocess those
-- auto-generated forms.
if args.fpl[1] then
-- Override any existing feminine plurals.
feminine_plurals, fpl_noinv = handle_mf_plural("fpl", fpls, "f", feminine_plurals, feminines)
else
feminine_plurals, fpl_noinv = fpls, false
end
if args.mpl[1] then
-- Override any existing masculine plurals.
masculine_plurals, mpl_noinv = handle_mf_plural("mpl", mpls, "m", masculine_plurals, masculines)
else
masculine_plurals, mpl_noinv = mpls, false
end
local function redundant_plural(pl)
for _, p in ipairs(plurals) do
if p.term == pl.term then
return true
end
end
return false
end
for _, mpl in ipairs(masculine_plurals) do
if redundant_plural(mpl) then
track("noun-redundant-mpl")
end
end
for _, fpl in ipairs(feminine_plurals) do
if redundant_plural(fpl) then
track("noun-redundant-fpl")
end
end
if plurals[1] then
-- Set 'noinv' because we already took care of invariable plurals above.
insert_noun_inflection(plurals, "plural", "p", "noinv")
end
insert_noun_inflection(masculines, "ပုလ္လိၚ်")
insert_noun_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်ပုလ္လိၚ်", nil, mpl_noinv)
insert_noun_inflection(feminines, "ဣတ္တိလိၚ်", "f")
insert_noun_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", nil, fpl_noinv)
local function parse_and_insert_noun_inflection(field, label, accel)
parse_and_insert_inflection(data, args, field, label, accel)
end
parse_and_insert_noun_inflection("adj", glossary_link("relational", "relational adjective"))
parse_and_insert_noun_inflection("adv", glossary_link("adverb"))
parse_and_insert_noun_inflection("dem", glossary_link("demonym"))
parse_and_insert_noun_inflection("fdem", "female " .. glossary_link("demonym"))
insert_deriv_inflections(data, args)
-- Maybe add category 'Italian nouns with irregular gender' (or similar)
local irreg_gender_lemma = lemma:gsub(" .*", "") -- only look at first word
if (irreg_gender_lemma:find("o$") and (gender_for_default_plural == "f" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) or
(irreg_gender_lemma:find("a$") and (gender_for_default_plural == "m" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) then
-- inscat(category_plpos .. " with irregular gender")
end
end
local function get_noun_params(nountype)
local params = {
[1] = {list = "g", disallow_holes = true, required = nountype ~= "proper", default = "?", type = "genders",
flatten = true},
[2] = {list = "pl", disallow_holes = true},
["m"] = list_param,
["f"] = list_param,
["mpl"] = list_param,
["fpl"] = list_param,
["adj"] = list_param, --adjective(s)
["adv"] = list_param, --adverb(s)
["dem"] = list_param, --demonym(s)
["fdem"] = list_param, --female demonym(s)
}
insert_deriv_params(params)
return params
end
pos_functions["နာမ်"] = {
params = get_noun_params("base"),
func = do_noun,
}
pos_functions["နာမ်မကိတ်ညဳ"] = {
params = get_noun_params("proper"),
func = function(args, data)
do_noun(args, data, "is proper noun")
end,
}
pos_functions["cardinal nouns"] = {
params = get_noun_params("base"),
func = function(args, data)
do_noun(args, data)
--insert(data.categories, 1, langname .. " cardinal numbers")
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function do_adjective(args, data, is_superlative)
local feminines = {}
local masculine_plurals = {}
local feminine_plurals = {}
-- Use "participle" not "past participle" for categories such as 'invariable participles'
local category_plpos = data.checkredlinks
if category_plpos == true then
category_plpos = data.pos_category
end
--local category_pos = m_en_utilities.singularize(category_plpos)
if args.sp then
local romut = require(romut_module)
if not romut.allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(romut.allowed_special_indicators) do
insert(indicators, "'" .. indic .. "'")
end
table.sort(indicators)
error("Special inflection indicator beginning can only be " ..
mw.text.listToText(indicators) .. ": " .. args.sp)
end
end
local lemma = data.pagename
local function fetch_inflections(field)
local retval = m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[field],
splitchar = ",",
}
if not retval[1] then
return {{term = "+"}}
end
return retval
end
local function insert_inflection(terms, label, accel)
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
}
end
if args.inv then
-- invariable adjective
insert(data.inflections, {label = glossary_link("ပြံၚ်လှာဲဟွံမာန်")})
insert(data.categories, category_plpos .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
end
if args.noforms then
-- [[bello]] and any others too complicated to describe in headword
insert(data.inflections, {label = "see below for inflection"})
end
if args.inv or args.apoc or args.noforms then
if args.sp or args.f[1] or args.pl[1] or args.mpl[1] or args.fpl[1] then
error("Can't specify inflections with an invariable or apocopated adjective or with noforms=")
end
elseif args.fonly then
-- feminine-only
if args.f[1] then
error("Can't specify explicit feminines with feminine-only " .. category_pos)
end
if args.pl[1] then
error("Can't specify explicit plurals with feminine-only " .. category_pos .. ", use fpl=")
end
if args.mpl[1] then
error("Can't specify explicit masculine plurals with feminine-only " .. category_pos)
end
local argsfpl = fetch_inflections("fpl")
for _, fpl in ipairs(argsfpl) do
if fpl.term == "+" then
local defpl = com.make_plural(lemma, "f", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
fpl.term = defpl
else
fpl.term = replace_hash_with_lemma(fpl.term, lemma)
end
insert(feminine_plurals, fpl)
end
insert(data.inflections, {label = "ပါဲနူဣတ္တိလိၚ်"})
insert_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "f|p")
else
-- Gather feminines.
for _, f in ipairs(fetch_inflections("f")) do
if f.term == "+" then
-- Generate default feminine.
f.term = com.make_feminine(lemma, args.sp)
else
f.term = replace_hash_with_lemma(f.term, lemma)
end
insert(feminines, f)
end
local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and
not m_headword_utilities.termobj_has_qualifiers_or_labels(feminines[1])
if fem_like_lemma then
--insert(data.categories, langname .. " epicene " .. category_plpos)
end
local mpl_field = "mpl"
local fpl_field = "fpl"
if args.pl[1] then
if args.mpl[1] or args.fpl[1] then
error("Can't specify both pl= and mpl=/fpl=")
end
mpl_field = "pl"
fpl_field = "pl"
end
local argsmpl = fetch_inflections(mpl_field)
local argsfpl = fetch_inflections(fpl_field)
for _, mpl in ipairs(argsmpl) do
if mpl.term == "+" then
-- Generate default masculine plural.
local defpl = com.make_plural(lemma, "m", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
mpl.term = defpl
else
mpl.term = replace_hash_with_lemma(mpl.term, lemma)
end
insert(masculine_plurals, mpl)
end
for _, fpl in ipairs(argsfpl) do
if fpl.term == "+" then
for _, f in ipairs(feminines) do
-- Generate default feminine plural; f is a table.
local fplobj = m_table.shallowCopy(fpl)
local defpl = com.make_plural(f.term, "f", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. f.term .. "'")
end
fplobj.term = defpl
m_headword_utilities.combine_termobj_qualifiers_labels(fplobj, f)
insert(feminine_plurals, fplobj)
end
else
fpl.term = replace_hash_with_lemma(fpl.term, lemma)
insert(feminine_plurals, fpl)
end
end
local fem_pl_like_masc_pl = masculine_plurals[1] and feminine_plurals[1] and
m_table.deepEquals(masculine_plurals, feminine_plurals)
local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and
not m_headword_utilities.termobj_has_qualifiers_or_labels(masculine_plurals[1])
if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then
-- actually invariable
insert(data.inflections, {label = glossary_link("ဟွံပြံၚ်လှာဲ")})
insert(data.categories, category_plpos .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
else
-- Make sure there are feminines given and not same as lemma.
if not fem_like_lemma then
insert_inflection(feminines, "ဣတ္တိလိၚ်", "f|s")
elseif args.gneut then
data.genders = {"gneut"}
else
data.genders = {"mfbysense"}
end
if fem_pl_like_masc_pl then
if args.gneut then
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်", "p")
else
-- This is how the Spanish module works.
-- insert_inflection(masculine_plurals, "ပုလ္လိၚ် ကဵု ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "p")
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်", "p")
end
else
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်ပုလ္လိၚ်", "m|p")
insert_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "f|p")
end
end
end
local function parse_and_insert_adj_inflection(field, label, accel, frob)
parse_and_insert_inflection(data, args, field, label, accel, frob)
end
parse_and_insert_adj_inflection("n", "နပုလ္လိၚ်")
parse_and_insert_adj_inflection("comp", glossary_link("ပတဝ်ပတုပ်ရံၚ်"))
parse_and_insert_adj_inflection("sup", glossary_link("သဒ္ဒာ"))
parse_and_insert_adj_inflection("adv", glossary_link("ကြိယာဝိသေသန"))
insert_deriv_inflections(data, args)
if args.irreg and is_superlative then
--insert(data.categories, langname .. " irregular superlative " .. category_plpos)
end
end
local function get_adjective_params(adjtype)
local params = {
["inv"] = boolean_param, --invariable
["noforms"] = boolean_param, --too complicated to list forms except in a table
["sp"] = true, -- special indicator: "first", "first-last", etc.
["f"] = list_param, --feminine form(s)
["pl"] = list_param, --plural override(s)
["fpl"] = list_param, --feminine plural override(s)
["mpl"] = list_param, --masculine plural override(s)
["adv"] = list_param, --adverb(s)
}
if adjtype == "base" or adjtype == "part" or adjtype == "det" then
params["တုဲဒှ်"] = list_param --comparative(s)
params["ညိည"] = list_param --superlative(s)
params["ဆၜိုတ်"] = boolean_param -- feminine only
end
if adjtype == "sup" then
params["irreg"] = boolean_param
end
insert_deriv_params(params)
return params
end
pos_functions["နာမဝိသေသန"] = {
params = get_adjective_params("base"),
func = do_adjective,
}
pos_functions["နာမဝိသေသနပတုပ်ရံၚ်"] = {
params = get_adjective_params("comp"),
func = do_adjective,
pos_category = "နာမဝိသေသန",
}
pos_functions["သဒ္ဒာနာမဝိသေသန"] = {
params = get_adjective_params("sup"),
func = function(args, data)
do_adjective(args, data, "is superlative")
end,
pos_category = "နာမဝိသေသန",
}
pos_functions["cardinal adjectives"] = {
params = get_adjective_params("card"),
func = function(args, data)
do_adjective(args, data)
insert(data.categories, 1, "ဂၞန်သၚ်္ချာ" .. langname .. "မတော်ရိုဟ်နကဵုအဓိကဂမၠိုၚ်")
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
pos_functions["လုပ်ကၠောန်စွံလဝ်နကဵုအတိက်"] = {
params = get_adjective_params("part"),
func = do_adjective,
redlink_pos = "လုပ်ကၠောန်စွံလဝ်",
}
pos_functions["လုပ်ကၠောန်စွံလဝ်ပစ္စုပ္ပန်"] = {
params = get_adjective_params("part"),
func = do_adjective,
redlink_pos = "လုပ်ကၠောန်စွံလဝ်",
}
pos_functions["ဖျေံလဝ်သန္နိဋ္ဌာန်"] = {
params = get_adjective_params("det"),
func = do_adjective,
}
pos_functions["ပစ္စဲ"] = {
params = get_adjective_params("det"),
func = do_adjective,
}
pos_functions["adjective-like pronouns"] = {
params = get_adjective_params("pron"),
func = do_adjective,
pos_category = "သဗ္ဗနာမ်",
}
pos_functions["cardinal invariable"] = {
params = {},
func = function(args, data)
insert(data.categories, "ဂၞန်သၚ်္ချာ" .. langname .. "မတော်ရိုဟ်နကဵုအဓိကဂမၠိုၚ်")
insert(data.categories, "ဂၞန်သၚ်္ချာ" .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
insert(data.inflections, {label = glossary_link("ကၞိက်ဟွံမာန်")})
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
-----------------------------------------------------------------------------------------
-- Adverbs --
-----------------------------------------------------------------------------------------
local function do_adverb(args, data)
local function parse_and_insert_adv_inflection(field, label, accel, frob)
parse_and_insert_inflection(data, args, field, label, accel, frob)
end
parse_and_insert_adv_inflection("comp", glossary_link("ပတုပ်ရံၚ်"))
parse_and_insert_adv_inflection("sup", glossary_link("သဒ္ဒာ"))
parse_and_insert_adv_inflection("adj", glossary_link("နာမဝိသေသန"))
end
local function get_adverb_params(advtype)
local params = {
["adj"] = list_param, --adjective(s)
}
if advtype == "base" then
params["တုဲဒှ်"] = list_param --comparative(s)
params["ညိည"] = list_param --superlative(s)
end
return params
end
pos_functions["ကြိယာဝိသေသန"] = {
params = get_adverb_params("base"),
func = do_adverb,
}
pos_functions["ကြိယာဝိသေသနပတုပ်ရံၚ်"] = {
params = get_adverb_params("comp"),
func = do_adverb,
pos_category = "ကြိယာဝိသေသန",
}
pos_functions["သဒ္ဒာကြိယာဝိသေသန"] = {
params = get_adverb_params("sup"),
func = do_adverb,
pos_category = "ကြိယာဝိသေသန",
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["ကြိယာ"] = {
params = {
[1] = {},
["noautolinktext"] = boolean_param,
["noautolinkverb"] = boolean_param,
},
func = function(args, data)
if args[1] then
local alternant_multiword_spec = require(it_verb_module).do_generate_forms(args, "from headword", data.heads[1])
local function do_verb_form(slot, label, rowslot, rowlabel)
local forms = alternant_multiword_spec.forms[slot]
local retval
if alternant_multiword_spec.rowprops.all_defective[rowslot] then
if not alternant_multiword_spec.rowprops.defective[rowslot] then
-- No forms, but none expected; don't display anything
return
end
retval = {label = "no " .. rowlabel}
elseif not forms then
retval = {label = "no " .. label}
elseif alternant_multiword_spec.rowprops.all_unknown[rowslot] then
retval = {label = "unknown " .. rowlabel}
elseif forms[1].form == "?" then
retval = {label = "unknown " .. label}
else
-- Disable accelerators for now because we don't want the added accents going into the headwords.
-- FIXME: We now have support in [[Module:accel]] to specify the target explicitly; we can use this
-- so we can add the accelerators back with a param to avoid the accents.
local accel_form = nil -- all_verb_slots[slot]
retval = {label = label, accel = accel_form and {form = accel_form} or nil}
local prev_footnotes = nil
-- If the footnotes for this form are the same as the footnotes for the preceding form or
-- contain the preceding footnotes, replace the footnotes that are the same with "ditto".
-- This avoids repetition on pages like [[succedere]] where the form ''succedétti'' has a long
-- footnote which gets repeated in the traditional form ''succedètti'' (which also has the
-- footnote "[traditional]").
for _, form in ipairs(forms) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
local quals_with_ditto = quals
if quals and prev_footnotes then
local quals_contains_previous = true
for _, qual in ipairs(prev_footnotes) do
if not m_table.contains(quals, qual) then
quals_contains_previous = false
break
end
end
if quals_contains_previous then
local inserted_ditto = false
quals_with_ditto = {}
for _, qual in ipairs(quals) do
if m_table.contains(prev_footnotes, qual) then
if not inserted_ditto then
insert(quals_with_ditto, "ditto")
inserted_ditto = true
end
else
insert(quals_with_ditto, qual)
end
end
end
end
prev_footnotes = quals
insert(retval, {term = form.form, q = quals_with_ditto, refs = refs})
end
end
insert(data.inflections, retval)
end
if alternant_multiword_spec.props.is_pronominal then
insert(data.inflections, {label = glossary_link("ဒုၚ်ယၟုနာမ်")})
end
if alternant_multiword_spec.props.impers then
insert(data.inflections, {label = glossary_link("ဟွံမွဲကဵုပစ္စဲပူဂဵု")})
end
if alternant_multiword_spec.props.thirdonly then
insert(data.inflections, {label = "ပါဲနူပူဂဵုတတိယ"})
end
local thirdonly = alternant_multiword_spec.props.impers or alternant_multiword_spec.props.thirdonly
local sing_label = thirdonly and "third-person singular" or "first-person singular"
for _, rowspec in ipairs {
{"pres", "ပစ္စုပ္ပန်", true},
{"phis", "ဝၚ်အတိက်", true},
{"pp", "လုပ်ကၠောန်စွံလဝ်နကဵုအတိက်", true},
{"imperf", "ဟွံက္ဍိုက်ပေၚ်"},
{"fut", "အနာဂတ်"},
{"sub", "မချူဗပေၚ်စုတ်လဝ်"},
{"impsub", "ဗပေၚ်စုတ်လဝ်ဟၟဲက္ဍိုက်ပေၚ်"},
} do
local rowslot, desc, always_show = unpack(rowspec)
local slot = rowslot .. (thirdonly and "3s" or "1s")
local must_show = alternant_multiword_spec.is_irreg[slot]
if always_show then
must_show = true
elseif rowslot == "imperf" and alternant_multiword_spec.props.has_explicit_stem_spec then
-- If there is an explicit stem spec, make sure it gets displayed; the imperfect is a good way of
-- showing this.
must_show = true
elseif not alternant_multiword_spec.forms[slot] then
-- If the principal part is unexpectedly missing, make sure we show this.
must_show = true
elseif alternant_multiword_spec.forms[slot][1].form == "?" then
-- If the principal part is unknown, make sure we show this.
must_show = true
end
if must_show then
if rowslot == "pp" then
do_verb_form(rowslot, desc, rowslot, desc)
else
do_verb_form(slot, sing_label .. " " .. desc, rowslot, desc)
end
end
end
-- Also do the imperative, but not for third-only verbs, which are always missing the imperative.
if not thirdonly and (alternant_multiword_spec.is_irreg.imp2s
or not alternant_multiword_spec.forms.imp2s) then
do_verb_form("imp2s", "second-person singular imperative", "imp", "imperative")
end
-- If there is a past participle but no auxiliary (e.g. [[malfare]]), explicitly add "no auxiliary". In
-- cases where there's no past participle and no auxiliary (e.g. [[irrompere]]), we don't do this as we
-- already get "no past participle" displayed. Don't display an auxiliary in any case if the lemma
-- consists entirely of reflexive verbs (for which the auxiliary is always [[essere]]).
if alternant_multiword_spec.props.is_non_reflexive and (
alternant_multiword_spec.forms.aux or alternant_multiword_spec.forms.pp
) then
do_verb_form("aux", "auxiliary", "aux", "auxiliary")
end
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
insert(data.categories, cat)
end
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:it-verb]] it in place of the user-specified or auto-generated head so that we get accents marked
-- on the verb(s). Don't do this if the user gave multiple heads or gave a head with a multiword-linked
-- verbal expression such as '[[dare esca]] [[al]] [[fuoco]]'.
if #data.user_specified_heads == 0 or (
#data.user_specified_heads == 1 and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.inf) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
end
end
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["ဗီုပြၚ်အဆက်လက္ကရဴ"] = {
params = {
[1] = {required = true, list = true, disallow_holes = true},
["g"] = {list = true, disallow_holes = true, type = "genders", flatten = true},
},
func = function(args, data)
validate_genders(args.g)
data.genders = args.g
local suffix_type = {}
for _, typ in ipairs(args[1]) do
-- insert(suffix_type, typ .. "-forming suffix")
end
insert(data.inflections, {label = "non-lemma form of " .. m_table.serialCommaJoin(suffix_type, {conj = "or"})})
end,
}
-----------------------------------------------------------------------------------------
-- Arbitrary parts of speech --
-----------------------------------------------------------------------------------------
pos_functions["arbitrary part of speech"] = {
params = {
[1] = {required = true},
["g"] = {list = true, disallow_holes = true, type = "genders", flatten = true},
},
func = function(args, data)
if data.is_suffix then
error("Can't use [[Template:it-pos]] with suffixes")
end
validate_genders(args.g)
data.genders = args.g
local plpos = m_en_utilities.pluralize(args[1])
data.pos_category = plpos
end,
}
return export
34rrsaosqz42zr960rg583t3jegczzn
393644
393634
2026-04-27T08:14:50Z
咽頭べさ
33
393644
Scribunto
text/plain
-- This module contains code for Italian headword templates.
-- Templates covered are:
-- * {{it-noun}}, {{it-proper noun}};
-- * {{it-verb}};
-- * {{it-adj}}, {{it-adj-comp}}, {{it-adj-sup}};
-- * {{it-det}};
-- * {{it-art}};
-- * {{it-pron-adj}};
-- * {{it-pp}};
-- * {{it-presp}};
-- * {{it-card-noun}}, {{it-card-adj}}, {{it-card-inv}};
-- * {{it-adv}};
-- * {{it-pos}};
-- * {{it-suffix form}}.
-- See [[Module:it-verb]] for Italian conjugation templates.
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local m_strutils = require("Module:string utilities")
local usub = m_strutils.sub
local require_when_needed = require("Module:require when needed")
local insert = table.insert
local remove = table.remove
local m_table = require("Module:table")
local com = require("Module:it-common")
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local inflection_utilities_module = "Module:inflection utilities"
local it_verb_module = "Module:it-verb"
local parse_interface_module = "Module:parse interface"
local romut_module = "Module:romance utilities"
local lang = require("Module:languages").getByCode("it")
local langname = lang:getCanonicalName()
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local no_split_apostrophe_words = {
["c'è"] = true,
["c'era"] = true,
["c'erano"] = true,
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local function track(page)
require("Module:debug/track")("it-headword/" .. page)
return true
end
-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments come
-- from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are given;
-- `accel` is the accelerator form, or nil.
local function parse_and_insert_inflection(data, args, field, label, accel, frob)
m_headword_utilities.parse_and_insert_inflection {
headdata = data,
forms = args[field],
paramname = field,
splitchar = ",",
label = label,
accel = accel and {form = accel} or nil,
frob = frob,
}
end
local function replace_hash_with_lemma(term, lemma)
-- If there is a % sign in the lemma, we have to replace it with %% so it doesn't get interpreted as a capture
-- replace expression.
lemma = lemma:gsub("%%", "%%%%")
return (term:gsub("#", lemma))
end
local list_param = {list = true, disallow_holes = true}
local boolean_param = {type = "boolean"}
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local poscat = frame.args[1]
or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local parargs = frame:getParent().args
local params = {
["head"] = list_param,
["id"] = true,
["sort"] = true,
["apoc"] = boolean_param,
["splithyph"] = boolean_param,
["nolinkhead"] = boolean_param,
["nolink"] = {type = "boolean", alias_of = "nolinkhead"},
["json"] = boolean_param,
["pagename"] = true, -- for testing
}
if pos_functions[poscat] then
for key, val in pairs(pos_functions[poscat].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = args.head
local heads = user_specified_heads
if args.nolinkhead then
if #heads == 0 then
heads = {pagename}
end
else
local romut = require(romut_module)
local auto_linked_head = romut.add_links_to_multiword_term(pagename, args.splithyph,
no_split_apostrophe_words)
if #heads == 0 then
heads = {auto_linked_head}
else
for i, head in ipairs(heads) do
if head:find("^~") then
head = romut.apply_link_modifiers(auto_linked_head, usub(head, 2))
heads[i] = head
end
if head == auto_linked_head then
track("redundant-head")
end
end
end
end
local data = {
lang = lang,
pos_category = pos_functions[poscat] and pos_functions[poscat].pos_category or poscat,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
no_redundant_head_cat = #user_specified_heads == 0,
genders = {},
inflections = {},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
checkredlinks = pos_functions[poscat] and pos_functions[poscat].redlink_pos or true,
}
if pagename:find("^%-") and poscat ~= "ဗီုပြၚ်အဆက်လက္ကရဴ" then
data.is_suffix = true
data.pos_category = "အဆက်လက္ကရဴ"
data.checkredlinks = true
-- local singular_poscat = m_en_utilities.singularize(poscat)
-- insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes")
-- insert(data.inflections, {label = singular_poscat .. "-forming suffix"})
end
if pos_functions[poscat] then
pos_functions[poscat].func(args, data)
end
if args.apoc then
-- Apocopated form of a term; do this after calling pos_functions[], because the function might modify
-- data.pos_category.
local pos = data.pos_category
if not pos:find(" forms") then
-- Apocopated forms are non-lemma forms.
--local singular_poscat = m_en_utilities.singularize(pos)
data.pos_category = "ဗီုပြၚ်" .. singular_poscat
end
-- If this is a suffix, insert label 'apocopated' after 'FOO-forming suffix', otherwise insert at the beginning.
insert(data.inflections, data.is_suffix and 2 or 1, {label = glossary_link("apocopated")})
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
local deriv_params = {
{"dim", glossary_link("diminutive")},
{"dim_dim", "double " .. glossary_link("diminutive")},
{"aug_dim", glossary_link("augmentative") .. "-" .. glossary_link("diminutive")},
{"aug", glossary_link("augmentative")},
{"dim_aug", glossary_link("diminutive") .. "-" .. glossary_link("augmentative")},
{"aug_aug", "double " .. glossary_link("augmentative")},
{"pej", glossary_link("pejorative")},
{"dim_pej", glossary_link("diminutive") .. "-" .. glossary_link("pejorative")},
{"aug_pej", glossary_link("augmentative") .. "-" .. glossary_link("pejorative")},
{"pej_pej", "double " .. glossary_link("pejorative")},
{"end", glossary_link("endearing")},
{"dim_end", glossary_link("diminutive") .. "-" .. glossary_link("endearing")},
{"aug_end", glossary_link("augmentative") .. "-" .. glossary_link("endearing")},
{"derog", glossary_link("derogatory")},
{"dim_derog", glossary_link("diminutive") .. "-" .. glossary_link("derogatory")},
{"aug_derog", glossary_link("augmentative") .. "-" .. glossary_link("derogatory")},
{"end_derog", glossary_link("endearing") .. "-" .. glossary_link("derogatory")},
}
local function insert_deriv_params(params)
for _, deriv_param in ipairs(deriv_params) do
local param = unpack(deriv_param)
params[param] = list_param
end
end
local param_mods = {
t = {
-- We need to store the <t:...> inline modifier into the "gloss" key of the parsed part, because that is what
-- [[Module:links]] expects.
item_dest = "gloss",
},
gloss = {},
-- no 'tr' or 'ts', doesn't make sense for Italian
g = {
-- We need to store the <g:...> inline modifier into the "genders" key of the parsed part, because that is what
-- [[Module:links]] expects.
item_dest = "genders",
sublist = true,
},
id = {},
alt = {},
q = {type = "qualifier"},
qq = {type = "qualifier"},
lit = {},
pos = {},
-- no 'sc', doesn't make sense for Italian
}
local function parse_term_with_modifiers(paramname, val)
local function generate_obj(term)
local decomp = com.decompose(term)
local lemma = com.remove_non_final_accents(decomp)
if lemma ~= decomp then
term = com.compose("[[" .. lemma .. "|" .. decomp .. "]]")
end
return {term = term}
end
local retval = require(parse_interface_module).parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = "[/;,]",
preserve_splitchar = true,
})
for _, obj in ipairs(retval) do
if obj.delimiter == ";" then
obj.separator = "; "
elseif obj.delimiter == "/" then
obj.separator = "/"
-- default to nil for comma
end
end
return retval
end
local function insert_deriv_inflections(data, args)
for _, deriv_param in ipairs(deriv_params) do
local param, desc = unpack(deriv_param)
if #args[param] > 0 then
local inflection = {label = desc}
for _, term in ipairs(args[param]) do
local parsed_terms = parse_term_with_modifiers(param, term)
for _, parsed_term in ipairs(parsed_terms) do
insert(inflection, parsed_term)
end
end
insert(data.inflections, inflection)
end
end
end
-----------------------------------------------------------------------------------------
-- Nouns --
-----------------------------------------------------------------------------------------
local allowed_genders = m_table.listToSet(
{"m", "f", "mf", "mfbysense", "mfequiv", "gneut", "n", "m-p", "f-p", "mf-p", "mfbysense-p", "mfequiv-p", "gneut-p", "n-p", "?", "?-p"}
)
local function validate_genders(genders)
for _, g in ipairs(genders) do
if type(g) == "table" then
g = g.spec
end
if not allowed_genders[g] then
error("Unrecognized gender: " .. g)
end
end
end
local function do_noun(args, data, is_proper)
local is_plurale_tantum = false
local has_singular = false
local category_plpos = data.checkredlinks
if category_plpos == true then
category_plpos = data.pos_category
end
--local category_pos = m_en_utilities.singularize(category_plpos)
validate_genders(args[1])
data.genders = args[1]
local saw_m = false
local saw_f = false
local gender_for_default_plural
-- Check for specific genders and pluralia tantum.
for _, g in ipairs(args[1]) do
if type(g) == "table" then
g = g.spec
end
if g:find("-p$") then
is_plurale_tantum = true
else
has_singular = true
if g == "m" or g == "mf" or g == "mfbysense" then
saw_m = true
end
if g == "f" or g == "mf" or g == "mfbysense" then
saw_f = true
end
end
end
if saw_m and saw_f then
gender_for_default_plural = "mf"
elseif saw_f then
gender_for_default_plural = "f"
else
gender_for_default_plural = "m"
end
local lemma = data.pagename
local function inscat(cat)
insert(data.categories, cat .. langname)
end
local function insert_noun_inflection(terms, label, accel, no_inv)
for _, term in ipairs(terms) do
if not no_inv and term.term == lemma then
term.term = nil
term.label = glossary_link("ဟွံပြံၚ်လှာဲ")
end
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
}
end
-- Plural
local plurals = {}
-- Fetch explicit masculine and feminine plurals here because we may change them below when processing plurals.
local mpls = m_headword_utilities.parse_term_list_with_modifiers {
paramname = "mpl",
forms = args.mpl,
splitchar = ",",
}
local fpls = m_headword_utilities.parse_term_list_with_modifiers {
paramname = "fpl",
forms = args.fpl,
splitchar = ",",
}
if is_plurale_tantum and not has_singular then
if args[2][1] then
error("Can't specify plurals of plurale tantum " .. category_pos)
end
insert(data.inflections, {label = glossary_link("ပါဲနူကိုန်ဗဟုဝစ်")})
elseif args.apoc then
-- apocopated noun
if args[2][1] then
error("Can't specify plurals of apocopated " .. category_pos)
end
else
-- Fetch plurals and associated qualifiers, labels and genders.
plurals = m_headword_utilities.parse_term_list_with_modifiers {
paramname = {2, "pl"},
forms = args[2],
splitchar = ",",
include_mods = {"g"},
}
-- Check for special plural signals
local mode = nil
local pl1 = plurals[1]
if pl1 and #pl1.term == 1 then
mode = pl1.term
if mode == "?" or mode == "!" or mode == "-" or mode == "~" then
pl1.term = nil
if next(pl1) then
error(("Can't specify inline modifiers with plural code '%s'"):format(mode))
end
remove(plurals, 1) -- Remove the mode parameter
elseif mode ~= "+" and mode ~= "#" then
error(("Unexpected plural code '%s'"):format(mode))
end
end
if is_plurale_tantum then
-- both singular and plural
insert(data.inflections, {label = "ပါဲနူကိုန်ဗဟုဝစ်" .. glossary_link("လ္ၚဵုလ္ၚဵု") .. ", in variation"})
end
if mode == "?" then
-- Plural is unknown
insert(data.categories, category_plpos .. langname .. "မနွံကဵုကိုန်ဗဟုဝစ်ဟွံတီကၠး ဝါ ဟွံချိုတ်ပၠိုတ်ဂမၠိုၚ်")
elseif mode == "!" then
-- Plural is not attested
insert(data.inflections, {label = "plural not attested"})
insert(data.categories, category_plpos .. langname .. "မနွံကဵုကိုန်ဗဟုဝစ်ဟွံဒးစုတ်စရၚ်စေဝ်စၞောန်ဂမၠိုၚ်")
if plurals[1] then
error("Can't specify any plurals along with unattested plural code '!'")
end
elseif mode == "-" then
-- Uncountable noun; may occasionally have a plural
insert(data.categories, category_plpos .. langname .. "မတော်ဟွံဂွံဂမၠိုၚ်")
-- If plural forms were given explicitly, then show "usually"
if plurals[1] then
insert(data.inflections, {label = "usually " .. glossary_link("မတော်ဟွံဂွံ")})
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
else
insert(data.inflections, {label = glossary_link("မတော်ဟွံဂွံ")})
end
else
-- Countable or mixed countable/uncountable
-- If no plurals, use the default plural unless mpl= or fpl= explicitly given.
if not plurals[1] and not mpls[1] and not fpls[1] and not is_proper then
plurals[1] = {term = "+"}
end
if mode == "~" then
-- Mixed countable/uncountable noun, always has a plural
insert(data.inflections, {label = glossary_link("မတော်ဂွံ") .. " ကဵု " .. glossary_link("မတော်ဟွ")})
insert(data.categories, category_plpos .. langname .. " မတော်ဟွံဂွံဂမၠိုၚ်")
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
elseif plurals[1] then
-- Countable nouns
insert(data.categories, category_plpos .. langname .. "မတော်ဂွံဂမၠိုၚ်")
else
-- Uncountable nouns
insert(data.categories, category_plpos .. langname .. "မတော်ဟွံဂွံဂမၠိုၚ်")
end
end
-- Process plurals, handling requests for default plurals.
local has_default_or_hash = false
for _, pl in ipairs(plurals) do
if pl.term:find("^%+") or pl.term:find("#") or pl.term == "cap*" or pl.term == "cap*+" then
has_default_or_hash = true
break
end
end
if has_default_or_hash then
local newpls = {}
local function insert_pl(pl, defpl)
pl.term = defpl
insert(newpls, pl)
end
local function make_gendered_plural(pl, special)
if gender_for_default_plural == "mf" then
local default_mpl = com.make_plural(lemma, "m", special)
local default_fpl = com.make_plural(lemma, "f", special)
if default_mpl then
if default_mpl == default_fpl then
insert_pl(pl, default_mpl)
else
if args.mpl[1] or args.fpl[1] then
error("Can't specify gendered plural spec '" .. (special or "+") ..
"' along with gender=" .. gender_for_default_plural ..
" and also specify mpl= or fpl=")
end
mpls = {m_table.shallowCopy(pl)}
mpls[1].term = default_mpl
fpls = {pl}
fpls[1].term = default_fpl
end
end
else
local defpl = com.make_plural(lemma, gender_for_default_plural, special)
if defpl then
insert_pl(pl, defpl)
end
end
end
for _, pl in ipairs(plurals) do
if pl.term == "cap*" or pl.term == "cap*+" then
make_gendered_plural(pl, pl.term)
elseif pl.term == "+" then
make_gendered_plural(pl)
elseif pl.term:find("^%+") then
local special = require(romut_module).get_special_indicator(pl.term)
make_gendered_plural(pl, special)
else
insert_pl(pl, replace_hash_with_lemma(pl.term, lemma))
end
end
plurals = newpls
end
if plurals[2] then
--inscat(category_plpos .. " with multiple plurals")
end
-- If the first or only plural is the same as the singular, replace it with 'invariable', or 'usually
-- invariable' if there is more than one plural.
pl1 = plurals[1]
if pl1 and pl1.term == lemma then
if plurals[2] then
insert(data.inflections, {label = "ဗွဲတၟေၚ်" .. glossary_link("ဟွံပြၚ်လှာဲ"),
q = pl1.q, qq = pl1.qq, l = pl1.l, ll = pl1.ll, refs = pl1.refs
})
else
insert(data.inflections, {label = glossary_link("ဟွံပြၚ်လှာဲ"),
q = pl1.q, qq = pl1.qq, l = pl1.l, ll = pl1.ll, refs = pl1.refs
})
end
remove(plurals, 1)
--inscat("indeclinable " .. category_plpos)
end
if plurals[1] then
-- Check for gender-changing plurals.
for _, pl in ipairs(plurals) do
if pl.genders then
for _, g in ipairs(pl.genders) do
if type(g) ~= "table" then
g = {spec = g}
end
if g.spec == "m" and not saw_m or g.spec == "f" and not saw_f then
--inscat(category_plpos .. " that change gender in the plural")
end
end
end
end
end
end
-- Gather masculines/feminines. For each one, generate the corresponding plural. `field` is the name of the field
-- containing the masculine or feminine forms (normally "m" or "f"); `inflect` is a function of one or two arguments
-- to generate the default masculine or feminine from the lemma (the arguments are the lemma and optionally a
-- "special" flag to indicate how to handle multiword lemmas, and the function is normally make_feminine or
-- make_masculine from [[Module:it-common]]); and `default_plurals` is a list into which the corresponding default
-- plurals of the gathered or generated masculine or feminine forms are stored.
local function handle_mf(field, inflect, default_plurals)
local special
local mfs = m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[field],
splitchar = ",",
frob = function(term)
if term == "+" then
-- Generate default masculine/feminine.
term = inflect(lemma)
else
term = replace_hash_with_lemma(term, lemma)
end
special = require(romut_module).get_special_indicator(term)
if special then
term = inflect(lemma, special)
end
return term
end
}
for _, mf in ipairs(mfs) do
local plobj = m_table.shallowCopy(mf)
plobj.term = com.make_plural(mf.term, field, special)
if plobj.term then
-- Add an accelerator for each masculine/feminine plural whose lemma is the corresponding singular, so that
-- the accelerated entry that is generated has a definition that looks like
-- # {{plural of|it|MFSING}}
plobj.accel = {form = "p", lemma = mf.term}
insert(default_plurals, plobj)
end
end
return mfs
end
local feminine_plurals = {}
local feminines = handle_mf("f", com.make_feminine, feminine_plurals)
local masculine_plurals = {}
local masculines = handle_mf("m", com.make_masculine, masculine_plurals)
local function handle_mf_plural(mfplfield, mfpls, gender, default_plurals, singulars)
if is_plurale_tantum then
return mfpls, true
end
local new_mfpls = {}
local saw_plus
local noinv
for i, mfpl in ipairs(mfpls) do
local accel
if #mfpls == #singulars then
-- If same number of overriding masculine/feminine plurals as singulars, assume each plural goes with
-- the corresponding singular and use each corresponding singular as the lemma in the accelerator. The
-- generated entry will have
-- # {{plural of|it|SINGULAR}}
-- as the definition.
accel = {form = "p", lemma = singulars[i].term}
else
accel = nil
end
if mfpl.term == "+" then
-- We should never see + twice. If we do, it will lead to problems since we overwrite the values of
-- default_plurals the first time around.
if saw_plus then
error(("Saw + twice when handling %s="):format(mfplfield))
end
saw_plus = true
if not default_plurals[1] then
local defpl = com.make_plural(lemma, gender)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
default_plurals[1] = {term = defpl}
end
for _, defpl in ipairs(default_plurals) do
-- defpl is already a table and has an accel field
m_headword_utilities.combine_termobj_qualifiers_labels(defpl, mfpl)
insert(new_mfpls, defpl)
end
-- don't use "invariable" because the plural is not with respect to the lemma but with respect to the
-- masc/fem singular
noinv = true
elseif mfpl.term == "cap*" or mfpl.term == "cap*+" or mfpl.term:find("^%+") then
if mfpl.term:find("^%+") then
mfpl.term = require(romut_module).get_special_indicator(mfpl.term)
end
if singulars[1] then
for _, mf in ipairs(singulars) do
local mfplobj = m_table.shallowCopy(mfpl)
mfplobj.term = com.make_plural(mf.term, gender, mfpl.term)
if mfplobj.term then
mfplobj.accel = accel
m_headword_utilities.combine_termobj_qualifiers_labels(mfplobj, mf)
insert(new_mfpls, mfplobj)
end
-- don't use "invariable" because the plural is not with respect to the lemma but with respect
-- to the masc/fem singular
noinv = true
-- FIXME: Should we throw an error if no plural could be generated?
end
else
-- FIXME: This clause didn't exist in the corresponding code in [[Module:pt-headword]]. Is it
-- correct?
mfpl.term = com.make_plural(lemma, gender, mfpl.term)
if mfpl.term then
insert(new_mfpls, mfpl)
end
end
else
mfpl.accel = accel
mfpl.term = replace_hash_with_lemma(mfpl.term, lemma)
insert(new_mfpls, mfpl)
-- don't use "invariable" if masc/fem singular present because the plural is not with respect to
-- the lemma but with respect to the masc/fem singular
noinv = noinv or #singulars > 0
end
end
return new_mfpls, noinv
end
local mpl_noinv, fpl_noinv
-- Not fpls[1] because if the user didn't specify any explicit mpl= or fpl= but the lemma gender is mf or mfbysense
-- and has separate masculine and feminine plural forms (e.g. any term in -ista), we don't want to reprocess those
-- auto-generated forms.
if args.fpl[1] then
-- Override any existing feminine plurals.
feminine_plurals, fpl_noinv = handle_mf_plural("fpl", fpls, "f", feminine_plurals, feminines)
else
feminine_plurals, fpl_noinv = fpls, false
end
if args.mpl[1] then
-- Override any existing masculine plurals.
masculine_plurals, mpl_noinv = handle_mf_plural("mpl", mpls, "m", masculine_plurals, masculines)
else
masculine_plurals, mpl_noinv = mpls, false
end
local function redundant_plural(pl)
for _, p in ipairs(plurals) do
if p.term == pl.term then
return true
end
end
return false
end
for _, mpl in ipairs(masculine_plurals) do
if redundant_plural(mpl) then
track("noun-redundant-mpl")
end
end
for _, fpl in ipairs(feminine_plurals) do
if redundant_plural(fpl) then
track("noun-redundant-fpl")
end
end
if plurals[1] then
-- Set 'noinv' because we already took care of invariable plurals above.
insert_noun_inflection(plurals, "plural", "p", "noinv")
end
insert_noun_inflection(masculines, "ပုလ္လိၚ်")
insert_noun_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်ပုလ္လိၚ်", nil, mpl_noinv)
insert_noun_inflection(feminines, "ဣတ္တိလိၚ်", "f")
insert_noun_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", nil, fpl_noinv)
local function parse_and_insert_noun_inflection(field, label, accel)
parse_and_insert_inflection(data, args, field, label, accel)
end
parse_and_insert_noun_inflection("adj", glossary_link("relational", "relational adjective"))
parse_and_insert_noun_inflection("adv", glossary_link("adverb"))
parse_and_insert_noun_inflection("dem", glossary_link("demonym"))
parse_and_insert_noun_inflection("fdem", "female " .. glossary_link("demonym"))
insert_deriv_inflections(data, args)
-- Maybe add category 'Italian nouns with irregular gender' (or similar)
local irreg_gender_lemma = lemma:gsub(" .*", "") -- only look at first word
if (irreg_gender_lemma:find("o$") and (gender_for_default_plural == "f" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) or
(irreg_gender_lemma:find("a$") and (gender_for_default_plural == "m" or gender_for_default_plural == "mf"
or gender_for_default_plural == "mfbysense")) then
-- inscat(category_plpos .. " with irregular gender")
end
end
local function get_noun_params(nountype)
local params = {
[1] = {list = "g", disallow_holes = true, required = nountype ~= "proper", default = "?", type = "genders",
flatten = true},
[2] = {list = "pl", disallow_holes = true},
["m"] = list_param,
["f"] = list_param,
["mpl"] = list_param,
["fpl"] = list_param,
["adj"] = list_param, --adjective(s)
["adv"] = list_param, --adverb(s)
["dem"] = list_param, --demonym(s)
["fdem"] = list_param, --female demonym(s)
}
insert_deriv_params(params)
return params
end
pos_functions["နာမ်"] = {
params = get_noun_params("base"),
func = do_noun,
}
pos_functions["နာမ်မကိတ်ညဳ"] = {
params = get_noun_params("proper"),
func = function(args, data)
do_noun(args, data, "is proper noun")
end,
}
pos_functions["cardinal nouns"] = {
params = get_noun_params("base"),
func = function(args, data)
do_noun(args, data)
--insert(data.categories, 1, langname .. " cardinal numbers")
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function do_adjective(args, data, is_superlative)
local feminines = {}
local masculine_plurals = {}
local feminine_plurals = {}
-- Use "participle" not "past participle" for categories such as 'invariable participles'
local category_plpos = data.checkredlinks
if category_plpos == true then
category_plpos = data.pos_category
end
--local category_pos = m_en_utilities.singularize(category_plpos)
if args.sp then
local romut = require(romut_module)
if not romut.allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(romut.allowed_special_indicators) do
insert(indicators, "'" .. indic .. "'")
end
table.sort(indicators)
error("Special inflection indicator beginning can only be " ..
mw.text.listToText(indicators) .. ": " .. args.sp)
end
end
local lemma = data.pagename
local function fetch_inflections(field)
local retval = m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[field],
splitchar = ",",
}
if not retval[1] then
return {{term = "+"}}
end
return retval
end
local function insert_inflection(terms, label, accel)
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
}
end
if args.inv then
-- invariable adjective
insert(data.inflections, {label = glossary_link("ပြံၚ်လှာဲဟွံမာန်")})
insert(data.categories, category_plpos .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
end
if args.noforms then
-- [[bello]] and any others too complicated to describe in headword
insert(data.inflections, {label = "see below for inflection"})
end
if args.inv or args.apoc or args.noforms then
if args.sp or args.f[1] or args.pl[1] or args.mpl[1] or args.fpl[1] then
error("Can't specify inflections with an invariable or apocopated adjective or with noforms=")
end
elseif args.fonly then
-- feminine-only
if args.f[1] then
error("Can't specify explicit feminines with feminine-only " .. category_pos)
end
if args.pl[1] then
error("Can't specify explicit plurals with feminine-only " .. category_pos .. ", use fpl=")
end
if args.mpl[1] then
error("Can't specify explicit masculine plurals with feminine-only " .. category_pos)
end
local argsfpl = fetch_inflections("fpl")
for _, fpl in ipairs(argsfpl) do
if fpl.term == "+" then
local defpl = com.make_plural(lemma, "f", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
fpl.term = defpl
else
fpl.term = replace_hash_with_lemma(fpl.term, lemma)
end
insert(feminine_plurals, fpl)
end
insert(data.inflections, {label = "ပါဲနူဣတ္တိလိၚ်"})
insert_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "f|p")
else
-- Gather feminines.
for _, f in ipairs(fetch_inflections("f")) do
if f.term == "+" then
-- Generate default feminine.
f.term = com.make_feminine(lemma, args.sp)
else
f.term = replace_hash_with_lemma(f.term, lemma)
end
insert(feminines, f)
end
local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and
not m_headword_utilities.termobj_has_qualifiers_or_labels(feminines[1])
if fem_like_lemma then
--insert(data.categories, langname .. " epicene " .. category_plpos)
end
local mpl_field = "mpl"
local fpl_field = "fpl"
if args.pl[1] then
if args.mpl[1] or args.fpl[1] then
error("Can't specify both pl= and mpl=/fpl=")
end
mpl_field = "pl"
fpl_field = "pl"
end
local argsmpl = fetch_inflections(mpl_field)
local argsfpl = fetch_inflections(fpl_field)
for _, mpl in ipairs(argsmpl) do
if mpl.term == "+" then
-- Generate default masculine plural.
local defpl = com.make_plural(lemma, "m", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. lemma .. "'")
end
mpl.term = defpl
else
mpl.term = replace_hash_with_lemma(mpl.term, lemma)
end
insert(masculine_plurals, mpl)
end
for _, fpl in ipairs(argsfpl) do
if fpl.term == "+" then
for _, f in ipairs(feminines) do
-- Generate default feminine plural; f is a table.
local fplobj = m_table.shallowCopy(fpl)
local defpl = com.make_plural(f.term, "f", args.sp)
if not defpl then
error("Unable to generate default plural of '" .. f.term .. "'")
end
fplobj.term = defpl
m_headword_utilities.combine_termobj_qualifiers_labels(fplobj, f)
insert(feminine_plurals, fplobj)
end
else
fpl.term = replace_hash_with_lemma(fpl.term, lemma)
insert(feminine_plurals, fpl)
end
end
local fem_pl_like_masc_pl = masculine_plurals[1] and feminine_plurals[1] and
m_table.deepEquals(masculine_plurals, feminine_plurals)
local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and
not m_headword_utilities.termobj_has_qualifiers_or_labels(masculine_plurals[1])
if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then
-- actually invariable
insert(data.inflections, {label = glossary_link("ဟွံပြံၚ်လှာဲ")})
insert(data.categories, category_plpos .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
else
-- Make sure there are feminines given and not same as lemma.
if not fem_like_lemma then
insert_inflection(feminines, "ဣတ္တိလိၚ်", "f|s")
elseif args.gneut then
data.genders = {"gneut"}
else
data.genders = {"mfbysense"}
end
if fem_pl_like_masc_pl then
if args.gneut then
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်", "p")
else
-- This is how the Spanish module works.
-- insert_inflection(masculine_plurals, "ပုလ္လိၚ် ကဵု ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "p")
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်", "p")
end
else
insert_inflection(masculine_plurals, "ကိုန်ဗဟုဝစ်ပုလ္လိၚ်", "m|p")
insert_inflection(feminine_plurals, "ကိုန်ဗဟုဝစ်ဣတ္တိလိၚ်", "f|p")
end
end
end
local function parse_and_insert_adj_inflection(field, label, accel, frob)
parse_and_insert_inflection(data, args, field, label, accel, frob)
end
parse_and_insert_adj_inflection("n", "နပုလ္လိၚ်")
parse_and_insert_adj_inflection("comp", glossary_link("ပတဝ်ပတုပ်ရံၚ်"))
parse_and_insert_adj_inflection("sup", glossary_link("သဒ္ဒာ"))
parse_and_insert_adj_inflection("adv", glossary_link("ကြိယာဝိသေသန"))
insert_deriv_inflections(data, args)
if args.irreg and is_superlative then
--insert(data.categories, langname .. " irregular superlative " .. category_plpos)
end
end
local function get_adjective_params(adjtype)
local params = {
["inv"] = boolean_param, --invariable
["noforms"] = boolean_param, --too complicated to list forms except in a table
["sp"] = true, -- special indicator: "first", "first-last", etc.
["f"] = list_param, --feminine form(s)
["pl"] = list_param, --plural override(s)
["fpl"] = list_param, --feminine plural override(s)
["mpl"] = list_param, --masculine plural override(s)
["adv"] = list_param, --adverb(s)
}
if adjtype == "base" or adjtype == "part" or adjtype == "det" then
params["တုဲဒှ်"] = list_param --comparative(s)
params["ညိည"] = list_param --superlative(s)
params["ဆၜိုတ်"] = boolean_param -- feminine only
end
if adjtype == "sup" then
params["irreg"] = boolean_param
end
insert_deriv_params(params)
return params
end
pos_functions["နာမဝိသေသန"] = {
params = get_adjective_params("base"),
func = do_adjective,
}
pos_functions["နာမဝိသေသနပတုပ်ရံၚ်"] = {
params = get_adjective_params("comp"),
func = do_adjective,
pos_category = "နာမဝိသေသန",
}
pos_functions["သဒ္ဒာနာမဝိသေသန"] = {
params = get_adjective_params("sup"),
func = function(args, data)
do_adjective(args, data, "is superlative")
end,
pos_category = "နာမဝိသေသန",
}
pos_functions["cardinal adjectives"] = {
params = get_adjective_params("card"),
func = function(args, data)
do_adjective(args, data)
insert(data.categories, 1, "ဂၞန်သၚ်္ချာ" .. langname .. "မတော်ရိုဟ်နကဵုအဓိကဂမၠိုၚ်")
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
pos_functions["လုပ်ကၠောန်စွံလဝ်နကဵုအတိက်"] = {
params = get_adjective_params("part"),
func = do_adjective,
redlink_pos = "လုပ်ကၠောန်စွံလဝ်",
}
pos_functions["လုပ်ကၠောန်စွံလဝ်ပစ္စုပ္ပန်"] = {
params = get_adjective_params("part"),
func = do_adjective,
redlink_pos = "လုပ်ကၠောန်စွံလဝ်",
}
pos_functions["ဖျေံလဝ်သန္နိဋ္ဌာန်"] = {
params = get_adjective_params("det"),
func = do_adjective,
}
pos_functions["ပစ္စဲ"] = {
params = get_adjective_params("det"),
func = do_adjective,
}
pos_functions["adjective-like pronouns"] = {
params = get_adjective_params("pron"),
func = do_adjective,
pos_category = "သဗ္ဗနာမ်",
}
pos_functions["cardinal invariable"] = {
params = {},
func = function(args, data)
insert(data.categories, "ဂၞန်သၚ်္ချာ" .. langname .. "မတော်ရိုဟ်နကဵုအဓိကဂမၠိုၚ်")
insert(data.categories, "ဂၞန်သၚ်္ချာ" .. langname .. "နကဵုပါ်ပါဲထောံဟွံမာန်ဂမၠိုၚ်")
insert(data.inflections, {label = glossary_link("ကၞိက်ဟွံမာန်")})
end,
pos_category = "ဂၞန်သၚ်္ချာ",
}
-----------------------------------------------------------------------------------------
-- Adverbs --
-----------------------------------------------------------------------------------------
local function do_adverb(args, data)
local function parse_and_insert_adv_inflection(field, label, accel, frob)
parse_and_insert_inflection(data, args, field, label, accel, frob)
end
parse_and_insert_adv_inflection("comp", glossary_link("ပတုပ်ရံၚ်"))
parse_and_insert_adv_inflection("sup", glossary_link("သဒ္ဒာ"))
parse_and_insert_adv_inflection("adj", glossary_link("နာမဝိသေသန"))
end
local function get_adverb_params(advtype)
local params = {
["adj"] = list_param, --adjective(s)
}
if advtype == "base" then
params["တုဲဒှ်"] = list_param --comparative(s)
params["ညိည"] = list_param --superlative(s)
end
return params
end
pos_functions["ကြိယာဝိသေသန"] = {
params = get_adverb_params("base"),
func = do_adverb,
}
pos_functions["ကြိယာဝိသေသနပတုပ်ရံၚ်"] = {
params = get_adverb_params("comp"),
func = do_adverb,
pos_category = "ကြိယာဝိသေသန",
}
pos_functions["သဒ္ဒာကြိယာဝိသေသန"] = {
params = get_adverb_params("sup"),
func = do_adverb,
pos_category = "ကြိယာဝိသေသန",
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["ကြိယာ"] = {
params = {
[1] = {},
["noautolinktext"] = boolean_param,
["noautolinkverb"] = boolean_param,
},
func = function(args, data)
if args[1] then
local alternant_multiword_spec = require(it_verb_module).do_generate_forms(args, "from headword", data.heads[1])
local function do_verb_form(slot, label, rowslot, rowlabel)
local forms = alternant_multiword_spec.forms[slot]
local retval
if alternant_multiword_spec.rowprops.all_defective[rowslot] then
if not alternant_multiword_spec.rowprops.defective[rowslot] then
-- No forms, but none expected; don't display anything
return
end
retval = {label = "no " .. rowlabel}
elseif not forms then
retval = {label = "no " .. label}
elseif alternant_multiword_spec.rowprops.all_unknown[rowslot] then
retval = {label = "unknown " .. rowlabel}
elseif forms[1].form == "?" then
retval = {label = "unknown " .. label}
else
-- Disable accelerators for now because we don't want the added accents going into the headwords.
-- FIXME: We now have support in [[Module:accel]] to specify the target explicitly; we can use this
-- so we can add the accelerators back with a param to avoid the accents.
local accel_form = nil -- all_verb_slots[slot]
retval = {label = label, accel = accel_form and {form = accel_form} or nil}
local prev_footnotes = nil
-- If the footnotes for this form are the same as the footnotes for the preceding form or
-- contain the preceding footnotes, replace the footnotes that are the same with "ditto".
-- This avoids repetition on pages like [[succedere]] where the form ''succedétti'' has a long
-- footnote which gets repeated in the traditional form ''succedètti'' (which also has the
-- footnote "[traditional]").
for _, form in ipairs(forms) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
local quals_with_ditto = quals
if quals and prev_footnotes then
local quals_contains_previous = true
for _, qual in ipairs(prev_footnotes) do
if not m_table.contains(quals, qual) then
quals_contains_previous = false
break
end
end
if quals_contains_previous then
local inserted_ditto = false
quals_with_ditto = {}
for _, qual in ipairs(quals) do
if m_table.contains(prev_footnotes, qual) then
if not inserted_ditto then
insert(quals_with_ditto, "ditto")
inserted_ditto = true
end
else
insert(quals_with_ditto, qual)
end
end
end
end
prev_footnotes = quals
insert(retval, {term = form.form, q = quals_with_ditto, refs = refs})
end
end
insert(data.inflections, retval)
end
if alternant_multiword_spec.props.is_pronominal then
insert(data.inflections, {label = glossary_link("ဒုၚ်ယၟုနာမ်")})
end
if alternant_multiword_spec.props.impers then
insert(data.inflections, {label = glossary_link("ဟွံမွဲကဵုပစ္စဲပူဂဵု")})
end
if alternant_multiword_spec.props.thirdonly then
insert(data.inflections, {label = "ပါဲနူပူဂဵုတတိယ"})
end
local thirdonly = alternant_multiword_spec.props.impers or alternant_multiword_spec.props.thirdonly
local sing_label = thirdonly and "ကိုန်ဨကဝုစ်ပူဂဵုတတိယ" or "ကိုန်ဨကဝုစ်ပူဂဵုပဌမ"
for _, rowspec in ipairs {
{"pres", "ပစ္စုပ္ပန်", true},
{"phis", "ဝၚ်အတိက်", true},
{"pp", "လုပ်ကၠောန်စွံလဝ်နကဵုအတိက်", true},
{"imperf", "ဟွံက္ဍိုက်ပေၚ်"},
{"fut", "အနာဂတ်"},
{"sub", "မချူဗပေၚ်စုတ်လဝ်"},
{"impsub", "ဗပေၚ်စုတ်လဝ်ဟၟဲက္ဍိုက်ပေၚ်"},
} do
local rowslot, desc, always_show = unpack(rowspec)
local slot = rowslot .. (thirdonly and "3s" or "1s")
local must_show = alternant_multiword_spec.is_irreg[slot]
if always_show then
must_show = true
elseif rowslot == "imperf" and alternant_multiword_spec.props.has_explicit_stem_spec then
-- If there is an explicit stem spec, make sure it gets displayed; the imperfect is a good way of
-- showing this.
must_show = true
elseif not alternant_multiword_spec.forms[slot] then
-- If the principal part is unexpectedly missing, make sure we show this.
must_show = true
elseif alternant_multiword_spec.forms[slot][1].form == "?" then
-- If the principal part is unknown, make sure we show this.
must_show = true
end
if must_show then
if rowslot == "pp" then
do_verb_form(rowslot, desc, rowslot, desc)
else
do_verb_form(slot, sing_label .. " " .. desc, rowslot, desc)
end
end
end
-- Also do the imperative, but not for third-only verbs, which are always missing the imperative.
if not thirdonly and (alternant_multiword_spec.is_irreg.imp2s
or not alternant_multiword_spec.forms.imp2s) then
do_verb_form("imp2s", "second-person singular imperative", "imp", "imperative")
end
-- If there is a past participle but no auxiliary (e.g. [[malfare]]), explicitly add "no auxiliary". In
-- cases where there's no past participle and no auxiliary (e.g. [[irrompere]]), we don't do this as we
-- already get "no past participle" displayed. Don't display an auxiliary in any case if the lemma
-- consists entirely of reflexive verbs (for which the auxiliary is always [[essere]]).
if alternant_multiword_spec.props.is_non_reflexive and (
alternant_multiword_spec.forms.aux or alternant_multiword_spec.forms.pp
) then
do_verb_form("aux", "auxiliary", "aux", "auxiliary")
end
-- Add categories.
for _, cat in ipairs(alternant_multiword_spec.categories) do
insert(data.categories, cat)
end
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:it-verb]] it in place of the user-specified or auto-generated head so that we get accents marked
-- on the verb(s). Don't do this if the user gave multiple heads or gave a head with a multiword-linked
-- verbal expression such as '[[dare esca]] [[al]] [[fuoco]]'.
if #data.user_specified_heads == 0 or (
#data.user_specified_heads == 1 and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.inf) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
end
end
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["ဗီုပြၚ်အဆက်လက္ကရဴ"] = {
params = {
[1] = {required = true, list = true, disallow_holes = true},
["g"] = {list = true, disallow_holes = true, type = "genders", flatten = true},
},
func = function(args, data)
validate_genders(args.g)
data.genders = args.g
local suffix_type = {}
for _, typ in ipairs(args[1]) do
-- insert(suffix_type, typ .. "-forming suffix")
end
insert(data.inflections, {label = "non-lemma form of " .. m_table.serialCommaJoin(suffix_type, {conj = "or"})})
end,
}
-----------------------------------------------------------------------------------------
-- Arbitrary parts of speech --
-----------------------------------------------------------------------------------------
pos_functions["arbitrary part of speech"] = {
params = {
[1] = {required = true},
["g"] = {list = true, disallow_holes = true, type = "genders", flatten = true},
},
func = function(args, data)
if data.is_suffix then
error("Can't use [[Template:it-pos]] with suffixes")
end
validate_genders(args.g)
data.genders = args.g
local plpos = m_en_utilities.pluralize(args[1])
data.pos_category = plpos
end,
}
return export
eu0tmnoz0fnb4ubeggns4g2qt8zffi6
မဝ်ဂျူ:it-headword/doc
828
198239
393645
272623
2026-04-27T08:16:50Z
咽頭べさ
33
393645
wikitext
text/x-wiki
This module supports most of the Italian headword templates listed in [[:ကဏ္ဍ:ထာမ်ပလိက်လာၚ်က္ဍိုပ်မအရေဝ်အဳတခ်လဳဂမၠိုၚ်|Category:Italian headword-line templates]]. See the comment at the top of the module for an exact list.
6sacis09u9v0mr2jisaf1vo55qqnuty
393646
393645
2026-04-27T08:18:04Z
咽頭べさ
33
393646
wikitext
text/x-wiki
This module supports most of the Italian headword templates listed in [[:ကဏ္ဍ:ထာမ်ပလိက်လာၚ်က္ဍိုပ်မအရေဝ်အဳတခ်လဳဂမၠိုၚ်|Category:Italian headword-line templates]]. See the comment at the top of the module for an exact list.
<includeonly>
{{module cat|it}}
</includeonly>
cab7uo4xxuivfb5y64oo895mkrn0vh7
chesne
0
293498
393636
393507
2026-04-26T19:05:05Z
咽頭べさ
33
393636
wikitext
text/x-wiki
==ပြၚ်သေတ်အဒေါဝ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|frm|fro|chesne}}
===နာမ်===
{{frm-noun|m}}
# တၞံချကၠိက်။
===မဒုၚ်လွဳစ===
* {{desc|fr|chêne}}
==ပြၚ်သေတ်တြေံ==
===ပွံၚ်နဲတၞဟ်===
* {{l|fro|chaisne}}
* {{l|fro|chasne}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|fro|la-vul|*cassanus}}၊ နူကဵုဝေါဟာ {{der|fro|cel-gau|cassanos}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|fro|/ˈt͡ʃɛs.nə/}}
===နာမ်===
{{fro-noun|m}}
# တၞံချကၠိက်။
===မဒုၚ်လွဳစ===
* {{desc|frm|chesne}}
** {{desc|fr|chêne}}
mhj50s97o4k8k3i0emjpwi1aamfwuvn
cadena
0
293535
393628
393550
2026-04-26T18:14:16Z
咽頭べさ
33
393628
wikitext
text/x-wiki
{{also|Cadena|cadéna|cadenã}}
==အာဒါဂေန်==
===နိရုတ်===
{{inh+|an|la|catēna}}
===ဗွဟ်ရမ္သာၚ်===
{{an-pr}}
===နာမ်===
{{an-noun|f|cadenas}}
# ဇုက်ဇရှ်ေ။
==အေက်သတဝ်ရေန်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|ast|caena}}
* {{alt|ast|cadía}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|ast|la|catēna}}
===ဗွဟ်ရမ္သာၚ်===
{{ast-pr}}
===နာမ်===
{{ast-noun|f|cadenes}}
# ဇုက်ဇရှ်ေ။
# မြံၚ်ဍာ်။
#: {{syn|es|canal}}
==ကာတ်တလာန်==
===နိရုတ်===
{{inh+|ca|la|catēna}}
===ဗွဟ်ရမ္သာၚ်===
* {{ca-IPA|ê}}
* {{audio|ca|LL-Q7026 (cat)-Marvives-cadena.wav|a=Barcelona}}
===နာမ်===
{{ca-noun|f}}
# ဇုက်ဇရှ်ေ။
# မြံၚ်ဍာ်။
# ဇုက်၊ ဇုက်ဗ္ၜန်။
# ဇုက်ကွိၚ်ကွိုက်။
==ချာဗာကာနဝ်==
===နိရုတ်===
{{inh+|cbk|es|cadena}}
===ဗွဟ်ရမ္သာၚ်===
* {{cbk-IPA}}
* {{hyph|cbk|ca|de|na}}
===နာမ်===
{{cbk-noun}}
# ဇုက်ဇရှ်ေ။
==ချေတ်ချာ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{bor|chb|es|cadena}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|chb|/kadena/}}
===နာမ်===
{{head|chb|noun}}
# ဇုက်ဇရှ်ေ။
==အောက်စဳတာန်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|oc|chadena||Lemosin}}
* {{alt|oc|chaena}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|oc|pro|cadena}}၊ နူကဵုဝေါဟာ {{inh|oc|la|catēna}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|oc|LL-Q14185 (oci)-Davidgrosclaude-cadena.wav|a=Béarn}}
===နာမ်===
{{oc-noun|f}}
# ဇုက်ဇရှ်ေ။
==သပုၚ်==
===နိရုတ်===
{{inh+|es|osp|cadena}}၊ နူကဵုဝေါဟာ {{inh|es|la|catēna}}
===ဗွဟ်ရမ္သာၚ်===
{{es-pr}}
===နာမ်===
{{es-noun|f}}
# ဇုက်ဇရှ်ေ။
# ဇုက်ဂွာမကွက်ကံ။
# ဇုက်ဇရှ်ေညံၚ်ရဴဇာ။
# မြံၚ်ဍာ်။
# ဇုက်ဗ္ၜန်။
===မဒုၚ်လွဳစ===
* {{desc|bor=1|ceb|kadena}}
* {{desc|bor=1|huv|galen}}
* {{desc|bor=1|tl|kadena}}
* {{desc|bor=1|zpq|gden}}
q0mm57eur4lrdrh5uxqgaa2tri3sq96
cătină
0
293570
393600
2026-04-26T16:20:36Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|catina|catinã|cãtinã}} ==ရဝ်မေနဳယျာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|ro|la|catēna}}၊ နူကဵုဝေါဟာ {{inh|ro|la-lat|catanum}} ===ဗွဟ်ရမ္သာၚ်=== * {{audio|ro|LL-Q7913 (ron)-Filosoful-cătină.wav}} ===နာမ်=== {{ro-noun|f|cătini}} # ဂလၜဳအမေရိကာန်။ # ကဠာဂလ။"
393600
wikitext
text/x-wiki
{{also|catina|catinã|cãtinã}}
==ရဝ်မေနဳယျာ==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|ro|la|catēna}}၊ နူကဵုဝေါဟာ {{inh|ro|la-lat|catanum}}
===ဗွဟ်ရမ္သာၚ်===
* {{audio|ro|LL-Q7913 (ron)-Filosoful-cătină.wav}}
===နာမ်===
{{ro-noun|f|cătini}}
# ဂလၜဳအမေရိကာန်။
# ကဠာဂလ။
0z4j6am5d2zeygnugp2t399qpzye9y6
catanum
0
293571
393601
2026-04-26T16:36:17Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===ပွံၚ်နဲတၞဟ်=== * {{alter|la|*catanus|alt1=***catanus}} ===ဗွဟ်ရမ္သာၚ်=== * {{la-IPA|catanum}} ===နာမ်=== {{la-noun|catanum<2>}} # တၞံဂလဒေသလ္ပာ်ဖာပလိုတ်။ ===မဒုၚ်လွဳစ=== * {{desc|pro|cade}} ** {{desc|oc|cade|cadre|cai|chiade|chiaina|chai}} ** {{desc|frm|cade|bor=1}} ***..."
393601
wikitext
text/x-wiki
==လပ်တေန်==
===ပွံၚ်နဲတၞဟ်===
* {{alter|la|*catanus|alt1=***catanus}}
===ဗွဟ်ရမ္သာၚ်===
* {{la-IPA|catanum}}
===နာမ်===
{{la-noun|catanum<2>}}
# တၞံဂလဒေသလ္ပာ်ဖာပလိုတ်။
===မဒုၚ်လွဳစ===
* {{desc|pro|cade}}
** {{desc|oc|cade|cadre|cai|chiade|chiaina|chai}}
** {{desc|frm|cade|bor=1}}
*** {{desc|fr|cade|id=oxycedrus|cadier}}
*** {{desc|en|cade|bor=1|id=oxycedrus}}
* {{desc|roa-oca|*cade}}
** {{desc|ca|càdec}}
** {{desc|es|cada|bor=1}} {{q|rare}}
o6eo2l0yyq0m606jimt7kz2qdnxa87g
catani
0
293572
393602
2026-04-26T16:41:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===နာမ်=== {{head|la|ဗီုပြၚ်နာမ်}} # {{inflection of|la|catanum||gen|s}}"
393602
wikitext
text/x-wiki
==လပ်တေန်==
===နာမ်===
{{head|la|ဗီုပြၚ်နာမ်}}
# {{inflection of|la|catanum||gen|s}}
4gcoktdr0p8ggw15l5adud4jqyiatqu
ဗီုပြၚ်သိုၚ်တၟိ:လပ်တေန်/catanus
118
293573
393603
2026-04-26T16:43:17Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===နာမ်=== {{head|la|နာမ်}} # {{alt form|la|catanum}}"
393603
wikitext
text/x-wiki
==လပ်တေန်==
===နာမ်===
{{head|la|နာမ်}}
# {{alt form|la|catanum}}
lhtt7kemw13qik7tk8mm99pofkudqrt
cătini
0
293574
393604
2026-04-26T16:46:57Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ရဝ်မေနဳယျာ== ===နာမ်=== {{head|ro|ဗီုပြၚ်နာမ်}} # {{plural of|ro|cătină}}"
393604
wikitext
text/x-wiki
==ရဝ်မေနဳယျာ==
===နာမ်===
{{head|ro|ဗီုပြၚ်နာမ်}}
# {{plural of|ro|cătină}}
86tx38khgiqakz4oemyqxhh3u38g1k6
cãtinã
0
293575
393605
2026-04-26T16:56:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|catina|catinã|cătină}} ==အာရဝ်မေနဳယာန်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|rup|la|catēna}} ===နာမ်=== {{head|rup|noun|g=f}} (''ကိုန်ဗဟုဝစ်'' '''[[cãtini]]'''/'''[[cãtine]]''') # ဇုတ်ဒရံၚ်၊ စောစပရောညး။ # စး။"
393605
wikitext
text/x-wiki
{{also|catina|catinã|cătină}}
==အာရဝ်မေနဳယာန်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|rup|la|catēna}}
===နာမ်===
{{head|rup|noun|g=f}} (''ကိုန်ဗဟုဝစ်'' '''[[cãtini]]'''/'''[[cãtine]]''')
# ဇုတ်ဒရံၚ်၊ စောစပရောညး။
# စး။
igm3c788t7xuysiorptq67o1p8imxq9
cãtini
0
293576
393606
2026-04-26T16:59:01Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အာရဝ်မေနဳယာန်== ===နာမ်=== {{head|rup|ဗီုပြၚ်နာမ်}} # {{plural of|rup|cãtinã}}"
393606
wikitext
text/x-wiki
==အာရဝ်မေနဳယာန်==
===နာမ်===
{{head|rup|ဗီုပြၚ်နာမ်}}
# {{plural of|rup|cãtinã}}
d1r975ttl707h1wt89ramwwnx8oulag
cãtine
0
293577
393607
2026-04-26T16:59:26Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အာရဝ်မေနဳယာန်== ===နာမ်=== {{head|rup|ဗီုပြၚ်နာမ်}} # {{plural of|rup|cãtinã}}"
393607
wikitext
text/x-wiki
==အာရဝ်မေနဳယာန်==
===နာမ်===
{{head|rup|ဗီုပြၚ်နာမ်}}
# {{plural of|rup|cãtinã}}
d1r975ttl707h1wt89ramwwnx8oulag
catina
0
293578
393608
2026-04-26T17:00:55Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|catinã|cãtinã|cătină}} ==လပ်တေန်== ===နာမ်=== {{head|la|noun form|head=catīna}} # {{inflection of|la|catīnum||nom//acc//voc|p}}"
393608
wikitext
text/x-wiki
{{also|catinã|cãtinã|cătină}}
==လပ်တေန်==
===နာမ်===
{{head|la|noun form|head=catīna}}
# {{inflection of|la|catīnum||nom//acc//voc|p}}
6t0mfkyoulvnatt0fl96f862q9nd0zs
catinum
0
293579
393609
2026-04-26T17:05:30Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===နာမ်=== {{la-noun|catīnum<2>}} # ပ္ၚာန်မွဲမ။ ===မဒုၚ်လွဳစ=== * {{desc|rup|cãtsãn}} * {{desc|ruq|cățǫn}} * {{desc|ro|cățân}}"
393609
wikitext
text/x-wiki
==လပ်တေန်==
===နာမ်===
{{la-noun|catīnum<2>}}
# ပ္ၚာန်မွဲမ။
===မဒုၚ်လွဳစ===
* {{desc|rup|cãtsãn}}
* {{desc|ruq|cățǫn}}
* {{desc|ro|cățân}}
fctjm3bzuhdo2v0ou4v87vbo87zthww
catini
0
293580
393610
2026-04-26T17:07:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===နာမ်=== {{head|la|noun form|head=catīnī}} # {{inflection of|la|catīnum||gen|s}}"
393610
wikitext
text/x-wiki
==လပ်တေန်==
===နာမ်===
{{head|la|noun form|head=catīnī}}
# {{inflection of|la|catīnum||gen|s}}
2uvteo1hs9yqmaetxaeulco5z6594mj
cadeni
0
293581
393611
2026-04-26T17:13:02Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အာရဝ်မေနဳယာန်== ===နာမ်=== {{head|rup|ဗီုပြၚ်နာမ်}} # {{plural of|rup|cadenã}}"
393611
wikitext
text/x-wiki
==အာရဝ်မေနဳယာန်==
===နာမ်===
{{head|rup|ဗီုပြၚ်နာမ်}}
# {{plural of|rup|cadenã}}
ivukceu8qet5m51gquhgnr7yfc9bixf
cadene
0
293582
393612
2026-04-26T17:13:54Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|cadéne}} ==အာရဝ်မေနဳယာန်== ===နာမ်=== {{head|rup|ဗီုပြၚ်နာမ်}} # {{plural of|rup|cadenã}}"
393612
wikitext
text/x-wiki
{{also|cadéne}}
==အာရဝ်မေနဳယာန်==
===နာမ်===
{{head|rup|ဗီုပြၚ်နာမ်}}
# {{plural of|rup|cadenã}}
bw6ddefnbdjta9lulrcw3auhr97qjma
cadéne
0
293583
393613
2026-04-26T17:15:26Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|cadene}} ==ဝေနေတ်== ===နာမ်=== {{head|vec|noun form}} # {{plural of|vec|cadéna}}"
393613
wikitext
text/x-wiki
{{also|cadene}}
==ဝေနေတ်==
===နာမ်===
{{head|vec|noun form}}
# {{plural of|vec|cadéna}}
h5kj4r24u0kdjea9ytlf0vxman2ug25
cadéna
0
293584
393614
2026-04-26T17:25:23Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Cadena|cadena|cadenã}} ==ရဝ်မာယာန်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|rgn|la|catena|cătēna}} ===ဗွဟ်ရမ္သာၚ်=== {{rgn-IPA|rf=1|r=1|c|a|'|d|é|n|a}} ===နာမ်=== {{rgn-noun|f|cadén}} # ဇုက်ဇရှ်ေ။ ==ဝေနေတ်== ===ပွံၚ်နဲတၞဟ်=== * {{l|vec|caéna}} ===နိရုတ်===..."
393614
wikitext
text/x-wiki
{{also|Cadena|cadena|cadenã}}
==ရဝ်မာယာန်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|rgn|la|catena|cătēna}}
===ဗွဟ်ရမ္သာၚ်===
{{rgn-IPA|rf=1|r=1|c|a|'|d|é|n|a}}
===နာမ်===
{{rgn-noun|f|cadén}}
# ဇုက်ဇရှ်ေ။
==ဝေနေတ်==
===ပွံၚ်နဲတၞဟ်===
* {{l|vec|caéna}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|vec|la|catēna}}
===နာမ်===
{{vec-noun|cadén|f|a|e}}
# ဇုက်ဇရှ်ေ။
# ဇုက်ကၞေၚ်။
# ယာတ်ဒက်ကံ။
omluy22oa504uq1zg0gguyervzxeoin
cadén
0
293585
393615
2026-04-26T17:28:52Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ရဝ်မာယာန်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|rgn|la|catinus|catīnus}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|rgn|/ca.ˈdɛn/}} ===နာမ်=== {{rgn-noun|m|~}} # ဍာ်အၚ်။"
393615
wikitext
text/x-wiki
==ရဝ်မာယာန်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|rgn|la|catinus|catīnus}}
===ဗွဟ်ရမ္သာၚ်===
* {{IPA|rgn|/ca.ˈdɛn/}}
===နာမ်===
{{rgn-noun|m|~}}
# ဍာ်အၚ်။
htabgqvy59asrw40au69itfjuwqffuw
catinus
0
293586
393616
2026-04-26T17:42:22Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===ဗွဟ်ရမ္သာၚ်=== * {{la-IPA|catīnus}} ===နာမ်=== {{la-noun|catīnus<2>}} # က္ၜၚ်မသ္ဇိုဟ်နက်သွက်ပွမပ္တိုန်ပရေၚ်ဒုၚ်စကာ ဝါ ပွမဍုန်စၞ၊ အၚ်ဇၞော်ဇၞော်မွဲမ၊ ပ္ၚာန် ဝါ ပ္ၚာန်ခ္ဍေဝ်။..."
393616
wikitext
text/x-wiki
==လပ်တေန်==
===ဗွဟ်ရမ္သာၚ်===
* {{la-IPA|catīnus}}
===နာမ်===
{{la-noun|catīnus<2>}}
# က္ၜၚ်မသ္ဇိုဟ်နက်သွက်ပွမပ္တိုန်ပရေၚ်ဒုၚ်စကာ ဝါ ပွမဍုန်စၞ၊ အၚ်ဇၞော်ဇၞော်မွဲမ၊ ပ္ၚာန် ဝါ ပ္ၚာန်ခ္ဍေဝ်။
===မဒုၚ်လွဳစ===
{{top2}}
* {{desc|rup|cãtsãn}}
* {{desc|fr|catin}}
* {{desc|it|catino}}
* {{desc|pt|cadinho}}
* {{desc|ro|cățân}}
* {{desc|scn|catu|unc=1}}
* {{desc|es|catino}}
* {{desc|vec|cadìn|caìn}}
** {{desc|cim|kaiin|bor=1}}
{{bottom}}
s3vjoxzd7vtv0po4xwvzmfr98r8uzab
Cadena
0
293587
393617
2026-04-26T17:45:44Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|cadena|cadéna|cadenã}} =={{=en=}}== {{wikipedia|lang=en}} ===နာမ်မကိတ်ညဳ=== {{en-proper noun|s}} # {{surname|en}} ===ဝေါဟာလွာ=== * {{anagrams|en|a=aacden|Ecanda|adance}}"
393617
wikitext
text/x-wiki
{{also|cadena|cadéna|cadenã}}
=={{=en=}}==
{{wikipedia|lang=en}}
===နာမ်မကိတ်ညဳ===
{{en-proper noun|s}}
# {{surname|en}}
===ဝေါဟာလွာ===
* {{anagrams|en|a=aacden|Ecanda|adance}}
pcosnrbv2bztnqhsuam5i3osn2gsczh
Cadenas
0
293588
393618
2026-04-26T17:46:34Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Cadena}}"
393618
wikitext
text/x-wiki
=={{=en=}}==
===နာမ်မကိတ်ညဳ===
{{head|en|proper noun form}}
# {{plural of|en|Cadena}}
mmx4kj2xf0yz05ax4ffq5e89a181i7v
caéna
0
293589
393619
2026-04-26T17:51:31Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|caena}} ==ဝေနေတ်== ===ပွံၚ်နဲတၞဟ်=== * {{l|vec|cadéna}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|vec|la|catēna}} ===နာမ်=== {{vec-noun|caén|f|a|e}} # ဇုက်ဇရှ်ေ။ # ဇုက်ကၞေၚ်။ # ဇုက်ဒက်ကံ။"
393619
wikitext
text/x-wiki
{{also|caena}}
==ဝေနေတ်==
===ပွံၚ်နဲတၞဟ်===
* {{l|vec|cadéna}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|vec|la|catēna}}
===နာမ်===
{{vec-noun|caén|f|a|e}}
# ဇုက်ဇရှ်ေ။
# ဇုက်ကၞေၚ်။
# ဇုက်ဒက်ကံ။
7vg0oovu2uu6cuml54m9vtrubcql674
caéne
0
293590
393620
2026-04-26T17:52:20Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ဝေနေတ်== ===နာမ်=== {{head|vec|noun form}} # {{plural of|vec|caéna}}"
393620
wikitext
text/x-wiki
==ဝေနေတ်==
===နာမ်===
{{head|vec|noun form}}
# {{plural of|vec|caéna}}
ih1ukvaa9ekj38fte3puecbk2nj8d9b
caena
0
293591
393621
2026-04-26T17:53:38Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|caéna}} ==လပ်တေန်== ===နာမ်=== {{head|la|noun form}} # {{inflection of|la|caenum||nom//acc//voc|p}}"
393621
wikitext
text/x-wiki
{{also|caéna}}
==လပ်တေန်==
===နာမ်===
{{head|la|noun form}}
# {{inflection of|la|caenum||nom//acc//voc|p}}
5u1lkn7rcd1662knfdulhnoxcivw9o8
caenum
0
293592
393622
2026-04-26T18:02:08Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လေပ်တေန်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|la|coenum}} ===ဗွဟ်ရမ္သာၚ်=== * {{la-IPA}} ===နာမ်=== {{la-noun|caenum<2>}} # မၠိုက်၊ ခၠိုက်၊ ဓရီု၊ လဗေၚ်။ ===မဒုၚ်လွဳစ=== {{top3}} * Italo-Romance: ** {{desc|it|ceno}} * Ibero-Romance: ** {{desc|pt|ceno}} ** {{desc|es|cieno}} * {{desc|la-vu..."
393622
wikitext
text/x-wiki
==လေပ်တေန်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|la|coenum}}
===ဗွဟ်ရမ္သာၚ်===
* {{la-IPA}}
===နာမ်===
{{la-noun|caenum<2>}}
# မၠိုက်၊ ခၠိုက်၊ ဓရီု၊ လဗေၚ်။
===မဒုၚ်လွဳစ===
{{top3}}
* Italo-Romance:
** {{desc|it|ceno}}
* Ibero-Romance:
** {{desc|pt|ceno}}
** {{desc|es|cieno}}
* {{desc|la-vul|*caenica|der=1}}
*** {{desc|es|ciénega|ciénaga}}
{{bottom}}
nn6ebpe8zt6q9gg19mnv3j5r8gycrwn
393624
393622
2026-04-26T18:04:10Z
咽頭べさ
33
393624
wikitext
text/x-wiki
==လေပ်တေန်==
===ပွံၚ်နဲတၞဟ်===
* {{alt|la|coenum}}
===ဗွဟ်ရမ္သာၚ်===
* {{la-IPA}}
===နာမ်===
{{la-noun|caenum<2>}}
# မၠိုက်၊ ခၠိုက်၊ ဓရီု၊ လဗေၚ်။
===မဒုၚ်လွဳစ===
{{top3}}
** {{desc|it|ceno}}
** {{desc|pt|ceno}}
** {{desc|es|cieno}}
* {{desc|la-vul|*caenica|der=1}}
*** {{desc|es|ciénega|ciénaga}}
{{bottom}}
injkh93cjru3gt8zko97cw9k7ztuv1o
caeni
0
293593
393623
2026-04-26T18:03:22Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လေပ်တေန်== ===နာမ်=== {{head|la|noun form|head=caenī}} # {{inflection of|la|caenum||gen|s}}"
393623
wikitext
text/x-wiki
==လေပ်တေန်==
===နာမ်===
{{head|la|noun form|head=caenī}}
# {{inflection of|la|caenum||gen|s}}
6ssd6jdik492f34sfzg1qd3vh6c6bry
coenum
0
293594
393625
2026-04-26T18:05:00Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လေပ်တေန်== ===နာမ်=== {{la-noun|coenum<2.N>}} # {{alt form|la|caenum}}"
393625
wikitext
text/x-wiki
==လေပ်တေန်==
===နာမ်===
{{la-noun|coenum<2.N>}}
# {{alt form|la|caenum}}
sl7kto4ba11dm6s570cj0a4bivqo9o4
coeni
0
293595
393626
2026-04-26T18:07:16Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လေပ်တေန်== ===နာမ်=== {{head|la|ဗီုပြၚ်နာမ်}} # {{inflection of|la|coenum||gen|s}}"
393626
wikitext
text/x-wiki
==လေပ်တေန်==
===နာမ်===
{{head|la|ဗီုပြၚ်နာမ်}}
# {{inflection of|la|coenum||gen|s}}
rh95uhiktrnbi8z60889kxyjz2i5cx5
cadía
0
293596
393627
2026-04-26T18:13:37Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အေက်သတဝ်ရေန်== ===နာမ်=== {{head|ast|နာမ်}} # {{alt form|ast|cadena}}"
393627
wikitext
text/x-wiki
==အေက်သတဝ်ရေန်==
===နာမ်===
{{head|ast|နာမ်}}
# {{alt form|ast|cadena}}
r1my2ooktperm845936koa8iiyuqmos
cadenes
0
293597
393629
2026-04-26T18:18:22Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အေက်သတဝ်ရေန်== ===နာမ်=== {{head|ast|noun form}} # {{plural of|ast|cadena}} ==ကာတ်တလာန်== ===နာမ်=== {{head|ca|noun form}} # {{plural of|ca|cadena}}"
393629
wikitext
text/x-wiki
==အေက်သတဝ်ရေန်==
===နာမ်===
{{head|ast|noun form}}
# {{plural of|ast|cadena}}
==ကာတ်တလာန်==
===နာမ်===
{{head|ca|noun form}}
# {{plural of|ca|cadena}}
ipqxb8rnfciuqg8xdhsax9yzwfnpo2u
catenă
0
293598
393630
2026-04-26T18:38:29Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Catena|catena}} ==ရဝ်မေနဳယျာ== ===နိရုတ်=== {{bor+|ro|la|catēna}} ===နာမ်=== {{ro-noun|f|catene}} # ဇမ္ၚောဲအကြာဒၞာဲဒဵုၜါ၊ ဒက်ဂြေန်တၟံလးဨကြက်ဂန်နကဵုဇုက်ဇရှ်ေ။ # ဇုက်ဇရှ်ေ။"
393630
wikitext
text/x-wiki
{{also|Catena|catena}}
==ရဝ်မေနဳယျာ==
===နိရုတ်===
{{bor+|ro|la|catēna}}
===နာမ်===
{{ro-noun|f|catene}}
# ဇမ္ၚောဲအကြာဒၞာဲဒဵုၜါ၊ ဒက်ဂြေန်တၟံလးဨကြက်ဂန်နကဵုဇုက်ဇရှ်ေ။
# ဇုက်ဇရှ်ေ။
cr299se4xf8oiqwugxfcgdkm3kpm1nw
Catena
0
293599
393631
2026-04-26T18:43:43Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|catena|catenă}} =={{=en=}}== {{wp|+ (surname)|lang=en}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{bor|en|it|Catena}} ===နာမ်မကိတ်ညဳ=== {{en-proper noun|s}} # {{surname|en|from=Italian}}. ===Further reading=== * {{R:en:DAFN}} ==အဳတလဳ== {{wp|it:}} ===နာမ်မကိတ်ညဳ=== {{it-proper noun|mfbysense}} # {{surname|it}}"
393631
wikitext
text/x-wiki
{{also|catena|catenă}}
=={{=en=}}==
{{wp|+ (surname)|lang=en}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{bor|en|it|Catena}}
===နာမ်မကိတ်ညဳ===
{{en-proper noun|s}}
# {{surname|en|from=Italian}}.
===Further reading===
* {{R:en:DAFN}}
==အဳတလဳ==
{{wp|it:}}
===နာမ်မကိတ်ညဳ===
{{it-proper noun|mfbysense}}
# {{surname|it}}
qtf65rukaqzquic80p19wfknwv9yjm5
393632
393631
2026-04-26T18:45:06Z
咽頭べさ
33
393632
wikitext
text/x-wiki
{{also|catena|catenă}}
=={{=en=}}==
{{wp|+ (surname)|lang=en}}
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{bor|en|it|Catena}}
===နာမ်မကိတ်ညဳ===
{{en-proper noun|s}}
# {{surname|en|from=အဳတလဳ}}
==အဳတလဳ==
{{wp|it:}}
===နာမ်မကိတ်ညဳ===
{{it-proper noun|mfbysense}}
# {{surname|it}}
o718r6krz6v621xn4p9aqem3b8hbkcn
ကဏ္ဍ:နာမ်မကိတ်ညဳအဳတခ်လဳမတော်ဟွံဂွံဂမၠိုၚ်
14
293600
393633
2026-04-26T18:46:45Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာအဳတခ်လဳ]]"
393633
wikitext
text/x-wiki
[[ကဏ္ဍ:ဘာသာအဳတခ်လဳ]]
gbeqdk32838i2079b24yzbewkbbcs22
Catenas
0
293601
393635
2026-04-26T18:58:10Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|catenas}} =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Catena}}"
393635
wikitext
text/x-wiki
{{also|catenas}}
=={{=en=}}==
===နာမ်မကိတ်ညဳ===
{{head|en|proper noun form}}
# {{plural of|en|Catena}}
4yxtxwsv2jqmityd4lu8u5wzv419ap8
cassanos
0
293602
393637
2026-04-26T19:10:38Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Cassanos}} ==ဂါလေတ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|cel-gau|cel-pro|*kassos}} ===နာမ်=== {{head|cel-gau|noun|g=m}} # တၞံချကၠိက်။ ===မဒုၚ်လွဳစ=== * {{desc|la|casnus}} ** {{desc|oc|casse|cassan}} ** {{desc|pms|casna}} ** {{desc|fro|kesne}} *** {{desc|roa-bbn|chagne}} *** {{desc|roa-brg|chaigne}} *** {{desc|roa-..."
393637
wikitext
text/x-wiki
{{also|Cassanos}}
==ဂါလေတ်==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{inh|cel-gau|cel-pro|*kassos}}
===နာမ်===
{{head|cel-gau|noun|g=m}}
# တၞံချကၠိက်။
===မဒုၚ်လွဳစ===
* {{desc|la|casnus}}
** {{desc|oc|casse|cassan}}
** {{desc|pms|casna}}
** {{desc|fro|kesne}}
*** {{desc|roa-bbn|chagne}}
*** {{desc|roa-brg|chaigne}}
*** {{desc|roa-cha|châne}}
*** {{desc|roa-fcm|tchêne}}
*** {{desc|frm|chesne}}
**** {{desc|fr|chêne}}
*** {{desc|nrf|kêne}}
*** {{desc|pcd|kînne}}
*** {{desc|roa-poi|chagne}}
*** {{desc|wa|tchinne}}
** {{desc|la-vul|*cassanilla|der=1}}
*** {{desc|ca|cassanella}}
sgwwri7yvxayrviqlvcx8fusom7xx8e
Cassanos
0
293603
393638
2026-04-26T19:11:53Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Cassano}}"
393638
wikitext
text/x-wiki
=={{=en=}}==
===နာမ်မကိတ်ညဳ===
{{head|en|proper noun form}}
# {{plural of|en|Cassano}}
5ejbwwh8u0vks9zkzueky7kfdq5l001
Cassano
0
293604
393639
2026-04-26T19:14:24Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|cassano}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|en|it|-}}၊ နူကဵုဝေါဟာ {{der|en|la|Cassianus}} ===နာမ်မကိတ်ညဳ=== {{en-proper noun|Cassani}} # {{surname|en}}"
393639
wikitext
text/x-wiki
{{also|cassano}}
=={{=en=}}==
===နိရုတ်===
ဝေါဟာကၠုၚ်နူ {{der|en|it|-}}၊ နူကဵုဝေါဟာ {{der|en|la|Cassianus}}
===နာမ်မကိတ်ညဳ===
{{en-proper noun|Cassani}}
# {{surname|en}}
09dflhu3kgpm4hrsh6rsk8rsb2comww
Cassani
0
293605
393640
2026-04-27T01:18:19Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|ဗီုပြၚ်နာမ်မကိတ်ညဳ}} # {{plural of|en|Cassano}}"
393640
wikitext
text/x-wiki
=={{=en=}}==
===နာမ်မကိတ်ညဳ===
{{head|en|ဗီုပြၚ်နာမ်မကိတ်ညဳ}}
# {{plural of|en|Cassano}}
frkvmh6xcnao71fyg1oj3sc32r54dnf
Cassianus
0
293606
393641
2026-04-27T01:20:26Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==လပ်တေန်== ===နာမ်မကိတ်ညဳ=== {{head|la|နာမ်မကိတ်ညဳ}} # {{surname|la}}"
393641
wikitext
text/x-wiki
==လပ်တေန်==
===နာမ်မကိတ်ညဳ===
{{head|la|နာမ်မကိတ်ညဳ}}
# {{surname|la}}
hf4prtkm36nf6oym0qahypzodzo6ztt
cassano
0
293607
393642
2026-04-27T01:21:42Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Cassano}} ==အဳတလဳ== ===ကြိယာ=== {{head|it|verb form}} # {{inflection of|it|cassare||3|p|pres|indc}}"
393642
wikitext
text/x-wiki
{{also|Cassano}}
==အဳတလဳ==
===ကြိယာ===
{{head|it|verb form}}
# {{inflection of|it|cassare||3|p|pres|indc}}
50rt0a8b7js0zd4tsvcz0kd9ej64h8k
cassare
0
293608
393643
2026-04-27T01:35:16Z
咽頭べさ
33
ခၞံကၠောန်လဝ် မုက်လိက် နကု "==အဳတလဳ== ===နိရုတ်=== {{bor+|it|la-lat|casso|cassāre}}၊ နူကဵုဝေါဟာ {{der|it|la|cassus}} ===ဗွဟ်ရမ္သာၚ်=== {{it-pr}} ===ကြိယာ=== {{it-verb|a/à}} # သကဵုပလီု၊ သကဵုကုတ်ပ္တိတ်။ #: {{syn|it|cancellare|depennare|espungere|sopprimere}} # သကဵုပလိုတ်ထောံ၊ သကဵု..."
393643
wikitext
text/x-wiki
==အဳတလဳ==
===နိရုတ်===
{{bor+|it|la-lat|casso|cassāre}}၊ နူကဵုဝေါဟာ {{der|it|la|cassus}}
===ဗွဟ်ရမ္သာၚ်===
{{it-pr}}
===ကြိယာ===
{{it-verb|a/à}}
# သကဵုပလီု၊ သကဵုကုတ်ပ္တိတ်။
#: {{syn|it|cancellare|depennare|espungere|sopprimere}}
# သကဵုပလိုတ်ထောံ၊ သကဵုထၟုက်ပ္တိတ်။
# သကဵုပါဲပလီုထောံ၊ သကဵုလွိုက်ကၠဟ်ထောံ။
#: {{syn|it|annullare|revocare|abrogare|abolire|annullare|revocare|invalidare}}
# သကဵုဆုဲနူကဵုပရေၚ်သ္ဒးဍိုက်ဇာတ်၊ ကမၠောန်အ္စာအသံက်။
#: {{syn|it|licenziare|radiare}}
==လပ်တေန်==
===ကြိယာ===
{{head|la|verb form|head=cassāre}}
# {{inflection of|la|cassō||pres|act|inf}}
0l9samkk5mkvfexgm51w4yvwg0ssem4