text:
Module:pt-headword

-- This module contains code for Portuguese headword templates. -- Templates covered are: -- *, ; -- * ; -- * , , ; -- * ; -- * ; -- * ; -- * ; -- * ; -- * . -- See Module:pt-verb for Portuguese conjugation templates.

local export = {} local pos_functions = {}

local force_cat = false -- for testing; if true, categories appear in non-mainspace pages

local m_links = require("Module:links") local m_table = require("Module:table") local com = require("Module:pt-common") local romut_module = "Module:romance utilities" local pt_verb_module = "Module:pt-verb" local lang = require("Module:languages").getByCode("pt") local langname = lang:getCanonicalName

local rfind = mw.ustring.find local rmatch = mw.ustring.match local rsplit = mw.text.split local usub = mw.ustring.sub

-- When followed by a hyphen in a hyphenated compound, the hyphen will be included with the prefix when linked. local include_hyphen_prefixes = m_table.listToSet { "ab", "afro", "anarco", "anglo", "ântero", "anti", "auto", "contra", "ex", "franco", "hiper", "infra", "inter", "intra", "macro", "micro", "neo", "pan", "pós", "pré", "pró", "proto", "sobre", "sub", "super", "vice", }

local function track(page) require("Module:debug/track")("pt-headword/" .. page) return true end

local function glossary_link(entry, text) text = text or entry return "" .. text .. "" end

local metaphonic_label = "metaphonic"

local function check_all_missing(forms, plpos, tracking_categories) for _, form in ipairs(forms) do		if type(form) == "table" then form = form.term end if form then local title = mw.title.new(form) if title and not title.exists then table.insert(tracking_categories, langname .. " " .. plpos .. " with red links in their headword lines") end end end end

-- The main entry point. -- This is the only function that can be invoked from a template. 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 = true}, ["id"] = {}, ["splithyph"] = {type = "boolean"}, ["nolinkhead"] = {type = "boolean"}, ["json"] = {type = "boolean"}, ["pagename"] = {}, -- 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 subpage = 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 = {subpage} end else local romut = require(romut_module) local auto_linked_head = romut.add_links_to_multiword_term(subpage, args.splithyph, nil,			include_hyphen_prefixes) 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 end end end

