ဝိက်ရှေန်နရဳ mnwwiktionary https://mnw.wiktionary.org/wiki/%E1%80%9D%E1%80%AD%E1%80%80%E1%80%BA%E1%80%9B%E1%80%BE%E1%80%B1%E1%80%94%E1%80%BA%E1%80%94%E1%80%9B%E1%80%B3:%E1%80%99%E1%80%AF%E1%80%80%E1%80%BA%E1%80%9C%E1%80%AD%E1%80%80%E1%80%BA%E1%80%90%E1%80%99%E1%80%BA MediaWiki 1.47.0-wmf.10 case-sensitive မဳဒဳယာ တၟေင် ဓရီုကျာ ညးလွပ် ညးလွပ် ဓရီုကျာ ဝိက်ရှေန်နရဳ ဝိက်ရှေန်နရဳ ဓရီုကျာ ဝှာင် ဝှာင် ဓရီုကျာ မဳဒဳယာဝဳကဳ မဳဒဳယာဝဳကဳ ဓရီုကျာ ထာမ်ပလိက် ထာမ်ပလိက် ဓရီုကျာ ရီု ရီု ဓရီုကျာ ကဏ္ဍ ကဏ္ဍ ဓရီုကျာ အဆက်လက္ကရဴ အဆက်လက္ကရဴ ဓရီုကျာ ကာရန် ကာရန် ဓရီုကျာ အဘိဓာန် အဘိဓာန် ဓရီုကျာ ဗီုပြၚ်သိုၚ်တၟိ ဗီုပြၚ်သိုၚ်တၟိ ဓရီုကျာ TimedText TimedText talk မဝ်ဂျူ မဝ်ဂျူ ဓရီုကျာ Event Event talk မဝ်ဂျူ:languages/data/3/c 828 655 398114 393549 2026-07-10T02:41:42Z 咽頭べさ 33 398114 Scribunto text/plain local m_langdata = require("Module:languages/data") -- Loaded on demand, as it may not be needed (depending on the data). local function u(...) u = require("Module:string utilities").char return u(...) end local c = m_langdata.chars local p = m_langdata.puaChars local s = m_langdata.shared local m = {} m["caa"] = { "ချာတ်အ်တိအ်", 35177, "myn", "Latn", } m["cab"] = { "Garifuna", 35490, "awd-taa", "Latn", ancestors = "crb", } m["cac"] = { "ချုတ်ဂျ်", 35233, "myn", "Latn", } m["cad"] = { "Caddo", 56756, "cdd", "Latn", } m["cae"] = { "Laalaa", 35564, "alv-cng", "Latn", } m["caf"] = { "Southern Carrier", 12953426, "ath-nor", "Latn", } m["cag"] = { "Nivaclé", 3182557, "sai-mtc", "Latn", } m["cah"] = { "Cahuarano", 2933175, "sai-zap", "Latn", } m["caj"] = { "Chané", 56721, "awd", "Latn", } m["cak"] = { "Kaqchikel", 35115, "myn", "Latn", } m["cal"] = { "Carolinian", 28427, "poz-mic", "Latn", } m["cam"] = { "Cèmuhî", 3009690, "poz-cln", "Latn", } m["can"] = { "Chambri", 5069707, "paa-lsp", "Latn", } m["cao"] = { "Chácobo", 2591202, "sai-pan", "Latn", } m["cap"] = { "Chipaya", 35235, "sai-ucp", "Latn", } m["caq"] = { "Car Nicobarese", 35156, "aav-nic", "Latn", } m["car"] = { "ဂါလဳဗဳကာရေတ်", 56611, "sai-gui", "Latn", sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. "`" .. "'%-%s"}, entry_name = { remove_diacritics = c.acute, from = {"â", "ê", "î", "ô", "û", "ŷ"}, to = {"à", "è", "ì", "ò", "ù", "ỳ"} }, } m["cas"] = { "Tsimané", 35950, "qfa-iso", "Latn", } m["cav"] = { "Cavineña", 524102, "sai-tac", "Latn", } m["caw"] = { "Kallawaya", 266417, "qfa-mix", "Latn", } m["cax"] = { "Chiquitano", 1844993, "qfa-iso", "Latn", } m["cay"] = { "Cayuga", 32967, "iro-nor", "Latn", } m["caz"] = { "Canichana", 2936374, "qfa-iso", "Latn", } m["cbb"] = { "Cabiyarí", 3450660, "awd-nwk", "Latn", } m["cbc"] = { "Carapana", 924405, "sai-tuc", "Latn", } m["cbd"] = { "ကာရဳဂျိုနာ", 3446655, "sai-tar", "Latn", } m["cbg"] = { "Chimila", 2963680, "cba", "Latn", } m["cbi"] = { "ချာချဳ", 2591329, "sai-bar", "Latn", } m["cbj"] = { "Ede Cabe", 33112829, "alv-ede", "Latn", } m["cbk"] = { "ချာဗာကာနဝ်", 33281, "crp", "Latn", ancestors = "es", entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer}}, sort_key = { Latn = { from = {"ch", "ll", "ñ", "r"}, to = {"c" .. p[1], "l" .. p[1], "n" .. p[1], "r" .. p[1]} }, }, standardChars = { Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnÑñOoPpQqRrSsTtUuVvWwXxYyZz", c.punc }, } m["cbl"] = { "Bualkhaw Chin", 9229830, "tbq-kuk", "Latn", } m["cbn"] = { "ညးဂူ", 116849, "mkh-mnc", "Thai", ancestors = "omx", sort_key = "Thai-sortkey", } m["cbo"] = { "Izora", 3915454, "nic-jer", "Latn", } m["cbq"] = { "Tsucuba", 62603062, "nic-knj", "Latn", } m["cbr"] = { "Cashibo-Cacataibo", 5359560, "sai-pan", "Latn", } m["cbs"] = { "Cashinahua", 2591230, "sai-pan", "Latn", } m["cbt"] = { "Chayahuita", 1526525, "sai-cah", "Latn", } m["cbu"] = { "Candoshi-Shapra", 642843, "qfa-iso", "Latn", } m["cbv"] = { "Cacua", 3192052, "sai-nad", "Latn", ancestors = "mbr", } m["cbw"] = { "Kinabalian", 6410324, "phi", "Latn", } m["cby"] = { "Carabayo", 3441762, "sai-tyu", "Latn", } m["cca"] = { "Cauca", 5054242, "sai-chc", "Latn", } m["ccc"] = { "ချာမိခူရဝ်", 2155119, "awd", "Latn", } m["ccd"] = { "Cafundó", 3331506, "roa-ibe", "Latn", ancestors = "pt", } m["cce"] = { "Chopi", 3437616, "bnt-bso", "Latn", } m["ccg"] = { "Chamba Daka", 33120805, "nic-dak", "Latn", } m["cch"] = { "Atsam", 34794, "nic-kne", "Latn", } m["ccj"] = { "Kasanga", 35542, "alv-nyn", "Latn", } m["ccl"] = { "Cutchi-Swahili", 5196729, "crp", "Latn", ancestors = "sw", } m["ccm"] = { "မလေဝ် မလပ်ကာန် ခရဳအဝ်လ်", 12636092, "crp", "Latn", ancestors = "ms", } m["cco"] = { "Comaltepec Chinantec", 2963735, "omq-chi", "Latn", } m["ccp"] = { "ချေန်ကမာ", 32952, "inc-bas", "Cakm, Beng, Latn", ancestors = "inc-obn", translit = { Cakm = "Cakm-translit", --Beng = "Beng-translit", }, } m["ccr"] = { "Cacaopera", 3438338, "nai-min", "Latn", } m["cda"] = { "Choni", 2964447, "sit-tib", } m["cde"] = { "Chenchu", 32981, "dra-tel", "Telu", } m["cdf"] = { "Chiru", 5102016, "tbq-kuk", "Latn, Beng", } m["cdh"] = { "ဆာန်ဗဳယျာလဳ", 12953424, "him", "Deva, Takr", translit = {Deva = "hi-translit"}, } m["cdi"] = { "Chodri", 5103788, "inc-bhi", "Gujr", } m["cdj"] = { "ချူရာဟဳ", 12629039, "him", "Deva, Takr", translit = {Deva = "hi-translit"}, } m["cdm"] = { "ချက်ခ်ဖံၚ်", 5091700, "sit-gma", "Deva", } m["cdn"] = { "Chaudangsi", 5088056, "sit-alm", } m["cdo"] = { "မေန်လ္ပာ်ဗၟံက်", 36455, "zhx-com", "Hants", generate_forms = "zh-generateforms", translit = "zh-translit", sort_key = "Hani-sortkey", } m["cdr"] = { "Cinda-Regi-Tiyal", 35596, "nic-kmk", "Latn", } m["cds"] = { "Chadian Sign Language", 10322099, "sgn", "Latn", -- when documented } m["cdy"] = { "Chadong", 926742, "qfa-kms", } m["cdz"] = { "Koda", 6425038, "mun", "Beng", } m["cea"] = { "Lower Chehalis", 6693377, "sal", "Latn", } m["ceb"] = { "သဲၜေါအ်အာနဝ်", 33239, "phi", "Latn, Tglg", translit = { Tglg = "ceb-translit" }, override_translit = true, entry_name = { Latn = { remove_diacritics = c.grave .. c.acute .. c.circ } }, standardChars = { Latn = "AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy", c.punc }, sort_key = {Latn = "tl-sortkey"}, } m["ceg"] = { "Chamacoco", 3436637, "sai-zam", "Latn", } m["cen"] = { "Cen", 12628777, "nic-plc", "Latn", ancestors = "izr", } m["cet"] = { "Centúúm", 33608, "qfa-iso", "Latn", } m["cfa"] = { "Dijim-Bwilim", 3438350, "alv-wjk", "Latn", } m["cfd"] = { "Cara", 35048, "nic-beo", "Latn", } m["cfg"] = { "Como Karim", 35304, "nic-jkn", "Latn", } m["cfm"] = { "Falam Chin", 56815, "tbq-kuk", "Beng, Latn", } m["cga"] = { "Changriwa", 5072105, "paa-yua", "Latn", } m["cgc"] = { "Kagayanen", 6346422, "mno", "Latn", } m["cgg"] = { "Rukiga", 3270727, "bnt-nyg", "Latn", } m["cgk"] = { "Chocangaca", 56604, "sit-tib", "Tibt", ancestors = "xct", translit = "Tibt-translit", override_translit = true, display_text = s["Tibt-displaytext"], entry_name = s["Tibt-entryname"], sort_key = "Tibt-sortkey", } m["chb"] = { "ချေတ်ချာ", 2356431, "cba", } m["chc"] = { "Catawba", 5051602, "nai-cat", "Latn", } m["chd"] = { "Highland Oaxaca Chontal", 2964457, "nai-tqn", "Latn", } m["chf"] = { "Tabasco Chontal", 35175, "myn", "Latn", } m["chg"] = { "ချာကထိုၚ်", 36831, "trk-kar", "Arab", ancestors = "zkh", entry_name = { remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef, from = {u(0x0671)}, to = {u(0x0627)} }, } m["chh"] = { "Chinook", 6693380, "nai-ckn", "Latn", } m["chj"] = { "Ojitlán Chinantec", 5100110, "omq-chi", "Latn", } m["chk"] = { "ချေူခဳ", 33161, "poz-mic", "Latn", } m["chl"] = { "ခဝ်ဝဳယျာ", 56438, "azc-cup", "Latn", entry_name = {remove_diacritics = c.acute .. c.macron}, } -- chm "Mari" is not recognized as a language, but it is a family code m["chn"] = { "ဃှသ်နေဝ် ဂျာတ်ကေါမ်", 35173, "crp", "Latn, Dupl", ancestors = "chh, nuk", } m["cho"] = { "ချံက်ထံက်", 32979, "nai-mus", "Latn", sort_key = {remove_diacritics = c.macronbelow .. "-"}, entry_name = {remove_diacritics = c.acute .. c.dotbelow}, } m["chp"] = { "ချေပ်ပါယ်ဝဳယွာန်", 27692, "ath-nor", "Latn, Cans", } m["chq"] = { "Quiotepec Chinantec", 5758709, "omq-chi", "Latn", } m["chr"] = { "ချေဝ်ရဝ်ကဳ", 33388, "iro", "Cher", translit = "Cher-translit", } m["cht"] = { "Cholón", 2591243, nil, "Latn", } m["chw"] = { "Chuabo", 5118412, "bnt-mak", "Latn", } m["chx"] = { "Chantyal", 4926344, "sit-tam", "Deva", } m["chy"] = { "သျှေန်အာန်", 33265, "alg", "Latn", sort_key = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.dotabove .. "-"}, standardChars = "AaÁáÀàĀāȦȧEeÉéÈèĒēĖėHhKkMmNnOoÓóÒòŌōȮȯPpSsŠšTtVvXx" .. c.punc, --umlaut and circumflex not allowed } m["chz"] = { "Ozumacín Chinantec", 5100111, "omq-chi", "Latn", } m["cia"] = { "Cia-Cia", 35284, "poz-mun", "Hang, Latn, Arab", } m["cib"] = { "Ci Gbe", 12952445, "alv-gbe", "Latn", } m["cic"] = { "ချဳကာသော", 33192, "nai-mus", "Latn", } m["cid"] = { "Chimariko", 1294251, "qfa-iso", "Latn", } m["cie"] = { "Cineni", 56243, "cdc-cbm", "Latn", } m["cih"] = { "Chinali", 11855245, "inc", "Deva", ancestors = "sa", } m["cik"] = { "Chitkuli Kinnauri", 15615982, "sit-kin", } m["cim"] = { "သေန်ဗရေန်", 37053, "gmw-hgm", "Latn", ancestors = "bar", sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove .. c.caron}, } m["cin"] = { "Cinta Larga", 5121095, "tup", "Latn", } m["cip"] = { "Chiapanec", 3364475, "omq", "Latn", } m["cir"] = { "တေန်ရေန်", 7862281, "poz-cln", "Latn", } m["ciy"] = { "Chaima", 12628867, "sai-ven", "Latn", } m["cja"] = { "ကျေန်လ္ပာ်ဖာပလိုတ်", 12645578, "cmc", "Latn, Arab, Khmr", -- Western Cham script is not yet available. Also, Arabic script is missing some glyphs. } m["cje"] = { "Chru", 2967321, "cmc", "Latn", } m["cjh"] = { "Upper Chehalis", 2962074, "sal", "Latn", } m["cji"] = { "ချာမာလာန်", 56567, "cau-and", "Cyrl", translit = "cau-nec-translit", override_translit = true, display_text = {Cyrl = s["cau-Cyrl-displaytext"]}, entry_name = {Cyrl = s["cau-Cyrl-entryname"]}, } m["cjk"] = { "Chokwe", 2422065, "bnt-clu", "Latn", } m["cjm"] = { "ကျေန်လ္ပာ်ဖာဗၟံက်", 2948019, "cmc", "Latn, Cham", } m["cjn"] = { "Chenapian", 5091044, "paa-spk", "Latn", } m["cjo"] = { "Ashéninka Pajonal", 3450481, "awd", "Latn", } m["cjp"] = { "Cabécar", 27878, "cba", "Latn", } m["cjs"] = { "သျှိ", 34139, "trk-ssb", "Cyrl", } m["cjv"] = { "Chuave", 5115226, "ngf", "Latn", } m["cjy"] = { "စေံ", 56479, "zhx", "Hants", ancestors = "ltc", generate_forms = "zh-generateforms", translit = "zh-translit", sort_key = "Hani-sortkey", } m["ckb"] = { "ခဝ်ဒေတ် ဗဟဵု", 36811, "ku", "ku-Arab", translit = "ckb-translit", entry_name = {remove_diacritics = c.kasra .. c.sukun}, } m["ckh"] = { "Chak", 12628870, "sit-luu", "Latn", ancestors = "kdv", } m["ckl"] = { "Cibak", 56279, "cdc-cbm", "Latn", } m["ckn"] = { "Kaang Chin", 6343432, "tbq-kuk", "Latn", } m["cko"] = { "Anufo", 34845, "alv-ctn", "Latn", } m["ckq"] = { "Kajakse", 3440422, "cdc-est", "Latn", } m["ckr"] = { "Kairak", 3503002, "paa-bng", "Latn", } m["cks"] = { "Tayo", 1133089, "crp", "Latn", ancestors = "fr", sort_key = s["roa-oil-sortkey"], } m["ckt"] = { "Chukchi", 33170, "qfa-ckn", "Cyrl", entry_name = { from = {"['’]"}, to = {"ʼ"} }, sort_key = { from = {"ё", "ӄ", "ԓ", "ӈ"}, to = {"е" .. p[1], "к" .. p[1], "л" .. p[1], "н" .. p[1]} }, } m["cku"] = { "Koasati", 35162, "nai-mus", "Latn", } m["ckv"] = { "ခါဝါလာန်", 716627, "map", "Latn", } m["ckx"] = { "Caka", 5018037, "nic-tvc", "Latn", } m["cky"] = { "Cakfem-Mushere", 3441199, "cdc-wst", "Latn", } m["ckz"] = { "Kaqchikel-K'iche' Mixed Language", 5054550, "qfa-mix", "Latn", ancestors = "cak, quc" } m["cla"] = { "Ron", 3440432, "cdc-wst", "Latn", } m["clc"] = { "Chilcotin", 28535, "ath-nor", "Latn", } m["cld"] = { "Chaldean Neo-Aramaic", 33236, "sem-are", "Syrc", entry_name = "Syrc-entryname", } m["cle"] = { "Lealao Chinantec", 6509365, "omq-chi", "Latn", } m["clh"] = { "Chilisso", 3250629, "inc-koh", } m["cli"] = { "Chakali", 35206, "nic-gnw", "Latn", } m["clj"] = { "Laitu Chin", 6474196, "tbq-kuk", } m["clk"] = { "Idu", 56412, "sit-gsi", "Tibt, Deva", translit = {Tibt = "Tibt-translit"}, override_translit = true, display_text = {Tibt = s["Tibt-displaytext"]}, entry_name = {Tibt = s["Tibt-entryname"]}, sort_key = {Tibt = "Tibt-sortkey"}, } m["cll"] = { "Chala", 35190, "nic-gne", "Latn", } m["clm"] = { "Klallam", 33404, "sal", "Latn", } m["clo"] = { "Lowland Oaxaca Chontal", 2964450, "nai-tqn", "Latn", } m["clt"] = { "Lautu Chin", 6502107, "tbq-kuk", } m["clu"] = { "Caluyanun", 32964, "phi", "Latn", } m["clw"] = { "Chulym", 33125, "trk-ssb", "Latn, Cyrl", } m["cly"] = { "Eastern Highland Chatino", 12642078, "omq-cha", "Latn", } m["cma"] = { "Mạ", 12953680, "mkh-ban", "Latn", } m["cme"] = { "Cerma", 35074, "nic-gur", "Latn", } m["cmg"] = { "မန်ဂဝ်လဳယျာ ဝၚ်ဂန္ထ", 5128303, "xgn-cen", "Mong, Soyo, Zanb", translit = {Mong = "Mong-translit"}, display_text = {Mong = s["Mong-displaytext"]}, entry_name = {Mong = s["Mong-entryname"]}, } m["cmi"] = { "Emberá-Chamí", 3052042, "sai-chc", "Latn", } m["cml"] = { "Campalagian", 5027893, "poz-ssw", "Latn", } m["cmm"] = { "Michigamea", 12636809, "sio-msv", "Latn", } m["cmn"] = { "မာန်ဒါရေဝ်", 9192, "zhx-man", "Hants, Latn, Bopo", wikimedia_codes = "zh", generate_forms = "zh-generateforms", translit = { Hani = "zh-translit", Bopo = "zh-translit", }, sort_key = { Hani = "Hani-sortkey", Latn = { from = { -- Sort terms with tone numbers immediately after equivalent terms with diacritics. "[aeiouv][" .. c.circ .. c.diaer .. "]?[nr]?g?[0-5]", -- Add temporary breaks between syllables. "([aeiouvmn][" .. c.circ .. c.diaer .. "]?[" .. c.macron .. c.acute .. c.caron .. c.grave .. "]?n?ŋ?g?r?)([bpmfdtnlgkhjqxzcsywrv']h?[aeiouvmn ])", p[1] .. "([ngr])$", p[1] .. "([ngr][%s%-'" .. p[1] .. "])", -- Substitute diacritics for syllable-final tone numbers, and add tone 0 where necessary. c.macron, c.acute, c.caron, c.grave, "([1-4])([^%s%p" .. p[1] .. "]+)", "([^0-5])%f[%z%s%p" .. p[1] .. "]", -- Substitute "v" shorthand for "ü" for a temporary placeholder, so that the (very rare) "v" initial is not affected by the later shorthand substitutions. "([^ " .. p[1] .. "])v", -- Remove temporary breaks. p[1], -- Substitute shorthands for full forms, and sort them immediately after equivalent terms. "%S*[csz]" .. c.circ .. "%S*", "%S*[ŋ" .. p[2] .. "]%S*", "ĉ", "ŝ", "ŋ", p[2], "ẑ", -- "ê" comes after "e", "ü" comes after "u" and apostrophes are removed (as their function is replaced by tone numbers). "[" .. c.circ .. c.diaer .. "]", "'", -- Sort numbered tone 5 after tone 0. "5!" }, to = { "%0!", "%1" .. p[1] .. "%2", "%1", "%1", "1", "2", "3", "4", "%2%1", "%10", "%1" .. p[2], "", "%0\"", "%0\"", "ch", "sh", "ng", "ü", "zh", p[1], "", "0!!" } }, }, } m["cmo"] = { "Central Mnong", 33369881, "mkh-ban", } m["cmr"] = { "Mro Chin", 16889978, "tbq-kuk", } m["cms"] = { "Messapic", 36383, "ine", "Latn, Ital, Grek", } m["cmt"] = { "Camtho", 10441336, "crp", "Latn", ancestors = "fly, zu" } m["cna"] = { "Changthang", 12952322, "sit-lab", "Tibt", translit = "Tibt-translit", override_translit = true, display_text = s["Tibt-displaytext"], entry_name = s["Tibt-entryname"], sort_key = "Tibt-sortkey", } m["cnb"] = { "Chinbon Chin", 12952327, "tbq-kuk", } m["cnc"] = { "Cốông", 5202780, "tbq-bis", "Latn", } m["cng"] = { "Northern Qiang", 56559, "sit-qia", } m["cnh"] = { "ချေၚ်", 3250286, "tbq-kuk", } m["cni"] = { "Asháninka", 3437230, "awd", "Latn", } m["cnk"] = { "ခူမဳချေၚ်", 56308, "tbq-kuk", } m["cnl"] = { "Lalana Chinantec", 12953437, "omq-chi", "Latn", } m["cno"] = { "Con", 3440883, "mkh-pal", } m["cnp"] = { "ဖေန်ဝှါ လ္ပာ်သၟဝ်ကျာ", 84302463, "zhx-pin", "Hants", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["cns"] = { "အာက်သမေတ် မဇ္ဇျိမ", 11732048, "ngf", "Latn", } m["cnt"] = { "Tepetotutla Chinantec", 5100113, "omq-chi", "Latn", } m["cnu"] = { "ချဲနဝ်အာ", 33276, "ber", } m["cnw"] = { "Ngawn Chin", 6583675, "tbq-kuk", } m["cnx"] = { "ခမ်နေတ် အဒေါဝ်", 12642603, "cel-brs", "Latn", ancestors = "oco", } m["coa"] = { "Cocos Islands Malay", 3441699, "crp", "Latn", ancestors = "ms", } m["cob"] = { "Chicomuceltec", 3307204, "myn", "Latn", } m["coc"] = { "Cocopa", 33044, "nai-yuc", "Latn", } m["cod"] = { "Cocama", 33317, "tup", "Latn", } m["coe"] = { "Koreguaje", 3198924, "sai-tuc", "Latn", } m["cof"] = { "Tsafiki", 2567055, "sai-bar", "Latn", } m["cog"] = { "ချံန်", 3914630, "mkh-pea", "Thai, Khmr", sort_key = {Thai = "Thai-sortkey"}, } m["coh"] = { "Chichonyi-Chidzihana-Chikauma", 12629011, "bnt-mij", "Latn", } m["coj"] = { "Cochimi", 3915551, "nai-yuc", "Latn", } m["cok"] = { "Santa Teresa Cora", 12641754, "azc", "Latn", } m["col"] = { "Columbia-Wenatchi", 3324744, "sal", "Latn", } m["com"] = { "Comanche", 32972, "azc-num", "Latn", } m["con"] = { "Cofán", 2669254, "qfa-iso", "Latn", } m["coo"] = { "Comox", 13583746, "sal", "Latn", } m["cop"] = { "ခ္ဍက်ပတေတ်", 36155, "egx", "Copt", translit = "Copt-translit", ancestors = "egx-dem", entry_name = {remove_diacritics = c.grave .. c.macron .. c.overline .. c.diaer .. "ˋ"}, sort_key = "cop-sortkey", } m["coq"] = { "Coquille", 12953452, "ath-pco", "Latn", } m["cot"] = { "Caquinte", 3915557, "awd", "Latn", } m["cou"] = { "Wamey", 36935, "alv-ten", "Latn", } m["cov"] = { "Cao Miao", 2936935, "qfa-tak", } m["cow"] = { "Cowlitz", 3001877, "sal", "Latn", } m["cox"] = { "Nanti", 15342275, "awd", "Latn", } m["coy"] = { "Coyaima", 56450, "sai-car", "Latn", } m["coz"] = { "Chochotec", 2964262, "omq-pop", "Latn", } m["cpa"] = { "Palantla Chinantec", 5100112, "omq-chi", "Latn", } m["cpb"] = { "Ucayali-Yurúa Ashéninka", 3501858, "awd", "Latn", } m["cpc"] = { "Ajyíninka Apurucayali", 3327405, "awd", "Latn", } m["cpg"] = { "ဂရေတ် ခေါတ်ပဒဝ်ဃှေန်", 853414, "grk", "Grek, fa-Arab", ancestors = "gkm", translit = {Grek = "el-translit"}, entry_name = {Grek = {remove_diacritics = c.caron .. c.diaerbelow .. c.brevebelow}}, sort_key = {Grek = s["Grek-sortkey"]}, } m["cpi"] = { "ဖေါန်ဂျေန်ကြုက်ဗီုပြၚ်အၚ်္ဂလိက်", 3435078, "crp", "Latn, Hant", ancestors = "en", sort_key = {Hant = "Hani-sortkey"}, } m["cpn"] = { "Cherepon", 35181, "alv-gng", "Latn", } m["cpo"] = { "Kpee", 6435722, "dmn-jje", } m["cps"] = { "Capiznon", 2937525, "phi", "Latn", } m["cpu"] = { "Pichis Ashéninka", 7190661, "awd", "Latn", } m["cpx"] = { "မေန် ဖေတ်သဳယာန်", 56583, "zhx-com", "Hants", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["cpy"] = { "South Ucayali Ashéninka", 3501868, "awd", "Latn", } m["cqd"] = { "Chuanqiandian Cluster Miao", 121627627, "hmn", "Latn, Plrd", } m["cra"] = { "Chara", 5073694, "omv", "Latn", } m["crb"] = { "Kalinago", 3450735, "awd-taa", "Latn", } m["crc"] = { "Lonwolwol", 3259216, "poz-vnc", "Latn", } m["crd"] = { "Coeur d'Alene", 32915, "sal", "Latn", } m["crf"] = { "Caramanta", 3504195, "sai-chc", "Latn", } m["crg"] = { "Michif", 13315, "qfa-mix", "Latn", ancestors = "cr, fr", } m["crh"] = { "ခရိုၚ်မာၚ်တတာ", 33357, "trk-kcu", "Latn, Cyrl", dotted_dotless_i = true, sort_key = { Latn = { from = { "[ıi]" .. c.breve, -- Convert ĭ into PUA so that the decomposed form does not get caught by the next step. Also cover decomposed forms with ı and i, as decomposed Ĭ is converted to ı + ̆ due to the dotted dotless I logic). "i", -- Ensure "i" comes after "ı". "â", "ç", "ğ", "ı", p[3], "ñ", "ö", "ş", "ü" }, to = { p[3], "i" .. p[1], "a", "c" .. p[1], "g" .. p[1], "i", "i" .. p[2], "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1], } }, Cyrl = { from = {"гъ", "ё", "къ", "нъ", "дж"}, to = {"г" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "ч" .. p[1]} }, }, } m["cri"] = { "Sãotomense", 36536, "crp", "Latn", ancestors = "pt", } m["crj"] = { "ခရေဝ် လ္ပာ်ဗၟံက်ဒိုဟ်သမၠုၚ်ကျာ", 12953464, "alg", "Latn, Cans", ancestors = "cr", translit = {Cans = "cr-translit"}, } m["crk"] = { "ခရေဝ် တိဗ္လး", 56699, "alg", "Latn, Cans", ancestors = "cr", } m["crl"] = { "ခရေဝ် လ္ပာ်ဗၟံက်သၟဝ်ကျာ", 12642195, "alg", "Latn, Cans", ancestors = "cr", translit = {Cans = "cr-translit"}, } m["crm"] = { "ခရေဝ် မေူာသ်", 3446671, "alg", "Latn, Cans", ancestors = "cr", } m["crn"] = { "ခါဝ်ရာ", 12953454, "azc", "Latn", } m["cro"] = { "ခရဝ်", 1207611, "sio-mor", "Latn", } m["crq"] = { "Iyo'wujwa Chorote", 3540927, "sai-mtc", "Latn", } m["crr"] = { "Carolina Algonquian", 16113723, "alg-eas", "Latn", } m["crs"] = { "သေသျှလွာ ခရဳအဝ်လ်", 34015, "crp", "Latn", ancestors = "fr", sort_key = s["roa-oil-sortkey"], } m["crt"] = { "Iyojwa'ja Chorote", 3504118, "sai-mtc", "Latn", } m["crv"] = { "Chaura", 2605680, "aav-nic", } m["crw"] = { "Chrau", 5105629, "mkh-ban", "Latn", } m["crx"] = { "Carrier", 12953431, "ath-nor", "Latn, Cans", } m["cry"] = { "Cori", 35204, "nic-plc", "Latn", } m["crz"] = { "Cruzeño", 2967636, "nai-chu", "Latn", } m["csa"] = { "Chiltepec Chinantec", 12953435, "omq-chi", "Latn", } m["csb"] = { "ကသှုဗဳယာန်", 33690, "zlw-pom", "Latn", } m["csc"] = { "Catalan Sign Language", 35768, "sgn", "Latn", -- when documented } m["csd"] = { "Chiangmai Sign Language", 5095211, "sgn", } m["cse"] = { "Czech Sign Language", 5201809, "sgn", "Latn", -- when documented } m["csf"] = { "Cuban Sign Language", 5192046, "sgn", "Latn", -- when documented } m["csg"] = { "Chilean Sign Language", 3322112, "sgn", "Latn", -- when documented } m["csh"] = { "Asho Chin", 12627282, "tbq-kuk", } m["csi"] = { "Coast Miwok", 2981109, "nai-you", "Latn", } m["csj"] = { "Songlai Chin", 7561280, "tbq-kuk", } m["csk"] = { "Jola-Kasa", 3446622, "alv-jol", "Latn", } m["csl"] = { "Chinese Sign Language", 1094190, "sgn", } m["csm"] = { "Central Sierra Miwok", 2944443, "nai-you", "Latn", } m["csn"] = { "Colombian Sign Language", 2748229, "sgn", "Latn", -- when documented } m["cso"] = { "Sochiapam Chinantec", 7550388, "omq-chi", "Latn", } m["csp"] = { "ဖါတ်သဳယာန် မေန်", 84302019, "zhx-pin", "Hants", generate_forms = "zh-generateforms", translit = "zh-translit", sort_key = "Hani-sortkey", } m["csq"] = { "Croatian Sign Language", 3507506, "sgn", } m["csr"] = { "Costa Rican Sign Language", 5174901, "sgn", "Latn", -- when documented } m["css"] = { "Southern Ohlone", 25559664, "nai-you", "Latn", } m["cst"] = { "အဝ်ဠဝ်နဳ လ္ပာ်သၟဝ်ကျာ", 25559666, "nai-you", "Latn", } m["csv"] = { "Sumtu Chin", 7638087, "tbq-kuk", } m["csw"] = { "ခရေဝ် သဝါမ်ပဳ", 56696, "alg", "Latn, Cans", ancestors = "cr", } m["csy"] = { "Siyin Chin", 7533375, "tbq-kuk", } m["csz"] = { "Coos", 3126783, "nai-coo", "Latn", } m["cta"] = { "ထာထံက်ထာဲဗဝ် ချေန်တဳနဝ်", 7687853, "omq-cha", "Latn", } m["ctc"] = { "Chetco-Tolowa", 12628946, "ath-pco", "Latn", } m["ctd"] = { "ချေၚ်တဳတိန်", 56357, "tbq-kuk", "Latn, Pauc", } m["cte"] = { "Tepinapa Chinantec", 12953443, "omq-chi", "Latn", } m["ctg"] = { "ချေတ်တေတ်ဂိုဝ်နဳယာန်", 33173, "inc-bas", "Beng", ancestors = "inc-obn", } m["cth"] = { "Thaiphum Chin", 16912048, "tbq-kuk", } m["ctl"] = { "Tlacoatzintepec Chinantec", 12643657, "omq-chi", "Latn", } m["ctm"] = { "Chitimacha", 1294227, "qfa-iso", "Latn", } m["ctn"] = { "Chhintange", 32994, "sit-kie", "Deva", } m["cto"] = { "Emberá-Catío", 3052039, "sai-chc", "Latn", } m["ctp"] = { "Western Highland Chatino", 32861734, "omq-cha", "Latn", entry_name = {remove_diacritics = "¹²³⁴⁵"}, sort_key = {remove_diacritics = c.acute}, } m["cts"] = { "Northern Catanduanes Bicolano", 7130477, "phi", "Latn", } m["ctt"] = { "Wayanad Chetti", 7975850, "dra-mal", "Taml", } m["ctu"] = { "Chol", 35179, "myn", "Latn", } m["ctz"] = { "ဇာကာတေပေတ် ချေတ်တဳနဝ်", 8063754, "omq-cha", "Latn", } m["cua"] = { "Cua", 3441115, "mkh-ban", "Latn", } m["cub"] = { "Cubeo", 3006705, "sai-tuc", "Latn", } m["cuc"] = { "Usila Chinantec", 7901979, "omq-chi", "Latn", } m["cug"] = { "Cung", 35194, "nic-bbe", "Latn", } m["cuh"] = { "Chuka", 12952344, "bnt-kka", "Latn", } m["cui"] = { "Cuiba", 2980421, "sai-guh", "Latn", } m["cuj"] = { "Mashco Piro", 3446596, "awd", "Latn", } m["cuk"] = { "Kuna", 12953659, "cba", "Latn", } m["cul"] = { "Culina", 2475442, "auf", "Latn", } m["cuo"] = { "Cumanagoto", 5193784, "sai-cpc", "Latn", } m["cup"] = { "ခူပေညဝ်", 143130, "azc-cup", "Latn", } m["cuq"] = { "Cun", 2475478, "qfa-lic", "Latn", } m["cur"] = { "Chhulung", 5116126, "sit-kie", "Deva", } m["cut"] = { "Teutila Cuicatec", 12953453, "omq-cui", "Latn", } m["cuu"] = { "Tai Ya", 3441122, "qfa-tak", "Latn", } m["cuv"] = { "Cuvok", 3515056, "cdc-cbm", "Latn", } m["cuw"] = { "Chukwa", 12629033, "sit-kic", } m["cux"] = { "Tepeuxila Cuicatec", 20527242, "omq-cui", "Latn", } m["cuy"] = { "Cuitlatec", 2030998, "qfa-iso", "Latn", } m["cvg"] = { "Chug", 47683644, "sit-khb", } m["cvn"] = { "Valle Nacional Chinantec", 12953442, "omq-chi", "Latn", } m["cwa"] = { "Kabwa", 6344537, "bnt-lok", "Latn", } m["cwb"] = { "Maindo", 11002891, "bnt-mak", "Latn", ancestors = "chw", } m["cwd"] = { "Woods Cree", 56305, "alg", "Latn, Cans", ancestors = "cr", } m["cwe"] = { "Kwere", 779632, "bnt-ruv", "Latn", } m["cwg"] = { "Chewong", 646718, "mkh-asl", "Latn", } m["cwt"] = { "Kuwaataay", 35699, "alv-jol", "Latn", } m["cya"] = { "Nopala Chatino", 15616302, "omq-cha", "Latn", } m["cyb"] = { "Cayubaba", 3183382, "qfa-iso", "Latn", } m["cyo"] = { "ခူယူနန်", 33153, "phi", "Latn", } m["czh"] = { "ဟုဲဂျုဝ်", 56546, "zhx", "Hants", -- ? ancestors = "ltc", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["czk"] = { "Knaanic", 56384, "zlw", "Hebr", ancestors = "zlw-ocs", entry_name = {Hebr = {remove_diacritics = u(0x0591) .. "-" .. u(0x05BD) .. u(0x05BF) .. "-" .. u(0x05C5) .. u(0x05C7) .. c.CGJ}}, } m["czn"] = { "Zenzontepec Chatino", 603106, "omq-cha", "Latn", } m["czo"] = { "မေန် ဗဟဵု", 56435, "zhx-inm", "Hants", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["czt"] = { "Zotung Chin", 8074599, "tbq-kuk", "Latn", } return require("Module:languages").finalizeData(m, "language") gsdagknro7qldlun5905f37169yz9u3 မဝ်ဂျူ:gem-decl-noun 828 21250 398075 30534 2026-07-09T16:21:09Z 咽頭べさ 33 398075 Scribunto text/plain local export = {} local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "ဗီုပြၚ်သိုၚ်တၟိ" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then -- table.insert(data.categories, "Proto-Germanic irregular nouns") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"ပရေၚ်ပ္တိုန်စရၚ်ယၟု", "ပရေၚ်ဂယိုၚ်လမျီု", "ကမ္မကာရက", "ဗဳဇဂကူ", "ပြကမ္မကာရက", "တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက်"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-top', args = { title = 'မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } } local table_bottom = mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' } local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | singular ]=] .. (no_plural and "\n" or [=[ ! class="outer" | plural ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export 930xgjubw55592gmrd5s0n8uk0wd3fi 398077 398075 2026-07-09T23:55:00Z 咽頭べさ 33 398077 Scribunto text/plain local export = {} local m_pron = require("Module:gem-pronunc") local m_links = require("Module:links") local m_utils = require("Module:utilities") local lang = require("Module:languages").getByCode("gem-pro") local i_muts = m_pron.i_mutations local decl_data = require("Module:gem-decl-noun/data") local decl_data_irreg = require("Module:gem-decl-noun/data/irreg") local endings = { ["az"] = "a-m", ["ą"] = "a-n", ["iz"] = "i-mf", ["i"] = "i-n", ["ī"] = "ijo-f", ["į̄"] = "in-f", ["ǭ"] = "n-f", ["ō"] = "o-f", ["ēr"] = "r-mf", ["uz"] = "u-mf", ["u"] = "u-n" } local endings_reverse = { ["a-m"] = "az", ["a-n"] = "ą", ["cons-n"] = "", ["i-mf"] = "iz", ["i-m"] = "iz", ["i-f"] = "iz", ["i-n"] = "i", ["ijo-f"] = "ī", ["in-f"] = "į̄", ["n-m"] = "ô", ["n-n"] = "ô", ["n-f"] = "ǭ", ["o-f"] = "ō", ["r-mf"] = "ēr", ["r-m"] = "ēr", ["r-f"] = "ēr", ["u-mf"] = "uz", ["u-m"] = "uz", ["u-f"] = "uz", ["u-n"] = "u", ["z-n"] = "az", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "z" and mw.ustring.sub(word, -2) == "az" then -- z-stem return "z-n", {mw.ustring.sub(word, 1, -3)} elseif mw.ustring.find(word, "ô$") then -- an-stem if gender then return "n-" .. gender, {mw.ustring.sub(word, 1, -2)} else error("Gender must be specified for an-stems.") end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. Now check for s-stems local stem = "" if mw.ustring.sub(word, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(word, -2, -2), "[fhkptþ]") then stem = word else stem = mw.ustring.sub(word, 1, -2) end return (gender and "cons-" .. gender or "cons-mf"), {stem} end end local function add_asterisks(forms, data) for _, form in ipairs(forms) do for i, subform in ipairs(data.forms[form]) do data.forms[form][i] = "*" .. subform end end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args if mw.title.getCurrentTitle().nsText ~= "ဗီုပြၚ်သိုၚ်တၟိ" then return end local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then -- table.insert(data.categories, "Proto-Germanic irregular nouns") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if mw.ustring.find(subform, "[iīįǐj]") or mw.ustring.find(subform, "e[mn]") then subform = i_muts(subform) end if subform ~= "—" then subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"ပရေၚ်ပ္တိုန်စရၚ်ယၟု", "ပရေၚ်ဂယိုၚ်လမျီု", "ကမ္မကာရက", "ဗဳဇဂကူ", "ပြကမ္မကာရက", "တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက်"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- \n! | " .. case .. "\n") table.insert(ret, "| " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local table_top = mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-top', args = { title = 'မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု <span lang="gem-pro">{{{title}}}</span> ({{{decl_type}}})', palette = 'orange', tall = 'yes', } } local table_bottom = mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' } local wikicode = table_top .. [=[ ! class="outer" | ! class="outer" | ကိုန်ဨကဝုစ် ]=] .. (no_plural and "\n" or [=[ ! class="outer" | ကိုန်ဗဟုဝစ် ]=]) .. make_cases(data) .. [=[ ]=] .. table_bottom return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export fqwfl6oybgqxpxr0by72po2rn4f2lr3 ကဏ္ဍ:ထာမ်ပလိက်လာၚ်က္ဍိုပ်မအရေဝ်ချက်ခ်တြေံဂမၠိုၚ် 14 68048 398021 165588 2026-07-09T13:06:07Z 咽頭べさ 33 咽頭べさ ပြံင်ပဆုဲလဝ် မုက်လိက် [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံလေန်မနွံကဵုပၟိက်ဂမၠိုၚ်]] ဇရေင် [[ကဏ္ဍ:ထာမ်ပလိက်လာၚ်က္ဍိုပ်မအရေဝ်ချက်ခ်တြေံဂမၠိုၚ်]] သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင် 162713 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံဂမၠိုၚ်]] gjpaausnmzh2lq3zvxbok4ba1eu48by krev 0 296539 398015 2026-07-09T12:53:55Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ခမ်နေတ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|kw|crev}} ===နိရုတ်=== {{root|kw|ine-pro|*krep-}} ဝေါဟာကၠုၚ်နူ {{inh|kw|cnx|creff,cref}}၊ နကဵုအဆက်နူ {{inh|kw|oco|crif}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|kw|cel-bry-pro|*krɨβ̃}}၊ နူအဆက်နကဵု {{inh|kw|cel-pro|*kriɸmos}} ====နာ..." 398015 wikitext text/x-wiki ==ခမ်နေတ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|kw|crev}} ===နိရုတ်=== {{root|kw|ine-pro|*krep-}} ဝေါဟာကၠုၚ်နူ {{inh|kw|cnx|creff,cref}}၊ နကဵုအဆက်နူ {{inh|kw|oco|crif}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|kw|cel-bry-pro|*krɨβ̃}}၊ နူအဆက်နကဵု {{inh|kw|cel-pro|*kriɸmos}} ====နာမဝိသေသန==== {{kw-adj|krevva|krevva}} # ထတ်မ္ၚိုဟ်။ #: {{syn|kw|stout|tooth}} # မဇၞော်ဗိုန်ခိုၚ်။ #: {{syn|kw|gallosek}} # အစောံဇြဟတ်။ #: {{syn|kw|freth|men}} ==ချက်ခ်== {{wp|cs:}} ===ဗွဟ်ရမ္သာၚ်=== * {{cs-IPA}} * {{audio|cs|Cs-krev.ogg}} * {{hyphenation|cs|krev}} * {{rhymes|cs|ɛv}} ===နာမ်=== {{cs-noun|f}} # ဆီ။ ====လဟုတ်စှ်ေ==== {{cs-ndecl|f.*}} ==နဝ်ဝေ ဗော်ခ်မဝ်== ===ကြိယာ=== {{head|nb|verb form}} # {{inflection of|nb|kreve||imp}} ==နဝ်ဝေ နဳနိုတ်== ===ကြိယာ=== {{head|nn|verb form}} # {{infl of|nn|krevja||pres|;|imp}} ==ချက်ခ်တြေံ== ===ဗွဟ်ရမ္သာၚ်=== * {{zlw-ocs-IPA}} ===နာမ်=== {{zlw-ocs-noun|f}} # ဆီ။ ====လဟုတ်စှ်ေ==== {{zlw-ocs-ndecl|f}} ===မဒုၚ်လွဳစ=== * {{desc|cs|krev}} nnxhnhllbxy41s0trwksjnjtoob6mmm ထာမ်ပလိက်:kw-adj 10 296540 398016 2026-07-09T12:56:36Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{head|kw|နာမဝိသေသန|head={{{head|}}}<!-- -->|{{#if:{{{1|}}}|{{lg|ပတဝ်ပတုပ်}}}}<!-- -->|{{#switch:{{{1|}}}<!-- --> |a={{kw-gem|{{kw-shorto|{{pagename}}}}}}a//{{{com2|}}}<!-- --> |m=[[{{pagename}}|moy {{pagename}}]]//{{{com2|}}}<!-- --> |am={{kw-gem|{{kw-shorto|{{pagename}}}}}}a//[[{{pagename}}|moy {{pagename}}]]//{{{com2|}}}<!-- --> |{{{1|}}}//{{{com2|}}}<!-- -->}}<!-- -->|{{#if:{{..." 398016 wikitext text/x-wiki {{head|kw|နာမဝိသေသန|head={{{head|}}}<!-- -->|{{#if:{{{1|}}}|{{lg|ပတဝ်ပတုပ်}}}}<!-- -->|{{#switch:{{{1|}}}<!-- --> |a={{kw-gem|{{kw-shorto|{{pagename}}}}}}a//{{{com2|}}}<!-- --> |m=[[{{pagename}}|moy {{pagename}}]]//{{{com2|}}}<!-- --> |am={{kw-gem|{{kw-shorto|{{pagename}}}}}}a//[[{{pagename}}|moy {{pagename}}]]//{{{com2|}}}<!-- --> |{{{1|}}}//{{{com2|}}}<!-- -->}}<!-- -->|{{#if:{{{2|}}}|{{lg|သဒ္ဒာ}}}}<!-- -->|{{#switch:{{{2|}}}<!-- --> |a={{l|kw|{{kw-gem|{{kw-shorto|{{pagename}}}}}}a|{{#if: {{{no-an|}}} | {{kw-gem|{{kw-shorto|{{pagename}}}}}}a | an {{kw-gem|{{kw-shorto|{{pagename}}}}}}a }} }}//{{{sup2|}}}<!-- --> |m=[[{{pagename}}|{{#if: {{{no-an|}}} | moyha {{pagename}} | an moyha {{pagename}} }}]]//{{{sup2|}}}<!-- --> |{{l|kw|{{{2|}}}|{{#if: {{{no-an|}}} | {{{2|}}} | an {{{2|}}} }} }}//{{{sup2|}}}<!-- -->}}<!-- -->}}<!-- --><noinclude>{{documentation}}</noinclude> 64nm0p0o64bm3mdg8ofehucflkmnfgp ထာမ်ပလိက်:kw-adj/documentation 10 296541 398017 2026-07-09T12:58:17Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} ===Usage=== <pre>{{kw-adj|comparative|superlative}}</pre> * use <code>a</code> in first and second parameters if the comparative and superlative forms are formed by adding {{l|kw|-a}} * use <code>m</code> in first and second parameters if the comparative and superlative forms are formed by preceding with {{l|kw|moy}}/{{l|kw|moyha}} * add <code>no-an=1</code> if the superlative form does not..." 398017 wikitext text/x-wiki {{documentation subpage}} ===Usage=== <pre>{{kw-adj|comparative|superlative}}</pre> * use <code>a</code> in first and second parameters if the comparative and superlative forms are formed by adding {{l|kw|-a}} * use <code>m</code> in first and second parameters if the comparative and superlative forms are formed by preceding with {{l|kw|moy}}/{{l|kw|moyha}} * add <code>no-an=1</code> if the superlative form does not require the definite article {{hwcat}} 1wqnog9325fxnj06chak2zudm1gm0h9 ကဏ္ဍ:ထာမ်ပလိက်လာၚ်က္ဍိုပ်မအရေဝ်ခမ်နေတ်ဂမၠိုၚ် 14 296542 398018 2026-07-09T12:59:33Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ခမ်နေတ်ဂမၠိုၚ်]][[ကဏ္ဍ:လာၚ်က္ဍိုပ်မအရေဝ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]]" 398018 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ခမ်နေတ်ဂမၠိုၚ်]][[ကဏ္ဍ:လာၚ်က္ဍိုပ်မအရေဝ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] fs3e9pxb5nsrclohcuvgc01bz2kllb9 ထာမ်ပလိက်:zlw-ocs-noun 10 296543 398019 2026-07-09T13:01:52Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:cs-sk-headword|show|နာမ်|lang=zlw-ocs}}<noinclude>{{documentation}}</noinclude>" 398019 wikitext text/x-wiki {{#invoke:cs-sk-headword|show|နာမ်|lang=zlw-ocs}}<noinclude>{{documentation}}</noinclude> 30gdumr9xkuvu9xn30infxlzamvkirj ထာမ်ပလိက်:zlw-ocs-noun/documentation 10 296544 398020 2026-07-09T13:04:58Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{uses lua|Module:cs-sk-headword}} {{hwcat}}" 398020 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> {{uses lua|Module:cs-sk-headword}} {{hwcat}} 11g9a5soc68rbn9kn03qj1v04zig69a ထာမ်ပလိက်:zlw-ocs-ndecl 10 296545 398022 2026-07-09T13:07:14Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "<includeonly>{{#invoke:zlw-ocs-noun|show}}</includeonly><noinclude>{{documentation}}</noinclude>" 398022 wikitext text/x-wiki <includeonly>{{#invoke:zlw-ocs-noun|show}}</includeonly><noinclude>{{documentation}}</noinclude> cir0m6w8xb17t7lojp0jc5k0d7c4hgq ထာမ်ပလိက်:zlw-ocs-ndecl/documentation 10 296546 398023 2026-07-09T13:09:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|ndecl]] </includeonly>" 398023 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|ndecl]] </includeonly> 3fnqaag31m3tlbb87tilvgj843hcm88 ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ် 14 296547 398024 2026-07-09T13:11:00Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]]" 398024 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] 7bf2d66t1uhchb5z46ht0zl3fs0u1js ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ် 14 296548 398025 2026-07-09T13:12:49Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]]" 398025 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] stpom6ilf8gid3mvlp7t0uprjfprqj1 မဝ်ဂျူ:zlw-ocs-noun 828 296549 398026 2026-07-09T13:31:23Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "local export = {} --[=[ Authorship: Zhnka, heavily based on [[Module:cs-noun]] by Benwing ]=] --[=[ TERMINOLOGY: -- "slot" = A particular combination of case/number. Example slot names for nouns are "gen_s" (genitive singular) and "voc_p" (vocative plural). Each slot is filled with zero or more forms. -- "form" = The declined Czech form representing the value of a given slot. -- "lemma" = The dictionary f..." 398026 Scribunto text/plain local export = {} --[=[ Authorship: Zhnka, heavily based on [[Module:cs-noun]] by Benwing ]=] --[=[ TERMINOLOGY: -- "slot" = A particular combination of case/number. Example slot names for nouns are "gen_s" (genitive singular) and "voc_p" (vocative plural). Each slot is filled with zero or more forms. -- "form" = The declined Czech form representing the value of a given slot. -- "lemma" = The dictionary form of a given Czech term. Generally the nominative masculine singular, but may occasionally be another form if the nominative masculine singular is missing. ]=] local lang = require("Module:languages").getByCode("zlw-ocs") local m_table = require("Module:table") local m_links = require("Module:links") local m_string_utilities = require("Module:string utilities") local iut = require("Module:inflection utilities") local put = require("Module:parse utilities") local m_para = require("Module:parameters") local com = require("Module:zlw-ocs-common") local en_utilities_module = "Module:en-utilities" local current_title = mw.title.getCurrentTitle() local NAMESPACE = current_title.nsText local PAGENAME = current_title.text local u = mw.ustring.char local rsplit = mw.text.split local rfind = mw.ustring.find local rmatch = mw.ustring.match local rgmatch = mw.ustring.gmatch local rsubn = mw.ustring.gsub local ulen = mw.ustring.len local usub = mw.ustring.sub local uupper = mw.ustring.upper local ulower = mw.ustring.lower local force_cat = false -- set to true to make categories appear in non-mainspace pages, for testing -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end -- version of rsubn() that returns a 2nd argument boolean indicating whether -- a substitution was made. local function rsubb(term, foo, bar) local retval, nsubs = rsubn(term, foo, bar) return retval, nsubs > 0 end local function track(track_id) require("Module:debug/track")("zlw-ocs-noun/" .. track_id) return true end local output_noun_slots = { nom_s = "nom|s", gen_s = "gen|s", dat_s = "dat|s", acc_s = "acc|s", voc_s = "voc|s", loc_s = "loc|s", ins_s = "ins|s", nom_d = "nom|d", gen_d = "gen|d", dat_d = "dat|d", acc_d = "acc|d", voc_d = "voc|d", loc_d = "loc|d", ins_d = "ins|d", nom_p = "nom|p", gen_p = "gen|p", dat_p = "dat|p", acc_p = "acc|p", voc_p = "voc|p", loc_p = "loc|p", ins_p = "ins|p", } local function get_output_noun_slots(alternant_multiword_spec) -- FIXME: To save memory we modify the table in-place. This won't work if we ever end up with multiple calls to -- this module in the same Lua invocation, and we would need to clone the table. if alternant_multiword_spec.actual_number ~= "allthree" then for slot, accel_form in pairs(output_noun_slots) do output_noun_slots[slot] = accel_form:gsub("|[sp]$", "") end end return output_noun_slots end local potential_lemma_slots = {"nom_s", "nom_p", "gen_s"} local cases = { nom = true, gen = true, dat = true, acc = true, voc = true, loc = true, ins = true, } local clitic_cases = { gen = true, dat = true, acc = true, } local function dereduce(base, stem) local dereduced_stem = com.dereduce(base, stem) if not dereduced_stem then error("Unable to dereduce stem '" .. stem .. "'") end return dereduced_stem end local function apply_special_cases(base, slot, stem, ending) local palatalize_voc if base.c_as_k and rfind(ending, "^[aouyáóúůý]") then local k_stem = rsub(stem, "c$", "k") stem = {stem, k_stem} elseif slot == "voc_s" and ending == "e" and base.palatalize_voc then stem = com.apply_first_palatalization(stem) elseif rfind(ending, "^[ěií]") or slot == "loc_s" and ending == "e" then -- loc_s of hard masculines is sometimes -e/ě; the user might indicate this as -e, which we should handle -- correctly stem = com.apply_second_palatalization(stem) end return stem, ending end local function skip_slot(number, slot) return number == "sg" and rfind(slot, "_p$") or number == "pl" and rfind(slot, "_s$") end -- Basic function to combine stem(s) and ending(s) and insert the result into the appropriate slot. `stems` is either -- the `stems` object passed into the declension functions (containing the various stems; see below) or a string to -- override the stem. (NOTE: If you pass a string in as `stems`, you should pass the value of `stems.footnotes` as the -- value of `footnotes` as it will be lost otherwise. If you need to supply your own footnote in addition, use -- iut.combine_footnotes() to combine any user-specified footnote(s) with your footnote(s).) `endings` is either a -- string specifying a single ending or a list of endings. If `endings` is nil, no forms are inserted. If an ending is -- "-", the value of `stems` is ignored and the lemma is used instead as the stem; this is important in case the user -- used `decllemma:` to specify a declension lemma different from the actual lemma, or specified '.foreign' (which has -- a similar effect). local function add(base, slot, stems, endings, footnotes) if not endings then return end -- Call skip_slot() based on the declined number; if the actual number is different, we correct this in -- decline_noun() at the end. if skip_slot(base.number, slot) then return end local stems_footnotes = type(stems) == "table" and stems.footnotes or nil footnotes = iut.combine_footnotes(iut.combine_footnotes(base.footnotes, stems_footnotes), footnotes) if type(endings) == "string" then endings = {endings} end for _, ending in ipairs(endings) do -- Compute the stem. If ending is "-", use the lemma regardless. Otherwise if `stems` is a string, use it. -- Otherwise `stems` is an object containing four stems (vowel-vs-non-vowel cross regular-vs-oblique); -- compute the appropriate stem based on the slot and whether the ending begins with a vowel. local stem if ending == "-" then stem = base.actual_lemma ending = "" elseif type(stems) == "string" then stem = stems else local is_vowel_ending = rfind(ending, "^" .. com.vowel_c) if stems.oblique_slots == "all" or (stems.oblique_slots == "gen_p" or stems.oblique_slots == "all-oblique") and slot == "gen_p" or stems.oblique_slots == "all-oblique" and (slot == "ins_s" or slot == "dat_p" or slot == "loc_p" or slot == "ins_p") then if is_vowel_ending then stem = stems.oblique_vowel_stem else stem = stems.oblique_nonvowel_stem end elseif is_vowel_ending then stem = stems.vowel_stem else stem = stems.nonvowel_stem end end -- Maybe apply the first or second Slavic palatalization. stem, ending = apply_special_cases(base, slot, stem, ending) ending = iut.combine_form_and_footnotes(ending, footnotes) local function combine_stem_ending(stem, ending) return com.combine_stem_ending(base, slot, stem, ending) end iut.add_forms(base.forms, slot, stem, ending, combine_stem_ending) end end local function process_slot_overrides(base, do_slot) for slot, overrides in pairs(base.overrides) do -- Call skip_slot() based on the declined number; if the actual number is different, we correct this in -- decline_noun() at the end. if skip_slot(base.number, slot) then error("Override specified for invalid slot '" .. slot .. "' due to '" .. base.number .. "' number restriction") end if do_slot(slot) then base.slot_overridden[slot] = true base.forms[slot] = nil for _, override in ipairs(overrides) do for _, value in ipairs(override.values) do local form = value.form local combined_notes = iut.combine_footnotes(base.footnotes, value.footnotes) if override.full then if form ~= "" then iut.insert_form(base.forms, slot, {form = form, footnotes = combined_notes}) end else -- Convert a null ending to "-" in the acc/voc sg slots so that e.g. [[Kerberos]] declared as -- <m.sg.foreign.gena:u.acc-:a> works correctly and generates accusative 'Kerberos/Kerbera' not -- #'Kerber/Kerbera'. if (slot == "acc_s" or slot == "voc_s") and form == "" then form = "-" end for _, stems in ipairs(base.stem_sets) do add(base, slot, stems, form, combined_notes) end end end end end end end local function add_decl(base, stems, gen_s, dat_s, acc_s, voc_s, loc_s, ins_s, nom_d, gen_d, dat_d, nom_p, gen_p, dat_p, acc_p, loc_p, ins_p, nom_s, footnotes ) add(base, "nom_s", stems, "-", footnotes) add(base, "gen_s", stems, gen_s, footnotes) add(base, "dat_s", stems, dat_s, footnotes) add(base, "acc_s", stems, acc_s, footnotes) add(base, "voc_s", stems, voc_s, footnotes) add(base, "loc_s", stems, loc_s, footnotes) add(base, "ins_s", stems, ins_s, footnotes) add(base, "nom_d", stems, nom_d, footnotes) add(base, "gen_d", stems, gen_d, footnotes) add(base, "dat_d", stems, dat_d, footnotes) if base.number == "pl" then -- If this is a plurale tantum noun and we're processing the nominative plural, use the user-specified lemma -- rather than generating the plural from the synthesized singular, which may not match the specified lemma -- (e.g. [[tvargle]] "Olomouc cheese" using <m.pl.mixed> would try to generate 'tvargle/tvargly', and [[peníze]] -- "money" using <m.pl.#ě.genpl-> would try to generate 'peněze'). local acc_p_like_nom = m_table.deepEquals(nom_p, acc_p) nom_p = "-" if acc_p_like_nom then acc_p = "-" end end add(base, "nom_p", stems, nom_p, footnotes) add(base, "gen_p", stems, gen_p, footnotes) add(base, "dat_p", stems, dat_p, footnotes) add(base, "acc_p", stems, acc_p, footnotes) add(base, "loc_p", stems, loc_p, footnotes) add(base, "ins_p", stems, ins_p, footnotes) add(base, "nom_s", stems, nom_s, footnotes) end local function add_sg_decl(base, stems, gen_s, dat_s, acc_s, voc_s, loc_s, ins_s, footnotes ) add_decl(base, stems, gen_s, dat_s, acc_s, voc_s, loc_s, ins_s, nil, nil, nil, nil, nil, nil, nil, nil, nil, footnotes) end local function add_du_only_decl(base, stems, gen_d, dat_d, footnotes ) add_decl(base, stems, nil, nil, nil, nil, nil, nil, "-", gen_d, dat_d, nil, nil, nil, nil, nil, nil, footnotes) end local function add_pl_only_decl(base, stems, gen_p, dat_p, acc_p, loc_p, ins_p, footnotes ) add_decl(base, stems, nil, nil, nil, nil, nil, nil, nil, nil, nil, "-", gen_p, dat_p, acc_p, loc_p, ins_p, footnotes) end local function handle_derived_slots_and_overrides(base) local function is_non_derived_slot(slot) return slot ~= "voc_p" and slot ~= "acc_s" and slot ~= "clitic_acc_s" end local function is_derived_slot(slot) return not is_non_derived_slot(slot) end base.slot_overridden = {} -- Handle overrides for the non-derived slots. Do this before generating the derived -- slots so overrides of the source slots (e.g. nom_p) propagate to the derived slots. process_slot_overrides(base, is_non_derived_slot) -- Generate the remaining slots that are derived from other slots. if not base.pron and not base.det then -- Pronouns don't have a vocative (singular or plural). iut.insert_forms(base.forms, "voc_p", base.forms.nom_p) end if not base.forms.acc_s and not base.slot_overridden.acc_s then iut.insert_forms(base.forms, "acc_s", base.forms[base.animacy == "inan" and "nom_s" or base.animacy == "pr" and "gen_s"]) end if not base.forms.clitic_acc_s and not base.slot_overridden.clitic_acc_s then iut.insert_forms(base.forms, "clitic_acc_s", base.forms[base.animacy == "inan" and "nom_s" or "clitic_gen_s"]) end -- Handle overrides for derived slots, to allow them to be overridden. process_slot_overrides(base, is_derived_slot) -- Compute linked versions of potential lemma slots, for use in {{zlw-ocs-noun}}. -- We substitute the original lemma (before removing links) for forms that -- are the same as the lemma, if the original lemma has links. for _, slot in ipairs(potential_lemma_slots) do iut.insert_forms(base.forms, slot .. "_linked", iut.map_forms(base.forms[slot], function(form) if form == base.orig_lemma_no_links and rfind(base.orig_lemma, "%[%[") then return base.orig_lemma else return form end end)) end end -- Table mapping declension types to functions to decline the noun. The function takes two arguments, `base` and -- `stems`; the latter specifies the computed stems (vowel vs. non-vowel, singular vs. plural) and whether the noun -- is reducible and/or has vowel alternations in the stem. Most of the specifics of determining which stem to use -- and how to modify it for the given ending are handled in add_decl(); the declension functions just need to generate -- the appropriate endings. local decls = {} -- Table specifying additional properties for declension types. Every declension type must have such a table, which -- specifies which category or categories to add and what annotation to show in the title bar of the declension table. -- -- * Only the `cat` property of this table is mandatory; there is also a `desc` property to specify the annotation, but -- this can be omitted and the annotation will then be computed from the `cat` property. The `cat` property is either -- a string, a list of strings or a function (of two arguments, `base` and `stems` as above) returning a string or -- list of strings. The string can contain the keywords GENDER to substitute the gender (and animacy for masculine -- nouns) and POS (to substitute the pluralized part of speech). The keyword GENPOS is equivalent to 'GENDER POS'. If -- no keyword is present, ' GENPOS' is added onto the end. If only GENDER is present, ' POS' is added onto the end. -- In all cases, the language name is added onto the beginning to form the full category name. -- * The `desc` property is of the same form as the `cat` property and specifies the annotation to display in the title -- bar (which may have the same format as the category minus the part of speech, or may be abbreviated). The value -- may not be a list of strings, as only one annotation is displayed. If omitted, it is derived from the category -- spec(s) by taking the last category (if more than one is given) and removing ' POS' before keyword substitution. local declprops = {} decls["hard-m"] = function(base, stems) base.palatalize_voc = not rfind(stems.vowel_stem, "c$") local gen_s = base.animacy == "pr" and "a" or {"a", "u"} local dat_s = base.animacy == "inan" and {"u"} or {"u", "ovi"} local loc_s = base.animacy == "inan" and rfind(base.lemma, "l$") and {"e", "u"} or base.animacy == "inan" and {"ě", "u"} or base.animacy == "anml" and rfind(base.lemma, "l$") and {"e", "u", "ovi"} or base.animacy == "anml" and {"ě", "u", "ovi"} or {"u", "ovi"} local voc_s = velar and {"e", "u"} or "e" local loc_p = rfind(base.lemma, "l$") and "éch" or "iech" local acc_s = base.animacy == "anml" and {"", "a"} add_decl(base, stems, gen_s, dat_s, acc_s, voc_s, loc_s, "em", "y", "ú", "oma", {"i", "ové"}, "óv", "óm", "y", loc_p, "y") end declprops["hard-m"] = { desc = function(base, stems) return "hard o-stem" end, cat = function(base, stems) return "hard masculine o-stem" end } decls["soft-m"] = function(base, stems) if rfind(base.lemma, "l$") then local dat_s = base.animacy == "inan" and "u" or {"u", "ovi"} local loc_s = base.animacy == "inan" and {"i", "u"} or base.animacy == "anml" and {"i", "u", "ovi"} or {"u", "ovi"} local nom_p = rfind(base.lemma, "tel") and {"é", "i"} or {"i"} local gen_p = rfind(base.lemma, "tel") and "" or nil local acc_s = base.animacy == "anml" and {"", "e"} add_decl(base, stems, "e", {}, acc_s, {}, {}, "em", "e", {}, {}, nom_p, gen_p, {}, "e", "ích", "i") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, dat_s, nil, "u", loc_s, nil, nil, "ú", "oma", "ové", "óv", "óm" ) elseif rfind(base.lemma, "[bpfvm]$") then local dat_s = base.animacy == "inan" and "u" or {"u", "ovi"} local loc_s = base.animacy == "inan" and "i" or base.animacy == "anml" and "i" local loc_s2 = base.animacy == "inan" and "u" or base.animacy == "anml" or {"u", "ovi"} local acc_s = base.animacy == "anml" and {"", "ě"} add_decl(base, stems, "ě", {}, acc_s, {}, loc_s, "em", "ě", {}, {}, nom_p, gen_p, {}, "ě", "ích", "i") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, dat_s, nil, "u", loc_s2, nil, nil, "ú", "oma", "ové", "óv", "óm" ) elseif rfind(base.lemma, "z$") then local dat_s = base.animacy == "inan" and "u" or {"u", "ovi"} local loc_s = base.animacy == "inan" and {"i", "u"} or {"u", "ovi"} add_decl(base, stems, "ě", dat_s, nil, {}, loc_s, "em", "ě", "ú", "oma", {"i", "ové"}, "óv", "óm", "ě", "ích", "i") add_decl(base, com.apply_first_palatalization(stem, "is soft"), {}, {}, {}, "e") else base.palatalize_voc = true local dat_s = base.animacy == "inan" and "u" or {"u", "ovi"} local loc_s = base.animacy == "inan" and {"i", "u"} or base.animacy == "anml" and {"i", "u", "ovi"} or {"u", "ovi"} local voc_s = base.animacy == "pr" and rfind(base.lemma, "ec$") and stems.reducible and "e" or base.animacy == "pr" and rfind(base.lemma, "z$") and "e" or "u" local nom_p = rfind(base.lemma, "ař") and {"é", "ové"} or {"i", "ové"} local acc_s = base.animacy == "anml" and {"", "ě"} add_decl(base, stems, "ě", dat_s, acc_s, voc_s, loc_s, "em", "ě", "ú", "oma", nom_p, "óv", "óm", "ě", "ích", "i") end end declprops["soft-m"] = { desc = function(base, stems) return "soft o-stem" end, cat = function(base, stems) return "soft masculine o-stem" end } decls["ěnín-m"] = function(base, stems) local loc_p = base.animacy == "inan" and {"ěniech", "ás"} or "ěniech" add_decl(base, stems, "ěnína", {"ěnínu", "ěnínovi"}, "ěnína", "ěníne", {"ěnínu", "ěnínovi"}, "ěnínem", "ěníny", "ěnínú", "ěnínoma", {"ěné", "anové"}, {"an", "anóv"}, "anóm", "any", loc_p, "any") end declprops["ěnín-m"] = { desc = function(base, stems) return "hard o-stem" end, cat = function(base, stems) return "hard masculine o-stem" end } decls["enín-m"] = function(base, stems) local loc_p = base.animacy == "inan" and {"eniech", "ás"} or "eniech" add_decl(base, stems, "enína", {"enínu", "enínovi"}, "enína", "eníne", {"enínu", "enínovi"}, "enínem", "eníny", "enínú", "enínoma", {"ené", "anové"}, {"an", "anóv"}, "anóm", "any", loc_p, "any") end declprops["enín-m"] = { desc = function(base, stems) return "hard o-stem" end, cat = function(base, stems) return "hard masculine o-stem" end } decls["u-m"] = function(base, stems) base.palatalize_voc = true local gen_s = base.animacy == "inan" and "u" or base.animacy == "anml" and {"u", "a"} or "u" local acc_s = base.animacy == "inan" and "-" or base.animacy == "anml" and {"-", "a"} or "a" local loc_p = rfind(base.lemma, "l$") and "éch" or "iech" add_decl(base, stems, gen_s, {"ovi", "u"}, acc_s, "e", "u", "em", "y", "ú", "oma", {"ové", "i"}, "óv", "óm", "y", loc_p, "y") end declprops["u-m"] = { desc = function(base, stems) return "u-stem" end, cat = function(base, stems) return "u-stem" end } decls["a-m"] = function(base, stems) local it_ist = rfind(stems.vowel_stem, "is?t$") or rfind(stems.vowel_stem, "ast$") add_decl(base, stems, "y", "ě", "u", "o", "ě", "ú", "ě", "ú", "ama", "y", "", "ám", "y", "ách", "ami") end declprops["a-m"] = { desc = function(base, stems) return "hard a-stem" end, cat = function(base, stems) return "hard masculine a-stem" end } decls["ě-m"] = function(base, stems) add_decl(base, stems, "ě", "i", {}, {}, "i", {}, "i", {}, "ěma", "ě", "í", "iem", "ě", "iech", "ěmi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", "e", nil, "ú", nil, "ú") end declprops["ě-m"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft masculine a-stem" end } decls["e-m"] = function(base, stems) add_decl(base, stems, "e", "i", {}, {}, "i", {}, "i", {}, "ema", "e", "í", "ém", "e", "éch", "emi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", "e", nil, "ú", nil, "ú") end declprops["e-m"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft masculine a-stem" end } decls["ijo-m"] = function(base, stems) if rfind(base.lemma, "lí$") then local acc_s = base.animacy == "inan" and "í" or {"é", "í"} add_decl(base, stems, "é", {}, acc_s, {}, "í", "ím", "é", {}, "íma", "í", "í", "ím", "é", "ích", "ími") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "ú", nil, "ú", nil, nil, nil, "ú") else local acc_s = base.animacy == "inan" and "í" or {"ie", "í"} add_decl(base, stems, "ie", {}, acc_s, {}, "í", "ím", "ie", {}, "íma", "í", "í", "ím", "ie", "ích", "ími") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "ú", nil, "ú", nil, nil, nil, "ú") end end declprops["ijo-m"] = { desc = function(base, stems) return "soft o-stem" end, cat = function(base, stems) return "soft masculine o-stem" end } decls["ija-m"] = function(base, stems) if rfind(base.lemma, "l[íé]") then add_decl(base, stems, "é", "í", {}, "í", "í", "ím", "í", {}, "éma", "é", "í", "ém", "é", "éch", "iemi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "ú", nil, nil, nil, nil, "ú") else add_decl(base, stems, "ie", "í", {}, "í", "í", "ím", "í", {}, "iema", "ie", "í", "iem", "ie", "iech", "iemi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "ú", nil, nil, nil, nil, "ú") end end declprops["ija-m"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft masculine a-stem" end } decls["istem-m"] = function(base, stems) acc_s = base.animacy == "inan" and "" or {"", "i"} add_decl(base, stems, "i", "i", acc_s, "i", "i", "em", "i", {}, "ma", "ie", "í", "em", "i", "ech", "mi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, nil, nil, nil, nil, nil, "ú") end declprops["istem-m"] = { desc = function(base, stems) return "i-stem" end, cat = function(base, stems) return "masculine i-stem" end } decls["n-m"] = function(base, stems) add_decl(base, stems, "e", "i", "-", "i", "i", "em", "y", "ú", "oma", {"i", "ové"}, "óv", "óm", "y", "iech", "y") end declprops["n-m"] = { desc = function(base, stems) return "n-stem" end, cat = function(base, stems) return "masculine n-stem" end } decls["tstem-m"] = function(base, stems) add_decl(base, stems, "te", "ti", "et", "te", "ti", "tem", "ty", "tú", "toma", {"ti", "tové"}, "tóv", "tóm", "ty", "tiech", "ty") end declprops["tstem-m"] = { desc = function(base, stems) return "t-stem" end, cat = function(base, stems) return "masculine t-stem" end } decls["hard-f"] = function(base, stems) base.no_palatalize_c = true if rfind(base.lemma, "la$") then add_decl(base, stems, "y", "e", "u", "o", "e", "ú", "e", "ú", "ama", "y", "", "ám", "y", "ách", "ami") else add_decl(base, stems, "y", "ě", "u", "o", "ě", "ú", "ě", "ú", "ama", "y", "", "ám", "y", "ách", "ami") end end declprops["hard-f"] = { cat = "hard" } declprops["hard-f"] = { desc = function(base, stems) return "hard a-stem" end, cat = function(base, stems) return "hard feminine a-stem" end } decls["soft-f"] = function(base, stems) local gen_p = rfind(base.lemma, "icě$") and "" or "í" add_decl(base, stems, "ě", "i", {}, {}, "i", {}, "i", {}, "ěma", "ě", gen_p, "iem", "ě", "iech", "ěmi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", nil, nil, "ú", nil, "ú") add_decl(base, com.onlyndt(stems.oblique_vowel_stem), nil, nil, nil, "e", nil, nil, nil, nil, nil, nil, "") end declprops["soft-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["e-f"] = function(base, stems) add_decl(base, stems, "e", "i", {}, "e", "i", {}, "i", {}, "ema", "e", {"í", ""}, "ém", "e", "éch", "emi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", nil, nil, "ú", nil, "ú") end declprops["e-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["cons-f"] = function(base, stems) if rfind(base.lemma, "l$") then add_decl(base, stems, "e", "i", {}, {}, "i", {}, "i", {}, "ema", "e", "í", "ém", "e", "ích", "emi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", "e", nil, "ú", nil, "ú") else add_decl(base, stems, "ě", "i", "u", "e", "i", "ú", "i", "ú", "ěma", "ě", "í", "iem", "ě", "ích", "ěmi") end end declprops["cons-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["v-f"] = function(base, stems) add_decl(base, stems, "ve", "vi", "ev", "vi", "vi", "v́ú", "vi", "v́ú", "vema", "ve", "ví", "vem", "ve", "vech", "vemi") end declprops["v-f"] = { desc = function(base, stems) return "v-stem" end, cat = function(base, stems) return "v-stem" end } decls["r-f"] = function(base, stems) if base.lemma == "máti" then stem = "mat" end add_decl(base, stem, "eře", "eři", "eř", "-", "eři", "eřú", "eři", "eřú", "eřma", "ery", "er", "erám", "ery", "erách", "erami") end declprops["r-f"] = { desc = function(base, stems) return "r-stem" end, cat = function(base, stems) return "r-stem" end } decls["istem-f"] = function(base, stems) local acc_s = rfind(base.lemma, "i$") and "i" or "-" add_decl(base, stems, "i", "i", acc_s, "i", "i", {}, "i", {}, "ma", "i", "í", "em", "i", "ech", "mi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, nil, nil, nil, "ú", nil, "ú") end declprops["istem-f"] = { desc = function(base, stems) return "i-stem" end, cat = function(base, stems) return "feminine i-stem" end } decls["i-f"] = function(base, stems) add_decl(base, stems, "ě", "i", {}, {}, "i", {}, "i", {}, "ěma", "ě", {}, "iem", "ě", "iech", "ěmi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "u", "e", nil, "ú", nil, "ú", nil, nil, "") end declprops["i-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["í-f"] = function(base, stems) if rfind(stem, "l$") then add_decl(base, stems, "é", "í", {}, "í", "í", {}, "í", {}, "éma", "é", "í", "ém", "é", "éch", "émi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "ú", nil, nil, "ú", nil, "ú") else local voc_s = rfind(base.lemma, "ie$") and "ie" or "í" add_decl(base, stems, "ie", "í", {}, voc_s, "í", {}, "í", {}, "iema", "ie", "í", "iem", "ie", "iech", "iemi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "ú", nil, nil, "ú", nil, "ú") end end declprops["í-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["é-f"] = function(base, stems) add_decl(base, stems, "é", "í", {}, "í", "í", {}, "í", {}, "éma", "é", "í", "ém", "ie", "éch", "émi") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, nil, "ú", nil, nil, "ú", nil, "ú") end declprops["é-f"] = { desc = function(base, stems) return "soft a-stem" end, cat = function(base, stems) return "soft feminine a-stem" end } decls["hard-n"] = function(base, stems) if rfind(base.lemma, "lo$") then add_decl(base, stems, "a", "u", "-", "-", {"e", "u"}, "em", "e", "ú", "oma", "a", "", "óm", "a", "éch", "y") else add_decl(base, stems, "a", "u", "-", "-", {"ě", "u"}, "em", "ě", "ú", "oma", "a", "", "óm", "a", "iech", "y") end end declprops["hard-n"] = { desc = function(base, stems) return "hard o-stem" end, cat = function(base, stems) return "hard neuter o-stem" end } decls["soft-n"] = function(base, stems) local gen_p = rfind(base.vowel_stem, "išč$") and "" or "í" if rfind(base.lemma, "le$") then add_decl(base, stems, "e", {}, "-", "-", "i", "em", "i", {}, {}, "e", "í", {}, "e", "ích", "i") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "u", nil, nil, "u", nil, nil, "ú", "oma", nil, nil, "óm") else add_decl(base, stems, "ě", {}, "-", "-", "i", "em", "i", {}, {}, "ě", gen_p, {}, "ě", "ích", "i") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "u", nil, nil, "u", nil, nil, "ú", "oma", nil, nil, "óm") end end declprops["soft-n"] = { desc = function(base, stems) return "soft o-stem" end, cat = function(base, stems) return "soft neuter o-stem" end } decls["ie-n"] = function(base, stems) add_decl(base, stems, "ie", {}, "ie", "ie", "í", "ím", "í", {}, "íma", "ie", "í", "ím", "ie", "ích", "ími") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "ú", nil, nil, "ú", nil, nil, "ú") end declprops["ie-n"] = { desc = function(base, stems) return "soft o-stem" end, cat = function(base, stems) return "soft neuter o-stem" end } decls["é-n"] = function(base, stems) add_decl(base, stems, "é", {}, "é", "é", "í", "ím", "í", {}, "íma", "é", "í", "ím", "é", "ích", "ími") add_decl(base, com.convert_paired_plain_to_palatal(stems.oblique_vowel_stem), nil, "ú", nil, nil, "ú", nil, nil, "ú") end declprops["é-n"] = { desc = function(base, stems) return "soft o-stem" end, cat = function(base, stems) return "soft neuter o-stem" end } decls["n-n"] = function(base, stems) add_decl(base, stems, "ene", "eni", "-", "-", "eni", "enem", {"eni", "eně"}, "enú", "enoma", "ena", "en", "enóm", "ena", "eniech", "eny") end declprops["n-n"] = { desc = function(base, stems) return "n-stem" end, cat = function(base, stems) return "neuter n-stem" end } decls["tstem-n"] = function(base, stems) add_decl(base, stems, "ěte", "ěti", "-", "-", "ěti", "ětem", "ětě", "atú", "atma", "ata", "at", "atóm", "ata", "ětech", "aty") end declprops["tstem-n"] = { desc = function(base, stems) return "t-stem" end, cat = function(base, stems) return "neuter t-stem" end } decls["e-tstem-n"] = function(base, stems) add_decl(base, stems, "ete", "eti", "-", "-", "eti", "etem", "etě", "atú", "atma", "ata", "at", "atóm", "ata", "etech", "aty") end declprops["e-tstem-n"] = { desc = function(base, stems) return "t-stem" end, cat = function(base, stems) return "neuter t-stem" end } decls["adj"] = function(base, stems) local props = {} local propspec = table.concat(props, ".") if propspec ~= "" then propspec = "<" .. propspec .. ">" end local adj_alternant_multiword_spec = require("Module:zlw-ocs-adjective").do_generate_forms({base.lemma .. propspec}) local function copy(from_slot, to_slot) base.forms[to_slot] = adj_alternant_multiword_spec.forms[from_slot] end if base.number ~= "pl" then if base.gender == "m" then copy("nom_m", "nom_s") copy("gen_mn", "gen_s") copy("dat_mn", "dat_s") copy("loc_mn", "loc_s") copy("ins_mn", "ins_s") elseif base.gender == "f" then copy("nom_f", "nom_s") copy("gen_f", "gen_s") copy("dat_f", "dat_s") copy("acc_f", "acc_s") copy("loc_f", "loc_s") copy("ins_f", "ins_s") else copy("nom_n", "nom_s") copy("gen_mn", "gen_s") copy("dat_mn", "dat_s") copy("acc_n", "acc_s") copy("loc_mn", "loc_s") copy("ins_mn", "ins_s") end if not base.forms.voc_s then iut.insert_forms(base.forms, "voc_s", base.forms.nom_s) end end if base.number ~= "sg" then if base.gender == "m" then copy("nom_mp", "nom_p") copy("acc_mfp", "acc_p") copy("nom_md", "nom_d") elseif base.gender == "f" then copy("nom_fp", "nom_p") copy("acc_mfp", "acc_p") copy("nom_fnd", "nom_d") else copy("nom_np", "nom_p") copy("acc_np", "acc_p") copy("nom_fnd", "nom_d") end copy("gen_p", "gen_p") copy("dat_p", "dat_p") copy("ins_p", "ins_p") copy("loc_p", "loc_p") copy("gen_d", "gen_d") copy("dat_d", "dat_d") end end local function get_stemtype(base) if rfind(base.lemma, "ý$") then return "hard" elseif rfind(base.lemma, "í$") then return "soft" else return "possessive" end end declprops["adj"] = { cat = function(base, stems) return {"adjectival POS", get_stemtype(base) .. " GENDER adjectival POS"} end, } decls["indecl"] = function(base, stems) -- Indeclinable. Note that fully indeclinable nouns should not have a table at all rather than one all of whose forms -- are the same; but having an indeclinable declension is useful for nouns that may or may not be indeclinable, e.g. -- [[desatero]] "group of ten" or the plural of [[peso]], which may be indeclinable 'pesos'. add_decl(base, stems, "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-") end declprops["indecl"] = { cat = function(base, stems) if base.adj then return {"adjectival POS", "indeclinable adjectival POS", "indeclinable GENDER adjectival POS"} else return {"indeclinable POS", "indeclinable GENPOS"} end end } decls["manual"] = function(base, stems) -- Anything declined manually using overrides. We don't set any declensions except the nom_s (or nom_p if plurale -- tantum). add(base, base.number == "pl" and "nom_p" or "nom_s", stems, "-") end declprops["manual"] = { desc = "GENDER", cat = {}, } local function set_pron_defaults(base) if base.gender or base.lemma ~= "ona" and base.number or base.animacy then error("Can't specify gender, number or animacy for pronouns") end local function pron_props() -- Return values are GENDER, NUMBER, ANIMACY, HAS_CLITIC. if base.lemma == "kto" then return "none", "sg", "pr", false elseif base.lemma == "čso" then return "none", "sg", "inan", false else error(("Unrecognized pronoun '%s'"):format(base.lemma)) end end local gender, number, animacy, has_clitic = pron_props() base.gender = gender base.actual_gender = gender base.number = number base.actual_number = number base.animacy = animacy base.actual_animacy = animacy base.has_clitic = has_clitic end local function determine_pronoun_stems(base) if base.stem_sets then error("Reducible and vowel alternation specs cannot be given with pronouns") end base.stem_sets = {{reducible = false, vowel_stem = "", nonvowel_stem = ""}} base.decl = "pron" end decls["pron"] = function(base, stems) if base.lemma == "kto" then add_decl(base, stems, "koho", "komu", nil, nil, "kom", "kým") elseif base.lemma == "čso" then add_decl(base, stems, {"čeho", "čso"}, "čemu", nil, nil, "čem", "čím") else error(("Internal error: Unrecognized pronoun lemma '%s'"):format(base.lemma)) end end declprops["pron"] = { desc = "GENDER pronoun", cat = {}, } local function set_num_defaults(base) if base.gender or base.animacy then error("Can't specify gender, number or animacy for numeral") end local function num_props() -- Return values are GENDER, NUMBER, ANIMACY, HAS_CLITIC. return "none", base.lemma == "dva" and "du" or base.lemma == "dvě" and "du" or base.lemma == "desát" and "sg" or base.lemma == "jeden" and "sg" or "pl", "none", false end local gender, number, animacy, has_clitic = num_props() base.gender = gender base.actual_gender = gender base.number = number base.actual_number = number base.animacy = animacy base.actual_animacy = animacy base.has_clitic = has_clitic end local function determine_numeral_stems(base) if base.stem_sets then error("Reducible and vowel alternation specs cannot be given with numerals") end local stem = rmatch(base.lemma, "^(.*)" .. com.vowel_c .. "$") or base.lemma base.stem_sets = {{reducible = false, vowel_stem = stem, nonvowel_stem = stem}} base.decl = "num" end decls["num"] = function(base, stems) local after_prep_footnote = "[after a preposition]" if base.lemma == "jeden" then add_decl(base, "", "jednoho", "jednomu", "-", "-", "jednom", "jedniem") elseif base.lemma == "dva" or base.lemma == "dvě" then -- in compound numbers; stem is dv- add_du_only_decl(base, stems, "ú", "ěma", "-", "ú", "ěma") elseif base.lemma == "tři" or base.lemma == "čtyři" then local is_three = base.lemma == "tři" add_pl_only_decl(base, stems, is_three and "í" or "", "em", "-", "ech", "mi") elseif base.lemma == "devět" then add_pl_only_decl(base, "", {"devieti", "devěti"}, {"devieti", "devěti"}, "-", {"devieti", "devěti"}, {"devieti", "devěti"}, stems.footnotes) elseif base.lemma == "desět" then add_pl_only_decl(base, "", {"desieti", "desěti"}, {"desieti", "desěti"}, "-", {"desieti", "desěti"}, {"desieti", "desěti"}, stems.footnotes) elseif base.lemma == "sta" or base.lemma == "stě" or base.lemma == "set" then add_pl_only_decl(base, "", "set", "stóm", "-", "stech", "sty", stems.footnotes) elseif rfind(base.lemma, "esát$") then -- [[patdesát]] [[pětidsát]] [[pěťúdsát]] local begin = rmatch(base.lemma, "^(.*)esát$") add_decl(base, begin, "sát", "sát", "-", "sát", "sát", "sát", stems.footnotes) else add_pl_only_decl(base, stems, "i", "i", "-", "i", "i") end end declprops["num"] = { desc = "GENDER numeral", cat = {}, } local function set_det_defaults(base) if base.gender or base.number or base.animacy then error("Can't specify gender, number or animacy for determiner") end local function det_props() -- Return values are GENDER, NUMBER, ANIMACY, HAS_CLITIC. return "none", "none", "none", false end local gender, number, animacy, has_clitic = det_props() base.gender = gender base.actual_gender = gender base.number = number base.actual_number = number base.animacy = animacy base.actual_animacy = animacy base.has_clitic = has_clitic end local function determine_determiner_stems(base) if base.stem_sets then error("Reducible and vowel alternation specs cannot be given with determiners") end local stem = rmatch(base.lemma, "^(.*)" .. com.vowel_c .. "$") or base.lemma base.stem_sets = {{reducible = false, vowel_stem = stem, nonvowel_stem = stem}} base.decl = "det" end decls["det"] = function(base, stems) add_sg_decl(base, stems, "a", "a", "-", nil, "a", "a") end declprops["det"] = { desc = "GENDER determiner", cat = {}, } local function fetch_footnotes(separated_group) local footnotes for j = 2, #separated_group - 1, 2 do if separated_group[j + 1] ~= "" then error("Extraneous text after bracketed footnotes: '" .. table.concat(separated_group) .. "'") end if not footnotes then footnotes = {} end table.insert(footnotes, separated_group[j]) end return footnotes end --[=[ Parse a single override spec (e.g. 'nomplé:ové' or 'ins:autodráhou:autodrahou[rare]') and return two values: the slot(s) the override applies to, and an object describing the override spec. The input is actually a list where the footnotes have been separated out; for example, given the spec 'inspl:čobotami:čobotámi[rare]:čobitmi[archaic]', the input will be a list {"inspl:čobotami:čobotámi", "[rare]", ":čobitmi", "[archaic]", ""}. The object returned for 'ins:autodráhou:autodrahou[rare]' looks like this: { full = true, values = { { form = "autodráhou" }, { form = "autodrahou", footnotes = {"[rare]"} } } } The object returned for 'nomplé:ové' looks like this: { values = { { form = "é", }, { form = "ové", } } } ]=] local function parse_override(segments) local retval = {values = {}} local part = segments[1] local slots = {} while true do local case = usub(part, 1, 3) if cases[case] then -- ok else error(("Unrecognized case '%s' in override: '%s'"):format(case, table.concat(segments))) end part = usub(part, 4) local slot if rfind(part, "^pl") then part = usub(part, 3) slot = case .. "_p" elseif rfind(part, "^du") then part = usub(part, 3) slot = case .. "_d" else slot = case .. "_s" end table.insert(slots, slot) if rfind(part, "^%+") then part = usub(part, 2) else break end end if rfind(part, "^:") then retval.full = true part = usub(part, 2) end segments[1] = part local colon_separated_groups = put.split_alternating_runs_and_strip_spaces(segments, ":") for i, colon_separated_group in ipairs(colon_separated_groups) do local value = {} local form = colon_separated_group[1] if form == "" then error(("Use - to indicate an empty ending for slot%s '%s': '%s'"):format(#slots > 1 and "s" or "", table.concat(slots), table.concat(segments))) elseif form == "-" then value.form = "" else value.form = form end value.footnotes = fetch_footnotes(colon_separated_group) table.insert(retval.values, value) end return slots, retval end --[=[ Parse an indicator spec (text consisting of angle brackets and zero or more dot-separated indicators within them). Return value is an object of the form { overrides = { SLOT = {OVERRIDE, OVERRIDE, ...}, -- as returned by parse_override() ... }, forms = {}, -- forms for a single spec alternant; see `forms` below footnotes = {"FOOTNOTE", "FOOTNOTE", ...}, -- may be missing stems = { -- may be missing { reducible = TRUE_OR_FALSE, footnotes = {"FOOTNOTE", "FOOTNOTE", ...}, -- may be missing -- The following fields are filled in by determine_stems() vowel_stem = "STEM", nonvowel_stem = "STEM", oblique_slots = one of {nil, "gen_p", "all", "all-oblique"}, oblique_vowel_stem = "STEM" or nil (only needs to be set if oblique_slots is non-nil), oblique_nonvowel_stem = "STEM" or nil (only needs to be set if oblique_slots is non-nil), }, ... }, gender = "GENDER", -- "m", "f", "n" number = "NUMBER", -- "sg", "pl"; may be missing animacy = "ANIMACY", -- "inan", "an"; may be missing hard = true, -- may be missing soft = true, -- may be missing mixed = true, -- may be missing surname = true, -- may be missing istem = true, -- may be missing ["-istem"] = true, -- may be missing tstem = true, -- may be missing nstem = true, -- may be missing tech = true, -- may be missing foreign = true, -- may be missing mostlyindecl = true, -- may be missing indecl = true, -- may be missing manual = true, -- may be missing adj = true, -- may be missing decllemma = "DECLENSION-LEMMA", -- may be missing declgender = "DECLENSION-GENDER", -- may be missing declnumber = "DECLENSION-NUMBER", -- may be missing -- The following additional fields are added by other functions: orig_lemma = "ORIGINAL-LEMMA", -- as given by the user orig_lemma_no_links = "ORIGINAL-LEMMA-NO-LINKS", -- links removed lemma = "LEMMA", -- `orig_lemma_no_links`, converted to singular form if plural and lowercase if all-uppercase forms = { SLOT = { { form = "FORM", footnotes = {"FOOTNOTE", "FOOTNOTE", ...} -- may be missing }, ... }, ... }, decl = "DECL", -- declension, e.g. "hard-m" vowel_stem = "VOWEL-STEM", -- derived from vowel-ending lemmas nonvowel_stem = "NONVOWEL-STEM", -- derived from non-vowel-ending lemmas } ]=] local function parse_indicator_spec(angle_bracket_spec) local inside = rmatch(angle_bracket_spec, "^<(.*)>$") assert(inside) local base = {overrides = {}, forms = {}} if inside ~= "" then local segments = put.parse_balanced_segment_run(inside, "[", "]") local dot_separated_groups = put.split_alternating_runs_and_strip_spaces(segments, "%.") for i, dot_separated_group in ipairs(dot_separated_groups) do local part = dot_separated_group[1] local case_prefix = usub(part, 1, 3) if cases[case_prefix] then local slots, override = parse_override(dot_separated_group) for _, slot in ipairs(slots) do if base.overrides[slot] then error(("Two overrides specified for slot '%s'"):format(slot)) else base.overrides[slot] = {override} end end elseif part == "" then if #dot_separated_group == 1 then error("Blank indicator: '" .. inside .. "'") end base.footnotes = fetch_footnotes(dot_separated_group) elseif rfind(part, "^[-*#ě]*$") or rfind(part, "^[-*#ě]*,") then if base.stem_sets then error("Can't specify reducible/vowel-alternant indicator twice: '" .. inside .. "'") end local comma_separated_groups = put.split_alternating_runs_and_strip_spaces(dot_separated_group, ",") local stem_sets = {} for i, comma_separated_group in ipairs(comma_separated_groups) do local pattern = comma_separated_group[1] local orig_pattern = pattern local reducible, vowelalt, oblique_slots if pattern == "-" then -- default reducible, no vowel alt else local before, after before, reducible, after = rmatch(pattern, "^(.-)(%-?%*)(.-)$") if before then pattern = before .. after reducible = reducible == "*" end if pattern ~= "" then if not rfind(pattern, "^##?ě?$") then error("Unrecognized vowel-alternation pattern '" .. pattern .. "', should be one of #, ##, #ě or ##ě: '" .. inside .. "'") end if pattern == "#ě" or pattern == "##ě" then vowelalt = "quant-ě" else vowelalt = "quant" end -- `oblique_slots` will be later changed to "all" if the lemma ends in a consonant. if pattern == "##" or pattern == "##ě" then oblique_slots = "all-oblique" else oblique_slots = "gen_p" end end end table.insert(stem_sets, { reducible = reducible, vowelalt = vowelalt, oblique_slots = oblique_slots, footnotes = fetch_footnotes(comma_separated_group) }) end base.stem_sets = stem_sets elseif #dot_separated_group > 1 then error("Footnotes only allowed with slot overrides, reducible or vowel alternation specs or by themselves: '" .. table.concat(dot_separated_group) .. "'") elseif part == "m" or part == "f" or part == "n" then if base.gender then error("Can't specify gender twice: '" .. inside .. "'") end base.gender = part elseif part == "sg" or part == "du" or part == "pl" then if base.number then error("Can't specify number twice: '" .. inside .. "'") end base.number = part elseif part == "pr" or part == "anml" or part == "inan" then if base.animacy then error("Can't specify animacy twice: '" .. inside .. "'") end base.animacy = part elseif part == "hard" or part == "soft" or part == "mixed" or part == "ija" or part == "ustem" or part == "vstem" or part == "rstem" or part == "istem" or part == "-istem" or part == "tstem" or part == "nstem" or part == "tech" or part == "foreign" or part == "indecl" or part == "pron" or part == "det" or part == "num" or part == "collapse_ee" or part == "persname" or part == "c_as_k" then if base[part] then error("Can't specify '" .. part .. "' twice: '" .. inside .. "'") end base[part] = true elseif part == "+" then if base.adj then error("Can't specify '+' twice: '" .. inside .. "'") end base.adj = true elseif part == "!" then if base.manual then error("Can't specify '!' twice: '" .. inside .. "'") end base.manual = true elseif rfind(part, "^mixedistem:") then if base.mixedistem then error("Can't specify 'mixedistem:' twice: '" .. inside .. "'") end base.mixedistem = rsub(part, "^mixedistem:", "") elseif rfind(part, "^decllemma:") then if base.decllemma then error("Can't specify 'decllemma:' twice: '" .. inside .. "'") end base.decllemma = rsub(part, "^decllemma:", "") elseif rfind(part, "^declgender:") then if base.declgender then error("Can't specify 'declgender:' twice: '" .. inside .. "'") end base.declgender = rsub(part, "^declgender:", "") elseif rfind(part, "^declnumber:") then if base.declnumber then error("Can't specify 'declnumber:' twice: '" .. inside .. "'") end base.declnumber = rsub(part, "^declnumber:", "") else error("Unrecognized indicator '" .. part .. "': '" .. inside .. "'") end end end return base end local function is_regular_noun(base) return not base.adj and not base.pron and not base.det and not base.num end local function process_declnumber(base) base.actual_number = base.number if base.declnumber then if base.declnumber == "sg" or base.declnumber == "du" or base.declnumber == "pl" then base.number = base.declnumber else error(("Unrecognized value '%s' for 'declnumber', should be 'sg' or 'pl'"):format(base.declnumber)) end end end local function set_defaults_and_check_bad_indicators(base) -- Set default values. local regular_noun = is_regular_noun(base) if base.pron then set_pron_defaults(base) elseif base.det then set_det_defaults(base) elseif base.num then set_num_defaults(base) elseif not base.adj then if not base.gender then if base.manual then base.gender = "none" else error("For nouns, gender must be specified") end end base.number = base.number or "allthree" process_declnumber(base) base.animacy = base.animacy or "inan" base.actual_gender = base.gender base.actual_animacy = base.animacy if base.declgender then if base.declgender == "m-pr" then base.gender = "m" base.animacy = "pr" elseif base.declgender == "m-anml" then base.gender = "m" base.animacy = "anml" elseif base.declgender == "m-in" then base.gender = "m" base.animacy = "inan" elseif base.declgender == "f" or base.declgender == "n" then base.gender = base.declgender else error(("Unrecognized value '%s' for 'declgender', should be 'm-an', 'm-in', 'f' or 'n'"):format(base.declgender)) end end end -- Check for bad indicator combinations. if (base.hard and 1 or 0) + (base.soft and 1 or 0) + (base.mixed and 1 or 0) > 1 then error("At most one of 'hard', 'soft' and 'mixed' can be specified") end if base.istem and base["-istem"] then error("'istem' and '-istem' cannot be specified together") end if (base.istem or base["-istem"]) then if not regular_noun then error("'istem' and '-istem' can only be specified with regular nouns") end end if base.declgender and not regular_noun then error("'declgender' can only be specified with regular nouns") end end local function set_all_defaults_and_check_bad_indicators(alternant_multiword_spec) local is_multiword = #alternant_multiword_spec.alternant_or_word_specs > 1 iut.map_word_specs(alternant_multiword_spec, function(base) set_defaults_and_check_bad_indicators(base) base.multiword = is_multiword -- FIXME: not currently used; consider deleting alternant_multiword_spec.has_clitic = alternant_multiword_spec.has_clitic or base.has_clitic if base.pron then alternant_multiword_spec.saw_pron = true else alternant_multiword_spec.saw_non_pron = true end if base.det then alternant_multiword_spec.saw_det = true else alternant_multiword_spec.saw_non_det = true end if base.num then alternant_multiword_spec.saw_num = true else alternant_multiword_spec.saw_non_num = true end end) end local function undo_second_palatalization(base, word, is_adjective) local function try(from, to) local stem = rmatch(word, "^(.*)" .. from .. "$") if stem then return stem .. to end return nil end return is_adjective and try("št", "sk") or is_adjective and try("čt", "ck") or try("c", "k") or -- FIXME, this could be wrong and c correct try("ř", "r") or try("z", "h") or -- FIXME, this could be wrong and z or g correct try("š", "ch") or word end -- For a plural-only lemma, synthesize a likely singular lemma. It doesn't have to be -- theoretically correct as long as it generates all the correct plural forms. local function synthesize_singular_lemma(base) if not base.stem_sets then base.stem_sets = {{}} end local lemma_determined -- Loop over all stem sets in case the user specified multiple ones (e.g. '*,-*'). If we try to reconstruct -- different lemmas for different stem sets, we'll throw an error below. for _, stems in ipairs(base.stem_sets) do local stem, lemma while true do if base.indecl then -- If specified as indeclinable, leave it alone; e.g. 'pesos' indeclinable plural of [[peso]]. lemma = base.lemma break elseif base.gender == "m" then stem = rmatch(base.lemma, "^(.*)i$") if stem then if base.soft then -- [[Blíženci]] "Gemini" -- Since the nominative singular has no ending. lemma = com.convert_paired_plain_to_palatal(stem, ending) else lemma = undo_second_palatalization(base, stem) end else stem = rmatch(base.lemma, "^(.*)ové$") or rmatch(base.lemma, "^(.*)[éyě]$") or rmatch(base.lemma, "^(.*)ie$") if stem then -- [[manželé]] "married couple", [[Velšané]] "Welsh people" lemma = stem else error(("Masculine plural-only lemma '%s' should end in -i, -ové or -é"):format(base.lemma)) end end if stems.reducible == nil then if rfind(lemma, com.cons_c .. "[ck]$") and not com.is_monosyllabic(base.lemma) then stems.reducible = true end if stems.reducible then lemma = dereduce(base, lemma) end end break elseif base.gender == "f" then stem = rmatch(base.lemma, "^(.*)y$") if stem then lemma = stem .. "a" break end stem = rmatch(base.lemma, "^(.*)[eě]$") if stem then lemma = base.lemma break end stem = rmatch(base.lemma, "^(.*)i$") if stem then -- i-stems. lemma = stem base.istem = true break end error(("Feminine plural-only lemma '%s' should end in -y, -ě, -e or -i"):format(base.lemma)) elseif base.gender == "n" then stem = rmatch(base.lemma, "^(.*)a$") if stem then lemma = stem .. "o" break end stem = rmatch(base.lemma, "^(.*)[eěí]$") if stem then -- singular lemma also in -e, -ě or -í; e.g. [[věčná loviště]] "[[happy hunting ground]]" lemma = base.lemma break end error(("Neuter plural-only lemma '%s' should end in -a, -í, -ě or -e"):format(base.lemma)) else error(("Internal error: Unrecognized gender '%s'"):format(base.gender)) end end if lemma_determined and lemma_determined ~= lemma then error(("Attempt to set two different singular lemmas '%s' and '%s'"):format(lemma_determined, lemma)) end lemma_determined = lemma end base.lemma = lemma_determined end -- For an adjectival lemma, synthesize the masc singular form. local function synthesize_adj_lemma(base) local stem if base.indecl then base.decl = "indecl" stem = base.lemma else local gender, number local function sub_ov(stem) stem = stem:gsub("ov$", "óv") return stem end while true do if base.number == "pl" then if base.gender == "m" then stem = rmatch(base.lemma, "^(.*)í$") if stem then if base.soft then -- nothing to do else if base.animacy ~= "pr" then error(("Masculine plural-only adjectival lemma '%s' ending in -í can only be animate unless '.soft' is specified"): format(base.lemma)) end base.lemma = undo_second_palatalization(base, stem, "is adjective") .. "ý" end break end stem = rmatch(base.lemma, "^(.*)é$") if stem then if base.animacy == "pr" then error(("Masculine plural-only adjectival lemma '%s' ending in -é must be inanimate"): format(base.lemma)) end base.lemma = stem .. "ý" break end stem = rmatch(base.lemma, "^(.*ov)i$") or rmatch(base.lemma, "^(.*in)i$") if stem then if base.animacy ~= "pr" then error(("Masculine plural-only possessive adjectival lemma '%s' ending in -i must be animate"): format(base.lemma)) end base.lemma = sub_ov(stem) break end stem = rmatch(base.lemma, "^(.*ov)y$") or rmatch(base.lemma, "^(.*in)y$") if stem then if base.animacy == "pr" then error(("Masculine plural-only possessive adjectival lemma '%s' ending in -y must be inanimate"): format(base.lemma)) end base.lemma = sub_ov(stem) break end if base.animacy == "pr" then error(("Animate masculine plural-only adjectival lemma '%s' should end in -í, -ovi or -ini"): format(base.lemma)) elseif base.soft then error(("Soft masculine plural-only adjectival lemma '%s' should end in -í"):format(base.lemma)) else error(("Inanimate masculine plural-only adjectival lemma '%s' should end in -é, -ovy or -iny"): format(base.lemma)) end elseif base.gender == "f" then stem = rmatch(base.lemma, "^(.*)é$") -- hard adjective if stem then base.lemma = stem .. "ý" break end stem = rmatch(base.lemma, "^(.*)í$") -- soft adjective if stem then break end stem = rmatch(base.lemma, "^(.*ov)y$") or rmatch(base.lemma, "^(.*in)y$") -- possessive adjective if stem then base.lemma = sub_ov(stem) break end error(("Feminine plural-only adjectival lemma '%s' should end in -é, -í, -ovy or -iny"):format(base.lemma)) else stem = rmatch(base.lemma, "^(.*)á$") -- hard adjective if stem then base.lemma = stem .. "ý" break end stem = rmatch(base.lemma, "^(.*)í$") -- soft adjective if stem then break end stem = rmatch(base.lemma, "^(.*ov)a$") or rmatch(base.lemma, "^(.*in)a$") -- possessive adjective if stem then base.lemma = sub_ov(stem) break end error(("Neuter plural-only adjectival lemma '%s' should end in -á, -í, -ova or -ina"):format(base.lemma)) end else if base.gender == "m" then stem = rmatch(base.lemma, "^(.*)[ýí]$") or rmatch(base.lemma, "^(.*)óv$") or rmatch(base.lemma, "^(.*)in$") if stem then break end error(("Masculine adjectival lemma '%s' should end in -ý, -í, -óv or -in"):format(base.lemma)) elseif base.gender == "f" then stem = rmatch(base.lemma, "^(.*)á$") if stem then base.lemma = stem .. "ý" break end stem = rmatch(base.lemma, "^(.*)ie$") if stem then base.lemma = stem .. "í" break end stem = rmatch(base.lemma, "^(.*ov)a$") or rmatch(base.lemma, "^(.*in)a$") if stem then base.lemma = sub_ov(stem) break end error(("Feminine adjectival lemma '%s' should end in -á, -í, -ova or -ina"):format(base.lemma)) else stem = rmatch(base.lemma, "^(.*)é$") if stem then base.lemma = stem .. "ý" break end stem = rmatch(base.lemma, "^(.*)ie$") if stem then base.lemma = stem .. "í" break end stem = rmatch(base.lemma, "^(.*ov)o$") or rmatch(base.lemma, "^(.*in)o$") if stem then base.lemma = sub_ov(stem) break end error(("Neuter adjectival lemma '%s' should end in -é, -í, -ovo or -ino"):format(base.lemma)) end end end base.decl = "adj" end -- Now set the stem sets if not given. -- Now set the stem sets if not given. if not base.stem_sets then base.stem_sets = {{reducible = false}} end for _, stems in ipairs(base.stem_sets) do -- Set the stems. stems.vowel_stem = stem stems.nonvowel_stem = stem end end -- Determine the declension based on the lemma, gender and number. The declension is set in base.decl. In the process, -- we set either base.vowel_stem (if the lemma ends in a vowel) or base.nonvowel_stem (if the lemma does not end in a -- vowel), which is used by determine_stems(). In some cases (specifically with certain foreign nouns), we set -- base.lemma to a new value; this is as if the user specified 'decllemma:'. local function determine_declension(base) if base.indecl then base.decl = "indecl" base.nonvowel_stem = base.lemma return end -- Determine declension stem = rmatch(base.lemma, "^(.*)a$") if stem then if base.gender == "m" then if base.animacy ~= "pr" then error("Masculine lemma in -a must be animate") end base.decl = "a-m" elseif base.gender == "f" then base.decl = "hard-f" elseif base.gender == "n" then if rfind(stem, "m$") then base.decl = "ma-n" else error("Lemma ending in -a and neuter must end in -ma") end end base.vowel_stem = stem return end local ending stem, ending = rmatch(base.lemma, "^(.*)ěnín$") if stem then if base.gender == "m" then base.decl = "ěnín-m" end base.vowel_stem = stem return end stem, ending = rmatch(base.lemma, "^(.*)enín$") if stem then if base.gender == "m" then base.decl = "enín-m" end base.vowel_stem = stem return end stem, ending = rmatch(base.lemma, "^(.*)ie$") if stem then if base.gender == "m" then base.decl = "ija-m" elseif base.gender == "f" then base.decl = "í-f" elseif base.gender == "n" then base.decl = "ie-n" end base.vowel_stem = stem return end stem, ending = rmatch(base.lemma, "^(.*)e$") if stem then if base.gender == "m" then if rfind(stem, "i") then base.decl = "ie-m" return else base.decl = "e-m" end elseif base.gender == "f" then base.decl = "e-f" else if base.tstem then base.decl = "e-tstem-n" else base.decl = "soft-n" end end base.vowel_stem = stem return end stem, ending = rmatch(base.lemma, "^(.*)ě$") if stem then if base.gender == "m" then base.decl = "ě-m" elseif base.gender == "f" then base.decl = "soft-f" else if base.nstem then base.decl = "n-n" else stem = com.onlyndt(stem) base.decl = "tstem-n" end end base.vowel_stem = stem return end stem = rmatch(base.lemma, "^(.*)o$") if stem then base.decl = "hard-n" base.vowel_stem = stem return end stem = rmatch(base.lemma, "^(.*[iy])$") if stem then if base.gender == "m" then base.decl = "i-m" elseif base.gender == "f" then if base.istem then base.decl = "istem-f" elseif base.rstem then base.decl = "r-f" else base.decl = "i-f" end if stem:find("i$") then stem = stem:gsub("i$", "") else error("Feminine nouns in -y are either soft or indeclinable; use '.soft' or '.indecl' as needed") end else error("Neuter nouns in -i are indeclinable; use '.indecl' if needed") end base.vowel_stem = stem return end stem = rmatch(base.lemma, "^(.*)í$") if stem then if base.gender == "m" then if base.ija then base.decl = "ija-m" else base.decl = "ijo-m" end elseif base.gender == "f" then base.decl = "í-f" else base.decl = "í-n" end base.vowel_stem = stem return end stem = rmatch(base.lemma, "^(.*)é$") if stem then if base.gender == "m" then base.decl = "é-m" elseif base.gender == "f" then base.decl = "é-f" else base.decl = "é-n" end base.vowel_stem = stem return end stem = rmatch(base.lemma, "^(.*" .. com.cons_c .. ")$") if stem then if base.gender == "m" then if base.tstem then stem = rmatch(base.lemma, "^(.*)et$") base.decl = "tstem-m" elseif base.ustem then base.decl = "u-m" elseif base.nstem then base.decl = "n-m" elseif base.hard then base.decl = "hard-m" elseif base.soft then base.decl = "soft-m" elseif rfind(base.lemma, com.inherently_soft_c .. "$") or rfind(base.lemma, "tel$") then base.decl = "soft-m" elseif base.istem then base.decl = "istem-m" else base.decl = "hard-m" end elseif base.gender == "f" then if base.soft then base.decl = "cons-f" elseif base.vstem or rfind(base.lemma, "ev$") then base.decl = "v-f" stem = rmatch(stem, "(.*)ev$") else base.decl = "istem-f" end elseif base.gender == "n" then if base.foreign then stem = rmatch(base.lemma, "^(.*)um$") or rmatch(base.lemma, "^(.*)on$") if not stem then error("Unrecognized neuter foreign ending, should be -um or -on") end base.decl = "hard-n" -- set the lemma here as if decllemma: were given base.lemma = stem .. "o" base.vowel_stem = stem return else error("Neuter nouns ending in a consonant should use '.foreign' or '.decllemma:...'") end end base.nonvowel_stem = stem return end error("Unrecognized ending for lemma: '" .. base.lemma .. "'") end -- Determine the default value for the 'reducible' flag. local function determine_default_reducible(base) -- Nouns in vowels other than -a/o as well as masculine nouns ending in all vowels don't have null endings so not -- reducible. Note, we are never called on adjectival nouns. if rfind(base.lemma, "[iyuíeě]$") or base.gender == "m" and rfind(base.lemma, "[ao]$") or base.tstem then base.default_reducible = false return end local stem stem = rmatch(base.lemma, "^(.*" .. com.cons_c .. ")$") if stem then -- When analyzing existing manual declensions in -ec and -ek, 290 were reducible vs. 23 non-reducible. Of these -- 23, 15 were monosyllabic (and none of the 290 reducible nouns were monosyllabic) -- and two of these were -- actually reducible but irregularly: [[švec]] "shoemaker" (gen sg 'ševce') and [[žnec]] "reaper (person)" -- (gen sg. 'žence'). Of the remaining 8 multisyllabic non-reducible words, two were actually reducible but -- irregularly: [[stařec]] "old man" (gen sg 'starce') and [[tkadlec]] "weaver" (gen sg 'tkalce'). The remaining -- six consisted of 5 compounds of monosyllabic words: [[dotek]], [[oblek]], [[kramflek]], [[pucflek]], -- [[pokec]], plus [[česnek]], which should be reducible but would lead to an impossible consonant cluster. if base.gender == "m" and rfind(stem, "e[ck]$") and not com.is_monosyllabic(stem) then base.default_reducible = true elseif base.gender == "f" and rfind(stem, "eň$") then -- [[pochodeň]] "torch", [[píseň]] "leather", [[žeň]] "harvest"; not [[reveň]] "rhubarb" or [[dřeň]] "pulp", -- which need an override. base.default_reducible = true else base.default_reducible = false end return end if base.number == "sg" then base.default_reducible = false return end if rfind(base.lemma, "isko$") then -- e.g. [[středisko]] base.default_reducible = "mixed" return end stem = rmatch(base.lemma, "^(.*)" .. com.vowel_c .. "$") if not stem then error(("Internal error: Something wrong, lemma '%s' doesn't end in consonant or vowel"):format(base.lemma)) end -- Substitute 'ch' with a single character to make the following code simpler. stem = stem:gsub("ch", com.TEMP_CH) if rfind(stem, com.cons_c .. "[lr]" .. com.cons_c .. "$") then -- [[vrba]], [[vlha]]; not reducible. (But note [[jablko]], reducible; needs override.) base.default_reducible = false elseif not base.foreign and (rfind(stem, com.cons_c .. "[bkhlrmnv]$") or base.c_as_k and rfind(stem, com.cons_c .. "c$")) then -- [[ayahuasca]] has gen pl 'ayahuasek' base.default_reducible = true elseif base.foreign and rfind(stem, com.cons_c .. "r$") then -- Foreign nouns in -CCum seem generally non-reducible in the gen pl except for those in -Crum like [[centrum]], -- Examples: [[album]], [[verbum]], [[signum]], [[interregnum]], [[sternum]]. [[infernum]] has gen pl 'infern/inferen'. base.default_reducible = true else base.default_reducible = false end end -- Determine the stems to use for each stem set: vowel and nonvowel stems, for singular -- and plural. We assume that one of base.vowel_stem or base.nonvowel_stem has been -- set in determine_declension(), depending on whether the lemma ends in -- a vowel. We construct all the rest given the reducibility, vowel alternation spec and -- any explicit stems given. We store the determined stems inside of the stem-set objects -- in `base.stem_sets`, meaning that if the user gave multiple reducible or vowel-alternation -- patterns, we will compute multiple sets of stems. The reason is that the stems may vary -- depending on the reducibility and vowel alternation. local function determine_stems(base) if not base.stem_sets then base.stem_sets = {{}} end -- Set default reducible and check for default mixed reducible, which needs to be expanded into two entries. local default_mixed_reducible = false for _, stems in ipairs(base.stem_sets) do if stems.reducible == nil then stems.reducible = base.default_reducible end if stems.reducible == "mixed" then default_mixed_reducible = true end end if default_mixed_reducible then local new_stem_sets = {} for _, stems in ipairs(base.stem_sets) do if stems.reducible == "mixed" then local non_reducible_copy = m_table.shallowCopy(stems) non_reducible_copy.reducible = false stems.reducible = true table.insert(new_stem_sets, stems) table.insert(new_stem_sets, non_reducible_copy) else table.insert(new_stem_sets, stems) end end base.stem_sets = new_stem_sets end -- Now determine all the stems for each stem set. for _, stems in ipairs(base.stem_sets) do local lemma_is_vowel_stem = not not base.vowel_stem if base.vowel_stem then stems.vowel_stem = base.vowel_stem stems.nonvowel_stem = stems.vowel_stem -- Apply vowel alternation first in cases like jádro -> jader; apply_vowel_alternation() will throw an error -- if the vowel being modified isn't the last vowel in the stem. stems.oblique_nonvowel_stem = com.apply_vowel_alternation(stems.vowelalt, stems.nonvowel_stem) if stems.reducible then stems.nonvowel_stem = dereduce(base, stems.nonvowel_stem) stems.oblique_nonvowel_stem = dereduce(base, stems.oblique_nonvowel_stem) end else stems.nonvowel_stem = base.nonvowel_stem -- The user specified #, #ě, ## or ##ě and we're dealing with a term like masculine [[bóh]] or feminine -- [[sól]] that ends in a consonant. In this case, all slots except the nom_s and maybe acc_s have vowel -- alternation. if stems.oblique_slots then stems.oblique_slots = "all" end stems.oblique_nonvowel_stem = com.apply_vowel_alternation(stems.vowelalt, stems.nonvowel_stem) if stems.reducible then stems.vowel_stem = com.reduce(base.nonvowel_stem) if not stems.vowel_stem then error("Unable to reduce stem '" .. base.nonvowel_stem .. "'") end else stems.vowel_stem = base.nonvowel_stem end end stems.oblique_vowel_stem = com.apply_vowel_alternation(stems.vowelalt, stems.vowel_stem) end end local function detect_indicator_spec(base) if base.pron then determine_pronoun_stems(base) elseif base.det then determine_determiner_stems(base) elseif base.num then determine_numeral_stems(base) elseif base.adj then process_declnumber(base) synthesize_adj_lemma(base) elseif base.manual then if base.stem_sets then -- FIXME, maybe this should be allowed? error("Reducible and vowel alternation specs cannot be given with manual declensions") end base.stem_sets = {{reducible = false, vowel_stem = "", nonvowel_stem = ""}} base.decl = "manual" else if base.number == "pl" then synthesize_singular_lemma(base) end determine_declension(base) determine_default_reducible(base) determine_stems(base) end end local function detect_all_indicator_specs(alternant_multiword_spec) -- Keep track of all genders seen in the singular and plural so we can determine whether to add the term to -- [[:Category:Czech nouns that change gender in the plural]]. alternant_multiword_spec.sg_genders = {} alternant_multiword_spec.pl_genders = {} iut.map_word_specs(alternant_multiword_spec, function(base) detect_indicator_spec(base) if base.number ~= "pl" then alternant_multiword_spec.sg_genders[base.actual_gender] = true end if base.number ~= "sg" then -- All t-stem masculines are neuter in the plural. local plgender plgender = base.actual_gender alternant_multiword_spec.pl_genders[plgender] = true end end) if (alternant_multiword_spec.saw_pron and 1 or 0) + (alternant_multiword_spec.saw_det and 1 or 0) + (alternant_multiword_spec.saw_num and 1 or 0) > 1 then error("Can't combine pronouns, determiners and/or numerals") end end local propagate_multiword_properties local function propagate_alternant_properties(alternant_spec, property, mixed_value, nouns_only) local seen_property for _, multiword_spec in ipairs(alternant_spec.alternants) do propagate_multiword_properties(multiword_spec, property, mixed_value, nouns_only) if seen_property == nil then seen_property = multiword_spec[property] elseif multiword_spec[property] and seen_property ~= multiword_spec[property] then seen_property = mixed_value end end alternant_spec[property] = seen_property end propagate_multiword_properties = function(multiword_spec, property, mixed_value, nouns_only) local seen_property = nil local last_seen_nounal_pos = 0 local word_specs = multiword_spec.alternant_or_word_specs or multiword_spec.word_specs for i = 1, #word_specs do local is_nounal if word_specs[i].alternants then propagate_alternant_properties(word_specs[i], property, mixed_value) is_nounal = not not word_specs[i][property] elseif nouns_only then is_nounal = is_regular_noun(word_specs[i]) else is_nounal = not not word_specs[i][property] end if is_nounal then if not word_specs[i][property] then error("Internal error: noun-type word spec without " .. property .. " set") end for j = last_seen_nounal_pos + 1, i - 1 do word_specs[j][property] = word_specs[j][property] or word_specs[i][property] end last_seen_nounal_pos = i if seen_property == nil then seen_property = word_specs[i][property] elseif seen_property ~= word_specs[i][property] then seen_property = mixed_value end end end if last_seen_nounal_pos > 0 then for i = last_seen_nounal_pos + 1, #word_specs do word_specs[i][property] = word_specs[i][property] or word_specs[last_seen_nounal_pos][property] end end multiword_spec[property] = seen_property end local function propagate_properties_downward(alternant_multiword_spec, property, default_propval) local function set_and_fetch(obj, default) local retval if obj[property] then retval = obj[property] else obj[property] = default retval = default end if not obj["actual_" .. property] then obj["actual_" .. property] = retval end return retval end local propval1 = set_and_fetch(alternant_multiword_spec, default_propval) for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do local propval2 = set_and_fetch(alternant_or_word_spec, propval1) if alternant_or_word_spec.alternants then for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do local propval3 = set_and_fetch(multiword_spec, propval2) for _, word_spec in ipairs(multiword_spec.word_specs) do local propval4 = set_and_fetch(word_spec, propval3) if propval4 == "mixed" then -- FIXME, use clearer error message. error("Attempt to assign mixed " .. property .. " to word") end set_and_fetch(word_spec, propval4) end end else if propval2 == "mixed" then -- FIXME, use clearer error message. error("Attempt to assign mixed " .. property .. " to word") end set_and_fetch(alternant_or_word_spec, propval2) end end end --[=[ Propagate `property` (one of "animacy", "gender" or "number") from nouns to adjacent adjectives. We proceed as follows: 1. We assume the properties in question are already set on all nouns. This should happen in set_defaults_and_check_bad_indicators(). 2. We first propagate properties upwards and sideways. We recurse downwards from the top. When we encounter a multiword spec, we proceed left to right looking for a noun. When we find a noun, we fetch its property (recursing if the noun is an alternant), and propagate it to any adjectives to its left, up to the next noun to the left. When we have processed the last noun, we also propagate its property value to any adjectives to the right (to handle e.g. [[anděl strážný]] "guardian angel", where the adjective [[strážný]] should inherit the 'masculine' and 'animate' properties of [[anděl]]). Finally, we set the property value for the multiword spec itself by combining all the non-nil properties of the individual elements. If all non-nil properties have the same value, the result is that value, otherwise it is `mixed_value` (which is "mixed" for animacy and gender, but "allthree" for number). 3. When we encounter an alternant spec in this process, we recursively process each alternant (which is a multiword spec) using the previous step, and combine any non-nil properties we encounter the same way as for multiword specs. 4. The effect of steps 2 and 3 is to set the property of each alternant and multiword spec based on its children or its neighbors. ]=] local function propagate_properties(alternant_multiword_spec, property, default_propval, mixed_value) propagate_multiword_properties(alternant_multiword_spec, property, mixed_value, "nouns only") propagate_multiword_properties(alternant_multiword_spec, property, mixed_value, false) propagate_properties_downward(alternant_multiword_spec, property, default_propval) end local function determine_noun_status(alternant_multiword_spec) for i, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do if alternant_or_word_spec.alternants then local is_noun = false for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do for j, word_spec in ipairs(multiword_spec.word_specs) do if is_regular_noun(word_spec) then multiword_spec.first_noun = j is_noun = true break end end end if is_noun then alternant_multiword_spec.first_noun = i end elseif is_regular_noun(alternant_or_word_spec) then alternant_multiword_spec.first_noun = i return end end end -- Set the part of speech based on properties of the individual words. local function set_pos(alternant_multiword_spec) if alternant_multiword_spec.args.pos then alternant_multiword_spec.pos = alternant_multiword_spec.args.pos elseif alternant_multiword_spec.saw_pron and not alternant_multiword_spec.saw_non_pron then alternant_multiword_spec.pos = "pronoun" elseif alternant_multiword_spec.saw_det and not alternant_multiword_spec.saw_non_det then alternant_multiword_spec.pos = "determiner" elseif alternant_multiword_spec.saw_num and not alternant_multiword_spec.saw_non_num then alternant_multiword_spec.pos = "numeral" else alternant_multiword_spec.pos = "noun" end alternant_multiword_spec.plpos = require(en_utilities_module).pluralize(alternant_multiword_spec.pos) end local function normalize_all_lemmas(alternant_multiword_spec, pagename) iut.map_word_specs(alternant_multiword_spec, function(base) if base.lemma == "" then base.lemma = pagename end base.orig_lemma = base.lemma base.orig_lemma_no_links = m_links.remove_links(base.lemma) local lemma = base.orig_lemma_no_links -- If the lemma is all-uppercase, lowercase it but note this, so that later in combine_stem_ending() we convert it -- back to uppercase. This allows us to handle all-uppercase acronyms without a lot of extra complexity. -- FIXME: This may not make sense at all. if uupper(lemma) == lemma then base.all_uppercase = true lemma = ulower(lemma) end base.actual_lemma = lemma base.lemma = base.decllemma or lemma end) end local function decline_noun(base) for _, stems in ipairs(base.stem_sets) do if not decls[base.decl] then error("Internal error: Unrecognized declension type '" .. base.decl .. "'") end decls[base.decl](base, stems) end handle_derived_slots_and_overrides(base) local function copy(from_slot, to_slot) base.forms[to_slot] = base.forms[from_slot] end copy("nom_d", "acc_d") copy("nom_d", "voc_d") copy("gen_d", "loc_d") copy("dat_d", "ins_d") if base.actual_number ~= base.number then local source_num = base.number == "sg" and "_s" or base.number == "du" and "_d" or "_p" local dest_num = base.number == "sg" and {"_p", "_d"} or base.number == "du" and {"_s", "_p"} or {"_s", "_d"} for case, _ in pairs(cases) do copy(case .. source_num, case .. dest_num) copy("nom" .. source_num .. "_linked", "nom" .. dest_num .. "_linked") end if base.actual_number ~= "allthree" then local erase_num = base.actual_number == "sg" and {"_d", "_p"} or base.actual_number == "du" and {"_s", "_p"} or {"_s", "_d"} for case, _ in pairs(cases) do base.forms[case .. erase_num] = nil end base.forms["nom" .. erase_num .. "_linked"] = nil end end end local function get_variants(form) return nil --[=[ FIXME return form:find(com.VAR1) and "var1" or form:find(com.VAR2) and "var2" or form:find(com.VAR3) and "var3" or nil ]=] end -- Compute the categories to add the noun to, as well as the annotation to display in the -- declension title bar. We combine the code to do these functions as both categories and -- title bar contain similar information. local function compute_categories_and_annotation(alternant_multiword_spec) local all_cats = {} local function insert(cattype) -- m_table.insertIfNot(all_cats, "Old Czech " .. cattype) end if alternant_multiword_spec.pos == "noun" or alternant_multiword_spec == "numeral" then if alternant_multiword_spec.actual_number == "sg" then -- insert("uncountable nouns") elseif alternant_multiword_spec.actual_number == "du" then -- insert("dualia tantum") elseif alternant_multiword_spec.actual_number == "pl" then -- insert("pluralia tantum") end end local annotation local annparts = {} local decldescs = {} local vowelalts = {} local foreign = {} local irregs = {} local stemspecs = {} local reducible = nil local function get_genanim(gender, animacy) local gender_code_to_desc = { m = "ပုလ္လိၚ်", f = "ဣတ္တိလိၚ်", n = "နပုလ္လိၚ်", none = nil, } local animacy_code_to_desc = { pr = "personal", anml = "animal", inan = "inanimate", none = nil, } local descs = {} table.insert(descs, gender_code_to_desc[gender]) if gender ~= "f" and gender ~= "n" then -- masculine or "none" (e.g. certain pronouns and numerals) table.insert(descs, animacy_code_to_desc[animacy]) end return table.concat(descs, " ") end local function trim(text) text = text:gsub(" +", " ") return mw.text.trim(text) end local function do_word_spec(base) local actual_genanim = get_genanim(base.actual_gender, base.actual_animacy) local declined_genanim = get_genanim(base.gender, base.animacy) local genanim if base.actual_gender ~= base.gender then genanim = ("%s (declined as %s)"):format(actual_genanim, declined_genanim) -- insert("nouns with actual gender different from declined gender") else genanim = actual_genanim end if base.actual_gender == "m" then -- Insert a category for 'Czech masculine animate nouns' or 'Czech masculine inanimate nouns'; the base categories -- [[:Category:Czech masculine nouns]], [[:Czech animate nouns]] are auto-inserted. insert(actual_genanim .. " " .. alternant_multiword_spec.plpos) end for _, stems in ipairs(base.stem_sets) do local props = declprops[base.decl] local cats = props.cat if type(cats) == "function" then cats = cats(base, stems) end if type(cats) == "string" then cats = {cats} end local default_desc for i, cat in ipairs(cats) do if not cat:find("GENDER") and not cat:find("GENPOS") and not cat:find("POS") then cat = cat end cat = cat:gsub("GENPOS", "GENDER POS") if not cat:find("POS") then cat = cat .. " POS" end if i == #cats then default_desc = cat:gsub(" POS", "") end cat = cat:gsub("GENDER", actual_genanim) cat = cat:gsub("POS", alternant_multiword_spec.plpos) -- Need to trim `cat` because actual_genanim may be an empty string. insert(trim(cat)) end local desc = props.desc if type(desc) == "function" then desc = desc(base, stems) end desc = desc or default_desc desc = desc:gsub("GENDER", genanim) -- Need to trim `desc` because genanim may be an empty string. m_table.insertIfNot(decldescs, trim(desc)) local vowelalt if stems.vowelalt == "quant" then vowelalt = "quant-alt" -- insert("nouns with quantitative vowel alternation") elseif stems.vowelalt == "quant-ě" then vowelalt = "í-ě-alt" -- insert("nouns with í-ě alternation") end if vowelalt then m_table.insertIfNot(vowelalts, vowelalt) end if reducible == nil then reducible = stems.reducible elseif reducible ~= stems.reducible then reducible = "mixed" end if stems.reducible then -- insert("nouns with reducible stem") end if base.foreign then m_table.insertIfNot(foreign, "foreign") if not base.decllemma then -- NOTE: there are nouns that use both 'foreign' and 'decllemma', e.g. [[Zeus]]. insert("nouns with regular foreign declension") end end -- User-specified 'decllemma:' indicates irregular stem. Don't consider foreign nouns in -us/-os/-es, -um/-on or -- silent -e (e.g. [[software]]) where this ending is simply dropped in oblique and plural forms as irregular; -- there are too many of these and they are already categorized above as 'nouns with regular foreign declension'. if base.decllemma then m_table.insertIfNot(irregs, "irreg-stem") insert("nouns with irregular stem") end m_table.insertIfNot(stemspecs, stems.vowel_stem) end end local key_entry = alternant_multiword_spec.first_noun or 1 if #alternant_multiword_spec.alternant_or_word_specs >= key_entry then local alternant_or_word_spec = alternant_multiword_spec.alternant_or_word_specs[key_entry] if alternant_or_word_spec.alternants then for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do key_entry = multiword_spec.first_noun or 1 if #multiword_spec.word_specs >= key_entry then do_word_spec(multiword_spec.word_specs[key_entry]) end end else do_word_spec(alternant_or_word_spec) end end if alternant_multiword_spec.actual_number == "sg" or alternant_multiword_spec.actual_number == "pl" or alternant_multiword_spec.actual_number == "du" then -- not "allthree" or "none" (for [[sebe]]) table.insert(annparts, alternant_multiword_spec.actual_number == "sg" and "sg-only" or alternant_multiword_spec.actual_number == "du" and "du-only" or "pl-only") end if #decldescs == 0 then table.insert(annparts, "indecl") else table.insert(annparts, table.concat(decldescs, " // ")) end if #vowelalts > 0 then table.insert(annparts, table.concat(vowelalts, "/")) end if reducible == "mixed" then table.insert(annparts, "mixed-reducible") elseif reducible then table.insert(annparts, "reducible") end if #foreign > 0 then table.insert(annparts, table.concat(foreign, " // ")) end if #irregs > 0 then table.insert(annparts, table.concat(irregs, " // ")) end alternant_multiword_spec.annotation = table.concat(annparts, " ") if #stemspecs > 1 then insert("nouns with multiple stems") end if alternant_multiword_spec.actual_number == "allthree" and not m_table.deepEquals(alternant_multiword_spec.sg_genders, alternant_multiword_spec.pl_genders) then insert("nouns that change gender in the plural") end alternant_multiword_spec.categories = all_cats end local function show_forms(alternant_multiword_spec) local lemmas = {} for _, slot in ipairs(potential_lemma_slots) do if alternant_multiword_spec.forms[slot] then for _, formobj in ipairs(alternant_multiword_spec.forms[slot]) do -- FIXME, now can support footnotes as qualifiers in headwords? table.insert(lemmas, formobj.form) end break end end local props = { lemmas = lemmas, slot_table = alternant_multiword_spec.output_noun_slots, lang = lang, canonicalize = function(form) -- return com.remove_variant_codes(form) return form end, } iut.show_forms(alternant_multiword_spec.forms, props) end local function make_table(alternant_multiword_spec) local forms = alternant_multiword_spec.forms local function template_prelude(min_width) return rsub([=[ <div> <div class="NavFrame" style="max-width: MINWIDTHem"> <div class="NavHead" style="background:var(--wikt-palette-lighterblue)">{title}{annotation}</div> <div class="NavContent"> {\op}| style="background:var(--wikt-palette-palecyan);text-align:center;display:table;width:100%" class="inflection-table" |- ]=], "MINWIDTH", min_width) end local function template_postlude() return [=[ |{\cl}{notes_clause} This table shows the most common forms around the 13th century.</div></div></div>]=] end local table_spec_allthree = template_prelude("45") .. [=[ ! style="width:33%;background:var(--wikt-palette-lightblue)" | ! style="background:var(--wikt-palette-lightblue)" | ကိုန်ဨကဝုစ် ! style="background:var(--wikt-palette-lightblue)" | ၜါလ္ပာ် ! style="background:var(--wikt-palette-lightblue)" | ကိုန်ဗဟုဝစ် |- !style="background:var(--wikt-palette-lighterblue)"|မဒုၚ်ယၟု | {nom_s} | {nom_d} | {nom_p} |- !style="background:var(--wikt-palette-lighterblue)"|ဗဳဇဂကူ | {gen_s} | {gen_d} | {gen_p} |- !style="background:var(--wikt-palette-lighterblue)"|ပြကမ္မကာရက | {dat_s} | {dat_d} | {dat_p} |- !style="background:var(--wikt-palette-lighterblue)"|ကမ္မကာရက | {acc_s} | {acc_d} | {acc_p} |- !style="background:var(--wikt-palette-lighterblue)"|ပရေၚ်ဂယိုၚ်လမျီု | {voc_s} | {voc_d} | {voc_p} |- !style="background:var(--wikt-palette-lighterblue)"|ခၞံဗဒှ်ဌာန်မတန်တဴ | {loc_s} | {loc_d} | {loc_p} |- !style="background:var(--wikt-palette-lighterblue)"|တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {ins_s} | {ins_d} | {ins_p} ]=] .. template_postlude() local function get_table_spec_one_number(number, numcode) local table_spec_one_number = [=[ ! style="width:33%;background:var(--wikt-palette-lightblue)" | ! style="background:var(--wikt-palette-lightblue)" | NUMBER |- !style="background:var(--wikt-palette-lighterblue)"|မဒုၚ်ယၟု | {nom_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ဗဳဇဂကူ | {gen_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ပြကမ္မကာရက | {dat_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ကမ္မကာရက | {acc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ပရေၚ်ဂယိုၚ်လမျီု | {voc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ခၞံဗဒှ်ဌာန်မတန်တဴ | {loc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {ins_CODE} ]=] return template_prelude("30") .. table_spec_one_number:gsub("NUMBER", number):gsub("CODE", numcode) .. template_postlude() end local function get_table_spec_one_number_clitic(number, numcode) local table_spec_one_number_clitic = [=[ ! rowspan=2 style="width:33%;background:var(--wikt-palette-lightblue)"| ! colspan=2 style="background:var(--wikt-palette-lightblue)" | NUMBER |- ! style="width:33%;background:var(--wikt-palette-lightblue)" | သ္ပလဝ်ဇြိုဟ်ဇြိုဟ်နက်နက် ! style="background:var(--wikt-palette-lightblue)" | ကလေတ်တေတ် |- !style="background:var(--wikt-palette-lighterblue)"|မဒုၚ်ယၟု | colspan=2 | {nom_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ဗဳဇဂကူ | {gen_CODE} | {clitic_gen_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ပြကမ္မကာရက | {dat_CODE} | {clitic_dat_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ကမ္မကာရက | {acc_CODE} | {clitic_acc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ပရေၚ်ဂယိုၚ်လမျီု | colspan=2 | {voc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|ခၞံဗဒှ်ဌာန်မတန်တဴ | colspan=2 | {loc_CODE} |- !style="background:var(--wikt-palette-lighterblue)"|တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | colspan=2 | {ins_CODE} ]=] return template_prelude("40") .. table_spec_one_number_clitic:gsub("NUMBER", number):gsub("CODE", numcode) .. template_postlude() end local notes_template = [=[ <div style="width:100%;text-align:left;background:var(--wikt-palette-lightblue)"> <div style="display:inline-block;text-align:left;padding-left:1em;padding-right:1em"> {footnote} </div></div> ]=] if alternant_multiword_spec.title then forms.title = alternant_multiword_spec.title else forms.title = 'မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု <i lang="zlw-ocs">' .. forms.lemma .. '</i>' end local annotation = alternant_multiword_spec.annotation if annotation == "" then forms.annotation = "" else forms.annotation = " (<span style=\"font-size: smaller;\">" .. annotation .. "</span>)" end local number, numcode if alternant_multiword_spec.actual_number == "sg" then number, numcode = "singular", "s" elseif alternant_multiword_spec.actual_number == "du" then number, numcode = "dual", "d" elseif alternant_multiword_spec.actual_number == "pl" then number, numcode = "plural", "p" elseif alternant_multiword_spec.actual_number == "none" then -- used for [[sebe]] number, numcode = "", "s" end local table_spec = alternant_multiword_spec.actual_number == "allthree" and table_spec_allthree or alternant_multiword_spec.has_clitic and get_table_spec_one_number_clitic(number, numcode) or get_table_spec_one_number(number, numcode) forms.notes_clause = forms.footnote ~= "" and m_string_utilities.format(notes_template, forms) or "" return m_string_utilities.format(table_spec, forms) end local function compute_headword_genders(alternant_multiword_spec) local genders = {} local number if alternant_multiword_spec.actual_number == "pl" then number = "-p" elseif alternant_multiword_spec.actual_number == "du" then number = "-d" else number = "" end iut.map_word_specs(alternant_multiword_spec, function(base) local animacy = base.animacy if animacy == "inan" then animacy = "in" end m_table.insertIfNot(genders, base.gender .. "-" .. animacy .. number) end) return genders end -- Externally callable function to parse and decline a noun given user-specified arguments. -- Return value is ALTERNANT_MULTIWORD_SPEC, an object where the declined forms are in -- `ALTERNANT_MULTIWORD_SPEC.forms` for each slot. If there are no values for a slot, the -- slot key will be missing. The value for a given slot is a list of objects -- {form=FORM, footnotes=FOOTNOTES}. function export.do_generate_forms(parent_args, from_headword) local params = { [1] = {required = true, default = "bóh<m.pr.#>"}, title = {}, pagename = {}, json = {type = "boolean"}, pos = {}, } if from_headword then params["head"] = {list = true} params["lemma"] = {list = true} params["g"] = {list = true} params["f"] = {list = true} params["m"] = {list = true} params["adj"] = {list = true} params["dim"] = {list = true} params["id"] = {} end local args = m_para.process(parent_args, params) local parse_props = { parse_indicator_spec = parse_indicator_spec, angle_brackets_omittable = true, allow_blank_lemma = true, } local alternant_multiword_spec = iut.parse_inflected_text(args[1], parse_props) alternant_multiword_spec.title = args.title alternant_multiword_spec.args = args local pagename = args.pagename or from_headword and args.head[1] or mw.loadData("Module:headword/data").pagename normalize_all_lemmas(alternant_multiword_spec, pagename) set_all_defaults_and_check_bad_indicators(alternant_multiword_spec) -- These need to happen before detect_all_indicator_specs() so that adjectives get their genders and numbers set -- appropriately, which are needed to correctly synthesize the adjective lemma. propagate_properties(alternant_multiword_spec, "animacy", "inan", "mixed") propagate_properties(alternant_multiword_spec, "number", "allthree", "allthree") -- FIXME, the default value (third param) used to be 'm' with a comment indicating that this applied only to -- plural adjectives, where it didn't matter; but in Czech, plural adjectives are distinguished for gender and -- animacy. Make sure 'mixed' works. propagate_properties(alternant_multiword_spec, "gender", "mixed", "mixed") detect_all_indicator_specs(alternant_multiword_spec) -- Propagate 'actual_number' after calling detect_all_indicator_specs(), which sets 'actual_number' for adjectives. propagate_properties(alternant_multiword_spec, "actual_number", "allthree", "allthree") determine_noun_status(alternant_multiword_spec) set_pos(alternant_multiword_spec) alternant_multiword_spec.output_noun_slots = get_output_noun_slots(alternant_multiword_spec) local inflect_props = { skip_slot = function(slot) return skip_slot(alternant_multiword_spec.actual_number, slot) end, slot_table = alternant_multiword_spec.output_noun_slots, get_variants = get_variants, inflect_word_spec = decline_noun, } iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props) compute_categories_and_annotation(alternant_multiword_spec) alternant_multiword_spec.genders = compute_headword_genders(alternant_multiword_spec) if args.json then alternant_multiword_spec.args = nil return require("Module:JSON").toJSON(alternant_multiword_spec) end return alternant_multiword_spec end -- Entry point for {{zlw-ocs-ndecl}}. Template-callable function to parse and decline a noun given -- user-specified arguments and generate a displayable table of the declined forms. function export.show(frame) local parent_args = frame:getParent().args local alternant_multiword_spec = export.do_generate_forms(parent_args) if type(alternant_multiword_spec) == "string" then -- JSON return value return alternant_multiword_spec end show_forms(alternant_multiword_spec) return make_table(alternant_multiword_spec) .. require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang, nil, nil, force_cat) end return export hcb7v4yr0tk1hylfjv6hvjk6hgbw04o မဝ်ဂျူ:zlw-ocs-common/doc 828 296550 398027 2026-07-09T13:35:36Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly>" 398027 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly> 0pcevpkbalm4klnl6k49e3xzn9dt0gh မဝ်ဂျူ:zlw-ocs-noun/doc 828 296551 398028 2026-07-09T13:36:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly>" 398028 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly> 0pcevpkbalm4klnl6k49e3xzn9dt0gh ကဏ္ဍ:မဝ်ဂျူပွမပြံၚ်လှာဲချက်ခ်တြေံဂမၠိုၚ် 14 296552 398029 2026-07-09T13:38:19Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူချက်ခ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]]" 398029 wikitext text/x-wiki [[ကဏ္ဍ:မဝ်ဂျူချက်ခ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ချက်ခ်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] a3ubd0pynrwmitll7nfx05syyn8mti3 မဝ်ဂျူ:zlw-ocs-adjective 828 296553 398030 2026-07-09T13:56:54Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "local export = {} --[=[ Authorship: Zhnka, heavily based on [[Module:cs-adjective]] by Benwing ]=] --[=[ TERMINOLOGY: -- "slot" = A particular combination of case/gender/number. Example slot names for adjectives are "gen_f" (genitive feminine singular) and "nom_mp" (animate nominative masculine plural). Each slot is filled with zero or more forms. -- "form" = The declined Old Czech form representing the va..." 398030 Scribunto text/plain local export = {} --[=[ Authorship: Zhnka, heavily based on [[Module:cs-adjective]] by Benwing ]=] --[=[ TERMINOLOGY: -- "slot" = A particular combination of case/gender/number. Example slot names for adjectives are "gen_f" (genitive feminine singular) and "nom_mp" (animate nominative masculine plural). Each slot is filled with zero or more forms. -- "form" = The declined Old Czech form representing the value of a given slot. -- "lemma" = The dictionary form of a given Old Czech term. Generally the nominative masculine singular, but may occasionally be another form if the nominative masculine singular is missing. ]=] local lang = require("Module:languages").getByCode("zlw-ocs") local m_links = require("Module:links") local m_table = require("Module:table") local m_string_utilities = require("Module:string utilities") local iut = require("Module:inflection utilities") local put = require("Module:parse utilities") local com = require("Module:zlw-ocs-common") local en_utilities_module = "Module:en-utilities" local current_title = mw.title.getCurrentTitle() local NAMESPACE = current_title.nsText local PAGENAME = current_title.text local u = mw.ustring.char local rsplit = mw.text.split local rfind = mw.ustring.find local rmatch = mw.ustring.match local rgmatch = mw.ustring.gmatch local rsubn = mw.ustring.gsub local ulen = mw.ustring.len local uupper = mw.ustring.upper -- version of rsubn() that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end -- version of rsubn() that returns a 2nd argument boolean indicating whether -- a substitution was made. local function rsubb(term, foo, bar) local retval, nsubs = rsubn(term, foo, bar) return retval, nsubs > 0 end -- All slots that are used by any of the different tables. The key is the slot and the value is a list of the tables -- that use the slot. "" = regular, "plonly" = special=plonly in {{zlw-ocs-adecl-manual}}, "dva" = special=dva in -- {{zlw-ocs-adecl-manual}}. local input_adjective_slots = { nom_m = {""}, nom_f = {""}, nom_n = {""}, nom_md = {"", "duonly"}, nom_fnd = {"", "duonly"}, nom_mp = {"", "plonly"}, nom_fp = {"", "plonly"}, nom_np = {"", "plonly"}, gen_mn = {""}, gen_f = {""}, gen_d = {"", "duonly"}, gen_p = {"", "plonly"}, dat_mn = {""}, dat_f = {""}, dat_d = {"", "duonly"}, dat_p = {"", "plonly"}, acc_m_an = {""}, acc_m_in = {""}, acc_f = {""}, acc_n = {""}, acc_md = {"", "duonly"}, acc_fnd = {"", "duonly"}, acc_mfp = {"", "plonly"}, acc_np = {"", "plonly"}, ins_mn = {""}, ins_f = {""}, ins_d = {"", "duonly"}, ins_p = {"", "plonly"}, loc_mn = {""}, loc_f = {""}, loc_d = {"", "duonly"}, loc_p = {"", "plonly"}, } local output_adjective_slots = { nom_m = "nom|m|s", nom_f = "nom|f|s", nom_n = "nom|n|s", nom_md = "nom|m|d", nom_fnd = "nom|f//n|d", nom_mp = "nom|m|p", nom_fp = "nom|f|p", nom_np = "nom|n|p", nom_mp = "nom|m|p", nom_fnp = "nom|f//n|p", gen_mn = "gen|m//n|s", gen_f = "gen|f|s", gen_d = "gen|d", gen_p = "gen|p", dat_mn = "dat|m//n|s", dat_f = "dat|f|s", dat_d = "dat|d", dat_p = "dat|p", acc_m_an = "an|acc|m|s", acc_m_in = "in|acc|m|s", acc_f = "acc|f|s", acc_n = "acc|n|s", acc_md = "acc|m|d", acc_fnd = "acc|f//n|d", acc_mfp = "acc|m//f|p", acc_np = "acc|n|p", acc_mp = "acc|m|p", acc_fnp = "acc|f//n|p", ins_mn = "ins|m//n|s", ins_f = "ins|f|s", ins_d = "ins|d", ins_p = "ins|p", loc_mn = "loc|m//n|s", loc_f = "loc|f|s", loc_d = "loc|d", loc_p = "loc|p", } local function get_output_adjective_slots(alternant_multiword_spec) return output_adjective_slots end local function combine_stem_ending(stem, ending) if stem == "?" then return "?" else return stem .. ending end end local function add(base, slot, stems, endings, footnote) if stems then stems = iut.combine_form_and_footnotes(stems, footnote) end iut.add_forms(base.forms, slot, stems, endings, combine_stem_ending) end local function add_normal_decl(base, stems, nom_m, nom_f, nom_n, nom_md, nom_fnd, nom_mp, nom_fp, nom_np, gen_mn, gen_f, gen_d, gen_p, dat_mn, dat_f, dat_d, dat_p, acc_f, loc_mn, loc_f, loc_d, loc_p, ins_mn, ins_f, ins_d, ins_p, footnote, acc_m_an) if stems then stems = iut.combine_form_and_footnotes(stems, footnote) end add(base, "nom_m", stems, nom_m) add(base, "nom_f", stems, nom_f) add(base, "nom_n", stems, nom_n) add(base, "nom_md", stems, nom_md) add(base, "nom_fnd", stems, nom_fnd) add(base, "nom_mp", stems, nom_mp) add(base, "nom_fp", stems, nom_fp) add(base, "nom_np", stems, nom_np) add(base, "gen_mn", stems, gen_mn) add(base, "gen_f", stems, gen_f) add(base, "gen_d", stems, gen_d) add(base, "gen_p", stems, gen_p) add(base, "dat_mn", stems, dat_mn) add(base, "dat_f", stems, dat_f) add(base, "dat_d", stems, dat_d) add(base, "dat_p", stems, dat_p) add(base, "acc_f", stems, acc_f) add(base, "loc_mn", stems, loc_mn) add(base, "loc_f", stems, loc_f) add(base, "loc_d", stems, loc_d) add(base, "loc_p", stems, loc_p) add(base, "ins_mn", stems, ins_mn) add(base, "ins_f", stems, ins_f) add(base, "ins_d", stems, ins_d) add(base, "ins_p", stems, ins_p) add(base, "acc_m_an", stems, acc_m_an) end local decls = {} decls["normal"] = function(base) local stem, suffix -- hard in -ý stem, suffix = rmatch(base.lemma, "^(.*)(ý)$") if stem then if vowel_alt ~= nil then add_normal_decl(base, com.apply_second_palatalization(vowel_alt, "is adj"), nil, nil, nil, nil, nil, "í") if not rfind(base.lemma, ".*lý$") then add_normal_decl(base, com.apply_second_palatalization(vowel_alt, "is adj"), nil, nil, nil, nil, "iej", nil, nil, nil, nil, nil, nil, nil, nil, "iej", nil, nil, nil, "iem", "iej") else add_normal_decl(base, vowel_alt, nil, nil, nil, nil, "éj", nil, nil, nil, nil, nil, nil, nil, nil, "éj", nil, nil, nil, "ém", "éj") end add_normal_decl(base, stem, "ý", "á", "é", "á", "éj", {}, "é", "á", "ého", "é", "ú", "ých", "ému", "éj", "ýma", "ým", "ú", "ém", "éj", "ú", "ých", "ým", "ú", "ýma", "ými" ) return else add_normal_decl(base, com.apply_second_palatalization(stem, "is adj"), nil, nil, nil, nil, nil, "í") if not rfind(base.lemma, ".*lý$") then add_normal_decl(base, com.apply_second_palatalization(stem, "is adj"), nil, nil, nil, nil, "iej", nil, nil, nil, nil, nil, nil, nil, nil, "iej", nil, nil, nil, "iem", "iej") end add_normal_decl(base, stem, "ý", "á", "é", "á", "éj", {}, "é", "á", "ého", "é", "ú", "ých", "ému", "éj", "ýma", "ým", "ú", "ém", "éj", "ú", "ých", "ým", "ú", "ýma", "ými" ) return end end if base.comp then stem, suffix = rmatch(base.lemma, "(.*)(í)$") if stem then add_normal_decl(base, stem, "í", "ši", "še", "še", "še", "še", "še", "še", "šě", "šě", nil, nil, "šu", "ši", nil, nil, "šu", "ši", "ši", nil, nil, "šem", "šú") return end else -- soft in -í stem, suffix = rmatch(base.lemma, "^(.*)(í)$") if stem then add_normal_decl(base, stem, "í", {}, {}, {}, "í", "í", {}, {}, {}, {}, {}, "ích", {}, "í", "íma", "ím", {}, {}, "í", {}, "ích", "ím", {}, "íma", "ími" ) add_normal_decl(base, com.convert_paired_plain_to_palatal(stem, ending), nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "ú", nil, nil, nil, nil, nil, "ú", nil, nil, "ú", nil, nil, "ú") if rfind(base.lemma, ".*lí$") then add_normal_decl(base, stem, nil, "é", "é", "é", "éj", nil, "é", "é", "ého", "é", nil, nil, "ému", "éj", nil, nil, nil, "ém", "éj") else add_normal_decl(base, stem, nil, "ie", "ie", "ie", "iej", nil, "ie", "ie", "ieho", "ie", nil, nil, "iemu", "iej", nil, nil, nil, "iem", "iej") end return end -- nt-participle stem, suffix = rmatch(base.lemma, "^(.*)(a)$") if stem then acc_single = true nt_participle = true add_normal_decl(base, stem, "a", "úci", {"a", "úci"}, "úce", "úce", "úce", "úce", "úce", nil, nil, nil, nil, "úcu", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "úc" ) return end stem, suffix = rmatch(base.lemma, "^(.*)([ěe])$") if stem then acc_single = true nt_participle = true if base.ntpartie then add_normal_decl(base, stem, "ě", "ieci", {"ě", "ieci"}, "iece", "iece", "iece", "iece", "iece", nil, nil, nil, nil, "iecu", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "iec" ) return else add_normal_decl(base, stem, "ě", "úci", {"ě", "úci"}, "úce", "úce", "úce", "úce", "úce", nil, nil, nil, nil, "úcu", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "úc" ) return end end if base.spart then acc_single = true nt_participle = true add_normal_decl(base, base.lemma, "", "ši", {"", "ši"}, "še", "še", "še", "še", "še" ) return end -- possessive in -óv stem, suffix = rmatch(base.lemma, "^(.*)(óv)$") if stem then add_normal_decl(base, stem, "óv", "ova", "ovo", "ova", "ově", "ovi", "ovy", "ova", "ova", "ovy", "ovú", "ových", "ovu", "ově", "ovýma", "ovým", "ovu", {"ově", "ovu"}, "ově", "ovú", "ových", "ovem", "ovú", "ovýma", "ovými" ) return end -- possessive in -in stem, suffix = rmatch(base.lemma, "^(.*)(in)$") if stem then add_normal_decl(base, stem, "in", "ina", "ino", "ina", "ině", "ini", "iny", "ina", "ina", "iny", "inú", "iných", "inu", "ině", "inýma", "iným", "inu", {"ině", "inu"}, "ině", "inú", "iných", "inem", "inú", "inýma", "inými" ) return end if base.num then stem, suffix = rmatch(base.lemma, "^(.*)" .. com.inherently_soft_c) if not stem then add_normal_decl(base, base.lemma, "") add_normal_decl(base, base.red == true and com.reduce(base.lemma) or base.lemma, nil, "a", "o", nil, nil, {}, "y", "a", "a", "y", nil, "ých", "u", {}, nil, "ým", "u", {}, {}, nil, "ých", "em", "ú", nil, "ými" ) add_normal_decl(base, base.red == true and com.reduce( com.apply_second_palatalization(base.lemma, "is adj")) or com.apply_second_palatalization(base.lemma, "is adj"), nil, nil, nil, nil, nil, "i", nil, nil, nil, nil, nil, nil, nil, "ě", nil, nil, nil, "ě", "ě") return end stem, suffix = rmatch(base.lemma, "^(.*)(ój)$") if stem then add_normal_decl(base, stem, "ój", "ojě", {"oje", "é"}, "ojě", "oji", "oji", "ojě", "ojě", {"ojeho", "ého"}, "ojie", "ojú", {"ojich", "ých"}, {"ojemu", "ému"}, "ojí", {"ojima", "ýma"}, {"ojim", "ým"}, "oju", {"ojem", "ém"}, "ojí", "ojú", {"ojich", "ých"}, {"ojím", "ým"}, "ojú", {"ojima", "ýma"}, {"ojimi", "ými"} ) return end end -- short soft stem, suffix = rmatch(base.lemma, "^(.*)" .. com.inherently_soft_c .. "$") if stem then add_normal_decl(base, base.lemma, "", {}, "e", {}, {}, {}, {}, {}, {}, {}, nil, nil, "u", {}, nil, nil, "u", nil, nil, nil, nil, nil, nil, nil, nil ) add_normal_decl(base, com.convert_paired_palatal_to_plain(base.lemma, ending), nil, "ě", nil, "ě", "i", "i", "ě", "ě", "ě", "ě", nil, nil, nil, "i", nil, nil, nil, nil, nil, nil, nil, nil, nil) return end -- short hard stem, suffix = rmatch(base.lemma, "^(.*)" .. com.cons_c) if stem then if not rfind(base.lemma, ".*l$") then add_normal_decl(base, base.lemma, "") add_normal_decl(base, base.red == true and com.reduce(base.lemma) or base.lemma, nil, "a", "o", "a", {}, {}, "y", "a", "a", "y", nil, nil, "u", {}, nil, nil, "u", {}, {}, nil, nil, "em", "ú", nil, nil ) add_normal_decl(base, base.red == true and com.reduce( com.apply_second_palatalization(base.lemma, "is adj")) or com.apply_second_palatalization(base.lemma, "is adj"), nil, nil, nil, nil, "ě", "i", nil, nil, nil, nil, nil, nil, nil, "ě", nil, nil, nil, "ě", "ě") else add_normal_decl(base, base.lemma, "") add_normal_decl(base, base.red == true and com.reduce(base.lemma) or base.lemma, nil, "a", "o", "a", "e", "i", "y", "a", "a", "y", nil, nil, "u", "e", nil, nil, "u", "e", "e", nil, nil, "em", "ú", nil, nil ) end return end end error("Unrecognized adjective lemma: '" .. base.lemma .. "'") end decls["irreg"] = function(base) local stem, suffix -- determiner like mój stem, suffix = rmatch(base.lemma, "^(.*)(ój)$") if stem then add_normal_decl(base, stem, "ój", {"á", "ojě"}, {"é", "oje"}, "á", "oji", "oji", {"é", "ojě"}, {"á", "ojě"}, "ého", "é", {"ú", "ojú"}, "ých", "ému", {"éj", "ej"}, "ýma", "ým", {"ú", "oju"}, "ém", {"éj", "ej"}, {"ú", "ojú"}, "ých", "ým", "ú", "ýma", "ými" ) return end if base.lemma == "veš" then add_normal_decl(base, "", "veš", "všě", "vše", nil, nil, "vši", "všě", "všě", "všeho", "všie", nil, "všěch", "všemu", {"vší", "všiej"}, nil, "všěm", "všu", "všem", {"vší", "všiej"}, nil, "všěch", "všiem", "všú", nil, "všěmi" ) return end if base.lemma == "sen" then add_normal_decl(base, "", "sen", "sie", "se", nil, nil, "si", nil, nil, "seho", "sie", nil, "sich", "semu", {"sí", "siej"}, "sima", "sim", "śú", "sem", {"sí", "siej"}, nil, "sich", "sím", "śú", "sima", "simi" ) return end if base.lemma == "jen" then local preposition_footnote = "the leading letter ''j-'' is changed to ''n-'' when the pronoun is preceded by a preposition, e.g. {{m|cs|[[s]] [[nímž]]}}, {{m|cs|[[k]] [[němuž]]}}, {{m|cs|[[bez]] [[ňúž]]}}" preposition_footnote = "[" .. mw.getCurrentFrame():preprocess(preposition_footnote) .. "]" -- Add the non-prepositional forms. add_normal_decl(base, "", "jen", "jě", "je", "jě", "ji", "ji", "jě", "jě", "jeho", "jie", "jú", "jich", "jemu", {"jí", "jiej"}, "jima", "jim", "ju", nil, nil, nil, nil, "jím", "jú", "jima", "jimi" ) -- Add the prepositional forms. (FIXME: Maybe should go in a separate column in a special table.) add_normal_decl(base, "", nil, nil, nil, nil, nil, nil, nil, nil, "ňeho", "nie", "ňú", "nich", "ňemu", {"ní", "niej"}, "nima", "nim", "ňu", "ňem", {"ní", "niej"}, "ňú", "nich", "ním", "ňú", "nima", "nimi", preposition_footnote ) add(base, "acc_m_an", "", {"jej", "jen", "ji", "jeho"}) add(base, "acc_m_in", "", {"-ň", "ňej", "ňen", "ni", "něho"}, preposition_footnote) return end -- determiner like [[ten]], [[tento]], [[onen]], [[jeden]] stem, suffix = rmatch(base.lemma, "^(.*)(en)$") if stem then local nom_stem = stem .. suffix if nom_stem == "jeden" then stem = "jedn" end add_normal_decl(base, nom_stem, "") add_normal_decl(base, stem, nil, "a", "o", "a", "ě", "i", "y", "a", "oho", "é", "ú", "ěch", "omu", {"éj", "ej"}, "ěma", "ěm", "u", "om", {"éj", "ej"}, "ú", "ěch", "iem", "ú", "ěma", "ěmi" ) return end -- [[náš]], [[váš]] stem, suffix = rmatch(base.lemma, "^(.*)(áš)$") if stem then local nom_stem = stem .. suffix stem = stem .. "aš" add_normal_decl(base, nom_stem, "", "ě", "e", "ě", "i", "i", "ě", "ě", "eho", "ie", "ú", "ich", "emu", {"í", "iej"}, "ima", "im", "u", "em", {"í", "iej"}, "ú", "ich", "ím", "ú", "ima", "imi" ) add_normal_decl(base, stem, nil, "ě", "e", "ě", "i", "i", "ě", "ě", "eho", "ie", "ú", "ich", "emu", {"í", "iej"}, "ima", "im", "u", "em", {"í", "iej"}, "ú", "ich", "ím", "ú", "ima", "imi" ) return end if base.lemma == "sám" then -- This mixes long and short endings. add_normal_decl(base, "sám", "") add_normal_decl(base, "sam", nil, "a", "o", "a", "ě", "i", "y", "a", {"oho", "a"}, "é", "ú", "ěch", {"omu", "u"}, {"ej", "éj"}, "ěma", "ěm", "u", "om", {"ej", "éj"}, "ú", "ěch", "iem", "ú", "ěma", "ěmi" ) return end error("Unrecognized irregular lemma '" .. base.lemma .. "'") end local function fetch_footnotes(separated_group) local footnotes for j = 2, #separated_group - 1, 2 do if separated_group[j + 1] ~= "" then error("Extraneous text after bracketed footnotes: '" .. table.concat(separated_group) .. "'") end if not footnotes then footnotes = {} end table.insert(footnotes, separated_group[j]) end return footnotes end local function parse_indicator_spec(angle_bracket_spec) local inside = rmatch(angle_bracket_spec, "^<(.*)>$") assert(inside) local base = {forms = {}} if inside ~= "" then local parts = rsplit(inside, ".", true) for _, part in ipairs(parts) do if part == "irreg" then base.irreg = true elseif part == "*" then base.red = true elseif part == "comp" then base.comp = true elseif part == "num" then base.num = true elseif part == "ntpartie" then base.ntpartie = true elseif part == "spart" then base.spart = true else error("Unrecognized indicator '" .. part .. "': '" .. inside .. "'") end end end return base end local function normalize_all_lemmas(alternant_multiword_spec, pagename) iut.map_word_specs(alternant_multiword_spec, function(base) if base.lemma == "" then base.lemma = pagename end base.orig_lemma = base.lemma base.orig_lemma_no_links = m_links.remove_links(base.lemma) base.lemma = base.orig_lemma_no_links end) end local function detect_indicator_spec(base) if base.irreg then base.decl = "irreg" else base.decl = "normal" end end local function detect_all_indicator_specs(alternant_multiword_spec) iut.map_word_specs(alternant_multiword_spec, function(base) detect_indicator_spec(base) end) end local function decline_adjective(base) if not decls[base.decl] then error("Internal error: Unrecognized declension type '" .. base.decl .. "'") end decls[base.decl](base) -- handle_derived_slots_and_overrides(base) end -- Process override for the arguments in `args`, storing the results into `forms`. If `do_acc`, only do accusative -- slots; otherwise, don't do accusative slots. local function process_overrides(forms, args, do_acc) for slot, _ in pairs(input_adjective_slots) do if args[slot] and not not do_acc == not not slot:find("^acc") then forms[slot] = nil if args[slot] ~= "-" and args[slot] ~= "—" then local segments = put.parse_balanced_segment_run(args[slot], "[", "]") local comma_separated_groups = put.split_alternating_runs(segments, "%s*,%s*") for _, comma_separated_group in ipairs(comma_separated_groups) do local formobj = { form = comma_separated_group[1], footnotes = fetch_footnotes(comma_separated_group), } iut.insert_form(forms, slot, formobj) end end end end end local function check_allowed_overrides(alternant_multiword_spec, args) local special = alternant_multiword_spec.special or alternant_multiword_spec.surname and "surname" or "" for slot, types in pairs(input_adjective_slots) do if args[slot] then local allowed = false for _, typ in ipairs(types) do if typ == special then allowed = true break end end if not allowed then error(("Override %s= not allowed for %s"):format(slot, special == "" and "regular declension" or "special=" .. special)) end end end end local function set_accusative(alternant_multiword_spec) local forms = alternant_multiword_spec.forms local function copy_if(from_slot, to_slot) if not forms[to_slot] then iut.insert_forms(forms, to_slot, forms[from_slot]) end end if not nt_participle then copy_if("nom_n", "acc_n") copy_if("gen_mn", "acc_m_an") copy_if("nom_m", "acc_m_in") copy_if("nom_fp", "acc_mfp") copy_if("nom_np", "acc_np") copy_if("nom_md", "acc_md") copy_if("nom_fnd", "acc_fnd") end end local function add_categories(alternant_multiword_spec) local cats = {} local plpos = require(en_utilities_module).pluralize(alternant_multiword_spec.pos or "adjective") local function insert(cattype) m_table.insertIfNot(cats, "Old Czech " .. cattype .. " " .. plpos) end if not alternant_multiword_spec.manual then iut.map_word_specs(alternant_multiword_spec, function(base) if base.decl == "irreg" then insert("irregular") elseif rfind(base.lemma, "ý$") then insert("hard") elseif rfind(base.lemma, "í$") then insert("soft") elseif base.num then insert("number") elseif rfind(base.lemma, "óv$") then insert("possessive") elseif rfind(base.lemma, "in$") then insert("possessive") elseif rfind(base.lemma, "^(.*)" .. com.inherently_soft_c .. "$") then insert("short soft") elseif rfind(base.lemma, "^(.*)" .. com.cons_c .. "$") then insert("short hard") end end) end alternant_multiword_spec.categories = cats end local function show_forms(alternant_multiword_spec) local lemmas = {} local lemmaform = alternant_multiword_spec.forms.nom_m or alternant_multiword_spec.forms.nom_mp if lemmaform then for _, form in ipairs(lemmaform) do table.insert(lemmas, form.form) end end local props = { lemmas = lemmas, slot_table = get_output_adjective_slots(alternant_multiword_spec), lang = lang, } iut.show_forms(alternant_multiword_spec.forms, props) end local function make_table(alternant_multiword_spec) local forms = alternant_multiword_spec.forms local function template_prelude() return mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-top', args = { title = '{title}{annotation}', palette = 'blue', tall = 'yes', } } end local function template_postlude() return mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom', args = { notes = '{notes_clause}' or nil } } end if acc_single == true then table_spec_acc = [=[ | {acc_m_an}|]=] else table_spec_acc = [=[ | {acc_m_in}<sup style="cursor:help" title="nonpersonalq">inan+anml</sup> or<br/>{acc_m_an}<sup style="cursor:help" title="animate">pers+anml</sup>|]=] end local table_spec_sg = [=[ ! colspan=5 class="outer" | ကိုန်ဨကဝုစ် |- ! ! ပုလ္လိၚ် ! ဣတ္တိလိၚ် ! နပုလ္လိၚ် |- ! မဒုၚ်ယၟု | {nom_m} | {nom_f} | {nom_n} |- ! ဗဳဇဂကူ | {gen_mn} | {gen_f} | {gen_mn} |- ! ပြကမ္မကာရက | {dat_mn} | {dat_f} | {dat_mn} |- ! ကမ္မကာရက ]=]..table_spec_acc..[=[ | {acc_f} | {acc_n} |- ! ခၞံဗဒှ်ဌာန်မတန်တဴ | {loc_mn} | {loc_f} | {loc_mn} |- ! တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {ins_mn} | {ins_f} | {ins_mn} ]=] local table_spec_du = [=[ ! colspan=5 class="outer" | ၜါလ္ပာ် |- ! ! ပုလ္လိၚ် ! ဣတ္တိလိၚ် ! နပုလ္လိၚ် |- ! မဒုၚ်ယၟု | {nom_md} | colspan=2 | {nom_fnd} |- ! ဗဳဇဂကူ | colspan=3 | {gen_d} |- ! ပြကမ္မကာရက | colspan=3 | {dat_d} |- ! ကမ္မကာရက | {acc_md} | colspan=2 | {acc_fnd} |- ! ခၞံဗဒှ်ဌာန်မတန်တဴ | colspan=3 | {loc_d} |- ! တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | colspan=3 | {ins_d} ]=] local table_spec_pl = [=[ ! colspan=5 class="outer" | plural |- ! ! ပုလ္လိၚ် ! ဣတ္တိလိၚ် ! နပုလ္လိၚ် |- ! မဒုၚ်ယၟု | {nom_mp} | {nom_fp} | {nom_np} |- ! ဗဳဇဂကူ | colspan=3 | {gen_p} |- ! ပြကမ္မကာရက | colspan=3 | {dat_p} |- ! ကမ္မကာရက | colspan=2 | {acc_mfp} | {acc_np} |- ! ခၞံဗဒှ်ဌာန်မတန်တဴ | colspan=3 | {loc_p} |- ! တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | colspan=3 | {ins_p} ]=] local table_spec = template_prelude("55") .. table_spec_sg .. "|-\n" .. table_spec_du .. "|-\n" .. table_spec_pl .. template_postlude() local table_spec_plonly = template_prelude("55") .. table_spec_pl .. template_postlude() local table_spec_nodual = template_prelude("55") .. table_spec_sg .. "|-\n" .. table_spec_pl .. template_postlude() local table_spec_duonly = template_prelude("40") .. [=[ ! colspan=4 class="outer" | ၜါလ္ပာ် |- ! ! ပုလ္လိၚ် ! ဣတ္တိလိၚ်/နပုလ္လိၚ် |- ! မဒုၚ်ယၟု | {nom_md} | {nom_fnd} |- ! ဗဳဇဂကူ | colspan="2" | {gen_d} |- ! ပြကမ္မကာရက | colspan="2" | {dat_d} |- ! ကမ္မကာရက | {acc_md} | {acc_fnd} |- ! ခၞံဗဒှ်ဌာန်မတန်တဴ | colspan="2" | {loc_d} |- ! တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | colspan="2" | {ins_d} ]=] .. template_postlude() if alternant_multiword_spec.title then forms.title = alternant_multiword_spec.title else forms.title = 'မလဟုတ်စှ်ေဆေၚ်စပ်ကဵု <i lang="zlw-ocs">' .. forms.lemma .. '</i>' end if alternant_multiword_spec.manual then forms.annotation = "" else local ann_parts = {} local decls = {} iut.map_word_specs(alternant_multiword_spec, function(base) if base.decl == "irreg" then if rfind(base.lemma, "^(.*)(ój)$") then m_table.insertIfNot(decls,"contracted pronominal") elseif base.lemma == "jenž" or rfind(base.lemma, "^(.*)(áš)$") then m_table.insertIfNot(decls,"soft pronominal") elseif base.lemma == "veš" then m_table.insertIfNot(decls,"mixed pronominal") elseif base.lemma == "sen" then m_table.insertIfNot(decls,"irregular pronominal") else m_table.insertIfNot(decls,"hard pronominal") end elseif rfind(base.lemma, "ý$") then m_table.insertIfNot(decls, "hard") elseif base.comp then m_table.insertIfNot(decls, "short comparative") elseif rfind(base.lemma, "í$") then m_table.insertIfNot(decls, "soft") elseif base.num then if rfind(base.lemma, "^(.*)(ój)$") then m_table.insertIfNot(decls,"soft pronominal (sometimes contracted)") else m_table.insertIfNot(decls,"short hard") end elseif base.spart then m_table.insertIfNot(decls,"s-participle") elseif rfind(base.lemma, "[aěe]$") then m_table.insertIfNot(decls, "nt-participle") elseif rfind(base.lemma, "óv$") or rfind(base.lemma, "in$") then m_table.insertIfNot(decls, "mixed short-long") elseif rfind(base.lemma, "^(.*)" .. com.inherently_soft_c .. "$") then m_table.insertIfNot(decls, "short soft") elseif rfind(base.lemma, "^(.*)" .. com.cons_c .. "$") then m_table.insertIfNot(decls, "short hard") end end) table.insert(ann_parts, table.concat(decls, " // ")) forms.annotation = " (" .. table.concat(ann_parts, ", ") .. ")" end forms.notes_clause = forms.footnote ~= "" and forms.footnote or "" return m_string_utilities.format( alternant_multiword_spec.special == "plonly" and table_spec_plonly or alternant_multiword_spec.special == "duonly" and table_spec_duonly or alternant_multiword_spec.special == "nodual" and table_spec_nodual or table_spec, forms ) end -- Externally callable function to parse and decline an adjective given -- user-specified arguments. Return value is WORD_SPEC, an object where the -- declined forms are in `WORD_SPEC.forms` for each slot. If there are no values -- for a slot, the slot key will be missing. The value for a given slot is a -- list of objects {form=FORM, footnotes=FOOTNOTES}. function export.do_generate_forms(parent_args, pos, from_headword, def) local params = { [1] = {}, vowel_alt = {}, pos = {}, json = {type = "boolean"}, -- for use with bots title = {}, pagename = {}, } for slot, _ in pairs(input_adjective_slots) do params[slot] = {} end -- Only default param 1 when displaying the template. local args = require("Module:parameters").process(parent_args, params) local SUBPAGE = mw.loadData("Module:headword/data").pagename local pagename = args.pagename or SUBPAGE vowel_alt = args.vowel_alt if not args[1] then if SUBPAGE == "zlw-ocs-adecl" then args[1] = "měkký" else args[1] = pagename end end local parse_props = { parse_indicator_spec = parse_indicator_spec, allow_default_indicator = true, allow_blank_lemma = true, } local alternant_multiword_spec = iut.parse_inflected_text(args[1], parse_props) alternant_multiword_spec.pos = args.pos alternant_multiword_spec.title = args.title alternant_multiword_spec.forms = {} normalize_all_lemmas(alternant_multiword_spec, pagename) detect_all_indicator_specs(alternant_multiword_spec) check_allowed_overrides(alternant_multiword_spec, args) local inflect_props = { slot_table = get_output_adjective_slots(alternant_multiword_spec), inflect_word_spec = decline_adjective, } iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props) -- Do non-accusative overrides so they get copied to the accusative forms appropriately. process_overrides(alternant_multiword_spec.forms, args) set_accusative(alternant_multiword_spec) -- Do accusative overrides after copying the accusative forms. process_overrides(alternant_multiword_spec.forms, args, "do acc") add_categories(alternant_multiword_spec) if args.json and not from_headword then return require("Module:JSON").toJSON(alternant_multiword_spec) end return alternant_multiword_spec end -- Externally callable function to parse and decline an adjective where all -- forms are given manually. Return value is WORD_SPEC, an object where the -- declined forms are in `WORD_SPEC.forms` for each slot. If there are no values -- for a slot, the slot key will be missing. The value for a given slot is a -- list of objects {form=FORM, footnotes=FOOTNOTES}. function export.do_generate_forms_manual(parent_args, pos, from_headword, def) local params = { pos = {}, special = {}, json = {type = "boolean"}, -- for use with bots title = {}, } for slot, _ in pairs(input_adjective_slots) do params[slot] = {} end local args = require("Module:parameters").process(parent_args, params) local alternant_multiword_spec = { pos = args.pos, special = args.special, title = args.title, forms = {}, manual = true, } check_allowed_overrides(alternant_multiword_spec, args) -- Do non-accusative overrides so they get copied to the accusative forms appropriately. process_overrides(alternant_multiword_spec.forms, args) set_accusative(alternant_multiword_spec) -- Do accusative overrides after copying the accusative forms. process_overrides(alternant_multiword_spec.forms, args, "do acc") add_categories(alternant_multiword_spec) if args.json and not from_headword then return require("Module:JSON").toJSON(alternant_multiword_spec) end return alternant_multiword_spec end -- Entry point for {{zlw-ocs-adecl}}. Template-callable function to parse and decline -- an adjective given user-specified arguments and generate a displayable table -- of the declined forms. function export.show(frame) local parent_args = frame:getParent().args local alternant_multiword_spec = export.do_generate_forms(parent_args) show_forms(alternant_multiword_spec) return make_table(alternant_multiword_spec) .. require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang) end -- Entry point for {{zlw-ocs-adecl-manual}}. Template-callable function to parse and -- decline an adjective given manually-specified inflections and generate a -- displayable table of the declined forms. function export.show_manual(frame) local parent_args = frame:getParent().args local alternant_multiword_spec = export.do_generate_forms_manual(parent_args) show_forms(alternant_multiword_spec) return make_table(alternant_multiword_spec) .. require("Module:utilities").format_categories(alternant_multiword_spec.categories, lang) end return export iiq20d63c679da9tfrcgcx9rwkpvh5z မဝ်ဂျူ:zlw-ocs-adjective/doc 828 296554 398031 2026-07-09T13:58:10Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly>" 398031 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|zlw-ocs}} </includeonly> 0pcevpkbalm4klnl6k49e3xzn9dt0gh ကဏ္ဍ:နာမ်ဣတ္တိလိၚ်ချက်ခ်တြေံဂမၠိုၚ် 14 296555 398032 2026-07-09T14:02:12Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်|ချက်ခ်]] » :ကဏ္ဍ:ဝေါဟ..." 398032 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်|ချက်ခ်]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကချက်ခ်ဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » [[:ကဏ္ဍ:နာမ်ချက်ခ်ဂမၠိုၚ်|နာမ်ဂမၠိုၚ်]] » [[:ကဏ္ဍ:နာမ်ချက်ခ်ဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဗက်အလိုက်လိၚ်ဂမၠိုၚ်]] »'''ဣတ္တိလိၚ်ဂမၠိုၚ်''' :နာမ်ချက်ခ်မဆေၚ်စပ်ကဵုလိၚ်ဗြဴ၊ ဥပမာ ဆေၚ်စပ်ကဵုကဏ္ဍလုပ်အဝေါၚ်လိၚ်အတေံ (အကြာတၞဟ်ခြာအရာမွဲမွဲအဂှ်) မက္တဵုဒှ်ဣတ္တိလိၚ်ဂမၠိုၚ်။ [[ကဏ္ဍ:နာမ်ချက်ခ်ဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဣ]][[ကဏ္ဍ:နာမ်ဣတ္တိလိၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] iq9fxjldnehc7mpn2ai4arflnfjfvtk 398033 398032 2026-07-09T14:05:19Z 咽頭べさ 33 398033 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်တြေံ|ချက်ခ်တြေံ]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကချက်ခ်တြေံဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » [[:ကဏ္ဍ:နာမ်ချက်ခ်တြေံဂမၠိုၚ်|နာမ်ဂမၠိုၚ်]] » [[:ကဏ္ဍ:နာမ်ချက်ခ်တြေံဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဗက်အလိုက်လိၚ်ဂမၠိုၚ်]] »'''ဣတ္တိလိၚ်ဂမၠိုၚ်''' :နာမ်ချက်ခ်တြေံမဆေၚ်စပ်ကဵုလိၚ်ဗြဴ၊ ဥပမာ ဆေၚ်စပ်ကဵုကဏ္ဍလုပ်အဝေါၚ်လိၚ်အတေံ (အကြာတၞဟ်ခြာအရာမွဲမွဲအဂှ်) မက္တဵုဒှ်ဣတ္တိလိၚ်ဂမၠိုၚ်။ [[ကဏ္ဍ:နာမ်ချက်ခ်တြေံဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဣ]][[ကဏ္ဍ:နာမ်ဣတ္တိလိၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] jd5m1cgdbwz8vdrbevsyooo2s993chr ကဏ္ဍ:နာမ်ချက်ခ်တြေံဗက်အလိုက်လိၚ်ဂမၠိုၚ် 14 296556 398034 2026-07-09T14:06:39Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်တြေံ|ချက်ခ်တြေံ]] » :..." 398034 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်တြေံ|ချက်ခ်တြေံ]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကချက်ခ်တြေံဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » [[:ကဏ္ဍ:နာမ်ချက်ခ်တြေံဂမၠိုၚ်|နာမ်ဂမၠိုၚ်]] »'''ဗက်အလိုက်လိၚ်ဂမၠိုၚ်''' :နာမ်ချက်ခ်တြေံမဂကောံလဝ်နူကဵုဆေၚ်စပ်ကဵုလိၚ်ပွမတုဲဒှ်နကဵုအတေံ။ [[ကဏ္ဍ:နာမ်ချက်ခ်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:နာမ်နူကဵုလိၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ခ]] dc99eq1uzpvrvlh7nu4vbgc1uag3fft ကဏ္ဍ:ကာရန်:ချက်ခ်/ɛv 14 296557 398035 2026-07-09T14:12:01Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်|ချက်ခ်]] » :ကဏ္ဍ:ကာရန..." 398035 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာချက်ခ်|ချက်ခ်]] » [[:ကဏ္ဍ:ကာရန်:ချက်ခ်|ကာရန်ဂမၠိုၚ်]] » -ɛv :စရၚ်မဆေၚ်စပ်ကဵုဝေါဟာ[[:ကဏ္ဍ:ဘာသာချက်ခ်|ချက်ခ်]]မနွံကာရန် ɛv ဂမၠိုၚ်။ [[ကဏ္ဍ:ကာရန်:ချက်ခ်|ɛv]] cfsxsh5w5evbvyc049uiie1c5thayhn ကဏ္ဍ:ဝေါဟာခမ်နေတ်ကၠုၚ်နူဝေါဟာခမ်နေတ် အဒေါဝ်ဂမၠိုၚ် 14 296558 398036 2026-07-09T14:13:57Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာခမ်နေတ်]]" 398036 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာခမ်နေတ်]] ncldm8jo59yamd47lrt7d7djgm2uomw ကဏ္ဍ:ဝေါဟာခမ်နေတ်ဂွံလဝ်အာဲကၟာဲနူဝေါဟာခမ်နေတ် အဒေါဝ်ဂမၠိုၚ် 14 296559 398037 2026-07-09T14:14:59Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာခမ်နေတ်]]" 398037 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာခမ်နေတ်]] ncldm8jo59yamd47lrt7d7djgm2uomw ကဏ္ဍ:ဝေါဟာခမ်နေတ်မဆက်ဆေန်စှ်ေကၠုၚ်နူတံရိုဟ်အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာနကဵုအဆက်ဝေါဟာ *krep- 14 296560 398038 2026-07-09T14:16:02Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာခမ်နေတ်]]" 398038 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာခမ်နေတ်]] ncldm8jo59yamd47lrt7d7djgm2uomw krevva 0 296561 398039 2026-07-09T14:19:54Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ခမ်နေတ်== ====နာမဝိသေသန==== {{head|kw|ဗီုပြင်နာမဝိသေသန}} # {{comparative of|kw|krev}}" 398039 wikitext text/x-wiki ==ခမ်နေတ်== ====နာမဝိသေသန==== {{head|kw|ဗီုပြင်နာမဝိသေသန}} # {{comparative of|kw|krev}} qxhsoi8zylg59miehreloywcffjgqn7 398040 398039 2026-07-09T14:20:37Z 咽頭べさ 33 398040 wikitext text/x-wiki ==ခမ်နေတ်== ====နာမဝိသေသန==== {{head|kw|ဗီုပြၚ်နာမဝိသေသန}} # {{comparative of|kw|krev}} hvaubg090unw0edev2j1zgvecdnh2tm ကဏ္ဍ:ဗီုပြၚ်နာမဝိသေသနခမ်နေတ်ဂမၠိုၚ် 14 296562 398041 2026-07-09T14:22:58Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာခမ်နေတ်|ခမ်နေတ်]] » :ကဏ္ဍ:ဗီ..." 398041 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာခမ်နေတ်|ခမ်နေတ်]] » [[:ကဏ္ဍ:ဗီုပြၚ်အပြံၚ်အလှာဲခမ်နေတ်ဂမၠိုၚ်|ဗီုပြၚ်ဝေါဟာတံသ္ဇိုၚ်]] » '''ဗီုပြၚ်နာမဝိသေသနဂမၠိုၚ်''' :နာမဝိသေသနခမ်နေတ်မပြံၚ်လှာဲနကဵုအဆက်အဆေန်မဆေၚ်စပ်ကဵုမဓမံက်ထ္ၜးသဒ္ဒာဗီုပြၚ်အဓိကတၞဟ်ဂမၠိုၚ်။ [[ကဏ္ဍ:ဘာသာခမ်နေတ်]][[ကဏ္ဍ:နာမဝိသေသနခမ်နေတ်ဂမၠိုၚ်]][[ကဏ္ဍ:ဗီုပြၚ်နာမဝိသေသနဗက်အလိုက်အရေဝ်ဘာသာ|ခ]] dlqjbpx77p7vcljfl8xcqisgrg2kas9 crev 0 296563 398042 2026-07-09T14:24:35Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ခမ်နေတ်== ====နာမဝိသေသန==== {{head|kw|adjective}} # {{alternative spelling of|kw|krev}}" 398042 wikitext text/x-wiki ==ခမ်နေတ်== ====နာမဝိသေသန==== {{head|kw|adjective}} # {{alternative spelling of|kw|krev}} 5li00h3l6a0n8gy6hlvkkqugq1diyr3 ဗီုပြၚ်သိုၚ်တၟိ:သဲလ်တေတ်-အခိုက်ကၞာ/kriɸmos 118 296564 398043 2026-07-09T14:26:39Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==သဲလ်တေတ်-အခိုက်ကၞာ== ===နာမ်=== {{cel-noun|f}} # {{alt form|cel-pro|*krixs}}" 398043 wikitext text/x-wiki {{reconstructed}} ==သဲလ်တေတ်-အခိုက်ကၞာ== ===နာမ်=== {{cel-noun|f}} # {{alt form|cel-pro|*krixs}} oumadlem83kiq2cnxpt5esq3qgk5n5g ဗီုပြၚ်သိုၚ်တၟိ:သဲလ်တေတ်-အခိုက်ကၞာ/krixs 118 296565 398044 2026-07-09T14:29:53Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==သဲလ်တေတ်-အခိုက်ကၞာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|cel-pro|ine-pro|*krep-}} ===နာမ်=== {{cel-noun|f}} # ဇကုဇကောဝ်။ ====ပရေၚ်ကၠောံ==== {{cel-decl-noun-cons-mf|kriɸ}} ===မဒုၚ်လွဳစ=== * {{desc|mga|crí|qq=poetic}}" 398044 wikitext text/x-wiki {{reconstructed}} ==သဲလ်တေတ်-အခိုက်ကၞာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|cel-pro|ine-pro|*krep-}} ===နာမ်=== {{cel-noun|f}} # ဇကုဇကောဝ်။ ====ပရေၚ်ကၠောံ==== {{cel-decl-noun-cons-mf|kriɸ}} ===မဒုၚ်လွဳစ=== * {{desc|mga|crí|qq=poetic}} 4ax17elg2mj23s5162hhp1rjbqphnbv ထာမ်ပလိက်:cel-decl-noun-cons-mf 10 296566 398045 2026-07-09T14:30:31Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:cel-nouns|cons-mf}}<noinclude>{{documentation}}</noinclude>" 398045 wikitext text/x-wiki {{#invoke:cel-nouns|cons-mf}}<noinclude>{{documentation}}</noinclude> 1y38p3ibzcvsnbhz69gby624j1dn721 ထာမ်ပလိက်:cel-decl-noun-cons-mf/documentation 10 296567 398046 2026-07-09T14:32:02Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်သဲလ်တေတ်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|cons-mf]] </includeonly>" 398046 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်သဲလ်တေတ်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|cons-mf]] </includeonly> c8r7elozb39nfidommur0qzh9c96d7w ကဏ္ဍ:နာမ်သဲလ်တေတ်-အခိုက်ကၞာနကဵုဝေါဟာမစှ်ေအလိုက်ဂမၠိုၚ် 14 296568 398047 2026-07-09T14:33:02Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသဲလ်တေတ်-အခိုက်ကၞာ]]" 398047 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာသဲလ်တေတ်-အခိုက်ကၞာ]] rr73q27b4j1nz9ofisvbi8ouvw8up11 ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/krep- 118 296569 398048 2026-07-09T14:35:47Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/kerp-}} {{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # ဇကုဇကောဝ်။ ===ပွံၚ်နဲတၞဟ်=== * {{alt|ine-pro|*ḱrep-}}" 398048 wikitext text/x-wiki {{also|ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/kerp-}} {{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # ဇကုဇကောဝ်။ ===ပွံၚ်နဲတၞဟ်=== * {{alt|ine-pro|*ḱrep-}} f32nnt8qxnu05rlwi9k6876rlaz08cb ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/ḱrep- 118 296570 398049 2026-07-09T14:36:57Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # {{alt form|ine-pro|*krep-}}" 398049 wikitext text/x-wiki {{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # {{alt form|ine-pro|*krep-}} sgjzq2dhlp7mwk71z6ek03q6ykfmi8m ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/kerp- 118 296571 398050 2026-07-09T14:46:02Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/krep-}} {{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # သကဵုကုတ်ပ္တိတ်၊ နိၚ်။ # သကဵုလပှ်တိုန်၊ ခ္ၜၚ်၊..." 398050 wikitext text/x-wiki {{also|ဗီုပြၚ်သိုၚ်တၟိ:အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ/krep-}} {{reconstructed}} ==အိန်ဒဝ်-ယူရဝ်ပဳယာန်-အခိုက်ကၞာ== ===တံရိုဟ်=== {{ine-root}} # သကဵုကုတ်ပ္တိတ်၊ နိၚ်။ # သကဵုလပှ်တိုန်၊ ခ္ၜၚ်၊ သကဵုကေတ် ကဵု ယိုက်ဏာဒၞာဲဇမ္ၚောဲတေံ။ # သကဵုၜှ်၊ ပလှ်။ # သကဵုရတ်၊ ရတ်သြောံ။ jay6u4fd0kqf13g63ht2sx2234jz68i ဗီုပြၚ်သိုၚ်တၟိ:ပရေတ်တိုန်နေတ်-အခိုက်ကၞာ/krɨβ̃ 118 296572 398051 2026-07-09T14:50:05Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==ပရေတ်တိုန်နေတ်-အခိုက်ကၞာ== ===နိရုတ်=== {{root|cel-bry-pro|ine-pro|*krep-}} ဝေါဟာကၠုၚ်နူ {{inh|cel-bry-pro|cel-pro|*kriɸmos}} ====နာမဝိသေသန==== {{cel-bry-adj}} # ထတ်မ္ၚိုဟ်။ ===မဒုၚ်လွဳစ=== * {{desc|xbm|creff}} ** {{desc|br|kreñv}} * {{desc|oco|crif}} **..." 398051 wikitext text/x-wiki {{reconstructed}} ==ပရေတ်တိုန်နေတ်-အခိုက်ကၞာ== ===နိရုတ်=== {{root|cel-bry-pro|ine-pro|*krep-}} ဝေါဟာကၠုၚ်နူ {{inh|cel-bry-pro|cel-pro|*kriɸmos}} ====နာမဝိသေသန==== {{cel-bry-adj}} # ထတ်မ္ၚိုဟ်။ ===မဒုၚ်လွဳစ=== * {{desc|xbm|creff}} ** {{desc|br|kreñv}} * {{desc|oco|crif}} ** {{desc|cnx|creff|cref}} *** {{desc|kw|krev|crev|cref}} * {{desc|wlm|cryf}} ** {{desc|cy|cryf}} 83brqvvy38252c72gso3zf920lbupdy crif 0 296573 398052 2026-07-09T14:52:24Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ခမ်နေတ်တြေံ== ====နာမဝိသေသန==== {{head|oco|နာမဝိသေသန}} # ထတ်မ္ၚိုဟ်။" 398052 wikitext text/x-wiki ==ခမ်နေတ်တြေံ== ====နာမဝိသေသန==== {{head|oco|နာမဝိသေသန}} # ထတ်မ္ၚိုဟ်။ kvmba5jro1fh0v2759s8vxfww1jnzwk creff 0 296574 398053 2026-07-09T14:57:12Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==ယဝ်လာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|yol|enm|craft|creft}}၊ နကဵုအဆက်နူ {{inh|yol|ang|cræft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|yol|gmw-pro|*kraftu}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|yol|/kre̞f/}} ===နာမ်=== {{head|yol|noun}} # ပၞော်ဗၠံ။" 398053 wikitext text/x-wiki ==ယဝ်လာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|yol|enm|craft|creft}}၊ နကဵုအဆက်နူ {{inh|yol|ang|cræft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|yol|gmw-pro|*kraftu}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|yol|/kre̞f/}} ===နာမ်=== {{head|yol|noun}} # ပၞော်ဗၠံ။ g0tzbr1rocko0h8mbel80hzyosf4257 ဗီုပြၚ်သိုၚ်တၟိ:ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ/kraftu 118 296575 398054 2026-07-09T15:03:50Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|gmw-pro|gem-pro|*kraftuz}} ===နာမ်=== {{head|gmw-pro|noun|g=m}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်။ # ပရေၚ်စိုန်သ္ကီု။ ====ပရေၚ်ကၠောံ==== {{gmw-infl-noun-u}} ===မဒုၚ..." 398054 wikitext text/x-wiki {{reconstructed}} ==ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|gmw-pro|gem-pro|*kraftuz}} ===နာမ်=== {{head|gmw-pro|noun|g=m}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်။ # ပရေၚ်စိုန်သ္ကီု။ ====ပရေၚ်ကၠောံ==== {{gmw-infl-noun-u}} ===မဒုၚ်လွဳစ=== * {{desctree|ang|cræft|g=m}} * {{desc|ofs|kreft|kraft|g2=f}} ** {{desc|stq|Kraft}} ** {{desc|fy|krêft}} * {{desctree|osx|kraft|g=m,f|noalts=1}} * {{desctree|odt|craft|g=f,m|noalts=1}} * {{desc|goh|kraft|g=f,m}} ** {{desc|gmh|kraft}} *** {{desc|bar|Kråft}} *** {{desc|de|Kraft}} *** {{desc|hrx|Kraft}} *** {{desc|lb|Kraaft}} *** {{desc|mhn|kròft}} *** {{desc|wym|kraoft}} *** {{desc|yi|קראַפֿט}} 7hcbltlqe4yh9yu1lmjmv1t3k4bu0qz ထာမ်ပလိက်:gmw-infl-noun-u 10 296576 398055 2026-07-09T15:04:40Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:gmw-noun|u}}<noinclude>{{documentation}}</noinclude>" 398055 wikitext text/x-wiki {{#invoke:gmw-noun|u}}<noinclude>{{documentation}}</noinclude> 32mkxuavcnz1w15tot6prxncx4m7i0e မဝ်ဂျူ:gmw-noun 828 296577 398056 2026-07-09T15:34:42Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "local export = {} local lang = require("Module:languages").getByCode("gmw-pro") local insert = table.insert local ugsub = mw.ustring.gsub local ufind = mw.ustring.find local umatch = mw.ustring.match local ulen = mw.ustring.len local genders = { ["m"] = "ပုလ္လိၚ်", ["f"] = "ဣတ္တိလိၚ်", ["n"] = "နပုလ္လိၚ်", } local n_param = {set = {"s", "p"}} local function i..." 398056 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("gmw-pro") local insert = table.insert local ugsub = mw.ustring.gsub local ufind = mw.ustring.find local umatch = mw.ustring.match local ulen = mw.ustring.len local genders = { ["m"] = "ပုလ္လိၚ်", ["f"] = "ဣတ္တိလိၚ်", ["n"] = "နပုလ္လိၚ်", } local n_param = {set = {"s", "p"}} local function inscat(data, cat) -- insert(data.categories, lang:getCanonicalName() .. " " .. cat) end local function detect_j(stem) -- match long vowel or diphthong followed by consonants local rest, nucleus, coda = umatch(stem, "^(.-)([āēīōūąįųĀĒĪŌŪ]?̄?[aeiouAEIOU]*)([bdfghjklmnprʀstþwBDFGHJKLMNPRSTÞW]+)$") if not rest or nucleus == "" then error("Stem does not end in a vowel or diphthong followed by consonants") elseif ulen(coda) > 1 or ufind(nucleus, "^[āēīōūąįųĀĒĪŌŪ]̄?$") or ufind(nucleus, "^[aeiouAEIOU][aeiouAEIOU]$") then return "ij" elseif ufind(rest, "^[bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*$") then return "j" else error("Stem consists of multiple syllables or its weight cannot be otherwise be determined") end end local function geminate(stem) stem = stem:gsub("w$", "uw") stem = ugsub(stem, "([bdghklmnpstþ])$", "%1%1") return stem end -- Inflection functions function export.a(frame) local params = { [1] = {template_default = "{{{1}}}"}, g = {required = true, set = {"m", "n"}, template_default = "m"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local function insgendercat(cat) -- inscat(data, genders[args.g] .. " " .. cat) end local stem, suffix = umatch(lemma, "^(.-)([iīu])$") local stem_u local nom_sg if suffix == "ī" then stem = stem .. "ij" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "i" then stem = geminate(stem) .. "j" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "u" then stem_u = stem stem = stem .. "w" data.info = "''wa''-stem" -- insgendercat("wa-stem nouns") else stem = lemma data.info = "''a''-stem" -- insgendercat("a-stem nouns") end nom_sg = {lemma, stem .. "a"} stem_u = stem_u or stem data.info = genders[args.g] .. " " .. data.info data.forms["nom|s"] = nom_sg data.forms["acc|s"] = nom_sg data.forms["gen|s"] = {stem .. "as"} data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ōs"} data.forms["acc|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.an(frame) local params = { [1] = {template_default = "{{{1}}}ō"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local stem, suffix = umatch(lemma, "^(.-)([āō])$") local g if suffix == "ā" then g = "n" elseif suffix == "ō" then g = "m" else error("an-stems must end in -ō or -ā") end local data = { forms = {}, info = genders[g] .. " ''an''-stem", categories = {}, } -- inscat(data, genders[g] .. " an-stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = g == "n" and {lemma} or {stem .. "an"} data.forms["gen|s"] = {stem_weak .. "ini", stem_weak .. "an"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = g == "n" and {stem .. "ōn"} or {stem .. "an"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "anō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.cons(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "consonant stem", categories = {}, } -- inscat(data, "consonant stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = lemma end if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = {args.ns or lemma .. "u"} data.forms["gen|s"] = {stem_weak .. "i"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {lemma .. "i"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "ō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.i(frame) local params = { [1] = {template_default = "{{{1}}}i"}, j = {template_default = "ij"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(i)$") local stem_j, stem_weak_j if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem_j = stem .. "ij" stem_weak_j = stem_weak .. "ij" else stem_j = geminate(stem) .. "j" stem_weak_j = geminate(stem_weak) .. "j" end else error("i-stems must end in -i") end data.info = "''i''-stem" -- inscat(data, "i-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_weak .. "ī"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem .. "ī"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak_j .. "ō"} data.forms["dat|p"] = {stem_weak .. "im", stem_weak_j .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end export["in"] = function(frame) local params = { [1] = {template_default = "{{{1}}}ī"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''īn''-stem", categories = {}, } -- inscat(data, "īn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ī)$") if suffix ~= "ī" then error("īn-stems must end in -ī") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "īn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] postprocess(args, data) return make_table(data) end function export.o(frame) local params = { [1] = {template_default = "{{{1}}}u"}, j = true, n = n_param, w = {type = "boolean"}, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)([iu])$") local stem_u if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem = stem .. "ij" elseif umatch(stem, "^(.-)([bdfghjklmnprʀstþw-]+)(in)$") then stem = ugsub(stem, "in$", "unn") .. "j" else stem = geminate(stem) .. "j" end data.info = "''ī''/''jō''-stem" -- inscat(data, "ī/jō-stem nouns") elseif suffix == "u" then if args.w then stem_u = stem stem = stem .. "w" data.info = "''wō''-stem" -- inscat(data, "wō-stem nouns") else data.info = "''ō''-stem" -- inscat(data, "ō-stem nouns") end else error("ō-stems must end in -i or -u") end stem_u = stem_u or stem data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ā"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = {stem .. "ō"} data.forms["acc|p"] = {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem .. "ōm", stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.on(frame) local params = { [1] = {template_default = "{{{1}}}ā"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''ōn''-stem", categories = {}, } inscat(data, "ōn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ā)$") if suffix ~= "ā" then error("ōn-stems must end in -ā") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ōn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] data.forms["nom|p"] = data.forms["acc|s"] data.forms["acc|p"] = data.forms["acc|s"] data.forms["gen|p"] = {stem .. "ōnō"} data.forms["dat|p"] = {stem .. "ōm", stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.r(frame) local params = { [1] = {template_default = "{{{1}}}er"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "r-stem", categories = {}, } -- inscat(data, "r-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(er)$") if suffix ~= "er" then error("r-stems must end in -er") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ar"} data.forms["gen|s"] = {stem .. "ur"} data.forms["dat|s"] = {stem .. "ri"} data.forms["ins|s"] = data.forms["dat|s"] data.forms["nom|p"] = {stem .. "ar"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem .. "rō"} data.forms["dat|p"] = {stem .. "rum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.u(frame) local params = { [1] = {template_default = "{{{1}}}u"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(u)$") if suffix ~= "u" then error("u-stems must end in -u") end data.info = "''u''-stem" -- inscat(data, "u-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem .. "ō"} data.forms["dat|s"] = {stem .. "iwi", stem .. "ō"} data.forms["ins|s"] = {stem .. "u"} data.forms["nom|p"] = {stem .. "iwi", stem .. "ō"} data.forms["acc|p"] = {stem .. "ū"} data.forms["gen|p"] = {stem .. "iwō"} data.forms["dat|p"] = {stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.z(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''z''-stem", categories = {}, } -- inscat(data, "z-stem nouns") local stem_i = ugsub(lemma, "e(u?[bdfghklmnprʀstþw]*)$", "i%1") if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_i .. "iʀi"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem_i .. "iʀu"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_i .. "iʀō"} data.forms["dat|p"] = {stem_i .. "iʀum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function postprocess(args, data) data.n = args.n if args.n == "p" then -- inscat(data, "pluralia tantum") elseif args.n == "s" then -- inscat(data, "singularia tantum") elseif args.n then error("Internal error: args= must be \"s\" or \"p\".") end for key, form in pairs(data.forms) do -- Do not show singular or plural forms for nominals that don't have them if (args.n == "p" and key:find("|s$")) or (args.n == "s" and key:find("|p$")) then form = nil end data.forms[key] = form end end -- Make the table function make_table(data) local function repl(param) if param == "info" then return mw.getContentLanguage():ucfirst(data.info or "") end local forms = data.forms[param] if not forms then return "&mdash;" end local ret = {} for key, subform in ipairs(forms) do -- i-umlaut if ufind(subform, "[iīįǐj]") then subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])e(u?)([bdfghjklmnprʀstþw]+)([iīįj])", "%1i%2%3%4") subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])o([bdfghjklmnprʀstþw]+)([iīįj])", "%1u%2%3") end -- *u[+stress] > *o /{C,#}_C[-nasal]V[+back] if ufind(subform, "u") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]+)u([bdfghklprʀstþw]+)([aoāōą])", "%1o%2%3") end -- *w > ∅ /V́_*u if ufind(subform, "[aeiouāēīōūAEIOUĀĒĪŌŪ]wu") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)uwu", "%1ū") subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)([aeiouāēīōūAEIOUĀĒĪŌŪ])w(u)", "%1%2%3") end -- Mahlow's Law (*ōu > *ō / _C{#,V}) if ufind(subform, "ō[uw]") then subform = ugsub(subform, "(ō)[uw]", "%1") end if ufind(subform, "ū[uw]") then subform = ugsub(subform, "(ū)[uw]", "%1") end -- C[+plosive -voice] > CC /_LV (Ringe 2014:54) if ufind(subform, "[ptkh][lr]") then subform = ugsub(subform, "([aeiouāēīōūAEIOUĀĒĪŌŪ])([ptkh])([lr][aeiouāēīōūąįų])", "%1%2%2%3") end insert(ret, require("Module:links").full_link({lang = lang, alt = "*" .. subform})) end return table.concat(ret, ", ") end local wikicode = {} insert(wikicode, [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: solid 1px var(--wikt-palette-grey-4, #CCCCCC);" |- style="background: var(--wikt-palette-grey-3, #CCCCCC); text-align: left;" ! class="vsToggleElement" colspan="3" | {{{info}}} |- class="vsShow" ! style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" colspan="2" | ကိုန်ဨကဝုစ် |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | colspan="2" | {{{nom|s}}} |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | colspan="2" | {{{gen|s}}} |- class="vsHide" | style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဨကဝုစ် ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဗဟုဝစ် |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | {{{nom|s}}} | {{{nom|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ကမ္မကာရက | {{{acc|s}}} | {{{acc|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | {{{gen|s}}} | {{{gen|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ပြကမ္မကာရက | {{{dat|s}}} | {{{dat|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {{{ins|s}}} | {{{ins|p}}} |}]=]) return ugsub(table.concat(wikicode), "{{{([#!]?[a-z0-9|]+)}}}", repl) .. require("Module:utilities").format_categories(data.categories, lang) end return export ml5x1kkwyk7p9iaot33ewmhvnzahwcq 398058 398056 2026-07-09T15:39:02Z 咽頭べさ 33 398058 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("gmw-pro") local insert = table.insert local ugsub = mw.ustring.gsub local ufind = mw.ustring.find local umatch = mw.ustring.match local ulen = mw.ustring.len local genders = { ["m"] = "ပုလ္လိၚ်", ["f"] = "ဣတ္တိလိၚ်", ["n"] = "နပုလ္လိၚ်", } local n_param = {set = {"s", "p"}} local function inscat(data, cat) -- insert(data.categories, lang:getCanonicalName() .. " " .. cat) end local function detect_j(stem) -- match long vowel or diphthong followed by consonants local rest, nucleus, coda = umatch(stem, "^(.-)([āēīōūąįųĀĒĪŌŪ]?̄?[aeiouAEIOU]*)([bdfghjklmnprʀstþwBDFGHJKLMNPRSTÞW]+)$") if not rest or nucleus == "" then error("Stem does not end in a vowel or diphthong followed by consonants") elseif ulen(coda) > 1 or ufind(nucleus, "^[āēīōūąįųĀĒĪŌŪ]̄?$") or ufind(nucleus, "^[aeiouAEIOU][aeiouAEIOU]$") then return "ij" elseif ufind(rest, "^[bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*$") then return "j" else error("Stem consists of multiple syllables or its weight cannot be otherwise be determined") end end local function geminate(stem) stem = stem:gsub("w$", "uw") stem = ugsub(stem, "([bdghklmnpstþ])$", "%1%1") return stem end -- Inflection functions function export.a(frame) local params = { [1] = {template_default = "{{{1}}}"}, g = {required = true, set = {"m", "n"}, template_default = "m"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local function insgendercat(cat) -- inscat(data, genders[args.g] .. " " .. cat) end local stem, suffix = umatch(lemma, "^(.-)([iīu])$") local stem_u local nom_sg if suffix == "ī" then stem = stem .. "ij" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "i" then stem = geminate(stem) .. "j" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "u" then stem_u = stem stem = stem .. "w" data.info = "''wa''-stem" -- insgendercat("wa-stem nouns") else stem = lemma data.info = "''a''-stem" -- insgendercat("a-stem nouns") end nom_sg = {lemma, stem .. "a"} stem_u = stem_u or stem data.info = genders[args.g] .. " " .. data.info data.forms["nom|s"] = nom_sg data.forms["acc|s"] = nom_sg data.forms["gen|s"] = {stem .. "as"} data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ōs"} data.forms["acc|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.an(frame) local params = { [1] = {template_default = "{{{1}}}ō"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local stem, suffix = umatch(lemma, "^(.-)([āō])$") local g if suffix == "ā" then g = "n" elseif suffix == "ō" then g = "m" else error("an-stems must end in -ō or -ā") end local data = { forms = {}, info = genders[g] .. " ''an''-stem", categories = {}, } -- inscat(data, genders[g] .. " an-stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = g == "n" and {lemma} or {stem .. "an"} data.forms["gen|s"] = {stem_weak .. "ini", stem_weak .. "an"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = g == "n" and {stem .. "ōn"} or {stem .. "an"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "anō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.cons(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "consonant stem", categories = {}, } -- inscat(data, "consonant stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = lemma end if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = {args.ns or lemma .. "u"} data.forms["gen|s"] = {stem_weak .. "i"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {lemma .. "i"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "ō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.i(frame) local params = { [1] = {template_default = "{{{1}}}i"}, j = {template_default = "ij"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(i)$") local stem_j, stem_weak_j if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem_j = stem .. "ij" stem_weak_j = stem_weak .. "ij" else stem_j = geminate(stem) .. "j" stem_weak_j = geminate(stem_weak) .. "j" end else error("i-stems must end in -i") end data.info = "''i''-stem" -- inscat(data, "i-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_weak .. "ī"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem .. "ī"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak_j .. "ō"} data.forms["dat|p"] = {stem_weak .. "im", stem_weak_j .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end export["in"] = function(frame) local params = { [1] = {template_default = "{{{1}}}ī"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''īn''-stem", categories = {}, } -- inscat(data, "īn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ī)$") if suffix ~= "ī" then error("īn-stems must end in -ī") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "īn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] postprocess(args, data) return make_table(data) end function export.o(frame) local params = { [1] = {template_default = "{{{1}}}u"}, j = true, n = n_param, w = {type = "boolean"}, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)([iu])$") local stem_u if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem = stem .. "ij" elseif umatch(stem, "^(.-)([bdfghjklmnprʀstþw-]+)(in)$") then stem = ugsub(stem, "in$", "unn") .. "j" else stem = geminate(stem) .. "j" end data.info = "''ī''/''jō''-stem" -- inscat(data, "ī/jō-stem nouns") elseif suffix == "u" then if args.w then stem_u = stem stem = stem .. "w" data.info = "''wō''-stem" -- inscat(data, "wō-stem nouns") else data.info = "''ō''-stem" -- inscat(data, "ō-stem nouns") end else error("ō-stems must end in -i or -u") end stem_u = stem_u or stem data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ā"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = {stem .. "ō"} data.forms["acc|p"] = {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem .. "ōm", stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.on(frame) local params = { [1] = {template_default = "{{{1}}}ā"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''ōn''-stem", categories = {}, } -- inscat(data, "ōn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ā)$") if suffix ~= "ā" then error("ōn-stems must end in -ā") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ōn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] data.forms["nom|p"] = data.forms["acc|s"] data.forms["acc|p"] = data.forms["acc|s"] data.forms["gen|p"] = {stem .. "ōnō"} data.forms["dat|p"] = {stem .. "ōm", stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.r(frame) local params = { [1] = {template_default = "{{{1}}}er"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "r-stem", categories = {}, } -- inscat(data, "r-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(er)$") if suffix ~= "er" then error("r-stems must end in -er") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ar"} data.forms["gen|s"] = {stem .. "ur"} data.forms["dat|s"] = {stem .. "ri"} data.forms["ins|s"] = data.forms["dat|s"] data.forms["nom|p"] = {stem .. "ar"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem .. "rō"} data.forms["dat|p"] = {stem .. "rum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.u(frame) local params = { [1] = {template_default = "{{{1}}}u"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(u)$") if suffix ~= "u" then error("u-stems must end in -u") end data.info = "''u''-stem" -- inscat(data, "u-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem .. "ō"} data.forms["dat|s"] = {stem .. "iwi", stem .. "ō"} data.forms["ins|s"] = {stem .. "u"} data.forms["nom|p"] = {stem .. "iwi", stem .. "ō"} data.forms["acc|p"] = {stem .. "ū"} data.forms["gen|p"] = {stem .. "iwō"} data.forms["dat|p"] = {stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.z(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "''z''-stem", categories = {}, } -- inscat(data, "z-stem nouns") local stem_i = ugsub(lemma, "e(u?[bdfghklmnprʀstþw]*)$", "i%1") if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_i .. "iʀi"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem_i .. "iʀu"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_i .. "iʀō"} data.forms["dat|p"] = {stem_i .. "iʀum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function postprocess(args, data) data.n = args.n if args.n == "p" then -- inscat(data, "pluralia tantum") elseif args.n == "s" then -- inscat(data, "singularia tantum") elseif args.n then error("Internal error: args= must be \"s\" or \"p\".") end for key, form in pairs(data.forms) do -- Do not show singular or plural forms for nominals that don't have them if (args.n == "p" and key:find("|s$")) or (args.n == "s" and key:find("|p$")) then form = nil end data.forms[key] = form end end -- Make the table function make_table(data) local function repl(param) if param == "info" then return mw.getContentLanguage():ucfirst(data.info or "") end local forms = data.forms[param] if not forms then return "&mdash;" end local ret = {} for key, subform in ipairs(forms) do -- i-umlaut if ufind(subform, "[iīįǐj]") then subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])e(u?)([bdfghjklmnprʀstþw]+)([iīįj])", "%1i%2%3%4") subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])o([bdfghjklmnprʀstþw]+)([iīįj])", "%1u%2%3") end -- *u[+stress] > *o /{C,#}_C[-nasal]V[+back] if ufind(subform, "u") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]+)u([bdfghklprʀstþw]+)([aoāōą])", "%1o%2%3") end -- *w > ∅ /V́_*u if ufind(subform, "[aeiouāēīōūAEIOUĀĒĪŌŪ]wu") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)uwu", "%1ū") subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)([aeiouāēīōūAEIOUĀĒĪŌŪ])w(u)", "%1%2%3") end -- Mahlow's Law (*ōu > *ō / _C{#,V}) if ufind(subform, "ō[uw]") then subform = ugsub(subform, "(ō)[uw]", "%1") end if ufind(subform, "ū[uw]") then subform = ugsub(subform, "(ū)[uw]", "%1") end -- C[+plosive -voice] > CC /_LV (Ringe 2014:54) if ufind(subform, "[ptkh][lr]") then subform = ugsub(subform, "([aeiouāēīōūAEIOUĀĒĪŌŪ])([ptkh])([lr][aeiouāēīōūąįų])", "%1%2%2%3") end insert(ret, require("Module:links").full_link({lang = lang, alt = "*" .. subform})) end return table.concat(ret, ", ") end local wikicode = {} insert(wikicode, [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: solid 1px var(--wikt-palette-grey-4, #CCCCCC);" |- style="background: var(--wikt-palette-grey-3, #CCCCCC); text-align: left;" ! class="vsToggleElement" colspan="3" | {{{info}}} |- class="vsShow" ! style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" colspan="2" | ကိုန်ဨကဝုစ် |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | colspan="2" | {{{nom|s}}} |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | colspan="2" | {{{gen|s}}} |- class="vsHide" | style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဨကဝုစ် ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဗဟုဝစ် |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | {{{nom|s}}} | {{{nom|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ကမ္မကာရက | {{{acc|s}}} | {{{acc|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | {{{gen|s}}} | {{{gen|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ပြကမ္မကာရက | {{{dat|s}}} | {{{dat|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {{{ins|s}}} | {{{ins|p}}} |}]=]) return ugsub(table.concat(wikicode), "{{{([#!]?[a-z0-9|]+)}}}", repl) .. require("Module:utilities").format_categories(data.categories, lang) end return export et6jew2jo0u6hafjnde7t7a8mqu6jgg 398061 398058 2026-07-09T15:50:21Z 咽頭べさ 33 398061 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("gmw-pro") local insert = table.insert local ugsub = mw.ustring.gsub local ufind = mw.ustring.find local umatch = mw.ustring.match local ulen = mw.ustring.len local genders = { ["m"] = "ပုလ္လိၚ်", ["f"] = "ဣတ္တိလိၚ်", ["n"] = "နပုလ္လိၚ်", } local n_param = {set = {"s", "p"}} local function inscat(data, cat) -- insert(data.categories, lang:getCanonicalName() .. " " .. cat) end local function detect_j(stem) -- match long vowel or diphthong followed by consonants local rest, nucleus, coda = umatch(stem, "^(.-)([āēīōūąįųĀĒĪŌŪ]?̄?[aeiouAEIOU]*)([bdfghjklmnprʀstþwBDFGHJKLMNPRSTÞW]+)$") if not rest or nucleus == "" then error("Stem does not end in a vowel or diphthong followed by consonants") elseif ulen(coda) > 1 or ufind(nucleus, "^[āēīōūąįųĀĒĪŌŪ]̄?$") or ufind(nucleus, "^[aeiouAEIOU][aeiouAEIOU]$") then return "ij" elseif ufind(rest, "^[bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*$") then return "j" else error("Stem consists of multiple syllables or its weight cannot be otherwise be determined") end end local function geminate(stem) stem = stem:gsub("w$", "uw") stem = ugsub(stem, "([bdghklmnpstþ])$", "%1%1") return stem end -- Inflection functions function export.a(frame) local params = { [1] = {template_default = "{{{1}}}"}, g = {required = true, set = {"m", "n"}, template_default = "m"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local function insgendercat(cat) -- inscat(data, genders[args.g] .. " " .. cat) end local stem, suffix = umatch(lemma, "^(.-)([iīu])$") local stem_u local nom_sg if suffix == "ī" then stem = stem .. "ij" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "i" then stem = geminate(stem) .. "j" data.info = "''ja''-stem" -- insgendercat("ja-stem nouns") elseif suffix == "u" then stem_u = stem stem = stem .. "w" data.info = "''wa''-stem" -- insgendercat("wa-stem nouns") else stem = lemma data.info = "''a''-stem" -- insgendercat("a-stem nouns") end nom_sg = {lemma, stem .. "a"} stem_u = stem_u or stem data.info = genders[args.g] .. " " .. data.info data.forms["nom|s"] = nom_sg data.forms["acc|s"] = nom_sg data.forms["gen|s"] = {stem .. "as"} data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ōs"} data.forms["acc|p"] = args.g == "n" and {stem_u .. "u"} or {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.an(frame) local params = { [1] = {template_default = "{{{1}}}ō"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local stem, suffix = umatch(lemma, "^(.-)([āō])$") local g if suffix == "ā" then g = "n" elseif suffix == "ō" then g = "m" else error("an-stems must end in -ō or -ā") end local data = { forms = {}, info = genders[g] .. " ''an''-stem", categories = {}, } -- inscat(data, genders[g] .. " an-stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = g == "n" and {lemma} or {stem .. "an"} data.forms["gen|s"] = {stem_weak .. "ini", stem_weak .. "an"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = g == "n" and {stem .. "ōn"} or {stem .. "an"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "anō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.cons(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "consonant stem", categories = {}, } -- inscat(data, "consonant stem nouns") if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = lemma end if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = {args.ns or lemma .. "u"} data.forms["gen|s"] = {stem_weak .. "i"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {lemma .. "i"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak .. "ō"} data.forms["dat|p"] = {stem_weak .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.i(frame) local params = { [1] = {template_default = "{{{1}}}i"}, j = {template_default = "ij"}, n = n_param, wk = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(i)$") local stem_j, stem_weak_j if args.wk then stem_weak = args.wk -- inscat(data, "irregular nouns") else stem_weak = stem end if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem_j = stem .. "ij" stem_weak_j = stem_weak .. "ij" else stem_j = geminate(stem) .. "j" stem_weak_j = geminate(stem_weak) .. "j" end else error("i-stems must end in -i") end data.info = "''i''-stem" -- inscat(data, "i-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_weak .. "ī"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem .. "ī"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_weak_j .. "ō"} data.forms["dat|p"] = {stem_weak .. "im", stem_weak_j .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end export["in"] = function(frame) local params = { [1] = {template_default = "{{{1}}}ī"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "တံမအရေဝ်-''īn''", categories = {}, } -- inscat(data, "īn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ī)$") if suffix ~= "ī" then error("īn-stems must end in -ī") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "īn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] postprocess(args, data) return make_table(data) end function export.o(frame) local params = { [1] = {template_default = "{{{1}}}u"}, j = true, n = n_param, w = {type = "boolean"}, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)([iu])$") local stem_u if suffix == "i" then if (args.j or detect_j(stem)) == "ij" then stem = stem .. "ij" elseif umatch(stem, "^(.-)([bdfghjklmnprʀstþw-]+)(in)$") then stem = ugsub(stem, "in$", "unn") .. "j" else stem = geminate(stem) .. "j" end data.info = "''ī''/''jō''-stem" -- inscat(data, "ī/jō-stem nouns") elseif suffix == "u" then if args.w then stem_u = stem stem = stem .. "w" data.info = "''wō''-stem" -- inscat(data, "wō-stem nouns") else data.info = "''ō''-stem" -- inscat(data, "ō-stem nouns") end else error("ō-stems must end in -i or -u") end stem_u = stem_u or stem data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ā"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = {stem .. "ē"} data.forms["ins|s"] = {stem_u .. "u"} data.forms["nom|p"] = {stem .. "ō"} data.forms["acc|p"] = {stem .. "ā"} data.forms["gen|p"] = {stem .. "ō"} data.forms["dat|p"] = {stem .. "ōm", stem_u .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.on(frame) local params = { [1] = {template_default = "{{{1}}}ā"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "တံမအရေဝ်-''ōn''", categories = {}, } -- inscat(data, "ōn-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(ā)$") if suffix ~= "ā" then error("ōn-stems must end in -ā") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ōn"} data.forms["gen|s"] = data.forms["acc|s"] data.forms["dat|s"] = data.forms["acc|s"] data.forms["ins|s"] = data.forms["acc|s"] data.forms["nom|p"] = data.forms["acc|s"] data.forms["acc|p"] = data.forms["acc|s"] data.forms["gen|p"] = {stem .. "ōnō"} data.forms["dat|p"] = {stem .. "ōm", stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.r(frame) local params = { [1] = {template_default = "{{{1}}}er"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "r-stem", categories = {}, } -- inscat(data, "r-stem nouns") local stem, suffix = umatch(lemma, "^(.-)(er)$") if suffix ~= "er" then error("r-stems must end in -er") end data.forms["nom|s"] = {lemma} data.forms["acc|s"] = {stem .. "ar"} data.forms["gen|s"] = {stem .. "ur"} data.forms["dat|s"] = {stem .. "ri"} data.forms["ins|s"] = data.forms["dat|s"] data.forms["nom|p"] = {stem .. "ar"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem .. "rō"} data.forms["dat|p"] = {stem .. "rum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.u(frame) local params = { [1] = {template_default = "{{{1}}}u"}, n = n_param, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = nil, categories = {}, } local stem, suffix = umatch(lemma, "^(.-)(u)$") if suffix ~= "u" then error("u-stems must end in -u") end data.info = "တံမအရေဝ်-''u''" -- inscat(data, "u-stem nouns") data.forms["nom|s"] = {lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem .. "ō"} data.forms["dat|s"] = {stem .. "iwi", stem .. "ō"} data.forms["ins|s"] = {stem .. "u"} data.forms["nom|p"] = {stem .. "iwi", stem .. "ō"} data.forms["acc|p"] = {stem .. "ū"} data.forms["gen|p"] = {stem .. "iwō"} data.forms["dat|p"] = {stem .. "um"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function export.z(frame) local params = { [1] = {template_default = "{{{1}}}"}, n = n_param, ns = true, pagename = true, } local args = require("Module:parameters").process(frame:getParent().args, params) local lemma = args[1] or args.pagename or mw.loadData("Module:headword/data").pagename local data = { forms = {}, info = "တံမအရေဝ်-''z''", categories = {}, } -- inscat(data, "z-stem nouns") local stem_i = ugsub(lemma, "e(u?[bdfghklmnprʀstþw]*)$", "i%1") if args.ns then -- inscat(data, "irregular nouns") end data.forms["nom|s"] = {args.ns or lemma} data.forms["acc|s"] = data.forms["nom|s"] data.forms["gen|s"] = {stem_i .. "iʀi"} data.forms["dat|s"] = data.forms["gen|s"] data.forms["ins|s"] = data.forms["gen|s"] data.forms["nom|p"] = {stem_i .. "iʀu"} data.forms["acc|p"] = data.forms["nom|p"] data.forms["gen|p"] = {stem_i .. "iʀō"} data.forms["dat|p"] = {stem_i .. "iʀum"} data.forms["ins|p"] = data.forms["dat|p"] postprocess(args, data) return make_table(data) end function postprocess(args, data) data.n = args.n if args.n == "p" then -- inscat(data, "pluralia tantum") elseif args.n == "s" then -- inscat(data, "singularia tantum") elseif args.n then error("Internal error: args= must be \"s\" or \"p\".") end for key, form in pairs(data.forms) do -- Do not show singular or plural forms for nominals that don't have them if (args.n == "p" and key:find("|s$")) or (args.n == "s" and key:find("|p$")) then form = nil end data.forms[key] = form end end -- Make the table function make_table(data) local function repl(param) if param == "info" then return mw.getContentLanguage():ucfirst(data.info or "") end local forms = data.forms[param] if not forms then return "&mdash;" end local ret = {} for key, subform in ipairs(forms) do -- i-umlaut if ufind(subform, "[iīįǐj]") then subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])e(u?)([bdfghjklmnprʀstþw]+)([iīįj])", "%1i%2%3%4") subform = ugsub(subform, "([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW])o([bdfghjklmnprʀstþw]+)([iīįj])", "%1u%2%3") end -- *u[+stress] > *o /{C,#}_C[-nasal]V[+back] if ufind(subform, "u") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]+)u([bdfghklprʀstþw]+)([aoāōą])", "%1o%2%3") end -- *w > ∅ /V́_*u if ufind(subform, "[aeiouāēīōūAEIOUĀĒĪŌŪ]wu") then subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)uwu", "%1ū") subform = ugsub(subform, "^([bdfghjklmnprʀstþwBDFGHJKLMNPRƦSTÞW]*)([aeiouāēīōūAEIOUĀĒĪŌŪ])w(u)", "%1%2%3") end -- Mahlow's Law (*ōu > *ō / _C{#,V}) if ufind(subform, "ō[uw]") then subform = ugsub(subform, "(ō)[uw]", "%1") end if ufind(subform, "ū[uw]") then subform = ugsub(subform, "(ū)[uw]", "%1") end -- C[+plosive -voice] > CC /_LV (Ringe 2014:54) if ufind(subform, "[ptkh][lr]") then subform = ugsub(subform, "([aeiouāēīōūAEIOUĀĒĪŌŪ])([ptkh])([lr][aeiouāēīōūąįų])", "%1%2%2%3") end insert(ret, require("Module:links").full_link({lang = lang, alt = "*" .. subform})) end return table.concat(ret, ", ") end local wikicode = {} insert(wikicode, [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: solid 1px var(--wikt-palette-grey-4, #CCCCCC);" |- style="background: var(--wikt-palette-grey-3, #CCCCCC); text-align: left;" ! class="vsToggleElement" colspan="3" | {{{info}}} |- class="vsShow" ! style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" colspan="2" | ကိုန်ဨကဝုစ် |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | colspan="2" | {{{nom|s}}} |- class="vsShow" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | colspan="2" | {{{gen|s}}} |- class="vsHide" | style="width: 9em;" | ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဨကဝုစ် ! style="width: 15em; background: var(--wikt-palette-grey-2, #DDDDDD);" | ကိုန်ဗဟုဝစ် |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | မဒုၚ်ယၟု | {{{nom|s}}} | {{{nom|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ကမ္မကာရက | {{{acc|s}}} | {{{acc|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ဗဳဇဂကူ | {{{gen|s}}} | {{{gen|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | ပြကမ္မကာရက | {{{dat|s}}} | {{{dat|p}}} |- class="vsHide" ! style="background: var(--wikt-palette-grey-1, #EEEEEE)" | တိၚ်တိုက်ကပေါတ်ကွိၚ်ကွိုက် | {{{ins|s}}} | {{{ins|p}}} |}]=]) return ugsub(table.concat(wikicode), "{{{([#!]?[a-z0-9|]+)}}}", repl) .. require("Module:utilities").format_categories(data.categories, lang) end return export b8urdic3tfnnhi07apiqpgkh9rwgzwe မဝ်ဂျူ:gmw-noun/doc 828 296578 398057 2026-07-09T15:38:29Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gmw-pro}} </includeonly>" 398057 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gmw-pro}} </includeonly> 4sf9whnll42px7xu7j1qcaeox16ht0c ကဏ္ဍ:မဝ်ဂျူဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ် 14 296579 398059 2026-07-09T15:41:38Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာဂျာမာန်နေတ်လက္ကရဴ-အခိုက်..." 398059 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ|ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ]] » '''မဝ်ဂျူဂမၠိုၚ်''' :[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။ [[ကဏ္ဍ:ဘာသာဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] 33qr61vhmttj34a0utnb69aw6o33fto ကဏ္ဍ:မဝ်ဂျူပွမပြံၚ်လှာဲဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ် 14 296580 398060 2026-07-09T15:43:54Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]]ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှ..." 398060 wikitext text/x-wiki [[ကဏ္ဍ:မဝ်ဂျူဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] 3tdr8368tm2s8by8hrhqwln8m57f2yg ထာမ်ပလိက်:gmw-infl-noun-u/documentation 10 296581 398062 2026-07-09T15:51:13Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|u]] </includeonly>" 398062 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|u]] </includeonly> suwpcgg5omc6a3rdi6vbt07s8g6ypjb ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ် 14 296582 398063 2026-07-09T15:52:38Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]]" 398063 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] hymqvhkp9c5vo7sntfu87lder1okl65 ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ် 14 296583 398064 2026-07-09T15:54:01Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]]" 398064 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်နေတ်လက္ကရဴ-အခိုက်ကၞာဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] ka0iod165jis3smw8zaaoyki48f8nh3 ဗီုပြၚ်သိုၚ်တၟိ:ဂျာမာန်-အခိုက်ကၞာ/kraftuz 118 296584 398065 2026-07-09T15:58:54Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{reconstructed}} ==ဂျာမာန်-အခိုက်ကၞာ== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|gem-pro|/ˈkrɑɸ.tuz/}} ===နာမ်=== {{gem-noun|f}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အစောံသတ္တိ။ #: {{syn|gem-pro|*mahtiz}} ====ပရေၚ်ကၠောံ==== {{gem-decl-noun}} ===ပွံၚ်နဲတၞဟ်=== * {{alter|gem-pro|alt=*kraftiz..." 398065 wikitext text/x-wiki {{reconstructed}} ==ဂျာမာန်-အခိုက်ကၞာ== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|gem-pro|/ˈkrɑɸ.tuz/}} ===နာမ်=== {{gem-noun|f}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အစောံသတ္တိ။ #: {{syn|gem-pro|*mahtiz}} ====ပရေၚ်ကၠောံ==== {{gem-decl-noun}} ===ပွံၚ်နဲတၞဟ်=== * {{alter|gem-pro|alt=*kraftiz}} * {{alter|gem-pro|alt=*kraftaz}} ===မဒုၚ်လွဳစ=== * {{desctree|gmw-pro|*kraftu}} * {{desctree|non|kraptr}} tnyogwnvn2tr1u3acjtejer4ycn74ai ထာမ်ပလိက်:gem-decl-noun 10 296585 398066 2026-07-09T15:59:41Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:gem-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude>" 398066 wikitext text/x-wiki {{#invoke:gem-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude> 4jkmu1vnoswk63rgnvmj4pwdy9ubj5q မဝ်ဂျူ:gem-decl-noun/data 828 296586 398067 2026-07-09T16:04:32Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] local stem_i = "" if mw.ustring.sub(stem, -2) == "ij" then stem_i = mw.ustring.sub(stem, 1, -3) .. "ī" data.decl_type = "masculine ja-stem" -- table.insert(data.categories, "Proto-Germanic ja-stem nouns") elseif mw.ustring.sub(stem..." 398067 Scribunto text/plain local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] local stem_i = "" if mw.ustring.sub(stem, -2) == "ij" then stem_i = mw.ustring.sub(stem, 1, -3) .. "ī" data.decl_type = "masculine ja-stem" -- table.insert(data.categories, "Proto-Germanic ja-stem nouns") elseif mw.ustring.sub(stem, -1) == "j" then stem_i = mw.ustring.sub(stem, 1, -2) .. "i" data.decl_type = "masculine ja-stem" -- table.insert(data.categories, "Proto-Germanic ja-stem nouns") else stem_i = stem data.decl_type = "masculine a-stem" -- table.insert(data.categories, "Proto-Germanic a-stem nouns") end data.forms["nom_sg"] = {stem .. "az"} data.forms["voc_sg"] = {stem_i == stem and stem or stem_i} data.forms["acc_sg"] = {stem .. "ą"} data.forms["gen_sg"] = {stem .. "as", stem_i .. (stem_i == stem and "is" or "s")} data.forms["dat_sg"] = {stem .. "ai"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ōz", args[1] .. "ōs"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "anz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "amaz"} data.forms["ins_pl"] = {stem .. "amiz"} end end }) decl_data["a-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("masculine", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "amaz"} data.forms["ins_pl"] = {args[1] .. "amiz"} end end }) decl_data["acoll-n"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["acoll-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = data.decl_type:gsub("masculine", "neuter") data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = data.forms["acc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[2] .. "ō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "amaz"} data.forms["ins_pl"] = {args[2] .. "amiz"} end end }) decl_data["cons-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["nomsg"] = {}, ["vocsg"] = {}, }, } setmetatable(decl_data["cons-mf"], {__call = function(self, args, data) local pagename = mw.loadData("Module:headword/data").pagename local s = mw.ustring.sub(pagename, -1, -1) -- Check for s-stems if mw.ustring.sub(pagename, -1, -1) == "s" and not mw.ustring.find(mw.ustring.sub(pagename, -2, -2), "[fhkptþ]") then s = "" end -- (mw.ustring.find(mw.ustring.sub(args[1], -1, -1), "[fhkptþ]") and "s" or "z") data.decl_type = "consonant stem" data.forms["nom_sg"] = {args.nomsg or (args[1] .. s)} data.forms["voc_sg"] = {args.vocsg or args[1]} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "iz"} data.forms["dat_sg"] = {args[1] .. "i"} data.forms["ins_sg"] = {args[1] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end }) decl_data["cons-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["cons-n"], {__call = function(self, args, data) decl_data["cons-mf"](args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {args[1]} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1]} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["i-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-mf"], {__call = function(self, args, data) data.decl_type = "i-stem" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[1] .. "īz"} data.forms["dat_sg"] = {args[1] .. "ī"} data.forms["ins_sg"] = {args[1] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[1] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "imaz"} data.forms["ins_pl"] = {args[1] .. "imiz"} end -- table.insert(data.categories, "Proto-Germanic i-stem nouns") end }) decl_data["tis-f"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["tis-f"], {__call = function(self, args, data) data.decl_type = "feminine i-stem" local j = args.j or require("Module:gem-pronunc").determine_sievers(args[2]) data.forms["nom_sg"] = {args[1] .. "iz"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "į"} data.forms["gen_sg"] = {args[2] .. "īz"} data.forms["dat_sg"] = {args[2] .. "ī"} data.forms["ins_sg"] = {args[2] .. "ī"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "inz"} data.forms["gen_pl"] = {args[2] .. (j or "") .. "ǫ̂"} data.forms["dat_pl"] = {args[2] .. "imaz"} data.forms["ins_pl"] = {args[2] .. "imiz"} end -- table.insert(data.categories, "Proto-Germanic i-stem nouns") end }) decl_data["i-n"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-n"], {__call = function(self, args, data) decl_data["i-mf"](args, data) data.decl_type = "neuter i-stem" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ī"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["ijo-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["ijo-f"], {__call = function(self, args, data) data.decl_type = "ī/jō-stem" local stem = args[1] .. require("Module:gem-pronunc").determine_sievers(args[1]) data.forms["nom_sg"] = {args[1] .. "ī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {stem .. "ǭ"} data.forms["gen_sg"] = {stem.. "ōz"} data.forms["dat_sg"] = {stem .. "ōi"} data.forms["ins_sg"] = {stem .. "ō"} if not args.nopl then data.forms["nom_pl"] = {stem .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {stem .. "ōz"} data.forms["gen_pl"] = {stem .. "ǫ̂"} data.forms["dat_pl"] = {stem .. "ōmaz"} data.forms["ins_pl"] = {stem .. "ōmiz"} end -- table.insert(data.categories, "Proto-Germanic ī/jō-stem nouns") end }) decl_data["n-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-f"], {__call = function(self, args, data) data.decl_type = "ōn-stem" data.forms["nom_sg"] = {args[1] .. "ǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ōnų"} data.forms["gen_sg"] = {args[1] .. "ōniz"} data.forms["dat_sg"] = {args[1] .. "ōni"} data.forms["ins_sg"] = {args[1] .. "ōnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōnunz"} data.forms["gen_pl"] = {args[1] .. "ōnǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end -- table.insert(data.categories, "Proto-Germanic ōn-stem nouns") end }) decl_data["n-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-m"], {__call = function(self, args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[1].. "iniz"} data.forms["dat_sg"] = {args[1] .. "ini"} data.forms["ins_sg"] = {args[1] .. "inē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "anunz"} data.forms["gen_pl"] = {args[1] .. "anǫ̂"} data.forms["dat_pl"] = {args[1] .. "ammaz"} data.forms["ins_pl"] = {args[1] .. "ammiz"} end -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["namphi-m"] = { params = { [1] = {}, [2] = {}, [3] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["namphi-m"], {__call = function(self, args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {args[1] .. "ô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "anų"} data.forms["gen_sg"] = {args[2].. "az"} data.forms["dat_sg"] = {args[3] .. "ini"} data.forms["ins_sg"] = {args[2] .. "ē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "aniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[2] .. "unz"} data.forms["gen_pl"] = {args[2] .. "ǫ̂"} data.forms["dat_pl"] = {args[3] .. "ummaz"} data.forms["ins_pl"] = {args[3] .. "ummiz"} end -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["n-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["n-n"], {__call = function(self, args, data) decl_data["n-m"](args, data) data.decl_type = "neuter an-stem" data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ōnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] end -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end }) decl_data["in-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["in-f"], {__call = function(self, args, data) data.decl_type = "īn-stem" data.forms["nom_sg"] = {args[1] .. "į̄"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "īnų"} data.forms["gen_sg"] = {args[1] .. "īniz"} data.forms["dat_sg"] = {args[1] .. "īni"} data.forms["ins_sg"] = {args[1] .. "īnē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "īniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "īnunz"} data.forms["gen_pl"] = {args[1] .. "īnǫ̂"} data.forms["dat_pl"] = {args[1] .. "īmaz"} data.forms["ins_pl"] = {args[1] .. "īmiz"} end -- table.insert(data.categories, "Proto-Germanic īn-stem nouns") end }) decl_data["o-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["o-f"], {__call = function(self, args, data) data.decl_type = "ō-stem" data.forms["nom_sg"] = {args[1] .. "ō"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {args[1] .. "ǭ"} data.forms["gen_sg"] = {args[1] .. "ōz"} data.forms["dat_sg"] = {args[1] .. "ōi"} data.forms["ins_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "ōz"} data.forms["gen_pl"] = {args[1] .. "ǫ̂"} data.forms["dat_pl"] = {args[1] .. "ōmaz"} data.forms["ins_pl"] = {args[1] .. "ōmiz"} end -- table.insert(data.categories, "Proto-Germanic ō-stem nouns") end }) decl_data["r-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["r-mf"], {__call = function(self, args, data) data.decl_type = "r-stem" data.forms["nom_sg"] = {args[1] .. "ēr"} data.forms["voc_sg"] = {args[1] .. "er"} data.forms["acc_sg"] = {args[1] .. "erų"} data.forms["gen_sg"] = {args[1] .. "urz"} data.forms["dat_sg"] = {args[1] .. "ri"} data.forms["ins_sg"] = {args[1] .. "rē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "riz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "runz"} data.forms["gen_pl"] = {args[1] .. "rǫ̂"} data.forms["dat_pl"] = {args[1] .. "rumaz"} data.forms["ins_pl"] = {args[1] .. "rumiz"} end -- table.insert(data.categories, "Proto-Germanic r-stem nouns") end }) decl_data["u-mf"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-mf"], {__call = function(self, args, data) data.decl_type = "u-stem" data.forms["nom_sg"] = {args[1] .. "uz"} data.forms["voc_sg"] = {args[1] .. "u"} data.forms["acc_sg"] = {args[1] .. "ų"} data.forms["gen_sg"] = {args[1] .. "auz"} data.forms["dat_sg"] = {args[1] .. "iwi"} data.forms["ins_sg"] = {args[1] .. "ū"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "iwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "unz"} data.forms["gen_pl"] = {args[1] .. "iwǫ̂"} data.forms["dat_pl"] = {args[1] .. "umaz"} data.forms["ins_pl"] = {args[1] .. "umiz"} end -- table.insert(data.categories, "Proto-Germanic u-stem nouns") end }) decl_data["u-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-n"], {__call = function(self, args, data) decl_data["u-mf"](args, data) data.decl_type = "neuter u-stem" data.forms["nom_sg"] = data.forms["voc_sg"] data.forms["acc_sg"] = data.forms["voc_sg"] if not args.nopl then data.forms["nom_pl"] = data.forms["ins_sg"] data.forms["voc_pl"] = data.forms["ins_sg"] data.forms["acc_pl"] = data.forms["ins_sg"] end end }) decl_data["z-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["z-n"], {__call = function(self, args, data) data.decl_type = "z-stem" data.forms["nom_sg"] = {args[1] .. "az"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {args[1] .. "iziz"} data.forms["dat_sg"] = {args[1] .. "izi"} data.forms["ins_sg"] = {args[1] .. "izē"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "izō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {args[1] .. "izǫ̂"} data.forms["dat_pl"] = {args[1] .. "izumaz"} data.forms["ins_pl"] = {args[1] .. "izumiz"} end -- table.insert(data.categories, "Proto-Germanic z-stem nouns") end }) decl_data["irreg"] = {} setmetatable(decl_data["irreg"], {__call = function(self, args, data) local word = mw.loadData("Module:headword/data").pagename irreg_data = require("Module:gem-decl-noun/data/irreg") if irreg_data.irreg[word] then irreg_data.irreg[word](args, data) else error("Irregular inflection not found. Please check Module:gem-decl-noun/data.") end -- table.insert(data.categories, "Proto-Germanic irregular nouns") end }) return decl_data 1lukgcwztch5ksqvpk3lxs1uloda27k မဝ်ဂျူ:gem-decl-noun/data/doc 828 296587 398068 2026-07-09T16:06:10Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gem-pro}} </includeonly>" 398068 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gem-pro}} </includeonly> 9hf1bbr2nw5zr481phve10i1uh9npwm ကဏ္ဍ:မဝ်ဂျူဒေတာဂျာမာန်-အခိုက်ကၞာဂမၠိုၚ် 14 296588 398069 2026-07-09T16:07:36Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူဂျာမာန်-အခိုက်ကၞာတြေံဂမၠိုၚ်|စ]][[ကဏ္ဍ:မဝ်ဂျူစရၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]]" 398069 wikitext text/x-wiki [[ကဏ္ဍ:မဝ်ဂျူဂျာမာန်-အခိုက်ကၞာတြေံဂမၠိုၚ်|စ]][[ကဏ္ဍ:မဝ်ဂျူစရၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] oo3qou7syyxv5dt3dg02dgfkc1w4gs7 398070 398069 2026-07-09T16:08:00Z 咽頭べさ 33 398070 wikitext text/x-wiki [[ကဏ္ဍ:မဝ်ဂျူဂျာမာန်-အခိုက်ကၞာဂမၠိုၚ်|စ]][[ကဏ္ဍ:မဝ်ဂျူစရၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] mhwlvghsf3rlj4kcano0fk5s5fq78a8 မဝ်ဂျူ:gem-decl-noun/data/irreg 828 296589 398071 2026-07-09T16:11:14Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "irreg_data = {} ------ Consonant stems ------ irreg_data["aigin"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"aigin"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aiginþiz"} data.forms["dat_sg"] = {"aiginþi"} data.forms["ins_sg"] = {"aiginþē"} data.forms["nom_pl"] = {"aiginþ"} data.forms[..." 398071 Scribunto text/plain irreg_data = {} ------ Consonant stems ------ irreg_data["aigin"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"aigin"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aiginþiz"} data.forms["dat_sg"] = {"aiginþi"} data.forms["ins_sg"] = {"aiginþē"} data.forms["nom_pl"] = {"aiginþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aiginþǫ̂"} data.forms["dat_pl"] = {"aiginþumaz"} data.forms["ins_pl"] = {"aiginþumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["alu"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"alu"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aluþiz"} data.forms["dat_sg"] = {"aluþi"} data.forms["ins_sg"] = {"aluþē"} data.forms["nom_pl"] = {"aluþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aluþǫ̂"} data.forms["dat_pl"] = {"aluþumaz"} data.forms["ins_pl"] = {"aluþumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["asunz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"asunz"} data.forms["voc_sg"] = {"asų"} data.forms["acc_sg"] = {"asnų"} data.forms["gen_sg"] = {"asniz"} data.forms["dat_sg"] = {"asni"} data.forms["ins_sg"] = {"asnē"} data.forms["nom_pl"] = {"asniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"asnunz"} data.forms["gen_pl"] = {"asnǫ̂"} data.forms["dat_pl"] = {"asnumaz"} data.forms["ins_pl"] = {"asnumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["berô"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"berô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"bernų"} data.forms["gen_sg"] = {"berniz"} data.forms["dat_sg"] = {"berni"} data.forms["ins_sg"] = {"bernē"} data.forms["nom_pl"] = {"berniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"bernunz"} data.forms["gen_pl"] = {"bernǫ̂"} data.forms["dat_pl"] = {"bernumaz"} data.forms["ins_pl"] = {"bernumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["ēbanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"ēbanþs"} data.forms["voc_sg"] = {"ēbanþ"} data.forms["acc_sg"] = {"ēbanþų"} data.forms["gen_sg"] = {"ēbundiz"} data.forms["dat_sg"] = {"ēbundi"} data.forms["ins_sg"] = {"ēbundē"} data.forms["nom_pl"] = {"ēbanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"ēbanþunz"} data.forms["gen_pl"] = {"ēbundǫ̂"} data.forms["dat_pl"] = {"ēbundumaz"} data.forms["ins_pl"] = {"ēbundumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["ili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"ili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"iliþiz"} data.forms["dat_sg"] = {"iliþi"} data.forms["ins_sg"] = {"iliþē"} data.forms["nom_pl"] = {"iliþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"iliþǫ̂"} data.forms["dat_pl"] = {"iliþumaz"} data.forms["ins_pl"] = {"iliþumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["kōz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"kōz"} data.forms["voc_sg"] = {"kō"} data.forms["acc_sg"] = {"kōǭ"} data.forms["gen_sg"] = {"kūiz"} data.forms["dat_sg"] = {"kūī"} data.forms["ins_sg"] = {"kūē"} data.forms["nom_pl"] = {"kōiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kōnz"} data.forms["gen_pl"] = {"kūǫ̂"} data.forms["dat_pl"] = {"kūmaz"} data.forms["ins_pl"] = {"kūmiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"mann-", "manô", "mannô"} data.forms["voc_sg"] = {"mann"} data.forms["acc_sg"] = {"mannų"} data.forms["gen_sg"] = {"manniz"} data.forms["dat_sg"] = {"manni"} data.forms["ins_sg"] = {"mannē"} data.forms["nom_pl"] = {"manniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"mannunz"} data.forms["gen_pl"] = {"mannǫ̂"} data.forms["dat_pl"] = {"mannumaz"} data.forms["ins_pl"] = {"mannumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["gawjamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"gawjamann-", "gawjamanô", "gawjamannô"} data.forms["voc_sg"] = {"gawjamann"} data.forms["acc_sg"] = {"gawjamannų"} data.forms["gen_sg"] = {"gawjamanniz"} data.forms["dat_sg"] = {"gawjamanni"} data.forms["ins_sg"] = {"gawjamannē"} data.forms["nom_pl"] = {"gawjamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"gawjamannunz"} data.forms["gen_pl"] = {"gawjamannǫ̂"} data.forms["dat_pl"] = {"gawjamannumaz"} data.forms["ins_pl"] = {"gawjamannumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["kaupamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"kaupamann-", "kaupamanô", "kaupamannô"} data.forms["voc_sg"] = {"kaupamann"} data.forms["acc_sg"] = {"kaupamannų"} data.forms["gen_sg"] = {"kaupamanniz"} data.forms["dat_sg"] = {"kaupamanni"} data.forms["ins_sg"] = {"kaupamannē"} data.forms["nom_pl"] = {"kaupamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kaupamannunz"} data.forms["gen_pl"] = {"kaupamannǫ̂"} data.forms["dat_pl"] = {"kaupamannumaz"} data.forms["ins_pl"] = {"kaupamannumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["skipamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"skipamann-", "skipamanô", "skipamannô"} data.forms["voc_sg"] = {"skipamann"} data.forms["acc_sg"] = {"skipamannų"} data.forms["gen_sg"] = {"skipamanniz"} data.forms["dat_sg"] = {"skipamanni"} data.forms["ins_sg"] = {"skipamannē"} data.forms["nom_pl"] = {"skipamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"skipamannunz"} data.forms["gen_pl"] = {"skipamannǫ̂"} data.forms["dat_pl"] = {"skipamannumaz"} data.forms["ins_pl"] = {"skipamannumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["harjamann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"harjamann-", "harjamanô", "harjamannô"} data.forms["voc_sg"] = {"harjamann"} data.forms["acc_sg"] = {"harjamannų"} data.forms["gen_sg"] = {"harjamanniz"} data.forms["dat_sg"] = {"harjamanni"} data.forms["ins_sg"] = {"harjamannē"} data.forms["nom_pl"] = {"harjamanniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"harjamannunz"} data.forms["gen_pl"] = {"harjamannǫ̂"} data.forms["dat_pl"] = {"harjamannumaz"} data.forms["ins_pl"] = {"harjamannumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["metaþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"metaþs"} data.forms["voc_sg"] = {"metaþ"} data.forms["acc_sg"] = {"metaþų"} data.forms["gen_sg"] = {"metadiz"} data.forms["dat_sg"] = {"metadi"} data.forms["ins_sg"] = {"metadē"} data.forms["nom_pl"] = {"metaþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"metaþunz"} data.forms["gen_pl"] = {"metadǫ̂"} data.forms["dat_pl"] = {"metadumaz"} data.forms["ins_pl"] = {"metadumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"mili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"milidiz"} data.forms["dat_sg"] = {"milidi"} data.forms["ins_sg"] = {"milidē"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["stuþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"stuþs"} data.forms["voc_sg"] = {"stuþ"} data.forms["acc_sg"] = {"stuþų"} data.forms["gen_sg"] = {"studiz"} data.forms["dat_sg"] = {"studi"} data.forms["ins_sg"] = {"studē"} data.forms["nom_pl"] = {"stuþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"stuþunz"} data.forms["gen_pl"] = {"studǫ̂"} data.forms["dat_pl"] = {"studumaz"} data.forms["ins_pl"] = {"studumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["sūz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"sūz"} data.forms["voc_sg"] = {"sū"} data.forms["acc_sg"] = {"suwų"} data.forms["gen_sg"] = {"suwiz"} data.forms["dat_sg"] = {"suwi"} data.forms["ins_sg"] = {"sūē"} data.forms["nom_pl"] = {"suwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"suwunz"} data.forms["gen_pl"] = {"sūǫ̂"} data.forms["dat_pl"] = {"suwumaz"} data.forms["ins_pl"] = {"suwumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["tanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"tanþs"} data.forms["voc_sg"] = {"tanþ"} data.forms["acc_sg"] = {"tanþų"} data.forms["gen_sg"] = {"tundiz"} data.forms["dat_sg"] = {"tundi"} data.forms["ins_sg"] = {"tundē"} data.forms["nom_pl"] = {"tanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"tanþunz"} data.forms["gen_pl"] = {"tundǫ̂"} data.forms["dat_pl"] = {"tundumaz"} data.forms["ins_pl"] = {"tundumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["wrōts"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"wrōts"} data.forms["voc_sg"] = {"wrōt"} data.forms["acc_sg"] = {"wrōtų"} data.forms["gen_sg"] = {"wurtiz"} data.forms["dat_sg"] = {"wurti"} data.forms["ins_sg"] = {"wurtē"} data.forms["nom_pl"] = {"wrōtiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"wrōtunz"} data.forms["gen_pl"] = {"wurtǫ̂"} data.forms["dat_pl"] = {"wurtumaz"} data.forms["ins_pl"] = {"wurtumiz"} -- table.insert(data.categories, "Proto-Germanic consonant stem nouns") end ------ i-stems ------ irreg_data["burþiz"] = function(args, data) if not args[1] then irreg_data["burþiz"]({""}, data) return end data.decl_type = "i-stem" data.forms["nom_sg"] = {args[1] .. "burþiz"} data.forms["voc_sg"] = {args[1] .. "burþi"} data.forms["acc_sg"] = {args[1] .. "burþį"} data.forms["gen_sg"] = {args[1] .. "burdīz"} data.forms["dat_sg"] = {args[1] .. "burdī"} data.forms["ins_sg"] = {args[1] .. "burdī"} data.forms["nom_pl"] = {args[1] .. "burþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "burþīnz"} data.forms["gen_pl"] = {args[1] .. "burdijǫ̂"} data.forms["dat_pl"] = {args[1] .. "burdimaz"} data.forms["ins_pl"] = {args[1] .. "burdimiz"} -- table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["fraburþiz"] = function(args, data) irreg_data["burþiz"]({"fra"}, data) end irreg_data["gaburþiz"] = function(args, data) irreg_data["burþiz"]({"ga"}, data) end irreg_data["kinþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kinþiz"} data.forms["voc_sg"] = {"kinþi"} data.forms["acc_sg"] = {"kinþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kinþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kinþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} -- table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["kumþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kumþiz"} data.forms["voc_sg"] = {"kumþi"} data.forms["acc_sg"] = {"kumþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kumþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kumþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} -- table.insert(data.categories, "Proto-Germanic i-stem nouns") end ------ u-stems ------ irreg_data["grunduz"] = function(args, data) data.decl_type = "u-stem" data.forms["nom_sg"] = {"grumþuz"} data.forms["voc_sg"] = {"grumþu"} data.forms["acc_sg"] = {"grumþų"} data.forms["gen_sg"] = {"grundauz"} data.forms["dat_sg"] = {"grundiwi"} data.forms["ins_sg"] = {"grundū"} data.forms["nom_pl"] = {"grumþiwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"grumþunz"} data.forms["gen_pl"] = {"grundiwǫ̂"} data.forms["dat_pl"] = {"grundumaz"} data.forms["ins_pl"] = {"grundumiz"} -- table.insert(data.categories, "Proto-Germanic u-stem nouns") end ------ i/jo stems ------ irreg_data["akwisī"] = function(args, data) data.decl_type = "ī/jō-stem" data.forms["nom_sg"] = {"akwisī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"akuzijǭ"} data.forms["gen_sg"] = {"akuzijōz"} data.forms["dat_sg"] = {"akuzijōi"} data.forms["ins_sg"] = {"akuzijō"} data.forms["nom_pl"] = {"akuzijôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"akuzijōz"} data.forms["gen_pl"] = {"akuzijǫ̂"} data.forms["dat_pl"] = {"akuzijōmaz"} data.forms["ins_pl"] = {"akuzijōmiz"} -- table.insert(data.categories, "Proto-Germanic ī/jō-stem nouns") end ------ n-stems ------ irreg_data["abô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"abô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"abanų"} data.forms["gen_sg"] = {"abniz"} data.forms["dat_sg"] = {"abni"} data.forms["ins_sg"] = {"abnē"} data.forms["nom_pl"] = {"abniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"abnuz"} data.forms["gen_pl"] = {"abnǫ̂"} data.forms["dat_pl"] = {"abnamaz"} data.forms["ins_pl"] = {"abnamiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["arô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"arô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"arnų"} data.forms["gen_sg"] = {"arniz"} data.forms["dat_sg"] = {"arni"} data.forms["ins_sg"] = {"arnē"} data.forms["nom_pl"] = {"arniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"arnunz"} data.forms["gen_pl"] = {"arnǫ̂"} data.forms["dat_pl"] = {"arnumaz"} data.forms["ins_pl"] = {"arnumiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["hersô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"hersô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"hersnų"} data.forms["gen_sg"] = {"hirzniz"} data.forms["dat_sg"] = {"hirzni"} data.forms["ins_sg"] = {"hirznē"} data.forms["nom_pl"] = {"hersnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"herznǫ̂"} data.forms["dat_pl"] = {"herznamaz"} data.forms["ins_pl"] = {"herznamiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["namô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"namô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"namniz"} data.forms["dat_sg"] = {"namni"} data.forms["ins_sg"] = {"namnē"} data.forms["nom_pl"] = {"namnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"namnǫ̂"} data.forms["dat_pl"] = {"namnamaz"} data.forms["ins_pl"] = {"namnamiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["sēmô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"sēmô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"sēmniz"} data.forms["dat_sg"] = {"sēmni"} data.forms["ins_sg"] = {"sēmnē"} data.forms["nom_pl"] = {"sēmnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"sēmnǫ̂"} data.forms["dat_pl"] = {"sēmnamaz"} data.forms["ins_pl"] = {"sēmnamiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["uhsô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"uhsô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"uhsanų"} data.forms["gen_sg"] = {"uhsniz"} data.forms["dat_sg"] = {"uhsni"} data.forms["ins_sg"] = {"uhsnē"} data.forms["nom_pl"] = {"uhsniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"uhsnuz"} data.forms["gen_pl"] = {"uhsnǫ̂"} data.forms["dat_pl"] = {"uhsnamaz"} data.forms["ins_pl"] = {"uhsnamiz"} -- table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["bijǭ"] = function(args, data) data.decl_type = "feminine on-stem" data.forms["nom_sg"] = {"bijǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"bijōnų"} data.forms["gen_sg"] = {"biniz"} data.forms["dat_sg"] = {"binini"} data.forms["ins_sg"] = {"binē"} data.forms["nom_pl"] = {"bijōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"binunz"} data.forms["gen_pl"] = {"binǫ̂"} data.forms["dat_pl"] = {"bijummiz"} data.forms["ins_pl"] = {"binōmiz"} -- table.insert(data.categories, "Proto-Germanic irregular nouns") end irreg_data["rīgǭ"] = function(args, data) data.decl_type = "feminine on-stem" data.forms["nom_sg"] = {"rīgǭ"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"rīgōnų"} data.forms["gen_sg"] = {"rikkiz"} data.forms["dat_sg"] = {"rikkini"} data.forms["ins_sg"] = {"rikkē"} data.forms["nom_pl"] = {"rīgōniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"rikkunz"} data.forms["gen_pl"] = {"rikkǫ̂"} data.forms["dat_pl"] = {"rīgummiz"} data.forms["ins_pl"] = {"rikkōmiz"} -- table.insert(data.categories, "Proto-Germanic irregular nouns") end ------ Miscellaneous ------ irreg_data["fōr"] = function(args, data) data.decl_type = "paradigm " .. args[1] data.forms["nom_sg"] = {"fōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if args[1] == "1" then data.forms["gen_sg"] = {"funiz"} data.forms["dat_sg"] = {"funi"} data.forms["ins_sg"] = {"funē"} elseif args[1] == "2" then data.forms["gen_sg"] = {"fuiniz"} data.forms["dat_sg"] = {"fuini"} data.forms["ins_sg"] = {"fuinē"} elseif args[1] == "3" then data.forms["gen_sg"] = {"funiniz"} data.forms["dat_sg"] = {"funini"} data.forms["ins_sg"] = {"funinē"} end end irreg_data["watōr"] = function(args, data) data.decl_type = "heteroclitic, irregular" data.forms["nom_sg"] = {"watōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"watiniz"} data.forms["dat_sg"] = {"watini"} data.forms["ins_sg"] = {"watinē"} data.forms["nom_pl"] = {"watnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"watnǫ̂"} data.forms["dat_pl"] = {"watnamaz"} data.forms["ins_pl"] = {"watnamiz"} end irreg_data["eudur"] = function(args, data) data.decl_type = "heteroclitic, irregular" data.forms["nom_sg"] = {"eudur"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"ūdraz"} data.forms["dat_sg"] = {"ūdiri"} data.forms["ins_sg"] = {"ūdrē"} end return irreg_data dipucdi19dbdffujcn5fo6t8qyjtthh မဝ်ဂျူ:gem-decl-noun/data/irreg/doc 828 296590 398072 2026-07-09T16:12:27Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gem-pro}} </includeonly>" 398072 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|gem-pro}} </includeonly> 9hf1bbr2nw5zr481phve10i1uh9npwm ထာမ်ပလိက်:gem-decl-noun/documentation 10 296591 398073 2026-07-09T16:14:24Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} This template is used to generate inflection tables for Proto-Germanic nouns. It implements [[Module:gem-decl-noun]] as its back-end. ==Parameters== Note that most of the time, no arguments are needed, as the module can figure out the declension class and stem from the page name. ; {{para|1}} : The word stem, minus the ending. Only required if this differs from what would be expected from th..." 398073 wikitext text/x-wiki {{documentation subpage}} This template is used to generate inflection tables for Proto-Germanic nouns. It implements [[Module:gem-decl-noun]] as its back-end. ==Parameters== Note that most of the time, no arguments are needed, as the module can figure out the declension class and stem from the page name. ; {{para|1}} : The word stem, minus the ending. Only required if this differs from what would be expected from the subpage name. If this argument is used, the class and gender must also be manually specified. ; {{para|stem}} : The stem class, one of <code>a, cons, i, in, ijo, n, o, r, u, z, namphi, acoll</code>. If this argument is used, the stem and gender must also be manually specified. ; {{para|g}} : The word's gender, one of <code>m, f, n</code>. See [[Appendix:Proto-Germanic nouns]] for a list of declension classes. Attempting to use a class that doesn't exist (e.g. <code>o-m</code>) will produce an error. If this argument is used, the stem and class must also be manually specified. ; {{para|j}} : One of <code>j, ij</code>. In a few i-stems, the [[w:Sievers' law|Sievers' law]] alternant in the genitive plural is not what would be expected, due to compounding. This argument is used to override the default calculated value. ; {{para|nopl}} : If non-zero, hides the plural inflections. Typically used with names. ; {{para|nosg}} ; {{para|2}} : If {{para|stem|namphi}}, the genitive singular stem goes here. If {{para|stem|acoll}}, the plural stem goes here. ; {{para|3}} : If {{para|stem|namphi}}, the dative singular stem goes here. <includeonly>[[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| ]]</includeonly> j6edngmi0tqcw98m5jvn5plynuz0a8c ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ် 14 296592 398074 2026-07-09T16:15:33Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]]" 398074 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်ဂျာမာန်-အခိုက်ကၞာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဂ]] 15he499udnm07hflq3uvl5sp8jfcmj7 မဝ်ဂျူ:gem-decl-noun/doc 828 296593 398076 2026-07-09T16:23:16Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "Called by {{temp|gem-decl-noun}}. Do not use directly. <includeonly> {{module cat|gem-pro}} </includeonly>" 398076 wikitext text/x-wiki Called by {{temp|gem-decl-noun}}. Do not use directly. <includeonly> {{module cat|gem-pro}} </includeonly> f56wcjnwyha6svd7u86e0h1mc9oxxns cræft 0 296594 398078 2026-07-10T00:07:30Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|-cræft}} ==အၚ်္ဂလိက်တြေံ== ===ဗွဟ်ရမ္သာၚ်=== * {{ang-IPA|cræft}} ===နာမ်=== {{ang-noun|m}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်။ # အစောံဇြဟတ်၊ အစောံစရာဲ။ # ပရေၚ်စိုန်သ္ကီု။ # ကွတ်။ # ကမၠောန်ဂယိုၚ်လမျီု။ # အၚ်္ဂ..." 398078 wikitext text/x-wiki {{also|-cræft}} ==အၚ်္ဂလိက်တြေံ== ===ဗွဟ်ရမ္သာၚ်=== * {{ang-IPA|cræft}} ===နာမ်=== {{ang-noun|m}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်။ # အစောံဇြဟတ်၊ အစောံစရာဲ။ # ပရေၚ်စိုန်သ္ကီု။ # ကွတ်။ # ကမၠောန်ဂယိုၚ်လမျီု။ # အၚ်္ဂဂုန်မသၠုၚ်ပြဲ။ # အစဳအဇန်၊ ဗွဲတၟေၚ်ဆေၚ်စပ်ကဵုကွတ်အ္စာမှဝ်။ # ပရေၚ်လီစၞာဲ၊ ပရေၚ်ပၠီလီ။ ====လဟုတ်စှ်ေ==== {{ang-decl-noun-a-m|cræft}} ===မဒုၚ်လွဳစ=== * {{desctree|enm|craft}} qwaipiok3qwxi6kahst0717l2965dtd ထာမ်ပလိက်:ang-decl-noun-a-m 10 296595 398079 2026-07-10T00:09:49Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:checkparams|error}}<!-- Validate template parameters -->{{ang-decl-noun<!-- -->|type=စောံထတ်တံမအရေဝ်-''a''<!-- -->|1={{{nomsg|{{{1}}}}}}<!-- -->|3={{{nomsg|{{{1}}}}}}<!-- -->|5={{{1}}}{{#if:{{{vowel|}}}||e}}s<!-- -->|7={{{datsg|{{{1}}}{{#if:{{{vowel|}}}||e}}}}}<!-- -->|2={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}||a}}s<!-- -->|4={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}||a}}s<!-- -->|6={{{2|{{..." 398079 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters -->{{ang-decl-noun<!-- -->|type=စောံထတ်တံမအရေဝ်-''a''<!-- -->|1={{{nomsg|{{{1}}}}}}<!-- -->|3={{{nomsg|{{{1}}}}}}<!-- -->|5={{{1}}}{{#if:{{{vowel|}}}||e}}s<!-- -->|7={{{datsg|{{{1}}}{{#if:{{{vowel|}}}||e}}}}}<!-- -->|2={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}||a}}s<!-- -->|4={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}||a}}s<!-- -->|6={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}|n}}a<!-- -->|8={{{2|{{{1}}}}}}{{#if:{{{vowel|}}}||u}}m{{#if:{{{vowel|}}}|,{{{2|{{{1}}}}}}um}}<!-- -->|num={{{num|}}}<!-- -->|title={{{title|}}}<!-- -->}}<!-- --><!-- --><noinclude>{{documentation}}</noinclude> grr4j5dzre21gaks5z8tnjxpzlo3tke ထာမ်ပလိက်:ang-decl-noun 10 296596 398080 2026-07-10T00:10:40Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:ang-noun|make_table}}<!-- --><noinclude>{{documentation}}</noinclude>" 398080 wikitext text/x-wiki {{#invoke:ang-noun|make_table}}<!-- --><noinclude>{{documentation}}</noinclude> hs3z8byefav9f7spfhd975yslulzz9v မဝ်ဂျူ:ang-noun 828 296597 398081 2026-07-10T00:14:18Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "local m_links = require("Module:links") local strutils = require("Module:string utilities") local lang = require("Module:languages").getByCode("ang") local export = {} local cases = { "nom", "acc", "gen", "dat" } local numbers = { "sg", "pl" } local slots_to_accel_form = {} for _, case in ipairs(cases) do for _, number in ipairs(numbers) do slots_to_accel_form[case .. "_" .. number] = case .. "|" .. number:sub(1..." 398081 Scribunto text/plain local m_links = require("Module:links") local strutils = require("Module:string utilities") local lang = require("Module:languages").getByCode("ang") local export = {} local cases = { "nom", "acc", "gen", "dat" } local numbers = { "sg", "pl" } local slots_to_accel_form = {} for _, case in ipairs(cases) do for _, number in ipairs(numbers) do slots_to_accel_form[case .. "_" .. number] = case .. "|" .. number:sub(1, 1) end end local slots_to_args = { nom_sg = 1, nom_pl = 2, acc_sg = 3, acc_pl = 4, gen_sg = 5, gen_pl = 6, dat_sg = 7, dat_pl = 8, } function export.make_table(frame) local parent_args = frame:getParent().args local params = { ["title"] = true, -- To be removed. ["type"] = true, ["width"] = true, ["style"] = true, ["num"] = true, ["g"] = true, ["gender"] = {alias_of = "g"}, } for slot, arg in pairs(slots_to_args) do params[arg] = {list = slot} end local args = require("Module:parameters").process(parent_args, params) local table_args = { style = args.style == "right" and "float:right; clear:right;" or "", width = args.width or "30", } local accel_lemma_sg = args[slots_to_args.nom_sg][1] local accel_lemma_pl = args[slots_to_args.nom_pl][1] local accel_lemma = accel_lemma_sg and accel_lemma_sg ~= "—" and accel_lemma_sg ~= "-" and accel_lemma_sg:gsub(",.*", "") or accel_lemma_pl and accel_lemma_pl ~= "—" and accel_lemma_pl ~= "-" and accel_lemma_pl:gsub(",.*", "") or nil for slot, accel_form in pairs(slots_to_accel_form) do local form_args = args[slots_to_args[slot]] if #form_args == 0 then form_args = {"—"} end local forms = {} for _, form_arg in ipairs(form_args) do for _, form in ipairs(mw.text.split(form_arg, ", *")) do table.insert(forms, form) end end local table_arg = {} for _, form in ipairs(forms) do table.insert(table_arg, form == "—" and form or m_links.full_link{ lang = lang, term = form, accel = { form = accel_form, lemma = accel_lemma, } }) table_args[slot] = table.concat(table_arg, ", ") end end if args.num == "pl" then table_args.nom_sg = "—" table_args.acc_sg = "—" table_args.gen_sg = "—" table_args.dat_sg = "—" elseif args.num == "sg" then table_args.nom_pl = "—" table_args.acc_pl = "—" table_args.gen_pl = "—" table_args.dat_pl = "—" end local type = '' if args["type"] then type = type .. (args["type"]:gsub("^%l", string.upper)) end if args.g then type = type .. " (" .. ( args.g == "m" and "ပုလ္လိၚ်" or args.g == "f" and "ဣတ္တိလိၚ်" or args.g == "n" and "နပုလ္လိၚ်" or error("Unrecognized gender '" .. args.g .. "'") ) .. ")" end type = type .. ':' local table = type .. (type and '\n') table = table .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-top', args = { title = '-', palette = 'indigo' } } table = table .. [=[ ! ! ကိုန်ဨကဝုစ် ! ကိုန်ဗဟုဝစ် |- ! [[nominative case|မဒုၚ်ယၟု]] | data-accel-col=1 | {nom_sg} | data-accel-col=2 | {nom_pl} |- ! [[accusative case|ကမ္မကာရက]] | data-accel-col=1 | {acc_sg} | data-accel-col=2 | {acc_pl} |- ! [[genitive case|ဗဳဇဂကူ]] | data-accel-col=1 | {gen_sg} | data-accel-col=2 | {gen_pl} |- ! [[dative case|ပြကမ္မကာရက]] | data-accel-col=1 | {dat_sg} | data-accel-col=2 | {dat_pl} ]=] table = table .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' } return strutils.format(table, table_args) end return export -- For Vim, so we get 4-space tabs -- vim: set ts=4 sw=4 noet: 6nnjc8w6oiqa2on2n8aq37v3kpcwvxd မဝ်ဂျူ:ang-noun/doc 828 296598 398082 2026-07-10T00:15:32Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|ang}} </includeonly>" 398082 wikitext text/x-wiki {{documentation needed}}<!-- Replace this with a short description of the purpose of the module, and how to use it. --> <includeonly> {{module cat|ang}} </includeonly> mpz68dq7e1wywwxz1itgr7pu6bnm1zg ကဏ္ဍ:မဝ်ဂျူအၚ်္ဂလိက်တြေံဂမၠိုၚ် 14 296599 398083 2026-07-10T00:17:02Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်တြေံ|အၚ်္ဂလိက်တ..." 398083 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်တြေံ|အၚ်္ဂလိက်တြေံ]] » '''မဝ်ဂျူဂမၠိုၚ်''' :[[:ကဏ္ဍ:မဝ်ဂျူဂမၠိုၚ်|မဝ်ဂျူ]]ဘာသာအၚ်္ဂလိက်တြေံ၊ မနွံကဵုလုပ်အဝေါၚ်ကုဒ် Lua နကဵုမကၠောန်ဗဒှ် ကဵု မစဳရေၚ်ယဵုဒုၚ်သ္ပမာန်ဂမၠိုၚ်။ [[ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်တြေံ]][[ကဏ္ဍ:မဝ်ဂျူဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]] 58faxfdmfrm6xqpmzm0htrg37y8oj6p ကဏ္ဍ:မဝ်ဂျူပွမပြံၚ်လှာဲအၚ်္ဂလိက်တြေံဂမၠိုၚ် 14 296600 398084 2026-07-10T00:18:27Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:မဝ်ဂျူအၚ်္ဂလိက်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]]ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမ..." 398084 wikitext text/x-wiki [[ကဏ္ဍ:မဝ်ဂျူအၚ်္ဂလိက်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:မဝ်ဂျူဗီုအပြံၚ်အလှာဲဝေါဟာဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]] 8ei9pq26j5s2g935zwhr127f0vs3vnt ထာမ်ပလိက်:ang-decl-noun/documentation 10 296601 398085 2026-07-10T00:20:35Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} ===Usage=== This template is designed to show the full inflection of Old English nouns, including proper nouns. It should be used directly under the ====Declension==== header. It takes the following parameters ; {{para|1}} : Nominative singular ; {{para|2}} : Nominative plural ; {{para|3}} : Accusative singular ; {{para|4}} : Accusative plural ; {{para|5}} : Genitive singular ; {{para|6}} :..." 398085 wikitext text/x-wiki {{documentation subpage}} ===Usage=== This template is designed to show the full inflection of Old English nouns, including proper nouns. It should be used directly under the ====Declension==== header. It takes the following parameters ; {{para|1}} : Nominative singular ; {{para|2}} : Nominative plural ; {{para|3}} : Accusative singular ; {{para|4}} : Accusative plural ; {{para|5}} : Genitive singular ; {{para|6}} : Genitive plural ; {{para|7}} : Dative singular ; {{para|8}} : Dative plural ; {{para|g|opt=1}} or {{para|gender|opt=1}} : Gender (<code>m</code>, <code>f</code> or <code>n</code>) ; {{para|num|opt=1}} : Number restriction (<code>sg</code> or <code>pl</code>) Multiple forms can be specified by separating them with a comma, and they will be properly linked. Thus, wikilinks (<nowiki>[[]]</nowiki>) should not be used. ===See also=== * [[:ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်]] <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်| ]] </includeonly> aboyxfb3xwtmt1srm1zufrpmn6wf91l ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ် 14 296602 398086 2026-07-10T00:21:39Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]]" 398086 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]] 7eeuk3mmdl87xnmp5npbbihz21h9ium ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဂမၠိုၚ် 14 296603 398087 2026-07-10T00:23:05Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]]" 398087 wikitext text/x-wiki [[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံဂမၠိုၚ်]][[ကဏ္ဍ:ထာမ်ပလိက်အပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|အ]] o3co4tym88gp4js9unhlppykbe6y84d ထာမ်ပလိက်:ang-decl-noun-a-m/documentation 10 296604 398088 2026-07-10T00:24:42Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|a-m]] </includeonly>" 398088 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်အၚ်္ဂလိက်တြေံအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|a-m]] </includeonly> aie4qg5wrgdvbkid1ci5gmyviepvwgx -cræft 0 296605 398089 2026-07-10T00:29:41Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|cræft}} ==အၚ်္ဂလိက်တြေံ== ===ဗွဟ်ရမ္သာၚ်=== * {{ang-IPA|cræft}} ===အဆက်လက္ကရဴ=== {{head|ang|suffix|g=m}} # ထ္ၜးလက်သန်အပ္ဍဲကွတ် ဝါ ကွတ်ပညာ။ ====လဟုတ်စှ်ေ==== {{ang-decl-noun-a-m|-cræft}} ===မဒုၚ်လွဳစ=== * {{desc|enm|-craft|-creft}} ** {{desc|en|..." 398089 wikitext text/x-wiki {{also|cræft}} ==အၚ်္ဂလိက်တြေံ== ===ဗွဟ်ရမ္သာၚ်=== * {{ang-IPA|cræft}} ===အဆက်လက္ကရဴ=== {{head|ang|suffix|g=m}} # ထ္ၜးလက်သန်အပ္ဍဲကွတ် ဝါ ကွတ်ပညာ။ ====လဟုတ်စှ်ေ==== {{ang-decl-noun-a-m|-cræft}} ===မဒုၚ်လွဳစ=== * {{desc|enm|-craft|-creft}} ** {{desc|en|-craft}} fcvlb61p6lxzkun0tyudjqpalus0zuj ကဏ္ဍ:အဆက်လက္ကရဴပုလ္လိၚ်အၚ်္ဂလိက်တြေံဂမၠိုၚ် 14 296606 398090 2026-07-10T00:30:33Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်တြေံ]]" 398090 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်တြေံ]] tgbapn5x5wqwtlm03qlf66fr52zaogu craft 0 296607 398091 2026-07-10T01:35:30Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|-craft|Craft}} =={{=en=}}== {{wikipedia|lang=en}} ===နိရုတ်=== {{inh+|en|enm|craft}}၊ နကဵုအဆက်နူ {{inh|en|ang|cræft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|en|gmw-pro|*kraftu}}၊ နူအဆက်နကဵု {{inh|en|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|en|/ˈkɹɑːft/|a=RP,ZA}} * {{IPA|en|/ˈkɹäːft/|/ˈkɹɐ̞ːft..." 398091 wikitext text/x-wiki {{also|-craft|Craft}} =={{=en=}}== {{wikipedia|lang=en}} ===နိရုတ်=== {{inh+|en|enm|craft}}၊ နကဵုအဆက်နူ {{inh|en|ang|cræft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|en|gmw-pro|*kraftu}}၊ နူအဆက်နကဵု {{inh|en|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|en|/ˈkɹɑːft/|a=RP,ZA}} * {{IPA|en|/ˈkɹäːft/|/ˈkɹɐ̞ːft/|a=AU,NZ}} *: {{rhymes|en|ɑːft|s=1}} * {{IPA|en|/ˈkɹæft/|a=GA,[[w:en:Standard Canadian English|ခေန်နာဒါတိုၚ်ခဳ]]}} ** {{audio|en|en-us-craft.ogg|a=US}} *: {{rhymes|en|æft|s=1}} * {{hyph|en|craft}} ===နာမ်=== {{en-noun|~|*|s}} # {{lb|en|uncountable|obsolete}} ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အနုဘဴ၊ အစောံဇြဟတ် (ပွိုၚ်ကၠံသၞာံမရနုက်၉)။ #: {{syn|en|potence|strength|Thesaurus:power}} # ကွတ်၊ ကွတ်တဲ။ # ဥပ္ပာဲ၊ စၞာဲ၊ ညာန်အလီ၊ ညာန်စၞုက်စၞာဲ။ # ယာန်။ ==အၚ်္ဂလိက် အဒေါဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alter|enm|carft|craf|creft}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|enm|ang|cræft}}၊ နကဵုအဆက်နူ {{inh|enm|gmw-pro|*kraftu}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|enm|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|enm|/kraft/}} ===နာမ်=== {{enm-noun|craftes}} # ဂကောံကၟိန်ဍုၚ်ကမၠောန်သွံရာန်ဗၞိက် ဝါ ပရေၚ်ကောံစန်ဒက်။ # ပရေၚ်စိုန်သ္ကီု။ ===မဒုၚ်လွဳစ=== * {{desc|en|craft}} * {{desc|sco|craft}} * {{desc|yol|creff}} ==ဒါတ်တြေံ== ===ပွံၚ်နဲတၞဟ်=== * {{alter|odt|kraft|creft}} ===နိရုတ်=== {{dercat|odt|gem-pro|inh=1}} ဝေါဟာကၠုၚ်နူ {{inh|odt|gmw-pro|*kraftu}} ===နာမ်=== {{odt-noun|f}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အစောံဇြဟတ်။ ====ပရေၚ်ကၠောံ==== {{odt-decl-noun-i|craft|g=f|w=h}} ===မဒုၚ်လွဳစ=== * {{desctree|dum|cracht}} h3r3ptkdih0iyprhdvceby79lzt70x7 398096 398091 2026-07-10T01:51:29Z 咽頭べさ 33 398096 wikitext text/x-wiki {{also|-craft|Craft}} =={{=en=}}== {{wikipedia|lang=en}} ===နိရုတ်=== {{inh+|en|enm|craft}}၊ နကဵုအဆက်နူ {{inh|en|ang|cræft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|en|gmw-pro|*kraftu}}၊ နူအဆက်နကဵု {{inh|en|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|en|/ˈkɹɑːft/|a=RP,ZA}} * {{IPA|en|/ˈkɹäːft/|/ˈkɹɐ̞ːft/|a=AU,NZ}} *: {{rhymes|en|ɑːft|s=1}} * {{IPA|en|/ˈkɹæft/|a=GA,[[w:en:Standard Canadian English|ခေန်နာဒါတိုၚ်ခဳ]]}} ** {{audio|en|en-us-craft.ogg|a=US}} *: {{rhymes|en|æft|s=1}} * {{hyph|en|craft}} ===နာမ်=== {{en-noun|~|*|s}} # {{lb|en|uncountable|obsolete}} ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အနုဘဴ၊ အစောံဇြဟတ် (ပွိုၚ်ကၠံသၞာံမရနုက်၉)။ #: {{syn|en|potence|strength|Thesaurus:power}} # ကွတ်၊ ကွတ်တဲ။ # ဥပ္ပာဲ၊ စၞာဲ၊ ညာန်အလီ၊ ညာန်စၞုက်စၞာဲ။ # ယာန်။ ===ကြိယာ=== {{en-verb}} # သကဵုကၠောန်သ္ပနကဵုတဲ ကဵု မၞုံကဵုဗွဲမဂၠိုၚ်ပရေၚ်စိုန်သ္ကီု။ # သကဵုခၞံဗဒှ်၊ မရာၚ်ဆာဲတိုန်အရာမွဲမွဲ (ညံၚ်ရဴသၟာကမၠောန်မစိုန်သ္ကီုလဝ်ကွတ်ကမၠောန်မွဲသာ်)။ ==အၚ်္ဂလိက် အဒေါဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alter|enm|carft|craf|creft}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|enm|ang|cræft}}၊ နကဵုအဆက်နူ {{inh|enm|gmw-pro|*kraftu}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|enm|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|enm|/kraft/}} ===နာမ်=== {{enm-noun|craftes}} # ဂကောံကၟိန်ဍုၚ်ကမၠောန်သွံရာန်ဗၞိက် ဝါ ပရေၚ်ကောံစန်ဒက်။ # ပရေၚ်စိုန်သ္ကီု။ ===မဒုၚ်လွဳစ=== * {{desc|en|craft}} * {{desc|sco|craft}} * {{desc|yol|creff}} ==ဒါတ်တြေံ== ===ပွံၚ်နဲတၞဟ်=== * {{alter|odt|kraft|creft}} ===နိရုတ်=== {{dercat|odt|gem-pro|inh=1}} ဝေါဟာကၠုၚ်နူ {{inh|odt|gmw-pro|*kraftu}} ===နာမ်=== {{odt-noun|f}} # ဇြဟတ်ဇၟူ၊ ဇြဟတ်၊ အစောံဇြဟတ်။ ====ပရေၚ်ကၠောံ==== {{odt-decl-noun-i|craft|g=f|w=h}} ===မဒုၚ်လွဳစ=== * {{desctree|dum|cracht}} bitv7wkdjamrometuouivg0vfo4jjp3 ထာမ်ပလိက်:odt-decl-noun-i 10 296608 398092 2026-07-10T01:36:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:odt-decl-noun|show|decl=i}}<!-- --><noinclude>{{documentation}} {{tcat|ndecl}}</noinclude>" 398092 wikitext text/x-wiki {{#invoke:odt-decl-noun|show|decl=i}}<!-- --><noinclude>{{documentation}} {{tcat|ndecl}}</noinclude> 67n88a7gvpq0yu93wuvgv8r4is5ktrs ကဏ္ဍ:နာမ်ဣတ္တိလိၚ်ဒါတ်တြေံဂမၠိုၚ် 14 296609 398093 2026-07-10T01:39:34Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဒါတ်တြေံ|ဒါတ်တြေံ]] » :ကဏ္ဍ:..." 398093 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဒါတ်တြေံ|ဒါတ်တြေံ]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကဒါတ်တြေံဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » [[:ကဏ္ဍ:နာမ်ဒါတ်တြေံဂမၠိုၚ်|နာမ်ဂမၠိုၚ်]] » [[:ကဏ္ဍ:နာမ်ဒါတ်တြေံဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဗက်အလိုက်လိၚ်ဂမၠိုၚ်]] »'''ဣတ္တိလိၚ်ဂမၠိုၚ်''' :နာမ်ဒါတ်တြေံမဆေၚ်စပ်ကဵုလိၚ်ဗြဴ၊ ဥပမာ ဆေၚ်စပ်ကဵုကဏ္ဍလုပ်အဝေါၚ်လိၚ်အတေံ (အကြာတၞဟ်ခြာအရာမွဲမွဲအဂှ်) မက္တဵုဒှ်ဣတ္တိလိၚ်ဂမၠိုၚ်။ [[ကဏ္ဍ:နာမ်ဒါတ်တြေံဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဣ]][[ကဏ္ဍ:နာမ်ဣတ္တိလိၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|ဒ]] 61tu5sm6tabdicvuptxltx8buw3zpya ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်/æft 14 296610 398094 2026-07-10T01:42:03Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]] » :ကဏ..." 398094 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]] » [[:ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်|ကာရန်ဂမၠိုၚ်]] » -æft :စရၚ်မဆေၚ်စပ်ကဵုဝေါဟာ[[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]]မနွံကာရန် [[ကာရန်:အၚ်္ဂလိက်/æft|-æft]] ဂမၠိုၚ်။ [[ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်|æft]] neuq81v4k7ftfp9g651hxj4ys48tz5t ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်/ɑːft 14 296611 398095 2026-07-10T01:44:03Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]] » :ကဏ..." 398095 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]] » [[:ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်|ကာရန်ဂမၠိုၚ်]] » -ɑːft :စရၚ်မဆေၚ်စပ်ကဵုဝေါဟာ[[:ကဏ္ဍ:ဘာသာအၚ်္ဂလိက်|အၚ်္ဂလိက်]]မနွံကာရန် [[ကာရန်:အၚ်္ဂလိက်/ɑːft|-ɑːft]] ဂမၠိုၚ်။ [[ကဏ္ဍ:ကာရန်:အၚ်္ဂလိက်|ɑːft]] 2p231oczpaqul80i1aa4zfiijkzpgkm crafts 0 296612 398097 2026-07-10T01:52:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Crafts|-crafts}} =={{=en=}}== ===နာမ်=== {{head|en|noun form}} # {{plural of|en|craft}} ===ကြိယာ=== {{head|en|verb form}} # {{infl of|en|craft||s-verb-form}} ===ဝေါဟာလွာ=== * {{anagrams|en|a=acfrst|fracts}}" 398097 wikitext text/x-wiki {{also|Crafts|-crafts}} =={{=en=}}== ===နာမ်=== {{head|en|noun form}} # {{plural of|en|craft}} ===ကြိယာ=== {{head|en|verb form}} # {{infl of|en|craft||s-verb-form}} ===ဝေါဟာလွာ=== * {{anagrams|en|a=acfrst|fracts}} 8gdhmzrt15laqljushctcya490ku2lj Crafts 0 296613 398098 2026-07-10T01:53:34Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|crafts|-crafts}} =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{en-proper noun|es}} # {{surname|en}}" 398098 wikitext text/x-wiki {{also|crafts|-crafts}} =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{en-proper noun|es}} # {{surname|en}} ca89mli5qooxtuzdu0jun40tco6xu0d Craftses 0 296614 398099 2026-07-10T01:53:58Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Crafts}}" 398099 wikitext text/x-wiki =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Crafts}} 3izh9p6610fs89t5c8nm6t6w6l44lge -crafts 0 296615 398100 2026-07-10T01:54:55Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|crafts|Crafts}} =={{=en=}}== ===အဆက်လက္ကရဴ=== {{head|en|suffix form}} # {{plural of|en|-craft}} ===ဝေါဟာလွာ=== * {{anagrams|en|a=acfrst|fracts}}" 398100 wikitext text/x-wiki {{also|crafts|Crafts}} =={{=en=}}== ===အဆက်လက္ကရဴ=== {{head|en|suffix form}} # {{plural of|en|-craft}} ===ဝေါဟာလွာ=== * {{anagrams|en|a=acfrst|fracts}} 6jwad7mjffj6yoa0a7tp69l1uh3eshw -craft 0 296616 398101 2026-07-10T01:58:33Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|craft|Craft}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|en|enm|-craft}}, {{m|enm|-creft}}၊ နူကဵုဝေါဟာ {{inh|en|ang|-cræft}} ===အဆက်လက္ကရဴ=== {{en-noun|-|s}} # ပရေၚ်စိုန်သ္ကီုဆေၚ်စပ်ကဵုဗဳဇမချိုတ်ပၠိုတ်။" 398101 wikitext text/x-wiki {{also|craft|Craft}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|en|enm|-craft}}, {{m|enm|-creft}}၊ နူကဵုဝေါဟာ {{inh|en|ang|-cræft}} ===အဆက်လက္ကရဴ=== {{en-noun|-|s}} # ပရေၚ်စိုန်သ္ကီုဆေၚ်စပ်ကဵုဗဳဇမချိုတ်ပၠိုတ်။ 3ty7d4f48k8pgrwnihj859pzoxctvzh Craft 0 296617 398102 2026-07-10T01:59:42Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|craft|-craft}} =={{=en=}}== ===ပွံၚ်နဲတၞဟ်=== * {{l|en|Kraft}} ===နာမ်မကိတ်ညဳ=== {{en-proper noun}} # {{surname|en}}" 398102 wikitext text/x-wiki {{also|craft|-craft}} =={{=en=}}== ===ပွံၚ်နဲတၞဟ်=== * {{l|en|Kraft}} ===နာမ်မကိတ်ညဳ=== {{en-proper noun}} # {{surname|en}} al3vf1o2buahsmlfhyjm5oceqp2i43b Kraft 0 296618 398103 2026-07-10T02:08:04Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|kraft}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|en|de|-}}၊ သီုကဵု {{der|en|sv|-}} ကဵု ယၟုဂကူဘာသာ{{der|en|da|-}}။ ===နာမ်မကိတ်ညဳ=== {{en-proper noun}} # {{surname|en}} ==ဂျာမာန်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|de|gmh|kraft}}၊ နကဵုအဆက်..." 398103 wikitext text/x-wiki {{also|kraft}} =={{=en=}}== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|en|de|-}}၊ သီုကဵု {{der|en|sv|-}} ကဵု ယၟုဂကူဘာသာ{{der|en|da|-}}။ ===နာမ်မကိတ်ညဳ=== {{en-proper noun}} # {{surname|en}} ==ဂျာမာန်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|de|gmh|kraft}}၊ နကဵုအဆက်နူ {{inh|de|goh|kraft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|de|gmw-pro|*kraftu}}၊ နူအဆက်နကဵု {{inh|de|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|de|/kʁaft/}} * {{audio|de|De-Kraft.ogg|a=<<Germany>> (<<Berlin>>)}} * {{audio|de|De-at-Kraft.ogg|a=Austria}} * {{rhymes|de|aft|s=1}} ===နာမ်=== {{de-noun|f,^e}} # ဇြဟတ်၊ ဇြဟတ်ဇၟူ၊ အစောံဇြဟတ်။ # အသိၚ်။ ====လဟုတ်စှ်ေ==== {{de-ndecl|f,^e}} ===မဒုၚ်လွဳစ=== * {{desc|csb|krafy|bor=1}} ==ဟာန်သဝေတ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|hrx|gmh|kraft}}၊ နကဵုအဆက်နူ {{inh|hrx|goh|kraft}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{inh|hrx|gmw-pro|*kraftu}}၊ နူအဆက်နကဵု {{inh|hrx|gem-pro|*kraftuz}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|hrx|/kraft/}} ===နာမ်=== {{hrx-noun|f|pl=Kreft}} # ဇြဟတ်ဇၟူ၊ အစောံဇြဟတ်။ 64paaxkqt90p9bixqhgymyyxwo0ioof ကဏ္ဍ:ဝေါဟာဟာန်သဝေတ်ဂွံလဝ်အာဲကၟာဲနူဝေါဟာဂျာမာန်-အခိုက်ကၞာဂမၠိုၚ် 14 296619 398104 2026-07-10T02:09:07Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာဟာန်သဝေတ်]]" 398104 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာဟာန်သဝေတ်]] j841mprl1f3z9davi80c3t094owq95b ကဏ္ဍ:ကာရန်:ဂျာမာန်/aft 14 296620 398105 2026-07-10T02:11:03Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]] » :ကဏ္ဍ:ကာ..." 398105 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]] » [[:ကဏ္ဍ:ကာရန်:ဂျာမာန်|ကာရန်ဂမၠိုၚ်]] » -aft :စရၚ်မဆေၚ်စပ်ကဵုဝေါဟာ[[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]]မနွံကာရန် [[ကာရန်:ဂျာမာန်/aft|-aft]] ဂမၠိုၚ်။ [[ကဏ္ဍ:ကာရန်:ဂျာမာန်|aft]] bace892g2kxeuvpx77urzry6d3nw8e9 ကာရန်:ဂျာမာန်/aft 106 296621 398106 2026-07-10T02:12:45Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{rhymes nav|de|a|ft}} ==ဗွဟ်ရမ္သာၚ်== * {{IPA|de|/-aft̩/}} ==ကာရန်ဂမၠိုၚ်== ===ဝဏ္ဏမွဲ=== {{rhyme-top}} * {{l|de|Haft}} * {{l|de|klafft}} * {{l|de|Kraft}} * {{l|de|Saft}} * {{l|de|schafft}} * {{l|de|Schaft}} {{rhyme-bottom}} ===ဝဏ္ဏၜါ=== {{rhyme-top}} * {{l|de|Wirtschaft}} {{rhyme-bottom}} ===ဝဏ္ဏပိ=== {{rhyme-top}} * {{l|de|Kr..." 398106 wikitext text/x-wiki {{rhymes nav|de|a|ft}} ==ဗွဟ်ရမ္သာၚ်== * {{IPA|de|/-aft̩/}} ==ကာရန်ဂမၠိုၚ်== ===ဝဏ္ဏမွဲ=== {{rhyme-top}} * {{l|de|Haft}} * {{l|de|klafft}} * {{l|de|Kraft}} * {{l|de|Saft}} * {{l|de|schafft}} * {{l|de|Schaft}} {{rhyme-bottom}} ===ဝဏ္ဏၜါ=== {{rhyme-top}} * {{l|de|Wirtschaft}} {{rhyme-bottom}} ===ဝဏ္ဏပိ=== {{rhyme-top}} * {{l|de|Kriegswirtschaft}} * {{l|de|Zeugenschaft}} {{rhyme-bottom}} qnax7xtrtzqi2mfb7g9fohyajaar5bm Kräfte 0 296622 398107 2026-07-10T02:14:40Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=de=}}== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|de|/ˈkʁɛftə/}} * {{audio|de|De-Kräfte.ogg|a=<<Germany>> (<<Berlin>>)}} * {{audio|de|De-at-Kräfte.ogg|a=Austria}} * {{hyph|de|Kräf|te}} * {{rhymes|de|ɛftə|s=2}} ===နာမ်=== {{head|de|noun form|g=p}} # {{inflection of|de|Kraft||nom//acc//gen|p}}" 398107 wikitext text/x-wiki =={{=de=}}== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|de|/ˈkʁɛftə/}} * {{audio|de|De-Kräfte.ogg|a=<<Germany>> (<<Berlin>>)}} * {{audio|de|De-at-Kräfte.ogg|a=Austria}} * {{hyph|de|Kräf|te}} * {{rhymes|de|ɛftə|s=2}} ===နာမ်=== {{head|de|noun form|g=p}} # {{inflection of|de|Kraft||nom//acc//gen|p}} 5gb1qpj5weg40fajoxrhyaok4ico6jw ကဏ္ဍ:ကာရန်:ဂျာမာန်/ɛftə 14 296623 398108 2026-07-10T02:15:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]] » :ကဏ္ဍ:ကာ..." 398108 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]] » [[:ကဏ္ဍ:ကာရန်:ဂျာမာန်|ကာရန်ဂမၠိုၚ်]] » -ɛftə :စရၚ်မဆေၚ်စပ်ကဵုဝေါဟာ[[:ကဏ္ဍ:ဘာသာဂျာမာန်|ဂျာမာန်]]မနွံကာရန် [[ကာရန်:ဂျာမာန်/ɛftə|-ɛftə]] ဂမၠိုၚ်။ [[ကဏ္ဍ:ကာရန်:ဂျာမာန်|ɛftə]] jq4r6rv574mm9hyzwabu2ykhv76ohmx ကာရန်:ဂျာမာန်/ɛftə 106 296624 398109 2026-07-10T02:17:45Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{rhymes nav|de|ɛ|ftə}} ==ဗွဟ်ရမ္သာၚ်== * {{IPA|de|/-ɛftə/}} ==ကာရန်ဂမၠိုၚ်== ===ဝဏ္ဏမွဲ=== {{rhyme-top}} * {{l|de|Hefte}} * {{l|de|Kräfte}} * {{l|de|Säfte}} * {{l|de|Schäfte}} {{rhyme-bottom}} ===ဝဏ္ဏၜါ=== {{rhyme-top}} * {{l|de|entkräfte}} * {{l|de|Fruchtsäfte}} * {{l|de|Geschäfte}} * {{l|de|Obstsäfte}} * {{l|de|Schulhefte}} * {{l..." 398109 wikitext text/x-wiki {{rhymes nav|de|ɛ|ftə}} ==ဗွဟ်ရမ္သာၚ်== * {{IPA|de|/-ɛftə/}} ==ကာရန်ဂမၠိုၚ်== ===ဝဏ္ဏမွဲ=== {{rhyme-top}} * {{l|de|Hefte}} * {{l|de|Kräfte}} * {{l|de|Säfte}} * {{l|de|Schäfte}} {{rhyme-bottom}} ===ဝဏ္ဏၜါ=== {{rhyme-top}} * {{l|de|entkräfte}} * {{l|de|Fruchtsäfte}} * {{l|de|Geschäfte}} * {{l|de|Obstsäfte}} * {{l|de|Schulhefte}} * {{l|de|Speerschäfte}} {{rhyme-bottom}} ===ဝဏ္ဏပိ=== {{rhyme-top}} * {{l|de|Apfelsäfte}} * {{l|de|Birnensäfte}} * {{l|de|Fachgeschäfte}} * {{l|de|Fischgeschäfte}} * {{l|de|Gerstensäfte}} * {{l|de|Hustensäfte}} * {{l|de|Lesehefte}} * {{l|de|Magensäfte}} * {{l|de|Milchgeschäfte}} * {{l|de|Möhrensäfte}} * {{l|de|Pflanzensäfte}} * {{l|de|Pflaumensäfte}} {{rhyme-bottom}} ===ဝဏ္ဏပန်=== {{rhyme-top}} * {{l|de|Ananassäfte}} * {{l|de|Bananensäfte}} * {{l|de|Blumengeschäfte}} * {{l|de|Gemüsesäfte}} * {{l|de|Orangensäfte}} * {{l|de|Plattengeschäfte}} * {{l|de|Zitronensäfte}} {{rhyme-bottom}} ===ဝဏ္ဏမသုန်=== {{rhyme-top}} * {{l|de|Apfelsinensäfte}} * {{l|de|Aprikosensäfte }} * {{l|de|Bekleidungsgeschäfte}} * {{l|de|Gemüsegeschäfte}} {{rhyme-bottom}} ===ဝဏ္ဏတရဴ=== {{rhyme-top}} * {{l|de|Haushaltswarengeschäfte}} * {{l|de|Lebensmittelgeschäfte}} {{rhyme-bottom}} nc94qp6xa10pmvtfm5l6muqz80w864w Kreft 0 296625 398110 2026-07-10T02:20:28Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|kreft}} =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{en-proper noun|s}} # {{surname|en}} ==ဟာန်သဝေတ်== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|hrx|/kreft/}} ===နာမ်=== {{head|hrx|noun form|g=f}} # {{plural of|hrx|Kraft}}" 398110 wikitext text/x-wiki {{also|kreft}} =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{en-proper noun|s}} # {{surname|en}} ==ဟာန်သဝေတ်== ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|hrx|/kreft/}} ===နာမ်=== {{head|hrx|noun form|g=f}} # {{plural of|hrx|Kraft}} 148u6h26xj6jloskgyn1nc21xc0ej6u Krefts 0 296626 398111 2026-07-10T02:20:56Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "=={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Kreft}}" 398111 wikitext text/x-wiki =={{=en=}}== ===နာမ်မကိတ်ညဳ=== {{head|en|proper noun form}} # {{plural of|en|Kreft}} cesrsmole6w23djwqj13q57kp3l6w9m kreft 0 296627 398112 2026-07-10T02:27:34Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|Kreft|krêft}} ==နဝ်ဝေ ဗော်ခ်မဝ်== {{wp|no:}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|nb|gml|kreft}}, {{m|gml|krevet}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|nb|/kreft/|[kɾɛft]}} ===နာမ်=== {{head|nb|noun|g=m|ကိုန်ဨကဝုစ်ချိုတ်ပၠိုတ်|kreften}} # ယဲရိုဟ်။ ==နဝ်ဝေ..." 398112 wikitext text/x-wiki {{also|Kreft|krêft}} ==နဝ်ဝေ ဗော်ခ်မဝ်== {{wp|no:}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|nb|gml|kreft}}, {{m|gml|krevet}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|nb|/kreft/|[kɾɛft]}} ===နာမ်=== {{head|nb|noun|g=m|ကိုန်ဨကဝုစ်ချိုတ်ပၠိုတ်|kreften}} # ယဲရိုဟ်။ ==နဝ်ဝေ နဳနိုတ်== {{wp|nn:}} ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|nn|gml|kreft}}, {{m|gml|krevet}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|nn|/kreft/|[kɾɛft]}} ===နာမ်=== {{head|nn|noun|g=m|ကိုန်ဨကဝုစ်ချိုတ်ပၠိုတ်|kreften}} # ယဲရိုဟ်။ rvbfg7qc2uswmnjpf2b8gn2nylzzir0 kreften 0 296628 398113 2026-07-10T02:28:46Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==နဝ်ဝေ ဗော်ခ်မဝ်== ===နာမ်=== {{head|nb|noun form|g=m}} # {{inflection of|nb|kreft||definite|s}} ==နဝ်ဝေ နဳနိုတ်== ===နာမ်=== {{head|nn|noun form|g=m}} # {{inflection of|nn|kreft||def|s}}" 398113 wikitext text/x-wiki ==နဝ်ဝေ ဗော်ခ်မဝ်== ===နာမ်=== {{head|nb|noun form|g=m}} # {{inflection of|nb|kreft||definite|s}} ==နဝ်ဝေ နဳနိုတ်== ===နာမ်=== {{head|nn|noun form|g=m}} # {{inflection of|nn|kreft||def|s}} eyo10u2kuyo753642vfz1azg7sa3fwt krevet 0 296629 398115 2026-07-10T02:42:23Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မဝ်ရေတ်ဃှေန် ခရဳအဝ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|mfe|fr|crevette}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|mfe|/kɰevet/}} ===နာမ်=== {{head|mfe|noun}} # ၚုဲ၊ ၚုဲဒဂေါၚ်။ ==နဝ်ဝေ ဗော်ခ်မဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|nb|krevde||simple past|}}..." 398115 wikitext text/x-wiki ==မဝ်ရေတ်ဃှေန် ခရဳအဝ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{inh|mfe|fr|crevette}} ===ဗွဟ်ရမ္သာၚ်=== * {{IPA|mfe|/kɰevet/}} ===နာမ်=== {{head|mfe|noun}} # ၚုဲ၊ ၚုဲဒဂေါၚ်။ ==နဝ်ဝေ ဗော်ခ်မဝ်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|nb|krevde||simple past|}} * {{alt|nn|krevd||past participle|}} ===ကြိယာ=== {{head|nb|verb form}} # {{inflection of|nb|kreve||simple past|;|past|part}} ==သာဗ်ခြဝ်ဨရှဳယာန်== ===နိရုတ်=== {{bor+|sh|ota|كروت|tr=kerevet}}၊ နကဵုအဆက်နူ {{der|sh|el|κρεβάτι}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{der|sh|grc|κράββατος}}၊ နူအဆက်နကဵု {{der|sh|xmk|*γράβος|tr=grabos}} ===ဗွဟ်ရမ္သာၚ်=== * {{sh-IPA|krèvet}} * {{hyphenation|sh|kre|vet}} ===နာမ်=== {{sh-noun|krèvet|m-in}} # ဖုန်။ #: {{syn|sh|pȍstelja}} ====လဟုတ်စှ်ေ==== {{sh-decl-noun |krèvet|kreveti |kreveta|krȅvētā |krevetu|krevetima |krevet|krevete |krevete|kreveti |krevetu|krevetima |krevetom|krevetima }} ==သေသျှလွာ ခရဳအဝ်လ်== ===နိရုတ်=== ဝေါဟာကၠုၚ်နူ {{der|crs|fr|crevette}} ===နာမ်=== {{head|crs|noun}} # ၚုဲ၊ ၚုဲဒဂေါၚ်။ lkw91fvrjl64426txcov6dufs94dd7e ကဏ္ဍ:နာမ်သေသျှလွာ ခရဳအဝ်လ်ဂမၠိုၚ် 14 296630 398116 2026-07-10T02:53:45Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်|သေသျှလွ..." 398116 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်|သေသျှလွာ ခရဳအဝ်လ်]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကသေသျှလွာ ခရဳအဝ်လ်ဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » '''နာမ်ဂမၠိုၚ်''' :ဝေါဟာသေသျှလွာ ခရဳအဝ်လ်ပွမစၞောန်ထ္ၜးပူဂဵုအတေံ၊ မက္တဵုဒှ်ဂမၠိုၚ်၊ ဌာန်ဒတန်ဂမၠိုၚ်၊ ဥပပါတ်ဂမၠိုၚ်၊ ကဆံၚ်ဂုန်သတ္တိ ဝါ ကိုန်စဳရေၚ်ဂမၠိုၚ်။ [[ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်]][[ကဏ္ဍ:နာမ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]] j7w2h538dwn4d41fhpy8smrsbas0r2o ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ် 14 296631 398117 2026-07-10T02:54:45Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:အရေဝ်ဘာသာ|သ]][[ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|သ]]" 398117 wikitext text/x-wiki [[ကဏ္ဍ:အရေဝ်ဘာသာ|သ]][[ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|သ]] onvwhxmjbylk8axjmspe7w8i01xm3md ကဏ္ဍ:ဝေါဟာအဓိကသေသျှလွာ ခရဳအဝ်လ်ဂမၠိုၚ် 14 296632 398118 2026-07-10T02:56:01Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်|သေသျှလွ..." 398118 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်|သေသျှလွာ ခရဳအဝ်လ်]] » '''ဝေါဟာတံသ္ဇိုၚ်ဂမၠိုၚ်''' :ဝေါဟာတံသ္ဇိုၚ်ဘာသာသေသျှလွာ ခရဳအဝ်လ်၊ ကဏ္ဍနူကဵုမပါ်ပရံဒကုတ်မဆေၚ်စပ်ကဵုမအရေဝ်ဝေါဟာ။ [[ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်]][[ကဏ္ဍ:ဝေါဟာအဓိကဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|သ]] o87yppllk6a4bmlfam555qkk17hr4sk ကဏ္ဍ:ဝေါဟာသေသျှလွာ ခရဳအဝ်လ်ကၠုၚ်နူဝေါဟာပြၚ်သေတ်ဂမၠိုၚ် 14 296633 398119 2026-07-10T02:57:22Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်]]" 398119 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာသေသျှလွာ ခရဳအဝ်လ်]] 7przuo9z5ad1cna1hx8k1hu4dxq4gg3 ကဏ္ဍ:ဝေါဟာသာဗ်ခြဝ်ဨရှဳယာန်ကၠုၚ်နူဝေါဟာမက်သဳဒဝ်နဳယျာခေတ်တြေံဂမၠိုၚ် 14 296634 398120 2026-07-10T02:59:03Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]]" 398120 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]] 90bo813jxfrnu418zph0eb9fkd8nq4f ကဏ္ဍ:ဝေါဟာသာဗ်ခြဝ်ဨရှဳယာန်ကၠုၚ်နူဝေါဟာဂရေတ်တြေံဂမၠိုၚ် 14 296635 398121 2026-07-10T02:59:58Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]]" 398121 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]] 90bo813jxfrnu418zph0eb9fkd8nq4f ကဏ္ဍ:ဝေါဟာသာဗ်ခြဝ်ဨရှဳယာန်ကၠုၚ်နူဝေါဟာဂရေတ်ဂမၠိုၚ် 14 296636 398122 2026-07-10T03:00:44Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]]" 398122 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာသာဗ်ခြဝ်ဨရှဳယာန်]] 90bo813jxfrnu418zph0eb9fkd8nq4f ကဏ္ဍ:ဝေါဟာမဝ်ရေတ်ဃှေန် ခရဳအဝ်ဂွံလဝ်အာဲကၟာဲနူဝေါဟာပြၚ်သေတ်ဂမၠိုၚ် 14 296637 398123 2026-07-10T03:01:46Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာမဝ်ရေတ်ဃှေန် ခရဳအဝ်]]" 398123 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာမဝ်ရေတ်ဃှေန် ခရဳအဝ်]] 9m77i70ky3z5pr5hyg21otrh72yeyzy кревет 0 296638 398124 2026-07-10T03:06:01Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==မက်သဳဒဝ်နဳယျာ== ===နိရုတ်=== {{bor+|mk|ota|كروت|tr=kerevet|sc=ota-Arab}}၊ နကဵုအဆက်နူ {{der|mk|el|κρεβάτι}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{der|mk|grc|κράββατος}} ===ဗွဟ်ရမ္သာၚ်=== * {{mk-IPA}} * {{audio|mk|LL-Q9296 (mkd)-Bjankuloski06-кревет.wav}} ===နာမ်=== {{mk-noun|m|кр..." 398124 wikitext text/x-wiki ==မက်သဳဒဝ်နဳယျာ== ===နိရုတ်=== {{bor+|mk|ota|كروت|tr=kerevet|sc=ota-Arab}}၊ နကဵုအဆက်နူ {{der|mk|el|κρεβάτι}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{der|mk|grc|κράββατος}} ===ဗွဟ်ရမ္သာၚ်=== * {{mk-IPA}} * {{audio|mk|LL-Q9296 (mkd)-Bjankuloski06-кревет.wav}} ===နာမ်=== {{mk-noun|m|кревети|креветче|adj=креветен}} # ဖုန်။ ====လဟုတ်စှ်ေ==== {{mk-decl-noun-m}} ==သာဗ်ခြဝ်ဨရှဳယာန်== ===နိရုတ်=== {{bor+|sh|ota|كروت|tr=kerevet}}၊ နကဵုအဆက်နူ {{der|sh|el|κρεβάτι}}၊ နကဵုမဆေၚ်စပ်ကဵုနူ {{der|sh|grc|κράββατος}} ===ဗွဟ်ရမ္သာၚ်=== * {{sh-IPA|krèvet}} * {{hyphenation|sh|кре|вет}} ===နာမ်=== {{sh-noun|крѐвет|m-in}} # ဖုန်။ #: {{syn|sh|pȍstelja}} ====လဟုတ်စှ်ေ==== {{sh-decl-noun |крѐвет|кревети |кревета|кре̏ве̄та̄ |кревету|креветима |кревет|кревете |кревете|кревети |кревету|креветима |креветом|креветима }} nuj66x75mj1mdccz6ym9nu1sgc3pd99 ထာမ်ပလိက်:mk-decl-noun-m 10 296639 398125 2026-07-10T03:08:30Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{mk-decl-noun-table{{#if:{{{n|}}}|-single}}{{#if:{{{col|}}}|-collective}}<!-- -->|n={{{n|}}}<!-- -->|ind_sg={{pagename}}<!-- -->|def_unsp_sg={{pagename}}от|accel-gender=m<!-- -->|def_prox_sg={{pagename}}ов<!-- -->|def_dist_sg={{pagename}}он<!-- -->|voc_sg={{#if:{{{3|}}}|{{{3}}}|{{pagename}}у}}<!-- -->|voc_sg2={{{voc_sg2|}}}<!-- -->|col_sg={{#if:..." 398125 wikitext text/x-wiki {{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{mk-decl-noun-table{{#if:{{{n|}}}|-single}}{{#if:{{{col|}}}|-collective}}<!-- -->|n={{{n|}}}<!-- -->|ind_sg={{pagename}}<!-- -->|def_unsp_sg={{pagename}}от|accel-gender=m<!-- -->|def_prox_sg={{pagename}}ов<!-- -->|def_dist_sg={{pagename}}он<!-- -->|voc_sg={{#if:{{{3|}}}|{{{3}}}|{{pagename}}у}}<!-- -->|voc_sg2={{{voc_sg2|}}}<!-- -->|col_sg={{#if:{{{4|}}}|{{{4}}}е|{{pagename}}је}}<!-- -->|col_sg2={{{col_sg2|}}}<!-- -->|ind_pl={{#if:{{{nopl|}}}||{{#if:{{{els|}}}|{{{2}}}ј|{{#if:{{{2|}}}|{{{2}}}и|{{pagename}}и}}}}}}<!-- -->|def_unsp_pl={{#if:{{{nopl|}}}||{{#if:{{{els|}}}|{{{2}}}јте|{{#if:{{{2|}}}|{{{2}}}ите|{{pagename}}ите}}}}}}<!-- -->|def_prox_pl={{#if:{{{nopl|}}}||{{#if:{{{els|}}}|{{{2}}}јве|{{#if:{{{2|}}}|{{{2}}}иве|{{pagename}}иве}}}}}}<!-- -->|def_dist_pl={{#if:{{{nopl|}}}||{{#if:{{{els|}}}|{{{2}}}јне|{{#if:{{{2|}}}|{{{2}}}ине|{{pagename}}ине}}}}}}<!-- -->|voc_pl={{#if:{{{nopl|}}}||{{#if:{{{els|}}}|{{{2}}}ј|{{#if:{{{2|}}}|{{{2}}}и|{{pagename}}и}}}}}}<!-- -->|count={{#if:{{{nopl|}}}||{{#if:{{{count|}}}|{{{count}}}|{{pagename}}}}а}}<!-- -->|col_pl={{#if:{{{colpl|}}}|{{#if:{{{col_pl|}}}|{{{col_pl}}}|{{#if:{{{4|}}}|{{{4}}}а|{{pagename}}ја}}}}|}}<!-- -->|col_pl2={{{col_pl2|}}}<!-- -->}}<!-- -->{{#if:{{{p|}}}| |}}<!-- -->{{#if:{{{pov|}}}| |}}<!-- -->{{#if:{{{pev|}}}| |}}<!-- -->{{#if:{{{fa|}}}| |}}<!-- -->{{#if:{{{fe|}}}| |}}<!-- -->{{#if:{{{fo|}}}| |}}<!-- -->{{#if:{{{fc|}}}| |}}<!-- -->{{#ifeq:{{{n|}}}|sg| |}}<!-- --><noinclude>{{documentation}}</noinclude> kfjat197bqguqvnjzdebzn9pplnhbx3 ထာမ်ပလိက်:mk-decl-noun-m/documentation 10 296640 398126 2026-07-10T03:09:33Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{documentation subpage}} This template provides the inflection of Macedonian masculine nouns that end in a consonant, with a plural in {{m|mk||-и|tr=-}}. ==Parameters== ; <code>|1=</code> : The singular form, which is identical to the page name, such that this parameter should be left blank. ; <code>|2=</code> : The plural stem without the final '''-и''', e.g. "'''парков'''" for {{l|mk|парк|tr=-}}, "'''..." 398126 wikitext text/x-wiki {{documentation subpage}} This template provides the inflection of Macedonian masculine nouns that end in a consonant, with a plural in {{m|mk||-и|tr=-}}. ==Parameters== ; <code>|1=</code> : The singular form, which is identical to the page name, such that this parameter should be left blank. ; <code>|2=</code> : The plural stem without the final '''-и''', e.g. "'''парков'''" for {{l|mk|парк|tr=-}}, "'''знац'''" for {{l|mk|знак|tr=-}}, and "'''светц'''" for {{l|mk|светец|tr=-}}. If the plural does not affect the stem, as in the case of {{l|mk|коњ|tr=-}}, this parameter should be left blank. ; <code>|3=</code> : The vocative form. By default, a vocative in '''-у''' is generated, but one can use this parameter to supply a vocative in '''-е''', e.g. "пријателе" for {{l|mk|пријател|tr=-}}. One needs to write out the full vocative form rather than just its stem. If one wishes to add a vocative in '''-е''' ''in addition to'' the one in '''-у''' rather than instead of it, one uses <code>|voc_sg2</code>, as in the entry for {{l|mk|зет|tr=-}}. ; <code>|4=</code> : The collective stem, e.g "'''лисј'''" for "'''лисје'''". If left empty, the pagename is used by default. ; <code>|n=</code> : The number of the noun. Leave this empty for normal countable nouns. For singular-only nouns, use <code>|n=sg</code>, and for plural-only nouns, use <code>|n=pl</code>. ; <code>|col=</code> : Used to display collective forms. To only display a singular collective form, only use <code>|col=1</code>. To display a plural collective form as well, also add <code>|colpl=1</code>. To manually add the plural collective form use <code>|col_pl=</code>. To display a second singular collective form, use <code>|col_sg2=</code> (as in the entry for {{l|mk|прат|tr=-}}). To display a second plural collective form use <code>|col_pl2=</code>. ; <code>|els=</code> : For dialectal or poetic plural endings in '''-ој''' and '''-еј'''. To generate such forms, write <code>|els=1</code> inside the template and provide the plural stem minus the '''-ј''' in the second parameter, e.g. "'''зборо'''" to generate "'''зборој'''".<br /><br /> '''These parameters are used to place the noun in the proper category:''' ; <code>|pov=1</code> : Places the noun in [[:Category:Macedonian masculine nouns with plurals in -ови]]. ; <code>|pev=1</code> : Places the noun in [[:Category:Macedonian masculine nouns with plurals in -еви]]. ; <code>|p=1</code> : Places the noun in [[:Category:Macedonian nouns with final palatalization in their plural forms]]. ; <code>|fa=1</code> : Places the noun in [[:Category:Macedonian nouns with a fleeting а]]. ; <code>|fe=1</code> : Places the noun in [[:Category:Macedonian nouns with a fleeting е]]. ; <code>|fo=1</code> : Places the noun in [[:Category:Macedonian nouns with a fleeting о]]. ; <code>|fc=1</code> : Places the noun in [[:Category:Macedonian masculine nouns with a fleeting suffix]]. Used for nouns which lose the suffix {{m|mk|-ец|tr=-}} or {{m|mk|-ин|tr=-}} in their plurals. <includeonly> [[ကဏ္ဍ:ထာမ်ပလိက်မက်သဳဒဝ်နဳယျာအပြံၚ်အလှာဲပ္တဝ်ထ္ၜးပမာဏနာမ်ဂမၠိုၚ်|m]] </includeonly> 3l168k7dnowioz6fe715apktw0pt91k ကဏ္ဍ:နာမ်ပုလ္လိၚ်မက်သဳဒဝ်နဳယျာဂမၠိုၚ် 14 296641 398127 2026-07-10T03:12:06Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » :ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ|မက်သဳဒဝ်နဳ..." 398127 wikitext text/x-wiki [[:ကဏ္ဍ:ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်|ဒၞာဲလုပ်အဝေါၚ်ကဵုပၟိက်]] » [[:ကဏ္ဍ:အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်|အရေဝ်ဘာသာအိုတ်သီုဂမၠိုၚ်]] » [[:ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ|မက်သဳဒဝ်နဳယျာ]] » [[:ကဏ္ဍ:ဝေါဟာအဓိကမက်သဳဒဝ်နဳယျာဂမၠိုၚ်|ဝေါဟာတံသ္ဇိုၚ်]] » [[:ကဏ္ဍ:နာမ်မက်သဳဒဝ်နဳယျာဂမၠိုၚ်|နာမ်ဂမၠိုၚ်]] » [[:ကဏ္ဍ:နာမ်မက်သဳဒဝ်နဳယျာဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ဗက်အလိုက်လိၚ်ဂမၠိုၚ်]] »'''ပုလ္လိၚ်ဂမၠိုၚ်''' :နာမ်မက်သဳဒဝ်နဳယျာမဆေၚ်စပ်ကဵုလိၚ်တြုံ၊ ဥပမာ ဆေၚ်စပ်ကဵုကဏ္ဍလုပ်အဝေါၚ်လိၚ်အတေံ (အကြာတၞဟ်ခြာအရာမွဲမွဲအဂှ်) မက္တဵုဒှ်ပုလ္လိၚ်ဂမၠိုၚ်။ [[ကဏ္ဍ:နာမ်မက်သဳဒဝ်နဳယျာဗက်အလိုက်လိၚ်ဂမၠိုၚ်|ပ]][[ကဏ္ဍ:နာမ်ပုလ္လိၚ်ဗက်အလိုက်အရေဝ်ဘာသာဂမၠိုၚ်|မ]] 0hxuut6xea2dpo1lnmanr9if9y67h6u ကဏ္ဍ:ဝေါဟာမက်သဳဒဝ်နဳယျာကၠုၚ်နူဝေါဟာဂရေတ်တြေံဂမၠိုၚ် 14 296642 398128 2026-07-10T03:12:55Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]]" 398128 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]] pn8i4qxbw2vc0y25bi3bs2tgytwo1yw ကဏ္ဍ:ဝေါဟာမက်သဳဒဝ်နဳယျာကၠုၚ်နူဝေါဟာဂရေတ်ဂမၠိုၚ် 14 296643 398129 2026-07-10T03:13:39Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]]" 398129 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာမက်သဳဒဝ်နဳယျာ]] pn8i4qxbw2vc0y25bi3bs2tgytwo1yw كروت 0 296644 398130 2026-07-10T03:16:07Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|كروب}} ==တူရကဳအောက်ဒဝ်မာန်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|ota|քէրէվէթ||Armeno-Turkish}} ===နိရုတ်=== {{bor+|ota|el|κρεβάτι}}၊ နူကဵုဝေါဟာ {{der|ota|grc|κράββατος}} ===နာမ်=== {{ota-noun|tr=kerevet}} # ဖုန်။ #: {{syn|ota|قاریولا|tr1=karyola|یاتاقلق|tr2=yataklık}}..." 398130 wikitext text/x-wiki {{also|كروب}} ==တူရကဳအောက်ဒဝ်မာန်== ===ပွံၚ်နဲတၞဟ်=== * {{alt|ota|քէրէվէթ||Armeno-Turkish}} ===နိရုတ်=== {{bor+|ota|el|κρεβάτι}}၊ နူကဵုဝေါဟာ {{der|ota|grc|κράββατος}} ===နာမ်=== {{ota-noun|tr=kerevet}} # ဖုန်။ #: {{syn|ota|قاریولا|tr1=karyola|یاتاقلق|tr2=yataklık}} ===မဒုၚ်လွဳစ=== * {{desc|tr|kerevet}} * {{desc|hy|քերեվեթ|bor=1}} * {{desc|ar|كَرَوِيتَة|tr=karawēta|bor=1}} {{q|dialects}} * {{desc|bg|креве́т|bor=1}} {{q|obsolete}}, {{l|bg|крева́т}} * {{desc|hu|kerevet|bor=1}} * {{desc|mk|кревет|bor=1}} * {{desc|sh|-|bor=1}} *: {{desc|sh|крѐвет|sclang=1}} *: {{desc|sh|krèvet|sclang=1}} 7gvwij99jizp77o7f8vk6gtw2wa6bmi ကဏ္ဍ:ဝေါဟာတူရကဳအောက်ဒဝ်မာန်ကၠုၚ်နူဝေါဟာဂရေတ်ဂမၠိုၚ် 14 296645 398131 2026-07-10T03:16:55Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာတူရကဳအောက်ဒဝ်မာန်]]" 398131 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာတူရကဳအောက်ဒဝ်မာန်]] 19wzyq5biohsb6gd0ejnz7r0ux18la3 ကဏ္ဍ:ဝေါဟာတူရကဳအောက်ဒဝ်မာန်လွဳလဝ် နူဝေါဟာဂရေတ်ဂမၠိုၚ် 14 296646 398132 2026-07-10T03:17:32Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "[[ကဏ္ဍ:ဘာသာတူရကဳအောက်ဒဝ်မာန်]]" 398132 wikitext text/x-wiki [[ကဏ္ဍ:ဘာသာတူရကဳအောက်ဒဝ်မာန်]] 19wzyq5biohsb6gd0ejnz7r0ux18la3 քէրէվէթ 0 296647 398133 2026-07-10T03:19:08Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "==တူရကဳအောက်ဒဝ်မာန်== ===နာမ်=== {{ota-noun|tr=kerevet}} # {{alt form|ota|كروت}}" 398133 wikitext text/x-wiki ==တူရကဳအောက်ဒဝ်မာန်== ===နာမ်=== {{ota-noun|tr=kerevet}} # {{alt form|ota|كروت}} bf295hkcxlqbervpaw4zsd3f2zz8d2q كروب 0 296648 398134 2026-07-10T03:20:21Z 咽頭べさ 33 ခၞံကၠောန်လဝ် မုက်လိက် နကု "{{also|كروت}} =={{=ar=}}== ===နာမ်=== {{ar-head|nounf|كُرُوب|m-p}} # {{plural of|ar|كَرْب}}" 398134 wikitext text/x-wiki {{also|كروت}} =={{=ar=}}== ===နာမ်=== {{ar-head|nounf|كُرُوب|m-p}} # {{plural of|ar|كَرْب}} 9wjjolgoox8t04zb7t3huq492tj40fp