text:
Module:bg-headword

local export = {} local pos_functions = {}

local headword_utilities_module = require("Module:headword utilities")

local lang = require("Module:languages").getByCode("bg") local langname = lang:getCanonicalName

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

local function glossary_link(anchor, text) text = text or anchor return "" .. text .. "" 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 params = { ["head"] = {list = true, disallow_holes = true}, [1] = {alias_of = "head"}, ["tr"] = {list = true, allow_holes = 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(frame:getParent.args, 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} else for i, head in ipairs(heads) do				if head == auto_linked_head then track("redundant-head") end if not head or head == "+" then heads[i] = auto_linked_head end end end end

local is_suffix = pagename:find("^%-") and poscat ~= "suffix forms" local orig_poscat = poscat poscat = pos_functions[poscat].overriding_poscat or poscat

local data = { lang = lang, -- FIXME: Is the following necessary? pos_category = (mw.title.getCurrentTitle.nsText == "Reconstruction" and "reconstructed " or "") .. (is_suffix and "suffixes" or poscat), orig_poscat = orig_poscat, is_suffix = is_suffix, categories = {}, heads = heads, user_specified_heads = user_specified_heads, no_redundant_head_cat = #user_specified_heads == 0, inflections = {}, pagename = pagename, id = args.id, force_cat_output = force_cat, }

if is_suffix then 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

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

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

return require("Module:headword").full_headword(data) end

-- Returns the lemma we should use in acceleration tags, which contains -- the stress mark for polysyllabic words. local function get_accel_lemma(data) accel_lemma = nil if #data.heads > 0 then accel_lemma = data.heads[1] else accel_lemma = data.pagename end return accel_lemma end

local function insert_infl(data, forms, label, accel) if forms and #forms > 0 then forms.label = label if accel then accel.lemma = get_accel_lemma(data) forms.accel = accel end table.insert(data.inflections, forms) end end

local function handle_infl(args, data, argpref, label, accel) insert_infl(data, args[argpref], label, accel) end

pos_functions["verbs"] = { params = { [2] = {},		["pf"] = {list = true}, ["impf"] = {list = true}, ["impers"] = {type = "boolean"}, },	func = function(args, data) if args[2] == "pf" then data.genders = {"pf"} elseif args[2] == "impf" then data.genders = {"impf"} elseif args[2] == "both" or args[2] == "biasp" then data.genders = {"biasp"} elseif args[2] then error("Unrecognized aspect '" .. args[2] .. "'") end

handle_infl(args, data, "pf", "perfective") handle_infl(args, data, "impf", "imperfective") if args.impers then table.insert(data.inflections, {label = "impersonal"}) data.gloss = "third-singular present indicative" else data.gloss = "first-singular present indicative" end end }

local function verify_genders(genders) for _, g in ipairs(genders) do		if g == "m" or g == "m-p" or g == "f" or g == "f-p" or g == "n" or g == "n-p" or g == "p" or			g == "mf" or g == "mf-p" or g == "mfbysense" or g == "mfbysense-p" then -- OK		else error("Unrecognized gender: '" .. g .. "'") end end end

local nouns = { params = { [2] = {alias_of = "g"}, ["g"] = {list = true}, ["m"] = {list = true}, ["f"] = {list = true}, ["adj"] = {list = true}, ["dim"] = {list = true}, ["aug"] = {list = true}, ["pej"] = {list = true}, ["indecl"] = {type = "boolean"}, },	func = function(args, data) verify_genders(args.g)		data.genders = args.g		if args.indecl then table.insert(data.inflections, {label = glossary_link("indeclinable")}) end handle_infl(args, data, "m", "masculine") handle_infl(args, data, "f", "feminine", {form = "f"}) handle_infl(args, data, "adj", "relational adjective", {form = "relational adjective"}) handle_infl(args, data, "dim", "diminutive", {form = "diminutive"}) handle_infl(args, data, "aug", "augmentative", {form = "augmentative"}) handle_infl(args, data, "pej", "pejorative") end, }

pos_functions["nouns"] = nouns pos_functions["proper nouns"] = nouns

-- Handle comparatives and superlatives for adjectives and adverbs, including user-specified comparatives and -- superlatives and default-requested comparatives/superlatives using '+'. Code is the same for adjectives and adverbs. local function handle_adj_adv_comp(args, data) local lemma = data.pagename local plpos = data.pos_category:gsub("^reconstructed ", "")

if args.comp[1] == "-" then table.remove(args.comp, 1) if #args.comp > 0 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 table.insert(data.inflections, {label = "not " .. glossary_link("comparable")}) table.insert(data.categories, langname .. " uncomparable " .. plpos) end elseif #args.comp > 0 then table.insert(data.categories, langname .. " comparable " .. plpos) end

-- If comp=+, use default comparative 'по́-...', and set a default superlative if unspecified. local saw_comp_plus = false local comps = {} for i, compval in ipairs(args.comp) do		if compval == "+" then saw_comp_plus = true for _, head in ipairs(data.heads) do table.insert(comps, "по́-" .. head) end else table.insert(comps, compval) end end if saw_comp_plus and #args.sup == 0 then args.sup = {"+"} end insert_infl(data, comps, "comparative", {form = "comparative"})

local sups = {} if args.sup[1] == "-" then table.insert(data.inflections, {label = "no superlative"}) else -- If sup=+ (possibly from comp=+), use default superlative 'на́й-...'. for i, supval in ipairs(args.sup) do			if supval == "+" then for _, head in ipairs(data.heads) do table.insert(sups, "на́й-" .. head) end else table.insert(sups, supval) end end end insert_infl(data, sups, "superlative", {form = "superlative"}) end

pos_functions["adverbs"] = { params = { [2] = {alias_of = "comp"}, ["comp"] = {list = true}, [3] = {alias_of = "sup"}, ["sup"] = {list = true}, },	func = function(args, data) handle_adj_adv_comp(args, data) end, }

local function make_adjective_pos_function(pos) local params = { ["indecl"] = {type = "boolean"}, ["dim"] = {list = true}, }	if pos == "adjectives" then params[2] = {alias_of = "comp"} params["comp"] = {list = true} params[3] = {alias_of = "sup"} params["sup"] = {list = true} params["adv"] = {list = true} params["absn"] = {list = true} end return { params = params, overriding_poscat = pos == "numerals" and "numerals" or nil, func = function(args, data) if args.indecl then table.insert(data.inflections, {label = glossary_link("indeclinable")}) end handle_adj_adv_comp(args, data) handle_infl(args, data, "dim", "diminutive") handle_infl(args, data, "adv", "adverb") handle_infl(args, data, "absn", "abstract noun", {form = "abstract noun", pos = "noun"}) end, } end

pos_functions["adjectives"] = make_adjective_pos_function("adjectives") pos_functions["determiners"] = make_adjective_pos_function("determiners") pos_functions["pronouns"] = make_adjective_pos_function("pronouns") pos_functions["numerals-adjective"] = make_adjective_pos_function("numerals")

pos_functions["participles"] = { params = { [2] = {required = true, list = true, default = "aor"}, },	func = function(args, data) table.insert(data.categories, "Bulgarian verb forms") for _, part in ipairs(args[2]) do			if part == "adv" then table.insert(data.categories, "Bulgarian adverbial participles") elseif part == "aor" then table.insert(data.categories, "Bulgarian past active aorist participles") elseif part == "impf" then table.insert(data.categories, "Bulgarian past active imperfect participles") elseif part == "pres" then table.insert(data.categories, "Bulgarian present active participles") elseif part == "pass" or part == "ppp" then table.insert(data.categories, "Bulgarian past passive participles") elseif part == "prespass" then table.insert(data.categories, "Bulgarian present passive participles") else error("Unrecognized participle type '" .. part .. "': Should be adv, aor, impf, pres, pass or prespass") end end end }

pos_functions["participle forms"] = { params = { ["g"] = {list = true}, },	func = function(args, data) verify_genders(args.g)		data.genders = args.g		table.insert(data.categories, "Bulgarian verb forms") end }

pos_functions["verbal nouns"] = { params = { -- Verbal nouns in Bulgarian are overwhelmingly formed with the suffixes -- "-не" or "-ние", which both have neuter gender. ["g"] = {list = true, default = "n"}, },	overriding_poscat = "nouns", func = function(args, data) verify_genders(args.g)		data.genders = args.g	end }

pos_functions["verbal noun forms"] = { params = { ["g"] = {list = true}, },	overriding_poscat = "noun forms", func = function(args, data) verify_genders(args.g)		data.genders = args.g	end }

return export

title: Module:bg-headword


text: Cattal

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

title: Cattal


title: User:Benwing2/test-bg


text:
Bankkunde

Noun

 * 1)  bank customer

title: Bankkunde


text: arcuarsi

title: arcuarsi


text:
Weardale

Etymology
From.

title: Weardale


text:
Strafverfolgung

Noun

 * 1) criminal prosecution

title: Strafverfolgung


text:
шырмауықгүл

Etymology
.

Noun

 * 1) morning glory,