local data = { lang = lang, pos_category = poscat, categories = {}, heads = heads, user_specified_heads = user_specified_heads, no_redundant_head_cat = #user_specified_heads == 0, genders = {}, inflections = {}, pagename = args.pagename, id = args.id, force_cat_output = force_cat, }

local is_suffix = false if subpage:find("^%-") and poscat ~= "suffix forms" then is_suffix = true data.pos_category = "suffixes" local singular_poscat = require("Module:string utilities").singularize(poscat) table.insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes") table.insert(data.inflections, {label = singular_poscat .. "-forming suffix"}) end

local tracking_categories = {}

if pos_functions[poscat] then pos_functions[poscat].func(args, data, tracking_categories, frame, is_suffix) end

if args.json then return require("Module:JSON").toJSON(data) end

return require("Module:headword").full_headword(data) .. (#tracking_categories > 0 and require("Module:utilities").format_categories(tracking_categories, lang, nil, nil, force_cat) or "") end

local function fetch_qualifiers(qual, existing) if not qual then return existing end if not existing then return {qual} end local retval = {} for _, e in ipairs(existing) do		table.insert(retval, e)	end table.insert(retval, qual) return retval end

local function process_terms_with_qualifiers(terms, quals) local infls = {} for i, term in ipairs(terms) do		table.insert(infls, {term = term, q = fetch_qualifiers(quals[i])}) end return infls 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("%%", "%%%%") -- Assign to a variable to discard second return value. term = term:gsub("#", lemma) return term end

local function is_metaphonic(args, lemma) if args.nometa then return false end if args.meta then return true end -- Anything in -oso with a preceding vowel (e.g. gostoso, curioso) is normally metaphonic. return rfind(lemma, com.V .. ".*oso$") end

- --                                         Nouns                                      -- -

local allowed_genders = m_table.listToSet(	{"m", "f", "mf", "mfbysense", "m-p", "f-p", "mf-p", "mfbysense-p", "?", "?-p", "n", "n-p"} )

local function process_genders(data, genders, g_qual) for i, g in ipairs(genders) do		if not allowed_genders[g] then error("Unrecognized gender: " .. g)		end if g_qual[i] then table.insert(data.genders, {spec = g, qualifiers = {g_qual[i]}}) else table.insert(data.genders, g)		end end end

local function do_noun(args, data, tracking_categories, pos, is_suffix, is_proper) local is_plurale_tantum = false local has_singular = false if is_suffix then pos = "suffix" end local plpos = require("Module:string utilities").pluralize(pos)

data.genders = {} local saw_m = false local saw_f = false local gender_for_default_plural process_genders(data, args[1], args.g_qual) -- Check for specific genders and pluralia tantum. for i, g in ipairs(args[1]) do		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 = "m" elseif saw_f then gender_for_default_plural = "f" else gender_for_default_plural = "m" end

local lemma = m_links.remove_links(data.heads[1]) -- should always be specified

local function insert_inflection(list, term, accel, qualifiers, no_inv) local infl = {q = qualifiers, accel = accel} --if term == lemma and not no_inv then --	infl.label = glossary_link("invariable") --else infl.term = term --end infl.term_for_further_inflection = term table.insert(list, infl) end

-- Plural local plurals = {} local args_mpl = args.mpl local args_fpl = args.fpl local args_pl = args[2]

if is_plurale_tantum and not has_singular then if #args_pl > 0 then error("Can't specify plurals of plurale tantum " .. pos) end table.insert(data.inflections, {label = glossary_link("plural only")}) else if is_plurale_tantum then -- both singular and plural table.insert(data.inflections, {label = "sometimes " .. glossary_link("plural only") .. ", in variation"}) end -- If no plurals, use the default plural if not a proper noun. if #args_pl == 0 and not is_proper then args_pl = {"+"} end -- If only ~ given (countable and uncountable), add the default plural after it. if #args_pl == 1 and args_pl[1] == "~" then args_pl = {"~", "+"} end -- Gather plurals, handling requests for default plurals for i, pl in ipairs(args_pl) do			local function insert_pl(term) local quals = fetch_qualifiers(args.pl_qual[i]) if term == lemma and i == 1 and #args_pl == 1 then table.insert(data.inflections, {label = glossary_link("invariable"), q = quals}) table.insert(data.categories, langname .. " indeclinable " .. plpos) else insert_inflection(plurals, term, nil, quals) end table.insert(data.categories, langname .. " countable " .. plpos) end local function make_plural_and_insert(form, special) local pl = com.make_plural(lemma, special) if pl then insert_pl(pl) end end

if pl == "+" then make_plural_and_insert(lemma) elseif pl:find("^%+") then pl = require(romut_module).get_special_indicator(pl) make_plural_and_insert(lemma, pl) elseif pl == "?" or pl == "!" then if i > 1 or #args_pl > 1 then error("Can't specify ? or ! with other plurals") end if pl == "?" then -- Plural is unknown -- Better not to display anything -- table.insert(data.inflections, {label = "plural unknown or uncertain"}) table.insert(data.categories, langname .. " " .. plpos .. " with unknown or uncertain plurals") else -- Plural is not attested table.insert(data.inflections, {label = "plural not attested"}) table.insert(data.categories, langname .. " " .. plpos .. " with unattested plurals") end elseif pl == "-" then if i > 1 then error("Plural specifier - must be first") end -- Uncountable noun; may occasionally have a plural table.insert(data.categories, langname .. " uncountable " .. plpos)

-- If plural forms were given explicitly, then show "usually" if #args_pl > 1 then table.insert(data.inflections, {label = "usually " .. glossary_link("uncountable")}) table.insert(data.categories, langname .. " countable " .. plpos) else table.insert(data.inflections, {label = glossary_link("uncountable")}) end elseif pl == "~" then if i > 1 then error("Plural specifier ~ must be first") end -- Countable and uncountable noun; will have a plural table.insert(data.categories, langname .. " countable " .. plpos) table.insert(data.categories, langname .. " uncountable " .. plpos) table.insert(data.inflections, {label = glossary_link("countable") .. " and " .. glossary_link("uncountable")}) else insert_pl(replace_hash_with_lemma(pl, lemma)) end end end

if #plurals > 1 then table.insert(data.categories, langname .. " " .. plpos .. " with multiple plurals") end

-- Gather masculines/feminines. For each one, generate the corresponding plural(s). local function handle_mf(mfs, qualifiers, inflect, default_plurals) local retval = {} for i, mf in ipairs(mfs) do			local function insert_infl(list, term, accel, existing_qualifiers) insert_inflection(list, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), "no inv") end if mf == "+" then -- Generate default feminine. mf = inflect(lemma) else mf = replace_hash_with_lemma(mf, lemma) end local special = require(romut_module).get_special_indicator(mf) if special then mf = inflect(lemma, special) end insert_infl(retval, mf) local mfpl = com.make_plural(mf, special) if mfpl 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 -- # 				insert_infl(default_plurals, mfpl, {form = "p", lemma = mf}) end end return retval end

local feminine_plurals = {} local feminines = handle_mf(args.f, args.f_qual, com.make_feminine, feminine_plurals) local masculine_plurals = {} local masculines = handle_mf(args.m, args.m_qual, com.make_masculine, masculine_plurals)

local function handle_mf_plural(mfpl, qualifiers, default_plurals, singulars) local new_mfpls = {} for i, mfpl in ipairs(mfpl) do			local function insert_infl(term, accel, existing_qualifiers, no_inv) insert_inflection(new_mfpls, term, accel, fetch_qualifiers(qualifiers[i], existing_qualifiers), no_inv) end local accel if #mfpl == #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 # as the -- definition. accel = {form = "p", lemma = singulars[i].term} else accel = nil end if mfpl == "+" then if #default_plurals > 0 then for _, defpl in ipairs(default_plurals) do						-- defpl is a table -- don't use "invariable" because the plural is not with respect to the lemma but -- with respect to the masc/fem singular insert_infl(defpl.term_for_further_inflection, defpl.accel, defpl.q, "no inv") end else -- mf is a table local default_mfpl = com.make_plural(lemma) if default_mfpl then insert_infl(default_mfpl, accel) end end elseif mfpl:find("^%+") then mfpl = require(romut_module).get_special_indicator(mfpl) if #singulars > 0 then for _, mf in ipairs(singulars) do						-- mf is a table local default_mfpl = com.make_plural(mf.term_for_further_inflection, mfpl) if default_mfpl then -- don't use "invariable" because the plural is not with respect to the lemma but -- with respect to the masc/fem singular insert_infl(default_mfpl, accel, mf.q, "no inv") end end else local default_mfpl = com.make_plural(lemma, mfpl) if default_mfpl then insert_infl(default_mfpl, accel) end end else mfpl = replace_hash_with_lemma(mfpl, lemma) -- 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 insert_infl(mfpl, accel, nil, #singulars > 0) end end return new_mfpls end

if #args_fpl > 0 then -- Override feminine plurals. feminine_plurals = handle_mf_plural(args_fpl, args.fpl_qual, feminine_plurals, feminines) end

if #args_mpl > 0 then -- Override masculine plurals. masculine_plurals = handle_mf_plural(args_mpl, args.mpl_qual, masculine_plurals, masculines) end

check_all_missing(plurals, plpos, tracking_categories) check_all_missing(feminines, plpos, tracking_categories) check_all_missing(feminine_plurals, plpos, tracking_categories) check_all_missing(masculines, plpos, tracking_categories) check_all_missing(masculine_plurals, plpos, tracking_categories)

local function redundant_plural(pl) for _, p in ipairs(plurals) do			if p.term_for_further_inflection == pl.term_for_further_inflection 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 > 0 then plurals.label = "plural" plurals.accel = {form = "p"} table.insert(data.inflections, plurals) end

if #masculines > 0 then masculines.label = "masculine" table.insert(data.inflections, masculines) end

if #masculine_plurals > 0 then masculine_plurals.label = "masculine plural" table.insert(data.inflections, masculine_plurals) end

if #feminines > 0 then feminines.label = "feminine" feminines.accel = {form = "f"} table.insert(data.inflections, feminines) end

if #feminine_plurals > 0 then feminine_plurals.label = "feminine plural" table.insert(data.inflections, feminine_plurals) end

if is_metaphonic(args, lemma) then table.insert(data.inflections, {label = metaphonic_label}) table.insert(data.categories, langname .. " " .. plpos .. " with metaphony") end

-- Maybe add category 'Portuguese nouns with irregular gender' (or similar) local irreg_gender_lemma = com.rsub(lemma, " .*", "") -- only look at first word if (rfind(irreg_gender_lemma, "[^ã]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 table.insert(data.categories, langname .. " " .. plpos .. " with irregular gender") end end

local function get_noun_params return { [1] = {list = "g", required = true, default = "?"}, [2] = {list = "pl"}, ["g_qual"] = {list = "g\1_qual", allow_holes = true}, ["pl_qual"] = {list = "pl\1_qual", allow_holes = true}, ["m"] = {list = true}, ["m_qual"] = {list = "m\1_qual", allow_holes = true}, ["f"] = {list = true}, ["f_qual"] = {list = "f\1_qual", allow_holes = true}, ["mpl"] = {list = true}, ["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true}, ["fpl"] = {list = true}, ["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true}, ["meta"] = {type = "boolean"}, -- metaphonic ["nometa"] = {type = "boolean"}, -- explicitly not metaphonic } end

pos_functions["nouns"] = { params = get_noun_params, func = function(args, data, tracking_categories, frame, is_suffix) do_noun(args, data, tracking_categories, "noun", is_suffix) end, }

pos_functions["proper nouns"] = { params = get_noun_params, func = function(args, data, tracking_categories, frame, is_suffix) do_noun(args, data, tracking_categories, "proper noun", is_suffix, "is proper noun") end, }

- --                                       Pronouns                                     -- -

local function do_pronoun(args, data, tracking_categories, pos, is_suffix) if is_suffix then pos = "suffix" end local plpos = require("Module:string utilities").pluralize(pos)

if not is_suffix then data.pos_category = plpos end

local lemma = m_links.remove_links(data.heads[1]) -- should always be specified

data.genders = {} for i, g in ipairs(args[1]) do		if g ~= "n" and g ~= "n-p" and not allowed_genders[g] then error("Unrecognized gender: " .. g)		end if args.g_qual[i] then table.insert(data.genders, {spec = g, qualifiers = {args.g_qual[i]}}) else table.insert(data.genders, g)		end end

local function do_inflection(forms, quals, label) if #forms > 0 then local terms = process_terms_with_qualifiers(forms, quals) check_all_missing(terms, plpos, tracking_categories) terms.label = label table.insert(data.inflections, terms) end end

do_inflection(args.m, args.m_qual, "masculine") do_inflection(args.f, args.f_qual, "feminine") do_inflection(args.sg, args.sg_qual, "singular") do_inflection(args.pl, args.pl_qual, "plural") do_inflection(args.mpl, args.mpl_qual, "masculine plural") do_inflection(args.fpl, args.fpl_qual, "feminine plural") do_inflection(args.n, args.n_qual, "neuter") end

local function get_pronoun_params local params = { [1] = {list = "g"}, --gender(s) ["g_qual"] = {list = "g\1_qual", allow_holes = true}, ["m"] = {list = true}, --masculine form(s) ["m_qual"] = {list = "m\1_qual", allow_holes = true}, ["f"] = {list = true}, --feminine form(s) ["f_qual"] = {list = "f\1_qual", allow_holes = true}, ["sg"] = {list = true}, --singular form(s) ["sg_qual"] = {list = "sg\1_qual", allow_holes = true}, ["pl"] = {list = true}, --plural form(s) ["pl_qual"] = {list = "pl\1_qual", allow_holes = true}, ["mpl"] = {list = true}, --masculine plural form(s) ["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true}, ["fpl"] = {list = true}, --feminine plural form(s) ["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true}, ["n"] = {list = true}, --neuter form(s) ["n_qual"] = {list = "n\1_qual", allow_holes = true}, }	return params end

pos_functions["pronouns"] = { params = get_pronoun_params, func = function(args, data, tracking_categories, frame, is_suffix) do_pronoun(args, data, tracking_categories, "pronoun", is_suffix) end, }

- --                                      Adjectives                                    -- -

local function insert_ancillary_inflection(data, forms, quals, label, plpos, tracking_categories) if forms and #forms > 0 then local terms = process_terms_with_qualifiers(forms, quals) check_all_missing(terms, plpos, tracking_categories) terms.label = label table.insert(data.inflections, terms) end end

-- Handle comparatives and superlatives for adjectives and adverbs, including user-specified comparatives and -- superlatives, default-requested comparatives/superlatives using '+', autogenerated comparatives/superlatives, -- and hascomp=. Code is the same for adjectives and adverbs. local function handle_adj_adv_comp(args, data, plpos, is_adv, tracking_categories) local lemma = m_links.remove_links(data.heads[1]) -- should always be specified local stem

if is_adv then stem = com.rsub(lemma, "mente$", "") else stem = lemma end

local function make_absolute_superlative(special) if is_adv then return com.make_adverbial_absolute_superlative(stem, special) else return com.make_absolute_superlative(stem, special) end end

-- Maybe autogenerate default comparative/superlative. if args.comp and args.sup then-- comp= and sup= were given as options to the user -- If no comp, but a non-default sup given, then add the default comparative/superlative. -- This is useful when an absolute superlative is given. local saw_sup_plus = false if #args.comp == 0 and #args.sup > 0 then for i, supval in ipairs(args.sup) do				if supval == "+" then saw_sup_plus = true end end if not saw_sup_plus then args.comp = {"+"} table.insert(args.sup, 1, "+") end end

-- If comp=+, use default comparative 'mais ...', and set a default superlative if unspecified. local saw_comp_plus = false for i, compval in ipairs(args.comp) do			if compval == "+" then saw_comp_plus = true args.comp[i] = "mais " .. lemma .. "" end end if saw_comp_plus and #args.sup == 0 then args.sup = {"+"} end -- If sup=+ (possibly from comp=+), use default superlative 'o mais ...'. Also handle absolute superlatives. for i, supval in ipairs(args.sup) do			if supval == "+" then args.sup[i] = "o mais " .. lemma .. "" elseif supval == "+abs" then args.sup[i] = make_absolute_superlative elseif rfind(supval, "^%+abs:") then local sp = rmatch(supval, "^%+abs:(.*)$") args.sup[i] = make_absolute_superlative(sp) end end end

if args.hascomp then if args.hascomp == "both" then table.insert(data.inflections, {label = "sometimes " .. glossary_link("comparable")}) table.insert(data.categories, langname .. " comparable " .. plpos) table.insert(data.categories, langname .. " uncomparable " .. plpos) else local hascomp = require("Module:yesno")(args.hascomp) if hascomp == true then table.insert(data.inflections, {label = glossary_link("comparable")}) table.insert(data.categories, langname .. " comparable " .. plpos) elseif hascomp == false then table.insert(data.inflections, {label = "not " .. glossary_link("comparable")}) table.insert(data.categories, langname .. " uncomparable " .. plpos) else error("Unrecognized value for hascomp=: " .. args.hascomp) end end elseif args.comp and #args.comp > 0 or args.sup and #args.sup > 0 then table.insert(data.inflections, {label = glossary_link("comparable")}) table.insert(data.categories, langname .. " comparable " .. plpos) end

insert_ancillary_inflection(data, args.comp, args.comp_qual, "comparative", plpos, tracking_categories) insert_ancillary_inflection(data, args.sup, args.sup_qual, "superlative", plpos, tracking_categories) end

local function do_adjective(args, data, tracking_categories, pos, is_suffix, is_superlative) local feminines = {} local masculine_plurals = {} local feminine_plurals = {} if is_suffix then pos = "suffix" end local plpos = require("Module:string utilities").pluralize(pos)

if not is_suffix then data.pos_category = plpos end

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 table.insert(indicators, "'" .. indic .. "'") end table.sort(indicators) error("Special inflection indicator beginning can only be " ..				m_table.serialCommaJoin(indicators, {dontTag = true}) .. ": " .. args.sp) end end

local lemma = m_links.remove_links(data.heads[1]) -- should always be specified

local function insert_inflection(forms, label, accel) if #forms > 0 then if forms[1].term == "-" then table.insert(data.inflections, {label = "no " .. label}) else forms.label = label forms.accel = {form = accel} table.insert(data.inflections, forms) end end end

if args.short then table.insert(data.inflections, {label = "short participle"}) end

if args.inv then -- invariable adjective table.insert(data.inflections, {label = glossary_link("invariable")}) table.insert(data.categories, langname .. " indeclinable " .. plpos) if args.sp or #args.f > 0 or #args.pl > 0 or #args.mpl > 0 or #args.fpl > 0 then error("Can't specify inflections with an invariable " .. pos) end elseif args.fonly then -- feminine-only if #args.f > 0 then error("Can't specify explicit feminines with feminine-only " .. pos) end if #args.pl > 0 then error("Can't specify explicit plurals with feminine-only " .. pos .. ", use fpl=") end if #args.mpl > 0 then error("Can't specify explicit masculine plurals with feminine-only " .. pos) end local argsfpl = args.fpl if #argsfpl == 0 then argsfpl = {"+"} end for i, fpl in ipairs(argsfpl) do			if fpl == "+" then local defpl = com.make_plural(lemma, args.sp) if not defpl then error("Unable to generate default plural of '" .. lemma .. "'") end fpl = defpl else fpl = replace_hash_with_lemma(fpl, lemma) end table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])}) end

check_all_missing(feminine_plurals, plpos, tracking_categories)

table.insert(data.inflections, {label = "feminine-only"}) insert_inflection(feminine_plurals, "feminine plural", "f|p") else -- Gather feminines. local argsf = args.f		if #argsf == 0 then argsf = {"+"} end for i, f in ipairs(argsf) do			if f == "+" then -- Generate default feminine. f = com.make_feminine(lemma, args.sp) else f = replace_hash_with_lemma(f, lemma) end table.insert(feminines, {term = f, q = fetch_qualifiers(args.f_qual[i])}) end

local argsmpl = args.mpl local argsfpl = args.fpl if #args.pl > 0 then if #argsmpl > 0 or #argsfpl > 0 or args.mpl_qual.maxindex > 0 or args.fpl_qual.maxindex > 0 then error("Can't specify both pl= and mpl=/fpl=") end argsmpl = args.pl			args.mpl_qual = args.pl_qual argsfpl = args.pl			args.fpl_qual = args.pl_qual end if #argsmpl == 0 then argsmpl = {"+"} end if #argsfpl == 0 then argsfpl = {"+"} end

for i, mpl in ipairs(argsmpl) do			if mpl == "+" then -- Generate default masculine plural. local defpl = com.make_plural(lemma, args.sp) if not defpl then error("Unable to generate default plural of '" .. lemma .. "'") end mpl = defpl else mpl = replace_hash_with_lemma(mpl, lemma) end table.insert(masculine_plurals, {term = mpl, q = fetch_qualifiers(args.mpl_qual[i])}) end

for i, fpl in ipairs(argsfpl) do			if fpl == "+" then for _, f in ipairs(feminines) do -- Generate default feminine plural; f is a table. local defpl = com.make_plural(f.term, args.sp) if not defpl then error("Unable to generate default plural of '" .. f.term .. "'") end table.insert(feminine_plurals, {term = defpl, q = fetch_qualifiers(args.fpl_qual[i], f.q)}) end else fpl = replace_hash_with_lemma(fpl, lemma) table.insert(feminine_plurals, {term = fpl, q = fetch_qualifiers(args.fpl_qual[i])}) end end

check_all_missing(feminines, plpos, tracking_categories) check_all_missing(masculine_plurals, plpos, tracking_categories) check_all_missing(feminine_plurals, plpos, tracking_categories)

local fem_like_lemma = #feminines == 1 and feminines[1].term == lemma and not feminines[1].q		local fem_pl_like_masc_pl = #masculine_plurals > 0 and #feminine_plurals > 0 and m_table.deepEquals(masculine_plurals, feminine_plurals) local masc_pl_like_lemma = #masculine_plurals == 1 and masculine_plurals[1].term == lemma and not masculine_plurals[1].q		if fem_like_lemma and fem_pl_like_masc_pl and masc_pl_like_lemma then -- actually invariable table.insert(data.inflections, {label = glossary_link("invariable")}) table.insert(data.categories, langname .. " indeclinable " .. plpos) else -- Make sure there are feminines given and not same as lemma. if not fem_like_lemma then insert_inflection(feminines, "feminine", "f|s") end

if fem_pl_like_masc_pl then insert_inflection(masculine_plurals, "plural", "p") data.genders = {"mf"} else insert_inflection(masculine_plurals, "masculine plural", "m|p") insert_inflection(feminine_plurals, "feminine plural", "f|p") end end end

insert_ancillary_inflection(data, args.n, args.n_qual, "neuter", plpos, tracking_categories)

handle_adj_adv_comp(args, data, plpos, false, tracking_categories)

-- Handle requests for default diminutive. if args.dim then for i, dim in ipairs(args.dim) do			if dim == "+" then args.dim[i] = com.make_diminutive(lemma) elseif dim:find("^%+") then dim = require(romut_module).get_special_indicator(dim) args.dim[i] = com.make_diminutive(lemma, dim) end end end

-- Handle requests for default augmentative. if args.aug then for i, aug in ipairs(args.aug) do			if aug == "+" then args.aug[i] = com.make_augmentative(lemma) elseif aug:find("^%+") then aug = require(romut_module).get_special_indicator(aug) args.aug[i] = com.make_augmentative(lemma, aug) end end end

insert_ancillary_inflection(data, args.dim, args.dim_qual, "diminutive", plpos, tracking_categories) insert_ancillary_inflection(data, args.aug, args.aug_qual, "augmentative", plpos, tracking_categories)

if is_metaphonic(args, lemma) then table.insert(data.inflections, {label = metaphonic_label}) table.insert(data.categories, langname .. " " .. plpos .. " with metaphony") end

if args.irreg and is_superlative then table.insert(data.categories, langname .. " irregular superlative " .. plpos) end end

local function get_adjective_params(adjtype) local params = { ["inv"] = {type = "boolean"}, --invariable ["sp"] = {}, -- special indicator: "first", "first-last", etc.		["f"] = {list = true}, --feminine form(s) ["f_qual"] = {list = "f\1_qual", allow_holes = true}, ["pl"] = {list = true}, --plural override(s) ["pl_qual"] = {list = "pl\1_qual", allow_holes = true}, ["mpl"] = {list = true}, --masculine plural override(s) ["mpl_qual"] = {list = "mpl\1_qual", allow_holes = true}, ["fpl"] = {list = true}, --feminine plural override(s) ["fpl_qual"] = {list = "fpl\1_qual", allow_holes = true}, ["meta"] = {type = "boolean"}, -- metaphonic ["nometa"] = {type = "boolean"}, -- explicitly not metaphonic }	if adjtype == "base" then params["comp"] = {list = true} --comparative(s) params["comp_qual"] = {list = "comp\1_qual", allow_holes = true} params["sup"] = {list = true} --superlative(s) params["sup_qual"] = {list = "sup\1_qual", allow_holes = true} params["dim"] = {list = true} --diminutive(s) params["dim_qual"] = {list = "dim\1_qual", allow_holes = true} params["aug"] = {list = true} --augmentative(s) params["aug_qual"] = {list = "aug\1_qual", allow_holes = true} params["fonly"] = {type = "boolean"} -- feminine only params["hascomp"] = {} -- has comparative end if adjtype == "part" then params["short"] = {type = "boolean"} -- short participle end if adjtype == "sup" then params["irreg"] = {type = "boolean"} end if adjtype == "pron" or adjtype == "contr" then params["n"] = {list = true} --neuter form(s) params["n_qual"] = {list = "n\1_qual", allow_holes = true} end return params end

pos_functions["adjectives"] = { params = get_adjective_params("base"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "adjective", is_suffix) end, }

pos_functions["comparative adjectives"] = { params = get_adjective_params("comp"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "adjective", is_suffix) end, }

pos_functions["superlative adjectives"] = { params = get_adjective_params("sup"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "adjective", is_suffix, "is superlative") end, }

pos_functions["past participles"] = { params = get_adjective_params("part"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "participle", is_suffix) data.pos_category = "past participles" end, }

pos_functions["determiners"] = { params = get_adjective_params("det"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "determiner", is_suffix) end, }

pos_functions["adjective-like pronouns"] = { params = get_adjective_params("pron"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "pronoun", is_suffix) end, }

pos_functions["adjective-like contractions"] = { params = get_adjective_params("contr"), func = function(args, data, tracking_categories, frame, is_suffix) do_adjective(args, data, tracking_categories, "contraction", is_suffix) end, }

- --                                       Adverbs                                      -- -

local function do_adverb(args, data, tracking_categories, pos, is_suffix) if is_suffix then pos = "suffix" end local plpos = require("Module:string utilities").pluralize(pos)

if not is_suffix then data.pos_category = plpos end

handle_adj_adv_comp(args, data, plpos, "is adv", tracking_categories) end

local function get_adverb_params(advtype) local params = {} if advtype == "base" then params["comp"] = {list = true} --comparative(s) params["comp_qual"] = {list = "comp\1_qual", allow_holes = true} params["sup"] = {list = true} --superlative(s) params["sup_qual"] = {list = "sup\1_qual", allow_holes = true} params["hascomp"] = {} -- has comparative end return params end

pos_functions["adverbs"] = { params = get_adverb_params("base"), func = function(args, data, tracking_categories, frame, is_suffix) do_adverb(args, data, tracking_categories, "adverb", is_suffix) end, }

pos_functions["comparative adverbs"] = { params = get_adverb_params("comp"), func = function(args, data, tracking_categories, frame, is_suffix) do_adverb(args, data, tracking_categories, "adverb", is_suffix) end, }

pos_functions["superlative adverbs"] = { params = get_adverb_params("sup"), func = function(args, data, tracking_categories, frame, is_suffix) do_adverb(args, data, tracking_categories, "adverb", is_suffix) end, }

- --                                        Verbs                                       -- -

pos_functions["verbs"] = { params = { [1] = {},		["pres"] = {list = true}, --present ["pres_qual"] = {list = "pres\1_qual", allow_holes = true}, ["pres3s"] = {list = true}, --third-singular present ["pres3s_qual"] = {list = "pres3s\1_qual", allow_holes = true}, ["pret"] = {list = true}, --preterite ["pret_qual"] = {list = "pret\1_qual", allow_holes = true}, ["part"] = {list = true}, --participle ["part_qual"] = {list = "part\1_qual", allow_holes = true}, ["short_part"] = {list = true}, --short participle ["short_part_qual"] = {list = "short_part\1_qual", allow_holes = true}, ["noautolinktext"] = {type = "boolean"}, ["noautolinkverb"] = {type = "boolean"}, ["attn"] = {type = "boolean"}, },	func = function(args, data, tracking_categories, frame) local preses, preses_3s, prets, parts, short_parts

if args.attn then table.insert(tracking_categories, "Requests for attention concerning " .. langname) return end

local pt_verb = require(pt_verb_module) local alternant_multiword_spec = pt_verb.do_generate_forms(args, "pt-verb", data.heads[1])

local specforms = alternant_multiword_spec.forms local function slot_exists(slot) return specforms[slot] and #specforms[slot] > 0 end

local function do_finite(slot_tense, label_tense) -- Use pres_3s if it exists and pres_1s doesn't exist (e.g. impersonal verbs); similarly for pres_3p (only3p verbs); -- but fall back to pres_1s if neither pres_1s nor pres_3s nor pres_3p exist (e.g. empedernir). local has_1s = slot_exists(slot_tense .. "_1s") local has_3s = slot_exists(slot_tense .. "_3s") local has_3p = slot_exists(slot_tense .. "_3p") if has_1s or (not has_3s and not has_3p) then return { slot = slot_tense .. "_1s", label = ("first-person singular %s"):format(label_tense), }, true elseif has_3s then return { slot = slot_tense .. "_3s", label = ("third-person singular %s"):format(label_tense), }, false else return { slot = slot_tense .. "_3p", label = ("third-person plural %s"):format(label_tense), }, false end end

local did_pres_1s preses, did_pres_1s = do_finite("pres", "present") preses_3s = { slot = "pres_3s", label = "third-person singular present", }		prets = do_finite("pret", "preterite") parts = { slot = "pp_ms", label = "past participle", }		short_parts = { slot = "short_pp_ms", label = "short past participle", }

if #args.pres > 0 or #args.pres3s > 0 or #args.pret > 0 or #args.part > 0 or #args.short_part > 0 then track("verb-old-multiarg") end

local function strip_brackets(qualifiers) if not qualifiers then return nil end local stripped_qualifiers = {} for _, qualifier in ipairs(qualifiers) do				local stripped_qualifier = qualifier:match("^%[(.*)%]$") if not stripped_qualifier then error("Internal error: Qualifier should be surrounded by brackets at this stage: " .. qualifier) end table.insert(stripped_qualifiers, stripped_qualifier) end return stripped_qualifiers end

local function do_verb_form(args, qualifiers, slot_desc, skip_if_empty) local forms local to_insert

if #args == 0 then forms = specforms[slot_desc.slot] if not forms or #forms == 0 then if skip_if_empty then return end forms = end elseif #args == 1 and args[1] == "-" then forms = else forms = {} for i, arg in ipairs(args) do					local qual = qualifiers[i] if qual then -- FIXME: It's annoying we have to add brackets and strip them out later. The inflection -- code adds all footnotes with brackets around them; we should change this. qual = {"[" .. qual .. "]"}					end local form = arg if not args.noautolinkverb then form = com.add_links(form) end table.insert(forms, {form = form, footnotes = qual}) end end

if forms[1].form == "-" then to_insert = {label = "no " .. slot_desc.label} else local into_table = {label = slot_desc.label} for _, form in ipairs(forms) do					local qualifiers = strip_brackets(form.footnotes) -- Strip redundant brackets surrounding entire form. These may get generated e.g. -- if we use the angle bracket notation with a single word. local stripped_form = rmatch(form.form, "^%[%[([^%[%]]*)%]%]$") or form.form stripped_form = pt_verb.remove_variant_codes(stripped_form) -- Don't include accelerators if brackets remain in form, as the result will be wrong. -- FIXME: For now, don't include accelerators. We should use the new once implemented. -- local this_accel = not stripped_form:find("%[%[") and accel or nil local this_accel = nil table.insert(into_table, {term = stripped_form, q = qualifiers, accel = this_accel}) end to_insert = into_table end

table.insert(data.inflections, to_insert) end

local skip_pres_if_empty if alternant_multiword_spec.no_pres1_and_sub then table.insert(data.inflections, {label = "no first-person singular present"}) table.insert(data.inflections, {label = "no present subjunctive"}) end if alternant_multiword_spec.no_pres_stressed then table.insert(data.inflections, {label = "no stressed present indicative or subjunctive"}) skip_pres_if_empty = true end if alternant_multiword_spec.only3s then table.insert(data.inflections, {label = glossary_link("impersonal")}) elseif alternant_multiword_spec.only3sp then table.insert(data.inflections, {label = "third-person only"}) elseif alternant_multiword_spec.only3p then table.insert(data.inflections, {label = "third-person plural only"}) end local has_vowel_alt if alternant_multiword_spec.vowel_alt then for _, vowel_alt in ipairs(alternant_multiword_spec.vowel_alt) do				if vowel_alt ~= "+" and vowel_alt ~= "í" and vowel_alt ~= "ú" then has_vowel_alt = true break end end end

local function expand_footnotes_and_references(footnotes) if not footnotes then return nil end return require("Module:inflection utilities").fetch_headword_qualifiers_and_references(footnotes) end

do_verb_form(args.pres, args.pres_qual, preses, skip_pres_if_empty) -- We want to include both the pres_1s and pres_3s if there is a vowel alternation in the present singular. But we -- don't want to redundantly include the pres_3s if we already included it. if did_pres_1s and has_vowel_alt then do_verb_form(args.pres3s, args.pres3s_qual, preses_3s, skip_pres_if_empty) end do_verb_form(args.pret, args.pret_qual, prets) do_verb_form(args.part, args.part_qual, parts) do_verb_form(args.short_part, args.short_part_qual, short_parts, "skip if empty")

-- Add categories. for _, cat in ipairs(alternant_multiword_spec.categories) do			table.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:pt-verb in place of the user-specified or auto-generated head. This was copied from -- Module:it-headword, where doing this gets accents marked on the verb(s). We don't have accents marked on -- the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't do this if the -- user gave multiple heads or gave a head with a multiword-linked verbal expression such as Italian -- 'dare esca al fuoco' (FIXME: give Portuguese equivalent). 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.infinitive_linked) do				local quals, refs = expand_footnotes_and_references(lemma_obj.footnotes) table.insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs}) end end end }

