ဝိၵ်ႇသျိၼ်ႇၼရီႇ shnwiktionary https://shn.wiktionary.org/wiki/%E1%80%9D%E1%80%AD%E1%81%B5%E1%80%BA%E1%82%87%E1%80%9E%E1%80%BB%E1%80%AD%E1%81%BC%E1%80%BA%E1%82%87%E1%81%BC%E1%80%9B%E1%80%AE%E1%82%87:%E1%81%BC%E1%82%83%E1%82%88%E1%82%81%E1%80%B0%E1%80%9D%E1%80%BA%E1%82%81%E1%82%85%E1%81%B5%E1%80%BA%E1%82%88 MediaWiki 1.47.0-wmf.20 case-sensitive သိုဝ်ႇၶၢဝ်ႇ ၶိုၵ်ႉတွၼ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဢုပ်ႇၵုမ် ၽူႈၸႂ်ႉတိုဝ်း ဝိၵ်ႇသျိၼ်ႇၼရီႇ လွင်ႈဢုပ်ႇဢူဝ်း ဝိၵ်ႇသျိၼ်ႇၼရီႇ ၾၢႆႇ ဢုပ်ႇၵုမ် ၾၢႆႇ မီႇတီႇယႃႇဝီႇၶီႇ ဢုပ်ႇၵုမ် မီႇတီႇယႃႇဝီႇၶီႇ ထႅမ်းပလဵတ်ႉ ဢုပ်ႇၵုမ် ထႅမ်းပလဵတ်ႉ လွင်ႈၸွႆႈထႅမ် ဢုပ်ႇၵုမ် လွင်ႈၸွႆႈထႅမ် ပိူင်ထၢၼ်ႈ ဢုပ်ႇၵုမ် ပိူင်ထၢၼ်ႈ ၵိူၼ်ႇတူ ဢုပ်ႇၵုမ် ၵိူၼ်ႇတူ တွၼ်ႈၸပ်းႁၢင် ဢုပ်ႇၵုမ် တွၼ်ႈၸပ်းႁၢင် တူၼ်းၸၢပ်ႈလႅပ်ႈ ဢုပ်ႇၵုမ် တူၼ်းၸၢပ်ႈလႅပ်ႈ ၶိုၼ်းၵေႃႇသၢင်ႈ ဢုပ်ႇၵုမ် ၶိုၼ်းၵေႃႇသၢင်ႈ TimedText TimedText talk မေႃႇၵျူး ဢုပ်ႇၵုမ် မေႃႇၵျူး Event Event talk မေႃႇၵျူး:headword/data 828 20462 292871 292227 2026-09-19T03:59:26Z Saimawnkham 9 292871 Scribunto text/plain local headword_page_module = "Module:headword/page" local list_to_set = require("Module:table").listToSet local data = {} ------ 1. Lists which are converted into sets. ------ -- Large pages where we diable label tracking, red link checking and similar. data.large_pages = list_to_set { -- pages that consistently hit timeouts "a", -- pages that sometimes hit timeouts "baba", "de", "e", "i", "o", "u", "и", "山", "子", "月", "一", "人", } -- Zero-plurals (i.e. invariable plurals). local irregular_plurals = list_to_set({ "cmavo", "cmene", "fu'ivla", "gismu", "Han tu", "hanja", "hanzi", "jyutping", "kana", "kanji", "lujvo", "ပပ်ႉပွင်ႈၵႂၢမ်း", "pinyin", "rafsi", "ပိူင်ၽၢင်ႁိၵ်ႈ", "ပိူင်ၽၢင်ႁိၵ်ႈသုၼ်ႇလဵဝ်", "ပိူင်ၽၢင်သၢင်ႈ", "ႁိၵ်ႈ", "ႁိၵ်ႈတၢင်", "ႁိၵ်ႈသုၼ်ႇလဵဝ်", "သၢင်ႈ", "ၵမ်ႉသၢင်ႈ", "ၵမ်ႉႁိၵ်ႈ", "ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ", "ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ", "ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉသၢင်ႈ", "ၶေႃႈသုင်သုတ်း ၵမ်ႉသၢင်ႈ", "တိုၼ်ႇ", "ၵပ်း", "ႁဵင်း", "တူဝ်ၼပ်ႉ", "ၶေႃႈၵၢမ်းလင်", "တူဝ်မႄႈလိၵ်ႈ", "ပွင်ႈၵႂၢမ်း", "တူဝ်ၼမ်းၼႃႈ", }, function(_, item) return item end) -- Irregular non-zero plurals AND any regular plurals where the singular ends in "s", -- because the module assumes that inputs ending in "s" are plurals. The singular and -- plural both need to be added, as the module will generate a default plural if -- the input doesn't match a key in this table. for sg, pl in next, { mora = "morae" } do irregular_plurals[sg], irregular_plurals[pl] = pl, pl end data.irregular_plurals = irregular_plurals data.lemmas = list_to_set{ "abbreviations", "acronyms", "ၵမ်ႉႁိၵ်ႈ", "adnominals", "adpositions", "ၵမ်ႉသၢင်ႈ", "affixes", "ambipositions", "articles", "circumfixes", "circumpositions", "classifiers", "cmavo", "cmavo clusters", "cmene", "combining forms", "ၵပ်း", "counters", "determiners", "diacritical marks", "digraphs", "equative adjectives", "fu'ivla", "gismu", "Han characters", "Han tu", "hanja", "hanzi", "ideophones", "idioms", "infixes", "initialisms", "iteration marks", "interfixes", "တိုၼ်ႇ", "kana", "kanji", "letters", "ligatures", "logograms", "lujvo", "morae", "morphemes", "non-constituents", "ႁိၵ်ႈ", "numbers", "numeral symbols", "numerals", "particles", "ပွင်ႈၵႂၢမ်း", "postpositions", "ပွင်ႈၵႂၢမ်းႁဵင်း", "predicatives", "တူဝ်ၼမ်းၼႃႈ", "ပွင်ႈၵႂၢမ်းႁဵင်း", "ႁဵင်း", "preverbs", "pronominal adverbs", "ႁိၵ်ႈတၢင်", "ႁိၵ်ႈသုၼ်ႇလဵဝ်", "proverbs", "punctuation marks", "relatives", "roots", "stems", "suffixes", "syllables", "symbols", "သၢင်ႈ", } data.nonlemmas = list_to_set{ "active participle forms", "active participles", "adjectival participles", "adjective case forms", "ပိူင်ၽၢင်ၵမ်ႉႁိၵ်ႈ", "adjective feminine forms", "adjective plural forms", "ပိူင်ၽၢင်ၵမ်ႉသၢင်ႈ", "adverbial participles", "agent participles", "article forms", "circumfix forms", "combined forms", "comparative adjective forms", "ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ", "comparative adverb forms", "comparative adverbs", "conjunction forms", "contractions", "converbs", "determiner comparative forms", "determiner forms", "determiner superlative forms", "diminutive nouns", "elative adjectives", "equative adjective forms", "equative adjectives", "future participles", "gerunds", "infinitive forms", "infinitives", "interjection forms", "jyutping", "တူဝ်လိၵ်ႈၽိတ်း", "negative participles", "nominal participles", "noun case forms", "noun construct forms", "noun dual forms", "ပိူင်ၽၢင်ႁိၵ်ႈ", "noun paucal forms", "noun plural forms", "noun possessive forms", "noun singulative forms", "numeral forms", "participles", "participle forms", "particle forms", "passive participles", "past active participles", "past adverbial participles", "past participles", "past participle forms", "past passive participles", "perfect active participles", "perfect participles", "perfect passive participles", "pinyin", "plurals", "postposition forms", "prefix forms", "preposition contractions", "preposition forms", "prepositional pronouns", "present active participles", "present adverbial participles", "present participles", "present passive participles", "preverb forms", "pronoun forms", "pronoun possessive forms", "proper noun forms", "proper noun plural forms", "rafsi", "romanizations", "root forms", "singulatives", "suffix forms", "superlative adjective forms", "superlative adjectives", "superlative adverb forms", "superlative adverbs", "verb forms", "verb form", "ပိူင်ၽၢင်သၢင်ႈ", "verbal nouns", } -- These langauges will not have links to separate parts of the headword. data.no_multiword_links = list_to_set{ "zh", } -- These languages will not have "LANG multiword terms" categories added. data.no_multiword_cat = list_to_set{ -------- Languages without spaces between words (sometimes spaces between phrases) -------- "blt", -- တႆးလမ် "ja", -- ၵျႃႇပၢၼ်ႇ "khb", -- လိုဝ်ႉ "km", -- ၶမဵၼ် "lo", -- လၢဝ်း "mnw", -- မွၼ်း "my", -- မၢၼ်ႈ "nan", -- မိၼ်းၼၼ် (some words in Latin script; hyphens between syllables) "nan-hbl", -- ႁွၵ်ႉၵဵၼ်း (some words in Latin script; hyphens between syllables) "nod", -- လၢၼ်ႉၼႃး "ojp", -- Old Japanese "shn", -- တႆး "sou", -- ထႆးပွတ်းၸၢၼ်း "tdd", -- တႆးၼိူဝ် "th", -- ထႆး "tts", -- ဢီႇသၢၼ် "twh", -- Tai Dón "txg", -- Tangut "zh", -- ၶႄႇ (all varieties with Chinese characters) "zkt", -- Khitan -------- Languages with spaces between syllables -------- "ahk", -- Akha "aou", -- A'ou "atb", -- Zaiwa "byk", -- Biao "cdy", -- Chadong --"duu", -- Drung; not sure --"hmx-pro", -- Proto-Hmong-Mien --"hnj", -- Green Hmong; not sure "huq", -- Tsat "ium", -- Iu Mien --"lis", -- Lisu; not sure "mtq", -- Muong --"mww", -- White Hmong; not sure "onb", -- Lingao --"sit-gkh", -- Gokhy; not sure --"swi", -- Sui; not sure "tbq-lol-pro", -- Proto-Loloish "tdh", -- Thulung "ukk", -- Muak Sa-aak "vi", -- Vietnamese "yig", -- Wusa Nasu "zng", -- Mang -------- Languages with ~ with surrounding spaces used to separate variants -------- "mkh-ban-pro", -- Proto-Bahnaric "sit-pro", -- Proto-Sino-Tibetan; listed above -------- Other weirdnesses -------- "mul", -- Translingual; gestures, Morse code, etc. "aot", -- Atong (India); bullet is a letter -------- All sign languages -------- "ads", "aed", "aen", "afg", "ase", "asf", "asp", "asq", "asw", "bfi", "bfk", "bog", "bqn", "bqy", "bvl", "bzs", "cds", "csc", "csd", "cse", "csf", "csg", "csl", "csn", "csq", "csr", "doq", "dse", "dsl", "ecs", "esl", "esn", "eso", "eth", "fcs", "fse", "fsl", "fss", "gds", "gse", "gsg", "gsm", "gss", "gus", "hab", "haf", "hds", "hks", "hos", "hps", "hsh", "hsl", "icl", "iks", "ils", "inl", "ins", "ise", "isg", "isr", "jcs", "jhs", "jls", "jos", "jsl", "jus", "kgi", "kvk", "lbs", "lls", "lsl", "lso", "lsp", "lst", "lsy", "lws", "mdl", "mfs", "mre", "msd", "msr", "mzc", "mzg", "mzy", "nbs", "ncs", "nsi", "nsl", "nsp", "nsr", "nzs", "okl", "pgz", "pks", "prl", "prz", "psc", "psd", "psg", "psl", "pso", "psp", "psr", "pys", "rms", "rsl", "rsm", "sdl", "sfb", "sfs", "sgg", "sgx", "slf", "sls", "sqk", "sqs", "ssp", "ssr", "svk", "swl", "syy", "tse", "tsm", "tsq", "tss", "tsy", "tza", "ugn", "ugy", "ukl", "uks", "vgt", "vsi", "vsl", "vsv", "xki", "xml", "xms", "ygs", "ysl", "zib", "zsl", } -- In these languages, the hyphen is not considered a word separator for the "multiword terms" category. data.hyphen_not_multiword_sep = list_to_set{ "akk", -- Akkadian; hyphens between syllables "akl", -- Aklanon; hyphens for mid-word glottal stops "ber-pro", -- Proto-Berber; morphemes separated by hyphens "ceb", -- Cebuano; hyphens for mid-word glottal stops "cnk", -- Khumi Chin; hyphens used in single words "cpi", -- Chinese Pidgin English; Chinese-derived words with hyphens between syllables "de", -- too many false positives "esx-esk-pro", -- hyphen used to separate morphemes "fi", -- Finnish; hyphen used to separate components in compound words if the final and initial vowels match, respectively "hil", -- Hiligaynon; hyphens for mid-word glottal stops "hnn", -- Hanunoo; too many false positives "ilo", -- Ilocano; hyphens for mid-word glottal stops "kne", -- Kankanaey; hyphens for mid-word glottal stops "lcp", -- Western Lawa; dash as syllable joiner "lwl", -- Eastern Lawa; dash as syllable joiner "mfa", -- Pattani Malay in Thai script; dash as syllable joiner "mkh-vie-pro", -- Proto-Vietic; morphemes separated by hyphens "msb", -- Masbatenyo; too many false positives "tl", -- Tagalog; too many false positives "war", -- Waray-Waray; too many false positives "yo", -- Yoruba; hyphens used to show lengthened nasal vowels } -- These languages will not have "LANG masculine nouns" and similar categories added. data.no_gender_cat = list_to_set{ -- Languages without gender but which use the gender field for other purposes "ja", "th", } data.notranslit = list_to_set{ "ams", "az", "bbc", "bug", "cdo", "cia", "cjm", "cjy", "cmn", "cnp", "cpi", "cpx", "csp", "czh", "czo", "gan", "hak", "hnm", "hsn", "ja", "kzg", "lad", "ltc", "luh", "lzh", "mnp", "ms", "mul", "mvi", "nan", "nan-dat", "nan-hbl", "nan-hlh", "nan-lnx", "nan-tws", "nan-zhe", "nan-zsh", "och", "oj", "okn", "ryn", "rys", "ryu", "sh", "sjc", "tgt", "th", "tkn", "tly", "txg", "und", "vi", "wuu", "xug", "yoi", "yox", "yue", "za", "zh", "zhx-sic", "zhx-tai", } -- Script codes for which a script-tagged display title will be added. data.toBeTagged = list_to_set{ "Ahom", "Arab", "fa-Arab", "glk-Arab", "kk-Arab", "ks-Arab", "ku-Arab", "mzn-Arab", "ms-Arab", "ota-Arab", "pa-Arab", "ps-Arab", "sd-Arab", "tt-Arab", "ug-Arab", "ur-Arab", "Armi", "Armn", "Avst", "Bali", "Bamu", "Batk", "Beng", "as-Beng", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm", "Cans", "Cari", "Cham", "Cher", "Copt", "Cprt", "Cyrl", "Cyrs", "Deva", "Dsrt", "Egyd", "Egyp", "Ethi", "Geok", "Geor", "Glag", "Goth", "Grek", "Polyt", "polytonic", "Gujr", "Guru", "Hang", "Hani", "Hano", "Hebr", "Hira", "Hluw", "Ital", "Java", "Kali", "Kana", "Khar", "Khmr", "Knda", "Kthi", "Lana", "Laoo", "Latn", "Latf", "Latg", "Latnx", "Latinx", "pjt-Latn", "Lepc", "Limb", "Linb", "Lisu", "Lyci", "Lydi", "Mand", "Mani", "Marc", "Merc", "Mero", "Mlym", "Mong", "mnc-Mong", "sjo-Mong", "xwo-Mong", "Mtei", "Mymr", "Narb", "Nkoo", "Nshu", "Ogam", "Olck", "Orkh", "Orya", "Osma", "Ougr", "Palm", "Phag", "Phli", "Phlv", "Phnx", "Plrd", "Prti", "Rjng", "Runr", "Samr", "Sarb", "Saur", "Sgnw", "Shaw", "Shrd", "Sinh", "Sora", "Sund", "Sylo", "Syrc", "Tagb", "Tale", "Talu", "Taml", "Tang", "Tavt", "Telu", "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Ugar", "Vaii", "Xpeo", "Xsux", "Yiii", "Zmth", "Zsym", "Ipach", "Music", "Rumin", } -- Parts of speech which will not be categorised in categories like "English terms spelled with É" if -- the term is the character in question (e.g. the letter entry for English [[é]]). This contrasts with -- entries like the French adjective [[m̂]], which is a one-letter word spelled with the letter. data.pos_not_spelled_with_self = list_to_set{ "diacritical marks", "Han characters", "Han tu", "hanja", "hanzi", "iteration marks", "kana", "kanji", "letters", "ligatures", "logograms", "morae", "numeral symbols", "numerals", "punctuation marks", "syllables", "symbols", } ------ 2. Lists not converted into sets. ------ -- Recognized aliases for parts of speech (param 2=). Key is the short form and value is the canonical singular (not -- pluralized) form. It is singular so that the same table can be used in [[Module:form of]] for the p=/POS= param -- and [[Module:links]] for the pos= param. data.pos_aliases = { a = "ၵမ်ႉႁိၵ်ႈ", adj = "ၵမ်ႉႁိၵ်ႈ", adv = "ၵမ်ႉသၢင်ႈ", art = "article", aug = "augmentative", det = "determiner", dim = "diminutive", compadj = "comparative adjective", compadv = "comparative adverb", conj = "ၵပ်း", contr = "contraction", conv = "converb", int = "တိုၼ်ႇ", interj = "တိုၼ်ႇ", intj = "တိုၼ်ႇ", n = "ႁိၵ်ႈ", -- the next two support Algonquian languages; see also vii/vai/vti/vta below na = "animate noun", ni = "inanimate noun", num = "numeral", part = "participle", pcl = "particle", phr = "ပွင်ႈၵႂၢမ်း", pn = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", postp = "postposition", pref = "prefix", prep = "ႁဵင်း", prepphr = "ပွင်ႈၵႂၢမ်းႁဵင်း", pron = "ႁိၵ်ႈတၢင်", prop = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", proper = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", propn = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", rom = "romanization", romanisation = "romanization", romanisations = "romanization", suf = "suffix", supadj = "superlative adjective", supadv = "superlative adverb", sym = "symbol", v = "သၢင်ႈ", vb = "သၢင်ႈ", vi = "intransitive verb", vt = "transitive verb", -- the next four support Algonquian languages vii = "inanimate intransitive verb", vai = "animate intransitive verb", vti = "transitive inanimate verb", vta = "transitive animate verb", ["verb form"] = "ပိူင်ၽၢင်သၢင်ႈ", ["verb forms"] = "ပိူင်ၽၢင်သၢင်ႈ", ["noun form"] = "ပိူင်ၽၢင်ႁိၵ်ႈ", ["noun forms"] = "ပိူင်ၽၢင်ႁိၵ်ႈ", ["adjective form"] = "ပိူင်ၽၢင်ၵမ်ႉႁိၵ်ႈ", ["adjective forms"] = "ပိူင်ၽၢင်ၵမ်ႉႁိၵ်ႈ", ["adverb form"] = "ပိူင်ၽၢင်ၵမ်ႉသၢင်ႈ", ["adverb forms"] = "ပိူင်ၽၢင်ၵမ်ႉသၢင်ႈ", } -- Parts of speech for which categories like "German masculine nouns" or "Russian imperfective verbs" -- will be generated if the headword is of the appropriate gender/number. data.pos_for_gender_number_cat = { ["nouns"] = "ႁိၵ်ႈ", ["proper nouns"] = "ႁိၵ်ႈ", ["suffixes"] = "suffixes", -- We include verbs because impf and pf are valid "genders". ["verbs"] = "သၢင်ႈ", } -- Lower limit for a "long" word in a particular language. -- Used to categorize terms into e.g. [[:Category:Long English words]] automatically. -- Languages with no mapping here do not get categorized. data.long_word_thresholds = { ["af"] = 20, ["bg"] = 20, ["cy"] = 25, ["de"] = 20, ["en"] = 25, ["es"] = 20, ["fr"] = 20, ["ka"] = 20, ["sv"] = 20, ["tl"] = 25, } ------ 3. Page-wide processing (so that it only needs to be done once per page). ------ data.page = require(headword_page_module).process_page() -- Fuckme, random references to data.pagename and data.encoded_pagename are scattered throughout the codebase. FIXME! data.pagename = data.page.pagename data.encoded_pagename = data.page.encoded_pagename return data if52go7hsbexf42qlaa4rhcoqknpnzm မေႃႇၵျူး:headword 828 20546 292874 255758 2026-09-19T04:24:02Z Saimawnkham 9 292874 Scribunto text/plain local export = {} -- Named constants for all modules used, to make it easier to swap out sandbox versions. local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local gender_and_number_module = "Module:gender and number" local headword_data_module = "Module:headword/data" local headword_page_module = "Module:headword/page" local links_module = "Module:links" local load_module = "Module:load" local pages_module = "Module:pages" local palindromes_module = "Module:palindromes" local pron_qualifier_module = "Module:pron qualifier" local scripts_module = "Module:scripts" local scripts_data_module = "Module:scripts/data" local script_utilities_module = "Module:script utilities" local script_utilities_data_module = "Module:script utilities/data" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local concat = table.concat local dump = mw.dumpObject local insert = table.insert local ipairs = ipairs local max = math.max local new_title = mw.title.new local pairs = pairs local require = require local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local type = type local ufind = mw.ustring.find local ugmatch = mw.ustring.gmatch local ugsub = mw.ustring.gsub local umatch = mw.ustring.match -- Loaders for functions in other modules local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function encode_entities(...) encode_entities = require(string_utilities_module).encode_entities return encode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_genders(...) format_genders = require(gender_and_number_module).format_genders return format_genders(...) end local function format_pron_qualifiers(...) format_pron_qualifiers = require(pron_qualifier_module).format_qualifiers return format_pron_qualifiers(...) end local function full_link(...) full_link = require(links_module).full_link return full_link(...) end local function get_current_L2(...) get_current_L2 = require(pages_module).get_current_L2 return get_current_L2(...) end local function get_link_page(...) get_link_page = require(links_module).get_link_page return get_link_page(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function is_palindrome(...) is_palindrome = require(palindromes_module).is_palindrome return is_palindrome(...) end local function language_link(...) language_link = require(links_module).language_link return language_link(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_page(...) process_page = require(headword_page_module).process_page return process_page(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end local m_data local function get_data() m_data = load_data(headword_data_module) return m_data end local script_data local function get_script_data() script_data = load_data(scripts_data_module) return script_data end local script_utilities_data local function get_script_utilities_data() script_utilities_data = load_data(script_utilities_data_module) return script_utilities_data end local test_force_categories = false local function track(track_id, lang) local tracking_page = "headword/" .. track_id if lang and lang:hasType("etymology-only") then debug_track{tracking_page, tracking_page .. "/" .. lang:getCode(), tracking_page .. "/" .. lang:getFullCode()} elseif lang then debug_track{tracking_page, tracking_page .. "/" .. lang:getCode()} else debug_track(tracking_page) end return true end local function text_in_script(text, script_code) local sc = get_script(script_code) if not sc then error("Internal error: Bad script code " .. script_code) end local characters = sc.characters local out if characters then text = ugsub(text, "%W", "") out = ufind(text, "[" .. characters .. "]") end if out then return true else return false end end local spacingPunctuation = "[%s%p]+" local wordPunc = "-#%%&@־׳״'.·*’᠊" local notWordPunc = "[^" .. wordPunc .. "]+" local function format_term_with_qualifiers_and_refs(lang, part, formatted, j) local function part_non_empty(field) local list = part[field] if not list then return nil end if type(list) ~= "table" then error(("Internal error: Wrong type for `part.%s`=%s, should be \"table\""):format(field, dump(list))) end return list[1] end if part_non_empty("q") or part_non_empty("qq") or part_non_empty("l") or part_non_empty("ll") or part_non_empty("refs") then formatted = format_pron_qualifiers { lang = lang, text = formatted, q = part.q, qq = part.qq, l = part.l, ll = part.ll, refs = part.refs, } end local separator = part.separator or j > 1 and " <i>or</i> " if separator then formatted = separator .. formatted end return formatted end function export.head_is_multiword(head) for possibleWordBreak in ugmatch(head, spacingPunctuation) do if umatch(possibleWordBreak, notWordPunc) then return true end end return false end do local function workaround_to_exclude_chars(s) return (ugsub(s, notWordPunc, "\2%1\1")) end function export.add_multiword_links(head, default) head = "\1" .. ugsub(head, spacingPunctuation, workaround_to_exclude_chars) .. "\2" if default then head = head :gsub("(\1[^\2]*)\\([:#][^\2]*\2)", "%1\\\\%2") :gsub("(\1[^\2]*)([:#][^\2]*\2)", "%1\\%2") end head = encode_entities(head, "[]", true, true) return (head :gsub("\1\2", "") :gsub("[\1\2]", {["\1"] = "[[", ["\2"] = "]]"})) end end local function non_categorizable(full_raw_pagename) return full_raw_pagename:find("^Appendix:Gestures/") or (full_raw_pagename:find("^Unsupported titles/") and not full_raw_pagename:find("`")) end local function tag_text_and_add_quals_and_refs(data, head, formatted, j) formatted = tag_text(formatted, data.lang, head.sc, "head", nil, j == 1 and data.id or nil) return format_term_with_qualifiers_and_refs(data.lang, head, formatted, j) end local function format_headword(data) local has_translits = false local has_manual_translits = false local head_parts = {} local unique_head_parts = {} local has_multiple_heads = not not data.heads[2] for j, head in ipairs(data.heads) do if head.tr or head.ts then has_translits = true end if head.tr and head.tr_manual or head.ts then has_manual_translits = true end local formatted if head.term:find("[[", nil, true) and head.sc:getCode() ~= "Image" then formatted = language_link{term = head.term, lang = data.lang} else formatted = data.lang:makeDisplayText(head.term, head.sc, true) end local head_part = tag_text_and_add_quals_and_refs(data, head, formatted, j) insert(head_parts, head_part) if has_multiple_heads then local unique_head_part if j == 1 then unique_head_part = head_part else unique_head_part = tag_text_and_add_quals_and_refs(data, head, formatted, 1) end unique_head_parts[unique_head_part] = true end end local set_size = 0 if has_multiple_heads then for _ in pairs(unique_head_parts) do set_size = set_size + 1 end end if set_size == 1 then head_parts = head_parts[1] else head_parts = concat(head_parts) end if has_manual_translits then track("manual-tr", data.lang) end local translits_formatted if has_translits then local translit_parts = {} for _, head in ipairs(data.heads) do if head.tr or head.ts then local this_parts = {} if head.tr then insert(this_parts, tag_translit(head.tr, data.lang:getCode(), "head", nil, head.tr_manual)) if head.ts then insert(this_parts, " ") end end if head.ts then insert(this_parts, "/" .. tag_transcription(head.ts, data.lang:getCode(), "head") .. "/") end insert(translit_parts, concat(this_parts)) end end translits_formatted = " (" .. concat(translit_parts, " <i>or</i> ") .. ")" local langname = data.lang:getCanonicalName() local transliteration_page = new_title(langname .. " transliteration", "Wiktionary") local saw_translit_page = false if transliteration_page and transliteration_page:getContent() then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted saw_translit_page = true end if not saw_translit_page and data.lang:hasType("etymology-only") then langname = data.lang:getFullName() transliteration_page = new_title(langname .. " transliteration", "Wiktionary") if transliteration_page and transliteration_page:getContent() then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted end end else translits_formatted = "" end local lemma_gloss if data.gloss then lemma_gloss = ' <span class="ib-content qualifier-content">' .. data.gloss .. '</span>' else lemma_gloss = "" end return head_parts .. translits_formatted .. lemma_gloss end local function format_headword_genders(data) local retval = "" if data.genders and data.genders[1] then if data.gloss then retval = "," end local pos_for_cat if not data.nogendercat then local no_gender_cat = (m_data or get_data()).no_gender_cat if not (no_gender_cat[data.lang:getCode()] or no_gender_cat[data.lang:getFullCode()]) then pos_for_cat = (m_data or get_data()).pos_for_gender_number_cat[data.pos_category:gsub("^reconstructed ", "")] end end local text, cats = format_genders(data.genders, data.lang, pos_for_cat) if cats then extend(data.categories, cats) end retval = retval .. "&nbsp;" .. text end return retval end local format_inflections local function format_inflection_parts(data, parts) for j, part in ipairs(parts) do if type(part) ~= "table" then part = {term = part} end local partaccel = part.accel local face = part.face or "bold" if face ~= "bold" and face ~= "plain" and face ~= "hypothetical" then error("The face `" .. face .. "` " .. ( (script_utilities_data or get_script_utilities_data()).faces[face] and "should not be used for non-headword terms on the headword line." or "is invalid." )) end local nolinkinfl = part.face == "hypothetical" or (part.nolink and track("nolink") or part.nolinkinfl) or ( data.nolink and track("nolink") or data.nolinkinfl) local formatted if part.label then formatted = "<i>" .. part.label .. "</i>" else local tr = part.tr or not (parts.enable_auto_translit or data.inflections.enable_auto_translit) and "-" or nil if part.translit then error("Internal error: Use field `tr` not `translit` for specifying an inflection part translit") end if part.transcription then error("Internal error: Use field `ts` not `transcription` for specifying an inflection part transcription") end local postprocess_annotations if part.inflections then postprocess_annotations = function(infldata) insert(infldata.annotations, format_inflections(data, part.inflections)) end end formatted = full_link( { term = not nolinkinfl and part.term or nil, alt = part.alt or (nolinkinfl and part.term or nil), lang = part.lang or data.lang, sc = part.sc or parts.sc or nil, gloss = part.gloss, pos = part.pos, lit = part.lit, id = part.id, genders = part.genders, tr = tr, ts = part.ts, accel = partaccel or parts.accel, postprocess_annotations = postprocess_annotations, }, face ) end parts[j] = format_term_with_qualifiers_and_refs(part.lang or data.lang, part, formatted, j) end local parts_output if parts[1] then parts_output = (parts.label and " " or "") .. concat(parts) elseif parts.request then parts_output = " <small>[please provide]</small>" insert(data.categories, "Requests for inflections in " .. data.lang:getFullName() .. " entries") else parts_output = "" end local parts_label = parts.label and ("<i>" .. parts.label .. "</i>") or "" return format_term_with_qualifiers_and_refs(data.lang, parts, parts_label .. parts_output, 1) end format_inflections = function(data, inflections) if inflections and inflections[1] then for key, infl in ipairs(inflections) do inflections[key] = format_inflection_parts(data, infl) end return concat(inflections, ", ") else return "" end end local function format_top_level_inflections(data) local result = format_inflections(data, data.inflections) if result ~= "" then return " (" .. result .. ")" else return result end end function export.pluralize_pos(pos) return (m_data or get_data()).irregular_plurals[pos] or pos:sub(-1) == "s" and pos or pluralize(pos) end function export.pos_lemma_or_nonlemma(plpos, best_guess) local m_headword_data = m_data or get_data() local isLemma = m_headword_data.lemmas if isLemma[plpos] then return "ၶေႃႈတင်ႈ" end local plpos_no_recon = plpos:gsub("^reconstructed ", "") if isLemma[plpos_no_recon] then return "ၶေႃႈတင်ႈ" end local isNonLemma = m_headword_data.nonlemmas if isNonLemma[plpos] or isNonLemma[plpos_no_recon] then return "ဢမ်ႇၸႂ်ႈပိူင်ၶေႃႈတင်ႈ" end local plpos_no_mut = plpos:gsub("^mutated ", "") if isLemma[plpos_no_mut] or isNonLemma[plpos_no_mut] then return "ဢမ်ႇၸႂ်ႈပိူင်ၶေႃႈတင်ႈ" elseif best_guess then return plpos:find(" forms$") and "non-lemma form" or "lemma" else return nil end end function export.canonicalize_pos(pos) if pos == "pre" then error("POS 'pre' for 'preposition' no longer allowed as it's too ambiguous; use 'prep'") end if pos == "pro" or pos == "prof" then error("POS 'pro' for 'pronoun' no longer allowed as it's too ambiguous; use 'pron'") end local m_headword_data = m_data or get_data() if m_headword_data.pos_aliases[pos] then pos = m_headword_data.pos_aliases[pos] elseif pos:sub(-1) == "f" then pos = pos:sub(1, -2) pos = (m_headword_data.pos_aliases[pos] or pos) .. " forms" end return export.pluralize_pos(pos) end local function init_and_find_maximum_index(data, element, allow_blank_string) local maxind = 0 if not data[element] then data[element] = {} end local typ = type(data[element]) if typ ~= "table" then error(("Internal error: In full_headword(), `data.%s` must be an array but is a %s"):format(element, typ)) end for k, v in pairs(data[element]) do if k ~= "maxindex" then if type(k) ~= "number" then error(("Internal error: Unrecognized non-numeric key '%s' in `data.%s`"):format(k, element)) end if k > maxind then maxind = k end if v then if type(v) ~= "string" then error(("Internal error: For key '%s' in `data.%s`, value should be a string but is a %s"):format(k, element, type(v))) end if not allow_blank_string and v == "" then error(("Internal error: For key '%s' in `data.%s`, blank string not allowed; use 'false' for the default"):format(k, element)) end end end end return maxind end do local function handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) sortkey = sortkey or lang:makeSortKey(page.pagename) if tbl == true then if page.raw_defaultsort ~= sortkey then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return end local redundant, different for k in pairs(tbl) do if k == sortkey then redundant = true else different = true end end if redundant then insert(lang_cats, lang:getFullName() .. " terms with redundant sortkeys") end if different then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return sortkey end function export.maintenance_cats(page, lang, lang_cats, page_cats) extend(page_cats, page.cats) lang = lang:getFull() local canonical = lang:getCanonicalName() local tbl, sortkey = page.wikitext_topic_cat[lang:getCode()] if tbl then sortkey = handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with topic categories using raw markup") end tbl = page.wikitext_langname_cat[canonical] if tbl then handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with language name categories using raw markup") end if get_current_L2() ~= canonical then insert(lang_cats, canonical .. " entries with incorrect language header") track("incorrect language header", lang) end end end function export.full_headword(data) local data = shallow_copy(data) if data.getCanonicalName then error("Internal error: In full_headword(), the first argument `data` needs to be a Lua object (table) of properties, not a language object") end if not data.lang or type(data.lang) ~= "table" or not data.lang.getCode then error("Internal error: In full_headword(), the first argument `data` needs to be a Lua object (table) and `data.lang` must be a language object") end if data.id and type(data.id) ~= "string" then error("Internal error: The id in the data table should be a string.") end local langcode = data.lang:getCode() local full_langcode = data.lang:getFullCode() local langname = data.lang:getCanonicalName() local full_langname = data.lang:getFullName() local raw_pagename = data.pagename local page local m_headword_data = m_data or get_data() if raw_pagename and raw_pagename ~= m_headword_data.pagename then local actual_namespace = m_headword_data.page.namespace local no_fetch_content = actual_namespace == "User" or actual_namespace == "Template" or actual_namespace == "Module" page = process_page(raw_pagename, no_fetch_content) else page = m_headword_data.page end local namespace = page.namespace if type(data.heads) == "table" and type(data.heads[1]) == "table" then if data.translits or data.transcriptions then error("Internal error: In full_headword(), if `data.heads` is new-style (array of head objects), `data.translits` and `data.transcriptions` cannot be given") end else local maxind = max( init_and_find_maximum_index(data, "heads"), init_and_find_maximum_index(data, "translits", true), init_and_find_maximum_index(data, "transcriptions", true) ) for i = 1, maxind do data.heads[i] = { term = data.heads[i], tr = data.translits[i], ts = data.transcriptions[i], } end end if not data.heads[1] then data.heads[1] = {} end if data.altform then data.noposcat = true end init_and_find_maximum_index(data, "categories") init_and_find_maximum_index(data, "whole_page_categories") local pos_category_already_present = false if data.categories[1] then local escaped_langname = pattern_escape(full_langname) local matches_lang_pattern = "^" .. escaped_langname .. " " for _, cat in ipairs(data.categories) do if not cat:find(matches_lang_pattern) then track("no lang category", data.lang) end end if not data.pos_category and data.categories[1]:find(matches_lang_pattern) then data.pos_category = data.categories[1]:gsub(matches_lang_pattern, "") pos_category_already_present = true end end -- လွင်ႈႁဵတ်း Mapping တႃႇ ဢဝ် ၸိုဝ်ႈ POS Category လႄႈ Alias ၸိူဝ်းၼႆႉ လၢႆႈၸူးၽႃႇသႃႇတႆး if data.pos_category then data.pos_category = export.canonicalize_pos(data.pos_category) end if not data.pos_category then error("Internal error: `data.pos_category` not specified and could not be inferred from the categories given in " .. "`data.categories`. Either specify the plural part of speech in `data.pos_category` " .. "(e.g. \"proper nouns\") or ensure that the first category in `data.categories` is formed from the " .. "language's canonical name plus the plural part of speech (e.g. \"Norwegian Bokmål proper nouns\")." ) end if not pos_category_already_present and not data.noposcat then local pos_category = data.pos_category .. full_langname if pos_category ~= "Translingual Han characters" then insert(data.categories, 1, pos_category) end end local postype = export.pos_lemma_or_nonlemma(data.pos_category) if not postype then track("unrecognized pos", data.lang) track("unrecognized pos/pos/" .. data.pos_category, data.lang) elseif not data.noposcat then insert(data.categories, 1, postype .. full_langname) end if data.altform then insert(data.categories, 1, " ပိူင်ၽၢင်တၢင်ႇဢၼ်" .. full_langname) end local is_anti_asterisk = data.heads[1].term and data.heads[1].term:find("^!!") local lang_reconstructed = data.lang:hasType("reconstructed") if is_anti_asterisk then if not lang_reconstructed then error("Anti-asterisk feature (head= beginning with !!) can only be used with reconstructed languages") end lang_reconstructed = false end local is_reconstructed = namespace == "Reconstruction" or lang_reconstructed local default_head = page.pagename if not (is_reconstructed or data.nolinkhead) then local no_links = m_headword_data.no_multiword_links if not (no_links[langcode] or no_links[full_langcode]) and export.head_is_multiword(default_head) then default_head = export.add_multiword_links(default_head, true) end end if is_reconstructed then default_head = "*" .. default_head end if namespace == "" then if lang_reconstructed then error("Entries in " .. langname .. " must be placed in the Reconstruction: namespace") elseif data.lang:hasType("appendix-constructed") then error("Entries in " .. langname .. " must be placed in the Appendix: namespace") end elseif namespace == "Citations" or namespace == "Thesaurus" then error("Headword templates should not be used in the " .. namespace .. ": namespace.") end local any_script_has_spaces = false local has_redundant_head_param = false for _, head in ipairs(data.heads) do if not head.term then head.term = default_head elseif head.term == default_head then has_redundant_head_param = true elseif is_anti_asterisk and head.term == "!!" then head.term = "!!" .. default_head elseif head.term:find("^[!?]$") then head.term = default_head .. head.term end head.term_no_initial_bang_bang = is_anti_asterisk and head.term:sub(3) or head.term if is_reconstructed then local head_term = head.term if head_term:find("%[%[") then head_term = remove_links(head_term) end if head_term:sub(1, 1) ~= "*" then error("The headword '" .. head_term .. "' must begin with '*' to indicate that it is reconstructed.") end end local auto_sc = data.lang:findBestScript(head.term) if ( auto_sc:getCode() == "None" and find_best_script_without_lang(head.term):getCode() ~= "None" ) then insert(data.categories, full_langname .. " terms in nonstandard scripts") end if not (head.sc or data.sc) then head.sc = auto_sc else if not head.sc then head.sc = data.sc end if head.sc:getCode() == auto_sc:getCode() then insert(data.categories, full_langname .. " terms with redundant script codes") else insert(data.categories, full_langname .. " terms with non-redundant manual script codes") end end if head.sc:hasNormalizationFixes() == true then local composed_head = toNFC(head.term) if head.sc:fixDiscouragedSequences(composed_head) ~= composed_head then insert(data.whole_page_categories, "Pages using discouraged character sequences") end end any_script_has_spaces = any_script_has_spaces or head.sc:hasSpaces() head.tr_manual = nil if head.tr == "-" then head.tr = nil else local notranslit = m_headword_data.notranslit if not (notranslit[langcode] or notranslit[full_langcode]) and head.sc:isTransliterated() then head.tr_manual = not not head.tr local text = head.term_no_initial_bang_bang if not data.lang:link_tr(head.sc) then text = remove_links(text) end local automated_tr = data.lang:transliterate(text, head.sc) if automated_tr then local manual_tr = head.tr if manual_tr then if remove_links(manual_tr) == remove_links(automated_tr) then insert(data.categories, full_langname .. " terms with redundant transliterations") else insert(data.categories, full_langname .. " terms with non-redundant manual transliterations") end end if not manual_tr then head.tr = automated_tr end end if not head.tr then head.tr = "<small>transliteration needed</small>" insert(data.categories, "တုၵ်းယွၼ်း တွၼ်ႈတႃႇ လွင်ႈပိၼ်ႇသဵင်ဢွၵ်ႇ ၶေႃႈၵႂၢမ်း" .. full_langname) else head.tr = trim(head.tr) end end end if head.tr and data.lang:link_tr(head.sc) then head.tr = full_link{ term = head.tr, lang = data.lang, sc = get_script("Latn"), tr = "-" } end end local display_title local dt_script = data.heads[1].sc local dt_script_code = dt_script:getCode() local page_non_ascii = namespace == "" and not page.pagename:find("^[%z\1-\127]+$") local unsupported_pagename, unsupported = page.full_raw_pagename:gsub("^Unsupported titles/", "") if unsupported == 1 and page.unsupported_titles[unsupported_pagename] then display_title = 'Unsupported titles/<span class="' .. dt_script_code .. '">' .. page.unsupported_titles[unsupported_pagename] .. '</span>' elseif page_non_ascii and m_headword_data.toBeTagged[dt_script_code] or (dt_script_code == "Jpan" and (text_in_script(page.pagename, "Hira") or text_in_script(page.pagename, "Kana"))) or (dt_script_code == "Kore" and text_in_script(page.pagename, "Hang")) then display_title = '<span class="' .. dt_script_code .. '">' .. page.full_raw_pagename .. '</span>' elseif page_non_ascii and (dt_script_code == "Hant" or dt_script_code == "Hans") then display_title = '<span class="Hani">' .. page.full_raw_pagename .. '</span>' elseif namespace == "Reconstruction" then local matched display_title, matched = ugsub( page.full_raw_pagename, "^(Reconstruction:[^/]+/)(.+)$", function(before, term) return before .. tag_text(term, data.lang, dt_script) end ) if matched == 0 then display_title = nil end end if (dt_script_code == "ur-Arab" or dt_script_code == "ku-Arab" or dt_script_code == "pa-Arab") and page.L2_list.n > 1 then display_title = nil end if display_title then mw.getCurrentFrame():callParserFunction( "DISPLAYTITLE", display_title ) end if data.force_cat_output then track("force cat output") end if not data.nomultiwordcat and any_script_has_spaces and postype == "lemma" then local no_multiword_cat = m_headword_data.no_multiword_cat if not (no_multiword_cat[langcode] or no_multiword_cat[full_langcode]) then local no_hyphen = m_headword_data.hyphen_not_multiword_sep local checkpattern = (no_hyphen[langcode] or no_hyphen[full_langcode]) and ".[%s%%-]." or ".[%s%-፡]." local is_multiword = umatch(page.pagename, checkpattern) if is_multiword and not non_categorizable(page.full_raw_pagename) then insert(data.categories, "ၶေႃႈၵႂၢမ်းလၢႆၶေႃႈၽႃႇသႃႇ" .. full_langname) elseif not is_multiword then local long_word_threshold = m_headword_data.long_word_thresholds[langcode] if long_word_threshold and ulen(page.pagename) >= long_word_threshold then insert(data.categories, "Long " .. full_langname .. " words") end end end end if data.sccat then for _, head in ipairs(data.heads) do insert(data.categories, full_langname .. " " .. data.pos_category .. " in " .. head.sc:getDisplayForm()) end end if namespace ~= "Reconstruction" then local characters_to_ignore = { ["aaq"] = "αάὰ", ["acy"] = "δθ", ["aez"] = "β", ["anc"] = "γ", ["aou"] = "χ", ["art-blk"] = "ч", ["awg"] = "β", ["az"] = "ь", ["ba"] = "ь", ["bhp"] = "β", ["bjz"] = "β", ["byk"] = "θ", ["cdy"] = "θ", ["chp"] = "θ", ["cjh"] = "χ", ["clm"] = "χ", ["col"] = "χ", ["coo"] = "χθ", ["crx"] = "θ", ["ets"] = "θ", ["ett"] = "χ", ["fla"] = "χ", ["grt"] = "་", ["gmw-gts"] = "χ", ["hur"] = "χθ", ["itc-psa"] = "f", ["izh"] = "ь", ["kic"] = "θ", ["kk"] = "ь", ["ky"] = "ь", ["lil"] = "χ", ["lsi"] = "ꓹ", ["mhz"] = "β", ["mqn"] = "β", ["neg"]= "ӡā", ["oka"] = "χ", ["ole"] = "θ", ["oui"] = "γβ", ["pox"] = "χ", ["rif"] = "ε", ["rom"] = "Θθ", ["rpn"] = "β", ["sah"] = "ь", ["sit-jap"] = "χ", ["sjw"] = "θ", ["squ"] = "χ", ["str"] = "χθ", ["teh"] = "χ", ["tep"] = "η", ["thp"] = "χ", ["tk"] = "ь", ["tt"] = "ь", ["twa"] = "χ", ["wbl"] = "ы", ["xbc"] = "ϸ", ["yha"] = "θ", ["za"] = "зч", ["zlw-slv"] = "χђћ", ["zng"] = "θ", ["ztp"] = "θ", } local seen_scripts = {} local num_seen_scripts = 0 local num_loops = 0 local canon_pagename = page.pagename local ch_to_ignore = characters_to_ignore[full_langcode] if ch_to_ignore then canon_pagename = ugsub(canon_pagename, "[" .. ch_to_ignore .. "]", "") end while true do if canon_pagename == "" or num_seen_scripts >= 2 or num_loops >= 10 then break end num_loops = num_loops + 1 local pagename_script = find_best_script_without_lang(canon_pagename, "None only as last resort") local script_chars = pagename_script.characters if not script_chars then break end local script_code = pagename_script:getCode() local replaced canon_pagename, replaced = ugsub(canon_pagename, "[" .. script_chars .. "]", "") if ( replaced and script_code ~= "Zmth" and (script_data or get_script_data())[script_code] and script_data[script_code].character_category ~= false ) then script_code = script_code:gsub("^.-%-", "") if not seen_scripts[script_code] then seen_scripts[script_code] = true num_seen_scripts = num_seen_scripts + 1 end end end if num_seen_scripts > 1 then insert(data.categories, full_langname .. " terms written in multiple scripts") end end local standard = data.lang:getStandardCharacters() if standard and not non_categorizable(page.full_raw_pagename) then local function char_category(char) local specials = { ["#"] = "number sign", ["("] = "parentheses", [")"] = "parentheses", ["<"] = "angle brackets", [">"] = "angle brackets", ["["] = "square brackets", ["]"] = "square brackets", ["_"] = "underscore", ["{"] = "braces", ["|"] = "vertical line", ["}"] = "braces", ["ß"] = "ẞ", ["\205\133"] = "", ["\239\191\189"] = "replacement character", } char = toNFD(char) :gsub(".[\128-\191]*", function(m) local new_m = specials[m] new_m = new_m or m:uupper() return new_m end) return toNFC(char) end if full_langcode ~= "hi" and full_langcode ~= "lo" then local standard_chars_scripts = {} for _, head in ipairs(data.heads) do standard_chars_scripts[head.sc:getCode()] = true end for code in pairs(standard_chars_scripts) do local sc_standard = data.lang:getStandardCharacters(code) if sc_standard then if page.pagename_len > 1 then local explode_standard = {} local function explode(char) explode_standard[char] = true return "" end local sc_standard = ugsub(sc_standard, page.comb_chars.combined_double, explode) sc_standard = ugsub(sc_standard,page.comb_chars.combined_single, explode) :gsub(".[\128-\191]*", explode) local num_cat_inserted for char in pairs(page.explode_pagename) do if not explode_standard[char] then if char:find("[0-9]") then if not num_cat_inserted then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. "ဢၼ်လေႃးဝႆႉတင်း တူဝ်ၼပ်ႉ") num_cat_inserted = true end elseif ufind(char, page.emoji_pattern) then nsert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း ဢီမူဝ်းၵျိ") else local upper = char_category(char) if not explode_standard[upper] then char = upper end insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း " .. char) end end end end sc_standard = toNFD(sc_standard) for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_single) do if not umatch(sc_standard, diacritic) then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း ◌" .. diacritic) end end for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_double) do if not umatch(sc_standard, diacritic) then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname " ဢၼ်လေႃးဝႆႉတင်း ◌" .. diacritic .. "◌") end end end end elseif ulen(page.pagename) ~= 1 then for character in ugmatch(page.pagename, "([^" .. standard .. "])") do local upper = char_category(character) if not umatch(upper, "[" .. standard .. "]") then character = upper end insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း " .. character) end end end if data.heads[1].sc:isSystem("alphabet") then local pagename, i = page.pagename:ulower(), 2 while umatch(pagename, "(%a)" .. ("%1"):rep(i)) do i = i + 1 insert(data.categories, full_langname .. " terms with " .. i .. " consecutive instances of the same letter") end end if not data.nopalindromecat and namespace ~= "Reconstruction" and ulen(page.pagename) > 2 and is_palindrome(page.pagename, data.lang, data.heads[1].sc) then insert(data.categories, " ပႃႇလိၼ်ႇထရူမ်း " .. full_langname) end if namespace == "" and not lang_reconstructed then for _, head in ipairs(data.heads) do if page.full_raw_pagename ~= get_link_page(remove_links(head.term), data.lang, head.sc) then track("pagename spelling mismatch", data.lang) break end end end export.maintenance_cats(page, data.lang, data.categories, data.whole_page_categories) local text = '<span class="headword-line">' .. format_headword(data) .. format_headword_genders(data) .. format_top_level_inflections(data) .. '</span>' local cats = format_categories( data.categories, data.lang, data.sort_key, page.encoded_pagename, data.force_cat_output or test_force_categories, data.heads[1].sc ) local whole_page_cats = format_categories( data.whole_page_categories, nil, "-" ) return text .. cats .. whole_page_cats end return export l5xp5zvjh2n0yuqemfs372plsx5tib6 292875 292874 2026-09-19T04:24:43Z Saimawnkham 9 [[Special:Contributions/Saimawnkham|Saimawnkham]] ([[User talk:Saimawnkham|ဢုပ်ႇဢူဝ်း]]) ၵေႃႉ ၶိုၼ်ၶိုၼ်း လွင်ႈၶူၼ်ႉၶႆႈ [[Special:Diff/292874|292874]] 292875 Scribunto text/plain local export = {} -- Named constants for all modules used, to make it easier to swap out sandbox versions. local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local gender_and_number_module = "Module:gender and number" local headword_data_module = "Module:headword/data" local headword_page_module = "Module:headword/page" local links_module = "Module:links" local load_module = "Module:load" local pages_module = "Module:pages" local palindromes_module = "Module:palindromes" local pron_qualifier_module = "Module:pron qualifier" local scripts_module = "Module:scripts" local scripts_data_module = "Module:scripts/data" local script_utilities_module = "Module:script utilities" local script_utilities_data_module = "Module:script utilities/data" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local concat = table.concat local dump = mw.dumpObject local insert = table.insert local ipairs = ipairs local max = math.max local new_title = mw.title.new local pairs = pairs local require = require local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local type = type local ufind = mw.ustring.find local ugmatch = mw.ustring.gmatch local ugsub = mw.ustring.gsub local umatch = mw.ustring.match --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function encode_entities(...) encode_entities = require(string_utilities_module).encode_entities return encode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_genders(...) format_genders = require(gender_and_number_module).format_genders return format_genders(...) end local function format_pron_qualifiers(...) format_pron_qualifiers = require(pron_qualifier_module).format_qualifiers return format_pron_qualifiers(...) end local function full_link(...) full_link = require(links_module).full_link return full_link(...) end local function get_current_L2(...) get_current_L2 = require(pages_module).get_current_L2 return get_current_L2(...) end local function get_link_page(...) get_link_page = require(links_module).get_link_page return get_link_page(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function is_palindrome(...) is_palindrome = require(palindromes_module).is_palindrome return is_palindrome(...) end local function language_link(...) language_link = require(links_module).language_link return language_link(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function pluralize(...) pluralize = require(en_utilities_module).pluralize return pluralize(...) end local function process_page(...) process_page = require(headword_page_module).process_page return process_page(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function tag_text(...) tag_text = require(script_utilities_module).tag_text return tag_text(...) end local function tag_transcription(...) tag_transcription = require(script_utilities_module).tag_transcription return tag_transcription(...) end local function tag_translit(...) tag_translit = require(script_utilities_module).tag_translit return tag_translit(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ulen(...) ulen = require(string_utilities_module).len return ulen(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local m_data local function get_data() m_data = load_data(headword_data_module) return m_data end local script_data local function get_script_data() script_data = load_data(scripts_data_module) return script_data end local script_utilities_data local function get_script_utilities_data() script_utilities_data = load_data(script_utilities_data_module) return script_utilities_data end -- If set to true, categories always appear, even in non-mainspace pages local test_force_categories = false -- Add a tracking category to track entries with certain (unusually undesirable) properties. `track_id` is an identifier -- for the particular property being tracked and goes into the tracking page. Specifically, this adds a link in the -- page text to [[Wiktionary:Tracking/headword/TRACK_ID]], meaning you can find all entries with the `track_id` property -- by visiting [[Special:WhatLinksHere/Wiktionary:Tracking/headword/TRACK_ID]]. -- -- If `lang` (a language object) is given, an additional tracking page [[Wiktionary:Tracking/headword/TRACK_ID/CODE]] is -- linked to where CODE is the language code of `lang`, and you can find all entries in the combination of `track_id` -- and `lang` by visiting [[Special:WhatLinksHere/Wiktionary:Tracking/headword/TRACK_ID/CODE]]. This makes it possible to -- isolate only the entries with a specific tracking property that are in a given language. Note that if `lang` -- references at etymology-only language, both that language's code and its full parent's code are tracked. local function track(track_id, lang) local tracking_page = "headword/" .. track_id if lang and lang:hasType("etymology-only") then debug_track{tracking_page, tracking_page .. "/" .. lang:getCode(), tracking_page .. "/" .. lang:getFullCode()} elseif lang then debug_track{tracking_page, tracking_page .. "/" .. lang:getCode()} else debug_track(tracking_page) end return true end local function text_in_script(text, script_code) local sc = get_script(script_code) if not sc then error("Internal error: Bad script code " .. script_code) end local characters = sc.characters local out if characters then text = ugsub(text, "%W", "") out = ufind(text, "[" .. characters .. "]") end if out then return true else return false end end local spacingPunctuation = "[%s%p]+" --[[ List of punctuation or spacing characters that are found inside of words. Used to exclude characters from the regex above. ]] local wordPunc = "-#%%&@־׳״'.·*’་•:᠊" local notWordPunc = "[^" .. wordPunc .. "]+" -- Format a term (either a head term or an inflection term) along with any left or right qualifiers, labels, references -- or customized separator: `part` is the object specifying the term (and `lang` the language of the term), which should -- optionally contain: -- * left qualifiers in `q`, an array of strings; -- * right qualifiers in `qq`, an array of strings; -- * left labels in `l`, an array of strings; -- * right labels in `ll`, an array of strings; -- * references in `refs`, an array either of strings (formatted reference text) or objects containing fields `text` -- (formatted reference text) and optionally `name` and/or `group`; -- * a separator in `separator`, defaulting to " <i>or</i> " if this is not the first term (j > 1), otherwise "". -- `formatted` is the formatted version of the term itself, and `j` is the index of the term. local function format_term_with_qualifiers_and_refs(lang, part, formatted, j) local function part_non_empty(field) local list = part[field] if not list then return nil end if type(list) ~= "table" then error(("Internal error: Wrong type for `part.%s`=%s, should be \"table\""):format(field, dump(list))) end return list[1] end if part_non_empty("q") or part_non_empty("qq") or part_non_empty("l") or part_non_empty("ll") or part_non_empty("refs") then formatted = format_pron_qualifiers { lang = lang, text = formatted, q = part.q, qq = part.qq, l = part.l, ll = part.ll, refs = part.refs, } end local separator = part.separator or j > 1 and " <i>or</i> " -- use "" to request no separator if separator then formatted = separator .. formatted end return formatted end --[==[Return true if the given head is multiword according to the algorithm used in full_headword().]==] function export.head_is_multiword(head) for possibleWordBreak in ugmatch(head, spacingPunctuation) do if umatch(possibleWordBreak, notWordPunc) then return true end end return false end do local function workaround_to_exclude_chars(s) return (ugsub(s, notWordPunc, "\2%1\1")) end --[==[Add links to a multiword head.]==] function export.add_multiword_links(head, default) head = "\1" .. ugsub(head, spacingPunctuation, workaround_to_exclude_chars) .. "\2" if default then head = head :gsub("(\1[^\2]*)\\([:#][^\2]*\2)", "%1\\\\%2") :gsub("(\1[^\2]*)([:#][^\2]*\2)", "%1\\%2") end --Escape any remaining square brackets to stop them breaking links (e.g. "[citation needed]"). head = encode_entities(head, "[]", true, true) --[=[ use this when workaround is no longer needed: head = "[[" .. ugsub(head, WORDBREAKCHARS, "]]%1[[") .. "]]" Remove any empty links, which could have been created above at the beginning or end of the string. ]=] return (head :gsub("\1\2", "") :gsub("[\1\2]", {["\1"] = "[[", ["\2"] = "]]"})) end end local function non_categorizable(full_raw_pagename) return full_raw_pagename:find("^Appendix:Gestures/") or -- Unsupported titles with descriptive names. (full_raw_pagename:find("^Unsupported titles/") and not full_raw_pagename:find("`")) end local function tag_text_and_add_quals_and_refs(data, head, formatted, j) -- Add language and script wrapper. formatted = tag_text(formatted, data.lang, head.sc, "head", nil, j == 1 and data.id or nil) -- Add qualifiers, labels, references and separator. return format_term_with_qualifiers_and_refs(data.lang, head, formatted, j) end -- Format a headword with transliterations. local function format_headword(data) -- Are there non-empty transliterations? local has_translits = false local has_manual_translits = false ------ Format the headwords. ------ local head_parts = {} local unique_head_parts = {} local has_multiple_heads = not not data.heads[2] for j, head in ipairs(data.heads) do if head.tr or head.ts then has_translits = true end if head.tr and head.tr_manual or head.ts then has_manual_translits = true end local formatted -- Apply processing to the headword, for formatting links and such. if head.term:find("[[", nil, true) and head.sc:getCode() ~= "Image" then formatted = language_link{term = head.term, lang = data.lang} else formatted = data.lang:makeDisplayText(head.term, head.sc, true) end local head_part = tag_text_and_add_quals_and_refs(data, head, formatted, j) insert(head_parts, head_part) -- If multiple heads, try to determine whether all heads display the same. To do this we need to effectively -- rerun the text tagging and addition of qualifiers and references, using 1 for all indices. if has_multiple_heads then local unique_head_part if j == 1 then unique_head_part = head_part else unique_head_part = tag_text_and_add_quals_and_refs(data, head, formatted, 1) end unique_head_parts[unique_head_part] = true end end local set_size = 0 if has_multiple_heads then for _ in pairs(unique_head_parts) do set_size = set_size + 1 end end if set_size == 1 then head_parts = head_parts[1] else head_parts = concat(head_parts) end if has_manual_translits then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/manual-tr]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/manual-tr/LANGCODE]] track("manual-tr", data.lang) end ------ Format the transliterations and transcriptions. ------ local translits_formatted if has_translits then local translit_parts = {} for _, head in ipairs(data.heads) do if head.tr or head.ts then local this_parts = {} if head.tr then insert(this_parts, tag_translit(head.tr, data.lang:getCode(), "head", nil, head.tr_manual)) if head.ts then insert(this_parts, " ") end end if head.ts then insert(this_parts, "/" .. tag_transcription(head.ts, data.lang:getCode(), "head") .. "/") end insert(translit_parts, concat(this_parts)) end end translits_formatted = " (" .. concat(translit_parts, " <i>or</i> ") .. ")" local langname = data.lang:getCanonicalName() local transliteration_page = new_title(langname .. " transliteration", "Wiktionary") local saw_translit_page = false if transliteration_page and transliteration_page:getContent() then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted saw_translit_page = true end -- If data.lang is an etymology-only language and we didn't find a translation page for it, fall back to the -- full parent. if not saw_translit_page and data.lang:hasType("etymology-only") then langname = data.lang:getFullName() transliteration_page = new_title(langname .. " transliteration", "Wiktionary") if transliteration_page and transliteration_page:getContent() then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted end end else translits_formatted = "" end ------ Paste heads and transliterations/transcriptions. ------ local lemma_gloss if data.gloss then lemma_gloss = ' <span class="ib-content qualifier-content">' .. data.gloss .. '</span>' else lemma_gloss = "" end return head_parts .. translits_formatted .. lemma_gloss end local function format_headword_genders(data) local retval = "" if data.genders and data.genders[1] then if data.gloss then retval = "," end local pos_for_cat if not data.nogendercat then local no_gender_cat = (m_data or get_data()).no_gender_cat if not (no_gender_cat[data.lang:getCode()] or no_gender_cat[data.lang:getFullCode()]) then pos_for_cat = (m_data or get_data()).pos_for_gender_number_cat[data.pos_category:gsub("^reconstructed ", "")] end end local text, cats = format_genders(data.genders, data.lang, pos_for_cat) if cats then extend(data.categories, cats) end retval = retval .. "&nbsp;" .. text end return retval end -- Forward reference local format_inflections local function format_inflection_parts(data, parts) for j, part in ipairs(parts) do if type(part) ~= "table" then part = {term = part} end local partaccel = part.accel local face = part.face or "bold" if face ~= "bold" and face ~= "plain" and face ~= "hypothetical" then error("The face `" .. face .. "` " .. ( (script_utilities_data or get_script_utilities_data()).faces[face] and "should not be used for non-headword terms on the headword line." or "is invalid." )) end -- Here the final part 'or data.nolinkinfl' allows to have 'nolinkinfl=true' -- right into the 'data' table to disable inflection links of the entire headword -- when inflected forms aren't entry-worthy, e.g.: in Vulgar Latin local nolinkinfl = part.face == "hypothetical" or (part.nolink and track("nolink") or part.nolinkinfl) or ( data.nolink and track("nolink") or data.nolinkinfl) local formatted if part.label then -- FIXME: There should be a better way of italicizing a label. As is, this isn't customizable. formatted = "<i>" .. part.label .. "</i>" else -- Convert the term into a full link. Don't show a transliteration here unless enable_auto_translit is -- requested, either at the `parts` level (i.e. per inflection) or at the `data.inflections` level (i.e. -- specified for all inflections). This is controllable in {{head}} using autotrinfl=1 for all inflections, -- or fNautotr=1 for an individual inflection (remember that a single inflection may be associated with -- multiple terms). The reason for doing this is to avoid clutter in headword lines by default in languages -- where the script is relatively straightforward to read by learners (e.g. Greek, Russian), but allow it -- to be enabled in languages with more complex scripts (e.g. Arabic). -- -- FIXME: With nested inflections, should we also respect `enable_auto_translit` at the top level of the -- nested inflections structure? local tr = part.tr or not (parts.enable_auto_translit or data.inflections.enable_auto_translit) and "-" or nil -- FIXME: Temporary errors added 2025-10-03. Remove after a month or so. if part.translit then error("Internal error: Use field `tr` not `translit` for specifying an inflection part translit") end if part.transcription then error("Internal error: Use field `ts` not `transcription` for specifying an inflection part transcription") end local postprocess_annotations if part.inflections then postprocess_annotations = function(infldata) insert(infldata.annotations, format_inflections(data, part.inflections)) end end formatted = full_link( { term = not nolinkinfl and part.term or nil, alt = part.alt or (nolinkinfl and part.term or nil), lang = part.lang or data.lang, sc = part.sc or parts.sc or nil, gloss = part.gloss, pos = part.pos, lit = part.lit, id = part.id, genders = part.genders, tr = tr, ts = part.ts, accel = partaccel or parts.accel, postprocess_annotations = postprocess_annotations, }, face ) end parts[j] = format_term_with_qualifiers_and_refs(part.lang or data.lang, part, formatted, j) end local parts_output if parts[1] then parts_output = (parts.label and " " or "") .. concat(parts) elseif parts.request then parts_output = " <small>[please provide]</small>" insert(data.categories, "Requests for inflections in " .. data.lang:getFullName() .. " entries") else parts_output = "" end local parts_label = parts.label and ("<i>" .. parts.label .. "</i>") or "" return format_term_with_qualifiers_and_refs(data.lang, parts, parts_label .. parts_output, 1) end -- Format the inflections following the headword or nested after a given inflection. format_inflections = function(data, inflections) if inflections and inflections[1] then -- Format each inflection individually. for key, infl in ipairs(inflections) do inflections[key] = format_inflection_parts(data, infl) end return concat(inflections, ", ") else return "" end end -- Format the top-level inflections following the headword. Currently this just adds parens around the -- formatted comma-separated inflections in `data.inflections`. local function format_top_level_inflections(data) local result = format_inflections(data, data.inflections) if result ~= "" then return " (" .. result .. ")" else return result end end --[==[ Returns the plural form of `pos`, a raw part of speech input, which could be singular or plural. Irregular plural POS are taken into account (e.g. "kanji" pluralizes to "kanji"). ]==] function export.pluralize_pos(pos) -- Make the plural form of the part of speech return (m_data or get_data()).irregular_plurals[pos] or pos:sub(-1) == "s" and pos or pluralize(pos) end --[==[ Return "lemma" if the given POS is a lemma, "non-lemma form" if a non-lemma form, or nil if unknown. The POS passed in must be in its plural form ("nouns", "prefixes", etc.). If you have a POS in its singular form, call {export.pluralize_pos()} above to pluralize it in a smart fashion that knows when to add "-s" and when to add "-es", and also takes into account any irregular plurals. If `best_guess` is given and the POS is in neither the lemma nor non-lemma list, guess based on whether it ends in " forms"; otherwise, return nil. ]==] function export.pos_lemma_or_nonlemma(plpos, best_guess) local m_headword_data = m_data or get_data() local isLemma = m_headword_data.lemmas -- Is it a lemma category? if isLemma[plpos] then return "ၶေႃႈတင်ႈ" end local plpos_no_recon = plpos:gsub("^reconstructed ", "") if isLemma[plpos_no_recon] then return "ၶေႃႈတင်ႈ" end -- Is it a nonlemma category? local isNonLemma = m_headword_data.nonlemmas if isNonLemma[plpos] or isNonLemma[plpos_no_recon] then return "ဢမ်ႇၸႂ်ႈပိူင်ၶေႃႈတင်ႈ" end local plpos_no_mut = plpos:gsub("^mutated ", "") if isLemma[plpos_no_mut] or isNonLemma[plpos_no_mut] then return "ဢမ်ႇၸႂ်ႈပိူင်ၶေႃႈတင်ႈ" elseif best_guess then return plpos:find(" forms$") and "non-lemma form" or "lemma" else return nil end end --[==[ Canonicalize a part of speech as specified in 2= in {{tl|head}}. This checks for POS aliases and non-lemma form aliases ending in 'f', and then pluralizes if the POS term does not have an invariable plural. ]==] function export.canonicalize_pos(pos) -- FIXME: Temporary code to throw an error for alias 'pre' (= preposition) that will go away. if pos == "pre" then -- Don't throw error on 'pref' as it's an alias for "prefix". error("POS 'pre' for 'preposition' no longer allowed as it's too ambiguous; use 'prep'") end -- Likewise for pro = pronoun. if pos == "pro" or pos == "prof" then error("POS 'pro' for 'pronoun' no longer allowed as it's too ambiguous; use 'pron'") end local m_headword_data = m_data or get_data() if m_headword_data.pos_aliases[pos] then pos = m_headword_data.pos_aliases[pos] elseif pos:sub(-1) == "f" then pos = pos:sub(1, -2) pos = (m_headword_data.pos_aliases[pos] or pos) .. " forms" end return export.pluralize_pos(pos) end -- Find and return the maximum index in the array `data[element]` (which may have gaps in it), and initialize it to a -- zero-length array if unspecified. Check to make sure all keys are numeric (other than "maxindex", which is set by -- [[Module:parameters]] for list parameters), all values are strings, and unless `allow_blank_string` is given, -- no blank (zero-length) strings are present. local function init_and_find_maximum_index(data, element, allow_blank_string) local maxind = 0 if not data[element] then data[element] = {} end local typ = type(data[element]) if typ ~= "table" then error(("Internal error: In full_headword(), `data.%s` must be an array but is a %s"):format(element, typ)) end for k, v in pairs(data[element]) do if k ~= "maxindex" then if type(k) ~= "number" then error(("Internal error: Unrecognized non-numeric key '%s' in `data.%s`"):format(k, element)) end if k > maxind then maxind = k end if v then if type(v) ~= "string" then error(("Internal error: For key '%s' in `data.%s`, value should be a string but is a %s"):format(k, element, type(v))) end if not allow_blank_string and v == "" then error(("Internal error: For key '%s' in `data.%s`, blank string not allowed; use 'false' for the default"):format(k, element)) end end end end return maxind end --[==[ -- Add the page to various maintenance categories for the language and the -- whole page. These are placed in the headword somewhat arbitrarily, but -- mainly because headword templates are mandatory for entries (meaning that -- in theory it provides full coverage). -- -- This is provided as an external entry point so that modules which transclude -- information from other entries (such as {{tl|ja-see}}) can take advantage -- of this feature as well, because they are used in place of a conventional -- headword template.]==] do -- Handle any manual sortkeys that have been specified in raw categories -- by tracking if they are the same or different from the automatically- -- generated sortkey, so that we can track them in maintenance -- categories. local function handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) sortkey = sortkey or lang:makeSortKey(page.pagename) -- If there are raw categories with no sortkey, then they will be -- sorted based on the default MediaWiki sortkey, so we check against -- that. if tbl == true then if page.raw_defaultsort ~= sortkey then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return end local redundant, different for k in pairs(tbl) do if k == sortkey then redundant = true else different = true end end if redundant then insert(lang_cats, lang:getFullName() .. " terms with redundant sortkeys") end if different then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return sortkey end function export.maintenance_cats(page, lang, lang_cats, page_cats) extend(page_cats, page.cats) lang = lang:getFull() -- since we are just generating categories local canonical = lang:getCanonicalName() local tbl, sortkey = page.wikitext_topic_cat[lang:getCode()] if tbl then sortkey = handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with topic categories using raw markup") end tbl = page.wikitext_langname_cat[canonical] if tbl then handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with language name categories using raw markup") end if get_current_L2() ~= canonical then insert(lang_cats, canonical .. " entries with incorrect language header") -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/incorrect language header]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/incorrect language header/LANGCODE]] track("incorrect language header", lang) end end end --[==[This is the primary external entry point. {{lua|full_headword(data)}} This is used by {{temp|head}} and various language-specific headword templates (e.g. {{temp|ru-adj}} for Russian adjectives, {{temp|de-noun}} for German nouns, etc.) to display an entire headword line. See [[#Further explanations for full_headword()]] ]==] function export.full_headword(data) -- Prevent data from being destructively modified. local data = shallow_copy(data) ------------ 1. Basic checks for old-style (multi-arg) calling convention. ------------ if data.getCanonicalName then error("Internal error: In full_headword(), the first argument `data` needs to be a Lua object (table) of properties, not a language object") end if not data.lang or type(data.lang) ~= "table" or not data.lang.getCode then error("Internal error: In full_headword(), the first argument `data` needs to be a Lua object (table) and `data.lang` must be a language object") end if data.id and type(data.id) ~= "string" then error("Internal error: The id in the data table should be a string.") end ------------ 2. Initialize pagename etc. ------------ local langcode = data.lang:getCode() local full_langcode = data.lang:getFullCode() local langname = data.lang:getCanonicalName() local full_langname = data.lang:getFullName() local raw_pagename = data.pagename local page local m_headword_data = m_data or get_data() if raw_pagename and raw_pagename ~= m_headword_data.pagename then -- for testing, doc pages, etc. -- data.pagename is often set on documentation and test pages through the pagename= parameter of various -- templates, to emulate running on that page. Having a large number of such test templates on a single -- page often leads to timeouts, because we fetch and parse the contents of each page in turn. However, -- we don't really need to do that and can function fine without fetching and parsing the contents of a -- given page, so turn off content fetching/parsing (and also setting the DEFAULTSORT key through a parser -- function, which is *slooooow*) in certain namespaces where test and documentation templates are likely to -- be found and where actual content does not live (User, Template, Module). local actual_namespace = m_headword_data.page.namespace local no_fetch_content = actual_namespace == "User" or actual_namespace == "Template" or actual_namespace == "Module" page = process_page(raw_pagename, no_fetch_content) else page = m_headword_data.page end local namespace = page.namespace ------------ 3. Initialize `data.heads` table; if old-style, convert to new-style. ------------ if type(data.heads) == "table" and type(data.heads[1]) == "table" then -- new-style if data.translits or data.transcriptions then error("Internal error: In full_headword(), if `data.heads` is new-style (array of head objects), `data.translits` and `data.transcriptions` cannot be given") end else -- convert old-style `heads`, `translits` and `transcriptions` to new-style local maxind = max( init_and_find_maximum_index(data, "heads"), init_and_find_maximum_index(data, "translits", true), init_and_find_maximum_index(data, "transcriptions", true) ) for i = 1, maxind do data.heads[i] = { term = data.heads[i], tr = data.translits[i], ts = data.transcriptions[i], } end end -- Make sure there's at least one head. if not data.heads[1] then data.heads[1] = {} end ------------ 4. Initialize and validate `data.categories` and `data.whole_page_categories`, and determine `pos_category` if not given, and add basic categories. ------------ -- EXPERIMENTAL: see [[Wiktionary:Beer parlour/2024/June#Decluttering the altform mess]] if data.altform then data.noposcat = true end init_and_find_maximum_index(data, "categories") init_and_find_maximum_index(data, "whole_page_categories") local pos_category_already_present = false if data.categories[1] then local escaped_langname = pattern_escape(full_langname) local matches_lang_pattern = "^" .. escaped_langname .. " " for _, cat in ipairs(data.categories) do -- Does the category begin with the language name? If not, tag it with a tracking category. if not cat:find(matches_lang_pattern) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/no lang category]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/no lang category/LANGCODE]] track("no lang category", data.lang) end end -- If `pos_category` not given, try to infer it from the first specified category. If this doesn't work, we -- throw an error below. if not data.pos_category and data.categories[1]:find(matches_lang_pattern) then data.pos_category = data.categories[1]:gsub(matches_lang_pattern, "") -- Optimization to avoid inserting category already present. pos_category_already_present = true end end if not data.pos_category then error("Internal error: `data.pos_category` not specified and could not be inferred from the categories given in " .. "`data.categories`. Either specify the plural part of speech in `data.pos_category` " .. "(e.g. \"proper nouns\") or ensure that the first category in `data.categories` is formed from the " .. "language's canonical name plus the plural part of speech (e.g. \"Norwegian Bokmål proper nouns\")." ) end -- Insert a category at the beginning for the part of speech unless it's already present or `data.noposcat` given. if not pos_category_already_present and not data.noposcat then local pos_category = data.pos_category .. full_langname -- FIXME: [[User:Theknightwho]] Why is this special case here? Please add an explanatory comment. if pos_category ~= "Translingual Han characters" then insert(data.categories, 1, pos_category) end end -- Try to determine whether the part of speech refers to a lemma or a non-lemma form; if we can figure this out, -- add an appropriate category. local postype = export.pos_lemma_or_nonlemma(data.pos_category) if not postype then -- We don't know what this category is, so tag it with a tracking category. -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/LANGCODE]] track("unrecognized pos", data.lang) -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/POS]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/POS/LANGCODE]] track("unrecognized pos/pos/" .. data.pos_category, data.lang) elseif not data.noposcat then insert(data.categories, 1, postype .. full_langname) end -- EXPERIMENTAL: see [[Wiktionary:Beer parlour/2024/June#Decluttering the altform mess]] if data.altform then insert(data.categories, 1, " ပိူင်ၽၢင်တၢင်ႇဢၼ်" .. full_langname) end ------------ 5. Create a default headword, and add links to multiword page names. ------------ -- Determine if this is an "anti-asterisk" term, i.e. an attested term in a language that must normally be -- reconstructed. local is_anti_asterisk = data.heads[1].term and data.heads[1].term:find("^!!") local lang_reconstructed = data.lang:hasType("reconstructed") if is_anti_asterisk then if not lang_reconstructed then error("Anti-asterisk feature (head= beginning with !!) can only be used with reconstructed languages") end lang_reconstructed = false end -- Determine if term is reconstructed local is_reconstructed = namespace == "Reconstruction" or lang_reconstructed -- Create a default headword based on the pagename, which is determined in -- advance by the data module so that it only needs to be done once. local default_head = page.pagename -- Add links to multi-word page names when appropriate if not (is_reconstructed or data.nolinkhead) then local no_links = m_headword_data.no_multiword_links if not (no_links[langcode] or no_links[full_langcode]) and export.head_is_multiword(default_head) then default_head = export.add_multiword_links(default_head, true) end end if is_reconstructed then default_head = "*" .. default_head end ------------ 6. Check the namespace against the language type. ------------ if namespace == "" then if lang_reconstructed then error("Entries in " .. langname .. " must be placed in the Reconstruction: namespace") elseif data.lang:hasType("appendix-constructed") then error("Entries in " .. langname .. " must be placed in the Appendix: namespace") end elseif namespace == "Citations" or namespace == "Thesaurus" then error("Headword templates should not be used in the " .. namespace .. ": namespace.") end ------------ 7. Fill in missing values in `data.heads`. ------------ -- True if any script among the headword scripts has spaces in it. local any_script_has_spaces = false -- True if any term has a redundant head= param. local has_redundant_head_param = false for _, head in ipairs(data.heads) do ------ 7a. If missing head, replace with default head. if not head.term then head.term = default_head elseif head.term == default_head then has_redundant_head_param = true elseif is_anti_asterisk and head.term == "!!" then -- If explicit head=!! is given, it's an anti-asterisk term and we fill in the default head. head.term = "!!" .. default_head elseif head.term:find("^[!?]$") then -- If explicit head= just consists of ! or ?, add it to the end of the default head. head.term = default_head .. head.term end head.term_no_initial_bang_bang = is_anti_asterisk and head.term:sub(3) or head.term if is_reconstructed then local head_term = head.term if head_term:find("%[%[") then head_term = remove_links(head_term) end if head_term:sub(1, 1) ~= "*" then error("The headword '" .. head_term .. "' must begin with '*' to indicate that it is reconstructed.") end end ------ 7b. Try to detect the script(s) if not provided. If a per-head script is provided, that takes precedence, ------ otherwise fall back to the overall script if given. If neither given, autodetect the script. local auto_sc = data.lang:findBestScript(head.term) if ( auto_sc:getCode() == "None" and find_best_script_without_lang(head.term):getCode() ~= "None" ) then insert(data.categories, full_langname .. " terms in nonstandard scripts") end if not (head.sc or data.sc) then -- No script code given, so use autodetected script. head.sc = auto_sc else if not head.sc then -- Overall script code given. head.sc = data.sc end -- Track uses of sc parameter. if head.sc:getCode() == auto_sc:getCode() then insert(data.categories, full_langname .. " terms with redundant script codes") else insert(data.categories, full_langname .. " terms with non-redundant manual script codes") end end -- If using a discouraged character sequence, add to maintenance category. if head.sc:hasNormalizationFixes() == true then local composed_head = toNFC(head.term) if head.sc:fixDiscouragedSequences(composed_head) ~= composed_head then insert(data.whole_page_categories, "Pages using discouraged character sequences") end end any_script_has_spaces = any_script_has_spaces or head.sc:hasSpaces() ------ 7c. Create automatic transliterations for any non-Latin headwords without manual translit given ------ (provided automatic translit is available, e.g. not in Persian or Hebrew). -- Make transliterations head.tr_manual = nil -- Try to generate a transliteration if necessary if head.tr == "-" then head.tr = nil else local notranslit = m_headword_data.notranslit if not (notranslit[langcode] or notranslit[full_langcode]) and head.sc:isTransliterated() then head.tr_manual = not not head.tr local text = head.term_no_initial_bang_bang if not data.lang:link_tr(head.sc) then text = remove_links(text) end local automated_tr = data.lang:transliterate(text, head.sc) if automated_tr then local manual_tr = head.tr if manual_tr then if remove_links(manual_tr) == remove_links(automated_tr) then insert(data.categories, full_langname .. " terms with redundant transliterations") else insert(data.categories, full_langname .. " terms with non-redundant manual transliterations") end end if not manual_tr then head.tr = automated_tr end end -- There is still no transliteration? -- Add the entry to a cleanup category. if not head.tr then head.tr = "<small>transliteration needed</small>" -- FIXME: No current support for 'Request for transliteration of Classical Persian terms' or similar. -- Consider adding this support in [[Module:category tree/poscatboiler/data/entry maintenance]]. insert(data.categories, "တုၵ်းယွၼ်း တွၼ်ႈတႃႇ လွင်ႈပိၼ်ႇသဵင်ဢွၵ်ႇ ၶေႃႈၵႂၢမ်း" .. full_langname) else -- Otherwise, trim it. head.tr = trim(head.tr) end end end -- Link to the transliteration entry for languages that require this. if head.tr and data.lang:link_tr(head.sc) then head.tr = full_link{ term = head.tr, lang = data.lang, sc = get_script("Latn"), tr = "-" } end end ------------ 8. Maybe tag the title with the appropriate script code, using the `display_title` mechanism. ------------ -- Assumes that the scripts in "toBeTagged" will never occur in the Reconstruction namespace. -- (FIXME: Don't make assumptions like this, and if you need to do so, throw an error if the assumption is violated.) -- Avoid tagging ASCII as Hani even when it is tagged as Hani in the headword, as in [[check]]. The check for ASCII -- might need to be expanded to a check for any Latin characters and whitespace or punctuation. local display_title -- Where there are multiple headwords, use the script for the first. This assumes the first headword is similar to -- the pagename, and that headwords that are in different scripts from the pagename aren't first. This seems to be -- about the best we can do (alternatively we could potentially do script detection on the pagename). local dt_script = data.heads[1].sc local dt_script_code = dt_script:getCode() local page_non_ascii = namespace == "" and not page.pagename:find("^[%z\1-\127]+$") local unsupported_pagename, unsupported = page.full_raw_pagename:gsub("^Unsupported titles/", "") if unsupported == 1 and page.unsupported_titles[unsupported_pagename] then display_title = 'Unsupported titles/<span class="' .. dt_script_code .. '">' .. page.unsupported_titles[unsupported_pagename] .. '</span>' elseif page_non_ascii and m_headword_data.toBeTagged[dt_script_code] or (dt_script_code == "Jpan" and (text_in_script(page.pagename, "Hira") or text_in_script(page.pagename, "Kana"))) or (dt_script_code == "Kore" and text_in_script(page.pagename, "Hang")) then display_title = '<span class="' .. dt_script_code .. '">' .. page.full_raw_pagename .. '</span>' -- Keep Han entries region-neutral in the display title. elseif page_non_ascii and (dt_script_code == "Hant" or dt_script_code == "Hans") then display_title = '<span class="Hani">' .. page.full_raw_pagename .. '</span>' elseif namespace == "Reconstruction" then local matched display_title, matched = ugsub( page.full_raw_pagename, "^(Reconstruction:[^/]+/)(.+)$", function(before, term) return before .. tag_text(term, data.lang, dt_script) end ) if matched == 0 then display_title = nil end end -- FIXME: Generalize this. -- If the current language uses ur-Arab (for Urdu, etc.), ku-Arab (Central Kurdish) or pa-Arab -- (Shahmukhi, for Punjabi) and there's more than one language on the page, don't set the display title -- because these three scripts display in Nastaliq and we don't want this for terms that also exist in other -- languages that don't display in Nastaliq (e.g. Arabic or Persian) to display in Nastaliq. Because the word -- "Urdu" occurs near the end of the alphabet, Urdu fonts tend to override the fonts of other languages. -- FIXME: This is checking for more than one language on the page but instead needs to check if there are any -- languages using scripts other than the ones just mentioned. if (dt_script_code == "ur-Arab" or dt_script_code == "ku-Arab" or dt_script_code == "pa-Arab") and page.L2_list.n > 1 then display_title = nil end if display_title then mw.getCurrentFrame():callParserFunction( "DISPLAYTITLE", display_title ) end ------------ 9. Insert additional categories. ------------ if data.force_cat_output then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/force cat output]] track("force cat output") end if has_redundant_head_param then if not data.no_redundant_head_cat then -- This is not the right way to go about this; too many exceptions and problems due to language-specific headword -- handling customization. If we want this, it should be opt-in by a given language passing in the default headword. -- insert(data.categories, full_langname .. " terms with redundant head parameter") end end -- If the first head is multiword (after removing links), maybe insert into "LANG multiword terms". if not data.nomultiwordcat and any_script_has_spaces and postype == "lemma" then local no_multiword_cat = m_headword_data.no_multiword_cat if not (no_multiword_cat[langcode] or no_multiword_cat[full_langcode]) then -- Check for spaces or hyphens, but exclude prefixes and suffixes. -- Use the pagename, not the head= value, because the latter may have extra -- junk in it, e.g. superscripted text that throws off the algorithm. local no_hyphen = m_headword_data.hyphen_not_multiword_sep -- Exclude hyphens if the data module states that they should for this language. local checkpattern = (no_hyphen[langcode] or no_hyphen[full_langcode]) and ".[%s፡]." or ".[%s%-፡]." local is_multiword = umatch(page.pagename, checkpattern) if is_multiword and not non_categorizable(page.full_raw_pagename) then insert(data.categories, "ၶေႃႈၵႂၢမ်းလၢႆၶေႃႈၽႃႇသႃႇ" .. full_langname) elseif not is_multiword then local long_word_threshold = m_headword_data.long_word_thresholds[langcode] if long_word_threshold and ulen(page.pagename) >= long_word_threshold then insert(data.categories, "Long " .. full_langname .. " words") end end end end if data.sccat then for _, head in ipairs(data.heads) do insert(data.categories, full_langname .. " " .. data.pos_category .. " in " .. head.sc:getDisplayForm()) end end -- Reconstructed terms often use weird combinations of scripts and realistically aren't spelled so much as notated. if namespace ~= "Reconstruction" then -- Map from languages to a string containing the characters to ignore when considering whether a term has -- multiple written scripts in it. Typically these are Greek or Cyrillic letters used for their phonetic -- values. local characters_to_ignore = { ["aaq"] = "αάὰ", -- Penobscot (Algonquian) ["acy"] = "δθ", -- Cypriot Arabic ["aez"] = "β", -- Aeka (Trans-New Guinea) ["anc"] = "γ", -- Ngas (Chadic/Afroasiatic) ["aou"] = "χ", -- A'ou (Kra-Dai) ["art-blk"] = "ч", -- Bolak (conlang) ["awg"] = "β", -- Anguthimri (Pama-Nyungan) ["az"] = "ь", -- Azerbaijani (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["ba"] = "ь", -- Bashkir (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["bhp"] = "β", -- Bima (Austronesian) ["bjz"] = "β", -- Baruga (Trans-New Guinea) ["byk"] = "θ", -- Biao (Kra-Dai) ["cdy"] = "θ", -- Chadong (Kra-Dai) ["chp"] = "θ", -- Chipewyan (Athabaskan) ["cjh"] = "χ", -- Upper Chehalis (Salishan) ["clm"] = "χ", -- Klallam (Salishan) ["col"] = "χ", -- Colombia-Wenatchi (Salishan) ["coo"] = "χθ", -- Comox (Salishan) ["crx"] = "θ", -- Carrier (Athabaskan) ["ets"] = "θ", -- Yekhee (Edoid/Niger-Congo) ["ett"] = "χ", -- Etruscan (isolate; in romanizations) ["fla"] = "χ", -- Montana Salish (Salishan) ["grt"] = "་", -- Garo (South Asian Sino-Tibetan) ["gmw-gts"] = "χ", -- Gottscheerish (Bavarian variant spoken in Slovenia) ["hur"] = "χθ", -- Halkomelem (Salishan) ["itc-psa"] = "f", -- Pre-Samnite (Italic; normally written in Greek) ["izh"] = "ь", -- Ingrian (Finnic) ["kic"] = "θ", -- Kickapoo (Algonquian) ["kk"] = "ь", -- Kazakh (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["ky"] = "ь", -- Kyrgyz (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["lil"] = "χ", -- Lillooet (Salishan) ["lsi"] = "ꓹ", -- Lashi (Lolo-Burmese/Sino-Tibetan; represents a glottal stop) ["mhz"] = "β", -- Mor (Austronesian) ["mqn"] = "β", -- Moronene (Austronesian) ["neg"]= "ӡā", -- Negidal (Tungusic; normally in Cyrillic) ["oka"] = "χ", -- Okanagan (Salishan) ["ole"] = "θ", -- Olekha (Sino-Tibetan) ["oui"] = "γβ", -- Old Uyghur (Turkic; FIXME: others? E.g. Greek delta (δ)?) ["pox"] = "χ", -- Polabian (West Slavic) ["rif"] = "ε", -- Tarifit (Berber) ["rom"] = "Θθ", -- Romani (Indic: International Standard; two different thetas???) ["rpn"] = "β", -- Repanbitip (Austronesian) ["sah"] = "ь", -- Yakut (Turkic; 1929 - 1939 Latin spelling) ["sit-jap"] = "χ", -- Japhug (Sino-Tibetan) ["sjw"] = "θ", -- Shawnee (Algonquian) ["squ"] = "χ", -- Squamish (Salishan) ["str"] = "χθ", -- Saanich (Salishan) ["teh"] = "χ", -- Tehuelche (Chonan; spoken in Argentina) ["tep"] = "η", -- Tepecano (Uto-Aztecan) ["thp"] = "χ", -- Thompson (Salishan) ["tk"] = "ь", -- Turkmen (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["tt"] = "ь", -- Kazakh (Turkic; Yañalif Latin spelling, c. 1928 - 1938) ["twa"] = "χ", -- Twana (Salishan) ["wbl"] = "ы", -- Wakhi (Iranian) ["xbc"] = "ϸ", -- Bactrian (Iranian; represents š; normally written in Greek) ["yha"] = "θ", -- Baha (Kra-Dai) ["za"] = "зч", -- Zhuang (Tai/Kra-Dai); 1957-1982 alphabet used two Cyrillic letters (as well as some others like -- ƃ, ƅ, ƨ, ɯ and ɵ that look like Cyrillic or Greek but are actually Latin) ["zlw-slv"] = "χђћ", -- Slovincian (West Slavic; FIXME: χ is Greek, the other two are Cyrillic, but I'm not sure -- the currect characters are being chosen in the entry names) ["zng"] = "θ", -- Mang (Mon-Khmer) ["ztp"] = "θ", -- Loxicha Zapotec (Zapotecan) } -- Determine how many real scripts are found in the pagename, where we exclude symbols and such. We exclude -- scripts whose `character_category` is false as well as Zmth (mathematical notation symbols), which has a -- category of "Mathematical notation symbols". When counting scripts, we need to elide language-specific -- variants because e.g. Beng and as-Beng have slightly different characters but we don't want to consider them -- two different scripts (e.g. [[এৰ]] has two characters which are detected respectively as Beng and as-Beng). local seen_scripts = {} local num_seen_scripts = 0 local num_loops = 0 local canon_pagename = page.pagename local ch_to_ignore = characters_to_ignore[full_langcode] if ch_to_ignore then canon_pagename = ugsub(canon_pagename, "[" .. ch_to_ignore .. "]", "") end while true do if canon_pagename == "" or num_seen_scripts >= 2 or num_loops >= 10 then break end -- Make sure we don't get into a loop checking the same script over and over again; happens with e.g. [[ᠪᡳ]] num_loops = num_loops + 1 local pagename_script = find_best_script_without_lang(canon_pagename, "None only as last resort") local script_chars = pagename_script.characters if not script_chars then -- we are stuck; this happens with None break end local script_code = pagename_script:getCode() local replaced canon_pagename, replaced = ugsub(canon_pagename, "[" .. script_chars .. "]", "") if ( replaced and script_code ~= "Zmth" and (script_data or get_script_data())[script_code] and script_data[script_code].character_category ~= false ) then script_code = script_code:gsub("^.-%-", "") if not seen_scripts[script_code] then seen_scripts[script_code] = true num_seen_scripts = num_seen_scripts + 1 end end end if num_seen_scripts > 1 then insert(data.categories, full_langname .. " terms written in multiple scripts") end end -- Categorise for unusual characters. Takes into account combining characters, so that we can categorise for characters with diacritics that aren't encoded as atomic characters (e.g. U̠). These can be in two formats: single combining characters (i.e. character + diacritic(s)) or double combining characters (i.e. character + diacritic(s) + character). Each can have any number of diacritics. local standard = data.lang:getStandardCharacters() if standard and not non_categorizable(page.full_raw_pagename) then local function char_category(char) local specials = { ["#"] = "number sign", ["("] = "parentheses", [")"] = "parentheses", ["<"] = "angle brackets", [">"] = "angle brackets", ["["] = "square brackets", ["]"] = "square brackets", ["_"] = "underscore", ["{"] = "braces", ["|"] = "vertical line", ["}"] = "braces", ["ß"] = "ẞ", ["\205\133"] = "", -- this is UTF-8 for U+0345 ( ͅ) ["\239\191\189"] = "replacement character", } char = toNFD(char) :gsub(".[\128-\191]*", function(m) local new_m = specials[m] new_m = new_m or m:uupper() return new_m end) return toNFC(char) end if full_langcode ~= "hi" and full_langcode ~= "lo" then local standard_chars_scripts = {} for _, head in ipairs(data.heads) do standard_chars_scripts[head.sc:getCode()] = true end -- Iterate over the scripts, in case there is more than one (as they can have different sets of standard characters). for code in pairs(standard_chars_scripts) do local sc_standard = data.lang:getStandardCharacters(code) if sc_standard then if page.pagename_len > 1 then local explode_standard = {} local function explode(char) explode_standard[char] = true return "" end local sc_standard = ugsub(sc_standard, page.comb_chars.combined_double, explode) sc_standard = ugsub(sc_standard,page.comb_chars.combined_single, explode) :gsub(".[\128-\191]*", explode) local num_cat_inserted for char in pairs(page.explode_pagename) do if not explode_standard[char] then if char:find("[0-9]") then if not num_cat_inserted then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. "ဢၼ်လေႃးဝႆႉတင်း တူဝ်ၼပ်ႉ") num_cat_inserted = true end elseif ufind(char, page.emoji_pattern) then nsert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း ဢီမူဝ်းၵျိ") else local upper = char_category(char) if not explode_standard[upper] then char = upper end insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း " .. char) end end end end -- If a diacritic doesn't appear in any of the standard characters, also categorise for it generally. sc_standard = toNFD(sc_standard) for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_single) do if not umatch(sc_standard, diacritic) then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း ◌" .. diacritic) end end for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_double) do if not umatch(sc_standard, diacritic) then insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname " ဢၼ်လေႃးဝႆႉတင်း ◌" .. diacritic .. "◌") end end end end -- Ancient Greek, Hindi and Lao handled the old way for now, as their standard chars still need to be converted to the new format (because there are a lot of them). elseif ulen(page.pagename) ~= 1 then for character in ugmatch(page.pagename, "([^" .. standard .. "])") do local upper = char_category(character) if not umatch(upper, "[" .. standard .. "]") then character = upper end insert(data.categories, "ၶေႃႈၵႂၢမ်း" .. full_langname .. " ဢၼ်လေႃးဝႆႉတင်း " .. character) end end end if data.heads[1].sc:isSystem("alphabet") then local pagename, i = page.pagename:ulower(), 2 while umatch(pagename, "(%a)" .. ("%1"):rep(i)) do i = i + 1 insert(data.categories, full_langname .. " terms with " .. i .. " consecutive instances of the same letter") end end -- Categorise for palindromes if not data.nopalindromecat and namespace ~= "Reconstruction" and ulen(page.pagename) > 2 -- FIXME: Use of first script here seems hacky. What is the clean way of doing this in the presence of -- multiple scripts? and is_palindrome(page.pagename, data.lang, data.heads[1].sc) then insert(data.categories, " ပႃႇလိၼ်ႇထရူမ်း " .. full_langname) end if namespace == "" and not lang_reconstructed then for _, head in ipairs(data.heads) do if page.full_raw_pagename ~= get_link_page(remove_links(head.term), data.lang, head.sc) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/pagename spelling mismatch]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/pagename spelling mismatch/LANGCODE]] track("pagename spelling mismatch", data.lang) break end end end -- Add to various maintenance categories. export.maintenance_cats(page, data.lang, data.categories, data.whole_page_categories) ------------ 10. Format and return headwords, genders, inflections and categories. ------------ -- Format and return all the gathered information. This may add more categories (e.g. gender/number categories), -- so make sure we do it before evaluating `data.categories`. local text = '<span class="headword-line">' .. format_headword(data) .. format_headword_genders(data) .. format_top_level_inflections(data) .. '</span>' -- Language-specific categories. local cats = format_categories( data.categories, data.lang, data.sort_key, page.encoded_pagename, data.force_cat_output or test_force_categories, data.heads[1].sc ) -- Language-agnostic categories. local whole_page_cats = format_categories( data.whole_page_categories, nil, "-" ) return text .. cats .. whole_page_cats end return export o26zc0omnbn2rpxwmja3ns016evhvj4 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹəʊ 106 28064 293130 72673 2026-09-19T09:57:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293130 wikitext text/x-wiki {{rhymes nav|en|æ|ɹəʊ}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ărō}}, {{IPA|en|/-ærəʊ/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> * [[Arrow]] * [[arrow]] * [[Barrow]] * [[barrow]] * [[Faeroe]] * [[Faroe]] * Farrow (''surname - see especially'' [[w:Mia Farrow|Mia Farrow]]) * [[farrow]] * [[Garo]] * [[w:Harrow|Harrow]] * [[harrow]] * [[Jarrow]] * [[marrow]] * [[narrow]] * [[pharaoh]] {{q|one pronunciation}} * [[sparrow]] * [[taro]] * [[tarot]] * [[Yarrow]] * [[yarrow]] rwtafsco0323a0nqjk35ygd47nqdyom တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɒnɪks 106 29988 293060 83974 2026-09-19T09:45:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293060 wikitext text/x-wiki {{rhymes nav|en|ɒ|nɪks}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ŏnĭks}}, {{IPA|en|/-ɒnɪks/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== # For more rhymes, add ''s'' or ''<nowiki>'</nowiki>s'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɒnɪk|{{IPAchar|/-ɒnɪk/}}]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> * {{l|en|onyx}} * {{l|en|phonics}} {{q|one pronunciation}} * {{l|en|sonics}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|bionics}} * {{l|en|cryonics}} * {{l|en|Ebonics}}, {{l|en|ebonics}} * {{l|en|gnomonics}} * {{l|en|harmonics}} * {{l|en|mnemonics}} * {{l|en|photonics}} * {{l|en|plasmonics}} * {{l|en|psionics}} * {{l|en|sermonics}} * {{l|en|spintronics}} * {{l|en|tectonics}} {{rhyme-bottom}} ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|aeroponics}} * {{l|en|aquaponics}} * {{l|en|avionics}} * {{l|en|electronics}} * {{l|en|histrionics}} * {{l|en|holophonics}} * {{l|en|hydroponics}} * {{l|en|hypersonics}} * {{l|en|infrasonics}} * {{l|en|plunderphonics}} * {{l|en|quadraphonics}}, {{l|en|quadrophonics}} * {{l|en|supersonics}} * {{l|en|thermionics}} * {{l|en|ultrasonics}} {{rhyme-bottom}} ===ႁႃႈသဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> * {{l|en|animatronics}} * {{l|en|geotectonics}} * {{l|en|polaritonics}} * {{l|en|radiophonics}} ===ႁူၵ်းသဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|bioelectronics}} * {{l|en|microelectronics}} * {{l|en|nanoelectronics}} * {{l|en|optoelectronics}} * {{l|en|photoelectronics}} * {{l|en|physiognomonics}} {{rhyme-bottom}} gdhgbzqtwd1rwgiqodry17khxu6ehiu တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəs 106 31929 293076 77349 2026-09-19T09:48:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293076 wikitext text/x-wiki {{rhymes nav|en|əʊ|niəs}} ==သဵင်ဢွၵ်ႇ== -ōniəs, /-əʊniəs/, /<tt>-@Uni@s</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #For more rhymes, follow some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊni|/-əʊni/]] with "us". ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the ANTEPENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|nonius}} {{rhyme-bottom}} ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the ANTEPENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|Antonius}} * {{l|en|euphonious}} * {{l|en|felonious}} * {{l|en|harmonious}} * {{l|en|Petronius}} * {{l|en|Polonius}} {{rhyme-bottom}} ===ႁႃႈသဵင်=== {{rhyme-top}} * {{l|en|acrimonious}} * {{l|en|ceremonious}} * {{l|en|disharmonious}} * {{l|en|inharmonious}} * {{l|en|parsimonious}} * {{l|en|sanctimonious}} {{rhyme-bottom}} ===ႁူၵ်းသဵင်=== {{rhyme-top}} * {{l|en|unceremonious}} {{rhyme-bottom}} leuz4dye076dubnc72kjcetbkc8r96p တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsəl 106 33488 293192 79187 2026-09-19T10:09:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293192 wikitext text/x-wiki {{rhymes nav|en|æ|səl}} ==သဵင်ဢွၵ်ႇ== -ăsəl, /-æsəl/, /<tt>-{s@l</tt>/ ===ၶေႃႈမၢႆတွင်း=== # For more rhymes, add ''’ll'' (“shall”, “will”) to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æs|/-æs/]] (for example, ''lass’ll''). ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|assle}} * {{l|en|brastle}} * {{l|en|Cassel}} * {{l|en|castle}} * {{l|en|hassle}} * {{l|en|Kassel}} * {{l|en|passel}} * {{l|en|rassle}}, {{l|en|wrassle}}, {{l|en|wrastle}} * {{l|en|tassel}} * {{l|en|vassal}} * {{l|en|wassail}} {{qualifier|one pronunciation}} {{rhyme-bottom}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|betassel}} * {{l|en|envassal}}, {{l|en|invassal}} * {{l|en|thalassal}} {{rhyme-bottom}} 314892mpxdufs9l8ejyu6k3hqhm7hwu မေႃႇၵျူး:accel 828 33931 292869 106983 2026-09-19T03:39:19Z Saimawnkham 9 update from en 292869 Scribunto text/plain local export = {} local form_of_module = "Module:form of" local form_of_data_module = "Module:form of/data" local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local append = m_table.append local assert = assert local concat = table.concat local contains = m_table.contains local deep_copy = m_table.deepCopy local deep_equals = require("Module:table/deepEquals") local extend = m_table.extend local insert = table.insert local insert_if_not = m_table.insertIfNot local list_to_set = m_table.listToSet local remove = table.remove local split = m_str_utils.split local safe_require = require("Module:load").safe_require local size = m_table.size local u = m_str_utils.char local MARK_CONJOINED_SHORTCUT = u(0xFFF0) local split_term_regex = "%*~!" --[=[ The purpose of the acceleration code is to auto-generate pages for non-lemma forms (inflections) of a given lemma. The way it works is approximately as follows: 1. When you have the accelerator gadget in [[MediaWiki:Gadget-AcceleratedFormCreation.js]] enabled, and you click on a green link, the JavaScript code gathers all the green links on the page that have the same language and pagename as the clicked-on green link and sends them to the generate_JSON() function in this module, which is a thin wrapper around the generate() function. Each individual green link maps to an "entry" and has associated accelerator properties that were specified by the `accel` object passed into full_link() in [[Module:links]]. Note that there can -- be multiple entries passed to a single generate() call for various reasons, e.g.: (1) Inside of a single inflection table there is syncretism, with two different inflections having the same form; e.g. the same Latin form ''bonī'' occurs in three different inflections of the lemma [[bonus]]: the masculine genitive singular, neuter genitive singular and masculine nominative plural. Hence there will be three entries. (2) Inside of a single inflection table there are inflections that are spelled differently but map to the same pagename due to diacritic removal; e.g. Latin ''bona'' (occurring in five different inflections: the feminine nominative and vocative singular and the neuter nominative, accusative and vocative plural) and Latin ''bonā'' (the feminine ablative singular) will be merged together into a single call to generate() with six entries. (3) There are two or more inflection tables, partly or completely duplicative. E.g. if a given lemma has Etymology 1 and Etymology 2 sections, and the inflection of each separate etymology is the same and associated with its own table, then clicking on any green link will result in (at least) two entries. 2. The generate() function is invoked like a template call, meaning all its arguments come as strings and need to be parsed. It does the following steps: (1) Parse its arguments. (2) Convert each set of per-entry parameters into a `params` object. (3) For each `params` object, generate a default entry, then, if there is a language-specific accelerator submodule, call that module to customize the entry. (4) Merge duplicate entries. This not only looks for completely duplicated entries but tries to merge entries that differ only in the definition. In general, this will result in multiple definition lines under a single entry, but definition lines that consist of calls to {{infl of}} will be further merged. For example, for the example above with ''bona'' and ''bonā'', the five inflections of ''bona'' will be merged into a single entry with a single call to {{infl of}} that looks something like this: # {{infl of|la|bonus||nom//voc|f|s|;|nom//acc//voc|n|p}} In other words, not only are the inflections combined into a single call to {{infl of}}, but inflections with partly shared tags are further merged. (5) Generate the Pronunciation and Etymology sections that go at the top, above all the entries. This is done either by calling custom generate functions in the language-specific accelerator submodule, or (if those aren't given) by merging the individual pronunciation and etymology lines, removing duplicates. Note that the default entry generated in step (3) has no pronunciation or etymology (which are generated only by a language-specific submodule), so by default there will be no Pronunciation or Etymology section. (6) Assemble the parts of each entry into a string and paste all the strings together, along with any combined Pronunciation and Etymology sections, to form the text of the entire per-language L2 section. Note that if you have enabled the OrangeLinks gadget, accelerator entries can be created on already-existing pages, as long as there's no L2 section for the language of the entries. ]=] -- A simple implementation of an ordered set. local function create_ordered_set() return { array = {}, set = {}, } end -- Add an item to the ordered set. `squashed_item` is a representation of the item as a string or number, so that we -- can use it as the key in a set. `orig_item` is the original item and can be omitted if it's the same as -- `squashed_item`. local function add_item(ordered_set, squashed_item, orig_item) if not ordered_set.set[squashed_item] then insert(ordered_set.array, orig_item or squashed_item) ordered_set.set[squashed_item] = true end end -- Generate the default entry function export.default_entry(params) local function make_head(pos, default_gender) local gender = params.gender or default_gender local genderspec = "" if gender then local genders = split(gender, ",", true) for i, g in ipairs(genders) do if i == 1 then genders[i] = "|g=" .. g else genders[i] = "|g" .. i .. "=" .. g end end genderspec = concat(genders) end local parts = {} insert(parts, "{{head|" .. params.lang:getCode() .. "|" .. pos) for i, target in ipairs(params.targets) do local paramnum = i == 1 and "" or tostring(i) if target.term ~= params.target_pagename then insert(parts, ("|head%s=%s"):format(paramnum, target.term)) end if target.tr then insert(parts, ("|tr%s=%s"):format(paramnum, target.tr)) end end insert(parts, genderspec .. "}}") return concat(parts) end local function make_def(tempname, extra_params) local parts = {} insert(parts, "{{" .. tempname .. "|" .. params.lang:getCode()) for i, origin in ipairs(params.origins) do local termparam, trparam if i == 1 then termparam = "" trparam = "tr=" else termparam = "term" .. i .. "=" trparam = "tr" .. i .. "=" end insert(parts, ("|%s%s"):format(termparam, origin.term)) if origin.tr then insert(parts, ("|%s%s"):format(trparam, origin.tr)) end end insert(parts, (extra_params or "") .. "}}") return concat(parts) end local function no_rule_error(params) -- FIXME, verify the 2 below (number of stack frames to pop off); may be wrong now that we moved this function -- underneath default_entry(). return error(('No rule for "%s" in language "%s" ("%s").') :format(params.form, params.lang:getCode(), params.lang:getCanonicalName()), 2) end local entry = { etymology = nil, pronunc = nil, pos_header = mw.getContentLanguage():ucfirst(params.pos), head = make_head(params.pos .. " form"), def = make_def("infl of", "||" .. params.form), inflection = nil, declension = nil, conjugation = nil, mutation = nil, altforms = nil, -- also pass in functions make_head = make_head, make_def = make_def, no_rule_error = no_rule_error, } -- Exceptions for some forms local templates = { ["p"] = "plural of", ["f"] = "feminine of", ["f|s"] = "feminine singular of", ["m|p"] = "masculine plural of", ["f|p"] = "feminine plural of", ["pejorative"] = "pejorative of", } if params.form == "comparative" or params.form == "superlative" or params.form == "equative" then entry.head = make_head(params.form .. " " .. params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "adjective" and "|POS=" .. params.pos or "") elseif params.form == "diminutive" or params.form == "augmentative" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "noun" and "|POS=" .. params.pos or "") elseif params.form == "f" and params.pos == "noun" then entry.head = make_head(params.pos, "f") entry.def = make_def("female equivalent of") elseif (params.form == "past|part" or params.form == "past|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("past participle") elseif (params.form == "perf|part" or params.form == "perf|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("perfect participle") elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("present participle") elseif (params.form == "abstract noun" or params.form == "verbal noun") and params.pos == "noun" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of") elseif templates[params.form] then entry.def = make_def(templates[params.form]) end return entry end -- Canonicalize multipart shortcuts (e.g. "123" -> "1//2//3") and non-conjoined list shortcuts (e.g. "1s" -> -- {"1", "s"}); leave others alone, including conjoined shortcuts. The purpose of canonicalizing list shortcuts is so -- that e.g. we can combine '1s|pres|ind' with '2|s|pres|ind'. However, conjoined shortcuts like "e-form" -> -- {"pl", ";", "def", "s", "attr"} would require significantly more logic to handle correctly, and it's highly unlikely -- we could find another similar enough tag to combine with (if it even makes sense to do so at all). local function canonicalize_multipart_and_list_shortcuts(tags, lang) local result = {} for _, tag in ipairs(tags) do local expansion = require(form_of_module).lookup_shortcut(tag, lang) if type(expansion) == "string" and not expansion:find("//", nil, true) then expansion = tag end if type(expansion) == "table" then if contains(expansion, ";") then insert(result, tag) else extend(result, expansion) end else insert(result, expansion) end end return result end -- Split a multipart tag into component tags, normalize each component, and return the resulting list. If -- MAP_TO_CANONICAL_SHORTCUT is given, attempt to map each normalized component tag to its "canonical shortcut", i.e. -- the first shortcut listed among its shortcuts. -- -- If given a two-level multipart tag such as "1:sg//3:pl", the resulting return value will be {"first:singular", -- "third:plural"}, or {"1:s", "3:p"} if MAP_TO_CANONICAL_SHORTCUT is given. local function split_and_normalize_tag(tag, lang, map_to_canonical_shortcut) local m_form_of = require(form_of_module) local normalized = m_form_of.normalize_tag_set({tag}, lang) if #normalized > 1 then -- Tag is a conjoined shortcut. We leave these in their non-canonicalized form; see comment above -- canonicalize_multipart_and_list_shortcuts(). But we mark them with a special character so we know that -- they are non-normalized conjoined shortcuts, and later remove the mark. return {tag .. MARK_CONJOINED_SHORTCUT} end normalized = normalized[1] assert(#normalized == 1, "Internal error: Encountered list tag " .. tag .. ", which should have been canonicalized earlier") local multipart = normalized[1] if type(multipart) == "string" then multipart = {multipart} end if map_to_canonical_shortcut then local function get_canonical_shortcut(tag, lang) local tagobj = m_form_of.lookup_tag(tag, lang) local tag_shortcuts = tagobj and tagobj[require(form_of_data_module).SHORTCUTS] if tag_shortcuts and type(tag_shortcuts) == "table" then tag_shortcuts = tag_shortcuts[1] end return tag_shortcuts or tag end for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart for j, single_tag in ipairs(mpart) do mpart[j] = get_canonical_shortcut(single_tag, lang) end multipart[i] = concat(mpart, ":") else multipart[i] = get_canonical_shortcut(mpart, lang) end end else for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart multipart[i] = concat(mpart, ":") end end end return multipart end -- Given a normalized tag, return its tag type, or "unknown" if a tag type -- cannot be located (either the tag isn't recognized or for some reason -- it doesn't specify a tag type). local function get_normalized_tag_type(tag, lang) -- Make sure to return 'unknown' for non-normalized conjoined shortcuts as well as URL's and parts of two-level -- multipart tags (both of the latter two have colons in them). NOTE: In practice, the presence of the -- MARK_CONJOINED_SHORTCUT means we won't find a normalized tag having the same name even if one would exist in the -- absence of this mark, so this is more of an optimization. if tag:find(MARK_CONJOINED_SHORTCUT) or tag:find(":") then return "unknown" end local m_form_of = require(form_of_module) local tagobj = m_form_of.lookup_tag(tag, lang) return tagobj and tagobj[require(form_of_data_module).TAG_TYPE] or "unknown" end --[=[ Combine multiple semicolon-separated tag sets into multipart tags if possible. We combine tag sets that differ in only one tag in a given dimension, and repeat this until no changes in case we can reduce along multiple dimensions, e.g. {{infl of|la|canus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} {{infl of|la|canus||dat//abl|m//f//n|p}} `tag_sets` is a list of objects of the form {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}, i.e. of the same format as `data.tag_sets` as passed to tagged_inflections() in [[Module:form of]]. Also accepted is an "old-style" list of strings, one element per tag, with tag sets separated by a semicolon, the same as in {{infl of}}. The return value is in the same format as was passed into `tag_sets`. If an old-style tag list was passed in, and labels are present, they are attached to the last tag in a tag set using an inline modifier. ]=] function export.combine_tag_sets_into_multipart(tag_sets, lang, POS) if type(tag_sets) ~= "table" then error("`tag_sets` should be a table but is a(n) `" .. type(tag_sets) .. "`") end if not tag_sets[1] then error("Expected at least one item in `tag_sets`") end local old_style_tags = false if type(tag_sets[1]) == "string" then old_style_tags = true end -- First, as an optimization, make sure there are multiple tag sets. Otherwise, do nothing. if old_style_tags then local found_semicolon = false for _, tag in ipairs(tag_sets) do if tag == ";" then found_semicolon = true break end end if not found_semicolon then return tag_sets end elseif #tag_sets == 1 then return tag_sets end local m_form_of = require(form_of_module) -- If old-style tags (list of strings), convert to list of tag set objects. if old_style_tags then tag_sets = m_form_of.split_tag_set(tag_sets) for i, tag_set in ipairs(tag_sets) do tag_sets[i] = m_form_of.parse_tag_set_properties(tag_set) end else -- Otherwise, make a copy as we may modify the list in-place. tag_sets = deep_copy(tag_sets) end -- Repeat until no changes can be made. while true do -- First, determine the auto-generated label for each tag set and append to any user-specified labels. -- Best to do this on the raw tag sets, before canonicalize_multipart_and_list_shortcuts(). Then canonicalize -- 1s etc. into 1|s. for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = tag_set.labels and deep_copy(tag_set.labels) or {} local normalized_tag_sets = m_form_of.normalize_tag_set(tag_set.tags, lang) for _, normalized_tag_set in ipairs(normalized_tag_sets) do local this_labels = select(2, m_form_of.fetch_categories_and_labels(normalized_tag_set, lang, POS)) extend(tag_set.labels_with_auto, this_labels) end tag_set.tags = canonicalize_multipart_and_list_shortcuts(tag_set.tags, lang) end local canonicalized_tag_sets = tag_sets local old_canonicalized_tag_sets = canonicalized_tag_sets -- Try combining in two different styles ("adjacent-first" = do two passes, where the first pass only combines -- adjacent tag sets, while the second pass combines nonadjacent tag sets; "all-first" = do one pass combining -- nonadjacent tag sets). Sometimes one is better, sometimes the other. -- -- An example where adjacent-first is better: -- -- {{infl of|la|medius||m|acc|s|;|n|nom|s|;|n|acc|s|;|n|voc|s}} -- -- all-first results in -- -- {{infl of|la|medius||m//n|acc|s|;|n|nom//voc|s}} -- -- which isn't ideal. -- -- If we do adjacent-first, we get -- -- {{infl of|la|medius||m|acc|s|;|n|nom//acc//voc|s}} -- -- which is much better. -- -- The opposite happens in -- -- {{infl of|grc|βουλόμενος||n|nom|s|;|m|acc|s|;|n|acc|s|;|n|voc|s}} -- -- where all-first results in -- -- {{infl of|grc|βουλόμενος||n|nom//acc//voc|s|;|m|acc|s}} -- -- which is better than the result from adjacent-first, which is -- -- {{infl of|grc|βουλόμενος||n|nom//voc|s|;|m//n|acc|s}} -- -- To handle this conundrum, we try both, and look to see which one results in fewer "combinations" (where a -- tag with // in it counts as a combination). If both are different but have the same # of combinations, we -- prefer adjacent-first, we seems generally a better approach. local tag_sets_by_style = {} for _, combine_style in ipairs({"adjacent-first", "all-first"}) do -- Now, we do two passes. The first pass only combines adjacent tag sets, while the second pass combines -- nonadjacent tag sets. Copy canonicalized_tag_sets, since we destructively modify the list. local this_tag_sets = deep_copy(canonicalized_tag_sets) local combine_passes if combine_style == "adjacent-first" then combine_passes = {"adjacent", "all"} else combine_passes = {"all"} end for _, combine_pass in ipairs(combine_passes) do local tag_ind = 1 while tag_ind <= #this_tag_sets do local from, to if combine_pass == "adjacent" then if tag_ind == 1 then from = 1 to = 0 else from = tag_ind - 1 to = tag_ind - 1 end else from = 1 to = tag_ind - 1 end local inner_broken = false for prev_tag_ind = from, to do local cur_tag_set = this_tag_sets[prev_tag_ind] local tag_set = this_tag_sets[tag_ind] if #cur_tag_set.tags == #tag_set.tags and deep_equals(cur_tag_set.labels_with_auto, tag_set.labels_with_auto) then local mismatch_ind = nil local innermost_broken = false for i = 1, #tag_set.tags do local tag1 = split_and_normalize_tag(cur_tag_set.tags[i], lang) local tag2 = split_and_normalize_tag(tag_set.tags[i], lang) if not deep_equals(list_to_set(tag1), list_to_set(tag2)) then if mismatch_ind then innermost_broken = true break end local combined_dims = {} for _, tag in ipairs(tag1) do combined_dims[get_normalized_tag_type(tag, lang)] = true end for _, tag in ipairs(tag2) do combined_dims[get_normalized_tag_type(tag, lang)] = true end if size(combined_dims) == 1 and not combined_dims["unknown"] then mismatch_ind = i else innermost_broken = true break end end end if not innermost_broken then -- No break, we either match perfectly or are combinable if not mismatch_ind then -- Two identical tag sets remove(this_tag_sets, tag_ind) inner_broken = true break else -- Combine tag sets at mismatch_ind, using the canonical shortcuts. local tag1 = split_and_normalize_tag(cur_tag_set.tags[mismatch_ind], lang, true) local tag2 = split_and_normalize_tag(tag_set.tags[mismatch_ind], lang, true) -- Combine the normalized tags and remove the special MARK_CONJOINED_SHORTCUT mark -- on conjoined shortcuts so we have normal tags again. local combined_tag = concat(append(tag1, tag2), "//"):gsub(MARK_CONJOINED_SHORTCUT, "") local new_tag_set = {} for i = 1, #cur_tag_set.tags do if i == mismatch_ind then insert(new_tag_set, combined_tag) else local cur_canon_tag = split_and_normalize_tag(cur_tag_set.tags[i], lang) local canon_tag = split_and_normalize_tag(tag_set.tags[i], lang) assert(deep_equals(list_to_set(cur_canon_tag), list_to_set(canon_tag))) insert(new_tag_set, cur_tag_set.tags[i]) end end this_tag_sets[prev_tag_ind].tags = new_tag_set remove(this_tag_sets, tag_ind) inner_broken = true break end end end end if not inner_broken then -- No break from inner for-loop. Break from that loop indicates that we found that the current -- tag set can be combined with a preceding tag set, did the combination and deleted the -- current tag set. The next iteration then processes the same numbered tag set again (which is -- actually the following tag set, because we deleted the tag set before it). No break -- indicates that we couldn't combine the current tag set with any preceding tag set, and need -- to advance to the next one. tag_ind = tag_ind + 1 end end end tag_sets_by_style[combine_style] = this_tag_sets end if not deep_equals(tag_sets_by_style["adjacent-first"], tag_sets_by_style["all-first"]) then local function num_combinations(group) local num_combos = 0 for _, tag_set in ipairs(group) do for _, tag in ipairs(tag_set.tags) do if tag:find("//") then num_combos = num_combos + 1 end end end return num_combos end local num_adjacent_first_combos = num_combinations(tag_sets_by_style["adjacent-first"]) local num_all_first_combos = num_combinations(tag_sets_by_style["all-first"]) if num_adjacent_first_combos < num_all_first_combos then tag_sets = tag_sets_by_style["adjacent-first"] elseif num_all_first_combos < num_adjacent_first_combos then tag_sets = tag_sets_by_style["all-first"] else tag_sets = tag_sets_by_style["adjacent-first"] end else -- Both are the same, pick either one tag_sets = tag_sets_by_style["adjacent-first"] end if deep_equals(tag_sets, old_canonicalized_tag_sets) then break end -- FIXME, we should consider reversing the transformation 1s -> 1|s, -- but it's complicated to figure out when the transformation occurred; -- not really important as both are equivalent end if old_style_tags then local retval = {} for _, tag_set in ipairs(tag_sets) do if tag_set.labels and #tag_set.labels > 0 then tag_set.tags[#tag_set.tags] = tag_set.tags[#tag_set.tags] .. "<lb:" .. concat(tag_set.labels, ",") .. ">" end if #retval > 0 then insert(retval, ";") end extend(retval, tag_set.tags) end return retval else for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = nil end return tag_sets end end -- Test function, callable externally. function export.test_combine_tag_sets_into_multipart(frame) local iparams = { [1] = {list = true, required = true}, lang = {required = true}, } local args = require("Module:parameters").process(frame.args, iparams) local lang = require("Module:languages").getByCode(args.lang, true) local combined_tags = export.combine_tag_sets_into_multipart(args[1], lang) return concat(combined_tags, "|") end local function can_merge(entry, candidate) for _, key in ipairs{"pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms"} do if not deep_equals(entry[key], candidate[key]) then return false end end return true end -- Check whether `entry` (an object describing a given non-lemma form, with properties such as `pronunc` for -- pronunciation, `def` for definition, etc.) can be merged with any of the existing entries listed in `candidates`. -- "Can be merged" means that all relevant properties (basically, everything but the definition) can are the same. -- Return the first such candidate found, or nil if no candidates match `entry`. local function find_mergeable(entry, candidates) for _, candidate in ipairs(candidates) do if can_merge(entry, candidate) then return candidate end end return nil end -- Merge multiple entries into one if they differ only in the definition, with all other -- properties the same. The combined entry has multiple definition lines. We then do -- further frobbing of {{infl of}} lines: -- -- 1. Convert lang= param to param 1 (there shouldn't be any remaining cases of accelerator -- modules generating {{infl of}} templates with lang=, but we do this just in case). -- 2. Combine adjacent {{infl of}} lines that differ only in the tags, e.g.: -- -- # {{infl of|la|bonus||nom|m|s}} -- # {{infl of|la|bonus||nom|n|s}} -- # {{infl of|la|bonus||acc|n|s}} -- # {{infl of|la|bonus||voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- 3. Further group {{infl of}} lines with multiple tag sets (as may be generated b y -- the previous step) using multipart tags, e.g. for the Latin entry ''bonum'', -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom//acc//voc|n|s}} -- -- This grouping can group across multiple dimensions, e.g. for the Latin entry ''bonīs'', -- -- # {{infl of|la|bonus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} -- -- becomes -- -- # {{infl of|la|bonus||dat//abl|m//f//n|p}} -- -- Another complex real-world example, for the Old English weak adjective form ''dēorenan'': -- -- # {{infl of|ang|dēoren||wk|acc|m|sg|;|wk|acc|f|sg|;|wk|gen|m|sg|;|wk|gen|f|sg|;|wk|gen|n|sg|;|wk|dat|m|sg|;|wk|dat|f|sg|;|wk|dat|n|sg|;|wk|ins|m|sg|;|wk|ins|f|sg|;|wk|ins|n|sg|;|wk|nom|m|pl|;|wk|nom|f|pl|;|wk|nom|n|pl|;|wk|acc|m|pl|;|wk|acc|f|pl|;|wk|acc|n|pl}} -- -- becomes -- -- # {{infl of|ang|dēoren||wk|acc|m//f|sg|;|wk|gen//dat//ins|m//f//n|sg|;|wk|nom//acc|m//f//n|pl}} -- -- Here, 17 separate tag sets are combined down into 3. local function merge_entries(entries_obj) local entries_new = {} -- First, if overrides are supplied, try to eliminate entries with duplicate overrides. local saw_override = false for _, entry in ipairs(entries_obj.entries) do if entry.override then saw_override = true break end end if saw_override then for _, entry in ipairs(entries_obj.entries) do -- If some entries have an override and some don't, only deduplicate the ones with an override and -- include all the ones without an override. FIXME: Deduplicate the non-overridden ones using the -- algorithm below, and provide a custom function for deduplicating overrides. if not entry.override then insert(entries_new, entry) else insert_if_not(entries_new, entry, { key = function(entry) return entry.override end, }) end end entries_obj.entries = entries_new return end -- First rewrite {{infl of|...|lang=LANG}} to {{infl of|LANG|...}} for _, entry in ipairs(entries_obj.entries) do local params = entry.def:match("^{{infl of|([^{}]+)}}$") if not params then params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if params then params = split(params, "|", true) local new_params = {} for _, param in ipairs(params) do local lang = param:match("^lang=(.*)$") if lang then insert(new_params, 1, lang) else insert(new_params, param) end end entry.def = "{{infl of|" .. concat(new_params, "|") .. "}}" end end -- Merge entries that match in all of the following properties: -- "pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms" -- This will merge any two mergeable entries even if non-consecutive. -- The definitions of the merged entries do not have to match, but any matching -- definitions will be deduped. for _, entry in ipairs(entries_obj.entries) do -- See if this entry can be merged with any previous entry. local merge_entry = find_mergeable(entry, entries_new) if merge_entry then local duplicate_def = false -- If we can merge, check whether the definition of the new entry is -- the same as any previous definitions. for _, def in ipairs(merge_entry.defs) do if def == entry.def then duplicate_def = true break end end if not duplicate_def then insert(merge_entry.defs, entry.def) end else entry.defs = {entry.def} insert(entries_new, entry) end end -- FIXME: Use the template parser for this. -- Combine the definitions for each entries, merging all {{infl of}} calls -- into one such call with multiple tag sets. for _, entry in ipairs(entries_new) do local existing_defs = {} for _, new_def in ipairs(entry.defs) do local did_merge = false local new_params = new_def:match("^{{infl of|([^{}]+)}}$") if not new_params then new_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if new_params then -- The new definition is {{infl of}}. See if there is an -- {{infl of}} among the definitions seen so far. for i, existing_def in ipairs(existing_defs) do local existing_params = existing_def:match("^{{infl of|([^{}]+)}}$") if not existing_params then existing_params = existing_def:match("^{{inflection of|([^{}]+)}}$") end if existing_params then -- Merge the existing and new {{infl of}} calls. -- Find the last unnamed parameter of the first template. existing_params = split(existing_params, "|", true) local last_numbered_index for j, param in ipairs(existing_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Add grammar tags of the second template new_params = split(new_params, "|", true) local tags = {} local n = 0 for _, param in ipairs(new_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, -- which don't indicate grammar tags if n >= 4 then -- Now append the tags insert(tags, param) end end end -- Add the new parameters after the existing ones existing_params[last_numbered_index] = existing_params[last_numbered_index] .. "|;|" .. concat(tags, "|") existing_defs[i] = "{{infl of|" .. concat(existing_params, "|") .. "}}" did_merge = true break end end end if not did_merge then insert(existing_defs, new_def) end end entry.def = concat(existing_defs, "\n# ") end -- Now combine tag sets inside a multiple-tag-set {{infl of}} call for _, entry in ipairs(entries_new) do local infl_of_params = entry.def:match("^{{infl of|([^{}]+)}}$") if not infl_of_params then infl_of_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if infl_of_params then infl_of_params = split(infl_of_params, "|", true) -- Find the last unnamed parameter local last_numbered_index for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Split the params in three: -- (1) Params before the inflection tags, and any named params mixed in with the tags -- (2) The tags themselves -- (3) Named params after the tags local pre_tag_params = {} local tags = {} local post_tag_params = {} local n = 0 for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, which don't indicate grammar tags if n >= 4 then insert(tags, param) else insert(pre_tag_params, param) end elseif n >= last_numbered_index then insert(post_tag_params, param) else insert(pre_tag_params, param) end if not param:find("=", nil, true) then last_numbered_index = j end end -- Now combine tag sets. tags = export.combine_tag_sets_into_multipart(tags, entries_obj.lang) -- Put the template back together. local combined_params = append(pre_tag_params, tags, post_tag_params) entry.def = "{{infl of|" .. concat(combined_params, "|") .. "}}" end end entries_obj.entries = entries_new end local function merge_field(entries, field) local seen_fields = create_ordered_set() for _, entry in ipairs(entries) do local fieldval = entry[field] if fieldval then if type(fieldval) == "table" then -- already a table else fieldval = split(fieldval, "\n", true) end for _, val in ipairs(fieldval) do if val ~= "" then -- skip newlines, including if there's a final newline when split add_item(seen_fields, val) end end end end return seen_fields.array end local function default_merge_pronunciation(entries_obj) local pronuncs = merge_field(entries_obj.entries, "pronunc") if #pronuncs > 0 then return concat(pronuncs, "\n") else return nil end end local function generate_merged_pronunciation(entries_obj, lang_module) entries_obj.pronunciation = (lang_module and lang_module.generate_pronunciation or default_merge_pronunciation)(entries_obj) end local function default_merge_etymology(entries_obj) local etyms = merge_field(entries_obj.entries, "etymology") if #etyms > 1 then -- Hack! If multiple etymology entries, put a * before each one so they don't run together. -- In such a case we may be better off using a custom merge function. for i, item in ipairs(etyms) do etyms[i] = "* " .. item end end if #etyms > 0 then return concat(etyms, "\n") else return nil end end local function generate_merged_etymology(entries_obj, lang_module) entries_obj.etymology = (lang_module and lang_module.generate_etymology or default_merge_etymology)(entries_obj) end local function entries_to_text(entries_obj) for i, entry in ipairs(entries_obj.entries) do if entry.override then entry = "\n" ..(entry.override or "") else entry = "\n\n" .. "===" .. entry.pos_header .. "===\n" .. entry.head .. "\n\n" .. "# " .. entry.def .. (entry.inflection and "\n\n====Inflection====\n" .. entry.inflection or "") .. (entry.declension and "\n\n====Declension====\n" .. entry.declension or "") .. (entry.conjugation and "\n\n====Conjugation====\n" .. entry.conjugation or "") .. (entry.altforms and "\n\n====Alternative forms====\n" .. entry.altforms or "") .. -- FIXME, if there are multiple entries, there should either be only one merged L3 Mutation or several -- L4 Mutation sections. Not yet implemented. (entry.mutation and "\n\n===Mutation===\n" .. entry.mutation or "") end entries_obj.entries[i] = entry end return "==" .. entries_obj.lang:getCanonicalName() .. "==" .. (entries_obj.etymology and "\n\n===Etymology===\n" .. entries_obj.etymology or "") .. (entries_obj.pronunciation and "\n\n===Pronunciation===\n" .. entries_obj.pronunciation or "") .. concat(entries_obj.entries) end local function split_and_zip_term_and_tr(encoded_term, encoded_tr) local terms = split(encoded_term, split_term_regex) local trs = encoded_tr and split(encoded_tr, split_term_regex) or {} if #trs > #terms then error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, encoded_tr=%s"): format(#trs, #terms, encoded_term, encoded_tr)) end local result = {} for i, term in ipairs(terms) do local tr = trs[i] if tr == "" then tr = nil end insert(result, {term = term, tr = tr}) end return result end local function paste_term_tr(termobj) if termobj.tr then return termobj.term .. "//" .. termobj.tr else return termobj.term end end function export.generate(frame) local required = {required = true} local list_allow_holes = {list = true, allow_holes = true} local fparams = { lang = {required = true, type = "language"}, origin_pagename = required, target_pagename = required, num = {required = true, type = "number"}, pos = list_allow_holes, form = list_allow_holes, gender = list_allow_holes, transliteration = list_allow_holes, origin = list_allow_holes, origin_transliteration = list_allow_holes, -- I'm pretty sure this is actually required and must have args.num entries in it. target = list_allow_holes, } local args = require("Module:parameters").process(frame.args, fparams, nil, "accel", "generate") local lang = args.lang -- Try to use a language-specific module, if one exists. local module_lang, lang_module = lang while module_lang do lang_module = safe_require("Module:accel/" .. module_lang:getCode()) if lang_module ~= nil then break end module_lang = module_lang:getParent() end local entries = {} -- Generate each entry local seen_origins = create_ordered_set() local seen_targets = create_ordered_set() local params_list = {} for i = 1, args.num do local params = { lang = lang, origin_pagename = args.origin_pagename, target_pagename = args.target_pagename, pos = args.pos[i] or error("The argument \"pos\" is missing for entry " .. i), form = args.form[i] or error("The argument \"form\" is missing for entry " .. i), gender = args.gender[i], origin = args.origin[i] or error("The argument \"origin\" is missing for entry " .. i), origin_transliteration = args.origin_transliteration[i], target = args.target[i], transliteration = args.transliteration[i], num_entries = args.num, } params.form = params.form:gsub("&#124;", "|") params.targets = split_and_zip_term_and_tr(params.target, params.transliteration) params.origins = split_and_zip_term_and_tr(params.origin, params.origin_transliteration) for _, origin in ipairs(params.origins) do add_item(seen_origins, paste_term_tr(origin), origin) end for _, target in ipairs(params.targets) do add_item(seen_targets, paste_term_tr(target), target) end insert(params_list, params) end -- Generate entries. for _, params in ipairs(params_list) do -- Add overall stats to all params objects. params.seen_origins = seen_origins params.seen_targets = seen_targets -- Make a default entry. local entry = export.default_entry(params) if lang_module then lang_module.generate(params, entry) end -- Add it to the list. insert(entries, entry) end local entries_obj = { entries = entries, lang = lang, lang_module = lang_module, seen_origins = seen_origins, seen_targets = seen_targets, } -- Merge entries if possible. merge_entries(entries_obj) -- Now generate merged pronunciation and etymology, either using a custom generation function or by merging the -- individually specified pronunciation and etymology lines. generate_merged_pronunciation(entries_obj, lang_module) generate_merged_etymology(entries_obj, lang_module) return entries_to_text(entries_obj) end function export.generate_JSON(frame) local success, entries = pcall(export.generate, frame) -- If success is false, entries is an error message. -- It appears we need to specify `messages` or nothing will be displayed. local ret = { [success and "entries" or "error"] = entries, messages = require("Module:array")()} return require("Module:JSON").toJSON(ret) end return export o72vbd2o82eoddnzhayo2bi2n2akpn8 292870 292869 2026-09-19T03:48:04Z Saimawnkham 9 292870 Scribunto text/plain local export = {} local form_of_module = "Module:form of" local form_of_data_module = "Module:form of/data" local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local append = m_table.append local assert = assert local concat = table.concat local contains = m_table.contains local deep_copy = m_table.deepCopy local deep_equals = require("Module:table/deepEquals") local extend = m_table.extend local insert = table.insert local insert_if_not = m_table.insertIfNot local list_to_set = m_table.listToSet local remove = table.remove local split = m_str_utils.split local safe_require = require("Module:load").safe_require local size = m_table.size local u = m_str_utils.char local MARK_CONJOINED_SHORTCUT = u(0xFFF0) local split_term_regex = "%*~!" --[=[ The purpose of the acceleration code is to auto-generate pages for non-lemma forms (inflections) of a given lemma. The way it works is approximately as follows: 1. When you have the accelerator gadget in [[MediaWiki:Gadget-AcceleratedFormCreation.js]] enabled, and you click on a green link, the JavaScript code gathers all the green links on the page that have the same language and pagename as the clicked-on green link and sends them to the generate_JSON() function in this module, which is a thin wrapper around the generate() function. Each individual green link maps to an "entry" and has associated accelerator properties that were specified by the `accel` object passed into full_link() in [[Module:links]]. Note that there can -- be multiple entries passed to a single generate() call for various reasons, e.g.: (1) Inside of a single inflection table there is syncretism, with two different inflections having the same form; e.g. the same Latin form ''bonī'' occurs in three different inflections of the lemma [[bonus]]: the masculine genitive singular, neuter genitive singular and masculine nominative plural. Hence there will be three entries. (2) Inside of a single inflection table there are inflections that are spelled differently but map to the same pagename due to diacritic removal; e.g. Latin ''bona'' (occurring in five different inflections: the feminine nominative and vocative singular and the neuter nominative, accusative and vocative plural) and Latin ''bonā'' (the feminine ablative singular) will be merged together into a single call to generate() with six entries. (3) There are two or more inflection tables, partly or completely duplicative. E.g. if a given lemma has Etymology 1 and Etymology 2 sections, and the inflection of each separate etymology is the same and associated with its own table, then clicking on any green link will result in (at least) two entries. 2. The generate() function is invoked like a template call, meaning all its arguments come as strings and need to be parsed. It does the following steps: (1) Parse its arguments. (2) Convert each set of per-entry parameters into a `params` object. (3) For each `params` object, generate a default entry, then, if there is a language-specific accelerator submodule, call that module to customize the entry. (4) Merge duplicate entries. This not only looks for completely duplicated entries but tries to merge entries that differ only in the definition. In general, this will result in multiple definition lines under a single entry, but definition lines that consist of calls to {{infl of}} will be further merged. For example, for the example above with ''bona'' and ''bonā'', the five inflections of ''bona'' will be merged into a single entry with a single call to {{infl of}} that looks something like this: # {{infl of|la|bonus||nom//voc|f|s|;|nom//acc//voc|n|p}} In other words, not only are the inflections combined into a single call to {{infl of}}, but inflections with partly shared tags are further merged. (5) Generate the Pronunciation and Etymology sections that go at the top, above all the entries. This is done either by calling custom generate functions in the language-specific accelerator submodule, or (if those aren't given) by merging the individual pronunciation and etymology lines, removing duplicates. Note that the default entry generated in step (3) has no pronunciation or etymology (which are generated only by a language-specific submodule), so by default there will be no Pronunciation or Etymology section. (6) Assemble the parts of each entry into a string and paste all the strings together, along with any combined Pronunciation and Etymology sections, to form the text of the entire per-language L2 section. Note that if you have enabled the OrangeLinks gadget, accelerator entries can be created on already-existing pages, as long as there's no L2 section for the language of the entries. ]=] -- A simple implementation of an ordered set. local function create_ordered_set() return { array = {}, set = {}, } end -- Add an item to the ordered set. `squashed_item` is a representation of the item as a string or number, so that we -- can use it as the key in a set. `orig_item` is the original item and can be omitted if it's the same as -- `squashed_item`. local function add_item(ordered_set, squashed_item, orig_item) if not ordered_set.set[squashed_item] then insert(ordered_set.array, orig_item or squashed_item) ordered_set.set[squashed_item] = true end end -- Generate the default entry function export.default_entry(params) local function make_head(pos, default_gender) local gender = params.gender or default_gender local genderspec = "" if gender then local genders = split(gender, ",", true) for i, g in ipairs(genders) do if i == 1 then genders[i] = "|g=" .. g else genders[i] = "|g" .. i .. "=" .. g end end genderspec = concat(genders) end local parts = {} insert(parts, "{{head|" .. params.lang:getCode() .. "|" .. pos) for i, target in ipairs(params.targets) do local paramnum = i == 1 and "" or tostring(i) if target.term ~= params.target_pagename then insert(parts, ("|head%s=%s"):format(paramnum, target.term)) end if target.tr then insert(parts, ("|tr%s=%s"):format(paramnum, target.tr)) end end insert(parts, genderspec .. "}}") return concat(parts) end local function make_def(tempname, extra_params) local parts = {} insert(parts, "{{" .. tempname .. "|" .. params.lang:getCode()) for i, origin in ipairs(params.origins) do local termparam, trparam if i == 1 then termparam = "" trparam = "tr=" else termparam = "term" .. i .. "=" trparam = "tr" .. i .. "=" end insert(parts, ("|%s%s"):format(termparam, origin.term)) if origin.tr then insert(parts, ("|%s%s"):format(trparam, origin.tr)) end end insert(parts, (extra_params or "") .. "}}") return concat(parts) end local function no_rule_error(params) -- FIXME, verify the 2 below (number of stack frames to pop off); may be wrong now that we moved this function -- underneath default_entry(). return error(('No rule for "%s" in language "%s" ("%s").') :format(params.form, params.lang:getCode(), params.lang:getCanonicalName()), 2) end local entry = { etymology = nil, pronunc = nil, pos_header = mw.getContentLanguage():ucfirst(params.pos), head = make_head(params.pos .. " form"), def = make_def("infl of", "||" .. params.form), inflection = nil, declension = nil, conjugation = nil, mutation = nil, altforms = nil, -- also pass in functions make_head = make_head, make_def = make_def, no_rule_error = no_rule_error, } -- Exceptions for some forms local templates = { ["p"] = "plural of", ["f"] = "feminine of", ["f|s"] = "feminine singular of", ["m|p"] = "masculine plural of", ["f|p"] = "feminine plural of", ["pejorative"] = "pejorative of", } if params.form == "comparative" or params.form == "superlative" or params.form == "equative" then entry.head = make_head(params.form .. " " .. params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "adjective" and "|POS=" .. params.pos or "") elseif params.form == "diminutive" or params.form == "augmentative" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "noun" and "|POS=" .. params.pos or "") elseif params.form == "f" and params.pos == "noun" then entry.head = make_head(params.pos, "f") entry.def = make_def("female equivalent of") elseif (params.form == "past|part" or params.form == "past|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("past participle") elseif (params.form == "perf|part" or params.form == "perf|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("perfect participle") elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("present participle") elseif (params.form == "abstract noun" or params.form == "verbal noun") and params.pos == "noun" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of") elseif templates[params.form] then entry.def = make_def(templates[params.form]) end return entry end -- Canonicalize multipart shortcuts (e.g. "123" -> "1//2//3") and non-conjoined list shortcuts (e.g. "1s" -> -- {"1", "s"}); leave others alone, including conjoined shortcuts. The purpose of canonicalizing list shortcuts is so -- that e.g. we can combine '1s|pres|ind' with '2|s|pres|ind'. However, conjoined shortcuts like "e-form" -> -- {"pl", ";", "def", "s", "attr"} would require significantly more logic to handle correctly, and it's highly unlikely -- we could find another similar enough tag to combine with (if it even makes sense to do so at all). local function canonicalize_multipart_and_list_shortcuts(tags, lang) local result = {} for _, tag in ipairs(tags) do local expansion = require(form_of_module).lookup_shortcut(tag, lang) if type(expansion) == "string" and not expansion:find("//", nil, true) then expansion = tag end if type(expansion) == "table" then if contains(expansion, ";") then insert(result, tag) else extend(result, expansion) end else insert(result, expansion) end end return result end -- Split a multipart tag into component tags, normalize each component, and return the resulting list. If -- MAP_TO_CANONICAL_SHORTCUT is given, attempt to map each normalized component tag to its "canonical shortcut", i.e. -- the first shortcut listed among its shortcuts. -- -- If given a two-level multipart tag such as "1:sg//3:pl", the resulting return value will be {"first:singular", -- "third:plural"}, or {"1:s", "3:p"} if MAP_TO_CANONICAL_SHORTCUT is given. local function split_and_normalize_tag(tag, lang, map_to_canonical_shortcut) local m_form_of = require(form_of_module) local normalized = m_form_of.normalize_tag_set({tag}, lang) if #normalized > 1 then -- Tag is a conjoined shortcut. We leave these in their non-canonicalized form; see comment above -- canonicalize_multipart_and_list_shortcuts(). But we mark them with a special character so we know that -- they are non-normalized conjoined shortcuts, and later remove the mark. return {tag .. MARK_CONJOINED_SHORTCUT} end normalized = normalized[1] assert(#normalized == 1, "Internal error: Encountered list tag " .. tag .. ", which should have been canonicalized earlier") local multipart = normalized[1] if type(multipart) == "string" then multipart = {multipart} end if map_to_canonical_shortcut then local function get_canonical_shortcut(tag, lang) local tagobj = m_form_of.lookup_tag(tag, lang) local tag_shortcuts = tagobj and tagobj[require(form_of_data_module).SHORTCUTS] if tag_shortcuts and type(tag_shortcuts) == "table" then tag_shortcuts = tag_shortcuts[1] end return tag_shortcuts or tag end for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart for j, single_tag in ipairs(mpart) do mpart[j] = get_canonical_shortcut(single_tag, lang) end multipart[i] = concat(mpart, ":") else multipart[i] = get_canonical_shortcut(mpart, lang) end end else for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart multipart[i] = concat(mpart, ":") end end end return multipart end -- Given a normalized tag, return its tag type, or "unknown" if a tag type -- cannot be located (either the tag isn't recognized or for some reason -- it doesn't specify a tag type). local function get_normalized_tag_type(tag, lang) -- Make sure to return 'unknown' for non-normalized conjoined shortcuts as well as URL's and parts of two-level -- multipart tags (both of the latter two have colons in them). NOTE: In practice, the presence of the -- MARK_CONJOINED_SHORTCUT means we won't find a normalized tag having the same name even if one would exist in the -- absence of this mark, so this is more of an optimization. if tag:find(MARK_CONJOINED_SHORTCUT) or tag:find(":") then return "unknown" end local m_form_of = require(form_of_module) local tagobj = m_form_of.lookup_tag(tag, lang) return tagobj and tagobj[require(form_of_data_module).TAG_TYPE] or "unknown" end --[=[ Combine multiple semicolon-separated tag sets into multipart tags if possible. We combine tag sets that differ in only one tag in a given dimension, and repeat this until no changes in case we can reduce along multiple dimensions, e.g. {{infl of|la|canus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} {{infl of|la|canus||dat//abl|m//f//n|p}} `tag_sets` is a list of objects of the form {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}, i.e. of the same format as `data.tag_sets` as passed to tagged_inflections() in [[Module:form of]]. Also accepted is an "old-style" list of strings, one element per tag, with tag sets separated by a semicolon, the same as in {{infl of}}. The return value is in the same format as was passed into `tag_sets`. If an old-style tag list was passed in, and labels are present, they are attached to the last tag in a tag set using an inline modifier. ]=] function export.combine_tag_sets_into_multipart(tag_sets, lang, POS) if type(tag_sets) ~= "table" then error("`tag_sets` should be a table but is a(n) `" .. type(tag_sets) .. "`") end if not tag_sets[1] then error("Expected at least one item in `tag_sets`") end local old_style_tags = false if type(tag_sets[1]) == "string" then old_style_tags = true end -- First, as an optimization, make sure there are multiple tag sets. Otherwise, do nothing. if old_style_tags then local found_semicolon = false for _, tag in ipairs(tag_sets) do if tag == ";" then found_semicolon = true break end end if not found_semicolon then return tag_sets end elseif #tag_sets == 1 then return tag_sets end local m_form_of = require(form_of_module) -- If old-style tags (list of strings), convert to list of tag set objects. if old_style_tags then tag_sets = m_form_of.split_tag_set(tag_sets) for i, tag_set in ipairs(tag_sets) do tag_sets[i] = m_form_of.parse_tag_set_properties(tag_set) end else -- Otherwise, make a copy as we may modify the list in-place. tag_sets = deep_copy(tag_sets) end -- Repeat until no changes can be made. while true do -- First, determine the auto-generated label for each tag set and append to any user-specified labels. -- Best to do this on the raw tag sets, before canonicalize_multipart_and_list_shortcuts(). Then canonicalize -- 1s etc. into 1|s. for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = tag_set.labels and deep_copy(tag_set.labels) or {} local normalized_tag_sets = m_form_of.normalize_tag_set(tag_set.tags, lang) for _, normalized_tag_set in ipairs(normalized_tag_sets) do local this_labels = select(2, m_form_of.fetch_categories_and_labels(normalized_tag_set, lang, POS)) extend(tag_set.labels_with_auto, this_labels) end tag_set.tags = canonicalize_multipart_and_list_shortcuts(tag_set.tags, lang) end local canonicalized_tag_sets = tag_sets local old_canonicalized_tag_sets = canonicalized_tag_sets -- Try combining in two different styles ("adjacent-first" = do two passes, where the first pass only combines -- adjacent tag sets, while the second pass combines nonadjacent tag sets; "all-first" = do one pass combining -- nonadjacent tag sets). Sometimes one is better, sometimes the other. -- -- An example where adjacent-first is better: -- -- {{infl of|la|medius||m|acc|s|;|n|nom|s|;|n|acc|s|;|n|voc|s}} -- -- all-first results in -- -- {{infl of|la|medius||m//n|acc|s|;|n|nom//voc|s}} -- -- which isn't ideal. -- -- If we do adjacent-first, we get -- -- {{infl of|la|medius||m|acc|s|;|n|nom//acc//voc|s}} -- -- which is much better. -- -- The opposite happens in -- -- {{infl of|grc|βουλόμενος||n|nom|s|;|m|acc|s|;|n|acc|s|;|n|voc|s}} -- -- where all-first results in -- -- {{infl of|grc|βουλόμενος||n|nom//acc//voc|s|;|m|acc|s}} -- -- which is better than the result from adjacent-first, which is -- -- {{infl of|grc|βουλόμενος||n|nom//voc|s|;|m//n|acc|s}} -- -- To handle this conundrum, we try both, and look to see which one results in fewer "combinations" (where a -- tag with // in it counts as a combination). If both are different but have the same # of combinations, we -- prefer adjacent-first, we seems generally a better approach. local tag_sets_by_style = {} for _, combine_style in ipairs({"adjacent-first", "all-first"}) do -- Now, we do two passes. The first pass only combines adjacent tag sets, while the second pass combines -- nonadjacent tag sets. Copy canonicalized_tag_sets, since we destructively modify the list. local this_tag_sets = deep_copy(canonicalized_tag_sets) local combine_passes if combine_style == "adjacent-first" then combine_passes = {"adjacent", "all"} else combine_passes = {"all"} end for _, combine_pass in ipairs(combine_passes) do local tag_ind = 1 while tag_ind <= #this_tag_sets do local from, to if combine_pass == "adjacent" then if tag_ind == 1 then from = 1 to = 0 else from = tag_ind - 1 to = tag_ind - 1 end else from = 1 to = tag_ind - 1 end local inner_broken = false for prev_tag_ind = from, to do local cur_tag_set = this_tag_sets[prev_tag_ind] local tag_set = this_tag_sets[tag_ind] if #cur_tag_set.tags == #tag_set.tags and deep_equals(cur_tag_set.labels_with_auto, tag_set.labels_with_auto) then local mismatch_ind = nil local innermost_broken = false for i = 1, #tag_set.tags do local tag1 = split_and_normalize_tag(cur_tag_set.tags[i], lang) local tag2 = split_and_normalize_tag(tag_set.tags[i], lang) if not deep_equals(list_to_set(tag1), list_to_set(tag2)) then if mismatch_ind then innermost_broken = true break end local combined_dims = {} for _, tag in ipairs(tag1) do combined_dims[get_normalized_tag_type(tag, lang)] = true end for _, tag in ipairs(tag2) do combined_dims[get_normalized_tag_type(tag, lang)] = true end if size(combined_dims) == 1 and not combined_dims["unknown"] then mismatch_ind = i else innermost_broken = true break end end end if not innermost_broken then -- No break, we either match perfectly or are combinable if not mismatch_ind then -- Two identical tag sets remove(this_tag_sets, tag_ind) inner_broken = true break else -- Combine tag sets at mismatch_ind, using the canonical shortcuts. local tag1 = split_and_normalize_tag(cur_tag_set.tags[mismatch_ind], lang, true) local tag2 = split_and_normalize_tag(tag_set.tags[mismatch_ind], lang, true) -- Combine the normalized tags and remove the special MARK_CONJOINED_SHORTCUT mark -- on conjoined shortcuts so we have normal tags again. local combined_tag = concat(append(tag1, tag2), "//"):gsub(MARK_CONJOINED_SHORTCUT, "") local new_tag_set = {} for i = 1, #cur_tag_set.tags do if i == mismatch_ind then insert(new_tag_set, combined_tag) else local cur_canon_tag = split_and_normalize_tag(cur_tag_set.tags[i], lang) local canon_tag = split_and_normalize_tag(tag_set.tags[i], lang) assert(deep_equals(list_to_set(cur_canon_tag), list_to_set(canon_tag))) insert(new_tag_set, cur_tag_set.tags[i]) end end this_tag_sets[prev_tag_ind].tags = new_tag_set remove(this_tag_sets, tag_ind) inner_broken = true break end end end end if not inner_broken then -- No break from inner for-loop. Break from that loop indicates that we found that the current -- tag set can be combined with a preceding tag set, did the combination and deleted the -- current tag set. The next iteration then processes the same numbered tag set again (which is -- actually the following tag set, because we deleted the tag set before it). No break -- indicates that we couldn't combine the current tag set with any preceding tag set, and need -- to advance to the next one. tag_ind = tag_ind + 1 end end end tag_sets_by_style[combine_style] = this_tag_sets end if not deep_equals(tag_sets_by_style["adjacent-first"], tag_sets_by_style["all-first"]) then local function num_combinations(group) local num_combos = 0 for _, tag_set in ipairs(group) do for _, tag in ipairs(tag_set.tags) do if tag:find("//") then num_combos = num_combos + 1 end end end return num_combos end local num_adjacent_first_combos = num_combinations(tag_sets_by_style["adjacent-first"]) local num_all_first_combos = num_combinations(tag_sets_by_style["all-first"]) if num_adjacent_first_combos < num_all_first_combos then tag_sets = tag_sets_by_style["adjacent-first"] elseif num_all_first_combos < num_adjacent_first_combos then tag_sets = tag_sets_by_style["all-first"] else tag_sets = tag_sets_by_style["adjacent-first"] end else -- Both are the same, pick either one tag_sets = tag_sets_by_style["adjacent-first"] end if deep_equals(tag_sets, old_canonicalized_tag_sets) then break end -- FIXME, we should consider reversing the transformation 1s -> 1|s, -- but it's complicated to figure out when the transformation occurred; -- not really important as both are equivalent end if old_style_tags then local retval = {} for _, tag_set in ipairs(tag_sets) do if tag_set.labels and #tag_set.labels > 0 then tag_set.tags[#tag_set.tags] = tag_set.tags[#tag_set.tags] .. "<lb:" .. concat(tag_set.labels, ",") .. ">" end if #retval > 0 then insert(retval, ";") end extend(retval, tag_set.tags) end return retval else for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = nil end return tag_sets end end -- Test function, callable externally. function export.test_combine_tag_sets_into_multipart(frame) local iparams = { [1] = {list = true, required = true}, lang = {required = true}, } local args = require("Module:parameters").process(frame.args, iparams) local lang = require("Module:languages").getByCode(args.lang, true) local combined_tags = export.combine_tag_sets_into_multipart(args[1], lang) return concat(combined_tags, "|") end local function can_merge(entry, candidate) for _, key in ipairs{"pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms"} do if not deep_equals(entry[key], candidate[key]) then return false end end return true end -- Check whether `entry` (an object describing a given non-lemma form, with properties such as `pronunc` for -- pronunciation, `def` for definition, etc.) can be merged with any of the existing entries listed in `candidates`. -- "Can be merged" means that all relevant properties (basically, everything but the definition) can are the same. -- Return the first such candidate found, or nil if no candidates match `entry`. local function find_mergeable(entry, candidates) for _, candidate in ipairs(candidates) do if can_merge(entry, candidate) then return candidate end end return nil end -- Merge multiple entries into one if they differ only in the definition, with all other -- properties the same. The combined entry has multiple definition lines. We then do -- further frobbing of {{infl of}} lines: -- -- 1. Convert lang= param to param 1 (there shouldn't be any remaining cases of accelerator -- modules generating {{infl of}} templates with lang=, but we do this just in case). -- 2. Combine adjacent {{infl of}} lines that differ only in the tags, e.g.: -- -- # {{infl of|la|bonus||nom|m|s}} -- # {{infl of|la|bonus||nom|n|s}} -- # {{infl of|la|bonus||acc|n|s}} -- # {{infl of|la|bonus||voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- 3. Further group {{infl of}} lines with multiple tag sets (as may be generated b y -- the previous step) using multipart tags, e.g. for the Latin entry ''bonum'', -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom//acc//voc|n|s}} -- -- This grouping can group across multiple dimensions, e.g. for the Latin entry ''bonīs'', -- -- # {{infl of|la|bonus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} -- -- becomes -- -- # {{infl of|la|bonus||dat//abl|m//f//n|p}} -- -- Another complex real-world example, for the Old English weak adjective form ''dēorenan'': -- -- # {{infl of|ang|dēoren||wk|acc|m|sg|;|wk|acc|f|sg|;|wk|gen|m|sg|;|wk|gen|f|sg|;|wk|gen|n|sg|;|wk|dat|m|sg|;|wk|dat|f|sg|;|wk|dat|n|sg|;|wk|ins|m|sg|;|wk|ins|f|sg|;|wk|ins|n|sg|;|wk|nom|m|pl|;|wk|nom|f|pl|;|wk|nom|n|pl|;|wk|acc|m|pl|;|wk|acc|f|pl|;|wk|acc|n|pl}} -- -- becomes -- -- # {{infl of|ang|dēoren||wk|acc|m//f|sg|;|wk|gen//dat//ins|m//f//n|sg|;|wk|nom//acc|m//f//n|pl}} -- -- Here, 17 separate tag sets are combined down into 3. local function merge_entries(entries_obj) local entries_new = {} -- First, if overrides are supplied, try to eliminate entries with duplicate overrides. local saw_override = false for _, entry in ipairs(entries_obj.entries) do if entry.override then saw_override = true break end end if saw_override then for _, entry in ipairs(entries_obj.entries) do -- If some entries have an override and some don't, only deduplicate the ones with an override and -- include all the ones without an override. FIXME: Deduplicate the non-overridden ones using the -- algorithm below, and provide a custom function for deduplicating overrides. if not entry.override then insert(entries_new, entry) else insert_if_not(entries_new, entry, { key = function(entry) return entry.override end, }) end end entries_obj.entries = entries_new return end -- First rewrite {{infl of|...|lang=LANG}} to {{infl of|LANG|...}} for _, entry in ipairs(entries_obj.entries) do local params = entry.def:match("^{{infl of|([^{}]+)}}$") if not params then params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if params then params = split(params, "|", true) local new_params = {} for _, param in ipairs(params) do local lang = param:match("^lang=(.*)$") if lang then insert(new_params, 1, lang) else insert(new_params, param) end end entry.def = "{{infl of|" .. concat(new_params, "|") .. "}}" end end -- Merge entries that match in all of the following properties: -- "pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms" -- This will merge any two mergeable entries even if non-consecutive. -- The definitions of the merged entries do not have to match, but any matching -- definitions will be deduped. for _, entry in ipairs(entries_obj.entries) do -- See if this entry can be merged with any previous entry. local merge_entry = find_mergeable(entry, entries_new) if merge_entry then local duplicate_def = false -- If we can merge, check whether the definition of the new entry is -- the same as any previous definitions. for _, def in ipairs(merge_entry.defs) do if def == entry.def then duplicate_def = true break end end if not duplicate_def then insert(merge_entry.defs, entry.def) end else entry.defs = {entry.def} insert(entries_new, entry) end end -- FIXME: Use the template parser for this. -- Combine the definitions for each entries, merging all {{infl of}} calls -- into one such call with multiple tag sets. for _, entry in ipairs(entries_new) do local existing_defs = {} for _, new_def in ipairs(entry.defs) do local did_merge = false local new_params = new_def:match("^{{infl of|([^{}]+)}}$") if not new_params then new_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if new_params then -- The new definition is {{infl of}}. See if there is an -- {{infl of}} among the definitions seen so far. for i, existing_def in ipairs(existing_defs) do local existing_params = existing_def:match("^{{infl of|([^{}]+)}}$") if not existing_params then existing_params = existing_def:match("^{{inflection of|([^{}]+)}}$") end if existing_params then -- Merge the existing and new {{infl of}} calls. -- Find the last unnamed parameter of the first template. existing_params = split(existing_params, "|", true) local last_numbered_index for j, param in ipairs(existing_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Add grammar tags of the second template new_params = split(new_params, "|", true) local tags = {} local n = 0 for _, param in ipairs(new_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, -- which don't indicate grammar tags if n >= 4 then -- Now append the tags insert(tags, param) end end end -- Add the new parameters after the existing ones existing_params[last_numbered_index] = existing_params[last_numbered_index] .. "|;|" .. concat(tags, "|") existing_defs[i] = "{{infl of|" .. concat(existing_params, "|") .. "}}" did_merge = true break end end end if not did_merge then insert(existing_defs, new_def) end end entry.def = concat(existing_defs, "\n# ") end -- Now combine tag sets inside a multiple-tag-set {{infl of}} call for _, entry in ipairs(entries_new) do local infl_of_params = entry.def:match("^{{infl of|([^{}]+)}}$") if not infl_of_params then infl_of_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if infl_of_params then infl_of_params = split(infl_of_params, "|", true) -- Find the last unnamed parameter local last_numbered_index for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Split the params in three: -- (1) Params before the inflection tags, and any named params mixed in with the tags -- (2) The tags themselves -- (3) Named params after the tags local pre_tag_params = {} local tags = {} local post_tag_params = {} local n = 0 for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, which don't indicate grammar tags if n >= 4 then insert(tags, param) else insert(pre_tag_params, param) end elseif n >= last_numbered_index then insert(post_tag_params, param) else insert(pre_tag_params, param) end if not param:find("=", nil, true) then last_numbered_index = j end end -- Now combine tag sets. tags = export.combine_tag_sets_into_multipart(tags, entries_obj.lang) -- Put the template back together. local combined_params = {} for _, v in ipairs(pre_tag_params) do table.insert(combined_params, v) end for _, v in ipairs(tags) do table.insert(combined_params, v) end for _, v in ipairs(post_tag_params) do table.insert(combined_params, v) end entry.def = "{{infl of|" .. table.concat(combined_params, "|") .. "}}" end end entries_obj.entries = entries_new end local function merge_field(entries, field) local seen_fields = create_ordered_set() for _, entry in ipairs(entries) do local fieldval = entry[field] if fieldval then if type(fieldval) == "table" then -- already a table else fieldval = split(fieldval, "\n", true) end for _, val in ipairs(fieldval) do if val ~= "" then -- skip newlines, including if there's a final newline when split add_item(seen_fields, val) end end end end return seen_fields.array end local function default_merge_pronunciation(entries_obj) local pronuncs = merge_field(entries_obj.entries, "pronunc") if #pronuncs > 0 then return concat(pronuncs, "\n") else return nil end end local function generate_merged_pronunciation(entries_obj, lang_module) entries_obj.pronunciation = (lang_module and lang_module.generate_pronunciation or default_merge_pronunciation)(entries_obj) end local function default_merge_etymology(entries_obj) local etyms = merge_field(entries_obj.entries, "etymology") if #etyms > 1 then -- Hack! If multiple etymology entries, put a * before each one so they don't run together. -- In such a case we may be better off using a custom merge function. for i, item in ipairs(etyms) do etyms[i] = "* " .. item end end if #etyms > 0 then return concat(etyms, "\n") else return nil end end local function generate_merged_etymology(entries_obj, lang_module) entries_obj.etymology = (lang_module and lang_module.generate_etymology or default_merge_etymology)(entries_obj) end local function entries_to_text(entries_obj) for i, entry in ipairs(entries_obj.entries) do if entry.override then entry = "\n" ..(entry.override or "") else entry = "\n\n" .. "===" .. entry.pos_header .. "===\n" .. entry.head .. "\n\n" .. "# " .. entry.def .. (entry.inflection and "\n\n====Inflection====\n" .. entry.inflection or "") .. (entry.declension and "\n\n====Declension====\n" .. entry.declension or "") .. (entry.conjugation and "\n\n====Conjugation====\n" .. entry.conjugation or "") .. (entry.altforms and "\n\n====Alternative forms====\n" .. entry.altforms or "") .. -- FIXME, if there are multiple entries, there should either be only one merged L3 Mutation or several -- L4 Mutation sections. Not yet implemented. (entry.mutation and "\n\n===Mutation===\n" .. entry.mutation or "") end entries_obj.entries[i] = entry end return "==" .. entries_obj.lang:getCanonicalName() .. "==" .. (entries_obj.etymology and "\n\n===Etymology===\n" .. entries_obj.etymology or "") .. (entries_obj.pronunciation and "\n\n===Pronunciation===\n" .. entries_obj.pronunciation or "") .. concat(entries_obj.entries) end local function split_and_zip_term_and_tr(encoded_term, encoded_tr) local terms = split(encoded_term, split_term_regex) local trs = encoded_tr and split(encoded_tr, split_term_regex) or {} if #trs > #terms then error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, encoded_tr=%s"): format(#trs, #terms, encoded_term, encoded_tr)) end local result = {} for i, term in ipairs(terms) do local tr = trs[i] if tr == "" then tr = nil end insert(result, {term = term, tr = tr}) end return result end local function paste_term_tr(termobj) if termobj.tr then return termobj.term .. "//" .. termobj.tr else return termobj.term end end function export.generate(frame) local required = {required = true} local list_allow_holes = {list = true, allow_holes = true} local fparams = { lang = {required = true, type = "language"}, origin_pagename = required, target_pagename = required, num = {required = true, type = "number"}, pos = list_allow_holes, form = list_allow_holes, gender = list_allow_holes, transliteration = list_allow_holes, origin = list_allow_holes, origin_transliteration = list_allow_holes, -- I'm pretty sure this is actually required and must have args.num entries in it. target = list_allow_holes, } local args = require("Module:parameters").process(frame.args, fparams, nil, "accel", "generate") local lang = args.lang -- Try to use a language-specific module, if one exists. local module_lang, lang_module = lang while module_lang do lang_module = safe_require("Module:accel/" .. module_lang:getCode()) if lang_module ~= nil then break end module_lang = module_lang:getParent() end local entries = {} -- Generate each entry local seen_origins = create_ordered_set() local seen_targets = create_ordered_set() local params_list = {} for i = 1, args.num do local params = { lang = lang, origin_pagename = args.origin_pagename, target_pagename = args.target_pagename, pos = args.pos[i] or error("The argument \"pos\" is missing for entry " .. i), form = args.form[i] or error("The argument \"form\" is missing for entry " .. i), gender = args.gender[i], origin = args.origin[i] or error("The argument \"origin\" is missing for entry " .. i), origin_transliteration = args.origin_transliteration[i], target = args.target[i], transliteration = args.transliteration[i], num_entries = args.num, } params.form = params.form:gsub("&#124;", "|") params.targets = split_and_zip_term_and_tr(params.target, params.transliteration) params.origins = split_and_zip_term_and_tr(params.origin, params.origin_transliteration) for _, origin in ipairs(params.origins) do add_item(seen_origins, paste_term_tr(origin), origin) end for _, target in ipairs(params.targets) do add_item(seen_targets, paste_term_tr(target), target) end insert(params_list, params) end -- Generate entries. for _, params in ipairs(params_list) do -- Add overall stats to all params objects. params.seen_origins = seen_origins params.seen_targets = seen_targets -- Make a default entry. local entry = export.default_entry(params) if lang_module then lang_module.generate(params, entry) end -- Add it to the list. insert(entries, entry) end local entries_obj = { entries = entries, lang = lang, lang_module = lang_module, seen_origins = seen_origins, seen_targets = seen_targets, } -- Merge entries if possible. merge_entries(entries_obj) -- Now generate merged pronunciation and etymology, either using a custom generation function or by merging the -- individually specified pronunciation and etymology lines. generate_merged_pronunciation(entries_obj, lang_module) generate_merged_etymology(entries_obj, lang_module) return entries_to_text(entries_obj) end function export.generate_JSON(frame) local success, entries = pcall(export.generate, frame) -- If success is false, entries is an error message. -- It appears we need to specify `messages` or nothing will be displayed. local ret = { [success and "entries" or "error"] = entries, messages = require("Module:array")()} return require("Module:JSON").toJSON(ret) end return export cnkrigijhei7t4hbc83eerfxyahhgay 292872 292870 2026-09-19T04:05:41Z Saimawnkham 9 292872 Scribunto text/plain local export = {} local form_of_module = "Module:form of" local form_of_data_module = "Module:form of/data" local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local append = m_table.append local assert = assert local concat = table.concat local contains = m_table.contains local deep_copy = m_table.deepCopy local deep_equals = require("Module:table/deepEquals") local extend = m_table.extend local insert = table.insert local insert_if_not = m_table.insertIfNot local list_to_set = m_table.listToSet local remove = table.remove local split = m_str_utils.split local safe_require = require("Module:load").safe_require local size = m_table.size local u = m_str_utils.char local MARK_CONJOINED_SHORTCUT = u(0xFFF0) local split_term_regex = "%*~!" --[=[ The purpose of the acceleration code is to auto-generate pages for non-lemma forms (inflections) of a given lemma. The way it works is approximately as follows: 1. When you have the accelerator gadget in [[MediaWiki:Gadget-AcceleratedFormCreation.js]] enabled, and you click on a green link, the JavaScript code gathers all the green links on the page that have the same language and pagename as the clicked-on green link and sends them to the generate_JSON() function in this module, which is a thin wrapper around the generate() function. Each individual green link maps to an "entry" and has associated accelerator properties that were specified by the `accel` object passed into full_link() in [[Module:links]]. Note that there can -- be multiple entries passed to a single generate() call for various reasons, e.g.: (1) Inside of a single inflection table there is syncretism, with two different inflections having the same form; e.g. the same Latin form ''bonī'' occurs in three different inflections of the lemma [[bonus]]: the masculine genitive singular, neuter genitive singular and masculine nominative plural. Hence there will be three entries. (2) Inside of a single inflection table there are inflections that are spelled differently but map to the same pagename due to diacritic removal; e.g. Latin ''bona'' (occurring in five different inflections: the feminine nominative and vocative singular and the neuter nominative, accusative and vocative plural) and Latin ''bonā'' (the feminine ablative singular) will be merged together into a single call to generate() with six entries. (3) There are two or more inflection tables, partly or completely duplicative. E.g. if a given lemma has Etymology 1 and Etymology 2 sections, and the inflection of each separate etymology is the same and associated with its own table, then clicking on any green link will result in (at least) two entries. 2. The generate() function is invoked like a template call, meaning all its arguments come as strings and need to be parsed. It does the following steps: (1) Parse its arguments. (2) Convert each set of per-entry parameters into a `params` object. (3) For each `params` object, generate a default entry, then, if there is a language-specific accelerator submodule, call that module to customize the entry. (4) Merge duplicate entries. This not only looks for completely duplicated entries but tries to merge entries that differ only in the definition. In general, this will result in multiple definition lines under a single entry, but definition lines that consist of calls to {{infl of}} will be further merged. For example, for the example above with ''bona'' and ''bonā'', the five inflections of ''bona'' will be merged into a single entry with a single call to {{infl of}} that looks something like this: # {{infl of|la|bonus||nom//voc|f|s|;|nom//acc//voc|n|p}} In other words, not only are the inflections combined into a single call to {{infl of}}, but inflections with partly shared tags are further merged. (5) Generate the Pronunciation and Etymology sections that go at the top, above all the entries. This is done either by calling custom generate functions in the language-specific accelerator submodule, or (if those aren't given) by merging the individual pronunciation and etymology lines, removing duplicates. Note that the default entry generated in step (3) has no pronunciation or etymology (which are generated only by a language-specific submodule), so by default there will be no Pronunciation or Etymology section. (6) Assemble the parts of each entry into a string and paste all the strings together, along with any combined Pronunciation and Etymology sections, to form the text of the entire per-language L2 section. Note that if you have enabled the OrangeLinks gadget, accelerator entries can be created on already-existing pages, as long as there's no L2 section for the language of the entries. ]=] -- A simple implementation of an ordered set. local function create_ordered_set() return { array = {}, set = {}, } end -- Add an item to the ordered set. `squashed_item` is a representation of the item as a string or number, so that we -- can use it as the key in a set. `orig_item` is the original item and can be omitted if it's the same as -- `squashed_item`. local function add_item(ordered_set, squashed_item, orig_item) if not ordered_set.set[squashed_item] then insert(ordered_set.array, orig_item or squashed_item) ordered_set.set[squashed_item] = true end end -- Generate the default entry function export.default_entry(params) local function make_head(pos, default_gender) local gender = params.gender or default_gender local genderspec = "" if gender then local genders = split(gender, ",", true) for i, g in ipairs(genders) do if i == 1 then genders[i] = "|g=" .. g else genders[i] = "|g" .. i .. "=" .. g end end genderspec = concat(genders) end local parts = {} insert(parts, "{{head|" .. params.lang:getCode() .. "|" .. pos) for i, target in ipairs(params.targets) do local paramnum = i == 1 and "" or tostring(i) if target.term ~= params.target_pagename then insert(parts, ("|head%s=%s"):format(paramnum, target.term)) end if target.tr then insert(parts, ("|tr%s=%s"):format(paramnum, target.tr)) end end insert(parts, genderspec .. "}}") return concat(parts) end local function make_def(tempname, extra_params) local parts = {} insert(parts, "{{" .. tempname .. "|" .. params.lang:getCode()) for i, origin in ipairs(params.origins) do local termparam, trparam if i == 1 then termparam = "" trparam = "tr=" else termparam = "term" .. i .. "=" trparam = "tr" .. i .. "=" end insert(parts, ("|%s%s"):format(termparam, origin.term)) if origin.tr then insert(parts, ("|%s%s"):format(trparam, origin.tr)) end end insert(parts, (extra_params or "") .. "}}") return concat(parts) end local function no_rule_error(params) -- FIXME, verify the 2 below (number of stack frames to pop off); may be wrong now that we moved this function -- underneath default_entry(). return error(('No rule for "%s" in language "%s" ("%s").') :format(params.form, params.lang:getCode(), params.lang:getCanonicalName()), 2) end local pos_form_map = { ["verb"] = "ပိူင်ၽၢင်သၢင်ႈ", ["noun"] = "ပိူင်ၽၢင်ႁိၵ်ႈ", ["adjective"] = "ပိူင်ၽၢင်ၵမ်ႉႁိၵ်ႈ", ["adverb"] = "ပိူင်ၽၢင်ၵမ်ႉသၢင်ႈ", ["proper noun"] = "ပိူင်ၽၢင်ႁိၵ်ႈသုၼ်ႇလဵဝ်", } local head_pos = pos_form_map[params.pos] or (params.pos .. " form") local entry = { etymology = nil, pronunc = nil, pos_header = mw.getContentLanguage():ucfirst(params.pos), head = make_head(head_pos), def = make_def("infl of", "||" .. params.form), inflection = nil, declension = nil, conjugation = nil, mutation = nil, altforms = nil, -- also pass in functions make_head = make_head, make_def = make_def, no_rule_error = no_rule_error, } -- Exceptions for POS translations local pos_headers = { ["verb"] = "သၢင်ႈ", ["noun"] = "ႁိၵ်ႈ", ["adjective"] = "ၵမ်ႉႁိၵ်ႈ", ["adverb"] = "ၵမ်ႉသၢင်ႈ", ["proper noun"] = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", ["pronoun"] = "ႁိၵ်ႈတၢင်", } if pos_headers[params.pos] then entry.pos_header = pos_headers[params.pos] end -- Exceptions for some forms local templates = { ["p"] = "plural of", ["f"] = "feminine of", ["f|s"] = "feminine singular of", ["m|p"] = "masculine plural of", ["f|p"] = "feminine plural of", ["pejorative"] = "pejorative of", } if params.form == "comparative" or params.form == "superlative" or params.form == "equative" then entry.head = make_head(params.form .. " " .. params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "adjective" and "|POS=" .. params.pos or "") elseif params.form == "diminutive" or params.form == "augmentative" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "noun" and "|POS=" .. params.pos or "") elseif params.form == "f" and params.pos == "noun" then entry.head = make_head(params.pos, "f") entry.def = make_def("female equivalent of") elseif (params.form == "past|part" or params.form == "past|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("past participle") elseif (params.form == "perf|part" or params.form == "perf|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("perfect participle") elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("present participle") elseif (params.form == "abstract noun" or params.form == "verbal noun") and params.pos == "noun" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of") elseif templates[params.form] then entry.def = make_def(templates[params.form]) end return entry end -- Canonicalize multipart shortcuts (e.g. "123" -> "1//2//3") and non-conjoined list shortcuts (e.g. "1s" -> -- {"1", "s"}); leave others alone, including conjoined shortcuts. The purpose of canonicalizing list shortcuts is so -- that e.g. we can combine '1s|pres|ind' with '2|s|pres|ind'. However, conjoined shortcuts like "e-form" -> -- {"pl", ";", "def", "s", "attr"} would require significantly more logic to handle correctly, and it's highly unlikely -- we could find another similar enough tag to combine with (if it even makes sense to do so at all). local function canonicalize_multipart_and_list_shortcuts(tags, lang) local result = {} for _, tag in ipairs(tags) do local expansion = require(form_of_module).lookup_shortcut(tag, lang) if type(expansion) == "string" and not expansion:find("//", nil, true) then expansion = tag end if type(expansion) == "table" then if contains(expansion, ";") then insert(result, tag) else extend(result, expansion) end else insert(result, expansion) end end return result end -- Split a multipart tag into component tags, normalize each component, and return the resulting list. If -- MAP_TO_CANONICAL_SHORTCUT is given, attempt to map each normalized component tag to its "canonical shortcut", i.e. -- the first shortcut listed among its shortcuts. -- -- If given a two-level multipart tag such as "1:sg//3:pl", the resulting return value will be {"first:singular", -- "third:plural"}, or {"1:s", "3:p"} if MAP_TO_CANONICAL_SHORTCUT is given. local function split_and_normalize_tag(tag, lang, map_to_canonical_shortcut) local m_form_of = require(form_of_module) local normalized = m_form_of.normalize_tag_set({tag}, lang) if #normalized > 1 then -- Tag is a conjoined shortcut. We leave these in their non-canonicalized form; see comment above -- canonicalize_multipart_and_list_shortcuts(). But we mark them with a special character so we know that -- they are non-normalized conjoined shortcuts, and later remove the mark. return {tag .. MARK_CONJOINED_SHORTCUT} end normalized = normalized[1] assert(#normalized == 1, "Internal error: Encountered list tag " .. tag .. ", which should have been canonicalized earlier") local multipart = normalized[1] if type(multipart) == "string" then multipart = {multipart} end if map_to_canonical_shortcut then local function get_canonical_shortcut(tag, lang) local tagobj = m_form_of.lookup_tag(tag, lang) local tag_shortcuts = tagobj and tagobj[require(form_of_data_module).SHORTCUTS] if tag_shortcuts and type(tag_shortcuts) == "table" then tag_shortcuts = tag_shortcuts[1] end return tag_shortcuts or tag end for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart for j, single_tag in ipairs(mpart) do mpart[j] = get_canonical_shortcut(single_tag, lang) end multipart[i] = concat(mpart, ":") else multipart[i] = get_canonical_shortcut(mpart, lang) end end else for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart multipart[i] = concat(mpart, ":") end end end return multipart end -- Given a normalized tag, return its tag type, or "unknown" if a tag type -- cannot be located (either the tag isn't recognized or for some reason -- it doesn't specify a tag type). local function get_normalized_tag_type(tag, lang) -- Make sure to return 'unknown' for non-normalized conjoined shortcuts as well as URL's and parts of two-level -- multipart tags (both of the latter two have colons in them). NOTE: In practice, the presence of the -- MARK_CONJOINED_SHORTCUT means we won't find a normalized tag having the same name even if one would exist in the -- absence of this mark, so this is more of an optimization. if tag:find(MARK_CONJOINED_SHORTCUT) or tag:find(":") then return "unknown" end local m_form_of = require(form_of_module) local tagobj = m_form_of.lookup_tag(tag, lang) return tagobj and tagobj[require(form_of_data_module).TAG_TYPE] or "unknown" end --[=[ Combine multiple semicolon-separated tag sets into multipart tags if possible. We combine tag sets that differ in only one tag in a given dimension, and repeat this until no changes in case we can reduce along multiple dimensions, e.g. {{infl of|la|canus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} {{infl of|la|canus||dat//abl|m//f//n|p}} `tag_sets` is a list of objects of the form {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}, i.e. of the same format as `data.tag_sets` as passed to tagged_inflections() in [[Module:form of]]. Also accepted is an "old-style" list of strings, one element per tag, with tag sets separated by a semicolon, the same as in {{infl of}}. The return value is in the same format as was passed into `tag_sets`. If an old-style tag list was passed in, and labels are present, they are attached to the last tag in a tag set using an inline modifier. ]=] function export.combine_tag_sets_into_multipart(tag_sets, lang, POS) if type(tag_sets) ~= "table" then error("`tag_sets` should be a table but is a(n) `" .. type(tag_sets) .. "`") end if not tag_sets[1] then error("Expected at least one item in `tag_sets`") end local old_style_tags = false if type(tag_sets[1]) == "string" then old_style_tags = true end -- First, as an optimization, make sure there are multiple tag sets. Otherwise, do nothing. if old_style_tags then local found_semicolon = false for _, tag in ipairs(tag_sets) do if tag == ";" then found_semicolon = true break end end if not found_semicolon then return tag_sets end elseif #tag_sets == 1 then return tag_sets end local m_form_of = require(form_of_module) -- If old-style tags (list of strings), convert to list of tag set objects. if old_style_tags then tag_sets = m_form_of.split_tag_set(tag_sets) for i, tag_set in ipairs(tag_sets) do tag_sets[i] = m_form_of.parse_tag_set_properties(tag_set) end else -- Otherwise, make a copy as we may modify the list in-place. tag_sets = deep_copy(tag_sets) end -- Repeat until no changes can be made. while true do -- First, determine the auto-generated label for each tag set and append to any user-specified labels. -- Best to do this on the raw tag sets, before canonicalize_multipart_and_list_shortcuts(). Then canonicalize -- 1s etc. into 1|s. for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = tag_set.labels and deep_copy(tag_set.labels) or {} local normalized_tag_sets = m_form_of.normalize_tag_set(tag_set.tags, lang) for _, normalized_tag_set in ipairs(normalized_tag_sets) do local this_labels = select(2, m_form_of.fetch_categories_and_labels(normalized_tag_set, lang, POS)) extend(tag_set.labels_with_auto, this_labels) end tag_set.tags = canonicalize_multipart_and_list_shortcuts(tag_set.tags, lang) end local canonicalized_tag_sets = tag_sets local old_canonicalized_tag_sets = canonicalized_tag_sets -- Try combining in two different styles ("adjacent-first" = do two passes, where the first pass only combines -- adjacent tag sets, while the second pass combines nonadjacent tag sets; "all-first" = do one pass combining -- nonadjacent tag sets). Sometimes one is better, sometimes the other. -- -- An example where adjacent-first is better: -- -- {{infl of|la|medius||m|acc|s|;|n|nom|s|;|n|acc|s|;|n|voc|s}} -- -- all-first results in -- -- {{infl of|la|medius||m//n|acc|s|;|n|nom//voc|s}} -- -- which isn't ideal. -- -- If we do adjacent-first, we get -- -- {{infl of|la|medius||m|acc|s|;|n|nom//acc//voc|s}} -- -- which is much better. -- -- The opposite happens in -- -- {{infl of|grc|βουλόμενος||n|nom|s|;|m|acc|s|;|n|acc|s|;|n|voc|s}} -- -- where all-first results in -- -- {{infl of|grc|βουλόμενος||n|nom//acc//voc|s|;|m|acc|s}} -- -- which is better than the result from adjacent-first, which is -- -- {{infl of|grc|βουλόμενος||n|nom//voc|s|;|m//n|acc|s}} -- -- To handle this conundrum, we try both, and look to see which one results in fewer "combinations" (where a -- tag with // in it counts as a combination). If both are different but have the same # of combinations, we -- prefer adjacent-first, we seems generally a better approach. local tag_sets_by_style = {} for _, combine_style in ipairs({"adjacent-first", "all-first"}) do -- Now, we do two passes. The first pass only combines adjacent tag sets, while the second pass combines -- nonadjacent tag sets. Copy canonicalized_tag_sets, since we destructively modify the list. local this_tag_sets = deep_copy(canonicalized_tag_sets) local combine_passes if combine_style == "adjacent-first" then combine_passes = {"adjacent", "all"} else combine_passes = {"all"} end for _, combine_pass in ipairs(combine_passes) do local tag_ind = 1 while tag_ind <= #this_tag_sets do local from, to if combine_pass == "adjacent" then if tag_ind == 1 then from = 1 to = 0 else from = tag_ind - 1 to = tag_ind - 1 end else from = 1 to = tag_ind - 1 end local inner_broken = false for prev_tag_ind = from, to do local cur_tag_set = this_tag_sets[prev_tag_ind] local tag_set = this_tag_sets[tag_ind] if #cur_tag_set.tags == #tag_set.tags and deep_equals(cur_tag_set.labels_with_auto, tag_set.labels_with_auto) then local mismatch_ind = nil local innermost_broken = false for i = 1, #tag_set.tags do local tag1 = split_and_normalize_tag(cur_tag_set.tags[i], lang) local tag2 = split_and_normalize_tag(tag_set.tags[i], lang) if not deep_equals(list_to_set(tag1), list_to_set(tag2)) then if mismatch_ind then innermost_broken = true break end local combined_dims = {} for _, tag in ipairs(tag1) do combined_dims[get_normalized_tag_type(tag, lang)] = true end for _, tag in ipairs(tag2) do combined_dims[get_normalized_tag_type(tag, lang)] = true end if size(combined_dims) == 1 and not combined_dims["unknown"] then mismatch_ind = i else innermost_broken = true break end end end if not innermost_broken then -- No break, we either match perfectly or are combinable if not mismatch_ind then -- Two identical tag sets remove(this_tag_sets, tag_ind) inner_broken = true break else -- Combine tag sets at mismatch_ind, using the canonical shortcuts. local tag1 = split_and_normalize_tag(cur_tag_set.tags[mismatch_ind], lang, true) local tag2 = split_and_normalize_tag(tag_set.tags[mismatch_ind], lang, true) -- Combine the normalized tags and remove the special MARK_CONJOINED_SHORTCUT mark -- on conjoined shortcuts so we have normal tags again. local combined_tag = concat(append(tag1, tag2), "//"):gsub(MARK_CONJOINED_SHORTCUT, "") local new_tag_set = {} for i = 1, #cur_tag_set.tags do if i == mismatch_ind then insert(new_tag_set, combined_tag) else local cur_canon_tag = split_and_normalize_tag(cur_tag_set.tags[i], lang) local canon_tag = split_and_normalize_tag(tag_set.tags[i], lang) assert(deep_equals(list_to_set(cur_canon_tag), list_to_set(canon_tag))) insert(new_tag_set, cur_tag_set.tags[i]) end end this_tag_sets[prev_tag_ind].tags = new_tag_set remove(this_tag_sets, tag_ind) inner_broken = true break end end end end if not inner_broken then -- No break from inner for-loop. Break from that loop indicates that we found that the current -- tag set can be combined with a preceding tag set, did the combination and deleted the -- current tag set. The next iteration then processes the same numbered tag set again (which is -- actually the following tag set, because we deleted the tag set before it). No break -- indicates that we couldn't combine the current tag set with any preceding tag set, and need -- to advance to the next one. tag_ind = tag_ind + 1 end end end tag_sets_by_style[combine_style] = this_tag_sets end if not deep_equals(tag_sets_by_style["adjacent-first"], tag_sets_by_style["all-first"]) then local function num_combinations(group) local num_combos = 0 for _, tag_set in ipairs(group) do for _, tag in ipairs(tag_set.tags) do if tag:find("//") then num_combos = num_combos + 1 end end end return num_combos end local num_adjacent_first_combos = num_combinations(tag_sets_by_style["adjacent-first"]) local num_all_first_combos = num_combinations(tag_sets_by_style["all-first"]) if num_adjacent_first_combos < num_all_first_combos then tag_sets = tag_sets_by_style["adjacent-first"] elseif num_all_first_combos < num_adjacent_first_combos then tag_sets = tag_sets_by_style["all-first"] else tag_sets = tag_sets_by_style["adjacent-first"] end else -- Both are the same, pick either one tag_sets = tag_sets_by_style["adjacent-first"] end if deep_equals(tag_sets, old_canonicalized_tag_sets) then break end -- FIXME, we should consider reversing the transformation 1s -> 1|s, -- but it's complicated to figure out when the transformation occurred; -- not really important as both are equivalent end if old_style_tags then local retval = {} for _, tag_set in ipairs(tag_sets) do if tag_set.labels and #tag_set.labels > 0 then tag_set.tags[#tag_set.tags] = tag_set.tags[#tag_set.tags] .. "<lb:" .. concat(tag_set.labels, ",") .. ">" end if #retval > 0 then insert(retval, ";") end extend(retval, tag_set.tags) end return retval else for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = nil end return tag_sets end end -- Test function, callable externally. function export.test_combine_tag_sets_into_multipart(frame) local iparams = { [1] = {list = true, required = true}, lang = {required = true}, } local args = require("Module:parameters").process(frame.args, iparams) local lang = require("Module:languages").getByCode(args.lang, true) local combined_tags = export.combine_tag_sets_into_multipart(args[1], lang) return concat(combined_tags, "|") end local function can_merge(entry, candidate) for _, key in ipairs{"pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms"} do if not deep_equals(entry[key], candidate[key]) then return false end end return true end -- Check whether `entry` (an object describing a given non-lemma form, with properties such as `pronunc` for -- pronunciation, `def` for definition, etc.) can be merged with any of the existing entries listed in `candidates`. -- "Can be merged" means that all relevant properties (basically, everything but the definition) can are the same. -- Return the first such candidate found, or nil if no candidates match `entry`. local function find_mergeable(entry, candidates) for _, candidate in ipairs(candidates) do if can_merge(entry, candidate) then return candidate end end return nil end -- Merge multiple entries into one if they differ only in the definition, with all other -- properties the same. The combined entry has multiple definition lines. We then do -- further frobbing of {{infl of}} lines: -- -- 1. Convert lang= param to param 1 (there shouldn't be any remaining cases of accelerator -- modules generating {{infl of}} templates with lang=, but we do this just in case). -- 2. Combine adjacent {{infl of}} lines that differ only in the tags, e.g.: -- -- # {{infl of|la|bonus||nom|m|s}} -- # {{infl of|la|bonus||nom|n|s}} -- # {{infl of|la|bonus||acc|n|s}} -- # {{infl of|la|bonus||voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- 3. Further group {{infl of}} lines with multiple tag sets (as may be generated b y -- the previous step) using multipart tags, e.g. for the Latin entry ''bonum'', -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom//acc//voc|n|s}} -- -- This grouping can group across multiple dimensions, e.g. for the Latin entry ''bonīs'', -- -- # {{infl of|la|bonus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} -- -- becomes -- -- # {{infl of|la|bonus||dat//abl|m//f//n|p}} -- -- Another complex real-world example, for the Old English weak adjective form ''dēorenan'': -- -- # {{infl of|ang|dēoren||wk|acc|m|sg|;|wk|acc|f|sg|;|wk|gen|m|sg|;|wk|gen|f|sg|;|wk|gen|n|sg|;|wk|dat|m|sg|;|wk|dat|f|sg|;|wk|dat|n|sg|;|wk|ins|m|sg|;|wk|ins|f|sg|;|wk|ins|n|sg|;|wk|nom|m|pl|;|wk|nom|f|pl|;|wk|nom|n|pl|;|wk|acc|m|pl|;|wk|acc|f|pl|;|wk|acc|n|pl}} -- -- becomes -- -- # {{infl of|ang|dēoren||wk|acc|m//f|sg|;|wk|gen//dat//ins|m//f//n|sg|;|wk|nom//acc|m//f//n|pl}} -- -- Here, 17 separate tag sets are combined down into 3. local function merge_entries(entries_obj) local entries_new = {} -- First, if overrides are supplied, try to eliminate entries with duplicate overrides. local saw_override = false for _, entry in ipairs(entries_obj.entries) do if entry.override then saw_override = true break end end if saw_override then for _, entry in ipairs(entries_obj.entries) do -- If some entries have an override and some don't, only deduplicate the ones with an override and -- include all the ones without an override. FIXME: Deduplicate the non-overridden ones using the -- algorithm below, and provide a custom function for deduplicating overrides. if not entry.override then insert(entries_new, entry) else insert_if_not(entries_new, entry, { key = function(entry) return entry.override end, }) end end entries_obj.entries = entries_new return end -- First rewrite {{infl of|...|lang=LANG}} to {{infl of|LANG|...}} for _, entry in ipairs(entries_obj.entries) do local params = entry.def:match("^{{infl of|([^{}]+)}}$") if not params then params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if params then params = split(params, "|", true) local new_params = {} for _, param in ipairs(params) do local lang = param:match("^lang=(.*)$") if lang then insert(new_params, 1, lang) else insert(new_params, param) end end entry.def = "{{infl of|" .. concat(new_params, "|") .. "}}" end end -- Merge entries that match in all of the following properties: -- "pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms" -- This will merge any two mergeable entries even if non-consecutive. -- The definitions of the merged entries do not have to match, but any matching -- definitions will be deduped. for _, entry in ipairs(entries_obj.entries) do -- See if this entry can be merged with any previous entry. local merge_entry = find_mergeable(entry, entries_new) if merge_entry then local duplicate_def = false -- If we can merge, check whether the definition of the new entry is -- the same as any previous definitions. for _, def in ipairs(merge_entry.defs) do if def == entry.def then duplicate_def = true break end end if not duplicate_def then insert(merge_entry.defs, entry.def) end else entry.defs = {entry.def} insert(entries_new, entry) end end -- FIXME: Use the template parser for this. -- Combine the definitions for each entries, merging all {{infl of}} calls -- into one such call with multiple tag sets. for _, entry in ipairs(entries_new) do local existing_defs = {} for _, new_def in ipairs(entry.defs) do local did_merge = false local new_params = new_def:match("^{{infl of|([^{}]+)}}$") if not new_params then new_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if new_params then -- The new definition is {{infl of}}. See if there is an -- {{infl of}} among the definitions seen so far. for i, existing_def in ipairs(existing_defs) do local existing_params = existing_def:match("^{{infl of|([^{}]+)}}$") if not existing_params then existing_params = existing_def:match("^{{inflection of|([^{}]+)}}$") end if existing_params then -- Merge the existing and new {{infl of}} calls. -- Find the last unnamed parameter of the first template. existing_params = split(existing_params, "|", true) local last_numbered_index for j, param in ipairs(existing_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Add grammar tags of the second template new_params = split(new_params, "|", true) local tags = {} local n = 0 for _, param in ipairs(new_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, -- which don't indicate grammar tags if n >= 4 then -- Now append the tags insert(tags, param) end end end -- Add the new parameters after the existing ones existing_params[last_numbered_index] = existing_params[last_numbered_index] .. "|;|" .. concat(tags, "|") existing_defs[i] = "{{infl of|" .. concat(existing_params, "|") .. "}}" did_merge = true break end end end if not did_merge then insert(existing_defs, new_def) end end entry.def = concat(existing_defs, "\n# ") end -- Now combine tag sets inside a multiple-tag-set {{infl of}} call for _, entry in ipairs(entries_new) do local infl_of_params = entry.def:match("^{{infl of|([^{}]+)}}$") if not infl_of_params then infl_of_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if infl_of_params then infl_of_params = split(infl_of_params, "|", true) -- Find the last unnamed parameter local last_numbered_index for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Split the params in three: -- (1) Params before the inflection tags, and any named params mixed in with the tags -- (2) The tags themselves -- (3) Named params after the tags local pre_tag_params = {} local tags = {} local post_tag_params = {} local n = 0 for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, which don't indicate grammar tags if n >= 4 then insert(tags, param) else insert(pre_tag_params, param) end elseif n >= last_numbered_index then insert(post_tag_params, param) else insert(pre_tag_params, param) end if not param:find("=", nil, true) then last_numbered_index = j end end -- Now combine tag sets. tags = export.combine_tag_sets_into_multipart(tags, entries_obj.lang) -- Put the template back together. local combined_params = {} for _, v in ipairs(pre_tag_params) do table.insert(combined_params, v) end for _, v in ipairs(tags) do table.insert(combined_params, v) end for _, v in ipairs(post_tag_params) do table.insert(combined_params, v) end entry.def = "{{infl of|" .. table.concat(combined_params, "|") .. "}}" end end entries_obj.entries = entries_new end local function merge_field(entries, field) local seen_fields = create_ordered_set() for _, entry in ipairs(entries) do local fieldval = entry[field] if fieldval then if type(fieldval) == "table" then -- already a table else fieldval = split(fieldval, "\n", true) end for _, val in ipairs(fieldval) do if val ~= "" then -- skip newlines, including if there's a final newline when split add_item(seen_fields, val) end end end end return seen_fields.array end local function default_merge_pronunciation(entries_obj) local pronuncs = merge_field(entries_obj.entries, "pronunc") if #pronuncs > 0 then return concat(pronuncs, "\n") else return nil end end local function generate_merged_pronunciation(entries_obj, lang_module) entries_obj.pronunciation = (lang_module and lang_module.generate_pronunciation or default_merge_pronunciation)(entries_obj) end local function default_merge_etymology(entries_obj) local etyms = merge_field(entries_obj.entries, "etymology") if #etyms > 1 then -- Hack! If multiple etymology entries, put a * before each one so they don't run together. -- In such a case we may be better off using a custom merge function. for i, item in ipairs(etyms) do etyms[i] = "* " .. item end end if #etyms > 0 then return concat(etyms, "\n") else return nil end end local function generate_merged_etymology(entries_obj, lang_module) entries_obj.etymology = (lang_module and lang_module.generate_etymology or default_merge_etymology)(entries_obj) end local function entries_to_text(entries_obj) for i, entry in ipairs(entries_obj.entries) do if entry.override then entry = "\n" ..(entry.override or "") else entry = "\n\n" .. "===" .. entry.pos_header .. "===\n" .. entry.head .. "\n\n" .. "# " .. entry.def .. (entry.inflection and "\n\n====Inflection====\n" .. entry.inflection or "") .. (entry.declension and "\n\n====Declension====\n" .. entry.declension or "") .. (entry.conjugation and "\n\n====Conjugation====\n" .. entry.conjugation or "") .. (entry.altforms and "\n\n====Alternative forms====\n" .. entry.altforms or "") .. -- FIXME, if there are multiple entries, there should either be only one merged L3 Mutation or several -- L4 Mutation sections. Not yet implemented. (entry.mutation and "\n\n===Mutation===\n" .. entry.mutation or "") end entries_obj.entries[i] = entry end return "==" .. entries_obj.lang:getCanonicalName() .. "==" .. (entries_obj.etymology and "\n\n===Etymology===\n" .. entries_obj.etymology or "") .. (entries_obj.pronunciation and "\n\n===Pronunciation===\n" .. entries_obj.pronunciation or "") .. concat(entries_obj.entries) end local function split_and_zip_term_and_tr(encoded_term, encoded_tr) local terms = split(encoded_term, split_term_regex) local trs = encoded_tr and split(encoded_tr, split_term_regex) or {} if #trs > #terms then error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, encoded_tr=%s"): format(#trs, #terms, encoded_term, encoded_tr)) end local result = {} for i, term in ipairs(terms) do local tr = trs[i] if tr == "" then tr = nil end insert(result, {term = term, tr = tr}) end return result end local function paste_term_tr(termobj) if termobj.tr then return termobj.term .. "//" .. termobj.tr else return termobj.term end end function export.generate(frame) local required = {required = true} local list_allow_holes = {list = true, allow_holes = true} local fparams = { lang = {required = true, type = "language"}, origin_pagename = required, target_pagename = required, num = {required = true, type = "number"}, pos = list_allow_holes, form = list_allow_holes, gender = list_allow_holes, transliteration = list_allow_holes, origin = list_allow_holes, origin_transliteration = list_allow_holes, -- I'm pretty sure this is actually required and must have args.num entries in it. target = list_allow_holes, } local args = require("Module:parameters").process(frame.args, fparams, nil, "accel", "generate") local lang = args.lang -- Try to use a language-specific module, if one exists. local module_lang, lang_module = lang while module_lang do lang_module = safe_require("Module:accel/" .. module_lang:getCode()) if lang_module ~= nil then break end module_lang = module_lang:getParent() end local entries = {} -- Generate each entry local seen_origins = create_ordered_set() local seen_targets = create_ordered_set() local params_list = {} for i = 1, args.num do local params = { lang = lang, origin_pagename = args.origin_pagename, target_pagename = args.target_pagename, pos = args.pos[i] or error("The argument \"pos\" is missing for entry " .. i), form = args.form[i] or error("The argument \"form\" is missing for entry " .. i), gender = args.gender[i], origin = args.origin[i] or error("The argument \"origin\" is missing for entry " .. i), origin_transliteration = args.origin_transliteration[i], target = args.target[i], transliteration = args.transliteration[i], num_entries = args.num, } params.form = params.form:gsub("&#124;", "|") params.targets = split_and_zip_term_and_tr(params.target, params.transliteration) params.origins = split_and_zip_term_and_tr(params.origin, params.origin_transliteration) for _, origin in ipairs(params.origins) do add_item(seen_origins, paste_term_tr(origin), origin) end for _, target in ipairs(params.targets) do add_item(seen_targets, paste_term_tr(target), target) end insert(params_list, params) end -- Generate entries. for _, params in ipairs(params_list) do -- Add overall stats to all params objects. params.seen_origins = seen_origins params.seen_targets = seen_targets -- Make a default entry. local entry = export.default_entry(params) if lang_module then lang_module.generate(params, entry) end -- Add it to the list. insert(entries, entry) end local entries_obj = { entries = entries, lang = lang, lang_module = lang_module, seen_origins = seen_origins, seen_targets = seen_targets, } -- Merge entries if possible. merge_entries(entries_obj) -- Now generate merged pronunciation and etymology, either using a custom generation function or by merging the -- individually specified pronunciation and etymology lines. generate_merged_pronunciation(entries_obj, lang_module) generate_merged_etymology(entries_obj, lang_module) return entries_to_text(entries_obj) end function export.generate_JSON(frame) local success, entries = pcall(export.generate, frame) -- If success is false, entries is an error message. -- It appears we need to specify `messages` or nothing will be displayed. local ret = { [success and "entries" or "error"] = entries, messages = require("Module:array")()} return require("Module:JSON").toJSON(ret) end return export 7m8eay64418axoypltjweqfmulzsvy8 292873 292872 2026-09-19T04:09:49Z Saimawnkham 9 292873 Scribunto text/plain local export = {} local form_of_module = "Module:form of" local form_of_data_module = "Module:form of/data" local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local append = m_table.append local assert = assert local concat = table.concat local contains = m_table.contains local deep_copy = m_table.deepCopy local deep_equals = require("Module:table/deepEquals") local extend = m_table.extend local insert = table.insert local insert_if_not = m_table.insertIfNot local list_to_set = m_table.listToSet local remove = table.remove local split = m_str_utils.split local safe_require = require("Module:load").safe_require local size = m_table.size local u = m_str_utils.char local MARK_CONJOINED_SHORTCUT = u(0xFFF0) local split_term_regex = "%*~!" --[=[ The purpose of the acceleration code is to auto-generate pages for non-lemma forms (inflections) of a given lemma. The way it works is approximately as follows: 1. When you have the accelerator gadget in [[MediaWiki:Gadget-AcceleratedFormCreation.js]] enabled, and you click on a green link, the JavaScript code gathers all the green links on the page that have the same language and pagename as the clicked-on green link and sends them to the generate_JSON() function in this module, which is a thin wrapper around the generate() function. Each individual green link maps to an "entry" and has associated accelerator properties that were specified by the `accel` object passed into full_link() in [[Module:links]]. Note that there can -- be multiple entries passed to a single generate() call for various reasons, e.g.: (1) Inside of a single inflection table there is syncretism, with two different inflections having the same form; e.g. the same Latin form ''bonī'' occurs in three different inflections of the lemma [[bonus]]: the masculine genitive singular, neuter genitive singular and masculine nominative plural. Hence there will be three entries. (2) Inside of a single inflection table there are inflections that are spelled differently but map to the same pagename due to diacritic removal; e.g. Latin ''bona'' (occurring in five different inflections: the feminine nominative and vocative singular and the neuter nominative, accusative and vocative plural) and Latin ''bonā'' (the feminine ablative singular) will be merged together into a single call to generate() with six entries. (3) There are two or more inflection tables, partly or completely duplicative. E.g. if a given lemma has Etymology 1 and Etymology 2 sections, and the inflection of each separate etymology is the same and associated with its own table, then clicking on any green link will result in (at least) two entries. 2. The generate() function is invoked like a template call, meaning all its arguments come as strings and need to be parsed. It does the following steps: (1) Parse its arguments. (2) Convert each set of per-entry parameters into a `params` object. (3) For each `params` object, generate a default entry, then, if there is a language-specific accelerator submodule, call that module to customize the entry. (4) Merge duplicate entries. This not only looks for completely duplicated entries but tries to merge entries that differ only in the definition. In general, this will result in multiple definition lines under a single entry, but definition lines that consist of calls to {{infl of}} will be further merged. For example, for the example above with ''bona'' and ''bonā'', the five inflections of ''bona'' will be merged into a single entry with a single call to {{infl of}} that looks something like this: # {{infl of|la|bonus||nom//voc|f|s|;|nom//acc//voc|n|p}} In other words, not only are the inflections combined into a single call to {{infl of}}, but inflections with partly shared tags are further merged. (5) Generate the Pronunciation and Etymology sections that go at the top, above all the entries. This is done either by calling custom generate functions in the language-specific accelerator submodule, or (if those aren't given) by merging the individual pronunciation and etymology lines, removing duplicates. Note that the default entry generated in step (3) has no pronunciation or etymology (which are generated only by a language-specific submodule), so by default there will be no Pronunciation or Etymology section. (6) Assemble the parts of each entry into a string and paste all the strings together, along with any combined Pronunciation and Etymology sections, to form the text of the entire per-language L2 section. Note that if you have enabled the OrangeLinks gadget, accelerator entries can be created on already-existing pages, as long as there's no L2 section for the language of the entries. ]=] -- A simple implementation of an ordered set. local function create_ordered_set() return { array = {}, set = {}, } end -- Add an item to the ordered set. `squashed_item` is a representation of the item as a string or number, so that we -- can use it as the key in a set. `orig_item` is the original item and can be omitted if it's the same as -- `squashed_item`. local function add_item(ordered_set, squashed_item, orig_item) if not ordered_set.set[squashed_item] then insert(ordered_set.array, orig_item or squashed_item) ordered_set.set[squashed_item] = true end end -- Generate the default entry -- Generate the default entry function export.default_entry(params) local function make_head(pos, default_gender) local gender = params.gender or default_gender local genderspec = "" if gender then local genders = split(gender, ",", true) for i, g in ipairs(genders) do if i == 1 then genders[i] = "|g=" .. g else genders[i] = "|g" .. i .. "=" .. g end end genderspec = concat(genders) end local parts = {} insert(parts, "{{head|" .. params.lang:getCode() .. "|" .. pos) for i, target in ipairs(params.targets) do local paramnum = i == 1 and "" or tostring(i) if target.term ~= params.target_pagename then insert(parts, ("|head%s=%s"):format(paramnum, target.term)) end if target.tr then insert(parts, ("|tr%s=%s"):format(paramnum, target.tr)) end end insert(parts, genderspec .. "}}") return concat(parts) end local function make_def(tempname, extra_params) local parts = {} insert(parts, "{{" .. tempname .. "|" .. params.lang:getCode()) for i, origin in ipairs(params.origins) do local termparam, trparam if i == 1 then termparam = "" trparam = "tr=" else termparam = "term" .. i .. "=" trparam = "tr" .. i .. "=" end insert(parts, ("|%s%s"):format(termparam, origin.term)) if origin.tr then insert(parts, ("|%s%s"):format(trparam, origin.tr)) end end insert(parts, (extra_params or "") .. "}}") return concat(parts) end local function no_rule_error(params) return error(('No rule for "%s" in language "%s" ("%s").') :format(params.form, params.lang:getCode(), params.lang:getCanonicalName()), 2) end local pos_form_map = { ["verb"] = "ပိူင်ၽၢင်သၢင်ႈ", ["noun"] = "ပိူင်ၽၢင်ႁိၵ်ႈ", ["adjective"] = "ပိူင်ၽၢင်ၵမ်ႉႁိၵ်ႈ", ["adverb"] = "ပိူင်ၽၢင်ၵမ်ႉသၢင်ႈ", ["proper noun"] = "ပိူင်ၽၢင်ႁိၵ်ႈသုၼ်ႇလဵဝ်", } local head_pos = pos_form_map[params.pos] or (params.pos .. " form") local entry = { etymology = nil, pronunc = nil, pos_header = mw.getContentLanguage():ucfirst(params.pos), head = make_head(head_pos), def = make_def("infl of", "||" .. params.form), inflection = nil, declension = nil, conjugation = nil, mutation = nil, altforms = nil, -- also pass in functions make_head = make_head, make_def = make_def, no_rule_error = no_rule_error, } -- Exceptions for some forms local templates = { ["p"] = "plural of", ["f"] = "feminine of", ["f|s"] = "feminine singular of", ["m|p"] = "masculine plural of", ["f|p"] = "feminine plural of", ["pejorative"] = "pejorative of", } if params.form == "comparative" or params.form == "superlative" or params.form == "equative" then entry.head = make_head(params.form .. " " .. params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "adjective" and "|POS=" .. params.pos or "") elseif params.form == "diminutive" or params.form == "augmentative" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of", params.pos ~= "noun" and "|POS=" .. params.pos or "") elseif params.form == "f" and params.pos == "noun" then entry.head = make_head(params.pos, "f") entry.def = make_def("female equivalent of") elseif (params.form == "past|part" or params.form == "past|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("past participle") elseif (params.form == "perf|part" or params.form == "perf|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("perfect participle") elseif (params.form == "pres|part" or params.form == "pres|ptcp") and params.pos == "verb" then entry.pos_header = "Participle" entry.head = make_head("present participle") elseif (params.form == "abstract noun" or params.form == "verbal noun") and params.pos == "noun" then entry.head = make_head(params.pos) entry.def = make_def(params.form .. " of") elseif templates[params.form] then entry.def = make_def(templates[params.form]) end -- Global POS translations for header ===...=== (ဝႆႉ တီႈၼႆႈ တႃႇ Override) local pos_headers = { ["verb"] = "သၢင်ႈ", ["noun"] = "ႁိၵ်ႈ", ["adjective"] = "ၵမ်ႉႁိၵ်ႈ", ["adverb"] = "ၵမ်ႉသၢင်ႈ", ["proper noun"] = "ႁိၵ်ႈသုၼ်ႇလဵဝ်", ["pronoun"] = "ႁိၵ်ႈတၢင်", } if pos_headers[params.pos] then entry.pos_header = pos_headers[params.pos] end return entry end -- Canonicalize multipart shortcuts (e.g. "123" -> "1//2//3") and non-conjoined list shortcuts (e.g. "1s" -> -- {"1", "s"}); leave others alone, including conjoined shortcuts. The purpose of canonicalizing list shortcuts is so -- that e.g. we can combine '1s|pres|ind' with '2|s|pres|ind'. However, conjoined shortcuts like "e-form" -> -- {"pl", ";", "def", "s", "attr"} would require significantly more logic to handle correctly, and it's highly unlikely -- we could find another similar enough tag to combine with (if it even makes sense to do so at all). local function canonicalize_multipart_and_list_shortcuts(tags, lang) local result = {} for _, tag in ipairs(tags) do local expansion = require(form_of_module).lookup_shortcut(tag, lang) if type(expansion) == "string" and not expansion:find("//", nil, true) then expansion = tag end if type(expansion) == "table" then if contains(expansion, ";") then insert(result, tag) else extend(result, expansion) end else insert(result, expansion) end end return result end -- Split a multipart tag into component tags, normalize each component, and return the resulting list. If -- MAP_TO_CANONICAL_SHORTCUT is given, attempt to map each normalized component tag to its "canonical shortcut", i.e. -- the first shortcut listed among its shortcuts. -- -- If given a two-level multipart tag such as "1:sg//3:pl", the resulting return value will be {"first:singular", -- "third:plural"}, or {"1:s", "3:p"} if MAP_TO_CANONICAL_SHORTCUT is given. local function split_and_normalize_tag(tag, lang, map_to_canonical_shortcut) local m_form_of = require(form_of_module) local normalized = m_form_of.normalize_tag_set({tag}, lang) if #normalized > 1 then -- Tag is a conjoined shortcut. We leave these in their non-canonicalized form; see comment above -- canonicalize_multipart_and_list_shortcuts(). But we mark them with a special character so we know that -- they are non-normalized conjoined shortcuts, and later remove the mark. return {tag .. MARK_CONJOINED_SHORTCUT} end normalized = normalized[1] assert(#normalized == 1, "Internal error: Encountered list tag " .. tag .. ", which should have been canonicalized earlier") local multipart = normalized[1] if type(multipart) == "string" then multipart = {multipart} end if map_to_canonical_shortcut then local function get_canonical_shortcut(tag, lang) local tagobj = m_form_of.lookup_tag(tag, lang) local tag_shortcuts = tagobj and tagobj[require(form_of_data_module).SHORTCUTS] if tag_shortcuts and type(tag_shortcuts) == "table" then tag_shortcuts = tag_shortcuts[1] end return tag_shortcuts or tag end for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart for j, single_tag in ipairs(mpart) do mpart[j] = get_canonical_shortcut(single_tag, lang) end multipart[i] = concat(mpart, ":") else multipart[i] = get_canonical_shortcut(mpart, lang) end end else for i, mpart in ipairs(multipart) do if type(mpart) == "table" then -- two-level multipart multipart[i] = concat(mpart, ":") end end end return multipart end -- Given a normalized tag, return its tag type, or "unknown" if a tag type -- cannot be located (either the tag isn't recognized or for some reason -- it doesn't specify a tag type). local function get_normalized_tag_type(tag, lang) -- Make sure to return 'unknown' for non-normalized conjoined shortcuts as well as URL's and parts of two-level -- multipart tags (both of the latter two have colons in them). NOTE: In practice, the presence of the -- MARK_CONJOINED_SHORTCUT means we won't find a normalized tag having the same name even if one would exist in the -- absence of this mark, so this is more of an optimization. if tag:find(MARK_CONJOINED_SHORTCUT) or tag:find(":") then return "unknown" end local m_form_of = require(form_of_module) local tagobj = m_form_of.lookup_tag(tag, lang) return tagobj and tagobj[require(form_of_data_module).TAG_TYPE] or "unknown" end --[=[ Combine multiple semicolon-separated tag sets into multipart tags if possible. We combine tag sets that differ in only one tag in a given dimension, and repeat this until no changes in case we can reduce along multiple dimensions, e.g. {{infl of|la|canus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} {{infl of|la|canus||dat//abl|m//f//n|p}} `tag_sets` is a list of objects of the form {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}, i.e. of the same format as `data.tag_sets` as passed to tagged_inflections() in [[Module:form of]]. Also accepted is an "old-style" list of strings, one element per tag, with tag sets separated by a semicolon, the same as in {{infl of}}. The return value is in the same format as was passed into `tag_sets`. If an old-style tag list was passed in, and labels are present, they are attached to the last tag in a tag set using an inline modifier. ]=] function export.combine_tag_sets_into_multipart(tag_sets, lang, POS) if type(tag_sets) ~= "table" then error("`tag_sets` should be a table but is a(n) `" .. type(tag_sets) .. "`") end if not tag_sets[1] then error("Expected at least one item in `tag_sets`") end local old_style_tags = false if type(tag_sets[1]) == "string" then old_style_tags = true end -- First, as an optimization, make sure there are multiple tag sets. Otherwise, do nothing. if old_style_tags then local found_semicolon = false for _, tag in ipairs(tag_sets) do if tag == ";" then found_semicolon = true break end end if not found_semicolon then return tag_sets end elseif #tag_sets == 1 then return tag_sets end local m_form_of = require(form_of_module) -- If old-style tags (list of strings), convert to list of tag set objects. if old_style_tags then tag_sets = m_form_of.split_tag_set(tag_sets) for i, tag_set in ipairs(tag_sets) do tag_sets[i] = m_form_of.parse_tag_set_properties(tag_set) end else -- Otherwise, make a copy as we may modify the list in-place. tag_sets = deep_copy(tag_sets) end -- Repeat until no changes can be made. while true do -- First, determine the auto-generated label for each tag set and append to any user-specified labels. -- Best to do this on the raw tag sets, before canonicalize_multipart_and_list_shortcuts(). Then canonicalize -- 1s etc. into 1|s. for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = tag_set.labels and deep_copy(tag_set.labels) or {} local normalized_tag_sets = m_form_of.normalize_tag_set(tag_set.tags, lang) for _, normalized_tag_set in ipairs(normalized_tag_sets) do local this_labels = select(2, m_form_of.fetch_categories_and_labels(normalized_tag_set, lang, POS)) extend(tag_set.labels_with_auto, this_labels) end tag_set.tags = canonicalize_multipart_and_list_shortcuts(tag_set.tags, lang) end local canonicalized_tag_sets = tag_sets local old_canonicalized_tag_sets = canonicalized_tag_sets -- Try combining in two different styles ("adjacent-first" = do two passes, where the first pass only combines -- adjacent tag sets, while the second pass combines nonadjacent tag sets; "all-first" = do one pass combining -- nonadjacent tag sets). Sometimes one is better, sometimes the other. -- -- An example where adjacent-first is better: -- -- {{infl of|la|medius||m|acc|s|;|n|nom|s|;|n|acc|s|;|n|voc|s}} -- -- all-first results in -- -- {{infl of|la|medius||m//n|acc|s|;|n|nom//voc|s}} -- -- which isn't ideal. -- -- If we do adjacent-first, we get -- -- {{infl of|la|medius||m|acc|s|;|n|nom//acc//voc|s}} -- -- which is much better. -- -- The opposite happens in -- -- {{infl of|grc|βουλόμενος||n|nom|s|;|m|acc|s|;|n|acc|s|;|n|voc|s}} -- -- where all-first results in -- -- {{infl of|grc|βουλόμενος||n|nom//acc//voc|s|;|m|acc|s}} -- -- which is better than the result from adjacent-first, which is -- -- {{infl of|grc|βουλόμενος||n|nom//voc|s|;|m//n|acc|s}} -- -- To handle this conundrum, we try both, and look to see which one results in fewer "combinations" (where a -- tag with // in it counts as a combination). If both are different but have the same # of combinations, we -- prefer adjacent-first, we seems generally a better approach. local tag_sets_by_style = {} for _, combine_style in ipairs({"adjacent-first", "all-first"}) do -- Now, we do two passes. The first pass only combines adjacent tag sets, while the second pass combines -- nonadjacent tag sets. Copy canonicalized_tag_sets, since we destructively modify the list. local this_tag_sets = deep_copy(canonicalized_tag_sets) local combine_passes if combine_style == "adjacent-first" then combine_passes = {"adjacent", "all"} else combine_passes = {"all"} end for _, combine_pass in ipairs(combine_passes) do local tag_ind = 1 while tag_ind <= #this_tag_sets do local from, to if combine_pass == "adjacent" then if tag_ind == 1 then from = 1 to = 0 else from = tag_ind - 1 to = tag_ind - 1 end else from = 1 to = tag_ind - 1 end local inner_broken = false for prev_tag_ind = from, to do local cur_tag_set = this_tag_sets[prev_tag_ind] local tag_set = this_tag_sets[tag_ind] if #cur_tag_set.tags == #tag_set.tags and deep_equals(cur_tag_set.labels_with_auto, tag_set.labels_with_auto) then local mismatch_ind = nil local innermost_broken = false for i = 1, #tag_set.tags do local tag1 = split_and_normalize_tag(cur_tag_set.tags[i], lang) local tag2 = split_and_normalize_tag(tag_set.tags[i], lang) if not deep_equals(list_to_set(tag1), list_to_set(tag2)) then if mismatch_ind then innermost_broken = true break end local combined_dims = {} for _, tag in ipairs(tag1) do combined_dims[get_normalized_tag_type(tag, lang)] = true end for _, tag in ipairs(tag2) do combined_dims[get_normalized_tag_type(tag, lang)] = true end if size(combined_dims) == 1 and not combined_dims["unknown"] then mismatch_ind = i else innermost_broken = true break end end end if not innermost_broken then -- No break, we either match perfectly or are combinable if not mismatch_ind then -- Two identical tag sets remove(this_tag_sets, tag_ind) inner_broken = true break else -- Combine tag sets at mismatch_ind, using the canonical shortcuts. local tag1 = split_and_normalize_tag(cur_tag_set.tags[mismatch_ind], lang, true) local tag2 = split_and_normalize_tag(tag_set.tags[mismatch_ind], lang, true) -- Combine the normalized tags and remove the special MARK_CONJOINED_SHORTCUT mark -- on conjoined shortcuts so we have normal tags again. local combined_tag = concat(append(tag1, tag2), "//"):gsub(MARK_CONJOINED_SHORTCUT, "") local new_tag_set = {} for i = 1, #cur_tag_set.tags do if i == mismatch_ind then insert(new_tag_set, combined_tag) else local cur_canon_tag = split_and_normalize_tag(cur_tag_set.tags[i], lang) local canon_tag = split_and_normalize_tag(tag_set.tags[i], lang) assert(deep_equals(list_to_set(cur_canon_tag), list_to_set(canon_tag))) insert(new_tag_set, cur_tag_set.tags[i]) end end this_tag_sets[prev_tag_ind].tags = new_tag_set remove(this_tag_sets, tag_ind) inner_broken = true break end end end end if not inner_broken then -- No break from inner for-loop. Break from that loop indicates that we found that the current -- tag set can be combined with a preceding tag set, did the combination and deleted the -- current tag set. The next iteration then processes the same numbered tag set again (which is -- actually the following tag set, because we deleted the tag set before it). No break -- indicates that we couldn't combine the current tag set with any preceding tag set, and need -- to advance to the next one. tag_ind = tag_ind + 1 end end end tag_sets_by_style[combine_style] = this_tag_sets end if not deep_equals(tag_sets_by_style["adjacent-first"], tag_sets_by_style["all-first"]) then local function num_combinations(group) local num_combos = 0 for _, tag_set in ipairs(group) do for _, tag in ipairs(tag_set.tags) do if tag:find("//") then num_combos = num_combos + 1 end end end return num_combos end local num_adjacent_first_combos = num_combinations(tag_sets_by_style["adjacent-first"]) local num_all_first_combos = num_combinations(tag_sets_by_style["all-first"]) if num_adjacent_first_combos < num_all_first_combos then tag_sets = tag_sets_by_style["adjacent-first"] elseif num_all_first_combos < num_adjacent_first_combos then tag_sets = tag_sets_by_style["all-first"] else tag_sets = tag_sets_by_style["adjacent-first"] end else -- Both are the same, pick either one tag_sets = tag_sets_by_style["adjacent-first"] end if deep_equals(tag_sets, old_canonicalized_tag_sets) then break end -- FIXME, we should consider reversing the transformation 1s -> 1|s, -- but it's complicated to figure out when the transformation occurred; -- not really important as both are equivalent end if old_style_tags then local retval = {} for _, tag_set in ipairs(tag_sets) do if tag_set.labels and #tag_set.labels > 0 then tag_set.tags[#tag_set.tags] = tag_set.tags[#tag_set.tags] .. "<lb:" .. concat(tag_set.labels, ",") .. ">" end if #retval > 0 then insert(retval, ";") end extend(retval, tag_set.tags) end return retval else for _, tag_set in ipairs(tag_sets) do tag_set.labels_with_auto = nil end return tag_sets end end -- Test function, callable externally. function export.test_combine_tag_sets_into_multipart(frame) local iparams = { [1] = {list = true, required = true}, lang = {required = true}, } local args = require("Module:parameters").process(frame.args, iparams) local lang = require("Module:languages").getByCode(args.lang, true) local combined_tags = export.combine_tag_sets_into_multipart(args[1], lang) return concat(combined_tags, "|") end local function can_merge(entry, candidate) for _, key in ipairs{"pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms"} do if not deep_equals(entry[key], candidate[key]) then return false end end return true end -- Check whether `entry` (an object describing a given non-lemma form, with properties such as `pronunc` for -- pronunciation, `def` for definition, etc.) can be merged with any of the existing entries listed in `candidates`. -- "Can be merged" means that all relevant properties (basically, everything but the definition) can are the same. -- Return the first such candidate found, or nil if no candidates match `entry`. local function find_mergeable(entry, candidates) for _, candidate in ipairs(candidates) do if can_merge(entry, candidate) then return candidate end end return nil end -- Merge multiple entries into one if they differ only in the definition, with all other -- properties the same. The combined entry has multiple definition lines. We then do -- further frobbing of {{infl of}} lines: -- -- 1. Convert lang= param to param 1 (there shouldn't be any remaining cases of accelerator -- modules generating {{infl of}} templates with lang=, but we do this just in case). -- 2. Combine adjacent {{infl of}} lines that differ only in the tags, e.g.: -- -- # {{infl of|la|bonus||nom|m|s}} -- # {{infl of|la|bonus||nom|n|s}} -- # {{infl of|la|bonus||acc|n|s}} -- # {{infl of|la|bonus||voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- 3. Further group {{infl of}} lines with multiple tag sets (as may be generated b y -- the previous step) using multipart tags, e.g. for the Latin entry ''bonum'', -- -- # {{infl of|la|bonus||nom|m|s|;|nom|n|s|;|acc|n|s|;|voc|n|s}} -- -- becomes -- -- # {{infl of|la|bonus||nom|m|s|;|nom//acc//voc|n|s}} -- -- This grouping can group across multiple dimensions, e.g. for the Latin entry ''bonīs'', -- -- # {{infl of|la|bonus||dat|m|p|;|dat|f|p|;|dat|n|p|;|abl|m|p|;|abl|f|p|;|abl|n|p}} -- -- becomes -- -- # {{infl of|la|bonus||dat//abl|m//f//n|p}} -- -- Another complex real-world example, for the Old English weak adjective form ''dēorenan'': -- -- # {{infl of|ang|dēoren||wk|acc|m|sg|;|wk|acc|f|sg|;|wk|gen|m|sg|;|wk|gen|f|sg|;|wk|gen|n|sg|;|wk|dat|m|sg|;|wk|dat|f|sg|;|wk|dat|n|sg|;|wk|ins|m|sg|;|wk|ins|f|sg|;|wk|ins|n|sg|;|wk|nom|m|pl|;|wk|nom|f|pl|;|wk|nom|n|pl|;|wk|acc|m|pl|;|wk|acc|f|pl|;|wk|acc|n|pl}} -- -- becomes -- -- # {{infl of|ang|dēoren||wk|acc|m//f|sg|;|wk|gen//dat//ins|m//f//n|sg|;|wk|nom//acc|m//f//n|pl}} -- -- Here, 17 separate tag sets are combined down into 3. local function merge_entries(entries_obj) local entries_new = {} -- First, if overrides are supplied, try to eliminate entries with duplicate overrides. local saw_override = false for _, entry in ipairs(entries_obj.entries) do if entry.override then saw_override = true break end end if saw_override then for _, entry in ipairs(entries_obj.entries) do -- If some entries have an override and some don't, only deduplicate the ones with an override and -- include all the ones without an override. FIXME: Deduplicate the non-overridden ones using the -- algorithm below, and provide a custom function for deduplicating overrides. if not entry.override then insert(entries_new, entry) else insert_if_not(entries_new, entry, { key = function(entry) return entry.override end, }) end end entries_obj.entries = entries_new return end -- First rewrite {{infl of|...|lang=LANG}} to {{infl of|LANG|...}} for _, entry in ipairs(entries_obj.entries) do local params = entry.def:match("^{{infl of|([^{}]+)}}$") if not params then params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if params then params = split(params, "|", true) local new_params = {} for _, param in ipairs(params) do local lang = param:match("^lang=(.*)$") if lang then insert(new_params, 1, lang) else insert(new_params, param) end end entry.def = "{{infl of|" .. concat(new_params, "|") .. "}}" end end -- Merge entries that match in all of the following properties: -- "pronunc", "etymology", "pos_header", "head", "inflection", "declension", "conjugation", "altforms" -- This will merge any two mergeable entries even if non-consecutive. -- The definitions of the merged entries do not have to match, but any matching -- definitions will be deduped. for _, entry in ipairs(entries_obj.entries) do -- See if this entry can be merged with any previous entry. local merge_entry = find_mergeable(entry, entries_new) if merge_entry then local duplicate_def = false -- If we can merge, check whether the definition of the new entry is -- the same as any previous definitions. for _, def in ipairs(merge_entry.defs) do if def == entry.def then duplicate_def = true break end end if not duplicate_def then insert(merge_entry.defs, entry.def) end else entry.defs = {entry.def} insert(entries_new, entry) end end -- FIXME: Use the template parser for this. -- Combine the definitions for each entries, merging all {{infl of}} calls -- into one such call with multiple tag sets. for _, entry in ipairs(entries_new) do local existing_defs = {} for _, new_def in ipairs(entry.defs) do local did_merge = false local new_params = new_def:match("^{{infl of|([^{}]+)}}$") if not new_params then new_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if new_params then -- The new definition is {{infl of}}. See if there is an -- {{infl of}} among the definitions seen so far. for i, existing_def in ipairs(existing_defs) do local existing_params = existing_def:match("^{{infl of|([^{}]+)}}$") if not existing_params then existing_params = existing_def:match("^{{inflection of|([^{}]+)}}$") end if existing_params then -- Merge the existing and new {{infl of}} calls. -- Find the last unnamed parameter of the first template. existing_params = split(existing_params, "|", true) local last_numbered_index for j, param in ipairs(existing_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Add grammar tags of the second template new_params = split(new_params, "|", true) local tags = {} local n = 0 for _, param in ipairs(new_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, -- which don't indicate grammar tags if n >= 4 then -- Now append the tags insert(tags, param) end end end -- Add the new parameters after the existing ones existing_params[last_numbered_index] = existing_params[last_numbered_index] .. "|;|" .. concat(tags, "|") existing_defs[i] = "{{infl of|" .. concat(existing_params, "|") .. "}}" did_merge = true break end end end if not did_merge then insert(existing_defs, new_def) end end entry.def = concat(existing_defs, "\n# ") end -- Now combine tag sets inside a multiple-tag-set {{infl of}} call for _, entry in ipairs(entries_new) do local infl_of_params = entry.def:match("^{{infl of|([^{}]+)}}$") if not infl_of_params then infl_of_params = entry.def:match("^{{inflection of|([^{}]+)}}$") end if infl_of_params then infl_of_params = split(infl_of_params, "|", true) -- Find the last unnamed parameter local last_numbered_index for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then last_numbered_index = j end end -- Split the params in three: -- (1) Params before the inflection tags, and any named params mixed in with the tags -- (2) The tags themselves -- (3) Named params after the tags local pre_tag_params = {} local tags = {} local post_tag_params = {} local n = 0 for j, param in ipairs(infl_of_params) do if not param:find("=", nil, true) then n = n + 1 -- Skip the first three unnamed parameters, which don't indicate grammar tags if n >= 4 then insert(tags, param) else insert(pre_tag_params, param) end elseif n >= last_numbered_index then insert(post_tag_params, param) else insert(pre_tag_params, param) end if not param:find("=", nil, true) then last_numbered_index = j end end -- Now combine tag sets. tags = export.combine_tag_sets_into_multipart(tags, entries_obj.lang) -- Put the template back together. local combined_params = {} for _, v in ipairs(pre_tag_params) do table.insert(combined_params, v) end for _, v in ipairs(tags) do table.insert(combined_params, v) end for _, v in ipairs(post_tag_params) do table.insert(combined_params, v) end entry.def = "{{infl of|" .. table.concat(combined_params, "|") .. "}}" end end entries_obj.entries = entries_new end local function merge_field(entries, field) local seen_fields = create_ordered_set() for _, entry in ipairs(entries) do local fieldval = entry[field] if fieldval then if type(fieldval) == "table" then -- already a table else fieldval = split(fieldval, "\n", true) end for _, val in ipairs(fieldval) do if val ~= "" then -- skip newlines, including if there's a final newline when split add_item(seen_fields, val) end end end end return seen_fields.array end local function default_merge_pronunciation(entries_obj) local pronuncs = merge_field(entries_obj.entries, "pronunc") if #pronuncs > 0 then return concat(pronuncs, "\n") else return nil end end local function generate_merged_pronunciation(entries_obj, lang_module) entries_obj.pronunciation = (lang_module and lang_module.generate_pronunciation or default_merge_pronunciation)(entries_obj) end local function default_merge_etymology(entries_obj) local etyms = merge_field(entries_obj.entries, "etymology") if #etyms > 1 then -- Hack! If multiple etymology entries, put a * before each one so they don't run together. -- In such a case we may be better off using a custom merge function. for i, item in ipairs(etyms) do etyms[i] = "* " .. item end end if #etyms > 0 then return concat(etyms, "\n") else return nil end end local function generate_merged_etymology(entries_obj, lang_module) entries_obj.etymology = (lang_module and lang_module.generate_etymology or default_merge_etymology)(entries_obj) end local function entries_to_text(entries_obj) for i, entry in ipairs(entries_obj.entries) do if entry.override then entry = "\n" ..(entry.override or "") else entry = "\n\n" .. "===" .. entry.pos_header .. "===\n" .. entry.head .. "\n\n" .. "# " .. entry.def .. (entry.inflection and "\n\n====Inflection====\n" .. entry.inflection or "") .. (entry.declension and "\n\n====Declension====\n" .. entry.declension or "") .. (entry.conjugation and "\n\n====Conjugation====\n" .. entry.conjugation or "") .. (entry.altforms and "\n\n====Alternative forms====\n" .. entry.altforms or "") .. -- FIXME, if there are multiple entries, there should either be only one merged L3 Mutation or several -- L4 Mutation sections. Not yet implemented. (entry.mutation and "\n\n===Mutation===\n" .. entry.mutation or "") end entries_obj.entries[i] = entry end return "==" .. entries_obj.lang:getCanonicalName() .. "==" .. (entries_obj.etymology and "\n\n===Etymology===\n" .. entries_obj.etymology or "") .. (entries_obj.pronunciation and "\n\n===Pronunciation===\n" .. entries_obj.pronunciation or "") .. concat(entries_obj.entries) end local function split_and_zip_term_and_tr(encoded_term, encoded_tr) local terms = split(encoded_term, split_term_regex) local trs = encoded_tr and split(encoded_tr, split_term_regex) or {} if #trs > #terms then error(("Saw %s translits, which is > the %s terms seen: encoded_term=%s, encoded_tr=%s"): format(#trs, #terms, encoded_term, encoded_tr)) end local result = {} for i, term in ipairs(terms) do local tr = trs[i] if tr == "" then tr = nil end insert(result, {term = term, tr = tr}) end return result end local function paste_term_tr(termobj) if termobj.tr then return termobj.term .. "//" .. termobj.tr else return termobj.term end end function export.generate(frame) local required = {required = true} local list_allow_holes = {list = true, allow_holes = true} local fparams = { lang = {required = true, type = "language"}, origin_pagename = required, target_pagename = required, num = {required = true, type = "number"}, pos = list_allow_holes, form = list_allow_holes, gender = list_allow_holes, transliteration = list_allow_holes, origin = list_allow_holes, origin_transliteration = list_allow_holes, -- I'm pretty sure this is actually required and must have args.num entries in it. target = list_allow_holes, } local args = require("Module:parameters").process(frame.args, fparams, nil, "accel", "generate") local lang = args.lang -- Try to use a language-specific module, if one exists. local module_lang, lang_module = lang while module_lang do lang_module = safe_require("Module:accel/" .. module_lang:getCode()) if lang_module ~= nil then break end module_lang = module_lang:getParent() end local entries = {} -- Generate each entry local seen_origins = create_ordered_set() local seen_targets = create_ordered_set() local params_list = {} for i = 1, args.num do local params = { lang = lang, origin_pagename = args.origin_pagename, target_pagename = args.target_pagename, pos = args.pos[i] or error("The argument \"pos\" is missing for entry " .. i), form = args.form[i] or error("The argument \"form\" is missing for entry " .. i), gender = args.gender[i], origin = args.origin[i] or error("The argument \"origin\" is missing for entry " .. i), origin_transliteration = args.origin_transliteration[i], target = args.target[i], transliteration = args.transliteration[i], num_entries = args.num, } params.form = params.form:gsub("&#124;", "|") params.targets = split_and_zip_term_and_tr(params.target, params.transliteration) params.origins = split_and_zip_term_and_tr(params.origin, params.origin_transliteration) for _, origin in ipairs(params.origins) do add_item(seen_origins, paste_term_tr(origin), origin) end for _, target in ipairs(params.targets) do add_item(seen_targets, paste_term_tr(target), target) end insert(params_list, params) end -- Generate entries. for _, params in ipairs(params_list) do -- Add overall stats to all params objects. params.seen_origins = seen_origins params.seen_targets = seen_targets -- Make a default entry. local entry = export.default_entry(params) if lang_module then lang_module.generate(params, entry) end -- Add it to the list. insert(entries, entry) end local entries_obj = { entries = entries, lang = lang, lang_module = lang_module, seen_origins = seen_origins, seen_targets = seen_targets, } -- Merge entries if possible. merge_entries(entries_obj) -- Now generate merged pronunciation and etymology, either using a custom generation function or by merging the -- individually specified pronunciation and etymology lines. generate_merged_pronunciation(entries_obj, lang_module) generate_merged_etymology(entries_obj, lang_module) return entries_to_text(entries_obj) end function export.generate_JSON(frame) local success, entries = pcall(export.generate, frame) -- If success is false, entries is an error message. -- It appears we need to specify `messages` or nothing will be displayed. local ret = { [success and "entries" or "error"] = entries, messages = require("Module:array")()} return require("Module:JSON").toJSON(ret) end return export 86eun0edau2mj2hhnqjauadmbrmp5ek တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mɪŋ 106 34026 293047 79812 2026-09-19T09:42:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293047 wikitext text/x-wiki {{rhymes nav|en|ɑː|(r)mɪŋ}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ä(r)mĭng}}, {{IPA|en|/-ɑː(r)mɪŋ/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== # In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːmɪŋ|/-ɑːmɪŋ/]] are also rhymes for words on this page. # For more rhymes, add ''ing'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(r)m|/-ɑː(r)m/]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add present participles or gerunds to this page unless they have other meanings--> * [[charming]]<!--adjective, as in "a charming village", and ironically, as in "Well, that's charming!"--> * [[farming]]<!--noun, as in "factory farming"; modifier, as in "farming methods"--> * {{l|en|harming}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add present participles or gerunds to this page unless they have other meanings--> * [[disarming]]<!--adjective, as in "a disarming smile"--> iexqkx13ct9ixrpnls3tnmro7sa5g09 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/iːʃ 106 37530 293181 84203 2026-09-19T10:07:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293181 wikitext text/x-wiki {{rhymes nav|en|iː|ʃ}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ēsh}}, {{IPA|en|/-iːʃ/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၼိုင်ႈသဵင်=== {{rhyme-top}} * {{l|en|Briche}} * {{l|en|Chiche}} * {{l|en|Cliche}} * {{l|en|creesh}}, {{l|en|creish}} {{qualifier|one pronunciation}} * {{l|en|fiche}} {{qualifier|UK and one US pronunciation}} * {{l|en|Fliche}} * {{l|en|guiche}} * {{l|en|Laoighis}}, {{l|en|Laois}}, {{l|en|Leix}}<!--sic--> * {{l|en|leash}} * {{l|en|leish}} * {{l|en|Neish}} * {{l|en|niche}} {{qualifier|UK and one US pronunciation}} * {{l|en|quiche}} * {{l|en|Reaiche}} * {{l|en|Riche}} {{qualifier|one pronunciation}} * {{l|en|sheesh}} * {{l|en|sneesh}} * {{l|en|Suiche}} * {{l|en|Teish}} * {{l|en|yeesh}}, {{l|en|yiish}} {{rhyme-bottom}} ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the FINAL syllable.--> {{rhyme-top}} * {{l|en|Abish}} {{qualifier|Indian given name}} * {{l|en|Ablish}} * {{l|en|affiche}} * {{l|en|Aniche}} * {{l|en|Anish}} {{qualifier|given name}} * {{l|en|Aouchiche}} * {{l|en|ʻArish}} * {{l|en|babiche}} * {{l|en|baksheesh}} {{qualifier|one pronunciation}} * {{l|en|bardiche}} * {{l|en|Batish}} * {{l|en|benish}} * {{l|en|Berriche}} * {{l|en|Bibiche}} * {{l|en|Boniche}} * {{l|en|Borniche}} * {{l|en|Campiche}} * {{l|en|capisce}}, {{l|en|coppish}} {{qualifier|and various other spellings}} * {{l|en|Castrisch}} * {{l|en|chancliche}} * {{l|en|Corniche}} * {{l|en|corniche}} * {{l|en|Dagleish}}, {{l|en|Daglish}} * {{l|en|Dalgleish}}, {{l|en|Dalgliesh}}, {{l|en|Dalglish}} * {{l|en|Darniche}} * {{l|en|Darwish}} {{qualifier|one pronunciation}} * {{l|en|el-ʻArīsh}} * {{l|en|enniche}} {{qualifier|one pronunciation}} * {{l|en|flamiche}} * {{l|en|Galmiche}} * {{l|en|Gireesh}}, {{l|en|Girish}} * {{l|en|gribiche}} * {{l|en|Guariche}} * {{l|en|Halliche}} * {{l|en|Hammiche}} * {{l|en|Harish}} * {{l|en|Havish}} * {{l|en|Jagdish}} * {{l|en|kabish}} * {{l|en|Kadish}} {{qualifier|one pronunciation}} * {{l|en|kamish}} * {{l|en|Kechiche}} * {{l|en|Labiche}} * {{l|en|La Friche}} * {{l|en|La Riche}} * {{l|en|Leriche}}, {{l|en|Le Riche}} * [[w:Ma Biche|Ma Biche]]<!--leave linked to Wikipedia--> * {{l|en|MacLeish}}, {{l|en|McLeish}} * {{l|en|MacNeish}}, {{l|en|McNeish}} * {{l|en|Maneesh}}, {{l|en|Manish}} * [[w:Maniche|Maniche]]<!--pseudonym; leave linked to Wikipedia--> * {{l|en|McGleish}} * {{l|en|Meziche}} * {{l|en|pastiche}} * {{l|en|Peniche}} * {{l|en|peniche}} * ''[[w:Poliche|Poliche]]''<!--movie; leave linked to Wikipedia--> * {{l|en|postiche}} * {{l|en|potiche}} * {{l|en|Rejiche}} * {{l|en|rime riche}} * {{l|en|Sathish}}, {{l|en|Satish}} * {{l|en|schottische}} {{qualifier|one pronunciation}} * {{l|en|shankleesh}}, {{l|en|shanklish}} * {{l|en|Shaweesh}}, {{l|en|Shawish}} * {{l|en|shinklish}} * {{l|en|Shirish}} * {{l|en|Songish}} * {{l|en|sub-niche}} {{qualifier|UK and one US pronunciation}} * {{l|en|Tajrish}} * {{l|en|Tanish}} * {{l|en|tchaviche}} * {{l|en|unleash}} * {{l|en|vieux riche}} * {{l|en|Yaish}} * {{l|en|Yamiche}} * {{l|en|Yatish}} {{rhyme-bottom}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the FINAL syllable.--> {{rhyme-top}} * {{l|en|Jagadish}} * {{l|en|Lac la Biche}} * {{l|en|Moyer-Gleich}} * {{l|en|manakish}}, {{l|en|manaqish}} * {{l|en|multiniche}} * {{l|en|nouveau riche}} * {{l|en|w:OrbusNeich|OrbusNeich}}<!--company name; leave linked to Wikipedia--> * {{l|en|ouananiche}} * {{l|en|Oued Koriche}} * {{l|en|Porto-Riche}} * {{l|en|Yamachiche}} {{rhyme-bottom}} ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the FINAL syllable.--> {{rhyme-top}} * {{l|en|Audun-le-Tiche}} * {{l|en|pied-de-biche}} * {{l|en|Souzy-la-Briche}} {{rhyme-bottom}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ ပဵၼ်ပွတ်းပဵၼ်တွၼ်ႈ== {{partrhyme}} ===သွင်သဵင်=== {{rhyme-top}} * [[w:Bakchich (internet)|Bakchich]]<!--website; leave linked to Wikipedia--> {{rhyme-bottom}} ===သၢမ်သဵင်=== {{rhyme-top}} * {{l|en|econiche}} {{qualifier|one US pronunciation}} * {{l|en|Firmenich}} {{qualifier||one pronunciation}} * {{l|en|macroniche}} {{qualifier|one pronunciation}} * {{l|en|meganiche}} {{qualifier|one US pronunciation}} * {{l|en|microniche}} {{qualifier|one US pronunciation}} * {{l|en|superfiche}} * {{l|en|ultrafiche}} * {{l|en|waydelich}} {{rhyme-bottom}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ ပဵၼ်ပွတ်းပဵၼ်တွၼ်ႈ== {{partrhyme}} ===သွင်သဵင်=== {{rhyme-top}} * {{l|en|baksheesh}} {{qualifier|and other spellings; one pronunciation}} * {{l|en|hasheesh}}, {{l|en|hashish}} {{qualifier|one pronunciation}} * {{l|en|Mohnish}} {{rhyme-bottom}} ===သၢမ်သဵင်=== {{rhyme-top}} * {{l|en|microfiche}} {{rhyme-bottom}} enzbz49vcnmyax8okykqvs9d1p64f9p တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p 106 37594 293097 84274 2026-09-19T09:51:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293097 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)p}} ==သဵင်ဢွၵ်ႇ== -ä(r)p, {{IPAchar|/-ɑː(ɹ)p/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== # In non-rhotic accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːp|/-ɑːp/]] are rhymes for words on this page. ===ၼိုင်ႈသဵင်=== {{rhyme-top}} * {{l|en|carp}} * [[w:The World According to Garp|Garp]] * {{l|en|harp}} * {{l|en|jarp}} * {{l|en|LARP}} * {{l|en|parp}} * {{l|en|scarp}} * {{l|en|sharp}} * {{l|en|tarp}} * {{l|en|Zarp}} {{rhyme-bottom}} ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the FINAL syllable.--> {{rhyme-top}} * {{l|en|escarp}} {{rhyme-bottom}} tvonmc4t578pb94hyugawmwefl12d9o တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pɪŋ 106 37597 293101 84278 2026-09-19T09:52:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293101 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)pɪŋ}} ==သဵင်ဢွၵ်ႇ== -ä(r)pĭng, {{IPAchar|/-ɑː(ɹ)pɪŋ/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːpɪŋ|/-ɑːpɪŋ/]] are also rhymes for words on this page. #For more rhymes, add ''ing'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p|/-ɑː(ɹ)p/]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add present participles or gerunds to this page unless they have other meanings--> {{rhyme-top}} * {{l|en|carping|pos=adjective, noun}} * {{l|en|harping}} {{rhyme-bottom}} 4wsx1qvyn6oh1iwwuxx9i93wwg7oelr တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹi 106 37689 293138 84378 2026-09-19T09:59:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293138 wikitext text/x-wiki {{rhymes nav|en|æ|ɹi}} ==သဵင်ဢွၵ်ႇ== -ări, /-æri/, /<tt>-{ri</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== * In accents in which "merry" and "Mary" are pronounced the same as "marry", words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɛri|/-ɛri/]] and [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɛəri|/-ɛəri/]] are rhymes for words on this page. (Please do not add these words to this page.) ===Suffixes=== * {{l|en|-ary}} {{qualifier|usually Philippines, e.g. "-ciary"}} ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add words like "merry" and "Mary" to this page: see the note above--> {{rhyme-top}} * {{l|en|'Arry}}<!--sic--> * {{l|en|Barrie}} * {{l|en|barry}} * {{l|en|Barry}} * {{l|en|Carrie}} * {{l|en|carry}} * {{l|en|Cary}} * {{l|en|Clarry}} * {{l|en|Drarry}} * {{l|en|gari}}, {{l|en|garri}}, {{l|en|garry}} * {{l|en|gari}}, {{l|en|gharee}}, {{l|en|gharri}}, {{l|en|gharrie}}, {{l|en|gharry}} {{qualifier|one pronunciation}} * {{l|en|Garry}}, {{l|en|Gary}} * {{l|en|harry}} * {{l|en|Harry}} * {{l|en|karee}}, {{l|en|karree}} * {{l|en|Kari}} {{qualifier|one pronunciation}} * {{l|en|kari}}, {{l|en|karri}} * {{l|en|larry}} * {{l|en|Larry}} * {{l|en|marri}} * {{l|en|marry}} * {{l|en|parry}} * {{l|en|sharrie}}, {{l|en|sharry}} * {{l|en|tarry}} {{qualifier|noun|verb}} * {{l|en|vary}} {{qualifier|one US pronunciation}} * [[w:Richard Scarry|Scarry]] {{qualifier|surname}} {{rhyme-bottom}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add words like "merry" and "Mary" to this page: see the note above--> {{rhyme-top}} * [[w:Madame du Barry|du Barry]] * {{l|en|Glengarry}} * {{l|en|miscarry}} * {{l|en|mismarry}} * {{l|en|outcarry}} * {{l|en|recarry}} * {{l|en|remarry}} * {{l|en|shoaldarree}}, {{l|en|sholdarry}}, {{l|en|shooldarry}} * {{l|en|unmarry}} {{rhyme-bottom}} ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add words like "merry" and "Mary" to this page: see the note above--> {{rhyme-top}} * {{l|en|cash-and-carry}} * {{l|en|charivari}} {{qualifier|one pronunciation}} * {{l|en|fetch and carry}}, {{l|en|fetch-and-carry}} * {{l|en|hari-kari}} {{qualifier|one pronunciation}} * {{l|en|hirrie-harrie}} * {{l|en|intermarry}} * {{l|en|overcarry}} * {{l|en|rose du Barri}}, {{l|en|rose du Barry}} {{rhyme-bottom}} i5xqlu1aazf7lng4carm4mc4smglrme တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsək 106 38035 293199 84798 2026-09-19T10:11:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293199 wikitext text/x-wiki {{rhymes nav|en|æ|sək}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ăsək}}, {{IPA|en|/-æsək/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> *[[Basiuk]] {{q|anglicised surname}} *[[bassock]] *[[cassock]] *[[Glassock]] *[[glassock]] {{q|one pronunciation}} *[[hassock]] *[[lassock]] ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> *[[uncassock]] 6uaafjzqe4c7nuwp7yjgv7rz74os5gh တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsən 106 38110 293209 84885 2026-09-19T10:13:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293209 wikitext text/x-wiki {{rhymes nav|en|eɪ|sən}} ==သဵင်ဢွၵ်ႇ== -āsən, /-eɪsən/, /<tt>-eIs@n</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULIMATE syllable.--> * [[basin]] * [[bason]] * [[caisson]] * [[chasten]] * [[hasten]] * [[Jason]] * [[JSON]] * [[Mason]] * [[mason]] * [[nason]] ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULIMATE syllable.--> * [[enchasten]] * [[Marquesan]] ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the PENULIMATE syllable.--> * [[diapason]] mue277ezfi7ellltmkqdgm3frn2liz6 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ætə(ɹ) 106 38335 293241 85489 2026-09-19T10:21:17Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293241 wikitext text/x-wiki {{rhymes nav|en|æ|tə(ɹ)}} ==သဵင်ဢွၵ်ႇ== -ătə(r), /-ætə(r)/, /<tt>-{t@(r)</tt>/ ===ၶေႃႈမၢႆတွင်း=== #For more rhymes, add ''er'' to some nouns and adjectives at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æt|/-æt/]]. #In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ætə|/-ætə/]] are rhymes for words on this page. #In accents with [[flapping]], words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ædə(r)|/-ædə(r)/]] are also rhymes for words on this page. ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add comparatives to this section--> {{rhyme-top}} * {{l|en|attar}} * {{l|en|atter}} * {{l|en|batter}} * {{l|en|blatter}} * {{l|en|chatter}} * {{l|en|clatter}} * {{l|en|fatter}} * {{l|en|flatter}} * {{l|en|gatter}} * {{l|en|hatter}} * {{l|en|latter}} * {{l|en|matter}} * {{l|en|natter}} * {{l|en|patter}} * {{l|en|platter}} * {{l|en|ratter}} * {{l|en|satyr}} {{qualifier|Received Pronunciation}} * {{l|en|scatter}} * {{l|en|shatter}} * {{l|en|skatter}} * {{l|en|slatter}} * {{l|en|smatter}} * {{l|en|spatter}} * {{l|en|splatter}} * {{l|en|spratter}} * {{l|en|tatter}} * {{l|en|yatter}} {{rhyme-bottom}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add comparatives to this section--> {{rhyme-top}} * {{l|en|a-chatter}} * {{l|en|bespatter}} * {{l|en|beflatter}} * {{l|en|bescatter}} * {{l|en|out-flatter}} {{rhyme-bottom}} ===သီႇသဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> <!--Do not add comparatives to this section--> {{rhyme-top}} * {{l|en|chitter-chatter}} * {{l|en|clitter-clatter}} * {{l|en|counter-batter}} * {{l|en|pitter-patter}} {{rhyme-bottom}} oyqc80n5zyamb5xj47f0b7oihkgi5tq ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mɪŋ 14 41988 293045 91452 2026-09-19T09:42:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293045 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mɪŋ/2 သဵင် 14 41989 293046 91453 2026-09-19T09:42:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293046 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mɪŋ]] sjcan1ftes8vv68i9t3794csdp9f162 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)md 14 41991 293050 91456 2026-09-19T09:43:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293050 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)md/1 သဵင် 14 41992 293051 91457 2026-09-19T09:43:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293051 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)md]] qwnea0tt95e2hi2m42ovl8fedg6mt7g ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)m/1 သဵင် 14 41994 293043 91459 2026-09-19T09:41:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293043 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)m]] 625si08584qe438yp4ojxwdu62oa09p ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsən 14 42195 293207 101448 2026-09-19T10:12:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293207 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsən/2 သဵင် 14 42196 293208 91859 2026-09-19T10:13:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293208 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsən]] fxnjam075nvzddcpnuus11x0hji1glv ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ætə(ɹ) 14 42335 293239 92215 2026-09-19T10:20:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293239 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ætə(ɹ)/2 သဵင် 14 42336 293240 92216 2026-09-19T10:21:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293240 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ætə(ɹ)]] smklw7tawcbecu8ku7zayktweqe2nku ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəs 14 49199 293074 108314 2026-09-19T09:48:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293074 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn kept one's hand in 0 75889 292859 2026-09-18T13:11:38Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|keep one's hand in||ed-form}}" 292859 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|keep one's hand in||ed-form}} 816c4rf78xxlvyash8no8ggwzpp98cs raises a hand 0 75890 292860 2026-09-18T13:21:18Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||s-verb-form}}" 292860 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||s-verb-form}} 83iggfiu1xkiuakijo5kgghacqvxqgs raising a hand 0 75891 292861 2026-09-18T13:21:46Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||ing-form}}" 292861 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||ing-form}} ijevf2oqz6n5z0jy1xmkezirh6iocwq raised a hand 0 75892 292862 2026-09-18T13:22:11Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||ed-form}}" 292862 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|raise a hand||ed-form}} mcvc98ci62nrd5xybi4ior5ybq537zz bound hand and foot 0 75893 292863 2026-09-18T13:22:47Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|bind hand and foot||ed-form}}" 292863 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|bind hand and foot||ed-form}} bb05r7clp3g30ewo8vch819m1ak1j6x lent a hand 0 75894 292864 2026-09-18T13:23:28Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|lend a hand||ed-form}}" 292864 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|lend a hand||ed-form}} 7h2wgxnlu658ov14uyb3rdf4wmbu4s9 gave someone a hand 0 75895 292865 2026-09-18T13:24:09Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give someone a hand||ed-form}}" 292865 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give someone a hand||ed-form}} str4ppiof78mg0bk1fxxa555foz2n4r gives 0 75896 292866 2026-09-18T13:26:50Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give||s-verb-form}}" 292866 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give||s-verb-form}} gw2kip6vvpgsnrk7xcx32t5d5nl4yab gave 0 75897 292867 2026-09-18T13:27:38Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|gāv|a=UK,US}}, {{IPA|en|/ɡeɪv/}} * {{audio|en|en-us-gave.ogg|a=US}} * {{IPA|en|[ɡeːv]|a=CA}} ** {{IPA|en|[ɡeːv]|[ɡɛːv]|a=Ottawa Valley}} * {{enPR|gĕv|a=Ireland,also}}, {{IPA|en|/ɡɛv/}} * {{rhymes|en|eɪv|s=1}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give||spast}}" 292867 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|gāv|a=UK,US}}, {{IPA|en|/ɡeɪv/}} * {{audio|en|en-us-gave.ogg|a=US}} * {{IPA|en|[ɡeːv]|a=CA}} ** {{IPA|en|[ɡeːv]|[ɡɛːv]|a=Ottawa Valley}} * {{enPR|gĕv|a=Ireland,also}}, {{IPA|en|/ɡɛv/}} * {{rhymes|en|eɪv|s=1}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|give||spast}} ld18auyit3upafruy5n7yz8mnviplg7 given someone a hand 0 75898 292868 2026-09-18T13:28:57Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|cat2=irregular past participles}} # {{inflection of|en|give someone a hand||past|part}}" 292868 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|cat2=irregular past participles}} # {{inflection of|en|give someone a hand||past|part}} f3j1utmnk01r58pds61s6290mxvxwha handed over 0 75899 292876 2026-09-19T04:25:22Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hand over]] ([[WT:ACCEL|Accelerated]]) 292876 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=handed over}} # {{infl of|en|hand over||ed-form}} 763slwvz3wt28zbud8rd249wg0olyp1 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/t͡ʃɪf 14 75900 292877 2026-09-19T04:25:56Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]]" 292877 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] f1zjkkxugfio8bf6xzm84da272trlw0 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/t͡ʃiːf 14 75901 292878 2026-09-19T04:26:03Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]]" 292878 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] f1zjkkxugfio8bf6xzm84da272trlw0 flew off the handle 0 75902 292879 2026-09-19T04:26:37Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[fly off the handle]] ([[WT:ACCEL|Accelerated]]) 292879 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=flew off the handle}} # {{infl of|en|fly off the handle||spast}} s1fk5uxa375xg4t0mzfcaqehn36oukk flown off the handle 0 75903 292880 2026-09-19T05:15:39Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[fly off the handle]] ([[WT:ACCEL|Accelerated]]) 292880 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=flown off the handle}} # {{infl of|en|fly off the handle||past|part}} mjv3kjhlzmtmu38p5wcyprew61oexem hung up 0 75904 292881 2026-09-19T05:20:17Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang up]] ([[WT:ACCEL|Accelerated]]) 292881 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung up}} # {{infl of|en|hang up||ed-form}} i4owzfiiplufx09n0w53jncc1f2q38c hung together 0 75905 292882 2026-09-19T05:20:43Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang together]] ([[WT:ACCEL|Accelerated]]) 292882 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung together}} # {{infl of|en|hang together||ed-form}} p9brzb0sotde27dzv7k4jcnc0ltpg68 ပိူင်ထၢၼ်ႈ:ပွင်ႈၵႂၢမ်းသၢင်ႈဢိင်းၵလဵတ်ႈ ဢၼ်ၽွတ်ႈႁႅၼ်းဝႆႉတင်း "together" 14 75906 292883 2026-09-19T05:21:02Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ[[" 292883 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ[[ q56odpsa33654ljzs3fiuslwmvuypxp 292884 292883 2026-09-19T05:21:12Z Saimawnkham 9 292884 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ]] mielw0otw3a8r9adu0xi0kh6p0j8j0e hung out 0 75907 292885 2026-09-19T05:21:44Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang out]] ([[WT:ACCEL|Accelerated]]) 292885 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung out}} # {{infl of|en|hang out||ed-form}} komcsrnq6gfxlffaq4xdt0043r81jl3 hung onto 0 75908 292886 2026-09-19T05:22:18Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang onto]] ([[WT:ACCEL|Accelerated]]) 292886 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung onto}} # {{infl of|en|hang onto||ed-form}} n2pwsaqnhwsb029bi1k5lg63rijhngc ပိူင်ထၢၼ်ႈ:ပွင်ႈၵႂၢမ်းသၢင်ႈဢိင်းၵလဵတ်ႈ ဢၼ်ၽွတ်ႈႁႅၼ်းဝႆႉတင်း "onto" 14 75909 292887 2026-09-19T05:22:34Z Saimawnkham 9 ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈဝႆႉ တင်း "[[ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ]]" 292887 wikitext text/x-wiki [[ပိူင်ထၢၼ်ႈ:ၽႃႇသႃႇဢိင်းၵလဵတ်ႈ]] mielw0otw3a8r9adu0xi0kh6p0j8j0e hung back 0 75910 292888 2026-09-19T05:23:08Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang back]] ([[WT:ACCEL|Accelerated]]) 292888 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung back}} # {{infl of|en|hang back||ed-form}} 5wnywxvw0lah750jo8wv9f2s2s2lgw9 hung about 0 75911 292889 2026-09-19T05:23:35Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang about]] ([[WT:ACCEL|Accelerated]]) 292889 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung about}} # {{infl of|en|hang about||ed-form}} e3s1qfvipqhue5yc72tnnb6xq9v334o hung fire 0 75912 292890 2026-09-19T05:41:38Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang fire]] ([[WT:ACCEL|Accelerated]]) 292890 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung fire}} # {{infl of|en|hang fire||ed-form}} hkf9cd79but1cfxfnemz64lmun0hjjv hung by a thread 0 75913 292891 2026-09-19T05:42:06Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang by a thread]] ([[WT:ACCEL|Accelerated]]) 292891 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung by a thread}} # {{infl of|en|hang by a thread||ed-form}} pzn65x4ed156cq9lwond6f3ppn3o6ir hung by a hair 0 75914 292892 2026-09-19T05:42:29Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang by a hair]] ([[WT:ACCEL|Accelerated]]) 292892 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung by a hair}} # {{infl of|en|hang by a hair||ed-form}} s4hu8jv448h90owsb69zyamt3sx9nmp hung one's head 0 75915 292893 2026-09-19T05:42:47Z Saimawnkham 9 Creating forms of ဢိင်းၵလဵတ်ႈ [[hang one's head]] ([[WT:ACCEL|Accelerated]]) 292893 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ|head=hung one's head}} # {{infl of|en|hang one's head||ed-form}} rdvfu26nc7dshka2q7qk25e2bza48tc hapless 0 75916 292894 2026-09-19T09:12:30Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292894 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæplɪs/}} * {{IPA|en|/ˈhæpləs/|a=US}} * {{audio|en|en-us-hapless.ogg|a=US}} * {{audio|en|en-au-hapless.ogg|a=AU}} * {{rhymes|en|æpləs|q1=US|s=2}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ဢၼ်ၵၢမ်ႇႁၢႆႉ၊ ဢၼ်ဢမ်ႇမီးသုၼ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} qqhn0x2u9shnxmhsxcov10kvel21g9g ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpləs 14 75917 292895 2026-09-19T09:12:40Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 292895 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpləs/1 သဵင် 14 75918 292896 2026-09-19T09:12:50Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 292896 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpləs]] 4lx4z9a6x3cxgmvtojcuqj2mriqhgac haply 0 75919 292897 2026-09-19T09:13:00Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292897 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpli/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-haply.wav|a=Southern England}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv|?}} # ဢဝ်သုၼ်ႇဝႃႈ။ # ဢဝ်ၵၢမ်ႇဝႃႈ။ # ဢဝ်သႆၢငႆၢဝႃႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} j9rfgn8hwk1f4oy96w63n454m2ragc6 haphazard 0 75920 292898 2026-09-19T09:13:10Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292898 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/(ˌ)hæpˈhæz.əd/|a=UK}} * {{IPA|en|/(ˌ)hæpˈhæz.ɚd/|/(ˌ)hæfˈhæz.ɚd/|q2=nonstandard|a=US,Canada}} {{q|see {{m|en|halfhazard}}}} ** {{audio|en|en-us-haphazard.ogg|a=California}} * {{IPA|en|/(ˌ)hæpˈhæz.əd/|a=AU}} ** {{audio|en|en-au-haphazard.ogg|a=Queensland}} * {{IPA|en|/(ˌ)hɛpˈhɛz.əd/|a=NZ}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv}} # ဢမ်ႇၶပ်ႉဝၢင်းၽႅၼ်သေပဵၼ်။ # ဢမ်ႇႁၢင်ႈႁႅၼ်းသေပဵၼ်။ # ပဵၼ်ဢမ်ႇၸပ်းလွၵ်းၸပ်းလႆၢး။ ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ဢမ်ႇၶပ်ႉဝၢင်းၽႅၼ်သေပဵၼ်မႃး။ # ဢမ်ႇႁၢင်ႈႁႅၼ်းသေပဵၼ်မႃး။ # ဢၼ်ပဵၼ်ဢမ်ႇၸပ်းလွၵ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jqvnn68uw1j0aknykd8cfo06znve88m haphazards 0 75921 292899 2026-09-19T09:13:20Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292899 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|haphazard}} s4yeizy2rhm6zzg7vcsekwnv530mywz happen 0 75922 292900 2026-09-19T09:13:30Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292900 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpən/}} * {{audio|en|en-us-happen.ogg|a=US}} * {{rhymes|en|æpən|s=2}} ===သၢင်ႈ=== {{en-verb}} # ပဵၼ်။ # ပဵၼ်မႃး။ # ယွၼ်ႉသေဢၼ်ဢၼ်လႄႈ ပဵၼ်။ # happen on၊ upon, ပဵၼ်ၸွမ်းၼင်ႇလႆႈႁဵတ်းဝႆႉ။ # ၵၢမ်ႇ။ # as it happen, ဢဝ်ၵၢမ်ႇဝႃႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} fcmnbk8gvt01wy3jqea7t94o47ukv2l ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpən 14 75923 292901 2026-09-19T09:13:41Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 292901 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpən/2 သဵင် 14 75924 292902 2026-09-19T09:13:50Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 292902 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpən]] dqlttkef1n7j8wrcz73pnyw6fdx6g8q တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æpən 106 75925 292903 2026-09-19T09:14:00Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 292903 wikitext text/x-wiki {{rhymes nav|en|æ|pən}} ==သဵင်ဢွၵ်ႇ== -ăpən, /-æpən/, /<tt>-{p@n</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|'appen}} * {{l|en|happen}} * {{l|en|m'appen}}, {{l|en|mappen}} * {{l|en|tappen}} {{rhyme-bottom}} ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|behappen}} * {{l|en|mayhappen}} * {{l|en|mishappen}} * {{l|en|rehappen}} * {{l|en|unhappen}} * {{l|en|Verstappen}} {{rhyme-bottom}} nx94fkexlw5sa3rq5fdlg7af9arf47n happened 0 75926 292904 2026-09-19T09:14:10Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292904 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpənd/}} * {{audio|en|en-us-happened.ogg|a=US}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|happen||ed-form}} 3t0lm6wfml3bgtkvt90vtnbo5lr8efi happenest 0 75927 292905 2026-09-19T09:14:20Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292905 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|happen||st-form}} 2g9ffewyolsoqgsq50er4jm92rolent happens 0 75928 292906 2026-09-19T09:14:30Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292906 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpənz/}} * {{audio|en|LL-Q1860 (eng)-Back ache-happens.wav|a=UK}} * {{audio|en|en-us-happens.ogg|a=US}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|happen||s-verb-form}} 4wlxaji3n1pjla315j5m1gfd2amc7jo happening 0 75929 292907 2026-09-19T09:14:40Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292907 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpɪnɪŋ/|/ˈhæpənɪŋ/|[ˈhæpnɪŋ]|[ˈhæpnɪn]|a=RP,GA,CA,AU}} ** {{audio|en|en-us-happening.ogg|a=California}} ===ႁိၵ်ႈ=== {{en-noun}} # လွင်ႈပဵၼ်သေလွင်ႈလွင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} io3pu2513g5btzne3silxwmyu1epgpw happenings 0 75930 292908 2026-09-19T09:15:07Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292908 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|happening}} 037o3bar7y257eb4e8tj0wyb9dsz5ao happeningest 0 75931 292909 2026-09-19T09:15:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292909 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|happening}} 7hj7fe2s7q3ne0p0bvw5tzotq87weaw happy 0 75932 292910 2026-09-19T09:15:35Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292910 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpi/|a=RP,GA,AU}} ** {{audio|en|En-uk-happy.ogg|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-happy.wav|a=GA}} ** {{audio|en|en-us-happy.ogg|a=GA}} ** {{audio|en|en-au-happy.ogg|a=AU}} * {{IPA|en|/ˈhapɪj/|a=SSB}} * {{IPA|en|/ˈhape/|/ˈhapɪ/|/ˈhapi/|a=Scotland}} * {{IPA|en|/ˈhɛpi/|a=NZ}} * {{hyphenation|en|hap|py}} * {{rhymes|en|æpi|s=2}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er,more}} # ဢၼ်မူၼ်ႈသိူဝ်း။ # ဢၼ်ၵျေႃႇ။ # ဢၼ်ပၼ်လွင်ႈမူၼ်ႈသိူဝ်း။ # ဢၼ်ႁၢၼ်ႉၸႂ်။ # ဢၼ်ပဵင်းပေႃးၸႂ်။ # ဢၼ်မူၼ်ႈသိူဝ်းသေႁဵတ်း၊ တူင်ႉၼိုင်။ # ဢၼ်ၵၢမ်ႇလီ။ # (ပႆၢးဝူၼ်ႉ၊ တၢင်းႁဵတ်း၊ ၶေႃႈၵႂၢမ်း) ဢၼ်သႆၢငႆၢလီ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 1mq82dpj6a0g3edjm5m8xhnxsfj9evc happying 0 75933 292911 2026-09-19T09:16:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292911 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|happy||ing-form}}. ikuxglwrxbou0a25wh5a1yni04oh3fn happier 0 75934 292912 2026-09-19T09:16:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292912 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpi.ə/|a=RP}} * {{IPA|en|/ˈhapɪj.ə/|a=SSB}} * {{IPA|en|/ˈhæpi.ɚ/|a=GA}} ** {{audio|en|LL-Q1860 (eng)-Flame, not lame-happier.wav|a=US}} * {{IPA|en|/ˈhape.əɾ/|a=Scotland}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ}} # {{en-comparative of|happy}} #* {{quote-journal|en|year=1941|month=November|title=Notes and News: The Centenary of Cook's|journal=Railway Magazine|page=513|text=This world-wide travel organisation recently attained its centenary, and under '''happier''' conditions than those prevailing at the present time the event would doubtless have been celebrated worthily.}} 27q52c23bm0i0osfjn6huodfdd1a74r happiest 0 75935 292913 2026-09-19T09:16:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292913 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæp.i.ɪst/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-happiest.wav|a=Southern England}} * {{audio|en|LL-Q1860 (eng)-Flame, not lame-happiest.wav|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|happy}} rc8g2r05ypcnvcf5y081sr3yxx3ks56 happied 0 75936 292914 2026-09-19T09:16:45Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292914 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|happy||ed-form}}. tdp62tj5hds869h6hykg1809kwa1oc2 happy-go-lucky 0 75937 292915 2026-09-19T09:16:55Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292915 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Flame, not lame-happy-go-lucky.wav|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|happy-go-luckier}} # ဢၼ်မေႃယူႇမူၼ်ႈမူၼ်ႈသိူဝ်းသိူဝ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 3l4uc3f18x95in6gglodxvanye8j1d9 happy-go-luckier 0 75938 292916 2026-09-19T09:17:05Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292916 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ}} # {{en-comparative of|happy-go-lucky}} 31hsugui24pljmoc8dqrqb08tw8b8gt happy-go-luckies 0 75939 292917 2026-09-19T09:17:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292917 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|happy-go-lucky}} llvivck7ni2l3d5puur7fma5xagomoq happy-go-luckiest 0 75940 292918 2026-09-19T09:17:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292918 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|happy-go-lucky}} 72m6476eum29h97laby4t21o79cz5vv happily 0 75941 292919 2026-09-19T09:17:35Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292919 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæp.ɪ.li/|a=RP}} * {{IPA|en|/ˈhæp.ə.li/|a=GA}} * {{audio|en|En-us-happily.ogg|a=GA}} * {{homophones|en|aptly|aa=in some <<h-dropping>> accents}} * {{rhyme|en|æpɪli|s=3}} * {{hyphenation|en|hap|pi|ly}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv|more,er<l:rare>}} # မူၼ်ႈမူၼ်ႈသိူဝ်းသိူဝ်း။ # ၵျေႃႇ။ # ႁၢၼ်ႉၸႂ်။ # သႆၢငႆၢလီၼႃႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} qguuton0xz1ty67hx2gxkkhvkwphkjn happilier 0 75942 292920 2026-09-19T09:17:45Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292920 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉသၢင်ႈ}} # {{lb|en|rare}} {{en-comparative of|happily|POS=adverb}} #* {{quote-book|en|author=[[w:Richard Rogers (theologian)|Richard Rogers]]|title=A Commentary vpon the VVhole Booke of Iudges. Preached First and Deliuered in Sundrie Lectures; Since Collected, and Diligently Perused, and Now Published.{{nb...|For the Benefit Generally of All Such as Desire to Grow in Faith and Repentance, and Especially of Them, Who Would More Cleerely Vnderstand and Make Vse of the Worthie Examples of the Saints, Recorded in Diuine History.}}|location=London|publisher={{...|Imprinted by}} Felix Kyngston for Thomas Man,{{nb...|and are to be sold at his shop in Pater-noster Row, at the signe of the Talbot.}}|year=1615|page=112|pageurl=https://archive.org/details/bim_early-english-books-1475-1640_a-commentary-upon-the-wh_rogers-richard_1615/page/112/mode/1up|passage=Now further, for people that liue vnder a good miniſtry, (to ſay a little of them, ''Moſes'' his being among the people, doth wofully prognoſticate, vnto what a paſſe they are like to grow, if they had elbow roome. For though none might liue '''happilier''' then they, yet who (for the moſt part) doe leſſe looke after it? for as they in ''Moſes'' abſence from them but fortie daies, made themſelues a calfe to worſhip: euen ſo the people are ſo brutiſh in theſe daies, and diſordered, euen while their faithfull paſtors liue with them, that the greateſt part of them, take no good by them: what did I ſay? nay they liue moſt offenſiuely vnder them.}} #* {{quote-book|en|author=Peter de la Primaudaye [''i.e.'', {{w|Pierre de La Primaudaye}}]|tlr=W. P. [''i.e.'', {{w|William Phillip}}?]|title=The Christian Philosophie of the French Academie. Of the True and Onely Meanes to Obtaine Eternall Life. The Fourth Booke.{{nb...|Written in French by Peter de la Primaudaye Esquire, Seigneur de la Barre, Councelor and Steward of the French Kings House. Translated out of French by W. P.}}|series=The French Academie. Fully Discoursed and Finished in Foure Bookes.{{nb...|1. Institution of Manners and Callings of All Estates. 2. Concerning the Soule and Body of Man. 3. A Notable Description of the Whole World, &c. 4. Christian Philosophie, Instructing the True and Onely Meanes to Eternall Life. This Fourth Part Neuer Before Published in English. All Written by the First Author, Peter de la Primaudaye, Esquire, Lord of Barre, Chauncellour, and Steward of the French Kings House.}}|location=London|publisher={{...|Printed [by]}} [John Legat] for [[w:Thomas Adams (publisher)|Thomas Adams]]|year=1618|page=1028|pageurl=https://archive.org/details/bim_early-english-books-1475-1640_the-french-academie-ful_la-primaudaye-pierre-de_1618/page/1030/mode/1up|passage=For in me there is no more feare of eternall death, ſeeing my ſoule, beleeuing in the Sonne of God, before death, paſſeth from death to life, I doe no more feare corporall death, becauſe in reſpect of me it is no more a paine inflicted vpon mee for ſin, but a teſtimony of the goodnes of God, who by that way will haue me enter into life, no more a deſtruction vnto mee, but a preparation made for me to attain to a better ſtate, and to liue '''happilier''', nor no more a ſubiect to deſpaire, but an argument of hope, that I ſhall ſee my Sauiour in my fleſh, participating with his life, to be with him without ſpot or wrinkle, feare of death, or vengeance for ſinne: {{...}}}} #* {{quote-book|en|author=w:Ovid|tlr=[[w:Wye Saltonstall|W[ye] S[altonstall&#93;]]|title=Ovid’s Heroicall Epistles|location=London|publisher={{...|Printed by}} R. B. for Michael Sparke,{{nb...|and are to bee sold at his House in Greene Arbour.}}|year=1636|page=49|pageurl=https://archive.org/details/bim_early-english-books-1475-1640_ovids-heroicall-epistles_ovidius-naso-publius_1636/page/49/mode/1up|passage=Nor did’ſt thou courage vvant, though thou did’ſt kill / Thy father, and his pretious bloud did’ſt ſpill. / Would thy valour had beene '''happilier''' employ’d, / Though he vvere unvvillingly by thee deſtroy’d. / For thou Æ''giſthus'' kill’dſt unluckily, / And did’ſt fulfill thy hapleſſe fate thereby.}} #* {{quote-book|en|author=Ant: Ashcam [''i.e.'', {{w|Anthony Ascham}}]|title=A Discourse: Wherein Is Examined, What Is Particularly Lawfull During the Confusions and Revolutions of Government. Or, How Farre a Man May Lawfully Conforme to the Powers and Commands of Those Who with Various Successes Hold Kingdomes Divided by Civill or Forreigne Warres,{{nb...|Whether It Be, 1. In Paying Taxes. 2. In Personall Service. 3. In Taking Oaths. 4. In a Mans Giving Himselfe up to a Finall Allegiance, in Case the Warre End to the Advantage of the Unjust Power or Party. Likewise, Whether the Nature of Warre Be Inconsistent with the Nature of the Christian Religion? Three Parts: By Ant: Ashcam, Gent.}}|location=London|publisher={{...|Printed for}} {{w|Humphrey Moseley}},{{nb...|and are to be sold at his shop, at the Signe of the Princes Armes in St Pauls Churchyard.}}|year=1648|page=102|pageurl=https://books.google.com/books?id=FqszAQAAMAAJ&pg=PA102|passage=Notwithſtanding by his free goodneſſe hee hath inveſted us in ſome right, both by Promiſe, Oath and Covenant, by which it is impoſſible, as Saint ''Paul'' ſaith, that he ſhould play falſe with us; ſo that though he may ſeem to treat us unjuſtly here, yet hee can and will recompence it '''happilier''' to us in an other world, whereas dunghill Flies by his holy will are not capable of another life: {{...}}}} #* {{quote-book|en|author=[[w:Giovanni Francesco Biondi|Gio[vanni] Francesco Biondi]]|tlr=[[w:Robert Gentilis|R[obert] G[entilis&#93;]]|title=Coralbo. A Nevv Romance in Three Bookes.{{nb...|Written in Italian by Cavalier Gio. Francesco Biondi. And Now Faithfully Render’d into English.}}|location=London|publisher={{...|Printed for}} {{w|Humphrey Moseley}}{{nb...|and are to be sold at his shop, at the Prince’s Armes in St. Paul’s Church-yard}}|year=1655|page=32|pageurl=https://quod.lib.umich.edu/e/eebo2/B17861.0001.001/1:5?ALLSELECTED=1;c=eebo;c=eebo2;g=eebogroup;rgn=div1;singlegenre=All;sort=datea;subview=detail;type=simple;view=fulltext;xc=1;q1=happilier|newversion=republished in|title2=Early English Books Online|location2=Ann Arbor, Mich.|publisher2=w:Text Creation Partnership|year2=p. 2011|passage=Wherefore I have delibe∣rated to beseech you, to give me leave to goe abroad, being an ar∣med Knight, desiring to receive this Order by no other more valiant, or '''happilier''' presaging hand then yours.}} #* {{quote-book|en|author=w:Nathaniel Johnston|title=The Excellency of Monarchical Government, Especially of the English Monarchy; Wherein Is Largely Treated of the Several Benefits of Kingly Government, and the Inconvenience of Commonwealths.{{nb...|Also of the Several Badges of Sovereignty in General, and Particularly According to the Constitutions of Our Laws. Likewise of the Duty of Subjects, and the Mischiefs of Faction, Sedition and Rebellion. In All Which the Principles and Practices of Our Late Commonwealths-Men Are Considered.}}|location=London|publisher={{...|Printed by}} T. B. for Robert Clavel{{nb...|at the Peacock in St. Paul’s Church-yard.}}|year=1686|pages=[https://books.google.com/books?id=nDIsAQAAMAAJ&pg=PA83 83] and [https://books.google.com/books?id=nDIsAQAAMAAJ&pg=PA157 157]|passage=We ought likewiſe to conſider that there are moral Vertues which conciliate ſuch a Reverence to the Practiſers of them, that they are great helps to preſerve and make flouriſhing every Kingdom and Commonweal, and which conſtitute a conſiderable Religious Portion of civil Government; and when Princes and People exerciſe them, both live '''happilier''', than when without them, great Sanctity and Devotion are only pretended. {{...}} Being deſirous, as much as I can, to ſhow the Ancienteſt uſages, and under the ſeveral Conqueſts of ''England''; how the Government hath received Growth and Alteration (ſometimes the People being under the Slavery of abſolute Conquerors, and other times factious Nobles bearding their Kings) how the even Thred of Regular Government hath been carried on or interrupted; how from an abſolute Power of giving Law, and ruling in a Military way, by the Feudal Law, and many other particulars, the Government is brought to that Temperament, whereby the Subjects may, if they will be dutiful, live '''happilier''' than any other do.}} #* {{quote-journal|en|title=Party Politics|editor=w:James Densmore|journal=Oshkosh True Democrat.{{nb...|Devoted to the Discussion of Every Thing Relating to the Public Good.}}|volume=I|issue=3|location=Oshkosh, Wis.|publisher=Densmore & Cooley|date=2 March 1849|page=&#91;2&#93;|pageurl=https://www.newspapers.com/newspage/37175305/|column=2|oclc=12497204|passage=All men here have a voice in declaring who shall be the officers of government. This voice is manifested in exercising what is called the right of suffrage. Reason teaches that this is conformable to Nature, and experience shows that better officers are obtained by this method, and that people live '''happilier''' under the administration of such officers.}} #* {{quote-book|en|title=Calendar of State Papers, Foreign Series|publisher=Great Britain, Public Record Office|date=13 July 1852|year_published=1909|page=156|pageurl=https://books.google.com/books?id=6_c-AQAAMAAJ&q=happilier|passage=I request you to fashion the suit to be worth to me £3,000 or more, whereby I may have some good cause to think my time, expenses, and service the '''happilier''' employed and my obligation to you the greater.}} #* {{quote-journal|en|author=Reddem Quick [pseudonym]|title=Book Revue|journal=The Pilot|volume=32|issue=2|location=New York, N.Y.|publisher=w:Fort Hamilton High School|date=1 April 1958|page=three|pageurl=https://archive.org/details/thepilot19580401/page/n2/mode/1up|passage=Eggie merrily gets married, and all live happily till presumably Sinus dies, when all live '''happilier'''.}} #* {{quote-journal|en|author=Robert Stall|title=The Monster Who Almost Spoiled Christmas|journal=Weekend Magazine|series=[[w:Montreal Star|The Montreal Star]]|volume=25|issue=51|location=Montreal, Que.|date=20 December 1975|section=chapter 2|page=13|pageurl=https://www.newspapers.com/newspage/740575220/|columns=2–3|passage=Another interesting thing about Happily[-Ever-After Land]’s sky is that, unlike the rest of the North Pole, the sun stays out until around 7 PM every night, causing everyone to live even '''happilier'''.}} #* {{quote-newsgroup|en|author=Paulo Pereira|title=Congratulations for 7.01|archiveurl=https://web.archive.org/web/20231229142505/https://groups.google.com/g/borland.public.vdbase.programming/c/nwTyjXVTwbs/m/m7IW52qosBMJ|newsgroup=borland.public.vdbase.programming|date=27 March 1998|passage=Congratulations Borland. I happy to see that our suggestions are not thrown away! Thank you for this new release of Visual Dbase (7.01)... We are still waiting but not for so much and with more hope and '''happilier'''.}} #* {{quote-newsgroup|en|author=The Woodruffs|title=Faire names|archiveurl=https://web.archive.org/web/20231229142457/https://groups.google.com/g/alt.fairs.renaissance/c/O8aBzeZNoHo/m/Tt3pD3Tk2f4J|newsgroup=alt.fairs.renaissance|date=9 February 2000|passage=Sharon L. Krossa wrote<br>Happily, there is available<br>> on the internet many very useful articles for those interested in<br>> re-creating pre-1600 names. Even '''happilier''', there is a single site that<br>> lists just about every reliable article out there: {{...}}}} e2d8c7mp65yz1z4cddz2kmtl47kl0fi happiliest 0 75943 292921 2026-09-19T09:17:55Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292921 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉသၢင်ႈ}} # {{lb|en|rare}} {{en-superlative of|happily|POS=adverb}} #* {{quote-book|en|author=Francesco Carmeni|tlr=anonymous|title=Nissena, an Excellent New Romance: Written Originally in Italian by Francesco Carmeni; and Now Englished by an Honorable Anti-Socordist|location=London|publisher={{...|Printed for}} {{w|Humphrey Moseley}}{{nb...|and are to be sold at his Shop at the sign of the Princes Arms in Sᵗ Pauls Church-yard}}|year='''1653''' [''i.e.'', '''1652''']|pages=5–6|pageurl=https://quod.lib.umich.edu/e/eebo2/A80393.0001.001/1:2?ALLSELECTED=1;c=eebo;c=eebo2;g=eebogroup;rgn=div1;singlegenre=All;sort=occur;subview=detail;type=simple;view=fulltext;xc=1;q1=happiliest|newversion=republished in|title2=Early English Books Online|location2=Ann Arbor, Mich.|publisher2=w:Text Creation Partnership|year2=p. 2011|passage=The houre and place were appointed, which was to be the fatall moment and Capitoll to the Triumph of that Beauty which should '''hap'''∣'''piliest''' incounter the Genius of those ''Pa∣ris'es,'' who being to be Judges, the older they were, would be the less passionate in fa∣vourably deciding the question wheron the possession not of an Aple, but of a Crown did depend.}} #* {{quote-book|en|author=[[w:Sir George Wharton, 1st Baronet|George Wharton]]|title=Apotelesma: or, The Nativity of the World, and the Revolution Thereof, with Astrologicall Judgements Thereupon|location=London|publisher={{...|Printed for}} Tho[mas] Vere{{nb...|at the Angel without Newgate}}, and Nath[aniel] Brook{{nb...|at the Angel in Corn-hill.}}|year=1655|page=29|pageurl=https://quod.lib.umich.edu/e/eebo/A65578.0001.001/1:4.4?ALLSELECTED=1;c=eebo;c=eebo2;g=eebogroup;rgn=div2;singlegenre=All;sort=occur;subview=detail;type=simple;view=fulltext;xc=1;q1=happiliest|newversion=republished in|title2=Early English Books Online|location2=Ann Arbor, Mich.|publisher2=w:Text Creation Partnership|year2=p. 2011|passage=Now, to know the particular persons concerned therein, and on whom their▪ ''Effects'' shall fall, the '''''Happiliest''''' or ''Heaviest,'' it were requisite that I first knew and perused their respective ''Genitures;'' {{...}}}} #* {{quote-book|en|author=H[enry] D[awbeny]|title=Historie & Policie Re-viewed, in the Heroick Transactions of His Most Serene Highnesse, Oliver, Late Lord Protector; From His Cradle, to His Tomb:{{nb...|Declaring His Steps to Princely Perfection; as They Are Drawn in Lively Parallels to the Ascents of the Great Patriarch Moses, in Thirty Degrees, to the Height of Honour.}}|location=London|publisher={{...|Printed for}} Nathaniel Brook,{{nb...|at the Angel in Cornhill.}}|year=1659|page=172|pageurl=https://quod.lib.umich.edu/e/eebo/A82001.0001.001/1:23.1?ALLSELECTED=1;c=eebo;c=eebo2;g=eebogroup;rgn=div2;singlegenre=All;sort=occur;subview=detail;type=simple;view=fulltext;xc=1;q1=happiliest|newversion=republished in|title2=Early English Books Online|location2=Ann Arbor, Mich.|publisher2=w:Text Creation Partnership|year2=p. 2011|passage=Now, not to trouble you with a literal translation (for I hold the words not worth it) he tells us, That he would not have a Prince addicted to too much De∣votion; nor to affect to be a little Saint: he sayes his prayers best (quoth he) that does his businesse '''happiliest''', ''&c.''}} #* {{quote-book|en|title=Beraldus, Prince of Savoy, a Novel. In Two Parts. Translated out of French by a Person of Quality.|location=London|publisher={{...|Prnted[sic] for}} W. Grantham{{nb...|at the Bear}}, and J. Crump{{nb...|at the three Bibles in St. Pauls Church-Yard.}}|year=1675|pages=10–11|pageurl=https://archive.org/details/bim_early-english-books-1641-1700_beraldus-prince-of-savo_1675/page/(10)/mode/1up|passage=I paſs’d my Youth the '''happilieſt''' in the World, the Duke of ''Saxony'' my Father, dying in my Infancy, and leaving the Emperor ''Otho'', [?] Brother, Guardian of his three Children, with power of diſpoſing of the Dutchy of ''Saxony'', to which he ſhould judge moſt worthy, I had the good fortune, at the finiſhing my Exerciſes, to be very agreeable to the Emperor; and at the ſame time, to ſee my ſelf (If I may without vanity ſay it) the Love of all the Ladies of his Court.}} #* {{quote-book|en|author=w:John Strype|title=Annals of the Reformation and Establishment of Religion, in the Church of England.{{nb...|Containing Accounts of the Government and Inspection of the Bishops in Their Respective Diocesses; as Matters, Requiring Their Care, Fell Out Each Year: Ecclesiastical Commissions. The Busy Actings of Papists and Puritans: The Difficulties and Dangers the State as Well as the Church Met with from Time to Time: Occasioned Chiefly from the Endeavours to Overthrow Both, by the Power and Practices of Such as Favoured Mary, Queen of Scots: Of Whom Many Special Transactions; and Chiefly of Her Sentence and Death; and the Consequences Thereof, Are Shewn: And the Spanish Invasion in 1588. Both Serving to Enlighten Those Two Great Crises of Queen Elizabeth’s Reign. Together with Divers Other Political Affairs of Note Interspersed. […]}}|volume=III|location=London|publisher={{...|Printed for}} Edward Symon,{{nb...|in Cornhill.}}|year=1728|page=379|pageurl=https://archive.org/details/bim_eighteenth-century_annals-of-the-reformatio_strype-john_1725_3/page/379/mode/1up|passage=Where on the other ſide, carrying him with that Moderation that becomes a Prince of his Perfection and Education, and is neceſſary in this remedileſs Accident, he ſhall both in the mean while, '''happilieſt''' provide for his own Security, and for the Time to come through his kind of good Uſage of her Majeſty, who hath deſerved ſo greatly at his Hands, win unto himſelf the Hearts, Good-will and Affection of the whole Body of the Realm.}} #* {{quote-newsgroup|en|author=Cory C. Albrecht|title=Why Janet Jackass's tit on tv was a bad thing|archiveurl=https://web.archive.org/web/20231231124812/https://groups.google.com/g/alt.fan.howard-stern/c/io-iLLeXES4/m/1ihiEfGQGJkJ|newsgroup=alt.fan.howard-stern|date=15 February 2004|passage=The thing is, a woman's sexual power does exist, and every guy knows this. Even if he is the '''happiliest''' attached man on the planet who would never cheat on his partner, when a sexy woman enters the room for damn sure he notices her. }} #* {{quote-newsgroup|en|author=Mimi Cohen|title=Disabled woman set on fire as Paris riots spread|archiveurl=https://web.archive.org/web/20231231125001/https://groups.google.com/g/alt.california/c/2nS4HH9oR-I/m/cQ8kbnri7QoJ|newsgroup=alt.california|date=5 November 2005|passage=What I'd like to say to you and only you, is you really ought to get a life, pretty sad that you track my posts and even create a thread in my name. *IF* I weren't already the '''happiliest''' married woman on the planet I *MIGHT* be flattered.... no I've thought about it, I wouldn't be flattered even if I *WEREN'T* the '''happiliest''' married woman on the planet.}} #* {{quote-web|en|author=Gina Keating|title=Ashton Kutcher is world's "happiliest" married man|work=w:Reuters|archiveurl=https://archive.is/s2M1A|archivedate=31 December 2023|url=https://www.reuters.com/article/idUSN08493054/|date=9 May 2008|passage=The planet's "'''happiliest'''" married man, Ashton Kutcher, was once a champion carouser until he met his wife five years ago and became a changed man. {{...}} "I knew she was the person I wanted to spend the rest of my life with," he said. "I am the '''happiliest''' -- I think I just invented that word -- married guy on the planet."}} t7j5ev72dschb3ug7b13xfwui493bij happiness 0 75944 292922 2026-09-19T09:18:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292922 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæpinɪs/|/ˈhæpinəs/}} * {{audio|en|en-us-happiness.ogg|a=US}} * {{hyph|en|hap|pi|ness}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈမူၼ်ႈသိူဝ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 9zqnw5qi1b8rtnhiy8pj97yjsal63m3 happinesses 0 75945 292923 2026-09-19T09:18:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292923 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|happiness}} #* {{quote-book|en|title=Mill's Principle of Utility: A Defense of John Stuart Mill's Notorious Proof|page=110|author=Necip Fikri Alican|year=1994|passage=Notwithstanding the temptation to use familiar mathematical or [[sociopolitical]] models to explain Mill's elusive notion, the general happiness of a population is neither the sum total or arithmetic average of the several '''happinesses''' of individual persons in the population...}} ====Usage notes==== ''Happinesses'' is used when there are multiple forms or measures of happiness which are to be distinguished. Typically happiness is uncountable. gsddndigym74rarf784ip07sepsaqep hara-kiri 0 75946 292924 2026-09-19T09:18:25Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292924 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˌhæɹəˈkɪɹi/|/ˌhɑɹəˈkɪɹi/|;|q3=widespread but nonstandard|/ˌhæɹiˈkæɹi/|/ˌhɛɹiˈkɛɹi/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hara-kiri.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun|-}} # (ၵူၼ်းၶိူဝ်းထၢၼ်ႈသုင်မိူင်းၵျႃႇပၢၼ်ႇၶဝ် ယၢမ်းဢမ်ႇဢဝ်ပုၼ်ႈၽွၼ်းၸဝ်ႈၵဝ်ႇလႆႈယဝ်ႉၼၼ်ႉ) လွင်ႈဢဝ်မိတ်ႈဝူင်ႇပုမ်သေ ႁႅမ်တၢႆၶိုၼ်းတူဝ်ၵဝ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 6i09o6swauz7tuu6df0vtzsok96pcnr harangue 0 75947 292925 2026-09-19T09:18:35Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292925 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/həˈɹæŋ/|[həˈɹæŋ]|a=non-æ-raising}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harangue.wav|a=Southern England}} * {{a|en|æ-raising}} ** {{IPA|en|/həˈɹeɪ̯ŋ/|[həˈɹeɪ̯ŋ]|;|/həˈɹɛ̃ŋ/|[həˈɹɛ̃ŋ]|a=US,CA}} *** {{audio|en|en-us-harangue.ogg|a=US}} * {{rhymes|en|æŋ|s=2}} * {{hyph|en|ha|rangue}} ===သၢင်ႈ=== {{en-verb}} # လၢတ်ႈႁႅင်းႁႅင်း။ # ပႃးၸႂ်လမ်သေလၢတ်ႈ၊ ထဵင်။ # ၸႂ်ႉႁဵတ်း။ ===ႁိၵ်ႈ=== {{en-noun}} # လွင်ႈလၢတ်ႈႁႅင်းႁႅင်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} b77tx9o1wu0if841qetcbvrm5yx5t0h ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æŋ/2 သဵင် 14 75948 292926 2026-09-19T09:18:55Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 292926 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æŋ]] 8c7ccp8znavh1u72skm4pjxxfgtr587 haranguing 0 75949 292927 2026-09-19T09:19:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292927 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harangue||ing-form}} aie4ijcis546krle93esb9rptsvhzvy harangues 0 75950 292928 2026-09-19T09:19:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292928 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harangue}} #* {{quote-book|en|year=1875|author=W. E. (William Ewart) Gladstone|title=Speeches of Pope Pius IX.|url=http://books.google.com/books?vid=LCCN09029946&id=v9V0eMfntgwC&pg=PA4&lpg=PA4&dq=harangues|page=4|passage=It can hardly be policy, it must be a necessity of his nature, which prompts his incessant '''harangues'''.}} #* {{quote-book|en|year=1997|author=Kevin Starr|title=Endangered Dreams: The Great Depression in California|url=http://books.google.com/books?vid=ISBN0195118022&id=7GvgN0y7yI4C&pg=PA11&lpg=PA11&dq=harangues&sig=wr48Si8yy0D-_iHc5MKrCNZvYFg|page=11|passage=Or perhaps Hull merely rewrote Kearney's incoherent '''harangues''', polishing their language, heightening their ferocity, after they were delivered?}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harangue||s-verb-form}} cxnbncokhg6qj28nyl0qryulcupopw9 harangued 0 75951 292929 2026-09-19T09:19:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292929 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harangue||ed-form}} t67d1isc2yyi6a15sjtg6z0m0j6lvjf harass 0 75952 292930 2026-09-19T09:19:45Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292930 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|hərăsʹ|a=RP,GA}}, {{IPA|en|/həˈɹæs/}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harass.wav|a=Southern England}} * {{enPR|hăʹrəs|a=dated}}, {{IPA|en|/ˈhæɹəs/}} * {{rhymes|en|æs|æɹəs|s=2}} * {{hyphenation|en|ha|rass}} ===သၢင်ႈ=== {{en-verb}} # ယႃႉ။ # ၵဝ်း။ # ၵမ်းၵမ်းတိုၵ်းတေႃး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} cly08tcweeb7fz1grya9kuob48m4mvy harassest 0 75953 292931 2026-09-19T09:20:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292931 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harass||st-form}} qilkcdmxrfwf296x768pdr34c42piex harassing 0 75954 292932 2026-09-19T09:20:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292932 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harass||ing-form}} 3qwblao8ty3h9q6mtcz6baimxnnldwu harasses 0 75955 292933 2026-09-19T09:20:45Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292933 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harass||s-verb-form}} 3a52l9nwefhj57x8v4sw7pdnxy24k6i harassed 0 75956 292934 2026-09-19T09:20:55Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292934 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harass||ed-form}} 1t4ic2lwq2y8dqpk61t872amtywypqv harassment 0 75957 292935 2026-09-19T09:21:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292935 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/həˈɹæsmənt/|/ˈhæɹəsmənt/<a:dated>}} * {{audio|en|En-us-harassment.oga|a=US}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harassment.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈယႃႉၵဝ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} adc50trmaxvoat1i0befkabwxk07kqs harassments 0 75958 292936 2026-09-19T09:21:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292936 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harassment}} bef0t05sbrt10g2jzf2olzt3s6lfec4 harbinger 0 75959 292937 2026-09-19T09:21:26Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292937 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːbɪndʒə/|a=RP}} * {{enPR|härʹbĭnjər|a=US}}, {{IPA|en|/ˈhɑɹ.bɪn.d͡ʒəɹ/}} ** {{audio|en|en-us-harbinger.ogg|a=US}} * {{hyphenation|en|har|bin|ger}} ===ႁိၵ်ႈ=== {{en-noun}} # လွင်ႈၼႄသႆၢငႆၢ၊ ႁၢင်ႈၽၢင်၊ ၼိမိတ်ႈမၼ်းဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} f81vmohjhw8x14dgqkroytd1ktauyza harbingers 0 75960 292938 2026-09-19T09:21:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292938 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-harbingers.wav|a=US}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harbinger}} hmzrimzvaw0f8wltpql2zu5ya9fsid9 harbingered 0 75961 292939 2026-09-19T09:21:45Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292939 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbinger||ed-form}} c6ry58bgtl94du10s038xnstnsfvyv1 harbingering 0 75962 292940 2026-09-19T09:21:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292940 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbinger||ing-form}} ilekniciw72m6v3d6hy7qc4l8wp11b1 harbour 0 75963 292941 2026-09-19T09:22:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292941 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-harbour.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun}} # တႃႈႁိူဝ်း။ # တီႈလိုဝ်ႈသဝ်း။ ===သၢင်ႈ=== {{en-verb}} # ပၼ်တီႈလိုဝ်ႈသဝ်း။ # ဢဝ်သိူင်ႇ၊ ပႅပ်ႉဝႆႉ။ # ယိူၼ်ႉဝႆႉၼႂ်းၸႂ်။ # ပၼ်သေႃႉႁူမ်ႈၽူၺ်း။ # ၵိုတ်းႁိူဝ်းတႃႈႁိူဝ်း။ # ပွႆႇႁႂ်ႈၶိုၼ်ႈယႂ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} s36lzzttwvrm0dyrk70gyihokvgrskq harbours 0 75964 292942 2026-09-19T09:22:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292942 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harbour}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbour||s-verb-form}} s02izppoa69lboj8a2enwzrf671f2qw harbouring 0 75965 292943 2026-09-19T09:22:25Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292943 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbour||ing-form}} fsanrd9gxuloieohmjzvicsx98c6url harbourest 0 75966 292944 2026-09-19T09:22:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292944 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbour||st-form}} d67bju5gvq7lh6md04kg2vwym07eu7h harboured 0 75967 292945 2026-09-19T09:22:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292945 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harbour||ed-form}} bzx33rruuzyjgkb61he2c0mf5g3tupg harbour dues 0 75968 292946 2026-09-19T09:22:55Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292946 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun}} # ၶွၼ်ႇတႃႈႁိူဝ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} di8yy5kv0fx9nx340duog4xy4j1frvs harbourage 0 75969 292947 2026-09-19T09:23:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292947 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # တီႈသေႃႉႁူမ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 4t6b29kptsjmmhjej3v24x4vhcbc8q1 harbourages 0 75970 292948 2026-09-19T09:23:15Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292948 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harbourage}} s67hae25uccukrmlds1vypqn9kfov0x hard 0 75971 292949 2026-09-19T09:23:25Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292949 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|häd|a=RP}}, {{IPA|en|/hɑːd/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hard.wav|a=Southern England}} * {{enPR|härd|a=GenAm}}, {{IPA|en|/hɑɹd/}} * {{audio|en|en-us-hard.ogg|a=US}} * {{rhymes|en|ɑː(ɹ)d|s=1}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er,more}} # ဢၼ်ၵႅၼ်ႇ၊ ဢၼ်ၶႅင်။ # ဢၼ်ႁဵတ်း။ # ဢၼ်ႁူႉ။ # ဢၼ်တွပ်ႇယၢပ်ႇ၊ ဢၼ်ယၢပ်ႇ။ # ဢၼ်မီးပၼ်ႁႃ။ # ဢၼ်လူဝ်ႇၶတ်းၸႂ်ႁၢဝ်ႈႁၢဝ်ႈႁႅင်းႁႅင်း၊ ဢၼ်လႆႈဢဝ်ႁႅင်းယႂ်ႇယႂ်ႇၼမ်ၼမ်သေ ႁဵတ်း။ # ဢၼ်ဢမ်ႇမေႃဢီးလူ။ # ဢၼ်ႁတ်းႁၢၼ်။ # ဢၼ်ၸႂ်ၵၼ်ႇ။ # ဢၼ်တိုၼ်းၸႂ်ႈ။ # ဢၼ်မီးလၵ်းထၢၼ်လီ။ # (ၾႃႉၽူၼ်) ဢၼ်ႁၢဝ်ႈႁႅင်း။ # (လဝ်ႈ) ဢၼ်ႁၢဝ်ႈၼႃႇ။ # (တူဝ်လိၵ်ႈ) ဢၼ်လႆႈဢွၵ်ႇသဵင်ၶႅင်ၶႅင်။ # a hard nut to crack, ပၼ်ႁႃယၢပ်ႇ။ # ၽူႈမူၼ်ႉမႄးယၢပ်ႇ။ # be hard on sb, ၵပ်းသိုပ်ႇပိူၼ်ႈႁၢဝ်ႈၶႅင်။ # take a hard line, ဢမ်ႇၶၢမ်ႇယွမ်းၵုမ်။ # hard of hearing, ဢၼ်ႁူၼၵ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 40m2ztpx7tmfe8n5dca6i5dony2n1vz 292988 292949 2026-09-19T09:30:56Z SIITBot 662 Bot: ထႅမ်သႂ်ႇပႃး တွၼ်ႈပိုၼ်ႉထၢၼ်မႂ်ႇ ၶွင်ၶေႃႈၵႂၢမ်း ဢၼ်မီးၼႂ်း Dataset 292988 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|häd|a=RP}}, {{IPA|en|/hɑːd/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hard.wav|a=Southern England}} * {{enPR|härd|a=GenAm}}, {{IPA|en|/hɑɹd/}} * {{audio|en|en-us-hard.ogg|a=US}} * {{rhymes|en|ɑː(ɹ)d|s=1}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er,more}} # ဢၼ်ၵႅၼ်ႇ၊ ဢၼ်ၶႅင်။ # ဢၼ်ႁဵတ်း။ # ဢၼ်ႁူႉ။ # ဢၼ်တွပ်ႇယၢပ်ႇ၊ ဢၼ်ယၢပ်ႇ။ # ဢၼ်မီးပၼ်ႁႃ။ # ဢၼ်လူဝ်ႇၶတ်းၸႂ်ႁၢဝ်ႈႁၢဝ်ႈႁႅင်းႁႅင်း၊ ဢၼ်လႆႈဢဝ်ႁႅင်းယႂ်ႇယႂ်ႇၼမ်ၼမ်သေ ႁဵတ်း။ # ဢၼ်ဢမ်ႇမေႃဢီးလူ။ # ဢၼ်ႁတ်းႁၢၼ်။ # ဢၼ်ၸႂ်ၵၼ်ႇ။ # ဢၼ်တိုၼ်းၸႂ်ႈ။ # ဢၼ်မီးလၵ်းထၢၼ်လီ။ # (ၾႃႉၽူၼ်) ဢၼ်ႁၢဝ်ႈႁႅင်း။ # (လဝ်ႈ) ဢၼ်ႁၢဝ်ႈၼႃႇ။ # (တူဝ်လိၵ်ႈ) ဢၼ်လႆႈဢွၵ်ႇသဵင်ၶႅင်ၶႅင်။ # a hard nut to crack, ပၼ်ႁႃယၢပ်ႇ။ # ၽူႈမူၼ်ႉမႄးယၢပ်ႇ။ # be hard on sb, ၵပ်းသိုပ်ႇပိူၼ်ႈႁၢဝ်ႈၶႅင်။ # take a hard line, ဢမ်ႇၶၢမ်ႇယွမ်းၵုမ်။ # hard of hearing, ဢၼ်ႁူၼၵ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv|er}} # ဢဝ်ဢဵၼ်ဢဝ်ႁႅင်းတႄႉတႄႉဝႃႈဝႃႈ။ # ၼင်ႇၵႃႈမီးဢဵၼ်မီးႁႅင်း။ # ႁၢဝ်ႈႁၢဝ်ႈႁႅင်းႁႅင်း။ # ၼၵ်းၼၵ်းၼႃၼႃ။ # ယၢပ်ႇယၢပ်ႇယဵၼ်းယဵၼ်း။ # ၶၢမ်ႇယၢပ်ႇၽိုတ်ႇသေ။ # ဢိူမ်ႈဝႆႉ။ # hard earned money, ငိုၼ်းႁႃယၢပ်ႇယၢပ်ႇယဵၼ်းယဵၼ်း။ # be hard hit, တူၵ်းတၢင်းယၢပ်ႇၽိုတ်ႇ တႄႉတႄႉဝႃႈဝႃႈ ယွၼ်ႉသုမ်းငိုၼ်း။ # ပီႈၼွင်ႉတႆၢ။ # be hard up for, ၺႃးလွင်ႈယၢပ်ႇၽိုတ်ႇ။ # ဢမ်ႇဝူၼ်ႉပွင်ႇ။ # run sb hard, လိုပ်ႈၸွမ်းတၢင်းလင်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} hikao4u39a3ffp21u4g7znzp5ilt8gu hardest 0 75972 292950 2026-09-19T09:24:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292950 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|härdʹĭst|a=RP}}, {{IPA|en|/ˈhɑːdɪst/}} * {{enPR|härdʹĭst|a=GenAm}}, {{IPA|en|/ˈhɑɹdɪst/}} * {{audio|en|en-us-hardest.ogg|a=US}} ** {{IPA|en|/ˈhɑɹdəst/|a=weak vowel}} ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|hard}}. Most [[rigid]] or most [[difficult]]. #: {{ux|en|Diamond is the '''hardest''' natural material.}} #: {{ux|en|The '''hardest''' thing I ever did was run the 25th mile of a 26 mile long marathon.}} 0yw8f8ziadiqturx3yp8j1enmubfm5d hardback 0 75973 292951 2026-09-19T09:24:16Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292951 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdˌbæk/|a=GA}} * {{audio|en|En-us-hardback.ogg|a=US}} ===ႁိၵ်ႈ=== {{en-noun}} # ၸေႈၼႃႈသိူဝ်ႈပပ်ႉဢၼ်ၼႃ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} nnn0rqtwta4em2nu2vg82fu19nc6k72 hardbacks 0 75974 292952 2026-09-19T09:24:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292952 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardback}} opic456gfr0rnyms5wxok5j3sp7ocxy hardcover 0 75975 292953 2026-09-19T09:24:35Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292953 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːdˌkʌvə/|a=RP}} * {{IPA|en|/ˈhɑɹdˌkʌvɚ/|a=GA,CA}} ** {{audio|en|LL-Q1860 (eng)-Wodencafe-hardcover.wav|a=Texas}} * {{IPA|en|/ˈhɐːdˌkɐvə/|a=AU,NZ}} ===ႁိၵ်ႈ=== {{en-noun}} # ၸေႈၼႃႈသိူဝ်ႈပပ်ႉဢၼ်ၼႃ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} fh4fj8jmwsydjfexe3242dkml7q9wil hardcovers 0 75976 292954 2026-09-19T09:24:45Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292954 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-hardcovers.wav|a=US}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardcover}} baxl6ib4aye42h26rxvk2ta9c68ripk hardbacked 0 75977 292955 2026-09-19T09:24:55Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292955 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|-}} # ဢၼ်ပူၵ်ႉၸေႈၼႃဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jcoaujhtl6wstvchzagq83txonmn8a9 hardcovered 0 75978 292956 2026-09-19T09:25:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292956 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|-}} # ဢၼ်ပူၵ်ႉၸေႈၼႃဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jcoaujhtl6wstvchzagq83txonmn8a9 hardbound 0 75979 292957 2026-09-19T09:25:15Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292957 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|-}} # ဢၼ်ပူၵ်ႉၸေႈၼႃဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jcoaujhtl6wstvchzagq83txonmn8a9 hard currency 0 75980 292958 2026-09-19T09:25:25Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292958 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # ငိုၼ်းဢၼ်မီးလွင်ႈလပ်ႉလွင်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 0x5ziwx3vy8wb7m4pkvq8q8v7pifgmq hard currencies 0 75981 292959 2026-09-19T09:25:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292959 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hard currency}} 8nlmjpf6s3macwhf75fhxdptq5gcdv1 hard drug 0 75982 292960 2026-09-19T09:25:45Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292960 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun}} # ယႃႈမဝ်းၵမ်ဢၼ်ႁႂ်ႈၸပ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} ok20imh9tezn7a7v4qks7y1m9sfi23t hard drugs 0 75983 292961 2026-09-19T09:25:55Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292961 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hard drug}} nt5i3cif9o0wp468uzkpg6rrj7tq6cf hardheaded 0 75984 292962 2026-09-19T09:26:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292962 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-hardheaded.wav|a=Southern England}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|more,harderheaded|sup=most,hardestheaded}} # ဢၼ်မေႃႁဵတ်းၵၢၼ်ၼႄ။ # ဢၼ်လၢတ်ႈဢဝ်လႆၢလႆၢ။ # ဢၼ်ဢမ်ႇမီးတၢင်းဢီးလူ။ # ဢၼ်ဢမ်ႇမေႃဝူၼ်ႉတေႃႇပိူၼ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} i7dte8syrxji9cwtzwgd9yfa2srn91t hardlabour 0 75985 292963 2026-09-19T09:26:15Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292963 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun}} # ၶွၵ်ႈဢၼ်လႆႈႁဵတ်းၵၢၼ်ၵျၢမ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} rkla70cg2v51s3ke238pwe4sgralw7j hard liquor 0 75986 292964 2026-09-19T09:26:26Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292964 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # လဝ်ႈႁၢဝ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jhk54gu0ftykit35h5nuqk1y5oph7ou hard liquors 0 75987 292965 2026-09-19T09:26:35Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292965 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hard liquor}} drh4n8gbi2irxrtu965y9jluxvenbbk hardihood 0 75988 292966 2026-09-19T09:26:46Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292966 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Flame, not lame-hardihood.wav|a=US}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈႁတ်းႁၢၼ်။ # လွင်ႈၶၢမ်ႇလႆႈတၢင်းယၢပ်ႇၽိုတ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} q9aw7jd1n1srq18hsu6a2t7xy8bwchj hardihoods 0 75989 292967 2026-09-19T09:26:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292967 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardihood}} 72f69kpuuaswty2scsbc0ynlo1xviyr hard luck 0 75990 292968 2026-09-19T09:27:05Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292968 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|-}} # လွင်ႈၵၢမ်ႇဢမ်ႇလီ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 4ia6h85yvkft3uergtd19mvbkr2kv3j hardship 0 75991 292969 2026-09-19T09:27:16Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292969 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdˌʃɪp/|a=GA}} * {{IPA|en|/ˈhɑːdˌʃɪp/|a=RP}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hardship.wav|a=Southern England}} * {{hyph|en|hard|ship}} ===ႁိၵ်ႈ=== {{en-noun|~}} # တၢင်းယၢပ်ႇၽိုတ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 6sk6dsl361kr5h8x0xh0z3d6mty1nh5 hardshipping 0 75992 292970 2026-09-19T09:27:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292970 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hardship||ing-form}} kv0yfpb8j00802ee0puw1j49soi1g04 hardshipped 0 75993 292971 2026-09-19T09:27:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292971 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hardship||ed-form}} dvst8bnsw1m9rw19e55sjf79x1ex0ip hardships 0 75994 292972 2026-09-19T09:27:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292972 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardship}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hardship||s-verb-form}} jxxkzxb64gbq1uu6rxrej2nuidmolkq hardstanding 0 75995 292973 2026-09-19T09:27:56Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292973 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːdstændɪŋ/|a=UK}} * {{IPA|en|/ˈhɑɹdˌstændɪŋ/|a=US}} ===ႁိၵ်ႈ=== {{en-noun|~}} # တီႈၵိုတ်းၵႃး၊ လူတ်ႉ ဢၼ်သိူဝ်ႇလိၼ်ယၢင်ႇဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 30c9u57q44fi742gyv4vg5640bvj4kj hardstandings 0 75996 292974 2026-09-19T09:28:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292974 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardstanding}} hrh9907egd3idf7qyh5iib6ips2ixzh hardtop 0 75997 292975 2026-09-19T09:28:16Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292975 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun}} # ၵႃးဢၼ်မီးပွင်းလဵၵ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 3a790k2t2f8q1c0v2qgv8yp1iar0gz9 hardtops 0 75998 292976 2026-09-19T09:28:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292976 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardtop}} 47rrd1furw22hk1b1vsxr19wdj9xho2 hardware 0 75999 292977 2026-09-19T09:28:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292977 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdˌwɛɹ/|a=GA}} * {{IPA|en|/ˈhɑːdˌwɛə/|a=RP}} * {{audio|en|en-us-hardware.ogg|a=US}} ===ႁိၵ်ႈ=== {{en-noun|-}} # ၶိူင်ႈလဵၵ်း။ # computer hardware, ၶွမ်းတွၼ်ႈဝႆႉၶိူင်ႈၵျၢမ်း။ # military hardware, ၶိူင်ႈ၊ ၵႃးယိုဝ်းသိုၵ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} s8fewf3g63kaoha5zv12o5ms1aeczz9 hardwares 0 76000 292978 2026-09-19T09:28:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292978 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{lb|en|nonstandard}} {{plural of|en|hardware}} #* {{quote-book|en|author=Geronymo de Uztariz [i.e., {{w|Luis Jerónimo of Uztáriz and Hemiaga}}]|tlr=John Kippax|title=The Theory and Practice of Commerce and Maritime Affairs|volume=II|location=London|publisher={{...|Printed for}} John and James Rivington,{{nb...|in St. Paul’s Church-yard}}; and John Crofts,{{nb...|Bookseller, in Bristol}}|year=1751|pages=324–325|passage=That it is one and two thirds per cent. upon all ſorts of leather, ſkins, and wax from the Levant, looſe cotton from Malta, Alquitran, cochinille, campeche, wood, copperas, lead, gunpowder, pitch, and tin oar; and upon all goods made of ſilk, hair and wool, eleven and two thirds per cent. and the ſame upon all fiſh, ſalt beef, thread, dyed ſilk, ribbons of all ſorts, ſtockings, hats, '''hardwares''', iron, ſteel and copper unwrought, pipe ſtaves, dried fruits, all ſorts of apothecary’s drugs, and other ſmall articles, ſheep, hogs, mules, &c. and though there be charged about 52 per cent. in the ſaid cuſtom houſes out of Barcelona, upon all ſorts of goods made up, or worked with the needle for wearing apparel, tin manufactured, and other materials wrought up in any ſhape, as alſo cotton ſpun or in the ſkeyn brought from the Levant, ſo few are the ſaid commodities, that are brought in and entred upon account of the high duty, that they can very little reduce thoſe of the fifteen per cent. that ſhall be charged, nay the product will be rather augmented by a reduction of the duty, as we ſhall prevent the frauds, that are uſually committed in this merchandiſe for the reaſons abovementioned.}} #* {{quote-book|en|author=[[w:John MacGregor (Glasgow MP)|John MacGregor]]|title=Commercial Tariffs and Regulations of the Several States of Europe and America, Together with the Commercial Treaties Between England and Foreign Countries|volume_plain=part the fifth (States of the Germanic Union of Customs; Also, the Hanse Towns, Holstein, Hanover, Oldenburg, and Mecklenburg)|location=London|publisher={{...|Printed by}} Charles Whiting,{{nb...|Beaufort House, Strand}}|year=1842|page=127|passage='''Hardwares''' are also manufactured with success in the Prussian states. Nuremberg is celebrated for toys, and Augsburg, Wurzburg, Munich, and other places in Bavaria produce common '''hardwares''' and tools. Würtemberg manufactures jewellery, cutlery, and common '''hardwares'''. Saxony has several manufactures of '''hardwares''', &c.}} #* {{quote-book|en|title=North Pacific Ports: A Compilation of Useful Marine, Exporting and Importing Information for Alaska and the Western Coasts of Canada and the United States|year=1919|page=428|passage=Exporters of '''hardwares''', earthenwares, glasswares, rubber goods, piece goods, braids, brushes, buttons, corns, dyes, celluloid goods, electrics, {{...}}}} #* {{quote-book|en|author=Guérin Lassous; T. Razafindralambo|chapter=Substitution Network: Controlled Mobility for Network Rescue|editors=Nathalie Mitton; David Simplot-Ryl|title=Wireless Sensor and Robot Networks: From Topology Control to Communication Aspects|publisher=w:World Scientific|year=2014|page=95|isbn=978-981-4551-33-5|passage=It is worth noting that, in this section, we try to be as general as possible and not to focus on specific '''hardwares''', softwares, mechanisms or technologies.}} ====Related terms==== * {{l|en|softwares}} 544ns4aafril2nyzwkpla1qg1f2zgx2 hardwood 0 76001 292979 2026-09-19T09:28:56Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292979 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdˌwʊd/|a=GA}} * {{audio|en|En-au-hardwood.ogg|a=AU}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ၼိူဝ်ႉမႆႉၶႅင်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} o5lp36vz4izyt6zu0zacd06dolqdwxu hardwoods 0 76002 292980 2026-09-19T09:29:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292980 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardwood}} 5kq5ubwdk0vf9prv5hcx2nfdon133xi hardness 0 76003 292981 2026-09-19T09:29:16Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292981 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|härdʹnəs|a=GA}}, {{IPA|en|/ˈhɑɹdnəs/}} * {{IPA|en|/ˈhɑːdnəs/|a=RP}} * {{audio|en|en-us-hardness.ogg|a=US}} * {{hyph|en|hard|ness}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈၶႅင်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} a6ihm2wbl69ios9z2dfjwfptpj49d19 hardnesses 0 76004 292982 2026-09-19T09:29:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292982 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardness}} npgdied0poc25yuxlzms20ose8k2g0r harden 0 76005 292983 2026-09-19T09:29:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292983 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdn̩/|a=GA}} * {{IPA|en|/ˈhɑːdn̩/|a=RP}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harden.wav|a=Southern England}} * {{rhymes|en|ɑː(ɹ)dən|s=2}} * {{hyph|en|hard|en}} ===သၢင်ႈ=== {{en-verb}} # ၶႅင်။ # ၵႅၼ်ႇ။ # ႁႂ်ႈၶႅင်၊ ၵႅၼ်ႇမႃး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} mdpij2pyu8l6gz61729l1ihevgr3y2u hardenest 0 76006 292984 2026-09-19T09:30:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292984 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harden||st-form}} 1xoosq85b23eztjvzp0w1mphj6il3tq hardened 0 76007 292985 2026-09-19T09:30:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292985 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːdn̩d/|a=RP}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hardened.wav|a=Southern England}} * {{IPA|en|/ˈhɑɹd(ə)nd/|a=GA}} * {{hyph|en|hard|ened}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harden||ed-form}} eplcy1xtxby88o0oklcqb3pgkh5ki06 hardening 0 76008 292986 2026-09-19T09:30:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292986 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-hardening.wav|a=Southern England}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harden||ing-form}} 4ibtf7sbcd740cakaztpv7vjb28yxql hardens 0 76009 292987 2026-09-19T09:30:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292987 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harden||s-verb-form}} 1kheblfgp38psu1jf4d33flzsav10j7 hard by 0 76010 292989 2026-09-19T09:31:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292989 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{en-adv|-}} # ဢၼ်မီးဢိူမ်ႈဝႆႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 434v6r9zyoqveb4y2705jfarq588sug hard up 0 76011 292990 2026-09-19T09:31:46Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292990 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # တူၵ်းတၢင်းယၢပ်ႇၽိုတ်ႇလွင်ႈငိုၼ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} gf7uceyrlxxc1wsnlb4y8tu3jmh6wb6 harded up 0 76012 292991 2026-09-19T09:31:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292991 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hard up||ed-form}} jgzcfqwudlxo8t2e4zhkmumvlazhr9p harding up 0 76013 292992 2026-09-19T09:32:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292992 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hard up||ing-form}} 8apm40buhbnossqcm3i3rj6orpyi96h hards up 0 76014 292993 2026-09-19T09:32:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292993 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hard up||s-verb-form}} fpgr3w8q7hkw2ymydahb85xeg7olamz hard-pressed 0 76015 292994 2026-09-19T09:32:26Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292994 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|en-au-hard-pressed.ogg|a=AU}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ၺႃးတၢင်းယၢပ်ႇၽိုတ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 6o7j6kw6pg3z8at7ut4pubofih5tv8y hardboiled 0 76016 292995 2026-09-19T09:32:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292995 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # (ၶႆႇ) ဢၼ်တူမ်ႈပေႃးၵႅၼ်ႇဝႆႉ။ # (ၵူၼ်း) ဢၼ်ဢမ်ႇမေႃပဵၼ်ႁိုဝ်၊ ၼႃထိုဝ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} jc3490rkhav80z9hiykmtyvr4rof8pn hardly 0 76017 292996 2026-09-19T09:32:46Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292996 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːdli/|a=UK}} * {{IPA|en|/ˈhɑɹdli/|a=GA}} * {{audio|en|en-us-hardly.ogg|a=US}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv|er,more}} # ယၢပ်ႇယၢပ်ႇယဵၼ်းယဵၼ်း။ # ဢမ်ႇၼပ်ႉတေႃႈမီး။ # ဢမ်ႇပဵၼ်လႆႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} oh8h22t61fquua1o4tmak1d4p1b1mr9 hardliest 0 76018 292997 2026-09-19T09:32:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292997 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉသၢင်ႈ}} # {{lb|en|rare}} {{en-superlative of|hardly|POS=adverb}} 091ufxwxtoq2iq07anhod678bvw3fge hardlier 0 76019 292998 2026-09-19T09:33:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 292998 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉသၢင်ႈ}} # {{lb|en|rare}} {{en-comparative of|hardly|POS=adverb}} iz8svw00g5rmk9ufu0r66e9u0ejamn3 hardy 0 76020 292999 2026-09-19T09:33:16Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 292999 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹdi/|a=GA}} * {{IPA|en|/ˈhɑːdi/|a=RP}} * {{audio|en|en-us-hardy.ogg|a=US}} * {{rhymes|en|ɑː(ɹ)di|s=2}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er}} # ဢၼ်ၶၢမ်ႇလႆႈလွင်ႈယၢပ်ႇၽိုတ်ႇ။ # ဢၼ်ၵႅၼ်ႇၶႅင်။ # (မႆႉ) ဢၼ်ၶၢမ်ႇမူၺ်။ # ဢၼ်ႁတ်းႁၢၼ်။ # ဢၼ်တူဝ်ႈတၼ်းဝႆႉ တႃႇတေႃႈသူႈၶဵၼ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} scopia49lrak6zle99jtjl1xb7o1mly ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)di 14 76021 293000 2026-09-19T09:33:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293000 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)di/2 သဵင် 14 76022 293001 2026-09-19T09:33:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293001 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)di]] bmkm165fgv2xu6eficipmlghvimk558 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)di 106 76023 293002 2026-09-19T09:33:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293002 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)di}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ä(r)di}}, {{IPA|en|/-ɑː(ɹ)di/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== # In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːdi|/-ɑːdi/]] are rhymes for words on this page. # For more rhymes, add ''y'', ''ey'' or ''ie'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)d|/-ɑː(ɹ)d/]]. ===သွင်သဵင်=== <!-- Note: words in this section must be stressed on the PENULTUIMATE syllable.--> * {{l|en|bardie}} * {{l|en|bardy}} * {{l|en|cardi}}, {{l|en|cardie}}, {{l|en|cardy}} * {{l|en|dardy}} * {{l|en|hardy}} * {{l|en|lardy}} * {{l|en|mardy}} * {{l|en|shardy}} * {{l|en|tardy}} * {{l|en|w:Hardy|Hardy}} * {{l|en|Yardie}} ===သၢမ်သဵင်=== <!-- Note: words in this section must be stressed on the PENULTUIMATE syllable.--> * [[Bacardi]] * [[w:Linda Lusardi|Lusardi]] <!--"foolhardy" does not belong here - it is stressed on the first syllable--> 9a2axri9rds6t812tjxw8spsf32w97a hardier 0 76024 293003 2026-09-19T09:33:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293003 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ}} # {{en-comparative of|hardy}} hf37fm0k5jqdns9uwbjn0ukzqnepuzn hardiest 0 76025 293004 2026-09-19T09:34:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293004 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|hardy}} 9xa0ezg8ua265iesxwcvjd06pyn9vgt hardies 0 76026 293005 2026-09-19T09:34:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293005 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardy}} 371twr1td70c3i24ccwkb03eodti93s hardily 0 76027 293006 2026-09-19T09:34:26Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293006 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{en-adv}} # ၶၢမ်ႇယၢပ်ႇၶၢပ်ႇၽိုတ်ႇတႄႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 5at50wyn16owswk4pgznerp21qn662e hardiness 0 76028 293007 2026-09-19T09:34:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293007 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈၶၢမ်ႇလႆႈ လွင်ႈတၢင်းယၢပ်ႇၽိုတ်ႇ။ # လွင်ႈၵႅၼ်ႇၶႅင်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} sctajlce9791yymxzwnhdmogddgrjjf hardinesses 0 76029 293008 2026-09-19T09:34:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293008 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hardiness}} 07vkt26zehc70xd65hxoxgeilzv716f hare 0 76030 293009 2026-09-19T09:34:56Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293009 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɛə/|/hɛː/|a=RP}} * {{IPA|en|/hɛː/|a=SSB}} * {{IPA|en|/hɛɚ/|a=GA}} ** {{audio|en|en-us-hare.ogg|a=US}} * {{IPA|en|/heː/|a=AU}} * {{IPA|en|/heə/|a=NZ,non-near-square}} * {{IPA|en|/hiə/|a=NZ,near-square}} * {{IPA|en|/heɾ/|[heːɾ]|a=Scotland}} * {{IPA|en|/hɜː(ɹ)/|a=Lancashire,square-nurse}} * {{homophones|en|hair|;|here<aa:cheer-chair>|;|her<aa:fair-fur>}} ===ႁိၵ်ႈ=== {{en-noun|~|*|s}} # ပၢင်တၢႆး။ ===သၢင်ႈ=== {{en-verb}} # လႅၼ်ႈဝႆး၊ လႅၼ်ႈၽႂ်း။ # start a hare, ဢမ်ႇဝူၼ်ႉသီႇဝူၼ်ႉႁႃႈသေ ၶဝ်လၢတ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} c8lhubgh3wwpmrfx0z3vjewxmmvholy hares 0 76031 293010 2026-09-19T09:35:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293010 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɛɚz/|/heɹz/|a=US}} * {{audio|en|En-us-hares.ogg|a=US}} * {{rhymes|en|eɹz|s=1}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hare}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hare||s-verb-form}} 1ciiloiewobbgczrqaqg8v7bnba6c03 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɹz 14 76032 293011 2026-09-19T09:35:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293011 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɹz/1 သဵင် 14 76033 293012 2026-09-19T09:35:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293012 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɹz]] 9vv42m44q91slzvu4pjebpeoss0gqv1 hared 0 76034 293013 2026-09-19T09:35:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293013 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hare||ed-form}} jr86ssighazhuf96kmca113uyod5hfi haring 0 76035 293014 2026-09-19T09:35:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293014 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hare||ing-form}} 53vqrnu5my15ab6a05aj7fg9w63q2q9 harebrained 0 76036 293015 2026-09-19T09:35:56Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293015 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * /ˈhɛəbreɪnd/ * {{audio|en|LL-Q1860 (eng)-Vealhurl-harebrained.wav|a=Southern England}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ဢၼ်ဢမ်ႇမီးပႆၢးဝူၼ်ႉ၊ တၢင်းၶႆႈၸႂ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 6dv2hk80qezbrj9rmxx42aab5pchck8 harem 0 76037 293016 2026-09-19T09:36:13Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293016 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːɹəm/|a=RP}} * {{IPA|en|/ˈhæɹəm/|/ˈhɛəɹəm/|a=GA,CA}} ** {{audio|en|En-us-ne-harem.ogg|a=US}} ** {{audio|en|en-us-harem.ogg|a=US}} * {{rhymes|en|ɛəɹəm|æɹəm|iːm|s=2|a2=GenAm,Canada|a3=RP}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ႁူင်းသဝ်းၼၢင်းယိင်း၊ မေးၵူၼ်းမီး ၶိူဝ်းမူႇသလိမ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 3y99hp23gba2z9k7quafgggz2zfxy42 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɛəɹəm 14 76038 293017 2026-09-19T09:36:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293017 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɛəɹəm/2 သဵင် 14 76039 293018 2026-09-19T09:36:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293018 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɛəɹəm]] 8kbutoe074iysiwjnsgkbz4ua0qgb14 harems 0 76040 293019 2026-09-19T09:36:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293019 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harem}} 69du62on9csto4oj3lwllsygobcg2xl hark 0 76041 293020 2026-09-19T09:36:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293020 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|härk}}, {{IPA|en|/hɑː(ɹ)k/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hark.wav|a=Southern England}} * {{rhymes|en|ɑː(ɹ)k|s=1}} ===သၢင်ႈ=== {{en-verb}} # ႁေႈႁူသေထွမ်ႇ။ # ငွႆးထွမ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} b4y42smt3ghx1ssd69sj6ll485i2l69 harked 0 76042 293021 2026-09-19T09:37:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293021 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark||ed-form}} 469cf5oagnkr2gmtgyg8f989jbuzrx5 harks 0 76043 293022 2026-09-19T09:37:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293022 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark||s-verb-form}} a0whj59il69ymo50efqzt9hp6tb1m8p harking 0 76044 293023 2026-09-19T09:37:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293023 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark||ing-form}} oe3f2b6mgcgyexrxew2rybec31kfbyq hark back 0 76045 293024 2026-09-19T09:38:03Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293024 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˌhɑːk ˈbæk/|a=RP}} ===သၢင်ႈ=== {{en-verb|*}} # ၶိုၼ်းၶုၵ်းၸႂ်လႆႈ။ # လၢတ်ႈလွင်ႈဢၼ်ပူၼ်ႉမႃး။ # ႁဵတ်းႁႂ်ႈၶိုၼ်းၶုၵ်းၸႂ်လႆႈ။ # ႁဵတ်းႁႂ်ႈၶိုၼ်းမိူၼ်ၵဝ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 5w56grt7mhi5gond6890y949v40058b hark backs 0 76046 293025 2026-09-19T09:38:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293025 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hark back}} c3s2y3xh8vfxj05wqn8v1wfrdwkg7dc harking back 0 76047 293026 2026-09-19T09:38:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293026 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark back||ing-form}} 97atpjxq8y7rossk302tna5j7yzyu5y harked back 0 76048 293027 2026-09-19T09:38:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293027 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark back||ed-form}} 0bm89s48y0g60kxw32w3dxjhl3asr3r harks back 0 76049 293028 2026-09-19T09:38:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293028 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hark back||s-verb-form}} mbmnm6wx4jks3wpigrtm597f8u47l57 harlequin 0 76050 293029 2026-09-19T09:38:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293029 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːlɪkwɪn/|a=UK}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harlequin.wav|a=Southern England}} * {{IPA|en|/ˈhɑɹlɪkwɪn/|a=US}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ၵူၼ်းပျၢၵ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 7z4mbdxkioosj3olvlgzl7vd28ecfti harlequined 0 76051 293030 2026-09-19T09:39:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293030 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlequin||ed-form}} ji5128ayxwg7s99f3r8reqzb5p1fhi7 harlequins 0 76052 293031 2026-09-19T09:39:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293031 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harlequin}} o6llhbp1w50fpvlkvp3yt51y02sao25 harlequining 0 76053 293032 2026-09-19T09:39:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293032 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlequin||ing-form}} 18zl3j1uqyd86qvm878qbv4ye8nba49 harlequinade 0 76054 293033 2026-09-19T09:39:33Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293033 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑːləkwɪˈneɪd/|a=UK}} * {{rhymes|en|eɪd|s=4}} ===ႁိၵ်ႈ=== {{en-noun}} # တွၼ်ႈပျၢၵ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} cc8capn1y9tuwn3zulxjjb6j4atvww5 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪd/4 သဵင် 14 76055 293034 2026-09-19T09:39:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293034 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪd]] rev0mh2nutj2ffz0wxv6j399c3xjdm6 harlequinades 0 76056 293035 2026-09-19T09:40:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293035 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harlequinade}} hd473iq5n1mfmv3t453er9tsypx2wci harlot 0 76057 293036 2026-09-19T09:40:33Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293036 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːlət/|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harlot.wav|a=Southern England}} * {{IPA|en|/ˈhɑɹlət/|a=GA}} ** {{audio|en|en-us-harlot.ogg|a=US}} ===ႁိၵ်ႈ=== {{en-noun}} # မႄႈမၢၵ်ႇလမ်။ # မႄႈမွၵ်ႇယႃႈ။ # မႄႈၶႆၢ။ # မႄႈၵႆႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} h8tykhgnsk5zv2plfqq7vct2ow8dvmj harlotted 0 76058 293037 2026-09-19T09:40:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293037 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlot||ed-form}} b4heqfsgvode1kduzw2xk9m2uvqzc20 harloted 0 76059 293038 2026-09-19T09:40:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293038 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlot||ed-form}} b4heqfsgvode1kduzw2xk9m2uvqzc20 harlotting 0 76060 293039 2026-09-19T09:41:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293039 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlot||ing-form}} tukxk7izjbsk4dkjec0ztjsxxhw6d9j harlots 0 76061 293040 2026-09-19T09:41:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293040 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harlot}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlot||s-verb-form}} itenma1rciedr8llyij7qlhako939d1 harloting 0 76062 293041 2026-09-19T09:41:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293041 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harlot||ing-form}} tukxk7izjbsk4dkjec0ztjsxxhw6d9j harm 0 76063 293042 2026-09-19T09:41:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293042 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑːm/|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harm.wav|a=Southern England}} * {{IPA|en|/hɑɹm/|a=GA,CA}} ** {{audio|en|en-us-harm.ogg|a=California}} ** {{audio|en|LL-Q1860 (eng)-Wodencafe-harm.wav|a=Texas}} ** {{audio|en|LL-Q1860 (eng)-Grendelkhan-harm.wav|a=Connecticut}} * {{IPA|en|/hɐːm/|a=AU,NZ}} * {{rhymes|en|ɑː(ɹ)m|s=1}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ၽေး။ # ၶဵၼ်။ # ဢၼ်းတရႆၢး။ ===သၢင်ႈ=== {{en-verb}} # ပဵၼ်ၽေး၊ ၶဵၼ်။ # ပဵၼ်ဢၼ်းတရႆၢး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 9x0bopsitx2ilp0ssgryempzscfaksh harming 0 76064 293044 2026-09-19T09:42:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293044 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{rhymes|en|ɑː(ɹ)mɪŋ|s=2}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harm||ing-form}} 05ptmfk2c6oj0b86gca627l33yvchx6 harmest 0 76065 293048 2026-09-19T09:42:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293048 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harm||st-form}} h1bfs2fie5o5ziny1mb0ekusct5abub harmed 0 76066 293049 2026-09-19T09:43:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293049 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑɹmd/|a=GA}} * {{IPA|en|/hɑːmd/|a=RP}} * {{rhymes|en|ɑː(ɹ)md|s=1}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harm||ed-form}} jder26cu6n2ukj3qts1e01x85kvctek harms 0 76067 293052 2026-09-19T09:43:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293052 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harm}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harm||s-verb-form}} 53bywxhnd0tr52d2v7h9il1i0fa2ip7 harmes 0 76068 293053 2026-09-19T09:43:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293053 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harme}} mbp1ijokrqhb7t9ss1hrhpl8r9f6hc1 harmful 0 76069 293054 2026-09-19T09:43:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293054 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːmfl̩/|a=RP}} * {{IPA|en|/ˈhɑɹmfl̩/|a=GenAm}} * {{audio|en|en-us-harmful.ogg|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|harmfuller,more}} # ဢၼ်မီးၶဵၼ်။ # ဢၼ်မီးဢၼ်းတရႆၢး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} gxwidry6ksj9cjo3oy4c63zy5yvmo7s harmless 0 76070 293055 2026-09-19T09:44:03Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293055 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːmləs/|a=RP}} * {{IPA|en|/ˈhɑɹmləs/|a=GenAm}} * {{audio|en|en-us-harmless.ogg|a=US}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ဢၼ်ဢမ်ႇမီးၶဵၼ်။ # ဢၼ်ဢမ်ႇမီးဢၼ်းတရႆၢး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 5z3zu63n95r0x3056rhfpy2xkjhrsdx harmonic 0 76071 293056 2026-09-19T09:44:13Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293056 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑːˈmɒnɪk/|a=RP}} * {{IPA|en|/hɑɹˈmɑnɪk/|a=GA}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harmonic.wav|a=Southern England}} * {{audio|en|LL-Q1860 (eng)-Wodencafe-harmonic.wav|a=US}} * {{rhymes|en|ɒnɪk|s=3}} ===ႁိၵ်ႈ=== {{en-noun}} # သဵင်တိင်ႇဢၼ်ပဵၼ်သဵင်သုင်ၵႂႃႇ ယွၼ်ႉမၼ်းသၼ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} io4zixuqm1ymhnmbztok4ygegkekbcb harmonics 0 76072 293057 2026-09-19T09:44:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293057 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{rhymes|en|ɒnɪks|s=3}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harmonic}} trk5hdhousx0dzbhiokai8aap7dvlth ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɒnɪks 14 76073 293058 2026-09-19T09:45:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293058 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɒnɪks/3 သဵင် 14 76074 293059 2026-09-19T09:45:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293059 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɒnɪks]] 3yzjdgpm61192srzpdf7sp7ro8v1lap harmonica 0 76075 293061 2026-09-19T09:45:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293061 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˌhɑɹˈmɒ.nɪ.kə/|a=UK}} * {{IPA|en|/ˌhɑɹˈmɑ.nɪ.kə/|a=US}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harmonica.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun}} # ပီႇလူင်မဵဝ်းၼိုင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} kz29s8avs4mkqx6ysr71y8if60tj4qi harmonicas 0 76076 293062 2026-09-19T09:45:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293062 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-harmonicas.wav|a=US}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harmonica}} ccgwxrktd4xjzxoh7tzsewacuxmb5zm harmonium 0 76077 293063 2026-09-19T09:45:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293063 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|här-mō'''′'''nē-əm}} * {{IPA|en|/hɑːˈməʊ̯.niː.əm/|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harmonium.wav|a=Southern England}} * {{IPA|en|/hɑɹˈmoʊ̯.ni.əm/|a=GenAm,CanE}} * {{IPA|en|/hɐːˈmɐʉ̯.niː.əm/|;|/hɐːˈməʉ̯.niː.əm/<a:also <<AuE>>>|a=AuE,NZE}} * {{IPA|en|/haɹˈmo.ni.əm/|a=ScE}} * {{IPA|en|/hɑː(ɾ)ˈmoː.niː.um/|a=InE}} * {{rhymes|en|əʊniəm|s=4}} * {{hyph|en|har|mo|ni|um}} ===ႁိၵ်ႈ=== {{en-noun}} # ၶိူင်ႈလဵၼ်ႈသဵင်ဢေႃႇၵႅၼ်ႇမဵဝ်းၼိုင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 1uckz7w724zzvv1sf3lvb7vq97fkeg8 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəm 14 76078 293064 2026-09-19T09:46:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293064 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəm/4 သဵင် 14 76079 293065 2026-09-19T09:46:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293065 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəm]] t5ea8135h8q9vjoiigka7sey5qo2zxr တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəm 106 76080 293066 2026-09-19T09:46:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293066 wikitext text/x-wiki {{rhymes nav|en|əʊ|niəm}} ==သဵင်ဢွၵ်ႇ== {{enPR|-ōnēəm}}, {{IPA|en|/-əʊniəm/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===သၢမ်သဵင်=== <!-- Words in this section should be stressed on the FIRST syllable --> {{rhyme-top}} * {{l|en|onium}} {{rhyme-bottom}} ===သီႇသဵင်=== <!-- Words in this section should be stressed on the SECOND syllable --> {{rhyme-top}} * {{l|en|ammonium}} * {{l|en|balonium}} * {{l|en|euphonium}} * {{l|en|harmonium}} * {{l|en|hydronium}} * {{l|en|Iconium}} * {{l|en|meconium}} * {{l|en|meldonium}} * {{l|en|oxonium}} * {{l|en|phosphonium}} * {{l|en|plutonium}} * {{l|en|polonium}} * {{l|en|purdonium}} * {{l|en|stramonium}} * {{l|en|zirconium}} {{rhyme-bottom}} ===ႁႃႈသဵင်=== <!-- Words in this section should be stressed on the THIRD syllable --> {{rhyme-top}} * {{l|en|alimonium}} * {{l|en|diazonium}} * {{l|en|fluoronium}} * {{l|en|pancuronium}} * {{l|en|pandamonium}} * {{l|en|pandemonium}} * {{l|en|pelargonium}} * {{l|en|rocuronium}} * {{l|en|telluronium}} * {{l|en|vecuronium}} {{rhyme-bottom}} iwlr2ltkoxlmde2pwhtj5fzcoxn13qa harmoniums 0 76081 293067 2026-09-19T09:46:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293067 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|här-mō'''′'''nē-əmz}} * {{IPA|en|/hɑːˈməʊ̯.niː.əmz/|a=RP}} * {{IPA|en|/hɑɹˈmoʊ̯.ni.əmz/|a=GenAm,CanE}} * {{IPA|en|/hɐːˈmɐʉ̯.niː.əmz/|;|/hɐːˈməʉ̯.niː.əmz/<a:also <<AuE>>>|a=AuE,NZE}} * {{IPA|en|/haɹˈmo.ni.əmz/|a=ScE}} * {{rhymes|en|əʊniəmz|s=4}} * {{hyph|en|har|mo|ni|ums}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harmonium}} ofc6flbl9yce43hipjwn9o98tw91vi0 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəmz 14 76082 293068 2026-09-19T09:46:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293068 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəmz/4 သဵင် 14 76083 293069 2026-09-19T09:46:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293069 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəmz]] tkuu8b9lf520fv87wu3v7io02t8csfa harmony 0 76084 293070 2026-09-19T09:47:03Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293070 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːmə.ni/|a=RP}} * {{IPA|en|/ˈhɑ̟ɹ.mə.ni/|a=GA}} ** {{audio|en|en-us-harmony.ogg|a=US}} * {{IPA|en|/ˈhɐːmə.ni/||a=AU,NZ}} * {{IPA|en|/ˈhaɾ.mə.ne/|/-nɪ/|/-ni/|a=Scotland}} * {{rhymes|en|ɑː(ɹ)məni|s=3}} * {{hyph|en|har|mon|y}} * {{hmp|en|hominy<aa:non-rhotic,father-bother,weak vowel>}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈၽွမ်ႉႁူမ်ႈ။ # လွင်ႈပဵၼ်သူပ်းလဵဝ်သဵင်လဵဝ်။ # လွင်ႈမီးၽွၼ်းလီမိူၼ်ၵၼ်။ # လွင်ႈလႅပ်ႈၵၼ်။ # လွင်ႈသဵင်ၶဝ်ႈၵၼ်လီ။ # လွင်ႈမေႃႁၢင်ႈၶိူင်ႈ။ # လွင်ႈမေႃၸၢပ်ႈၵၼ်ၶႅမ်ႉလႅပ်ႈလီ။ # be harmony with, ၵၢင်ၸႂ်မိူၼ်ၵၼ်။ # ၵိုင်ႇလႅပ်ႈၵၼ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} kuem8homm6dfc55thty1y2qjyj48nvk ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)məni/3 သဵင် 14 76085 293071 2026-09-19T09:47:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293071 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)məni]] oxkzn0m19vz4gt2biqe7gvdbqfivdmx harmonies 0 76086 293072 2026-09-19T09:47:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293072 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harmony}} 3zbxdyxvdw32qow5vliphc6m6j507sx harmonious 0 76087 293073 2026-09-19T09:47:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293073 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑɹˈmoʊni.əs/|a=GA}} * {{IPA|en|/hɑːˈməʊni.əs/|a=RP}} * {{hyph|en|har|mo|ni|ous}} * {{audio|en|LL-Q1860 (eng)-Vininn126-harmonious.wav|a=US}} * {{rhymes|en|əʊniəs|s=4}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj}} # ဢၼ်ၽွမ်ႉႁူမ်ႈ။ # ဢၼ်သဵင်ၶဝ်ႈၵၼ်လီ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} nhdclzzdntlxwzqebu6r44hs0kbk9qk ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəs/4 သဵင် 14 76088 293075 2026-09-19T09:48:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293075 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/əʊniəs]] trca9gop2bks4017atxew91dmm3g494 harmonize 0 76089 293077 2026-09-19T09:48:33Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293077 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑː.mə.naɪz/|a=RP}} * {{IPA|en|/ˈhɑɹ.mə.naɪz/|a=GA}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harmonize.wav|a=Southern England}} * {{rhymes|en|ɑː(ɹ)mənaɪz|s=3}} * {{hyph|en|har|mon|ize}} ===သၢင်ႈ=== {{en-verb}} # သဵင်ၶဝ်ႈၵၼ်။ # ၽွမ်ႉႁူမ်ႈၵၼ်။ # ၶဝ်ႈၵၼ်။ # ၵိုင်ႇလႅပ်ႈၵၼ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} d8gni5rbeswqt5adls8nszrju0hu39f ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mənaɪz 14 76090 293078 2026-09-19T09:48:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293078 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mənaɪz/3 သဵင် 14 76091 293079 2026-09-19T09:48:53Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293079 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)mənaɪz]] injs3lri6jsq29g8k23b0w6qdu9r97t harmonizing 0 76092 293080 2026-09-19T09:49:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293080 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harmonize||ing-form}} o7hp7wns20hhnpae0o6fyn65uaxeinr harmonizes 0 76093 293081 2026-09-19T09:49:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293081 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harmonize||s-verb-form}} 9wg37gg9e2b911lm250y1ot0nd1p187 harmonized 0 76094 293082 2026-09-19T09:49:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293082 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harmonize||ed-form}} c0sba7s7ybn0spiucv1f39y96sh13de harness 0 76095 293083 2026-09-19T09:49:33Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293083 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑː.nəs/|a=RP}} * {{IPA|en|/ˈhɑɹ.nəs/|a=GA}} ** {{audio|en|en-us-harness.ogg|a=US}} * {{IPA|en|/ˈhɐː.nəs/|a=AU,NZ}} * {{rhymes|en|ɑː(ɹ)nəs|s=2}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ၸိူၵ်ႈထိင်းလေႃႉမႃႉ။ # work၊ run in double harness, ႁဵတ်းၵၢၼ်။ # ၵႃႈၸွမ်းၵၼ်သွင်ၵေႃႉ။ ===သၢင်ႈ=== {{en-verb}} # သႂ်ႇၸိူၵ်ႈလေႃႉမႃႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} pka7o8a38jlff5fqzwewysstda69c22 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)nəs 14 76096 293084 2026-09-19T09:49:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293084 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)nəs/2 သဵင် 14 76097 293085 2026-09-19T09:49:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293085 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)nəs]] pzhcn6js8906c36n2iqb3xc23dely07 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)nəs 106 76098 293086 2026-09-19T09:50:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293086 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)nəs}} ==သဵင်ဢွၵ်ႇ== -â(r)nəs, /-ɑː(ɹ)nəs/, /<tt>-A:(r\)n@s</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːnəs|/-ɑːnəs/]] are rhymes for words on this page. #For more rhymes, follow some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)n|/-ɑː(ɹ)n/]] with "us". #For more rhymes, add ''ness'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)|/-ɑː(ɹ)/]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> * [[farness]] * [[harness]] tdv6z1ufnq34i5j76kb2l5bkuqlxkol harnessed 0 76099 293087 2026-09-19T09:50:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293087 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harness||ed-form}} 0wwbrabr33i6aw1z2hilbpzaegkfuu5 harnessing 0 76100 293088 2026-09-19T09:50:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293088 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harness||ing-form}} hukl8miotenml9inwm7qvneu80hdvp8 harnessest 0 76101 293089 2026-09-19T09:50:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293089 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harness||st-form}} 3cxtpkm4badynpn7nfcptfksxr7h6yk harnesses 0 76102 293090 2026-09-19T09:50:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293090 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑː(ɹ).nəsɪz/|a=UK}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harness}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harness||s-verb-form}} e232of2jqfza1hgjdqmltha7xqi5dgq die in harness 0 76103 293091 2026-09-19T09:50:53Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293091 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{en-verb|*|head=[[die]] [[in harness]]}} # တႆၢၶၢဝ်းယၢမ်းတိုၵ်ႉႁဵတ်းၵၢၼ် ဢၼ်ၵႆႉႁဵတ်းတႃႇသေႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} kdhifb718gb822rstc8w063m7oxo9zl died in harness 0 76104 293092 2026-09-19T09:51:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293092 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|die in harness||ed-form}} q7imwvtw9c1ji1a0wp22ib39097jtab dies in harness 0 76105 293093 2026-09-19T09:51:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293093 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|die in harness||s-verb-form}} iuzgqrh682kypd5njsqax3fzxfh2f0i harp 0 76106 293094 2026-09-19T09:51:23Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293094 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑːp/|a=UK}} * {{IPA|en|/hɑɹp/|a=US}} * {{rhymes|en|ɑː(ɹ)p|s=1}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harp.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun}} # တိင်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 15u516nshrgq3p6d2kzhv648h6gzhz2 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p 14 76107 293095 2026-09-19T09:51:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293095 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p/1 သဵင် 14 76108 293096 2026-09-19T09:51:43Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293096 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p]] ddtum37dh0jqw6x7n4tyydvvk9detbl harping 0 76109 293098 2026-09-19T09:52:03Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293098 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹpɪŋ/|a=GA}} * {{IPA|en|/ˈhɑːpɪŋ/|a=RP}} * {{rhymes|en|ɑː(ɹ)pɪŋ|s=2}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp||ing-form}} f9adqn2simcpfzur9v6hee72ac1is2y ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pɪŋ 14 76110 293099 2026-09-19T09:52:13Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293099 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pɪŋ/2 သဵင် 14 76111 293100 2026-09-19T09:52:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293100 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pɪŋ]] ecdumnh7443w2h42m4nvyz92xbxzhaf harps 0 76112 293102 2026-09-19T09:52:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293102 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harp}} # {{lb|en|Ireland}} The side of a coin that bears [[w:coat of arms of Ireland|an image of the Irish harp]]. #: {{ant|en|heads}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp||s-verb-form}} asqa6z8ityhgsfzth0hx91svwmjrit1 harpes 0 76113 293103 2026-09-19T09:52:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293103 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harpe}} q83uicd74qy6ubm7y1vfsylw4n90eso harped 0 76114 293104 2026-09-19T09:53:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293104 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp||ed-form}} algjlwv3erzo7b6qf125ftj7qn668yx harp on 0 76115 293105 2026-09-19T09:53:14Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293105 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{en-verb|*}} # ၵမ်းၵမ်းလၢတ်ႈလွင်ႈဢမ်ႇလီၶဝ်ႈၸႂ်၊ လီဢိမ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 4vbcw197mnb7ixruods8lyjs6la5akd harps on 0 76116 293106 2026-09-19T09:53:23Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293106 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp on||s-verb-form}} rw4h1kyowfqbtuti7de52hqbsaegrbp harping on 0 76117 293107 2026-09-19T09:53:33Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293107 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp on||ing-form}} t8x94ycojy2y96dzavykfxe686slky8 harped on 0 76118 293108 2026-09-19T09:53:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293108 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harp on||ed-form}} f4rbodxwb3esvyzew6fws6m9alu6hyr harpist 0 76119 293109 2026-09-19T09:53:54Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293109 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹpɪst/|a=US}} * {{audio|en|LL-Q1860 (eng)-Flame, not lame-harpist.wav|a=US}} ===ႁိၵ်ႈ=== {{en-noun}} # ၸဝ်ႈတိင်ႇ။ # မေႃတိင်ႇ။ # ၽူႈလဵတ်းတိင်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} gefebcavk979lfnha92zcrb7h9y4ky8 harpists 0 76120 293110 2026-09-19T09:54:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293110 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harpist}} a8v1xmg26ui5m62mm69sk2dyyk0vhwd harper 0 76121 293111 2026-09-19T09:54:14Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293111 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑː(ɹ)pə(ɹ)/}} * {{audio|en|LL-Q1860 (eng)-Flame, not lame-harper.wav|a=US}} * {{rhymes|en|ɑː(ɹ)pə(ɹ)|s=2}} ===ႁိၵ်ႈ=== {{en-noun}} # ၸဝ်ႈတိင်ႇ။ # မေႃတိင်ႇ။ # ၽူႈလဵတ်းတိင်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} ru096dkz01npc59kxdcpsyoq9j3a47v ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pə(ɹ) 14 76122 293112 2026-09-19T09:54:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293112 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pə(ɹ)/2 သဵင် 14 76123 293113 2026-09-19T09:54:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293113 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pə(ɹ)]] 9nhjzvhayy4naf0n1o1ccs9e0jey0nu တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pə(ɹ) 106 76124 293114 2026-09-19T09:54:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293114 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)pə(ɹ)}} ==သဵင်ဢွၵ်ႇ== * {{enPR|-ä(r)pə(r)}}, {{IPA|en|/-ɑː(ɹ)pə(ɹ)/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== # In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːpə|/-ɑːpə/]], [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pə|/-ɑː(ɹ)pə/]] and [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːpə(ɹ)|/-ɑːpə(ɹ)/]] are also rhymes for words on this page. # For more rhymes, add ''er'' to some nouns and adjectives at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p|/-ɑː(ɹ)p/]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> {{rhyme-top}} * {{l|en|carper}} * {{l|en|Harper}} * {{l|en|harper}} * {{l|en|LARPer}} * {{l|en|scarper}} * {{l|en|sharper|pos=n}} {{rhyme-bottom}} azyfdhceo334wr65wwbi7gnzr33txbq harpers 0 76125 293115 2026-09-19T09:54:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293115 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harper}} gtroq2285nq0pngf8ph244c8v3uegm2 harpoon 0 76126 293116 2026-09-19T09:55:04Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293116 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{enPR|härpo͞onʹ|a=GA}}, {{IPA|en|/hɑːɹˈpuːn/}} * {{enPR|härpo͞onʹ|a=RP}}, {{IPA|en|/hɑːˈpuːn/}} * {{audio|en|En-au-harpoon.ogg|a=AU}} * {{rhymes|en|uːn|s=2}} * {{hyphenation|en|har|poon}} ===ႁိၵ်ႈ=== {{en-noun}} # ႁွၵ်ႇသွင်ငႅမ်ႈ။ # ႁွၵ်ႇတမ်ပႃ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} agmgqol47w39dsqnzjrqbp405u76kaw harpooning 0 76127 293117 2026-09-19T09:55:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293117 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harpoon||ing-form}} ogbyztj1e7hxm15zdqmr17p2a8022hw harpooned 0 76128 293118 2026-09-19T09:55:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293118 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harpoon||ed-form}} 4gakaxond9ujgsmio4giax6ni224fr3 harpoons 0 76129 293119 2026-09-19T09:56:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293119 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-harpoons.wav|a=US}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harpoon}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harpoon||s-verb-form}} bxwa6buz3h07320fbwclvpn7lnrdkem harpsichord 0 76130 293120 2026-09-19T09:56:14Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293120 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑː(ɹ)p.sɪ.kɔː(ɹ)d/|a=UK}} * {{IPA|en|/ˈhɑɹp.sɪˌkɔɹd/|a=US}} * {{audio|en|en-us-harpsichord.ogg|a=US}} ===ႁိၵ်ႈ=== {{en-noun}} # ဢေႃႇၵႅၼ်ႇမိူဝ်ႈၵွၼ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} f0gklwdvly1ir33qzr3ldcqlys855hi harpsichords 0 76131 293121 2026-09-19T09:56:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293121 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harpsichord}} 4dabc13660lx9s7ibf4vtaafgb18pc3 harpy 0 76132 293122 2026-09-19T09:56:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293122 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹpi/|a=GA}} * {{IPA|en|/ˈhɑːpi/|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harpy.wav|a=Southern England}} * {{rhymes|en|ɑː(ɹ)pi|s=2}} * {{hyphenation|en|har|py}} ===ႁိၵ်ႈ=== {{en-noun}} # ၽီဢၼ်မီးၼႃႈၼၢင်းယိင်း တူဝ်ပဵၼ်ၼူၵ်ႉ။ # ၼၢင်းယိင်းဢၼ်ဢမ်ႇမီးလွင်ႈဢီးလူ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} qkajbl7d06h7wmw35n7d1o5k32go3hd ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pi 14 76133 293123 2026-09-19T09:56:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293123 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pi/2 သဵင် 14 76134 293124 2026-09-19T09:56:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293124 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pi]] r9gte79zl80hku7drpndftydg7h8ya2 တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)pi 106 76135 293125 2026-09-19T09:57:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293125 wikitext text/x-wiki {{rhymes nav|en|ɑː|(ɹ)pi}} ==သဵင်ဢွၵ်ႇ== -ä(r)pi, {{IPAchar|/-ɑː(ɹ)pi/}} ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːpi|/-ɑːpi/]] are rhymes for words on this page. #For more rhymes, add ''y'', ''ey'' or ''ie'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)p|/-ɑː(ɹ)p/]]. ===သွင်သဵင်=== <!-- Note: words in this section must be stressed on the PENULTIMATE syllable.--> *[[harpy]] *[[sharpie]], [[Sharpie]] 7a8nl135p6e6dffvjpcgrs1euqiuuxl harpies 0 76136 293126 2026-09-19T09:57:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293126 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-harpies.wav|a=US}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harpy}} 395ww8qocw1lr7ihaherbjze04d9ciu harrow 0 76137 293127 2026-09-19T09:57:24Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293127 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæɹəʊ/|a=RP}} * {{IPA|en|/ˈhæɹoʊ/|a=US,non-Mary-marry-merry}} ** {{audio|en|en-us-ne-harrow.ogg|a=US,non-Mary-marry-merry}} * {{IPA|en|/ˈhɛɹoʊ/|a=US,Mary-marry-merry}} ** {{audio|en|en-us-harrow.ogg|a=US,Mary-marry-merry}} * {{IPA|en|/ˈhaɾo/|a=Scotland}} * {{IPA|en|/ˈhaɾou/|a=Wales,non-toe-tow}} * {{rhymes|en|æɹəʊ|s=2}} ===ႁိၵ်ႈ=== {{en-noun}} # ထႆ။ ===သၢင်ႈ=== {{en-verb}} # ထႆၼႃး၊ ႁႆႈ။ # ပၼ်ၸႂ်ၶၢၼ်ၸႂ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} mfr9cvfufeqltna47i6karc04lvnpnr ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹəʊ 14 76138 293128 2026-09-19T09:57:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293128 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹəʊ/2 သဵင် 14 76139 293129 2026-09-19T09:57:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293129 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹəʊ]] 3xq4lxxcdstemqwwuwaz6476x5i330a harrows 0 76140 293131 2026-09-19T09:58:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293131 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harrow}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harrow||s-verb-form}} n6xl7s2983k0kmtv9fvbujb0rb761ph harrowest 0 76141 293132 2026-09-19T09:58:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293132 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harrow||st-form}} 7s3az4o20jde7hag42artvhmdfz6fjg harrowing 0 76142 293133 2026-09-19T09:58:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293133 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæɹəʊ.ɪŋ/|a=RP}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harrowing.wav|a=Southern England}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harrow||ing-form}}. qjx39946lya50078mn5l5z5n8952oaa harrowed 0 76143 293134 2026-09-19T09:58:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293134 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harrow||ed-form}} s9te3czdgqtundlm2f8jg32ndfm57g0 harry 0 76144 293135 2026-09-19T09:58:44Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293135 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæɹi/|a=RP,AU}} * {{IPA|en|/ˈhaɹɪj/|a=SSB}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-harry.wav|a=Southern England}} * {{IPA|en|/ˈhæɹi/|a=US,nMmmm}} ** {{audio|en|en-us-Harry.ogg|a=US,nMmmm}} * {{IPA|en|/ˈhɛɹi/|a=US,Mmmm}} ** {{audio|en|LL-Q1860 (eng)-Wodencafe-harry.wav|a=US,Mmmm}} * {{IPA|en|/ˈhaɾe/|/-ɾɪ/|/-ɾi/|a=Scotland}} * {{IPA|en|/ˈhaɾi/|a=Wales}} * {{IPA|en|/ˈhɛɹi/|a=NZ}} * {{homophone|en|Harry}} * {{homophone|en|hairy<aa:only in accents with the <<Mmmm>>>}} * {{rhymes|en|æɹi|s=2}} ===သၢင်ႈ=== {{en-verb}} # ၵမ်းၵမ်းထၢမ်။ # ႁဵတ်းႁႂ်ႈပိူၼ်ႈသုၵ်ႉၸႂ်။ # ၵမ်းၵမ်းယႃႉၵဝ်း။ # ၵမ်းၵမ်းတိုၵ်းတေႃး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} el6pmliauppnp979n0ck2zs356o28u2 ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹi 14 76145 293136 2026-09-19T09:58:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293136 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹi/2 သဵင် 14 76146 293137 2026-09-19T09:59:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293137 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æɹi]] fpx4zvh9vi0v9oerksjtju3eb40s4m4 harries 0 76147 293139 2026-09-19T09:59:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293139 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harry||s-verb-form}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harry}} 5z5drfe8yeulxn9zuyoio6ijntfxmx6 harried 0 76148 293140 2026-09-19T09:59:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293140 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|en-us-harried.ogg|a=US}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harry||ed-form}} m5e1y82ke7p3vzf4jsq8x2ja0m0w5o0 harrying 0 76149 293141 2026-09-19T09:59:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293141 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harry||ing-form}} #* {{quote-journal|en|author=Sam Borden|title=For bellicose Brazil, payback carries heavy price: Loss of Neymar &#91;''International New York Times'' version: Brazil and referee share some blame for Neymar's injury: Spaniard's failure to curb early pattern of fouls is seen as major factor (7 July 2014, p.&nbsp;13)&#93;|url=http://www.nytimes.com/2014/07/06/sports/worldcup/for-bellicose-brazil-payback-carries-heavy-price-loss-of-neymar.html|work=w:The New York Times|date=5 July 2014|passage=The Colombians' ire was raised even more 10 minutes later when the referee showed a yellow card to [[w:James Rodríguez|&#91;James&#93; Rodríguez]]&nbsp;– who was apoplectic at the decision&nbsp;– for an innocuous trip that was, as Rodríguez vociferously pointed out with multiple hand gestures, a first offense compared with [[w:Fernandinho (footballer)|Fernandinho]]'s '''harrying'''.}} 38fs6sg160klgvobrsvxxcc0zf7c17y harsh 0 76150 293142 2026-09-19T09:59:54Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293142 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{a|en|non-rhotic}} ** {{IPA|en|/ˈhɑːʃ/|[ˈhɑːʃ]|a=RP}} ** {{IPA|en|/ˈhäːʃ/|[ˈhäːʃ]|~|/ˈhɐ̞ːʃ/|[ˈhɐ̞ːʃ]|a=AU}} *** {{audio|en|En-au-harsh.ogg|a=[[w:Australian English|Australia]]}} * {{a|en|rhotic}} ** {{IPA|en|/ˈhɑɹʃ/|[ˈhɑɹʃ]|a=GA}} * {{IPA|en|/ˈhæʃ/|[ˈhæʃ]|a=obsolete|ref={{R:en:Hurd:1847|Harsh|3|83}} !!! {{R:Krapp ELiA|II|222}}}} * {{rhymes|en|ɑː(ɹ)ʃ|s=1}} * {{hyph|en|harsh}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er,more}} # ဢၼ်ႁၢဝ်ႈ။ # ဢၼ်ၵျၢမ်း။ # ဢၼ်ဢမ်ႇမေႃဢီးလူ။ # (ၾိင်ႈၾႃႉ) ဢၼ်ၶၢမ်ႇယၢပ်ႇ။ # (သီ) ဢၼ်ဢမ်ႇမႅၼ်ႈၸႂ်။ # ဢၼ်ဢမ်ႇဝၢၼ်ႁူ။ # (ၼမ်ႉ၊ ၽႆး၊ သေပိူင်ပိူင်) ဢၼ်ႁၢဝ်ႈႁႅင်း။ # ဢၼ်ႁဵတ်းႁႂ်ႈလူႉလႅဝ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} csrovuuk1sxz8ps7qs1hqzrxyakrb8d ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)ʃ 14 76151 293143 2026-09-19T10:00:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293143 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)ʃ/1 သဵင် 14 76152 293144 2026-09-19T10:00:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293144 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)ʃ]] 0vzmf4a9zeayc7gc8a5rqgo6ubjl2ec တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑː(ɹ)ʃ 106 76153 293145 2026-09-19T10:00:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293145 wikitext text/x-wiki {{rhymes nav|en|ɑː|(r)ʃ}} ==သဵင်ဢွၵ်ႇ== -ä(r)sh, /-ɑː(r)ʃ/, /<tt>-A:(r)S</tt>/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #In [[non-rhotic]] accents, words ending in [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/ɑːʃ|/-ɑːʃ/]] are rhymes for words on this page. ===ၼိုင်ႈသဵင်=== * [[harsh]] * [[Marsh]] * [[marsh]] ===သွင်သဵင်=== <!-- Note: words in this section must be stressed on the FINAL syllable.--> m97bfdzez120kr9kiqzyustj57t2596 harshing 0 76154 293146 2026-09-19T10:00:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293146 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harsh||ing-form}} mmh0mtykgugg7uygoqh2xedsn4hc0xp harshed 0 76155 293147 2026-09-19T10:00:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293147 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harsh||ed-form}} 9rukx3c14ogodlhvt7gmxt0mgd0vtqf harshes 0 76156 293148 2026-09-19T10:00:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293148 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harsh||s-verb-form}} m3h3ozaxkiwum7o2znd6uxn3kigqo8n harshest 0 76157 293149 2026-09-19T10:01:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293149 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|harsh}} 81gn506eqctwcxjov3jwyikl45p5tw7 harsher 0 76158 293150 2026-09-19T10:01:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293150 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ}} # {{en-comparative of|harsh}} ruq3quc9m6eic9cx3g7wv7kad8cxkjx harshly 0 76159 293151 2026-09-19T10:01:24Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293151 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑːʃli/|a=UK}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-harshly.wav|a=Southern England}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv|er,more}} # ႁၢဝ်ႈၼႃႇ။ # ၵျၢမ်းၼႃႇ။ # ဢမ်ႇမေႃဢီးလူပိူၼ်ႈ။ # ဢမ်ႇဝၢၼ်ႁူသေဢိတ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 9zpfacnz3uwu26w2jhnjk1lbwomfqgo harshlier 0 76160 293152 2026-09-19T10:01:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293152 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉသၢင်ႈ}} # {{en-comparative of|harshly|POS=adverb}} rye8egtingbt5iwbakl3zfy2yextuxe harshliest 0 76161 293153 2026-09-19T10:01:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293153 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉသၢင်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉသၢင်ႈ}} # {{en-superlative of|harshly|POS=adverb}} pa0c6zhs05d41bc5ea7ouk8g32u9ir7 harshness 0 76162 293154 2026-09-19T10:01:54Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293154 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈႁၢဝ်ႈ။ # လွင်ႈဢမ်ႇမေႃဢီးလူပိူၼ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 1he675bq41srze5ocjvuqhw7yufsx50 harshnesses 0 76163 293155 2026-09-19T10:02:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293155 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harshness}} d0syqkcjjxglo8tbjocsufs5cxdf4dv harum-scarum 0 76164 293156 2026-09-19T10:02:14Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293156 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˌhɛəɹəmˈskɛəɹəm/|a=US}} ===ႁိၵ်ႈ=== {{en-noun|nolink=1}} # ၵူၼ်းၸလိူဝ်ႈၸလႃႈ။ # ၵူၼ်းလႃႈလီႈႁဵတ်းႁတ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} czxmq2yimcms586y04qc94dmzw55810 harum-scarums 0 76165 293157 2026-09-19T10:02:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293157 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harum-scarum}} 4rs9ne3eltq2xwb29tla9daco85hyf5 harvest 0 76166 293158 2026-09-19T10:02:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293158 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhɑɹ.vəst/|/ˈhɑɹ.vɪst/|a=US}} * {{audio|en|en-us-harvest.ogg|a=US}} * {{IPA|en|/ˈhɑː(ɹ)vɪst/|/ˈhɑː(ɹ)vəst/|a=UK}} * {{IPA|en|/ˈhaːvəst/|a=Australia,NZ}} ===ႁိၵ်ႈ=== {{en-noun|~}} # ၶၢဝ်းပၢတ်ႇၶဝ်ႈ။ # လွင်ႈပၢတ်ႇၶဝ်ႈ။ # ၽွၼ်းလီ။ ===သၢင်ႈ=== {{en-verb}} # ပၢတ်ႇၶဝ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 78qhziw21bd1tsptg1rxhyit4sa5vba harvests 0 76167 293159 2026-09-19T10:02:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293159 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harvest}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harvest||s-verb-form}} 5casdrg9mdbru176gasm8ukkz9yx6rg harvested 0 76168 293160 2026-09-19T10:02:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293160 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} [[File:012 Hay bales during harvest in Meuse Department, France - Creative Commons free stock photo with attribution.jpg |thumb|Straw bales on a '''harvested''' wheat field]] # {{infl of|en|harvest||ed-form}} e7y1q2pyxd3hree1iaojpc7ntv4w2nn harvesting 0 76169 293161 2026-09-19T10:03:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293161 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Wodencafe-harvesting.wav|a=US}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|harvest||ing-form}} qe5u845cx2ju1rzmx0hud6esblpjb7g harvester 0 76170 293162 2026-09-19T10:03:14Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293162 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-harvester.wav|a=Southern England}} ===ႁိၵ်ႈ=== {{en-noun}} # ၵူၼ်းပၢတ်ႇၶဝ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 26p2rfmf287qkpshkdb6ka0zuieo7fw harvesters 0 76171 293163 2026-09-19T10:03:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293163 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|harvester}} tw2chixduc9ft07u6mukjj91tmbfffc has-been 0 76172 293164 2026-09-19T10:03:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293164 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæz.biːn/|a=UK}} * {{IPA|en|/ˈhæz.bɪn/|/-bɛn/|a=US}} * {{audio|en|En-us-has-been.ogg|a=US}} * {{audio|en|en-au-has-been.ogg|a=AU}} ===ႁိၵ်ႈ=== {{en-noun}} # ၽူႈဢၼ်ၼမ်ႉၵတ်ႉတၢင်းၶႅၼ်ႇမၼ်းတူၵ်းၵႂႃႇ ဢမ်ႇမီးမိူၼ်ၵဝ်ႇ။ # ၶူဝ်းၶွင်ဢၼ်ၵၢပ်ႈပၢၼ်ပူၼ်ႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} ev2wwnlfv0ap6x8cvjmqomtvcxv4rwm has-beens 0 76173 293165 2026-09-19T10:03:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293165 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|has-been}} 96p8vtbnafw0w4k9swphjpivhw7ysmi hash 0 76174 293166 2026-09-19T10:03:54Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293166 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæʃ/|[ˈhæʃ]}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-hash.wav|a=Southern England}} * {{rhymes|en|æʃ|s=1}} * {{hyph|en|hash}} * {{hmp|en|Hash}} ===သၢင်ႈ=== {{en-verb}} # ၽၵ်ႉၼိူဝ်ႉ။ ===ႁိၵ်ႈ=== {{en-noun}} # ၼိူဝ်ႉဢၼ်ၽၵ်ႉဝႆႉဢွၼ်ႇဢွၼ်ႇ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 2keq2wr6ufx0q81lzgn1gx6oaipeakm hashed 0 76175 293167 2026-09-19T10:04:34Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293167 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{rhymes|en|æʃt|s=1}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hash||ed-form}} ejtbrwxfi6cjqj40qp7811d2rfzn472 hashing 0 76176 293168 2026-09-19T10:05:14Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293168 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hash||ing-form}} {{C|en|Sports}} ngfla26d2rssmyhnlu5su5uii6odi85 hashes 0 76177 293169 2026-09-19T10:05:24Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293169 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hash}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hash||s-verb-form}} onv6iooyat4joa6fpy682vfq61t56sa settle someone's hash 0 76178 293170 2026-09-19T10:05:34Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293170 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|En-au-settle someone's hash.ogg|a=AU}} ===သၢင်ႈ=== {{en-verb|*|head=[[settle]] someone's [[hash]]}} # တဵၵ်းဝႆႉလီလီ ၼင်ႇႁိုဝ်တေဢမ်ႇၵဝ်းလႆႈထႅင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} emkipa409aygil91cpc011hu1o2ijox settling someone's hash 0 76179 293171 2026-09-19T10:05:44Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293171 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|settle someone's hash||ing-form}} d6r08mcmqtvuwlvc8774j5ieirti0ny settles someone's hash 0 76180 293172 2026-09-19T10:05:54Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293172 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|settle someone's hash||s-verb-form}} afe3c5qobmcisy567jmbrmzqfegbz0x settled someone's hash 0 76181 293173 2026-09-19T10:06:04Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293173 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|settle someone's hash||ed-form}} rhesl58p815j0gn54zgdem93hn3sawe make a hash of 0 76182 293174 2026-09-19T10:06:22Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293174 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{en-verb|<,,made>}} # ႁဵတ်းဢမ်ႇပေႃးၶႅမ်ႉပေႃးလႅပ်ႈ။ # ႁဵတ်းသုၵ်ႉသၵ်ႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 4a7mpiqpma5q87riumb92n00n6rfsm3 making a hash of 0 76183 293175 2026-09-19T10:06:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293175 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|make a hash of||ing-form}} 78v8irg9hlankd1ptrf60wr02husvx3 made a hash of 0 76184 293176 2026-09-19T10:06:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293176 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|make a hash of||ed-form}} ehejo1jhhwb3xn4u6jpfgso9p96nccf makes a hash of 0 76185 293177 2026-09-19T10:06:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293177 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|make a hash of||s-verb-form}} tfxyfu8hp8ykrsijajhxjwzi5y7jrsc hashish 0 76186 293178 2026-09-19T10:07:02Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293178 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/həˈʃiːʃ/|/hæˈʃiːʃ/|/ˈhæʃɪʃ/}} * {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-hashish.wav|a=GA|IPA=/hæˈʃiːʃ/}} * {{audio|en|LL-Q1860 (eng)-Naomi Persephone Amethyst (NaomiAmethyst)-hashish (alt).wav|a=GA|IPA=/ˈhæʃɪʃ/}} * {{audio|en|En-au-hashish.ogg|a=AU}} * {{rhymes|en|iːʃ|s=2}} ===ႁိၵ်ႈ=== {{en-noun|-|+}} # ယႃႈမဝ်းၵမ်မဵဝ်းၼိုင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 7ct11s8ait1kuovkpdyxvdfmcbmklrt ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/iːʃ 14 76187 293179 2026-09-19T10:07:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293179 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/iːʃ/2 သဵင် 14 76188 293180 2026-09-19T10:07:22Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293180 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/iːʃ]] q1p9i5v2ev1i01pwk8bpwxmm4t6oshu hashishes 0 76189 293182 2026-09-19T10:07:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293182 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hashish}} 5uyv7mkg3173p869lgfanaujlxsv1s3 hasheesh 0 76190 293183 2026-09-19T10:07:52Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293183 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # ယႃႈမဝ်းၵမ်မဵဝ်းၼိုင်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 96xrp0cpwl213fltsy4ove967msk99b hasheeshes 0 76191 293184 2026-09-19T10:08:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293184 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hasheesh}} jbht9fnb9t7hr3bkvt966yhzre0u51t hasp 0 76192 293185 2026-09-19T10:08:12Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293185 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hɑːsp/|/hæsp/|a=RP}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-hasp2.wav|a=Southern England}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-hasp.wav|a=Southern England}} * {{IPA|en|/hæsp/|a=GA}} * {{rhymes|en|ɑːsp|æsp|s=1}} ===ႁိၵ်ႈ=== {{en-noun}} # ဢၼ်ၵွင်ႉၽၵ်းတူ။ # ပတ်ႉတႃႇၽၵ်းတူ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 9p3tlyv3txalhgm0ft3azjxuyao2xem hasped 0 76193 293186 2026-09-19T10:08:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293186 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasp||ed-form}} acku76pktr92lc3q7und76kk2yau2qy hasps 0 76194 293187 2026-09-19T10:09:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293187 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hasp}} o8ibqf5754tqdxl3v5k2hf96tuvgnwz hasping 0 76195 293188 2026-09-19T10:09:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293188 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasp||ing-form}} 6be51e6soub4ymggjhimvl4i8udwevq hassle 0 76196 293189 2026-09-19T10:09:22Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293189 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhæsl̩/}} * {{audio|en|en-au-hassle.ogg|a=AU}} * {{rhymes|en|æsəl|s=2}} ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈၽိတ်းၵၼ်။ # မေႃးၵၼ်ႁၢဝ်ႈႁၢဝ်ႈႁႅင်းႁႅင်း။ # (ၵၢၼ်၊ သႆၢငႆၢ) ဢၼ်မီးလွင်ႈယၢပ်ႇၽိုတ်ႇ။ ===သၢင်ႈ=== {{en-verb}} # ထဵင်ၵၼ်၊ မေႃးၵၼ်ႁၢဝ်ႈႁၢဝ်ႈႁႅင်းႁႅင်း။ # ယႃႉၵဝ်း။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 7awshgbuy9um76svkeonm7zbp9b9z1n ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsəl 14 76197 293190 2026-09-19T10:09:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293190 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsəl/2 သဵင် 14 76198 293191 2026-09-19T10:09:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293191 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsəl]] sfn86p1mgxwgd9ow20hzgng4hbfyi19 hassled 0 76199 293193 2026-09-19T10:10:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293193 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hassle||ed-form}} lpoxyg4zw2iyy8agt4y412rztnmkbfu hassling 0 76200 293194 2026-09-19T10:10:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293194 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hassle||ing-form}} kvh43trdgiruhao4kj0194ews1z0hkt hassles 0 76201 293195 2026-09-19T10:10:22Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293195 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hassle}} mgu99htjcgrszg9vxrfniubmbxu83pi hassock 0 76202 293196 2026-09-19T10:10:32Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293196 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhasək/|a=UK}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-hassock.wav|a=Southern England}} * {{rhymes|en|æsək|s=2}} ===ႁိၵ်ႈ=== {{en-noun}} # ၵွပ်းလွင်တႃႇဢဝ်ႁူဝ်ၶဝ်ႇတဝ်ႉ၊ တႃႇမွၼ်ၶႃ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} nywozst53fng7bemon8dv8stlwxs94q ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsək 14 76203 293197 2026-09-19T10:10:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293197 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsək/2 သဵင် 14 76204 293198 2026-09-19T10:10:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293198 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/æsək]] j7fwm6zj6ys10cjo8rgs24xp1lnlbuq hassocks 0 76205 293200 2026-09-19T10:11:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293200 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hassock}} kx6hr98furx8o0oo3rke8z17633sw6k haste 0 76206 293201 2026-09-19T10:11:22Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293201 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/heɪst/}} * {{audio|en|en-us-haste.ogg|a=US}} * {{rhymes|en|eɪst|s=1}} ===ႁိၵ်ႈ=== {{en-noun|-|s}} # လွင်ႈၽႂ်း။ # လွင်ႈဝႆး။ # လွင်ႈႁဵတ်းဝႆး။ # လွင်ႈႁိပ်ႈၼႅတ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} m7llhyiez3itm0csx9xtr43ujrara2k hastes 0 76207 293202 2026-09-19T10:12:02Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293202 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|haste||s-verb-form}} qqtwbj4jptinuyh8lgnpetwl6czbps8 hasted 0 76208 293203 2026-09-19T10:12:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293203 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪstɪd/}} * {{rhyme|en|eɪstɪd|s=2}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|haste||ed-form}} n7fsu4e1kkql19f5913ne0e7hrhofsp hastest 0 76209 293204 2026-09-19T10:12:22Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293204 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|haste||st-form}} 5wixickewct7xh0puiq3oxsg66osms7 hasting 0 76210 293205 2026-09-19T10:12:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293205 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|s}} # {{inflection of|en|hastings||s}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|haste||ing-form}} 98k14ooi45nvngq4r9j1e59zvl3p2u9 hasten 0 76211 293206 2026-09-19T10:12:42Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293206 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪ.sn̩/}} * {{audio|en|En-us-hasten.ogg|a=US}} * {{rhymes|en|eɪsən|s=2}} ===သၢင်ႈ=== {{en-verb}} # ႁဵတ်း၊ လၢတ်ႈ၊ ၵႂႃႇဝႆးဝႆး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} fsz1va7qq7mp1h4o31iim576lnyw8b9 hastening 0 76212 293210 2026-09-19T10:13:22Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293210 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasten||ing-form}} eorfy7igqwj0wknj64991b6ebdqznry hastened 0 76213 293211 2026-09-19T10:13:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293211 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪsn̩d/}} * {{audio|en|en-us-hastened.ogg|a=US}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasten||ed-form}} lu8be1q4jl68sbabnv9dieqzwewlydq hastens 0 76214 293212 2026-09-19T10:13:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293212 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasten||s-verb-form}} 7tbvlbtetja3n8730ifq2rlw3vz20kr hastenest 0 76215 293213 2026-09-19T10:13:52Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293213 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hasten||st-form}} slq7rj802ky21gvyvbme3vtxl64pogu hasty 0 76216 293214 2026-09-19T10:14:02Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293214 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪsti/}} * {{audio|en|en-us-hasty.ogg|a=US}} * {{rhymes|en|eɪsti|s=2}} ===ၵမ်ႉႁိၵ်ႈ=== {{en-adj|er}} # ဢၼ်ၼႅတ်ႈႁဵတ်း၊ လၢတ်ႈ၊ ၵႂႃႇ။ # ဢၼ်ႁဵတ်းဝႆး။ # ဢၼ်ႁိပ်ႈၼႅတ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 9uoirm4zefa3lfex7muzbkl38dd5c3z ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsti 14 76217 293215 2026-09-19T10:14:12Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293215 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ]] e1gv2h2w42ckvt9awovtgbur8voadsn ပိူင်ထၢၼ်ႈ:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsti/2 သဵင် 14 76218 293216 2026-09-19T10:14:22Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ ပိူင်ထၢၼ်ႈ (Category) 293216 wikitext text/x-wiki [[Category:တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsti]] bumpjwl7w4tfkeor8z4haicx8cwl6pa တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪsti 106 76219 293217 2026-09-19T10:14:32Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈၼႃႈလိၵ်ႈ တူၼ်းၸၢပ်ႈလႅပ်ႈ 293217 wikitext text/x-wiki {{rhymes nav|en|eɪ|sti}} ==သဵင်ဢွၵ်ႇ== -āsti, /-eɪsti/, /-eIsti/ ==တူၼ်းၸၢပ်ႈလႅပ်ႈ== ===ၶေႃႈမၢႆတွင်း=== #For more rhymes, add ''y'', ''ey'' or ''ie'' to some words at [[တူၼ်းၸၢပ်ႈလႅပ်ႈ:ဢိင်းၵလဵတ်ႈ/eɪst|-eɪst]]. ===သွင်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> *[[hasty]] *[[pasty]] (''adjective'') *[[tasty]] ===သၢမ်သဵင်=== <!--Note: words in this section must be stressed on the PENULTIMATE syllable.--> ez5it3crd7lrqg6fhh14cmifhnipe9q hastiest 0 76220 293218 2026-09-19T10:14:42Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293218 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈသုင်သုတ်း ၵမ်ႉႁိၵ်ႈ}} # {{en-superlative of|hasty}} pntjxsossjgtldepxvx017mcqf2r1gz hastier 0 76221 293219 2026-09-19T10:15:01Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293219 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ၵမ်ႉႁိၵ်ႈ=== {{head|en|ၶေႃႈတႅၵ်ႈၼိူင်း ၵမ်ႉႁိၵ်ႈ}} # {{en-comparative of|hasty}} 9xhz6sk535y6831qjci0qtgrtutz8vw hastily 0 76222 293220 2026-09-19T10:15:07Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293220 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪstɪli/}} * {{audio|en|en-us-hastily.ogg|a=US}} * {{hyphenation|en|hast|i|ly}} ===ၵမ်ႉသၢင်ႈ=== {{en-adv}} # ႁဵတ်းဝႆးၼႃႇ။ # ႁိပ်ႈႁိပ်ႈၼႅတ်ႈၼႅတ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 34b5fbx1g19a40egsx1zf3re7pxurpl hastiness 0 76223 293221 2026-09-19T10:15:17Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293221 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|~}} # လွင်ႈၼႅတ်ႈႁဵတ်း။ # လွင်ႈႁိပ်ႈၼႅတ်ႈ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} se8zqfv3n172w18mzi47q0w4r1qwq9m hastinesses 0 76224 293222 2026-09-19T10:15:27Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293222 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hastiness}} 65xo00nmkqo7228uu5qe0yo4y3dztm7 hat 0 76225 293223 2026-09-19T10:15:37Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293223 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/hæt/|a=US,AU}} ** {{audio|en|en-us-hat.ogg|a=US}} * {{IPA|en|/hat/|a=Canada,California,RP}} ** {{audio|en|en-uk-hat.ogg|a=RP}} * {{IPA|en|/hæ̞ʔ/|a=Pacific Northwest}} {{attn|en|check that this is correct; see [[Wiktionary:Tea room/2025/November#bag, beg]] for some context}} * {{IPA|en|/hɛt/|a=Northern US,NZ}} * {{rhymes|en|æt|s=1}} ===ႁိၵ်ႈ=== {{en-noun}} # မၢၵ်ႇႁူဝ်။ # ၸၼ်ႉထၢၼ်ႈၵၢၼ်လုမ်း။ # go၊ come hat in hand, ၵူမ်ႈၵူမ်ႈၵွမ်းၵွမ်းၶဝ်ႈၸူး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} cnbypu4on6chp2rv2krd48semqa54qy hated 0 76226 293224 2026-09-19T10:16:18Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293224 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪtɪd/}} * {{audio|en|en-us-hated.ogg|a=US}} * {{rhymes|en|eɪtɪd|s=2}} * {{hyphenation|en|hat|ed}} {{root|en|ine-pro|*keh₂d-}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hate||ed-form}} llzpkqmmbdrc2gvv0zk7o13jw7c3kfl hates 0 76227 293225 2026-09-19T10:16:57Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293225 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/heɪts/}} * {{rhymes|en|eɪts|s=1}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hate}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hate||s-verb-form}} #* {{see citations|en}} gsyzmcwy6tsrz2prv97i5v7m56rx2u2 hatting 0 76228 293226 2026-09-19T10:17:37Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293226 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hat||ing-form}} 7dp1928qamhoqurcbub2uhhn7278iap hating 0 76229 293227 2026-09-19T10:17:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293227 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈheɪtɪŋ/}} * {{rhymes|en|eɪtɪŋ|s=2}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hate||ing-form}} aqhgjbsw06270uryvn13yr9aehx3nis hats 0 76230 293228 2026-09-19T10:18:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293228 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|en-us-hats.ogg|a=US}} * {{IPA|en|/hæts/}} * {{rhymes|en|æts|s=1}} ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hat}} ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hat||s-verb-form}} 0w7d5uld9uyw73dosh6rc9cnaby88j9 hatest 0 76231 293229 2026-09-19T10:19:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293229 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hate||st-form}} rlgjszvrinyvmueapczcayystcblv1n hatted 0 76232 293230 2026-09-19T10:19:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293230 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hat||ed-form}} l85lm75mwss3e1okcg3yhj6wi6vml5s take one's hat off to 0 76233 293231 2026-09-19T10:19:36Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293231 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{audio|en|En-au-take one's hat off to.ogg|a=AU}} ===သၢင်ႈ=== {{en-verb|<,,took,taken>}} # ၼႄလွင်ႈယွင်ႈယေႃး။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 4ybmxdbyxezeis0tw226iyc3sdgh1bm takes one's hat off to 0 76234 293232 2026-09-19T10:19:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293232 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|take one's hat off to||s-verb-form}} 2kgrrhdrzueq0c6kgk2mkwhi9fthzlk taking one's hat off to 0 76235 293233 2026-09-19T10:19:56Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293233 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|take one's hat off to||ing-form}} tn4ry6y75jl9zg04nd0t4107om5bff1 took one's hat off to 0 76236 293234 2026-09-19T10:20:06Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293234 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|take one's hat off to||spast}} asjre8y0g07o35ftoezicotnzq278xo taken one's hat off to 0 76237 293235 2026-09-19T10:20:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293235 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|take one's hat off to||past|part}} fbh9ptfx1h2pn52mn44pnd0fsc87m5y bad hat 0 76238 293236 2026-09-19T10:20:26Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293236 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun}} # ၵူၼ်းႁႆၢႉ။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} 13g4hdfefw86jyjl9299zht0dr4y3wy bad hats 0 76239 293237 2026-09-19T10:20:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293237 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|bad hat}} 00wk7gg87ab5xmigfh6m73jb64ohfei hatter 0 76240 293238 2026-09-19T10:20:46Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293238 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သဵင်ဢွၵ်ႇ=== * {{IPA|en|/ˈhætə(ɹ)/}} * {{audio|en|EN-AU ck1 hatter.ogg|a=AU}} * {{rhymes|en|ætə(ɹ)|s=2}} ===ႁိၵ်ႈ=== {{en-noun}} # ၵူၼ်းၶႆၢမၢၵ်ႇႁူဝ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} irx6moafq3e49q03wl5fprttfk9pw69 hattering 0 76241 293242 2026-09-19T10:21:26Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293242 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hatter||ing-form}} h0ine0p15p2l8l7hi198c670ickzpg4 hattered 0 76242 293243 2026-09-19T10:21:36Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293243 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===သၢင်ႈ=== {{head|en|ပိူင်ၽၢင်သၢင်ႈ}} # {{infl of|en|hatter||ed-form}} 8i4sqfhyehuf1kftn3sjojjlzxcl6b1 hatters 0 76243 293244 2026-09-19T10:21:46Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293244 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hatter}} kv4xvx6zw04mg9r40i4lnfg61gfbki5 hatful 0 76244 293245 2026-09-19T10:21:56Z SIITBot 662 Bot: မႄးမႂ်ႇ/ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈၶေႃႈၵႂၢမ်း 293245 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{en-noun|s|hatsful}} # တဵမ်မၢၵ်ႇႁူဝ်။ ===ၽိုၼ်ဢိင်=== # {{VPS Ref}} j7eladtdhwvyv0ubskck62siugzou1l hatfuls 0 76245 293246 2026-09-19T10:22:07Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293246 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hatful}} 7stfhs4qyx9ow03br3be7ths6gkg63r hatsful 0 76246 293247 2026-09-19T10:22:16Z SIITBot 662 Bot: ၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈပိူင်ၽၢင် (inflected form) 293247 wikitext text/x-wiki ==ဢိင်းၵလဵတ်ႈ== ===ႁိၵ်ႈ=== {{head|en|ပိူင်ၽၢင်ႁိၵ်ႈ}} # {{plural of|en|hatful}} 7stfhs4qyx9ow03br3be7ths6gkg63r