title: шырмауықгүл


text:
稱孤

Verb

 * 1) to proclaim oneself king or emperor

title: 稱孤


text: 称孤

title: 称孤


text:
өрнекшөп

Etymology
.

title: өрнекшөп


text:
zipv

Etymology
From, from. Cognate with 🇨🇬.

Verb

 * 1) to receive

title: zipv


text:
Anzeigenkunde

Etymology
From.

Noun

 * 1)  advertising customer, advertiser

title: Anzeigenkunde


text:
Ministerium für Staatssicherheit

Noun

 * 1) ; Stasi

title: Ministerium für Staatssicherheit


text: MfS

title: MfS


text: Appendix:Greek verbs/Μ1

title: Appendix:Greek verbs/Μ1


text:
Reederei

Noun

 * 1) shipping company

title: Reederei


text: Appendix:Greek verbs/Μ2

title: Appendix:Greek verbs/Μ2


text:
сайсағыз

Noun

 * 1) hyssop, Hyssopus

title: сайсағыз


text: puerils

title: puerils


text:
njoic

Etymology
From. Cognate with 🇨🇬.

Noun

 * 1) porcupine

title: njoic


text:
strike the tent

Verb

 * 1) To pack up and leave.
 * 2)  To yield, give up, or surrender.
 * 1)  To yield, give up, or surrender.