- --                                   Suffix forms                                     -- -

pos_functions["suffix forms"] = { params = { [1] = {required = true, list = true}, ["g"] = {list = true}, ["g_qual"] = {list = "g\1_qual", allow_holes = true}, },	func = function(args, data, is_suffix) data.genders = {} process_genders(data, args.g, args.g_qual) local suffix_type = {} for _, typ in ipairs(args[1]) do table.insert(suffix_type, typ .. "-forming suffix") end table.insert(data.inflections, {label = "non-lemma form of " .. m_table.serialCommaJoin(suffix_type, {conj = "or"})}) end, }

return export

title: Module:pt-headword


text: ālàjí

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: ālàjí


text: hot bread shops

title: hot bread shops


text:
włóknina

Etymology
From.

Noun

 * 1) nonwoven

title: włóknina


text: urḫu

title: urḫu


text:
Citations:MSTer

Noun: "(fandom slang) a person who parodies a fanfic by inserting satirical commentary"

 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"
 * "en"

- Most MSTers confine their "riffing" to original fan fiction rather than scripts from corporate-owned entertainment properties, which renders such twice-removed MSTing somewhat toothless: the cannibalizing parody of a patische.

title: Citations:MSTer


text:
włókniarz

Etymology
From.

Noun

 * 1) textile worker, clothworker

title: włókniarz


text:
User:Sqrt44

Native New Zealand English speaker, primarily adding related words.

title: User:Sqrt44


text:
MSTer

Noun

 * 1)  A person who parodies a fanfic by inserting satirical commentary.

title: MSTer


text:
włókniarka

Etymology
From.

title: włókniarka


text: Citations:MSTable

title: Citations:MSTable


text:
Talk:feel到

RFD discussion: July–August 2022
Chinese. Also SoP:feel+到. See discussion at Wpi31 (talk) 02:54, 23 July 2022 (UTC)
 * Delete. — justin(r)leung { (t...) 02:49, 25 July 2022 (UTC)

 * RFD deleted. — justin(r)leung { (t...) 10:34, 25 August 2022 (UTC)

title: Talk:feel到


text:
Talk:get到

RFD discussion: July–August 2022
Chinese. SoP: +到(sense #4)

(Sidenote: would not be SoP since  cannot (or seems to cannot) be used as a verb individually;  is not as well since 到 is not in sense #4 here) -- Wpi31 (talk) 10:56, 21 July 2022 (UTC)

 * Delete. Similar to 做到 and 搵到, which were previously deleted for the same reason.
 * (Also, I don't really see how feel到 is different from get到. feel到 is pretty much syntactically the same as get到 (we can separate feel from 到 with negation (feel唔到) and it could also be in A-not-A constructions (feel唔feel到). Words.hk has the entry at feel instead of feel到.) — justin(r)leung { (t...) 09:54, 22 July 2022 (UTC)
 * For feel到 my rationale was that feel could not be separated from 到, so feel唔到 but *唔feel *feel咗 *feel緊 etc, whereas all of get到 get唔到 唔get get咗 get緊 etc are valid. So they probably have different grammar structures at the moment, though it could be possible for feel到 to drop 到 in the future. -- Wpi31 (talk) 11:46, 22 July 2022 (UTC)
 * While I can't think of an example where feel咗 would work, I think you can have feel緊 and feel下. — justin(r)leung { (t...) 16:58, 22 July 2022 (UTC)

 * Delete. RcAlex36 (talk) 17:03, 22 July 2022 (UTC)

 * RFD deleted. — justin(r)leung { (t...) 10:33, 25 August 2022 (UTC)

title: Talk:get到


text:
Talk:注意到

RFD discussion: July–August 2022
Chinese. SoP: 注意 "to pay attention" + 到 (indicates the completion of an action). — justin(r)leung { (t...) 06:57, 29 July 2022 (UTC)
 * Delete. RcAlex36 (talk) 13:27, 29 July 2022 (UTC)

 * RFD deleted. — justin(r)leung { (t...) 06:02, 30 August 2022 (UTC)

title: Talk:注意到


text:
Citations:MSTing

Noun: "(countable, fandom slang) a parody fanfic created by inserting satirical commentary into an existing work"

 * 2005, Ashish Pandey, Academic Dictionary Of Fiction, ISBN 8182052629, page 202:
 * "en"
 * 2005, Ashish Pandey, Academic Dictionary Of Fiction, ISBN 8182052629, page 202:
 * "en"
 * 2005, Ashish Pandey, Academic Dictionary Of Fiction, ISBN 8182052629, page 202:
 * "en"
 * 2005, Ashish Pandey, Academic Dictionary Of Fiction, ISBN 8182052629, page 202:
 * "en"
 * 2005, Ashish Pandey, Academic Dictionary Of Fiction, ISBN 8182052629, page 202:
 * "en"

- A MSTing that gets its material from something that someone got paid for—movie script, TV show, published book or poem, etc.

Noun: "(uncountable, fandom slang) the process of creating fanfics in this manner"

 * 2007, Mechademia 2: Networks of Desire, ISBN 081665266X, page 43:
 * "en"

- We learn this from looking at which authors are the most popular and which stories are most commonly chosen for ridicule, either through flaming or through “MSTing.”

 * 2011, Michael Dean, "Frame work, resistance and co-optation: How Mystery Science Theater 3000 positions us both in and against hegemonic culture", In the Peanut Gallery with Mystery Science Theater 3000: Essays on Film, Fandom, Technology, and the Culture of Riffing, ISBN 0786445327, page 126:
 * "en"

- Most MSTers confine their "riffing" to original fan fiction rather than scripts from corporate-owned entertainment properties, which renders such twice-removed MSTing somewhat toothless: the cannibalizing parody of a patische.

 * 2011, Ron Hale-Evans, Marty Hale-Evans, Mindhacker: 60 Tips, Tricks, and Games to Take Your Mind to the Next Level, ISBN 1118166434:
 * "en"

- Why not try your own hand at MSTing?

title: Citations:MSTing


text:
ガテン系

Etymology
From (Gaten), a publication of primarily blue-collar employment advertisements,. Literally, “Gaten-type”.

Noun

 * 1) manual labor
 * 2) a manual laborer, a blue-collar worker
 * 1) a manual laborer, a blue-collar worker
 * 1) a manual laborer, a blue-collar worker
 * 1) a manual laborer, a blue-collar worker
 * 1) a manual laborer, a blue-collar worker

title: ガテン系


text: ガテンけい

title: ガテンけい


text: Axels

title: Axels


text: 𢛓

title: 𢛓


text:
политико-экономический

Adjective

 * 1) political-economic

title: политико-экономический


text: Ҟамлаҭ

title: Ҟамлаҭ


text: 𣭇

title: 𣭇


text: 𣭆

title: 𣭆


text: Елҟан

title: Елҟан


text: boot-black

title: boot-black


text: boot-blacks

title: boot-blacks


text: 𣭉

title: 𣭉


text:
неурядовий

Adjective

 * 1) non-governmental