title: strike the tent


text: Appendix:Greek verbs/Τ1

title: Appendix:Greek verbs/Τ1


text: Appendix:Greek verbs/Τ2

title: Appendix:Greek verbs/Τ2


text:
damv

Etymology
From. Cognate with 🇨🇬.

Noun

 * 1) body louse

title: damv


text:
Spaziergänger

Noun

 * 1) walker
 * 2)  A top official  ordained early retirement

title: Spaziergänger


text:
Hausierer

Noun

 * 1) door-to-door salesman

title: Hausierer


text:
Bankschalter

Noun

 * 1) bank counter

title: Bankschalter


text:
Ränkespiel

Noun

 * 1) intrigue

title: Ränkespiel


text:
viirikkö

Noun

 * 1)  division subdivision of a squadron

title: viirikkö


text:
Fahrkartenschalter

Noun

 * 1) ticket office, ticket counter

title: Fahrkartenschalter


text:
Sicherungsverwahrung

Noun

 * 1)  preventive detention

title: Sicherungsverwahrung


text:
Citations:idiolect

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * Kathleen is relentlessly animated and quick-witted, with thick tangerine hair, steely eyes, and an endearing personal idiolect that suggests both an autodidactic reading in philosophy and economics and the gusty crudity of the merchant marine.

title: Citations:idiolect


text:
Citations:autodidactic

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * Kathleen is relentlessly animated and quick-witted, with thick tangerine hair, steely eyes, and an endearing personal idiolect that suggests both an autodidactic reading in philosophy and economics and the gusty crudity of the merchant marine.

title: Citations:autodidactic


text:
Verwahrung

Noun

 * 1)  deposit
 * 2)  detention, custody
 * 1)  detention, custody

title: Verwahrung


text: Witton-le-Wear

title: Witton-le-Wear


text:
Citations:retiring

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * Arthur is by turns retiring and pointed, with a soft, cublike appearance and a tight, parsimonious grin.

title: Citations:retiring


text:
Citations:cublike

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * Arthur is by turns retiring and pointed, with a soft, cublike appearance and a tight, parsimonious grin.

title: Citations:cublike


text:
Citations:parsimonious

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * Arthur is by turns retiring and pointed, with a soft, cublike appearance and a tight, parsimonious grin.

title: Citations:parsimonious


text:
Übertötung

Noun

 * 1) overkill

title: Übertötung


text:
Citations:artless

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * They admired in each other a brusque self-assurance and artless candor that others often perceived as arrogant.

title: Citations:artless


text:
Citations:self-assurance

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * They admired in each other a brusque self-assurance and artless candor that others often perceived as arrogant.

title: Citations:self-assurance


text:
Overkill

Etymology
.

Noun

 * 1) overkill

title: Overkill


text: anti-proverb

title: anti-proverb


text: anti-proverbs

title: anti-proverbs