title: неурядовий


text:
Гәымзаӷ

Etymology
From.

title: Гәымзаӷ


text: 𣭊

title: 𣭊


text:
Ҳанашхә

Etymology
From.

title: Ҳанашхә


text: неурядова

title: неурядова


text: metaviruses

title: metaviruses


text:
Ҳанашә

Etymology
From.

title: Ҳанашә


text: Template:RQ:Alcott Eight Cousins

title: Template:RQ:Alcott Eight Cousins


text: Template:RQ:Alcott Eight Cousins/documentation


text:
Ҳанаҫә

Etymology
From.

Etymology
From.

title: Ҳанаҫә


text:
MSTable

Adjective

 * 1)  That lends itself to being.

title: MSTable


text: Category:Portuguese adjectives with red links in their headword lines


text: неурядові

title: неурядові


text:
ကရှ်ေ

Noun

 * 1) measure of capacity equal to one thirty-two of a basket  or half a.

title: ကရှ်ေ


text:
gwiaździak

Etymology
From.

Noun

 * 1)  astrocytoma

title: gwiaździak


text:
ကလတ်

Noun

 * 1) measure of capacity equal to one-sixteenth of a basket  four ကလတ် (kalat) is a.

Noun

 * 1) royal or government emissary, ambassador, intelligencer.

Verb

 * 1) to plant seeds or sow individually.

Noun

 * 1) middle-sixed tree bearing acerbic fruit in clusters used for curry.

Noun

 * 1) sprout, shoot

title: ကလတ်


text: 𣭎

title: 𣭎


text:
colazionare

Etymology
From, by analogy of , and ,.

Verb

 * 1)  to have breakfast

title: colazionare


text: Citations:MSTability

title: Citations:MSTability


text: 𣭏

title: 𣭏


text:
oponiak

Etymology
From.

Noun

 * 1)  meningioma

Declension
or:

title: oponiak


text: 𣭐

title: 𣭐


text:
MSTability

Noun

 * 1)  The state or quality of being MSTable.

title: MSTability


text: 𣭑

title: 𣭑


text:
oquş

Etymology
From 🇨🇬.

Noun

 * 1) alphabet
 * 2) character
 * 3) writing
 * 4) school
 * 1) school

Usage notes

 * Even though it is recorded as 'oxuş' in old records (Kakuk, Tenishev, Lianyun, MaChengjun), it is recorded as 'oğuş' in new records. This may be due to the widespread use of a typo. It is written as 'oğuş' in the textbooks of the Salar language.

title: oquş


text: kasere

title: kasere


text: 𣭒

title: 𣭒


text:
ဇိပ်

Noun

 * 1) measure of capacity equal to a quarter of a basket  or four.

Verb

 * 1) expletive in.

title: ဇိပ်


text: 𣭓

title: 𣭓


text: Category:enm:Heads of state

title: Category:enm:Heads of state


text: Category:enm:Leaders

title: Category:enm:Leaders


text: Waremme

title: Waremme


text:
nawrócony

Etymology
From.

Noun

 * 1)  convert

title: nawrócony


text: 𪵘

title: 𪵘


text:
မိပ်ဇိပ်

Verb

 * 1) to be thoroughly happy.

title: မိပ်ဇိပ်


text:
Ⓔ

Symbol

 * 1) emergency (hospital etc.)
 * 2)  unidentifiable/indeterminate front vowel