text:
Phantombild

Noun

 * 1)  identikit

title: Phantombild


text:
übertöten

Verb

 * 1) to overkill

title: übertöten


text:
Fluchtgefahr

Noun

 * 1)  flight risk

title: Fluchtgefahr


text:
تیهو

Etymology
From. Compare 🇨🇬 borrowed from it.

Noun

 * 1) grey partridge a game bird in the pheasant family,

title: تیهو


text:
durchstehen

Etymology
. Compare 🇨🇬.

Verb

 * 1)  to endure

title: durchstehen


text:
rhinoendoscopy

Noun

 * 1) endoscopy of the nose and nasal cavities

title: rhinoendoscopy


text:
ирекгүл

Etymology
.

title: ирекгүл


text:
Schafehüten

Noun

 * 1)  sheepherding, sheep tending

title: Schafehüten


text:
Talk:take up a collection

take up
Is any meaning of take up used here? --Backinstadiums (talk) 16:25, 14 March 2020 (UTC)

title: Talk:take up a collection


text: rubefied

title: rubefied


text:
Citations:buzzword

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * There is great confusion and debate about what a blockchain even is—some people argue it’s become a meaningless buzzword—but the standard definition describes a shared, decentralized, cryptographically secure, immutable digital ledger.

title: Citations:buzzword


text:
Citations:immutable

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * There is great confusion and debate about what a blockchain even is—some people argue it’s become a meaningless buzzword—but the standard definition describes a shared, decentralized, cryptographically secure, immutable digital ledger.

title: Citations:immutable


text:
rufloxacin

Etymology
From.

Noun

 * 1)  The antibiotic 7-fluoro-6-(4-methylpiperazin-1-yl)-10-oxo-4-thia-1-azatricyclo[7.3.1.05,13]trideca-5(13),6,8,11-tetraene-11-carboxylic acid.

title: rufloxacin


text:
Citations:cryptographically

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * There is great confusion and debate about what a blockchain even is—some people argue it’s become a meaningless buzzword—but the standard definition describes a shared, decentralized, cryptographically secure, immutable digital ledger.

title: Citations:cryptographically


text:
ympärivuorokautisesti

Adverb

 * 1) around the clock

title: ympärivuorokautisesti


text:
Citations:blockchain

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * There is great confusion and debate about what a blockchain even is—some people argue it’s become a meaningless buzzword—but the standard definition describes a shared, decentralized, cryptographically secure, immutable digital ledger.

 * 2021, Sevin Rey-Sahin, « Il a suffi d’un tweet d’Elon Musk pour tout faire capoter » : journal d’une apprentie bitcoineuse, (4 June 2021);
 * De décembre 2020 à mai 2021, notre journaliste s’est muée en tradeuse de cryptomonnaies, enchaînée à la blockchain.

title: Citations:blockchain


text:
Citations:meaningless

 * 2018, Gideon Lewis-Kraus, Inside the Crypto World's Biggest Scandal, Wired (19 June 2018);
 * There is great confusion and debate about what a blockchain even is—some people argue it’s become a meaningless buzzword—but the standard definition describes a shared, decentralized, cryptographically secure, immutable digital ledger.

title: Citations:meaningless


text:
User:Aodhmac/vector.css

 * root{font-family:Times New Roman, Serif;}

title: User:Aodhmac/vector.css


text:
unterbuttern

Verb

 * 1)  to walk over

title: unterbuttern


text: Wolsingham

title: Wolsingham


text:
Hütehund

Etymology
From.

Noun

 * 1) herding dog, shepherd dog, stock dog

title: Hütehund


text:
Talk:sift

intransitive verb: pass through
intransitive ver: to pass or fall through or as if through a sieve Microsoft® Encarta® 2009 --Backinstadiums (talk) 16:38, 14 March 2020 (UTC)

siftings (plural noun): things separated out
siftings (plural noun): parts separated out using a sieve or by a process of elimination Microsoft® Encarta® 2009 --Backinstadiums (talk) 16:40, 14 March 2020 (UTC)

title: Talk:sift


text:
umreißen

Verb

 * 1) to pull down, knock down, demolish

Verb

 * 1) to outline

title: umreißen


text:
auskehren

Verb

 * 1) to sweep out
 * 2) to pay out

title: auskehren


text:
verketzern

Verb

 * 1) to denounce

title: verketzern


text: Frosterley

title: Frosterley


text:
vergären

Verb

 * 1)  to ferment

title: vergären