Related terms

 * See for uses of a letter inside a circle.


text:
nadziąślak

Etymology
From.

Noun

 * 1)  epulis

Declension
or:

title: nadziąślak


text: 𣭝

title: 𣭝


text:
otçaq

Etymology
From 🇨🇬.

Noun

 * 1) kitchen

title: otçaq


text:
скін

Noun

 * 1)  death, demise
 * 2)  end

Etymology 2
.

Noun

 * 1)  skinhead

Etymology 3
.

Noun

 * 1)  skin (a set of resources that modifies the appearance and/or layout of the graphical user interface of a computer program)

title: скін


text:
międzybłoniak

Etymology
From.

Noun

 * 1)  mesothelioma

Declension
or:

title: międzybłoniak


text: Citations:lytico

title: Citations:lytico


text:
docciare

Etymology
From.

Verb

 * 1)  to pour down like water of a shower or gutter
 * 2)  to subject someone to a shower

title: docciare


text:
lytico

Etymology
Short for paralytico, apparently from.

Noun

 * 1)  A medical condition prevalent on Guam, or an aspect of Lytico-Bodig disease, which causes paralysis.

title: lytico


text:
docciarsi

Verb

 * 1) to take a shower
 * 1) to take a shower

title: docciarsi


text:
przyczepka

Etymology
From.

title: przyczepka


text: kayseres

title: kayseres


text: kaysere

title: kaysere


text:
議政府

Etymology
Borrowed from, which was named after the

title: 議政府


text: caisare

title: caisare


text: caiser

title: caiser


text:
ကွက်

Verb

 * 1) to stained, to make the box pattern.

Adverb

 * 1) divided and separated, left a word, shaving.

Noun

 * 1) matter of importance.

Verb

 * 1) to hang up

title: ကွက်


text: 议政府

title: 议政府


text: caisoure

title: caisoure


text: cayser

title: cayser


text: caysere

title: caysere


text: kaisere

title: kaisere


text: Category:Middle English terms borrowed from Old High German


text: 𬆼

title: 𬆼


text:
Citations:fanlore

Noun: "the history or knowledge of a fandom"

 * 1957, Ed Cox, "Torus Installment", Contour, Number 11, May 1957, page 7:
 * But by this time, we'd remembered the location of Clifton's Cafeteria which is well-known in old Los Angeles fanlore.
 * 1981, Gary Deindorfer, "Group Sainthood", Boonfark, Number Five, August 1981, page 34:
 * We have moved out of fannish lore and into questions of ontology. I have long been fascinated by anything having to do with the nature of existence, nonexistence, the interplay between the two — even more than being fascinated by discussions of fanlore.
 * 1997, Lon Atkins, "Reprise", Southern Fandom Confederation Handbook, page 103:
 * The notorious Hank Reinhardt made his debut in SFPA and enriched Southern fanlore with a wealth of hilarious ‘Hank’ stories.
 * 1998, Gary Deindorfer, letter dated 3 November 1998, published in  Outworlds, Number 71 (2020), page 2876:
 * The story of Jackie and Dave speculating over the pulley apparatus is a worthy addition to the wealth of fanlore beginning to hover around Jackie’s memory like a nimbus.
 * 2021, Peter Cullen Bryan, Creation, Translation, and Adaptation in Donald Duck: Comics The Dream of Three Lifetimes, page 99:
 * The identification of Carl Barks is a crucial part of the fanlore, and the subject of some mild disagreement.
 * 2022, Jeffrey Redmond, "Politics in Science Fiction", Ionisphere, Number 34, March 2022, page 12:
 * The same year witnessed what sf fanlore still knows as the “Great Exclusian Act”, when a half-dozen of the more querulous and left-leaning Futurians, including Pohl, Wollheim, and Michel, were banned from the World Science Fiction Convention.
 * The identification of Carl Barks is a crucial part of the fanlore, and the subject of some mild disagreement.
 * 2022, Jeffrey Redmond, "Politics in Science Fiction", Ionisphere, Number 34, March 2022, page 12:
 * The same year witnessed what sf fanlore still knows as the “Great Exclusian Act”, when a half-dozen of the more querulous and left-leaning Futurians, including Pohl, Wollheim, and Michel, were banned from the World Science Fiction Convention.

title: Citations:fanlore


text: Jeuk

title: Jeuk


text: 𬆽

title: 𬆽


text: 𬆾

title: 𬆾


text: 𬇀

title: 𬇀


text:
Σαρματία

Proper noun

 * 1) Sarmatia

title: Σαρματία


text: Gingelom

title: Gingelom


text:
Diamniadio

Etymology
.

Translations

 * French: Diamniadio

Etymology
.

title: Diamniadio


text: Category:en:Towns in Senegal

title: Category:en:Towns in Senegal


text:
룩셈부르그

Etymology
From.

title: 룩셈부르그


text:
fanlore

Noun

 * 1) The history or knowledge of a fandom.

title: fanlore


text: Citations:Diamniadio

title: Citations:Diamniadio


text:
nawrócona

Etymology
From.

title: nawrócona


text: Citations:trancher

title: Citations:trancher


text: Citations:sagement

title: Citations:sagement


text: Citations:subsaharien

title: Citations:subsaharien


text: Citations:Seydina

title: Citations:Seydina


text:
리뜨바

Etymology
From.

title: 리뜨바


text: Citations:Touré

title: Citations:Touré


text:
aklasowy

Etymology
From. .

Adjective

 * 1) classless

title: aklasowy


text:
ryżanin

Etymology
From.

Noun

 * 1) Rigan

title: ryżanin


text:
ryżanka

Etymology 1
From.

Etymology 2
From.

Noun

 * 1) rice soup

title: ryżanka


text:
Touré

Etymology
.

title: Touré


text:
탱고

Etymology
From.

Noun

 * 1) tango

title: 탱고


text: призначили

title: призначили


text:
Varderesyan

Etymology
.

Statistics

 * According to data collected by Forebears in 2014, Varderesyan is the 797015th most common surname in the United States, belonging to 11 individuals.

title: Varderesyan


text:
Varteresian

Etymology
Variant of.

Statistics

 * According to data collected by Forebears in 2014, Varteresian is the 203401st most common surname in the United States, belonging to 99 individuals.

title: Varteresian


text: Varteresians

title: Varteresians


text: Varderesyans

title: Varderesyans


text:
Վարդերեսյան

Etymology
From.

title: Վարդերեսյան


text:
Seydina

Etymology
.

title: Seydina


text:
oother

Etymology
From, from , from.

Pronoun

 * 1) other

title: oother


text: diock

title: diock


text: diocks

title: diocks


text: Backfischaquarium

title: Backfischaquarium


text:
Mädchenpensionat

Noun

 * 1)  boarding school for girls; finishing school

title: Mädchenpensionat


text: Citations:Dnipropetrovsk

title: Citations:Dnipropetrovsk


text:
Pensionat

Etymology
.

Noun

 * 1)  boarding school

title: Pensionat


text: Ezemaal

title: Ezemaal


text:
Serdiuk

Etymology
Derived from.

title: Serdiuk


text: Citations:FoLC

title: Citations:FoLC


text:
㉈

Symbol

 * 1) speed limit of 10 km/h

title: ㉈


text:
㉉

Symbol

 * 1) speed limit of 20 km/h

title: ㉉


text:
㉊

Symbol

 * 1) speed limit of 30 km/h

title: ㉊


text:
㉋

Symbol

 * 1) speed limit of 40 km/h

title: ㉋


text:
㉌

Symbol

 * 1) speed limit of 50 km/h

title: ㉌


text:
㉍

Symbol

 * 1) speed limit of 60 km/h

title: ㉍


text:
㉎

Symbol

 * 1) speed limit of 70 km/h

title: ㉎


text:
㉏

Symbol

 * 1) speed limit of 80 km/h

title: ㉏


text: зроблений

title: зроблений


text:
چاپاق

Etymology
, a development of ; cognate with 🇨🇬 and 🇨🇬.

Noun

 * 1) sleep, gound, inspissated mucus in the eyelids

title: چاپاق


text:
էլեկտրա-

Etymology
Adaptation of.

Prefix

 * 1) electro-

title: էլեկտրա-


text:
FoLC

Etymology
Acronym of   &, seemingly chosen as a homophone of.

Noun

 * 1)  A fan of the television series .

title: FoLC


text: Category:Armenian terms prefixed with էլեկտրա-


text: wͨ

title: wͨ


text:
Reconstruction:Proto-Slavic/mǫdrostь

Etymology
From.

Noun

 * 1) wisdom, sagacity

Descendants

 * East Slavic:
 * South Slavic:
 * West Slavic:
 * Old Slovak:
 * South Slavic:
 * West Slavic:
 * Old Slovak:
 * West Slavic:
 * Old Slovak:
 * West Slavic:
 * Old Slovak:
 * West Slavic:
 * Old Slovak:
 * Old Slovak:
 * Old Slovak:
 * Old Slovak:

title: Reconstruction:Proto-Slavic/mǫdrostь


text: зроблю

title: зроблю


text: зробите

title: зробите


text: зробили

title: зробили


text:
Reconstruction:Proto-Slavic/junostь

Etymology
From.

Noun

 * 1) youth (age)

Descendants

 * East Slavic:
 * South Slavic:
 * South Slavic:
 * South Slavic:
 * South Slavic:

title: Reconstruction:Proto-Slavic/junostь


text: зробила

title: зробила


text: Kumtich

title: Kumtich


text:
паруб'я

Etymology
. Equivalent to.

Noun

 * 1) a boy about to become a young man
 * 2) a young man
 * 1) a young man

title: паруб'я


text:
housynge

Etymology
From either or.

Noun

 * 1) housing, property
 * 2) house, building
 * 3) home, inhabitance
 * 4) shelter, accommodation, habitation
 * 5) camp, temporary lodgings

title: housynge


text:
slỉnh slạc

Adjective

 * 1) sober

Verb

 * 1) to pay attention

title: slỉnh slạc


text:
slỉnh sloáng

Adjective

 * 1) relaxed; relieved

title: slỉnh sloáng


text:
улӑп

Etymology
From. Cognate with 🇨🇬, 🇨🇬, 🇨🇬, 🇨🇬.

Noun

 * 1) giant

title: улӑп


text:
slỉnh tình

Adjective

 * 1) alert; sober

title: slỉnh tình


text:
Lebenshaltung

Noun

 * 1) way of life, lifestyle
 * 2) standard of living

title: Lebenshaltung


text:
slính

Adjective

 * 1) mad; angry; furious

title: slính


text:
slính khỉ

Adjective

 * 1) finicky; grumpy

title: slính khỉ


text: niitäntä

title: niitäntä


text:
slính khửn

Adjective

 * 1) angry; furious

title: slính khửn


text:
slính lồng

Verb

 * 1) to no longer be angry; to be pacified

title: slính lồng


text: howse

title: howse


text:
Reconstruction:Proto-Slavic/lěnostь

Etymology
From.

Noun

 * 1) laziness

Descendants

 * East Slavic:
 * South Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:
 * West Slavic:

title: Reconstruction:Proto-Slavic/lěnostь


text: howsen

title: howsen


text: howsyn

title: howsyn


text: приготований

title: приготований


text: Category:Kildin Sami prepositions

title: Category:Kildin Sami prepositions


text: Category:Kildin Sami postpositions

title: Category:Kildin Sami postpositions


text: Vertrijk

title: Vertrijk


text: LeCrone

title: LeCrone


text:
мамалиґа

Etymology
.

Noun

 * 1) mamaliga, cornmeal mush, polenta a porridge-like dish made of coarse maize-meal

title: мамалиґа


text:
Template:tyz-num

<!--

title: Template:tyz-num


text: Uraštu

title: Uraštu


text:
مچھر

Etymology
, from. Compare 🇨🇬.

Noun

 * 1) mosquito

title: مچھر


text: приготували

title: приготували


text: Category:ur:Parasites

title: Category:ur:Parasites


text: приготував

title: приготував


text: приготувала

title: приготувала


text:
Citations:kuudere

Noun: "(chiefly Japanese fiction) a calm, aloof, reserved fictional character (usually a girl) who has a hidden soft side, especially for a romantic interest"

 * 2016, Brandon Varnell, American Kitsune, Vol. 4: A Fox's Family, unnumbered page:
 * “Hey, kiddo, do you plan on getting a kuudere as well? You know, to make your harem more complete?”
 * 2018, Ichiro Sakaki (trans. Kevin Steinbach), Outbreak Company, Volume 3, unnumbered page:
 * As an otaku who prided himself on having wide and generous interests, I was all for kuuderes and tsunderes and whatever, but there was definitely a lot to be said for a bright, earnest smile like that.
 * 2018, Ichiro Sakaki (trans. Kevin Steinbach), Outbreak Company, Volume 5, unnumbered page:
 * True, she wasn't very expressive—or anyway, I didn't feel like I saw a lot of emotion from her—but if I thought of her as a kuudere, or one of those “weird girl” types, that could actually be seen as a positive.
 * 2018, "Moogle", "Cool As Rain", Otakuzine Anime Magazine, Issue #121, page 40:
 * The cool and tough exterior she displays makes for a good kuudere, and the blue eyes and silver hair already sets her up for the role in the Clannad series.
 * 2019, Hiromu Arakawa, Silver Spoon, Volume 9, page 191:
 * A kuudere is a character who acts curt and uninterested around their love interest but is really lovestruck on the inside.
 * 2021, CupcakeNinja, My Sister The Villainess: Alternate, unnumbered page:
 * Because cold kuudere maids are her waifus of choice. Their tongues are sharp, but their hearts are soft!
 * 2021, CupcakeNinja, Siblings by Day, Lovers by Night, unnumbered page:
 * “And cold kuudere maids are better?”
 * “Don't you mock kuudere's, [sic] you uncultured swine.”
 * 2021, Rifujin na Magonote, Mushoku Tensei: Jobless Reincarnation, Volume 11, unnumbered page:
 * Her words were as cool as ever, but there was a hint of embarrassment in her voice. Could she be one of those “kuuderes” I'd heard so much about?
 * 2021, mikawaghost (trans. Alexandra Owen-Burns), My Friend's Little Sister Has It In for Me!, Volume 4, unnumbered page:
 * "If you're hitting a wall, I can help you with some ideas. What kinda character are you looking for? Tsundere? Kuudere? A Crazy girl? ...Huh?"
 * 2021, Ryo Shirakome (trans. Ningen), Arifureta Zero: Volume 5, unnumbered page:
 * Without Belta's influence, Miledi would have probably turned into a kuudere like Yue.
 * 2022, Joseph Marcia, Be Thou My Good: An Isekai LitRPG, unnumbered page:
 * “Though I gotta admit, I didn't think that scruffy little girl would turn into the loyal kuudere type.”
 * 2022, Riri-Sensei, Ashiqui - Volume 1, unnumbered page:
 * Tsundere turned kuudere.
 * 2012, "Cupid's horoscopes for Valentine's Day", The Daily Aztec (San Diego State University), 9 February 2022 - 15 February 2022, page 5:
 * Are you ready to activate your special kuudere and act hard?

title: Citations:kuudere


text:
przehulać

Etymology
From.

Verb

 * 1)  to eat up, to exhaust, to spend and waste, to use up
 * 2)  to carouse
 * 1)  to carouse

title: przehulać


text:
slíp chình

Adjective

 * 1) one hundred percent

Adverb

 * 1) certainly

title: slíp chình


text: Boutersem

title: Boutersem


text:
утмӑл

Etymology
, itself, equivalent to  + -мӑл (-măl).

Cognate with 🇨🇬, 🇨🇬, 🇨🇬 and 🇨🇬.

Numeral

 * 1)  sixty

title: утмӑл


text:
chrupot

Etymology
From.

Noun

 * 1) crackle, crash, crunch

title: chrupot