Vikilug‘at uzwiktionary https://uz.wiktionary.org/wiki/Bosh_sahifa MediaWiki 1.44.0-wmf.2 case-sensitive Media Maxsus Munozara Foydalanuvchi Foydalanuvchi munozarasi Vikilug‘at Vikilug‘at munozarasi Fayl Fayl munozarasi MediaWiki MediaWiki munozarasi Andoza Andoza munozarasi Yordam Yordam munozarasi Turkum Turkum munozarasi TimedText TimedText talk Modul Modul munozarasi hol 0 6302 628982 627487 2024-11-06T18:04:39Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628982 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''hol''' == Aytilishi == == Etimologiyasi == ''\[[w:Arab tili|a.]]'' Jla. — holat, ravish == Maʼnoviy xususiyatlari == === Maʼnosi === 1 Hayotdagi muayyan bir holat, vaziyat; ahvol. {{misol|Umidli, izlanuvchan yoshlarimizning koʻpligi quvonch-li {{ajrat|hol}}dir.|[[w:Gazeta|Gazetadan]]}}. {{misol|Shunaqa, bu choʻlni oson-likcha yengmaganmiz, qurbonlar berib, jon fido qilib, shu {{ajrat|hol}}ga keltirganmiz.|[[w:"Oʻz-bekiston qoʻriqlari"|"Oʻz-bekiston qoʻriqlari"]]}}. {{misol|..maktabdaoʻqish-oʻqi-tish ishlari mustahkam izga tushib ketdi. Bu {{ajrat|hol}} qishloqda sezilmay qolmadi.|[[w:M. Ismoiliy|M. Ismoiliy]]|Fargʻona tong otguncha}}. {{misol|Darvozalar yonida sarbozlar yurib turishi.. dushmanga qarshi tadbir-choralar koʻrilayotganini hisobga olmaganda, shahar oʻlik {{ajrat|hol}}da edi.|[[w:Mirmuhsin|Mirmuhsin]]|Meʼmor}}. :Holiga voy Kishining ishi, ahvoli yomon boʻlishini, achinarli ahvolga tushishini bildiradi. {{misol|Oʻz pirini beobroʻ qilgan, yuziga oyoq tirab ketgan bandaning {{ajrat|hol}}iga voy! |[[w:"Mushtum"|"Mushtum"]]}}. 2 Kimsa yoki narsa jismida yuzaga kelgan muayyan holat. {{misol|Avtor yana oʻz savlapii {{ajrat|hol}}iga qaytdi. Qaddini gʻoz tutganicha, oyogʻini kerib, yirik-yirik qadam tashlab chiqib ketdi.|[[w:F. Musajonov|F. Musajonov]]|Himmat}}. {{misol|Oʻzim-ku, gʻoʻzalarni shu {{ajrat|hol}}ga yetkazguncha lab-larimni(ng) uch marta poʻsti tushdi.|[[w:S. Nurov|S. Nurov]]|Narvoy}}. 3 Kishining jismoniy va ruhiy ji-hatdan oʻzini sezishi; jismoniy va ruhiy \olat; kayfiyat, avzo, koʻrinish. {{misol|Meʼmorning xayol surib, giyohvandlardek qotib qolgani-ni koʻrgan Horunbek.. ustod baʼzan shunday {{ajrat|hol}}ga tushib qolarmikan, bu, ehtimol, achchiq alamning oqibatidir.. deb oʻylardi.|[[w:Mirmuhsin|Mirmuhsin]]|Meʼmor}}. {{misol|Teshaboy, bir tomondan, kooperativchining {{ajrat|hol}}iga achindi, ikkinchi tomondan, gitlerchilarga xizmat qilayot-ganidan gʻazablandi.|[[w:T. Rustamov|T. Rustamov]]|Mangu ja-sorat}}. '''4 '''(''oʻ.-p. k. shaklida'' — holda) Holat bil-diruvchi (''gʻamgin, maʼyus'' kabi) baʼzi soʻzlar, shuningdek, ''-gan'' affiksli feʼl bilan qoʻllanib, biror harakat-holatning shu soʻz bildirgan holatda yuz berishi, bajarili-shini bildiradi. {{misol|Husaynning dadasi maʼyus {{ajrat|hol}}da, bilinar-bilinmas bosh chayqab qoʻydi. |[[w:M. Osim|M. Osim]]|Ibn Sino qissasi}}. {{misol|Suyum ogʻa garang, dardli, och {{ajrat|hol}}da tepa ustiga chiqqach, yana boyagidek, orqa-oldiga qaradi.|[[w:N. Fo-zilov|N. Fo-zilov]]|Diydor}}. {{misol|Husayn Boyqaro.. qiyiq, tez oʻynaydigan koʻzlarini shoirga tikib, gʻamgin {{ajrat|hol}}da dedi..|[[w:Oybek|Oybek]]|Navoiy}}. {{misol|Imom yerga qa-ragan {{ajrat|hol}}da boshini qimirlatib qoʻydi.|[[w:A. Qodiriy|A. Qodiriy]]|Mehrobdan chayon}}. 5 Baʼzi soʻzlar bilan qoʻllanib, ruhiy yoki jismoniy imkoniyat, kuch-quvvat maʼ-nosini bildiradi. {{misol|Uning oh degani {{ajrat|hol}}i yoʻq. S.|[[w:Siyoyev|Siyoyev]]|Avaz}}. {{misol|Bolaning yigʻlashga ham {{ajrat|hol}}i qolmagan edi.|[[w:Gazeta|Gazetadan]]}}. {{misol|Xosiyat xola bir hoʻplam choy ichgan boʻldi-yu, {{ajrat|hol}}i kelmay, yotib qoldi.|[[w:R. Fayziy|R. Fayziy]]|Choʻlga bahor keldi}}. '''6 '''''tlsh.'' Ish-harakatning qay tarzda bajarilishini, uning bajarilish sababi, maqsadi, oʻrni, payti va sh.k belgilarini bildiradigan ikkinchi darajali boʻlak. Qanday belgini bildirishiga koʻra holning {{misol|sabab {{ajrat|hol}}i, oʻrin {{ajrat|hol}}i, payt {{ajrat|hol}}i, tarz {{ajrat|hol}}i |[[w:kabi turlari farqlanadi|kabi turlari farqlanadi]]}}. ''Kecha koʻrdim (kecha —'' payt \oli). ''Koʻchada uchrashdik'' ''(koʻchada — ''oʻrin holi) va b. :Aks holda ''q.'' aks. Arzi hol aylamoq ''(yoki ''qilmoq) Oʻz ahvolini va istagini izhor qilmoq, shikoyat qilmoq. Ahli hol ''esk. kt. ''Rahmdil, kimsa uchun qaygʻuruvchi, jonkuyar odam(lar). Ilmi hol ''esk. kt.'' Ilmning, ilm ishlarining holati, ahvoli. {{misol|Madrasalarda ilmi {{ajrat|hol}} oʻgay oʻgʻil {{ajrat|hol}}atiga tushib qoldi. |[[w:M. Osim|M. Osim]]|Ibn Sino qissasi}}. Tarjimai hol ''q.'' tarjima. U holda Unday boʻlsa, shunday boʻlgan taqdirda. {{misol|Xayr, ketmagan ham boʻlsin. U {{ajrat|hol}}da, oʻzingiz aytgandek qilib, toʻppa-toʻgʻri ertaga Salim sharbatdorning oldiga boraman-da, oʻgʻlingni Mirzakarim akaning toshkentlik kuyovi oʻldirdi, men oʻz koʻzim bilan koʻrdim, deyman.|[[w:A. Qodiriy|A. Qodiriy]]|Oʻtgan kunlar}}. Oʻz holiga Oʻz erki-ixtiyoriga. {{misol|Shunday qilib, "bechora" Sodiqni oʻz {{ajrat|hol}}iga qoʻymay, koʻchadan anchagina nariga surgab ketdilar.|[[w:A. Qodiriy|A. Qodiriy]]|Oʻtgan kunlar}}. {{misol|Meʼmorni oʻz {{ajrat|hol}}iga qoʻyib berish kerak. U shuni xohlardi.|[[w:Mirmuhsin|Mirmuhsin]]|Meʼmor}}. {{misol|Boshini koʻtarib, yelka-larini oʻz {{ajrat|hol}}iga qoʻydi, oyoqlarini ham uzat-di. S.|[[w:Karomatov|Karomatov]]|Oltin qum}}. Oʻz holicha Birovning aralashuvisiz; oʻz bilgicha, oʻzicha. {{misol|Uyda oʻz {{ajrat|hol}}icha ivirsib yurib, temir-ter-saklar yigʻdi, asboblar topdi, ishlay boisxodi.}} R. Fayziy, Hazrati inson. Hol tili ''xk. kt.'' Hol-ahvoldan soʻzlovchi, uni bildiruvchi xatti-harakat, belgi va sh.k.; shunday "til". {{misol|Bu ikki yoix orasida sevgi aloqasi haligacha tilga olinmagan va har ikkalalari ham bir-birovlariga oʻz ichki kechinmalarini yolgʻiz {{ajrat|hol}} tili bilan izhor qilmoqda edilar.|[[w:S. Ayniy|S. Ayniy]]|Doxunda}}. {{misol|Narigi uvat bilan bunisi bir-biriga nisbatan farqini {{ajrat|hol}} tili bilan soʻzlab xpuradi.|[[w:A. Qodiriy|A. Qodiriy]]|Obid ketmon}}. === Sinonimlari === === Antonimlari === {{OʻTIL|ҲОЛ}} == Tarjimalari == {{uz-ism}} {{trans-top}} *{{af}}: [[bywoord]] *{{sq}}: [[ndajfolje]] *{{ar}}: [[ظرف]] (ẓarf) *{{hy}}: [[մակբայ]] (makbay) *{{ast}}: [[alverbiu]] *{{az}}: [[zərf]] *{{ba}}: [[рәүеш]] (räweš) *{{eu}}: [[adizlagun]], [[adberbio]] *{{be}}: [[прыслоўе]] (pryslóŭje) *{{bn}}: [[ক্রিয়া-বিশেষণ]] (kriya-bisheshan) *{{bg}}: [[наречие]] (naréčie) *{{my}}: [[ကြိယာဝိသေသန]] (kri.yawi.sesa.na.) *{{ca}}: [[adverbi]] *{{ce}}: [[куцдош]] (kucdoš) *{{zh}}: :Mandarin: [[副詞]], [[副词]] (fùcí) :Min Nan: [[副詞]], [[副词]] (hù-sû) *{{cv}}: [[наречи]] (nareči) *{{crh}}: [[zarf]] *{{cs}}: [[příslovce]] *{{da}}: [[adverbium]], [[biord]] *{{nl}}: [[bijwoord]] *{{et}}: [[määrsõna]] *{{fo}}: [[hjáorð]] *{{fi}}: [[adverbi]] *{{fr}}: [[adverbe]] *{{fy}}: [[avierb]] *{{ka}}: [[ზმნიზედა]] (zmnizeda) *{{de}}: [[Adverb]], [[Umstandswort]] *{{el}}: [[επίρρημα]] (epírrima) *{{gu}}: [[ક્રિયાવિશેષણ]] (kriyāviśeṣaṇ) *{{he}}: [[תואר הפועל]] (toar ha'pô'al) *{{hi}}: [[क्रियाविशेषण]] (kriyāviśeṣaṇ) *{{hu}}: [[határozószó]] *{{is}}: [[atviksorð]] *{{io}}: [[adverbo]] *{{id}}: [[adverbia]] *{{ia}}: [[adverbio]] *{{ga}}: [[dobhriathar]] *{{it}}: [[avverbio]] *{{ja}}: [[副詞]] (ふくし, fukushi) *{{kk}}: [[шылау]] (şılaw), [[үстеу]] (üstew) *{{km}}: [[គុណកិរិយា]] (kun keriyaa), [[កិរិយាសព្ទវិសេសន៍]] (keriyaa sap viseh) *{{en}}: [[adverb]] {{trans-mid}} *{{es}}: [[adverbio]] *{{ko}}: [[부사]] (busa) *{{ky}}: [[тактооч]] (taktooç) *{{lo}}: [[ຄຳກິຣິຍາວິເສດ]] (kám kí rī ɲáː wī sȅːt), [[ວິເສດ]] (wī sȅːt) *{{la}}: [[adverbium]] *{{lv}}: [[apstākļa vārds]], [[adverbs]] *{{li}}: [[biewaord]] *{{ln}}: [[lilandi]] *{{lt}}: [[prieveiksmis]] *{{mk}}: [[прилог]] (prílog) *{{ms}}: [[adverba]] *{{ml}}: [[ക്രിയാവിശേഷണം]] (kriyāviśēṣaṇam) *{{mt}}: [[avverbju]] *{{mi}}: [[tūkē]] *{{mn}}: [[дайвар үг]] (dajvar üg) *{{nah}}: [[cauhtic]] *{{nov}}: [[adverbie]] *{{oc}}: [[advèrbi]] *{{or}}: [[କ୍ରିୟା ବିଶେଷଣ]] *{{fa}}: [[قید]] (qeyd), [[ظرف]] (zarf) *{{pl}}: [[przysłówek]] *{{pt}}: [[advérbio]] *{{qu}}: [[hinarimana]] *{{ru}}: [[наречие]] (naréčije) *{{gd}}: [[co-ghnìomhair]] *{{scn}}: [[avverbiu]] *{{si}}: [[ක්‍රියා විශේෂණය]] (k‍riyā viśēṣaṇaya) *{{sk}}: [[príslovka]] *{{sl}}: [[prislov]] *{{sw}}: [[kielezi]], [[kisifa]] *{{tl}}: [[pang-abay]] *{{tg}}: [[зарф]] (zarf) *{{ta}}: [[வினையுரிச்சொல்]] (viṉaiyuriccol) *{{tt}}: [[рәвеш]] (räweş) *{{te}}: [[క్రియా విశేషణము]] (kriyā viśēṣaṇamu) *{{th}}: [[วิเศษณ์]] (wísèt) *{{tr}}: [[belirteç]], [[zarf]] *{{tk}}: [[ahwalet]], [[hal]] *{{uk}}: [[прислівник]] (pryslívnyk) *{{vi}}: [[trạng từ]], [[phó từ]] *{{vo}}: [[ladvärb]], [[ladvelib]] *{{fy}}: [[bywurd]] *{{yi}}: [[אדווערב]] (adverb) *{{zu}}: [[isandiso]] class 7/8 |} {{OʻTIL}} {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''hol'''<br /> '''1 '''[[положение]], [[состояние]]; [[обстоятельства]]; {{tarjmisoli|kim seni bu ~ga soldi? }} кто тебя довёл до такого положения?; {{tarjmisoli|oʻrta ~ dehqon }} ({{izoh|букв}}. крестьянин среднего положения) крестьянин-середняк; {{tarjmisoli|uning ~iga maymun(lar) yigʻlaydi }} ({{izoh|букв}}. его положение оплакивают обезьяны) он находится в крайне безвыходном, весьма тяжёлом положении; {{tarjmisoli|u buni bilgani ~da hech narsa qilmadi }} зная об этом, он (всё же) ничего не сделал; {{tarjmisoli|koʻzlarini yumgan ~da }} зажмурив глаза, зажмурившись; {{tarjmisoli|kutilmagan ~da }} неожиданно;<br /> '''2 '''[[случай]]; {{tarjmisoli|bu ~da }} 1) в этом положении, состоянии; 2) в таком случае; {{tarjmisoli|aks ~da }} в противном случае; {{tarjmisoli|har ~da }} во всяком случае, как бы то ни было;<br /> '''3 '''[[сила]], [[мочь]]; {{tarjmisoli|~dan toymoq }} ({{izoh|или '''}}[[ketmoq]]''') [[обессилеть]], [[терять]] [[силу]], [[изнемогать]]; {{tarjmisoli|~dan tondirmoq }} заставить выбиться из сил, изнурять, выматывать силы; {{tarjmisoli|ogʻir kasallik uni ~dan toydirib qoʻydi }} тяжёлая болезнь изнурила его;<br /> '''4 '''[[здоровье]], [[состояние]] [[здоровья]]; {{tarjmisoli|~ soʻramoq }} справляться о здоровье, состоянии ({{izoh|кого-л}}.);<br /> '''5 '''{{izoh|грам}}. [[обстоятельство]]; // [[обстоятельственный]]; {{tarjmisoli|~ ergash gap }} обстоятельственное придаточное предложение; {{tarjmisoli|payt ~i }} обстоятельство времени; {{tarjmisoli|oʻrin ~i }} обстоятельство места;{{tarjmisoli| * tarjimai ~}} 1) биография; 2) автобиография; {{tarjmisoli|oʻz ~iga }} каждый сам по себе; каждый по-своему; кому что заблагорассудится; {{tarjmisoli|oʻz ~iga qoʻyib bermoq }} предоставить самому себе.<br /> }} [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] {{-tr-}} {{tr-ism}} :[[dahliz]] 0jfov83673o0r9gdc83t673tq4b593e Andoza:fa 10 12504 628975 628343 2024-11-06T17:59:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE Replaced content with "Forscha" 628975 wikitext text/x-wiki Forscha 102cx43k6o2g7zxeg3hysz8ko9lauh7 xato 0 12568 629022 620111 2024-11-07T10:55:41Z 2A01:CB00:C66:F400:51AE:FED1:AAE9:8E90 /* Etimologiyasi */ 629022 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''xa-to''' == Aytilishi == == Etimologiyasi == ''[[w:Arab tili|a.]]'' خطأ — xato, qusur; gunoh == Maʼnoviy xususiyatlari == === Maʼnosi === '''1''' Hisoblash, yozish, oʻqish, soʻzlash va sh.k. larda adashish, yanglishish, notoʻgʻrilik, qusur. {{misol|Imloviy {{ajrat|xato}}. Matematik {{ajrat|xato}}.}} '''2''' Umuman, turmushda, ishda yoʻl qoʻyil-gan kamchilik, nuqson, notoʻgʻri xatti-ha-rakat. ''Dushman siringni oʻgʻirlaydi, Doʻst xa-tongni toʻgʻrilaydi.'' Maqol. n {{misol|..ammo mu-habbat juda noyob narsa, bu yoʻldagi {{ajrat|xato}}ni hech kechirib boʻlmaydi!|[[w:Mirmuhsin|Mirmuhsin]]|Umid}}. :Xato qilmoq (''yoki'' ketmoq) Xatoga yoʻl qoʻymoq, kamchilik yoki nuqson yuz berishi-ga imkon berib qoʻymoq. {{misol|{{ajrat|Xato}} qilmoq bor-dir, tuzatmaslik ordir.|[[w:Maqol|Maqol]]}}. n {{misol|Vater-looda {{ajrat|xato}} qildi Napoleon, Jahongirning qaytdi shu kun omadi.|[[w:A. Oripov|A. Oripov]]}}. {{misol|Siz Mehri toʻgʻrisida {{ajrat|xato}} ketdingiz, chunki u faqat yangi yerda ishlash niyati bilan sekretarlik-dan ketdi.|[[w:Sh. Rashidov|Sh. Rashidov]]|Boʻrondan kuchli}}. '''3''' Haqiqatga toʻgʻri kelmaydigan, asossiz, notoʻfi. {{misol|{{ajrat|Xato}} yozmoq. {{ajrat|Xato}} hisoblamoq. {{ajrat|Xato}} soʻzlamoq.}} n {{misol|Joʻrttaga {{ajrat|xato}} oʻqib, oʻzing kuldirding.. Oʻqi, Raʼno.|[[w:A. Qodiriy|A. Qodiriy]]|Mehrobdan chayon}}. '''4 '''''q.x.'' Yerdan chiqmay yoki unmay qolgan urugʻ haqida. {{misol|Yaxshi ishlanmagan yerga ekilgan urugʻ {{ajrat|xato}} chiqadi.}} '''5''' Moʻljalga, nishonga tegmaslik. {{misol|Oʻq {{ajrat|xato}} ketdi. yash Hech qaysisining otgani {{ajrat|xato}} ketmas edi, hech bir dushman omon ketmas edi. |[[w:"Alpomish"|"Alpomish"]]}}. === Sinonimlari === nuqson, qusur === Antonimlari === {{OʻTIL|ХАТО}} == Tarjimalari == '''xato''' {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''xato'''<br /> '''1 '''[[ошибка]]; [[погрешность]], [[оплошность]], [[упущение]]; [[заблуждение]]; // [[ошибочный]]; // [[ошибочно]]; {{tarjmisoli|xatoning yoʻldoshi jazo }} {{izoh|погов}}. наказание - спутник ошибки; {{tarjmisoli|dushman siringni oʻgʻirlaydi, doʻst xatoingni toʻgʻrilaydi }} {{izoh|посл}}. враг твою тайну похищает, друг твою ошибку исправляет; {{tarjmisoli|xato yoʻl }} ошибочный (неправильный) путь; {{tarjmisoli|xato fikr }} ошибочное мнение, заблуждение; {{tarjmisoli|xato qarash }} ошибочный, неправильный взгляд; {{tarjmisoli|xato aytmoq }} неправильно, неверно сказать; {{tarjmisoli|katta xato }} большая ошибка, серьёзное упущение; {{tarjmisoli|orfografik xato }} орфографическая ошибка; {{tarjmisoli|yozuvdagi xato }} описка; '''[[bosmaxona]] '''({{izoh|или '''}}[[matbaa]]''') {{tarjmisoli|xatosi }} типографская ошибка; опечатка; {{tarjmisoli|kitobda xato ketgan }} в книгу вкралась ошибка; {{tarjmisoli|xato qilmoq }} {{izoh|или {{tarjmisoli|}}xatoga yoʻl qoʻymoq }} допускать ошибку; ошибаться, заблуждаться; плошать; {{tarjmisoli|xatoga ketmoq }} впасть в заблуждение, заблуждаться;<br /> '''2 '''{{izoh|с.-х. }}[[огрех]], [[участок]] [[поля]] [[без]] [[всходов]] {{izoh|или }}[[с]] [[редкими]] [[всходами]]; {{tarjmisoli|xato yer }} плешина, место ({{izoh|на поле}}) с изреженными всходами;<br /> '''3 '''[[промах]] ({{izoh|при стрельбе}}); {{tarjmisoli|oʻq xato ketdi }} пуля пролетела мимо; {{tarjmisoli|xato ketkizmoq }} промахнуться, дать промах ({{izoh|при стрельбе}}).<br /> }} [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] gfcmrhzg3q9qcts7gv4x7w2sziw06x6 yashil 0 12716 629005 621423 2024-11-06T18:38:25Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629005 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''ya-shil''' == Aytilishi == == Etimologiyasi == {{OʻTEL|I|YASHIL ’barg rangidagi’. Chap tomonda — tog etaklari, oʻng tomonda — ya sh i l paxtazor, oʻrtada — qishloq (Ibroqim Raqim). Bu sifat qadimgi turkiy tilda mavjud boʻlib, ’barg rangiga ega boʻl-’ maʼnosini anglatgan ya:sh- feʼlidan -(ï)l qoʻshimchasi bilan yasalgan (ЭСТЯ, IV, 164), keyinroq a: unlisining choʻziqlik belgisi yoʻqolgan (ПДП, 386; Devon, III, 26; DS, 246); oʻzbek tilida a unlisi ä unlisiga almashgan, ï unlisining qattiqlik belgisi yoʻqolgan: ya:sh- + ïl <nowiki>=</nowiki> ya:shïl &gt;&nbsp;yashïl &gt;&nbsp;yäshil.}} == Maʼnoviy xususiyatlari == === Maʼnosi === 1 Sariq bilan koʻk rang oʻrta-ligidagi, barg yoki maysa rangiga ega boʻlgan rang. {{misol|{{ajrat|Yashil}} bargli oʻsimliklar. {{ajrat|Yashil}} parda. {{ajrat|Yashil}} boʻyoq. }}yash {{misol|Chap tomonda togʻ etaklari, oʻng tomonda {{ajrat|yashil}} paxtazor, oʻrtada qishloq.|[[w:I. Rahim|I. Rahim]]|Chin muhabbat}}. {{misol|Boshidagi {{ajrat|yashil}} roʻmoli qorachadan kelgan yuzini boʻgʻibroq qoʻygan boʻlsa ham, oʻziga xoʻp yarashgan..|[[w:A. Qahhor|A. Qahhor]]|Qoʻshchinor chiroqlari}}. {{misol|Erkin qushlar daraxtlarning quyuq {{ajrat|yashil}}i ichidan jonli naylarini tinlikka quyardi. |[[w:Oybek|Oybek]]|Navoiy}}. 2 Yashil rangli yosh maysalar va oʻsim-liklar bilan qoplangan. {{misol|{{ajrat|Yashil}} vodiy. {{ajrat|Yashil}} dala. {{ajrat|Yashil}} qirlar.}} m {{misol|Oʻngroqda, {{ajrat|yashil}} tepa ustida qoʻylar, qoʻzilar, echkilar oʻtlab yuribdi. \.|[[w:Gʻulom|Gʻulom]]|Mashʼal}}. === Antonimlari === {{OʻTIL|ЯШИЛ}} == Tarjimalari == {{uz-adj}} {{trans-top}} *{{en}}: [[green]] *{{tr}}: [[yeşil]] *{{az}}: [[yaşıl]] *{{gag}}: [[eşil]] {{trans-mid}} *{{nl}}: [[groen]] *{{de}}: [[Grün]] *{{pt}}: [[verde]] *{{ru}}: [[зелёный]] *{{cv}}: [[симӗс]] |} {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''yashil'''<br /> [[зелёный]]; // [[зелень]]; {{tarjmisoli|yashil rang movut }} сукно зелёногоцвета; {{tarjmisoli|yashil nur }} зелёный луч; {{tarjmisoli|yashil dala }} зелёное поле; {{tarjmisoli|yashil daraxtlarda qushlar sayray boshladi }} на зелёных деревьях запели птицы; {{tarjmisoli|yashil boʻlib koʻrinmoq }} зеленеть.<br /> }} ====Shuningdek qarang==== {{table:colors/uz}} fain5pp09uio4d0tdicn00afeabrmk5 日本 0 13238 628995 549405 2024-11-06T18:22:40Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628995 wikitext text/x-wiki {{vikipediya|lang=zh}} {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron|m=Rìběn |c=jat6 bun2 |h=pfs=Ngi̍t-pún |md=Nĭk-buōng |mn=Ji̍t-pún/Li̍t-pún |w=5zeq pen |cat=atoqli ot soʻzlar }} {{zh-mamlakat|日本}} # [[Yaponiya]] #: {{zh-usex|'''日{Rì}本''' 電視劇|'''''Japanese''' TV drama''}} ====Boshiga shartlari==== * {{zh-l|日本化|tr=Rìběnhuà}} * {{zh-l|日本腦炎|tr=Rìběn nǎoyán}} * {{zh-l|日本人|tr=Rìběnrén}} * {{zh-l|日本語|tr=Rìběnyǔ}} {{-ja-}} <div style="float:right;"> {{vikipediya|lang=ja}} </div> {{ja-mamlakat|にほん}} # [[Yaponiya]] ===Etimologiya=== {{ja-kanjitab|にち|k1=にっ|ほん|k2=ぽん|yomi=o}} {{IPAchar|/nitpoɴ/}} > {{IPAchar|/nippoɴ/}} {{IPAchar|/zit͡ɕi, zit͡su/}} are the [[漢音#Japanese|kan'on]] readings of {{l|ja|日}}, as compared to the [[呉音#Japanese|goon]] reading {{IPAchar|/nit͡ɕi/}}. ====Atoqli ot==== {{ja-pos|atoqli ot|じっぽん}} # [[Yaponiya]] ===Sinonimlari=== * [[大和]] ([[やまと]] Yamato), [[倭]] ([[やまと]] Yamato) * [[日本国]] ([[にほんこく]] (Nihonkoku) * [[瑞穂の国]] ([[みずほのくに]] (Mizuho no Kuni) * [[和]] ([[わ]] wa) ===Manlalar=== <references/> * {{R:Nippo Jisho}} 9qek0066wa8mny95oqo138vzpwpl1x5 628996 628995 2024-11-06T18:23:17Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628996 wikitext text/x-wiki {{vikipediya|lang=zh}} {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron|m=Rìběn |c=jat6 bun2 |h=pfs=Ngi̍t-pún |md=Nĭk-buōng |mn=Ji̍t-pún/Li̍t-pún |w=5zeq pen |cat=atoqli ot soʻzlar }} {{zh-mamlakat|日本}} # [[Yaponiya]] #: '''日{Rì}本''' 電視劇'''''Japanese''' TV drama'' ====Boshiga shartlari==== * {{zh-l|日本化|tr=Rìběnhuà}} * {{zh-l|日本腦炎|tr=Rìběn nǎoyán}} * {{zh-l|日本人|tr=Rìběnrén}} * {{zh-l|日本語|tr=Rìběnyǔ}} {{-ja-}} <div style="float:right;"> {{vikipediya|lang=ja}} </div> {{ja-mamlakat|にほん}} # [[Yaponiya]] ===Etimologiya=== {{ja-kanjitab|にち|k1=にっ|ほん|k2=ぽん|yomi=o}} {{IPAchar|/nitpoɴ/}} > {{IPAchar|/nippoɴ/}} {{IPAchar|/zit͡ɕi, zit͡su/}} are the [[漢音#Japanese|kan'on]] readings of {{l|ja|日}}, as compared to the [[呉音#Japanese|goon]] reading {{IPAchar|/nit͡ɕi/}}. ====Atoqli ot==== {{ja-pos|atoqli ot|じっぽん}} # [[Yaponiya]] ===Sinonimlari=== * [[大和]] ([[やまと]] Yamato), [[倭]] ([[やまと]] Yamato) * [[日本国]] ([[にほんこく]] (Nihonkoku) * [[瑞穂の国]] ([[みずほのくに]] (Mizuho no Kuni) * [[和]] ([[わ]] wa) ===Manlalar=== <references/> * {{R:Nippo Jisho}} d0cqfibpipmtk7zi8433dscdrx3sun3 新聞 0 13951 629004 549391 2024-11-06T18:37:13Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629004 wikitext text/x-wiki {{-zh-}} {{zh-forms|s=新闻}} ===Talaffuz=== {{zh-pron |m=xīnwén |ma=zh-xīnwén.ogg |dg=щин1вын1 |c=san1 man4,san1 man4-2 |h=pfs=sîn-vùn;hrs=h:sinˋ vun;gd=xin1 vun2 |md=sĭng-ùng |mn=ml,tw,sg:sin-bûn |mn-t=sing1 bhung6 |px=pt:sing1 mong2/xy:sing1 muong2 |w=sh:1shin ven |cat=n }} {{zh-ism|mw=條/条|mw2=個/个}} # [[yangiliklar]] ===Boshiga shartlari=== * [[新聞稿]]/[[新闻稿]] {{-ja-}} {{ja-kanjitab|しん|ぶん|yomi=on}} {{ja-ism|しんぶん}} :[[gazeta]] ===Aralashmalari=== * [[新聞紙]] [[しんぶんし]]: [[gazeta qogʻozi]] 2jjcdwtti852vvdlrm4jprfrp80w6ox 今日 0 14418 628911 549074 2024-11-06T16:10:20Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628911 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=jīnrì |c=gam1 jat6 |c-t=gim1 ngit4 |g='jin1 nyit6 |h=pfs=kîm-ngit |j=jing1 zeng1 |mn=zz,kh:kim-ji̍t/xm,qz,tp:kim-li̍t |mn-t=gim1 rig8/gim1 rêg8 |mn-t_note=gim1 rêg8 - Jieyang |x=jin1 r6/jin1 nyi6 |x_note=jin1 r6 - vernacular; jin1 nyi6 - literary |cat=n }} {{zh-ism}} # [[bugun]]; [[hozir]] # Hozirgi kunda ====Sinonimlari==== * [[今天]] {{-ja-}} {{ja-kanjitab|sort=きょう|yomi=irr}} {{ja-ism|きょう|hhira=けふ}} # [[bugun]] #* '''712''', ''[[w:Kojiki|Kojiki]]'' (poem #102)<ref>{{R:Kodai Kayōshū}}</ref> #*: 毛毛志紀能 淤富美夜比登波 宇豆良登理 比禮登理加氣弖 麻那婆志良 袁由岐阿閇 爾波須受米 宇受須麻理韋弖 '''祁布'''母加母 佐加美豆久良斯 多加比加流 比能美夜比登 許登能 加多理碁登母 許袁婆 #* 905 [[w:Kokin Wakashū|Kokin Wakashū]] (poem #20)<ref>{{keltiraman-kitob |last=Kojima |first=Noriyuki |coauthors=Arai Eizō |title=Shin Nihon Koten Bungaku Taikei 5: [[w:Kokin Wakashū|Kokin Wakashū]] |publisher=[[w:Iwanami Shoten Publishing|Iwanami Shoten]] |date=1989 |origyear=905 |language=Yaponcha |isbn=4-00-240005-0 }}</ref> #*: 梓弓をして春雨'''けふ'''降りぬあすさへ降らば若菜つみてん =====Sinonimlari===== * {{ja-r|本日|ほんじつ}} =====Boshiga shartlari===== * {{ja-l|今日は|こんにちは|konnichi wa}}: {{l|en|good day}} * {{ja-l|今日様|こんにちさま|konnichi-sama}}: {{qualifier|{{l|en|poetic}} {{l|en|honorific}}}} the {{l|en|sun}} * {{ja-l|今日的|こんにちてき|konnichiteki}}: {{l|en|modern}}, {{l|en|current}} {{ja-kanjitab|こん|yomi=o|じつ}} ====Talaffuz==== {{ja-pron|こんじつ|y=o}} {{ja-ism|こんじつ}} # [[bugun]], bu kun # Hozirgi kunda =====Shartlarini muvofiqlashtirish===== * {{ja-l|一昨々日}} ({{ja-l|さきおととい}}, {{ja-l|||saki ototoi}}; {{ja-l|さきおとつい}}, {{ja-l|||saki ototsui}}; {{ja-l|いっさくさくじつ}}, {{ja-l|||issaku sakujitsu}}): three days ago * {{ja-l|一昨日|おととい|ototoi}}: the [[day before yesterday]], two days ago * {{ja-l|昨日|きのう|kinō}}: [[yesterday]] * {{ja-l|明日}} ({{ja-l|あした}}, {{ja-l|||ashita}}; {{ja-l|あす}}, {{ja-l|||asu}}): [[tomorrow]] * {{ja-l|明後日|あさって|asatte}}: the [[day after tomorrow]], two days from now * {{ja-l|明々後日|しあさって|shiasatte}}: three days from now * {{ja-l|弥の明後日|やのあさって|ya no asatte}}: three days from now; {{qualifier|dialectal}} four days from now * {{ja-l|今朝|けさ|kesa}}: this morning * {{ja-l|今晩|こんばん|konban}}: this evening * {{ja-l|今夜|こんや|kon'ya}}: tonight ===Manlalar=== <references/> 9o4luz2lk2rgp2uq2fo76c06ip7o960 628913 628911 2024-11-06T16:16:24Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628913 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=jīnrì |c=gam1 jat6 |c-t=gim1 ngit4 |g='jin1 nyit6 |h=pfs=kîm-ngit |j=jing1 zeng1 |mn=zz,kh:kim-ji̍t/xm,qz,tp:kim-li̍t |mn-t=gim1 rig8/gim1 rêg8 |mn-t_note=gim1 rêg8 - Jieyang |x=jin1 r6/jin1 nyi6 |x_note=jin1 r6 - vernacular; jin1 nyi6 - literary |cat=n }} {{zh-ism}} # [[bugun]]; [[hozir]] # Hozirgi kunda ====Sinonimlari==== * [[今天]] {{-ja-}} {{ja-kanjitab|sort=きょう|yomi=irr}} {{ja-ism|きょう|hhira=けふ}} # [[bugun]] #* '''712''', ''[[w:Kojiki|Kojiki]]'' (poem #102)<ref>{{R:Kodai Kayōshū}}</ref> #*: 毛毛志紀能 淤富美夜比登波 宇豆良登理 比禮登理加氣弖 麻那婆志良 袁由岐阿閇 爾波須受米 宇受須麻理韋弖 '''祁布'''母加母 佐加美豆久良斯 多加比加流 比能美夜比登 許登能 加多理碁登母 許袁婆 #* 905 [[w:Kokin Wakashū|Kokin Wakashū]] (poem #20)<ref>{{keltiraman-kitob |last=Kojima |first=Noriyuki |coauthors=Arai Eizō |title=Shin Nihon Koten Bungaku Taikei 5: [[w:Kokin Wakashū|Kokin Wakashū]] |publisher=[[w:Iwanami Shoten Publishing|Iwanami Shoten]] |date=1989 |origyear=905 |language=Yaponcha |isbn=4-00-240005-0 }}</ref> #*: 梓弓をして春雨'''けふ'''降りぬあすさへ降らば若菜つみてん =====Sinonimlari===== * [[本日]] ([[ほんじつ]]) =====Boshiga shartlari===== * {{ja-l|今日は|こんにちは|konnichi wa}}: {{l|en|good day}} * {{ja-l|今日様|こんにちさま|konnichi-sama}}: {{qualifier|{{l|en|poetic}} {{l|en|honorific}}}} the {{l|en|sun}} * {{ja-l|今日的|こんにちてき|konnichiteki}}: {{l|en|modern}}, {{l|en|current}} {{ja-kanjitab|こん|yomi=o|じつ}} {{ja-ism|こんじつ}} # [[bugun]], bu kun # Hozirgi kunda =====Shartlarini muvofiqlashtirish===== * {{ja-l|一昨々日}} ({{ja-l|さきおととい}}, {{ja-l|||saki ototoi}}; {{ja-l|さきおとつい}}, {{ja-l|||saki ototsui}}; {{ja-l|いっさくさくじつ}}, {{ja-l|||issaku sakujitsu}}): three days ago * {{ja-l|一昨日|おととい|ototoi}}: the [[day before yesterday]], two days ago * {{ja-l|昨日|きのう|kinō}}: [[yesterday]] * {{ja-l|明日}} ({{ja-l|あした}}, {{ja-l|||ashita}}; {{ja-l|あす}}, {{ja-l|||asu}}): [[tomorrow]] * {{ja-l|明後日|あさって|asatte}}: the [[day after tomorrow]], two days from now * {{ja-l|明々後日|しあさって|shiasatte}}: three days from now * {{ja-l|弥の明後日|やのあさって|ya no asatte}}: three days from now; {{qualifier|dialectal}} four days from now * {{ja-l|今朝|けさ|kesa}}: this morning * {{ja-l|今晩|こんばん|konban}}: this evening * {{ja-l|今夜|こんや|kon'ya}}: tonight ===Manlalar=== <references/> 7cw6j4wvbhcdcw5ks4x06dgb65rl4ky ノルウェー語 0 14813 628885 548952 2024-11-06T15:08:14Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628885 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|ご|sort=ノルウェーご}} {{ja-adj|ノルウェー-ご}} *[[norveg]] tili ===Etimologiya=== {{suffiks|ノルウェー|語|lang=ja|t2=language|sort=のるうぇえご}} pp5v1dumhapcahwddp9tq8wos51t34f Übernahme 0 15141 629019 484646 2024-11-07T09:59:03Z Jeuwre 9099 talaffuz 629019 wikitext text/x-wiki {{-de-}} [[gulli]], [[ola]] ===Talaffuz=== * {{IPA|[ˈyːbɐˌnaːmə]|lang=de}} * {{audio|De-Übernahme.ogg|audio|lang=de}} nhn4n0jsa1h02fsoqqudmtjw1gqeuyh befahm 0 16328 628856 619754 2024-11-06T14:17:10Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628856 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''be-fahm''' == Aytilishi == == Etimologiyasi == {{OʻTEL|III|'''BEFAHM''' Bu sifat 'yoʻk' maʼnosini ifodalaydigan tojikcha be- old Shimchasini ({{ТжРС}}, 544) 'kishining tushunish, idrok qilish kobiliyati' 39 maʼnosini anglatadigan arabcha fahm otiga (ARS, 611) qoʻshib hosil qilingan ({{ТжРС}}, 66). Befahm sifati oʻzbek tilida 'tezda anglab, tushunavermaydigan' maʼnosini anglatadi ({{OʻTIL}}, I, 107). Bu sifatdan oʻzbek tilida befahmlik oti yasalgan.}} be.. + fahm == Maʼnoviy xususiyatlari == === Maʼnosi === Narsa-hodisani tezda fahmlay olmaydigan, uncha-munchaga farosati yetmaydigan, kaltafahm, fahmsiz. {{misol|{{ajrat|Befahm}} kishi. {{ajrat|Befahm}}ning dardi oʻziga yuk.}} :Maqol. n{{misol| Yoʻq, bungahayot emas.. {{ajrat|befahm}}, yen-giltak Zaynabning oʻzi aybdor.}} S. Zunnunova, Koʻk chiroqlar. === Antonimlari === {{OʻTIL|БЕФАҲМ}} == Tarjimalari == {{uz-adj}} ===Tillar=== *{{tr}}: [[anlayışsız]] {{OʻTIL}} {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = <b>befahm<br /> </b>[[непонятливый]], [[несообразительный]], [[бестолковый]]; [[тупой]].<br /> }} rgtfd10jrxpdeijywrmovxqjlsvh3fi ahdlashmoq 0 16531 628855 556905 2024-11-06T14:16:30Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628855 wikitext text/x-wiki = {{-uz-}} = <!-- AHDLASHMOQ 1 Oʻzaro qatʼiy vaʼda bermoq; vaʼdalashmoq. Jon, Polvon ogʻa, meni qumgami, dashtgami olib keting. [Polvon:] Sevganim bor, bika, ahdlashganmiz. J. Sharipov, Xorazm. 2 rayem. Oʻzaro shartnoma tuzmoq, bitimga kelishmoq. Oʻzaro foydali hamkorlik toʻgʻrisida dastlabki ahdlashuvga erishildi. Gazetadan. --> == Morfologik va sintaktik xususiyatlari == '''ahd-lash-moq''' == Aytilishi == == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === : # Oʻzaro qatʼiy vaʼda bermoq; vaʼdalashmoq. {{misol|Jon, Polvon ogʻa, meni qumgami, dashtgami olib keting. [Polvon:] Sevganim bor, bika, {{ajrat|ahdlash}}ganmiz. |[[w:J. Sharipov|J. Sharipov]]|Xorazm}}. # ''rayem. ''Oʻzaro shartnoma tuzmoq, bitimga kelishmoq. {{misol|Oʻzaro foydali hamkorlik toʻgʻrisida dastlabki {{ajrat|ahdlash}}uvgaerishildi. |[[w:Gazetadan|Gazetadan]]}}. === Sinonimlari === === Antonimlari === {{OʻTIL}} {{uz-verb}} *{{tr}}: [[mutabık kalmak]], [[anlaşmak]] {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = <b>[[ahdlashmoq]]</br> 1 </b>[[уговариваться]]; [[договариваться]]; [[уславливаться]]; [[заключать]] [[соглашение]];</br> <b>2 </b>[[принимать]] [[совместное]] [[решение]].</br> }} idf1dr5yreavd0q6kd1le5kmnzk4r72 choʻqinmoq 0 16686 628868 619899 2024-11-06T14:42:22Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628868 wikitext text/x-wiki = {{-uz-}} = == choʻqinmoq I == === Morfologik va sintaktik xususiyatlari === '''choʻ-qin-moq''' === Maʼnoviy xususiyatlari === ==== Maʼnosi ==== ''' 1 '''{{din.|uz}} Qoʻl uchini pesho-nasiga va ikki yelkasiga keltirib ibodat qilmoq, xudoga sigʻinmoq (xristianlarda); xristian diniga kirmoq. ''-Ha, Abjal, choʻ-qindingmi, shapkani qanchaga olding?! — de-dim.'' A. Qodiriy, Kichik asarlar. 2 Umuman, ibodat, sajda qilmoq, si-gʻinmoq, topinmoq. {{misol|Butga {{ajrat|choʻqin}}moq. Olovga {{ajrat|choʻqin}}moq.}} m ''Barimiz oʻz tilimizda choʻqi-nib bordik, Maskovdan to Berlingacha soʻki-nib bordik.'' M. Yusuf. '''3 '''''koʻchma salb.'' Qullarcha sajda qilmoq, sigʻinmoq, topinmoq. {{misol|Pulga {{ajrat|choʻqin}}adigan odam.}} == choʻqinmoq II == === Morfologik va sintaktik xususiyatlari === '''choʻ-qin-moq''' === Maʼnoviy xususiyatlari === ==== Maʼnosi ==== : Choʻqimoq 1, 3 fl. oʻzl. n. ''-Anovi Musulmonqul boʻlmasa, boshqa ''''AjIum-''{{misol|qul bosh koʻtarishi aniq! — dedi qushbegi va dasturxondan {{ajrat|choʻqin}}ib davom etdi.|[[w:A. Qodiriy|A. Qodiriy]]|Oʻtgan kunlar}}. {{misol|Toʻrqovoq ichida tul-lak ham qoqindi, {{ajrat|choʻqin}}di, sayrab bir nafas. |[[w:Gʻ. Gʻulom|Gʻ. Gʻulom]]}}. ==== Antonimlari ==== {{OʻTIL|ЧЎҚИНМОҚ}} === Tarjimalari === {{uz-verb}} '''choʻqinmoq''' *{{az}}: [[vaftiz]] {{OʻTIL}} {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''choʻqinmoq I'''<br /> '''1 '''[[креститься]];<br /> '''2 '''[[принимать]] [[крещение]];<br /> '''3 '''{{izoh|перен. неодобр. }}[[молиться]] ({{izoh|на кого-что-л}}.), [[поклониться]] ({{izoh|кому-чему-л}}.), [[преклоняться]] ({{izoh|перед кем-чем-л}}.).<br /> <br /> '''choʻqinmoq II'''<br /> {{izoh|возвр. от {{tarjmisoli|}}choʻqimoq; lagandan ~ }} взять нехотя щепотку ({{izoh|еды}}) с блюда; '''kaklik choʻqindi '''кеклик клюнул ({{izoh|или }}поклевал).<br /> }} bauq2su1jp9rb3a9hjzda9uwz6ggmei beparvolik 0 16713 628857 559820 2024-11-06T14:17:40Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628857 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''be-par-vo-lik''' == Aytilishi == == Etimologiyasi == {{OʻTEL|III|'''BEPARVOLIK''' h. beparvo}} == Maʼnoviy xususiyatlari == === Maʼnosi === :Eʼtiborsizlik, hafsa-lasizlik, begʻamlik, loqaydlik.{{misol| Nuri bunday gaplarni {{ajrat|beparvolik}} bilan eshitishga urinib boqardi.}} Oybek, Tanlangan asarlar. {{misol|Nafratni sir tutish oson, sevgini yashirsa boʻladi, {{ajrat|beparvolik}}ni esa saqlash juda ham mushkul.}} "Aql-aqldan quvvat oladi". === Antonimlari === {{OʻTIL|БЕПАРВОЛИК}} == Tarjimalari == {{uz-adj}} {{-trans-|Sifat| *{{az}}: [[laqeydlik]] *{{it}}: [[indifferenza]] *{{en}}: [[nonchalance]] *{{ru}}: [[признает]] (priznayet) *{{tr}}: [[umursamazlık]] |}} {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = <b>beparvolik<br /> 1 </b>[[беспечность]], [[беззаботность]];<br /> '''2 '''[[нерадивость]], [[невнимательность]], [[небрежность]], [[халатность]];<br /> '''3 '''[[равнодушие]], [[безразличие]], [[безучастность]]; [[пассивность]], [[индифферентность]]; {{tarjmisoli|beparvolik bilan }} 1) беспечно, беззаботно; 2) нерадиво, халатно; 3) равнодушно, безразлично, безучастно;{{tarjmisoli| beparvolik qilmoq }} проявлять беспечность, проявлять халатность, равнодушие.<br /> }} h5zewlca2hiy6xb3pq45n44r60vqd49 Andoza:Tarjimalar 10 17864 629015 628809 2024-11-07T09:04:49Z Humoyun Qodirov 6131 [[Special:Contributions/Dalmopereirasilva|Dalmopereirasilva]] ([[User talk:Dalmopereirasilva|munozara]]) tomonidan qilingan [[Special:Diff/628809|628809]]-sonli tahrir qaytarildi 629015 wikitext text/x-wiki <includeonly><div class="multicol" style="-moz-column-count:2; -webkit-column-count:2; column-count:2; font-size: 95%;"> {{#invoke:tili|list|demo={{{demo|}}}|tur={{{tur|}}}|ikkilik={{{ikkilik|}}}}}</div> {{#if:{{{andoza-tur|}}}|{{template other|[[Turkum:Vikilugʻat:Andozalar:Rasmiylashtirish|{{PAGENAME}}]]}}}}</includeonly><noinclude> {{doc}} [[Turkum:Vikilugʻat:Andozalar:Rasmiylashtirish|{{PAGENAME}}]] [[en:Wiktionary:List_of_languages]] [[is:Snið:þýðingar]] [[uk:Шаблон:переклад]] [[Turkum:Vikilugʻat:Andozalar]] </noinclude> ooczje56nc7nsljpmazadb3ws12yf7s 629016 629015 2024-11-07T09:05:05Z Humoyun Qodirov 6131 [[Special:Contributions/Dalmopereirasilva|Dalmopereirasilva]] ([[User talk:Dalmopereirasilva|munozara]]) tomonidan qilingan [[Special:Diff/628808|628808]]-sonli tahrir qaytarildi 629016 wikitext text/x-wiki <includeonly><div class="multicol" style="-moz-column-count:2; -webkit-column-count:2; column-count:2; font-size: 95%;"> {{#invoke:tillar|list|demo={{{demo|}}}|tur={{{tur|}}}|ikkilik={{{ikkilik|}}}}}</div> {{#if:{{{andoza-tur|}}}|{{template other|[[Turkum:Vikilugʻat:Andozalar:Rasmiylashtirish|{{PAGENAME}}]]}}}}</includeonly><noinclude> {{doc}} [[Turkum:Vikilugʻat:Andozalar:Rasmiylashtirish|{{PAGENAME}}]] [[en:Wiktionary:List_of_languages]] [[is:Snið:þýðingar]] [[uk:Шаблон:переклад]] [[Turkum:Vikilugʻat:Andozalar]] </noinclude> t015trawbm2nzfs4pvq0rnttc30kc90 ウズベク語 0 28792 629008 548892 2024-11-06T18:42:01Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629008 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|ご|sort=ウズベクご}} {{ja-adj|ウズベクご}} #[[oʻzbekcha]] #[[oʻzbek]] tili j0hv7jkmysiunvd02cf58fxns0cokgu Andoza:fr-ism 10 29045 628956 287114 2024-11-06T17:27:12Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE Replaced content with "{{#invoke:fr-headword|show|ot}}<!-- --><noinclude>{{documentation}}</noinclude>" 628956 wikitext text/x-wiki {{#invoke:fr-headword|show|ot}}<!-- --><noinclude>{{documentation}}</noinclude> swsdrm04fzcv4mdhg4kurmwz17v8jgw 628959 628956 2024-11-06T17:30:27Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628959 wikitext text/x-wiki == Ot == {{PAGENAME}} <includeonly>[[Turkum:Fransuzchada ot soʻzlar]]</includeonly> 18xn708kyfr395ilrvio36vmh2dzhu3 Andoza:zh-ism 10 30978 628968 460908 2024-11-06T17:47:39Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628968 wikitext text/x-wiki == Ot == {{PAGENAME}} <includeonly>[[Turkum:Xitoychada ot soʻzlar]]</includeonly> nikfsl02vh4j6gzzmmftpj7f4pw7uir Modul:links 828 31257 628898 628742 2024-11-06T15:51:13Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628898 Scribunto text/plain local export = {} --[=[ [[Unsupported titles]], pages with high memory usage, extraction modules and part-of-speech names are listed at [[Module:links/data]]. Other modules used: [[Module:script utilities]] [[Module:scripts]] [[Module:tili]] and its submodules [[Module:gender and number]] [[Module:debug/track]] ]=] local m_str_utils = require("Module:string utilities") local pron_qualifier_module = "Module:pron qualifier" local anchor_encode = require("Module:fun").memoize(mw.uri.anchorEncode, true) local concat = table.concat local decode_entities = m_str_utils.decode_entities local decode_uri = m_str_utils.decode_uri local find = string.find local encode_entities = require("Module:string/encode entities") -- Can't yet replace, as the [[Module:string utilities]] version no longer has automatic double-encoding prevention, which requires changes here to account for. local insert = table.insert local ipairs = ipairs local load_data = mw.loadData local match = string.match local new_title = mw.title.new local pairs = pairs local remove = table.remove local shallowcopy = require("Module:table").shallowcopy local split = m_str_utils.split local sub = string.sub local toNFC = mw.ustring.toNFC local tostring = tostring local trim -- defined below local type = type local ulower = m_str_utils.lower local umatch = m_str_utils.match local unstrip = mw.text.unstrip local u = m_str_utils.char local TEMP_UNDERSCORE = u(0xFFF0) local function track(page, code) local tracking_page = "links/" .. page if code then require("Module:debug/track"){tracking_page, tracking_page .. "/" .. code} else require("Module:debug/track")(tracking_page) end return true end do local _trim = m_str_utils.trim -- Unconditionally trimmed charset. local always_trim = "\194\128-\194\159" .. -- U+0080-009F (C1 control characters) "\194\173" .. -- U+00AD (soft hyphen) "\226\128\170-\226\128\174" .. -- U+202A-202E (directionality formatting characters) "\226\129\166-\226\129\169" -- U+2066-2069 (directionality formatting characters) -- Standard trimmed charset. local standard_trim = "%s" .. -- (default whitespace charset) "\226\128\139-\226\128\141" .. -- U+200B-200D (zero-width spaces) always_trim -- If there are non-whitespace characters, trim all characters in `standard_trim`. -- Otherwise, only trim the characters in `always_trim`. trim = function(text) if text == "" then return text end local trimmed = _trim(text, standard_trim) if trimmed ~= "" then return trimmed end return _trim(text, always_trim) end end local function escape(text, str) local rep repeat text, rep = text:gsub("\\\\(\\*" .. str .. ")", "\5%1") until rep == 0 return (text:gsub("\\" .. str, "\6")) end local function unescape(text, str) return (text :gsub("\5", "\\") :gsub("\6", str)) end -- Remove bold, italics, soft hyphens, strip markers and HTML tags. local function remove_formatting(str) str = str :gsub("('*)'''(.-'*)'''", "%1%2") :gsub("('*)''(.-'*)''", "%1%2") :gsub("­", "") return (unstrip(str) :gsub("<[^<>]+>", "")) end --[==[Takes an input and splits on a double slash (taking account of escaping backslashes).]==] function export.split_on_slashes(text) text = split(escape(text, "//"), "//", true) or {} for i, v in ipairs(text) do text[i] = unescape(v, "//") if v == "" then text[i] = false end end return text end -- Does the work of export.get_fragment, but can be called directly to avoid unnecessary checks for embedded links. local function get_fragment(text) text = escape(text, "#") -- Replace numeric character references with the corresponding character (&#39; → '), -- as they contain #, which causes the numeric character reference to be -- misparsed (wa'a → wa&#39;a → pagename wa&, fragment 39;a). text = decode_entities(text) local target, fragment = text:match("^(..-)#(.+)$") target = target or text target = unescape(target, "#") fragment = fragment and unescape(fragment, "#") return target, fragment end --[==[Takes a link target and outputs the actual target and the fragment (if any).]==] function export.get_fragment(text) -- If there are no embedded links, process input. local open = find(text, "[[", 1, true) if not open then return get_fragment(text) end local close = find(text, "]]", open + 2, true) if not close then return get_fragment(text) -- If there is one, but it's redundant (i.e. encloses everything with no pipe), remove and process. elseif open == 1 and close == #text - 1 and not find(text, "|", 3, true) then return get_fragment(sub(text, 3, -3)) end -- Otherwise, return the input. return text end local pos_tags function export.get_link_page(target, lang, sc, plain) if not target then return nil end target = remove_formatting(target) -- Check if the target is an interwiki link. if target:match(":") and target ~= ":" then -- If this is an a link to another namespace or an interwiki link, ensure there's an initial colon and then return what we have (so that it works as a conventional link, and doesn't do anything weird like add the term to a category.) local prefix = target:gsub("^:*(.-):.*", ulower) if ( load_data("Module:data/namespaces")[prefix] or load_data("Module:data/interwikis")[prefix] ) then return ":" .. target:gsub("^:+", ""), nil, {} end -- Convert any escaped colons target = target:gsub("\\:", ":") end -- Check if the term is reconstructed and remove any asterisk. Otherwise, handle the escapes. local reconstructed, escaped if not plain then target, reconstructed = target:gsub("^%*(.)", "%1") end target, escaped = target:gsub("^(\\-)\\%*", "%1*") if not require("Module:utilities").check_object("script", true, sc) or sc:getCode() == "None" then sc = lang:findBestScript(target) end -- Remove carets if they are used to capitalize parts of transliterations (unless they have been escaped). if (not sc:hasCapitalization()) and sc:isTransliterated() and target:match("%^") then target = escape(target, "^") :gsub("%^", "") target = unescape(target, "^") end -- Get the entry name for the language. target = lang:makeEntryName(target, sc) -- If the link contains unexpanded template parameters, then don't create a link. if target:find("{{{") then return nil end if target:sub(1, 1) == "/" then return ":" .. target elseif target:find("^Reconstruction:") then return target -- Link to appendix for reconstructed terms and terms in appendix-only languages. Plain links interpret * literally, however. elseif reconstructed == 1 then if lang:getFullCode() == "und" then return nil else target = "Reconstruction:" .. lang:getFullName() .. "/" .. target end -- Reconstructed languages and substrates require an initial *. elseif lang:hasType("reconstructed") or lang:getFamilyCode() == "qfa-sub" then local check = target:match("^:*([^:]*):") check = check and ulower(check) if ( load_data("Module:data/namespaces")[check] or load_data("Module:data/interwikis")[check] ) then return target else error("The specified language " .. lang:getCanonicalName() .. " is unattested, while the given term does not begin with '*' to indicate that it is reconstructed.") end elseif lang:hasType("appendix-constructed") then target = "Appendix:" .. lang:getFullName() .. "/" .. target end return target, escaped > 0 end -- Make a link from a given link's parts local function make_link(link, lang, sc, id, isolated, plain, cats, no_alt_ast) -- Convert percent encoding to plaintext. link.target = decode_uri(link.target, "PATH") link.fragment = link.fragment and decode_uri(link.fragment, "PATH") -- Find fragments (if one isn't already set). -- Prevents {{l|en|word#Etymology 2|word}} from linking to [[word#Etymology 2#English]]. -- # can be escaped as \#. if link.target and link.fragment == nil then link.target, link.fragment = get_fragment(link.target) end -- Create a default display form. local auto_display = link.target -- Process the target local escaped link.target, escaped = export.get_link_page(link.target, lang, sc, plain) -- If the display is the target and the reconstruction * has been escaped, remove the escaping backslash. if escaped then auto_display = auto_display:gsub("\\([^\\]*%*)", "%1", 1) end -- Process the display form. if link.display then local orig_display = link.display link.display = lang:makeDisplayText(link.display, sc, true) if cats then auto_display = lang:makeDisplayText(auto_display, sc) -- If the alt text is the same as what would have been automatically generated, then the alt parameter is redundant (e.g. {{l|en|foo|foo}}, {{l|en|w:foo|foo}}, but not {{l|en|w:foo|w:foo}}). -- If they're different, but the alt text could have been entered as the term parameter without it affecting the target page, then the target parameter is redundant (e.g. {{l|ru|фу|фу́}}). -- If `no_alt_ast` is true, use pcall to catch the error which will be thrown if this is a reconstructed lang and the alt text doesn't have *. if link.display == auto_display then insert(cats, lang:getFullName() .. " links with redundant alt parameters") else local ok, check if no_alt_ast then ok, check = pcall(export.get_link_page, orig_display, lang, sc, plain) else ok = true check = export.get_link_page(orig_display, lang, sc, plain) end if ok and link.target == check then insert(cats, lang:getFullName() .. " links with redundant target parameters") end end end else link.display = lang:makeDisplayText(auto_display, sc) end if not link.target then return link.display end -- If the target is the same as the current page, there is no sense id -- and either the language code is "und" or the current L2 is the current -- language then return a "self-link" like the software does. if link.target == mw.title.getCurrentTitle().prefixedText then local fragment, current_L2 = link.fragment, require("Module:pages").get_current_L2() if ( fragment and fragment == current_L2 or not (id or fragment) and (lang:getFullCode() == "und" or lang:getFullName() == current_L2) ) then return tostring(mw.html.create("strong") :addClass("selflink") :wikitext(link.display)) end end -- Add fragment. Do not add a section link to "Undetermined", as such sections do not exist and are invalid. -- TabbedLanguages handles links without a section by linking to the "last visited" section, but adding -- "Undetermined" would break that feature. For localized prefixes that make syntax error, please use the -- format: ["xyz"] = true. local prefix = link.target:match("^:*([^:]+):") prefix = prefix and ulower(prefix) if prefix ~= "category" and not (prefix and load_data("Module:data/interwikis")[prefix]) then if (link.fragment or link.target:sub(-1) == "#") and not plain then track("fragment", lang:getFullCode()) if cats then insert(cats, lang:getFullName() .. " links with manual fragments") end end if not link.fragment then if id then link.fragment = lang:getFullCode() == "und" and anchor_encode(id) or require("Module:anchors").language_anchor(lang, id) elseif lang:getFullCode() ~= "und" and not (link.target:find("^Appendix:") or link.target:find("^Reconstruction:")) then link.fragment = anchor_encode(lang:getFullName()) end end end -- Put inward-facing square brackets around a link to isolated spacing character(s). if isolated and #link.display > 0 and not umatch(decode_entities(link.display), "%S") then link.display = "&#x5D;" .. link.display .. "&#x5B;" end link.target = link.target:gsub("^(:?)(.*)", function(m1, m2) return m1 .. encode_entities(m2, "#%&+/:<=>@[\\]_{|}") end) link.fragment = link.fragment and encode_entities(remove_formatting(link.fragment), "#%&+/:<=>@[\\]_{|}") return "[[" .. link.target .. (link.fragment and "#" .. link.fragment or "") .. "|" .. link.display .. "]]" end -- Split a link into its parts local function parse_link(linktext) local link = {target = linktext} local target = link.target link.target, link.display = target:match("^(..-)|(.+)$") if not link.target then link.target = target link.display = target end -- There's no point in processing these, as they aren't real links. local target_lower = link.target:lower() for _, false_positive in ipairs({"category", "cat", "file", "image"}) do if target_lower:match("^" .. false_positive .. ":") then return nil end end link.display = decode_entities(link.display) link.target, link.fragment = get_fragment(link.target) -- So that make_link does not look for a fragment again. if not link.fragment then link.fragment = false end return link end -- Find embedded links and ensure they link to the correct section. local function process_embedded_links(text, data, plain) -- Process the non-linked text. text = data.lang:makeDisplayText(text, data.sc[1], true) -- If the text begins with * and another character, then act as if each link begins with *. However, don't do this if the * is contained within a link at the start. E.g. `|*[[foo]]` would set all_reconstructed to true, while `|[[*foo]]` would not. local all_reconstructed = false if not plain then -- anchor_encode removes links etc. if anchor_encode(text):sub(1, 1) == "*" then all_reconstructed = true end -- Otherwise, handle any escapes. text = text:gsub("^(\\-)\\%*", "%1*") end if data.alt then track("alt-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored alt:", data.alt, "lang:", data.lang:getFullCode()) if data.cats then insert(data.cats, data.lang:getFullName() .. " links with ignored alt parameters") end end if data.id then track("id-ignored") mw.log("(from Module:links)", "text with embedded wikilinks:", text, "ignored id:", data.id, "lang:", data.lang:getFullCode()) if data.cats then insert(data.cats, data.lang:getFullName() .. " links with ignored id parameters") end end local function process_link(space1, linktext, space2) local capture = "[[" .. linktext .. "]]" local link = parse_link(linktext) --Return unprocessed false positives untouched (e.g. categories). if not link then return capture end if all_reconstructed and not link.target:find("^%*") then link.target = "*" .. link.target end linktext = make_link(link, data.lang, data.sc, data.id, false, plain) :gsub("^%[%[", "\3") :gsub("%]%]$", "\4") return space1 .. linktext .. space2 end -- Use chars 1 and 2 as temporary substitutions, so that we can use charsets. These are converted to chars 3 and 4 by process_link, which means we can convert any remaining chars 1 and 2 back to square brackets (i.e. those not part of a link). text = text :gsub("%[%[", "\1") :gsub("%]%]", "\2") -- If the script uses ^ to capitalize transliterations, make sure that any carets preceding links are on the inside, so that they get processed with the following text. if text:match("%^") and not data.sc:hasCapitalization() and data.sc:isTransliterated() then text = escape(text, "^") :gsub("%^\1", "\1%^") text = unescape(text, "^") end text = text:gsub("\1(%s*)([^\1\2]-)(%s*)\2", process_link) -- Remove the extra * at the beginning of a language link if it's immediately followed by a link whose display begins with * too. if all_reconstructed then text = text:gsub("^%*\3([^|\1-\4]+)|%*", "\3%1|*") end return (text :gsub("[\1\3]", "[[") :gsub("[\2\4]", "]]")) end local function handle_redundant_wikilink(data) local text = data.term if ( -- Filters out anything but "[[...]]" with no intermediate "[[" or "]]". not match(text, "^()%[%[") or -- Faster than sub(text, 1, 2) ~= "[[". find(text, "[[", 3, true) or find(text, "]]", 3, true) ~= #text - 1 ) then return end text = sub(text, 3, -3) -- A pipe at the start of an embedded link is treated as part of the target (e.g. [[|foo]]: "|foo"). -- FIXME: This should be handled via a proper escape sequence. local pipe = find(text, "|", 2, true) local term = pipe and sub(text, 1, pipe - 1) or text local title = new_title(term) if title then local namespace = title.namespace -- Categories and files are false-positives. if namespace == 6 or namespace == 14 then return end end data.term, data.alt = term, pipe and pipe ~= #text and sub(text, pipe + 1) or nil if data.cats then insert(data.cats, data.lang:getFullName() .. " links with redundant wikilinks") end end --[==[Creates a basic link to the given term. It links to the language section (such as <code>==English==</code>), but it does not add language and script wrappers, so any code that uses this function should call the <code class="n">[[Module:script utilities#tag_text|tag_text]]</code> from [[Module:script utilities]] to add such wrappers itself at some point. The first argument, <code class="n">data</code>, may contain the following items, a subset of the items used in the <code class="n">data</code> argument of <code class="n">full_link</code>. If any other items are included, they are ignored. { { term = entry_to_link_to, alt = link_text_or_displayed_text, lang = language_object, id = sense_id, } } ; <code class="n">term</code> : Text to turn into a link. This is generally the name of a page. The text can contain wikilinks already embedded in it. These are processed individually just like a single link would be. The <code class="n">alt</code> argument is ignored in this case. ; <code class="n">alt</code> (''optional'') : The alternative display for the link, if different from the linked page. If this is {{code|lua|nil}}, the <code class="n">text</code> argument is used instead (much like regular wikilinks). If <code class="n">text</code> contains wikilinks in it, this argument is ignored and has no effect. (Links in which the alt is ignored are tracked with the tracking template {{whatlinkshere|tracking=links/alt-ignored}}.) ; <code class="n">lang</code> : The [[Module:tili#Language objects|language object]] for the term being linked. If this argument is defined, the function will determine the language's canonical name (see [[Template:language data documentation]]), and point the link or links in the <code class="n">term</code> to the language's section of an entry, or to a language-specific senseid if the <code class="n">id</code> argument is defined. ; <code class="n">id</code> (''optional'') : Sense id string. If this argument is defined, the link will point to a language-specific sense id ({{ll|en|identifier|id=HTML}}) created by the template {{temp|senseid}}. A sense id consists of the language's canonical name, a hyphen (<code>-</code>), and the string that was supplied as the <code class="n">id</code> argument. This is useful when a term has more than one sense in a language. If the <code class="n">term</code> argument contains wikilinks, this argument is ignored. (Links in which the sense id is ignored are tracked with the tracking template {{whatlinkshere|tracking=links/id-ignored}}.) The second argument is as follows: ; <code class="n">allow_self_link</code> : If {{code|lua|true}}, the function will also generate links to the current page. The default ({{code|lua|false}}) will not generate a link but generate a bolded "self link" instead. The following special options are processed for each link (both simple text and with embedded wikilinks): * The target page name will be processed to generate the correct entry name. This is done by the [[Module:tili#makeEntryName|makeEntryName]] function in [[Module:tili]], using the <code class="n">entry_name</code> replacements in the language's data file (see [[Template:language data documentation]] for more information). This function is generally used to automatically strip dictionary-only diacritics that are not part of the normal written form of a language. * If the text starts with <code class="n">*</code>, then the term is considered a reconstructed term, and a link to the Reconstruction: namespace will be created. If the text contains embedded wikilinks, then <code class="n">*</code> is automatically applied to each one individually, while preserving the displayed form of each link as it was given. This allows linking to phrases containing multiple reconstructed terms, while only showing the * once at the beginning. * If the text starts with <code class="n">:</code>, then the link is treated as "raw" and the above steps are skipped. This can be used in rare cases where the page name begins with <code class="n">*</code> or if diacritics should not be stripped. For example: ** {{temp|l|en|*nix}} links to the nonexistent page [[Reconstruction:English/nix]] (<code class="n">*</code> is interpreted as a reconstruction), but {{temp|l|en|:*nix}} links to [[*nix]]. ** {{temp|l|sl|Franche-Comté}} links to the nonexistent page [[Franche-Comte]] (<code>é</code> is converted to <code>e</code> by <code class="n">makeEntryName</code>), but {{temp|l|sl|:Franche-Comté}} links to [[Franche-Comté]].]==] function export.language_link(data) if type(data) ~= "table" then error("The first argument to the function language_link must be a table. See Module:links/documentation for more information.") -- Do we have a redundant wikilink? If so, remove it. elseif data.term then handle_redundant_wikilink(data) -- Nothing to process, return nil. elseif not data.alt then return nil end local text = data.term -- If we don't have a script, get one. if not data.sc then data.sc = data.lang:findBestScript(data.alt or text) end -- Do we have embedded wikilinks? If so, they need to be processed individually. if text then local open = find(text, "[[", 1, true) if open and find(text, "]]", open + 2, true) then return process_embedded_links(text, data) end end -- If not, make a link using the parameters. text = text and trim(text) data.alt = data.alt and trim(data.alt) return make_link({target = text, display = data.alt, fragment = data.fragment}, data.lang, data.sc, data.id, true, nil, data.cats, data.no_alt_ast) end function export.plain_link(data) if type(data) ~= "table" then error("The first argument to the function language_link must be a table. See Module:links/documentation for more information.") -- Do we have a redundant wikilink? If so, remove it. elseif data.term then handle_redundant_wikilink(data) -- Only have alt (or nothing), just return it. else return data.alt end -- Make sure the language is "und". local lang = data.lang if not lang or lang:getCode() ~= "und" then data.lang = require("Module:tili").getByCode("und") end local text = data.term -- If we don't have a script, get one. if not data.sc then data.sc = require("Module:scripts").findBestScriptWithoutLang(data.alt or text) end -- Do we have embedded wikilinks? If so, they need to be processed individually. local open = find(text, "[[", 1, true) if open and find(text, "]]", open + 2, true) then return process_embedded_links(text, data) end -- If not, make a link using the parameters. text = trim(text) data.alt = data.alt and trim(data.alt) return make_link({target = text, display = data.alt, fragment = data.fragment}, data.lang, data.sc, data.id, true, true) end --[==[Replace any links with links to the correct section, but don't link the whole text if no embedded links are found. Returns the display text form.]==] function export.embedded_language_links(data) if type(data) ~= "table" then error("The first argument to the function language_link must be a table. See Module:links/documentation for more information.") end local text = data.term -- If we don't have a script, get one. if not data.sc then data.sc = data.lang:findBestScript(text) end -- Do we have embedded wikilinks? If so, they need to be processed individually. local open = find(text, "[[", 1, true) if open and find(text, "]]", open + 2, true) then return process_embedded_links(text, data) end -- If not, return the display text. text = trim(text) -- FIXME: Double-escape any percent-signs, because we don't want to treat non-linked text as having percent-encoded characters. This is a hack: percent-decoding should come out of [[Module:tili]] and only dealt with in this module, as it's specific to links. text = text:gsub("%%", "%%25") return (data.lang:makeDisplayText(text, data.sc, true)) end function export.mark(text, item_type, face, lang) local tag = { "", "" } if item_type == "gloss" then tag = { '<span class="mention-gloss-double-quote">“</span><span class="mention-gloss">', '</span><span class="mention-gloss-double-quote">”</span>' } if type(text) == "string" and text:find("^''[^'].*''$") then -- Temporary tracking for mention glosses that are entirely italicized or bolded, which is probably -- wrong. (Note that this will also find bolded mention glosses since they use triple apostrophes.) track("italicized-mention-gloss", lang and lang:getFullCode() or nil) end elseif item_type == "tr" then if face == "term" then tag = { '<span lang="' .. lang:getFullCode() .. '" class="tr mention-tr Latn">', '</span>' } else tag = { '<span lang="' .. lang:getFullCode() .. '" class="tr Latn">', '</span>' } end elseif item_type == "ts" then -- \226\129\160 = word joiner (zero-width non-breaking space) U+2060 tag = { '<span class="ts mention-ts Latn">/\226\129\160', '\226\129\160/</span>' } elseif item_type == "pos" then tag = { '<span class="ann-pos">', '</span>' } elseif item_type == "annotations" then tag = { '<span class="mention-gloss-paren annotation-paren">(</span>', '<span class="mention-gloss-paren annotation-paren">)</span>' } end if type(text) == "string" then return tag[1] .. text .. tag[2] else return "" end end --[==[Formats the annotations that are displayed with a link created by {{code|lua|full_link}}. Annotations are the extra bits of information that are displayed following the linked term, and include things such as gender, transliteration, gloss and so on. * The first argument is a table possessing some or all of the following keys: *:; <code class="n">genders</code> *:: Table containing a list of gender specifications in the style of [[Module:gender and number]]. *:; <code class="n">tr</code> *:: Transliteration. *:; <code class="n">gloss</code> *:: Gloss that translates the term in the link, or gives some other descriptive information. *:; <code class="n">pos</code> *:: Part of speech of the linked term. If the given argument matches one of the templates in [[:Category:Part of speech tags]], then call that to show a part-of-speech tag. Otherwise, just show the given text as it is. *:; <code class="n">lit</code> *:: Literal meaning of the term, if the usual meaning is figurative or idiomatic. *:Any of the above values can be omitted from the <code class="n">info</code> argument. If a completely empty table is given (with no annotations at all), then an empty string is returned. * The second argument is a string. Valid values are listed in [[Module:script utilities/data]] "data.translit" table.]==] function export.format_link_annotations(data, face) local output = {} -- Interwiki link if data.interwiki then insert(output, data.interwiki) end -- Genders if type(data.genders) ~= "table" then data.genders = { data.genders } end if data.genders and #data.genders > 0 then local m_gen = require("Module:gender and number") insert(output, "&nbsp;" .. m_gen.format_list(data.genders, data.lang)) end local annotations = {} -- Transliteration and transcription if data.tr and data.tr[1] or data.ts and data.ts[1] then local kind if face == "term" then kind = face else kind = "default" end if data.tr[1] and data.ts[1] then insert(annotations, require("Module:script utilities").tag_translit(data.tr[1], data.lang, kind) .. " " .. export.mark(data.ts[1], "ts")) elseif data.ts[1] then insert(annotations, export.mark(data.ts[1], "ts")) else insert(annotations, require("Module:script utilities").tag_translit(data.tr[1], data.lang, kind)) end end -- Gloss/translation if data.gloss then insert(annotations, export.mark(data.gloss, "gloss")) end -- Part of speech if data.pos then -- debug category for pos= containing transcriptions if data.pos:find("/[^><]*/") then data.pos = data.pos .. "[[Category:links likely containing transcriptions in pos]]" end pos_tags = pos_tags or load_data("Module:links/data").pos_tags insert(annotations, export.mark(pos_tags[data.pos] or data.pos, "pos")) end -- Literal/sum-of-parts meaning if data.lit then insert(annotations, "literally " .. export.mark(data.lit, "gloss")) end if #annotations > 0 then insert(output, " " .. export.mark(concat(annotations, ", "), "annotations")) end return concat(output) end -- Add any left or right regular or accent qualifiers, labels or references to a formatted term. `data` is the object -- specifying the term, which should optionally contain: -- * a language object in `lang`; required if any accent qualifiers or labels are given; -- * left regular qualifiers in `q` (an array of strings or a single string); an empty array or blank string will be -- ignored; -- * right regular qualifiers in `qq` (an array of strings or a single string); an empty array or blank string will be -- ignored; -- * left accent qualifiers in `a` (an array of strings); an empty array will be ignored; -- * right accent qualifiers in `aa` (an array of strings); an empty array will be ignored; -- * left labels in `l` (an array of strings); an empty array will be ignored; -- * right labels in `ll` (an array of strings); an empty array will be ignored; -- * references in `refs`, an array either of strings (formatted reference text) or objects containing fields `text` -- (formatted reference text) and optionally `name` and/or `group`. -- `formatted` is the formatted version of the term itself. local function add_qualifiers_and_refs_to_term(data, formatted) local q = data.q if type(q) == "string" then q = {q} end local qq = data.qq if type(qq) == "string" then qq = {qq} end if q and q[1] or qq and qq[1] or data.a and data.a[1] or data.aa and data.aa[1] or data.l and data.l[1] or data.ll and data.ll[1] or data.refs and data.refs[1] then formatted = require(pron_qualifier_module).format_qualifiers { lang = data.lang, text = formatted, q = q, qq = qq, a = data.a, aa = data.aa, l = data.l, ll = data.ll, refs = data.refs, } end return formatted end --[==[Creates a full link, with annotations (see <code class="n">[[#format_link_annotations|format_link_annotations]]</code>), in the style of {{temp|l}} or {{temp|m}}. The first argument, <code class="n">data</code>, must be a table. It contains the various elements that can be supplied as parameters to {{temp|l}} or {{temp|m}}: { { term = entry_to_link_to, alt = link_text_or_displayed_text, lang = language_object, sc = script_object, track_sc = boolean, no_nonstandard_sc_cat = boolean, fragment = link_fragment id = sense_id, genders = { "gender1", "gender2", ... }, tr = transliteration, ts = transcription, gloss = gloss, pos = part_of_speech_tag, lit = literal_translation, no_alt_ast = boolean, accel = {accelerated_creation_tags}, interwiki = interwiki, q = { "left_qualifier1", "left_qualifier2", ...} or "left_qualifier", qq = { "right_qualifier1", "right_qualifier2", ...} or "right_qualifier", refs = { "formatted_ref1", "formatted_ref2", ...} or { {text = "text", name = "name", group = "group"}, ... }, } } Any one of the items in the <code class="n">data</code> table may be {{code|lua|nil}}, but an error will be shown if neither <code class="n">term</code> nor <code class="n">alt</code> nor <code class="n">tr</code> is present. Thus, calling {{code|lua|2=full_link{ term = term, lang = lang, sc = sc } }}, where <code class="n">term</code> is an entry name, <code class="n">lang</code> is a [[Module:tili#Language objects|language object]] from [[Module:tili]], and <code class="n">sc</code> is a [[Module:scripts#Script objects|script object]] from [[Module:scripts]], will give a plain link similar to the one produced by the template {{temp|l}}, and calling {{code|lua|2=full_link( { term = term, lang = lang, sc = sc }, "term" )}} will give a link similar to the one produced by the template {{temp|m}}. The function will: * Try to determine the script, based on the characters found in the term or alt argument, if the script was not given. If a script is given and <code class="n">track_sc</code> is {{code|lua|true}}, it will check whether the input script is the same as the one which would have been automatically generated and add the category [[:Category:Terms with redundant script codes]] if yes, or [[:Category:Terms with non-redundant manual script codes]] if no. This should be used when the input script object is directly determined by a template's <code class="n">sc=</code> parameter. * Call <code class="n">[[#language_link|language_link]]</code> on the term or alt forms, to remove diacritics in the page name, process any embedded wikilinks and create links to Reconstruction or Appendix pages when necessary. * Call <code class="n">[[Module:script utilities#tag_text]]</code> to add the appropriate language and script tags to the term, and to italicize terms written in the Latin script if necessary. Accelerated creation tags, as used by [[WT:ACCEL]], are included. * Generate a transliteration, based on the alt or term arguments, if the script is not Latin and no transliteration was provided. * Add the annotations (transliteration, gender, gloss etc.) after the link. * If <code class="n">no_alt_ast</code> is specified, then the alt text does not need to contain an asterisk if the language is reconstructed. This should only be used by modules which really need to allow links to reconstructions that don't display asterisks (e.g. number boxes). * If <code class="n">show_qualifiers</code> is specified, left and right qualifiers and references will be displayed. (This is for compatibility reasons, since a fair amount of code stores qualifiers and/or references in these fields and displays them itself, expecting {{code|lua|full_link()}} to ignore them.]==] function export.full_link(data, face, allow_self_link, show_qualifiers) -- Prevent data from being destructively modified. local data = shallowcopy(data) if type(data) ~= "table" then error("The first argument to the function full_link must be a table. " .. "See Module:links/documentation for more information.") end local terms = {true} -- Generate multiple forms if applicable. for _, param in ipairs{"term", "alt"} do if type(data[param]) == "string" and data[param]:find("//") then data[param] = export.split_on_slashes(data[param]) elseif type(data[param]) == "string" and not (type(data.term) == "string" and data.term:find("//")) then data[param] = data.lang:generateForms(data[param]) else data[param] = {} end end for _, param in ipairs{"sc", "tr", "ts"} do data[param] = {data[param]} end for _, param in ipairs{"term", "alt", "sc", "tr", "ts"} do for i in pairs(data[param]) do terms[i] = true end end -- Create the link local output = {} data.cats = {} local link = "" local annotations for i in ipairs(terms) do -- Is there any text to show? if (data.term[i] or data.alt[i]) then -- Try to detect the script if it was not provided local display_term = data.alt[i] or data.term[i] local best = data.lang:findBestScript(display_term) -- no_nonstandard_sc_cat is intended for use in [[Module:interproject]] if ( not data.no_nonstandard_sc_cat and best:getCode() == "None" and require("Module:scripts").findBestScriptWithoutLang(display_term):getCode() ~= "None" ) then insert(data.cats, data.lang:getFullName() .. " terms in nonstandard scripts") end if not data.sc[i] then data.sc[i] = best -- Track uses of sc parameter. elseif data.track_sc then if data.sc[i]:getCode() == best:getCode() then insert(data.cats, data.lang:getFullName() .. " terms with redundant script codes") else insert(data.cats, data.lang:getFullName() .. " terms with non-redundant manual script codes") end end -- If using a discouraged character sequence, add to maintenance category if data.sc[i]:hasNormalizationFixes() == true then if (data.term[i] and data.sc[i]:fixDiscouragedSequences(toNFC(data.term[i])) ~= toNFC(data.term[i])) or (data.alt[i] and data.sc[i]:fixDiscouragedSequences(toNFC(data.alt[i])) ~= toNFC(data.alt[i])) then insert(data.cats, "Pages using discouraged character sequences") end end local class = "" -- Encode certain characters to avoid various delimiter-related issues at various stages. We need to encode < and > -- because they end up forming part of CSS class names inside of <span ...> and will interfere with finding the end -- of the HTML tag. I first tried converting them to URL encoding, i.e. %3C and %3E; they then appear in the URL as -- %253C and %253E, which get mapped back to %3C and %3E when passed to [[Module:accel]]. But mapping them to &lt; -- and &gt; somehow works magically without any further work; they appear in the URL as < and >, and get passed to -- [[Module:accel]] as < and >. I have no idea who along the chain of calls is doing the encoding and decoding. If -- someone knows, please modify this comment appropriately! local encode_accel_char_map = { ["%"] = ".", [" "] = "_", ["_"] = TEMP_UNDERSCORE, ["<"] = "&lt;", [">"] = "&gt;", } local function encode_accel_param_chars(param) local retval = param:gsub("[% <>_]", encode_accel_char_map) -- discard second return value return retval end local function encode_accel_param(prefix, param) if not param then return "" end if type(param) == "table" then local filled_params = {} -- There may be gaps in the sequence, especially for translit params. local maxindex = 0 for k, v in pairs(param) do if type(k) == "number" and k > maxindex then maxindex = k end end for i=1,maxindex do filled_params[i] = param[i] or "" end -- [[Module:accel]] splits these up again. param = concat(filled_params, "*~!") end -- This is decoded again by [[WT:ACCEL]]. return prefix .. encode_accel_param_chars(param) end if data.accel then local form = data.accel.form and encode_accel_param_chars(data.accel.form) .. "-form-of" or "" local gender = encode_accel_param("gender-", data.accel.gender) local pos = encode_accel_param("pos-", data.accel.pos) local translit = encode_accel_param("transliteration-", data.accel.translit or (data.tr[i] ~= "-" and data.tr[i] or nil)) local target = encode_accel_param("target-", data.accel.target) local lemma = encode_accel_param("origin-", data.accel.lemma) local lemma_translit = encode_accel_param("origin_transliteration-", data.accel.lemma_translit) local no_store = data.accel.no_store and "form-of-nostore" or "" local accel = form .. " " .. gender .. " " .. pos .. " " .. translit .. " " .. target .. " " .. lemma .. " " .. lemma_translit .. " " .. no_store .. " " class = "form-of lang-" .. data.lang:getFullCode() .. " " .. accel end -- Only make a link if the term has been given, otherwise just show the alt text without a link local term_data = { term = data.term[i], alt = data.alt[i], lang = data.lang, sc = data.sc[i], fragment = data.fragment, id = data.id, genders = data.genders, tr = data.tr[i], ts = data.ts[i], gloss = data.gloss, pos = data.pos, lit = data.lit, accel = data.accel, interwiki = data.interwiki, cats = data.cats, no_alt_ast = data.no_alt_ast } link = require("Module:script utilities").tag_text( data.term[i] and export.language_link(term_data) or data.alt[i], data.lang, data.sc[i], face, class) else --[[ No term to show. Is there at least a transliteration we can work from? ]] link = require("Module:script utilities").request_script(data.lang, data.sc[i]) -- No link to show, and no transliteration either. Show a term request (unless it's a substrate, as they rarely take terms). if (link == "" or (not data.tr[i]) or data.tr[i] == "-") and data.lang:getFamilyCode() ~= "qfa-sub" then -- If there are multiple terms, break the loop instead. if i > 1 then remove(output) break elseif mw.title.getCurrentTitle().nsText ~= "Template" then insert(data.cats, data.lang:getFullName() .. " term requests") end link = "<small>[Term?]</small>" end end insert(output, link) if i < #terms then insert(output, "<span class=\"Zsym mention\" style=\"font-size:100%;\">/</span>") end end -- TODO: Currently only handles the first transliteration, pending consensus on how to handle multiple translits for multiple forms, as this is not always desirable (e.g. traditional/simplified Chinese). if data.tr[1] == "" or data.tr[1] == "-" then data.tr[1] = nil else local phonetic_extraction = load_data("Module:links/data").phonetic_extraction phonetic_extraction = phonetic_extraction[data.lang:getCode()] or phonetic_extraction[data.lang:getFullCode()] if phonetic_extraction then data.tr[1] = data.tr[1] or require(phonetic_extraction).getTranslit(export.remove_links(data.alt[1] or data.term[1])) elseif (data.term[1] or data.alt[1]) and data.sc[1]:isTransliterated() then -- Track whenever there is manual translit. The categories below like 'terms with redundant transliterations' -- aren't sufficient because they only work with reference to automatic translit and won't operate at all in -- languages without any automatic translit, like Persian and Hebrew. if data.tr[1] then track("manual-tr", data.lang:getFullCode()) end -- Try to generate a transliteration. local text = data.alt[1] or data.term[1] if not data.lang:link_tr(data.sc[1]) then text = export.remove_links(text, true) end local automated_tr, tr_categories automated_tr, data.tr_fail, tr_categories = data.lang:transliterate(text, data.sc[1]) if automated_tr or data.tr_fail then local manual_tr = data.tr[1] if manual_tr then if (export.remove_links(manual_tr) == export.remove_links(automated_tr)) and (not data.tr_fail) then insert(data.cats, data.lang:getFullName() .. " terms with redundant transliterations") elseif not data.tr_fail then -- Prevents Arabic root categories from flooding the tracking categories. if mw.title.getCurrentTitle().nsText ~= "Category" then insert(data.cats, data.lang:getFullName() .. " terms with non-redundant manual transliterations") end end end if (not manual_tr) or data.lang:overrideManualTranslit(data.sc[1]) then data.tr[1] = automated_tr for _, category in ipairs(tr_categories) do insert(data.cats, category) end end end end end -- Link to the transliteration entry for languages that require this if data.tr[1] and data.lang:link_tr(data.sc[1]) and not (data.tr[1]:match("%[%[(.-)%]%]") or data.tr_fail) then data.tr[1] = export.language_link{ lang = data.lang, term = data.tr[1], sc = require("Module:scripts").getByCode("Latn") } elseif data.tr[1] and not (data.lang:link_tr(data.sc[1]) or data.tr_fail) then -- Remove the pseudo-HTML tags added by remove_links. data.tr[1] = data.tr[1]:gsub("</?link>", "") end if data.tr[1] and not umatch(data.tr[1], "[^%s%p]") then data.tr[1] = nil end insert(output, export.format_link_annotations(data, face)) local categories = #data.cats > 0 and require("Module:utilities").format_categories(data.cats, data.lang, "-", nil, nil, data.sc) or "" output = concat(output) if show_qualifiers then output = add_qualifiers_and_refs_to_term(data, output) end return output .. categories end --[==[Replaces all wikilinks with their displayed text, and removes any categories. This function can be invoked either from a template or from another module. -- Strips links: deletes category links, the targets of piped links, and any double square brackets involved in links (other than file links, which are untouched). If `tag` is set, then any links removed will be given pseudo-HTML tags, which allow the substitution functions in [[Module:tili]] to properly subdivide the text in order to reduce the chance of substitution failures in modules which scrape pages like [[Module:zh-translit]]. -- FIXME: This is quite hacky. We probably want this to be integrated into [[Module:tili]], but we can't do that until we know that nothing is pushing pipe linked transliterations through it for languages which don't have link_tr set. * <code><nowiki>[[page|displayed text]]</nowiki></code> &rarr; <code><nowiki>displayed text</nowiki></code> * <code><nowiki>[[page and displayed text]]</nowiki></code> &rarr; <code><nowiki>page and displayed text</nowiki></code> * <code><nowiki>[[Category:English lemmas|WORD]]</nowiki></code> &rarr; ''(nothing)'']==] function export.remove_links(text, tag) if type(text) == "table" then text = text.args[1] end if not text or text == "" then return "" end text = text :gsub("%[%[", "\1") :gsub("%]%]", "\2") -- Parse internal links for the display text. text = text:gsub("(\1)([^\1\2]-)(\2)", function(c1, c2, c3) -- Don't remove files. for _, false_positive in ipairs({"file", "image"}) do if c2:lower():match("^" .. false_positive .. ":") then return c1 .. c2 .. c3 end end -- Remove categories completely. for _, false_positive in ipairs({"category", "cat"}) do if c2:lower():match("^" .. false_positive .. ":") then return "" end end -- In piped links, remove all text before the pipe, unless it's the final character (i.e. the pipe trick), in which case just remove the pipe. c2 = c2:match("^[^|]*|(.+)") or c2:match("([^|]+)|$") or c2 if tag then return "<link>" .. c2 .. "</link>" else return c2 end end) text = text :gsub("\1", "[[") :gsub("\2", "]]") return text end --[=[ This decodes old section encodings. For example, Norwegian_Bokm.C3.A5l → Norwegian_Bokmål. It isn't picky about whether the section encodings represent the UTF-8 encoding of a real Unicode character, so it will mangle section names that contain a period followed by two uppercase hex characters. At least such section names are probably pretty rare. Wiktionary adds an additional id="" attribute for sections using a legacy encoding, if it is different from the modern minimally modified attribute. It is like percent encoding (URI or URL encoding) except with "." instead of "%". See [[mw:Manual:$wgFragmentMode]] and the code that does the encoding at https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/7bf779524ab1fd8e1d74f79ea4840564d48eea4d/includes/parser/Sanitizer.php#893 ]=] function export.section_link(link) if type(link) ~= "string" then error("The first argument to section_link was a " .. type(link) .. ", but it should be a string.") end link = link:gsub("_", " ") local target, section = link:match("(.-)#(.*)") if not target then error("The function “section_link” could not find a number sign marking a section name.") end return export.plain_link{ term = target, fragment = section, alt = link:gsub("#", " §&nbsp;", 1) } end return export qgvirpewx2fnq7tf9q719z440jygorq jarima 0 31803 629013 599863 2024-11-07T08:54:55Z Alpasli 6147 /* Maʼnosi */ 629013 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''ja-ri-ma''' == Aytilishi == == Etimologiyasi == ''[[w:Arab tili|a.]]'' — jinoyat, gunoh [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] == Maʼnoviy xususiyatlari == === Maʼnosi === Qonun-qoidani buzganlik, qonun-qoidaga xilof xatti-harakat yoki yetkazilgan moddiy zarar uchun undiriladigan, toʻlanadigan pul. {{misol|Jarima olmoq. Jarima solmoq. sht Befarzand-lik alamin fuqarodan olarkan, Kim farzand koʻrsa, unga xon {{ajrat|jarima}} solarkan.|[[w:S. Abdulla|S. Abdulla]]|Tohir va Zuhra}}. {{misol|Boboqulni sudga chaqirishdi, {{ajrat|jarima}} toʻlab keldi.|[[w:Gazetadan|Gazetadan]]}}. :Jarima toʻpi Futbol oʻyinida: qoida buz-gan jamoa darvozasi tomon tepiladigan toʻp. {{misol|Oʻyinchilar {{ajrat|jarima}} toʻpi oldiga yigʻilishdi.}} === Sinonimlari === === Antonimlari === {{OʻTIL|ЖАРИМА}} == Tarjimalari == {{uz-adj}} ===Tillar=== *{{tr}}: [[para cezası]] {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = <b>[[jarima]]</b></br> [[штраф]]; [[взыскание]]; {{tarjmisoli|~ toʻlamoq }} платить штраф.</br> }} 7oayk17wni52wtet9xq63vkvkaaf24a 629014 629013 2024-11-07T09:03:07Z Umarxon III 1502 /* Tillar */ 629014 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''ja-ri-ma''' == Aytilishi == == Etimologiyasi == ''[[w:Arab tili|a.]]'' — jinoyat, gunoh [[Turkum:Oʻzbekchada arabchadan oʻzlashgan soʻzlar]] == Maʼnoviy xususiyatlari == === Maʼnosi === Qonun-qoidani buzganlik, qonun-qoidaga xilof xatti-harakat yoki yetkazilgan moddiy zarar uchun undiriladigan, toʻlanadigan pul. {{misol|Jarima olmoq. Jarima solmoq. sht Befarzand-lik alamin fuqarodan olarkan, Kim farzand koʻrsa, unga xon {{ajrat|jarima}} solarkan.|[[w:S. Abdulla|S. Abdulla]]|Tohir va Zuhra}}. {{misol|Boboqulni sudga chaqirishdi, {{ajrat|jarima}} toʻlab keldi.|[[w:Gazetadan|Gazetadan]]}}. :Jarima toʻpi Futbol oʻyinida: qoida buz-gan jamoa darvozasi tomon tepiladigan toʻp. {{misol|Oʻyinchilar {{ajrat|jarima}} toʻpi oldiga yigʻilishdi.}} === Sinonimlari === === Antonimlari === {{OʻTIL|ЖАРИМА}} == Tarjimalari == {{uz-adj}} ===Tillar=== *{{tr}}: [[para cezası]] {{Tarjimalar |ru = [[штраф]]; [[взыскание]]; {{tarjmisoli|~ toʻlamoq }} платить штраф. }} {{Tarjimalar |tur = keng |ru = [[штраф]]; [[взыскание]]; {{tarjmisoli|~ toʻlamoq }} платить штраф. }} iy9djrfr2pz760dnt826pqn2audvtbz kontingent 0 40822 628941 573249 2024-11-06T17:09:33Z 84.54.84.88 628941 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''kon-tin-gent''' == Aytilishi == == Etimologiyasi == ''[[w:Lotin tili|lot.]]'' contingens, sop-tingentis — aloqador, yonma-yon [[Turkum:Oʻzbekchada lotinchadan oʻzlashgan soʻzlar]] == Maʼnoviy xususiyatlari == === Maʼnosi === 1 Muayyan munosobatlar boʻyicha bir xil guruh, toi-fani tashkil etuvchi kishilar guruhi. {{misol|Hozir maktab oʻquvchilari {{ajrat|kontingent}}ining qariyb yarmini qizlar tashkil etadi.|[[w:Gazetadan|Gazetadan]]}}. 2 Biror narsaning muayyan maqsadlar uchun belgilangan chegaraviy mikdori. === son, sanoq === === Antonimlari === {{OʻTIL|КОНТИНГЕНТ}} == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = <b>[[kontingent]]</b></br> [[контингент]]; {{tarjmisoli|oʻquvchilar ~i}} контингент учащихся.</br> }} f7d160fdw30p90n1en82uymu8s45yzu oʻrta 0 54990 628859 626992 2024-11-06T14:21:37Z 37.110.214.4 628859 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''oʻr-ta''' == Aytilishi == == Etimologiyasi == {{OʻTEL|I|OʻRTA ’ikki tomondan teng uzoqlikdagi, markaz — dagi nuqta’. Daryoning oʻrtasigacha suzib bor— dik. Bu soʻz qadimgi turkiy tildagi ’joylan-’ maʼno — sini anglatgan or- feʼlining -(u)t orttirma qoʻshim-chasini qoʻshib qosil qilingan shaklidan -u qoʻshimchasi bilan yasalgan (Devon, I, 145; DS, 371); -u qoʻshimchasi qoʻshilganidan keyin ikkinchi boʻgʻindagi tor unli ta — laffuz qilinmay qoʻygan; qadimgi turkiy tildayoq bu soʻz oxiridagi u unlisi a unlisiga almashgan (ДС, 371: og1i, og1a); oʻzbek tilida a unlisi ä unlisiga almashgan: (or— + ut <nowiki>=</nowiki> orut-) + u <nowiki>=</nowiki> orutu &gt;&nbsp;ortu &gt;&nbsp;orta &gt;&nbsp;ortä.}} == Maʼnoviy xususiyatlari == === Maʼnosi === 1 Sathning chetlaridan markaziga tomon teng uzoqlikda boʻlgan qismi, nuq-tasi; markaz. {{misol|Nonning {{ajrat|oʻrta}}si. Gazetaning {{ajrat|oʻrta}}si. Xonaning {{ajrat|oʻrta}}si. Hovuzning {{ajrat|oʻrta}}si. Tarvuzning {{ajrat|oʻrta}}si.}} n {{misol|U \Suvonjon\ de-vordan bir sakrashda oshib tushdi-yu, kuchining boricha oldinga intildi. Bogʻning {{ajrat|oʻrta}}sida Oysuluvga yetdi.|[[w:S. Anorboyev|S. Anorboyev]]|Oqsoy}}. {{misol|Sha-harning {{ajrat|oʻrta}}sida dangʻillama hovlim bor!|[[w:O. Yoqubov|O. Yoqubov]]|Uchrashuv}}. {{misol|Toʻxta xola hovli {{ajrat|oʻrta}}-sidagi soʻriga kelib, oppoq yostiqqa engashdi. |[[w:I. Rahim|I. Rahim]]|Chin muhabbat}}. 2 Uzun narsaning ikki uchidan teng uzoqlikda boʻlgan nuqtasi, joyi. {{misol|Arqonni {{ajrat|oʻrta}}sidan kesmoq.}} n {{misol|Oʻsh bilan Andijan yoʻlining {{ajrat|oʻrta}}sida shumshayib yotgan Qora-buloq qishlogʻi birvarakasiga uygʻonib ketdi. |[[w:M. Ismoiliy|M. Ismoiliy]]|Fargʻona tong otguncha}}. 3 Ikki yoki undan ortiq narsalarning oraliq qismi; oraliq. {{misol|Chap tomonda togʻ etaklari, oʻng tomonda yashil paxtazor, {{ajrat|oʻrta}}sida qishloq.|[[w:I. Rahim|I. Rahim]]|Chin muhabbat}}. {{misol|Sharqu gʻarb {{ajrat|oʻrta}}sida katta bir manzsh, Chin-Mochindan toliqib kelgan karvonlar..|[[w:M. Shayxzoda|M. Shayxzoda]]}}. 4 Kishilar yoki bir joydagi narsalar orasi; qurshov, davra. {{misol|{{ajrat|Oʻrta}}da bir necha qiz-lar raqs tushmoqda}} — ''jonli, shoʻx, tetik raqs.'' Oybek, Quyosh qoraymas. {{misol|Olomon ichi-dan Mamajon {{ajrat|oʻrta}}ga chiqdi.|[[w:A. Muxtor|A. Muxtor]]|Opa-singillar}}. {{misol|Sanam xola bilan qanday yarash-ganini aytdi-yu, qaynanasi pishirib bergan varaqi somsalarni {{ajrat|oʻrta}}ga qoʻydi.|[[w:P. Qodi-rov|P. Qodi-rov]]|Qora koʻzlar}}. '''5 '''''sft.'' Oraliq (oʻrta)da boʻlgan; oʻrtadagi. {{misol|{{ajrat|Oʻrta}} barmoq. {{ajrat|Oʻrta}} eshik. {{ajrat|Oʻrta}} hovli.}} 6 Boshlanishidan va oxiridan taxminan teng uzoqlikda boʻlgan vaqt. {{misol|Kunning{{ajrat|oʻrta}}si. Yilning {{ajrat|oʻrta}}si.}} m {{misol|Saraton oʻtgan, kuzning {{ajrat|oʻrta}}si}} — ''mehrjon [kuzgi hosil bayrami] pallasi edi.'' S. Siyoyev, Yorugʻlik. '''7 '''''(asosan oʻ.-p. k. shaklida'' — oʻrtada) Xamma yoki bir necha kishi uchun umumiy, teng, bir xilda tegishli boʻlgan. {{misol|{{ajrat|Oʻrta}}da mashi-nalar, {{ajrat|Oʻrta}}da bu garaj ham, Doʻst boʻlamiz chinakam.|[[w:Q. Muhammadiy|Q. Muhammadiy]]}}. {{misol|[Nizomiddinov:] Kolxoz emish-a, hamma narsa {{ajrat|oʻrta}}da: Butun bir qishloq bir koʻrpada. Yer {{ajrat|oʻrta}}da, mol-jon {{ajrat|oʻrta}}da.|[[w:S. Ahmad|S. Ahmad]]|Hukm}}. 8 Meʼyoriy darajali; oʻrtacha. {{misol|Oshning tuzi baland ham, past ham emas — {{ajrat|oʻrta}}. Oʻrta boʻyli yigit. Oʻrta yoshli ayol. yash Dehqon.}} :Oʻrtadan koʻra pastroq, pastdan koʻra yuqo-riroq xoʻjaligi bor. A. Qahhor, Qoʻshchinor chiroqlari. 9 Besh balli baho tizimida "yaxshi"dan past, "yomon"dan yuqori darajadagi baho; oʻrtacha, qoniqarli. {{misol|Oʻquvchining bilimiga "{{ajrat|oʻrta}}" qoʻymoq. Inshodan "{{ajrat|oʻrta}}" olmoq.}} n {{misol|Xoʻp, hozir koʻramiz.. "Yaxshi!".. "{{ajrat|oʻrta}}".. "{{ajrat|oʻrta}}". "Dani aʼlo?".}} A. Qahhor, Ayb kimda? '''10 '''''(makon kelishiklari shaklida'' — oʻrta-ga, oʻrtada, oʻrtadan) ''koʻm. vazifasida.'' Makon, payt yoki obʼyekt munosabatini bildiradi. {{misol|Gav-har shoshilmay oʻtib, Zulayho bilan Abdu-xalilning {{ajrat|oʻrta}}siga oʻtirdi.. Oʻ.|[[w:Hoshimov|Hoshimov]]|Qalbingga quloqsol}}. {{misol|Otang bilan {{ajrat|oʻrta}}miz-da shunday gaplar oʻtgan..|[[w:M. Hazratqulov|M. Hazratqulov]]|Jurʼat}}. {{misol|..ikki kundosh {{ajrat|oʻrta}}sidan ancha gaplar oʻtgani bir daraja maʼlum boʻldi.|[[w:A. Qodiriy|A. Qodiriy]]|Oʻtgan kunlar}}. {{misol|Shirmonjon olomon {{ajrat|oʻrta}}sidan sugʻurilib chiqdi.|[[w:S. Zunnunova|S. Zunnunova]]|Olov}}. :Ikki oʻrtada Tomonlar tortishuvi oqi-batida. {{misol|Ikki {{ajrat|oʻrta}}da qizimga jabr boʻlma-sa goʻrga edi!|[[w:I. Rahim|I. Rahim]]|Chin muhabbat}}. Oʻrta yoʻlda qolmoq ''ayn.'' arasotda qolmoq ''q.'' ara-sot. U {{misol|{{ajrat|oʻrta}} yoʻlda soʻppayib qolgan edi. Iz-ma-iz jazoni oʻtab chiqqan "ustoz"ning etagidan mahkam tutdi.|[[w:"Mushtum"|"Mushtum"]]}}. Oʻrtaga olmoq Biror narsa yuzasidan koʻpchilik boʻlib pand-nasihat qilmoq, taʼsir oʻt-kazmoq. {{misol|"Yigʻi"dan soʻng ikki ovsin darrov Nurini {{ajrat|oʻrta}}ga olib, luueup-uiueup bilan "falokat"ni tushuntira boshladi.|[[w:Oybek|Oybek]]|Tanlangan asarlar}}. Oʻrtaga solmoq ''ayn.'' oʻrtaga tashlamoq. {{misol|Umumiy majlis qilamiz, {{ajrat|oʻrta}}ga solamiz.|[[w:A. Qahhor|A. Qahhor]]|Qoʻshchinor chiroqlari}}. Oʻrtaga tashlamoq Koʻpchilik muhokamasiga taqdim etmoq. {{misol|Ibrohimov.. {{ajrat|oʻrta}}ga tashlan-gan fikrlarni va bularning toʻgʻri yo notoʻgʻ-ri ekatshgini isbot qilish uchun koʻrsatil-gan dalillarni oʻlchab, salmoqlab koʻrdi.. yozib oldi.|[[w:A. Qahxrr|A. Qahxrr]]|Qoʻshchinor chiroqlari}}. Oʻrta-ga tushmoq ''ayn.'' oraga tushmoq ''q.'' ora. {{misol|-Bit-ta gapdan qol, Umar, achchigʻingni yut, — dedi Boʻronboy {{ajrat|oʻrta}}ga tushib.|[[w:K. Yashin|K. Yashin]]|Hamza}}. {{misol|Ammo xoʻjayin {{ajrat|oʻrta}}ga tushsa, u vaqt ish silliq boʻlib chiqsa kerak, deb oʻylaiman.|[[w:Oybek|Oybek]]|Tanlangan asarlar}}. Oʻrtada qolmoq ''ayn. ''orada qolmoq ''q.'' ora. {{misol|[Erimbet:] Elgeldi ogʻa, voqea {{ajrat|oʻrta}}mizda qolsin.|[[w:A. Muxtor|A. Muxtor]]|Qora-qalpoq qissasi}}. Oʻrtadan koʻtarmoq Yoʻq qil-moq. {{misol|Noqulay vaziyatni {{ajrat|oʻrta}}dan koʻtarmoq.}} :Gina-kuduratni oʻrtadan koʻtarmoq. v {{misol|Mu-sulmonqul bu ishlarni bir yaxshi maqsadni kuzatib qilganda, zolimlarni {{ajrat|oʻrta}}dan koʻ-tarib, yurtga osoyish berganda, unga kim nima deya olar edi.|[[w:A. Qodiriy|A. Qodiriy]]|Oʻtgan kunlar}}. === Sinonimlari === === Antonimlari === O'rta == Tarjimalari == {{Tarjimalar |ru = }} {{Tarjimalar |tur = keng |ru = '''oʻrta'''<br /> '''1 '''[[середина]], [[центр]]; [[нутро]]; // [[средний]]; {{tarjmisoli|hovlining oʻrtasi }} середина двора; {{tarjmisoli|yoʻlning oʻrtasi }} середина дороги; середина пути; {{tarjmisoli|tarvuzning oʻrtasi }} середина (нутро) арбуза; {{tarjmisoli|oʻrta si chirigan yogʻoch }} бревно, с прогнившей сердцевиной; {{tarjmisoli|Shaharning oʻrtasida dangʻillama hovlim bor! }} (О. Ёќубов, «Учрашув») В центре города есть у меня роскошный дом; {{tarjmisoli|XIX asr oʻrtalari }} середина XIX века; {{tarjmisoli|oʻrta asrlar }} средние века; {{tarjmisoli|oʻrta yoshdagi odam }} человек средних лет; {{tarjmisoli|oʻrta maktab }} средняя школа; {{tarjmisoli|oʻrta maʼlumot }} среднее образование; {{tarjmisoli|oʻrta qoʻl }} ({{izoh|или '''}}[[barmoq]]''') [[средний]] [[палец]]; '''Oʻrta Osiyo '''Средняя Азия; {{tarjmisoli|oʻrtaga }} в середину; на середину; {{tarjmisoli|oʻrtaga olmoq }} 1) брать в середину, окружать; обступать со всех сторон; 2) {{izoh|перен.}} уговаривать или внушать совместно, общими усилиями; брать в оборот;{{tarjmisoli| oʻrtaga olib, tushuntirmoq }} взять ({{izoh|кого-л}}.) в оборот и общими усилиями сделать ему внушение; {{tarjmisoli|oʻrtaga otmoq }} 1) бросать ({{izoh|что-л}}.) в середину, на середину; 2) {{izoh|перен}}. бросать, выдвигать ({{izoh|напр. лозунг}}); {{tarjmisoli|Dastlab bu gapni dadangiz oʻzlari oʻrtaga otdilar }} (Ойбек, «Ќутлуѓ ќон») Первым это выдвинул ваш отец; {{tarjmisoli|oʻrtaga solmoq }} 1) класть, положить ({{izoh|что-л}}.) в середину, на середину; 2) {{izoh|перен}}. пускать в ход, использовать; {{tarjmisoli|Sen unga bor, eski tanishlikni oʻrtaga sol }} (Ойбек, «Навоий») Ты пойди к нему, используй своё старое знакомство с ним; 3) {{izoh|перен}}. ставить на обсуждение, выноситьна общий суд; {{tarjmisoli|oʻrtaga sukut choʻkdi }} ({{izoh|букв}}. в середину опустилась тишина) воцарилась тишина; {{tarjmisoli|oʻrta[[ga]] [[tashlamoq]] <nowiki>=</nowiki> oʻrta[[ga]] [[solmoq]] 1, 3; oʻrtaga tushmoq }} 1) попадать в середину; выходить на середину, в круг ({{izoh|напр. в танце}}); 2) {{izoh|перен}}. вмешиваться ({{izoh|в ссору, спор, драку и т.п}}.) с целью примирить, разнять {{izoh|и т. п}}.; посредничать, принимать на себя посредничество; {{tarjmisoli|oʻrtaga qoʻymoq }} 1) ставить на середину, ставить в середину; {{tarjmisoli|mezbon jizillab turgan bir lagan kabobni keltirib oʻrtaga qoʻydi }} хозяин принёс и поставил в середину ({{izoh|между гостями}}) блюдо потрескивающего шашлыка; 2) {{izoh|перен}}. ставить на обсуждение; выдвигать ({{izoh|напр. лозунг}}); {{tarjmisoli|masalani oʻrtaga qoʻymoq }} ставить вопрос на обсуждение; {{tarjmisoli|oʻrtaga odam }} ({{izoh|или '''}}[[kishi]]''') '''[[qoʻymoq]] '''[[посылать]] ([[избирать]], [[направлять]]) [[посредника]]; {{tarjmisoli|oʻrtada }} 1) в середине; посредине; 2) между тем, тем временем; '''oʻrtada boy ham oʻlib qoldi '''(Ойбек, «Ќутлуѓ ќон») Тем временем и бай умер; {{tarjmisoli|oʻrtada koʻrmoq }} делиться; пользоваться вместе, сообща; {{tarjmisoli|oʻrtada turmoq }} 1) стоять посредине; 2) {{izoh|перен}}. посредничать, быть посредником; {{tarjmisoli|ikki oʻrtada }} между двух огней; '''[[yaqin]] '''({{izoh|или '''}}bu, shu''') {{tarjmisoli|oʻrtada }} 1) на днях, днями; 2) где-то тут, поблизости; {{tarjmisoli|oʻrtadagi }} 1) находящийся в середине, посредине, 2) общий, находящийся в общем пользовании; {{tarjmisoli|oʻrtadan }} с середины; {{tarjmisoli|oʻrtadan koʻtarmoq }} {{izoh|перен}}. убирать ({{izoh|что-л}}.); устранять, уничтожать, ликвидировать ({{izoh|кого-л}}.);<br /> '''2 '''[[середина]], [[промежуток]]; {{tarjmisoli|ikki yonma-yon bino oʻrtasi }} промежуток между двумя соседними домами;<br /> '''3 '''[[средний]], [[посредственный]]; {{tarjmisoli|oʻrta baho }} посредственная оценка; {{izoh|в роли служебного имени}}: {{tarjmisoli|oʻrtasiga }} в, в середину, на середину; {{tarjmisoli|maydon oʻrtasiga }} на середину площади; {{tarjmisoli|oʻrtasida }} 1) в середине ({{izoh|чего-л}}.), посреди ({{izoh|чего-л}}.), в центре ({{izoh|чего-л}}.); {{tarjmisoli|hovli oʻrtasida }} посреди двора; {{tarjmisoli|qish oʻrtasida }} среди зимы; 2) в, среди, между; {{tarjmisoli|xalq oʻrtasida }} в народе, среди народа; {{tarjmisoli|uy besh kishi oʻrtasida }} дом принадлежит пятерым; домом владеют пять человек; {{tarjmisoli|bu gap oʻrtamizda qolsin }} пусть это останется между ними; {{tarjmisoli|oʻrtasidan }} 1) с середины, из середины ({{izoh|чего-л}}.); {{tarjmisoli|maydon oʻrtasidan }} с середины площади; 2) из ({{izoh|какой-л}}.) среди; из; {{tarjmisoli|xalq oʻrtasidan yetishib chiqqan intelligensiya }} интеллигенция, вышедшая из народа; {{tarjmisoli|* oʻrta (hol) dehqon }} средний крестьянин, середняк.<br /> }} n2sl8lw0s1uiq0rxqj5q8idvo2ymogq разгон 0 105179 628961 613787 2024-11-06T17:35:14Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628961 wikitext text/x-wiki {{-ru-}} == Morfologik va sintaktik xususiyatlari == '''раз-гон''' == Aytilishi == == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === <b>[[разгон]] </b>{{izoh|м</br> <b>}}1</b>{{izoh| по гл. <b>}}[[разогнать]]</b> [[i]] <b>[[разгонять]] </b>[[tarqatish]], [[haydash]], toʻzitish, tarqatib (haydab, toʻzitib) yuborish; {{tarjmisoli|~ демонстрации }} namoyishni tarqatib yuborish; namoyishning, tarqatilishi;</br> <b>2</b> {{izoh|по гл. <b>}}[[разогнаться]]</b> [[i]] <b>[[разгоняться]] </b>tezlikni [[oshirish]], tezlab [[ketish]]; yugurib borish; {{tarjmisoli|~ самолёта }} (uchish uchun) samolyot tezligini oshirish (tezlash);</br> <b>3</b> {{izoh|спец. }}([[bir]] [[xil]] narsalar orasidagi) [[masofa]], [[oraliq]]; {{tarjmisoli|~ между столбами }} simyogʻochlar oʻrtasidagi masofa;{{tarjmisoli| в ~е}} biror yerga ishga yuborilgan kishilar haqida; <b>[[с]]</b> {{tarjmisoli|~а (~у)}} yugurib kelib, zarb bilan.</br> == Kelishiklari == {{ru-ism|разго́н|par=разго́ну}} === Sinonimlari === === Antonimlari === == Tarjimalari == lh98382cf7juflv21sv4ha5h3mr0ykw сандал 0 108566 629020 533082 2024-11-07T10:43:14Z 84.54.71.67 629020 wikitext text/x-wiki {{-ru-}} == Morfologik va sintaktik xususiyatlari == '''сан-дал''' == Aytilishi == == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === <b>[[сандал]] </b>{{izoh|м }} [[sandal]] (<b>1</b> [[yogʻochi]] [[xushboʻy]], [[doim]] [[yashil]] [[daraxt]]; <b>2 </b> [[shu]] [[yogʻochdan]] [[tayyorlanadigan]] [[qizil]] [[boʻyoq]]). === Sinonimlari === === Antonimlari === == Tarjimalari == f4wknli6nt2ykghmgzygrteb0rt090a 629021 629020 2024-11-07T10:44:11Z 84.54.71.67 629021 wikitext text/x-wiki {{-ru-}} == Morfologik va sintaktik xususiyatlari == '''сан-дал''' == Aytilishi == == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === <b>[[сандал]] </b>{{izoh|м }} [[sandal]] (<b>1</b> [[yogʻoch]]i xushboʻy, doim yashil [[daraxt]]; <b>2 </b> shu yogʻochdan tayyorlanadigan qizil [[boʻyoq]]). === Sinonimlari === === Antonimlari === == Tarjimalari == mfcdrovk33k9vm7nnnu5djo2ujx7s3m diler 0 124821 628875 603206 2024-11-06T14:55:04Z Diwikiped 6320 /* Maʼnosi */ 628875 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''di-ler''' == Aytilishi == == Etimologiyasi == == Maʼnoviy xususiyatlari == === Maʼnosi === | ''ingl.'' dealer — birja dalloli) 1 Tovarlar (mahsulot) oldi-sotdisi bilan shugʻullanuvchi, oʻz nomidan va oʻz mablagʻi hisobidan harakat qiluvchi jismoniy shaxs yoki firma. '''2''' Qimmatbaho qogʻozlar, valyutalar, qimmatbaho metallar oldi-sotdisi bilan shugʻullanuvchi, oʻz nomidan va oʻz mablagʻi hisobidan harakat qiluvchi fond birjasi aʼzosi, jismoniy yoki yuridik shaxs. === Sinonimlari === === Antonimlari === {{OʻTIL|ДИЛЕР}} == Tarjimalari == cxei31agp4zbs3ncp5zaqkr5jf1k21b kuryer 0 126075 629012 616954 2024-11-07T05:37:02Z 45.9.230.49 /* Sinonimlari */ kuryer 629012 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == '''kur-yer''' == Aytilishi == == Etimologiyasi == ''[[w:Fransuz tili|fr.]]'' courrier &lt; ''[[w:Lotin tili|lot.]]'' currere — [[yugurmoq]]; [[shoshilmoq]] [[Turkum:Oʻzbekchada fransuzchadan oʻzlashgan soʻzlar]] [[Turkum:Oʻzbekchada lotinchadan oʻzlashgan soʻzlar]] == Maʼnoviy xususiyatlari == === Maʼnosi === '''1''' Shoshilinch topshiriqlarni tarqatuvchi, diplomatik xat-xabar va joʻnatmalarni yetkazib beruvchi mansabdor [[shaxs]]. '''2''' Muassasaning rasmiy ish qogʻozlarini tegishli joyga tarqatuvchi, olib borib beruvchi [[xodim]]. === Sinonimlari === kuryer === Antonimlari === {{OʻTIL|КУРЬЕР}} == Tarjimalari == c9aci0o4e5qpxl3ip680uofctaao6m3 Andoza:zh-pron 10 130262 628901 240997 2024-11-06T15:55:02Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628901 wikitext text/x-wiki <includeonly>{{#invoke:zh-pron|make}}</includeonly><!-- --><noinclude>{{documentation}}</noinclude> okjbq9awntz53izmamlvwyev8v6dq51 Andoza:ja-oʻqishlar 10 130264 628922 240736 2024-11-06T16:26:42Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628922 wikitext text/x-wiki <includeonly>{{#invoke:ja-kanji-readings|show|ja}}</includeonly><noinclude>{{documentation}}</noinclude> 1j95hjrwfdnnb5stx7xiohvebzs2tsw Modul:zh 828 130267 628893 461980 2024-11-06T15:40:24Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628893 Scribunto text/plain local m_str_utils = require("Module:string utilities") local m_ts = mw.loadData("Module:zh/data/ts") local m_st = mw.loadData("Module:zh/data/st") local lang = require("Module:tili").getByCode("zh") local codepoint = m_str_utils.codepoint local find = m_str_utils.find local len = m_str_utils.len local split = m_str_utils.split local sub = m_str_utils.sub local export = {} function export.ts_determ(f) local text = type(f) == "table" and f.args[1] or f local sc = lang:findBestScript(text):getCode() return sc == "Hani" and "both" or sc == "Hant" and "trad" or "simp" end function export.ts(f) local text = type(f) == "table" and f.args[1] or f return (text:gsub("[\194-\244][\128-\191]*", m_ts)) end function export.st(f) local text = type(f) == "table" and f.args[1] or f return (text:gsub("[\194-\244][\128-\191]*", m_st)) end function export.py(text, comp, pos, p, is_erhua) require("Module:debug").track("zh/py") local m_cmn_pron = mw.loadData("Module:zh/data/cmn-pron") if not is_erhua then is_erhua = false end if type(text) == "table" then text, comp, pos, p, is_erhua = text.args[1], text.args[2], text.args[3], text.args[4], text.args[5] end comp = comp or '' local q = {} local sum = 0 local length = len(text) if is_erhua then length = length - 1 end local textconv = text text = '' if comp ~= '' and comp ~= '12' and comp ~= '21' and not ((pos == 'cy' or pos == 'Idiom' or pos == 'idiom') and length == 4) and not is_erhua then for i = 1, len(comp) do sum = sum + tonumber(sub(comp,i,i)) q[sum] = 'y' end end if not p then p={} end local initial = true for i = 1, length do if p[i] and p[i] ~= '' then --pronunciation supplied text = text .. p[i] else local char = sub(textconv,i,i) char = m_cmn_pron.py[char] or m_cmn_pron.py[export.ts(char)] or char if not is_erhua and not initial and find(char,'^[aoeāōēáóéǎǒěàòè]') then text = text .. "&#39;" end text = text .. char initial = char == sub(textconv,i,i) and sub(textconv,i-3,i) ~= "</b>" --checks for closing bold tag and (i-2 == 1 or sub(textconv,i-2,i) ~= "<b>" or sub(textconv,i-3,i) == "^<b>") --checks for opening bold tag and (i-3 == 1 or sub(textconv,i-3,i) ~= "^<b>") --checks for opening bold tag with capitalization end if q[i] == 'y' and i ~= length and not is_erhua then text = text .. ' ' end end text = text:gsub("<b>&#39;", "&#39;<b>") --fix bolding of apostrophe if is_erhua then text = text .. 'r' end if pos == 'pn' or pos == 'propn' then local characters = split(text, ' ') for i=1,#characters do characters[i] = mw.language.getContentLanguage():ucfirst(characters[i]) end text = table.concat(characters,' ') end return text end do local function get_pron(text, startpoint, address) local success, data = pcall(mw.loadData, ("Module:zh/data/" .. address) :format((codepoint(text) - startpoint) / 1000) ) return success and data[text] or false end function export.check_pron(text, variety, length, usex) if type(text) == "table" then text, variety, usex = text.args[1], text.args[2], text.args[3] length = len(text) usex = usex and usex ~= "" end if not text then return elseif variety == "cmn" and length == 1 then local py = mw.loadData("Module:zh/data/cmn-pron").py return py[text] or py[m_ts[text]] or false elseif variety == "yue" then if length == 1 then return (usex and mw.loadData("Module:zh/data/yue-pron").jyutping or -- used for {{zh-x}} mw.loadData("Module:zh/data/Jyutping character"))[text] or -- used for {{subst:zh-new}} false end local result = get_pron(text, 51, "yue-word/%03d") if result and not require("Module:yue-pron/check")(text, result) then require("Module:debug").track("zh/yue") require("Module:debug").track("zh/yue/"..text) end return result elseif variety == "hak" then return get_pron(text, 19968, "hak-pron/%02d") elseif variety == "nan-hbl" then return get_pron(text, 19968, "nan-pron/%03d") end return false end end return export djf898scdzy3zdsz9lyszs5hut53xmy Andoza:zh-l 10 130268 628970 240731 2024-11-06T17:51:15Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628970 wikitext text/x-wiki <includeonly>{{#invoke:zh/link|link}}</includeonly><noinclude>{{documentation}}</noinclude> gt3gtcq2rddx4ssf6k09amhf8qiwd6f Modul:zh-usex 828 130271 628945 240735 2024-11-06T17:17:02Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628945 Scribunto text/plain local export = {} local m_zh = require("Module:zh") local m_languages = require("Module:tili") local m_string_utils = require("Module:string utilities") local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local split = m_string_utils.split local sub = m_string_utils.sub local upper = m_string_utils.upper -- Use this when the actual title needs to be known. local actual_title = mw.title.getCurrentTitle() -- Use this when testcases need to be able to override the title (for bolding, -- for instance). local title = actual_title local PAGENAME = PAGENAME or title.text local data = mw.loadData("Module:zh-usex/data") local punctuation = data.punctuation local ref_list = data.ref_list local pron_correction = data.pron_correction local polysyllable_pron_correction = data.polysyllable_pron_correction local zh_format_end = "</span>" --local Han_pattern = "[" .. require("Module:scripts").getByCode("Hani"):getCharacters() .. "]" local Han_pattern = "[一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𮹟𰀀-𲎯]" local UTF8_char = '[^\128-\191][\128-\191]*' local UTF8_char2 = '[^[%]\128-\191][\128-\191]*' -- not "[" or "]" local tr_data = { cmn = { segment_c = " %-", separator_conv = {[""]="",[" "]=" ",["-"]="",["--"]="-"}, link_ignore = "\1.^", tr_cap = true, combine = function(t) return t:gsub("^%f[aoe\195-\199]","\3") -- temporary substitute of the apostrophe end, }, yue = { segment_c = " ", separator_conv = {[""]="",[" "]=" "}, link_ignore = "\1", tr_cap = false, combine = function(t) return t:gsub(",.+","") end, }, ["nan-hbl"] = { segment_c = " ~", separator_conv = {[""]="",[" "]=" ",["~"]="-"}, link_ignore = "\1%%.^", tr_cap = true, combine = function(t) return "-"..t:gsub("/.+","") end, }, hak = { segment_c = " ~", separator_conv = {[""]="",[" "]=" ",["~"]="-"}, link_ignore = "\1.^", tr_cap = true, combine = function(t) return "-"..t:gsub("/.+","") end, }, default = { segment_c = " ", separator_conv = {[""]="",[" "]=" "}, link_ignore = "\1", tr_cap = false, }, } local function get_tr(display, norm_code) local given, given_pos = {}, 1 -- record the characters with given transcription local punc, punc_pos = {}, 1 -- record the punctuations with given transcription local tr_datapoint = tr_data[norm_code] local word_regex = "[^"..tr_datapoint.link_ignore.." \2{}".."]+" -- regex that matches words local tr_word = display:gsub("\1", " ") :gsub("%["..UTF8_char2.."%]", "") :gsub("("..UTF8_char.."){([^{}]*)}", function(a,b) -- record given tr and replace with "{" given[given_pos] = a:find("^%w$") and b or tr_datapoint.combine(b) given_pos = given_pos + 1 return "{" end) :gsub("%f[^ ][^ ]+%f[ ]", function(a) -- record punctuation and replace with "}" if punctuation[a] then punc[punc_pos] = punctuation[a] punc_pos = punc_pos + 1 return "}" end return a end) :gsub("<b>","\1"):gsub("</b>","\2") -- substitute bold tags for further processing :gsub(word_regex,function(word) -- first attempt to get the pronunciation of the whole word local res = polysyllable_pron_correction[norm_code][word] or pron_correction[norm_code][word] if res then return res end local length = 0 -- for check_pron (a bit hacky because check_pron only checks if length == 1) if word:find("^"..UTF8_char.."$") then length = 1 end res = m_zh.check_pron(word, norm_code, length, true) if res then return tr_datapoint.combine(res) end -- if it fails, get pronunciation of each character return word:gsub(UTF8_char, function(ch) local ch_res = pron_correction[norm_code][ch] if ch_res then return ch_res end ch_res = m_zh.check_pron(ch, norm_code, 1, true) return ch_res and tr_datapoint.combine(ch_res) or ch end) end) if norm_code == "cmn" then tr_word = tr_word:gsub("%.%.","-") end if norm_code ~= "yue" then tr_word = tr_word:gsub("%."," ") end given_pos, punc_pos = 0,0 tr_word = tr_word:gsub("{",function() -- substitute back the stored results given_pos = given_pos + 1 return given[given_pos] end) :gsub("}",function() -- substitute back the punctuations punc_pos = punc_pos + 1 return punc[punc_pos] end) if norm_code == "yue" then tr_word = tr_word:gsub("[a-z][1-9]%-?[1-9]?", "%0 ") end return tr_word end local function make_link(target, display) target = target == "" and display or target -- Remove bold tags from target target = target:gsub("</?b>","") -- Generate link to Chinese section local result = "[[" .. target .. "#Chinese|" .. display .. "]]" -- For debugging purposes --if actual_title.nsText == "Module" then mw.log(display, target, "->", result) end return result end local function convert(conv_fun, text) return (text .. "A[A]") :gsub("([^%[%]]*)"..UTF8_char2.."%[("..UTF8_char2..")%]", function(a,b) return conv_fun(a)..b end) :sub(1,-2) end function export.show(frame) local params = { [1] = { required = true }, -- example [2] = {}, -- translation [3] = {}, -- variety lit = {}, tr = {}, ref = {}, r = { alias_of = "ref" }, inline = {}, audio = {}, a = { alias_of = "audio" }, collapsed = { type = "boolean" }, -- Allow specifying pagename in testcases on documentation page. pagename = actual_title.nsText == "Template" and {} or nil, nocat = { type = "boolean" }, tr_nocap = { type = "boolean" }, simp = { type = "boolean" } } local category = frame.args["category"] or error("Please specify the category.") local args, unrecognized_args = require("Module:parameters").process(frame:getParent().args, params, true) if args.pagename then -- Override title in Module namespace. title = mw.title.new(args.pagename) PAGENAME = title.text end local example = args[1] or error("Example unspecified.") local translation = args[2] local literal = args["lit"] local reference = args["ref"] local manual_tr = args["tr"] local display = args["display_type"] local inline = args["inline"] local audio_file = args["audio"] local collapsed = args["collapsed"] local simp = args["simp"] local phonetic = "" local original_length = example:gsub("[^\194-\244]+",""):len() local variety = args[3] or frame.args["variety"] or (ref_list[reference] and ref_list[reference][1] or false) or "cmn" local variety_data = data.varieties_by_code[variety] or data.varieties_by_old_code[variety] or error("Variety " .. variety .. " not recognized.") -- unpack() doesn't work here because the data was loaded using mw.loadData() local std_code, norm_code, desc, tr_desc = variety_data[2], variety_data[3], variety_data[4], variety_data[5] norm_code = norm_code or std_code variety = std_code local lang_obj_wikt = m_languages.getByCode(variety, 3, "allow etym") if next(unrecognized_args) then --[[Special:WhatLinksHere/Wiktionary:Tracking/zh-usex/unrecognized arg]] require("Module:debug").track_unrecognized_args(unrecognized_args, "zh-usex") end if reference then require("Module:debug").track("zh-usex/ref") end if example:find("[%(%)]") then require("Module:debug").track("zh-usex/parentheses") end if example:find("&#") then require("Module:debug").track("zh-usex/html") end -- future escape character? if example:find("`") then require("Module:debug").track("zh-usex/backtick") end if example:find(" ") then require("Module:debug").track("zh-usex/double-space") end if (norm_code == "nan-hbl" or norm_code:find("^hak")) and example:find("%-") then require("Module:debug").track("zh-usex/hyphen") end if example:find("%w%{") then require("Module:debug").track("zh-usex/rom-text") end if not translation or translation == '' then -- per standard [[Module:usex]] translation = '<small>(please add an English translation of this ' .. (category == "quotations" and "quotation" or "usage example") .. ')</small> [[Category:Requests for translations of ' .. lang_obj_wikt:getFullName() .. ' ' .. (category == "collocations" and "usage examples" or category) .. ']]' end -- should we generate the other (simp/trad) form -- (in the end, only actually display if the converted text is different) local do_conv = true if norm_code == "vi" or norm_code == "ko" then do_conv = false end local conv_fun = m_zh.ts if simp then if category ~= "quotations" then error("parameter simp cannot be true in [[Template:zh-x]] or [[Template:zh-co]].") end if norm_code == "vi" or norm_code == "ko" or norm_code == "lzh" or variety == "yue-HK" or variety == "cmn-TW" or variety == "nan-hbl-TW" or variety == "lzh-cmn-TW" or variety == "hak-hai" or variety == "hak-dab" or variety == "hak-zha" then error(("Parameter simp= cannot be specified for variety '%s'"):format(variety)) end conv_fun = m_zh.st end -- should we generate the transcription local generate_tr = false if tr_data[norm_code] then if manual_tr then require("Module:debug").track("zh-usex/manual-tr") else generate_tr = true end end local boldify = false -- automatically boldify pagetitle if nothing is in bold if not example:find("'''") and not punctuation[PAGENAME] then boldify = true end -- tidying up the example, making it ready for transcription example = gsub(example, "[?!,。、“”…;:‘’|()「」『』—《》〈〉【】· .~]", " %0 ") example = example:gsub("— —", "——") -- double em-dash (to be converted to single em-dash later) :gsub("<br */?>"," <br> ") -- process linebreaks :gsub("^ *",""):gsub(" *$",""):gsub(" +"," ") -- process spaces :gsub("%[%[(.-)%]%]%f[^%]]",function(a) -- process [[]] return a:gsub(" ","\1") end) :gsub("'''([^']+)'''", "<b>%1</b>") -- normalise bold syntax :gsub("%^<b>","<b>^") :gsub("</b>(%["..UTF8_char2.."%])","%1</b>") :gsub("</b>({[^{}]*})","%1</b>") -- parsing: convert "-", "--", "---" to "-", "..", "--" respectively -- so that "-" is the character that delimits links -- further explanation will use the replacement result to refer to the commands if norm_code == "cmn" then example = example:gsub("%-+",{["--"]="..",["---"]="--"}) if example:find("%-[^%-%s]+\\") then require("Module:debug").track("zh-usex/extra-pinyin") end end local regex_data = tr_data[norm_code] or tr_data.default local segment_c = regex_data.segment_c -- the characters that delimit links local separator_conv = regex_data.separator_conv -- the table for separator mapping local link_ignore = regex_data.link_ignore -- the characters that do not affect links local tr_cap = regex_data.tr_cap -- transliteration can be capitalised local segment_regex = "(["..segment_c.."]*)([^"..segment_c.."]+)" -- the regex that matches each segment and the separator before it local cache = {} -- store the result of each segment local trad_text = "" local simp_text = "" -- generate the transliteration -- but store the results in the cache -- and also build up trad_text and simp_text local tr_text = example:gsub(segment_regex, function(separator,seg) separator = separator_conv[separator] or error('Invalid separator: "'..separator..'"') if cache[seg] then trad_text = trad_text .. cache[seg].trad simp_text = simp_text .. cache[seg].simp return separator..cache[seg].tr end if punctuation[seg] then cache[seg] = { trad = seg, simp = seg, tr = punctuation[seg] } trad_text = trad_text .. seg simp_text = simp_text .. seg return separator..punctuation[seg] end local generate_link = 0 seg, generate_link = seg:gsub("@","") generate_link = (generate_link == 0) local target, display = "", seg local pos = seg:find("\\",1,true) if generate_link and pos then -- move formatting from start of target to display -- e.g. <b>^甲\乙 --> 甲\<b>^乙 local bold = "" local caret = "" local start = 1 if seg:sub(1,3) == "<b>" then bold,start = "<b>",4 end if tr_cap and seg:sub(start) == "^" then caret,start = "^",start+1 end target, display = seg:sub(start,pos-1), bold..caret..seg:sub(pos+1,-1) if target:find("</?b>") then -- Check for bold tags in target. require("Module:debug").track("zh-usex/bold-target") end end target = target:gsub("\1","") local target_trad = target:gsub("%["..UTF8_char2.."%]","") local target_simp = do_conv and convert(conv_fun, target) local occurrences = 0 if boldify then display, occurrences = display:gsub(PAGENAME,"<b>"..PAGENAME.."</b>") end if occurrences > 0 then display = display:gsub("%[<b>"..PAGENAME.."</b>%]","%["..PAGENAME.."%]") :gsub("%^<b>","<b>^") :gsub("</b>(%["..UTF8_char2.."%])","%1</b>") :gsub("</b>({[^{}]*})","%1</b>") end local display_derom = display:gsub("{[^{}]*}","") :gsub("["..link_ignore.."]+","") local display_trad = display_derom:gsub("%["..UTF8_char2.."%]","") local display_simp = do_conv and convert(conv_fun, display_derom) or "" local seg_tr = generate_tr and get_tr(display, norm_code) or "" if (simp and display_simp or display_trad):gsub("</?b>","") == PAGENAME or (simp and target_simp or target_trad) == PAGENAME then generate_link = false if boldify and occurrences == 0 then display_trad = "<b>" .. display_trad .. "</b>" display_simp = "<b>" .. display_simp .. "</b>" seg_tr = "\1" .. seg_tr .. "\2" end end local seg_trad = generate_link and make_link(target_trad, display_trad) or display_trad local seg_simp = generate_link and do_conv and make_link(target_simp, display_simp) or display_simp cache[seg] = { trad = seg_trad, simp = seg_simp, tr = seg_tr } trad_text = trad_text .. seg_trad simp_text = simp_text .. seg_simp return separator..seg_tr end) if trad_text == simp_text then do_conv = false simp_text = nil end if not trad_text:find("</?b>") then require("Module:debug").track("zh-usex/no-bold") end -- format generated tr -- at this point we have three temporary substitutions: -- <b>:\1, </b>:\2, ':\3 if generate_tr then if norm_code == "cmn" then -- format apostrophe tr_text = tr_text :gsub("%f[^%z -]([\1\2^]*)\3", "%1") :gsub("\1\3","\3\1") -- <b>' → '<b> :gsub("^\3","\3^") -- ^' → '^ (shouldn't occur) elseif norm_code == "nan-hbl" or norm_code == "hak" then -- format hyphens tr_text = tr_text :gsub("%^%-","-^") :gsub("\1%-","-\1") -- <b>- → -<b> :gsub("%-\2","\2-") -- -</b> → </b>- :gsub("%f[^%z ]%-%f[^%z %-]","") -- "-chhek" at beginning -> "chhek" :gsub("%f[%z %-]%-%f[%z ]","") -- "shi-" at the end -> "shi" :gsub("%-+","-") :gsub("%-?%%%-?", "--") end tr_text = tr_text:gsub("[\1\2\3]",{["\1"]="<b>",["\2"]="</b>",["\3"]="&#39;"}) if find(tr_text, Han_pattern) then require("Module:debug").track("zh-usex/character without transliteration") end end local tag_start = " <span style=\"color:var(--wikt-palette-forestgreen, #235923); font-size:x-small;\">&#91;" -- HTML entity since "[[[w:MSC|MSC]]" is interpreted poorly local tag_end = "&#93;</span>" local simp_link = "<i>[[w:Simplified Chinese|simp.]]</i>" local trad_link = "<i>[[w:Traditional Chinese|trad.]]</i>" if simp then simp_link, trad_link = trad_link, simp_link end trad_text, auto_spaces = trad_text:gsub("([a-zA-Z]%]%])(%[%[[a-zA-Z])", "%1 %2") simp_text = do_conv and simp_text:gsub("([a-zA-Z]%]%])(%[%[[a-zA-Z])", "%1 %2") or false phonetic = manual_tr or (generate_tr and tr_text) if auto_spaces > 0 then require("Module:debug").track("zh-usex/auto-spaces") end -- overall transcription formatting if phonetic then phonetic = gsub(phonetic, " </b>", "</b> ") if norm_code ~= "wuu" then phonetic = gsub(phonetic, " ", " ") end if norm_code == "yue" or norm_code == "zhx-tai" or norm_code == "csp" or norm_code == "nan-tws" or norm_code == "nan-hnm" or norm_code == "zhx-sic" or norm_code == "cjy" or norm_code == "hsn" or norm_code == "gan" or norm_code == "yue-dgx" or norm_code == "yue-yjx" or norm_code == "yue-ylx" or variety == "hak-mei" then phonetic = gsub(phonetic, "([a-zê]+)([1-9%-]+)", "%1<sup>%2</sup>") -- superscript tones end phonetic = gsub(phonetic, " ([,%.?!;:’”)])", "%1") -- remove excess spaces from punctiation phonetic = gsub(phonetic, "([‘“(]) ", "%1") phonetic = phonetic:gsub(" <br> ", "<br>") if not manual_tr then if norm_code == "nan-hbl" then phonetic = gsub(phonetic, " +%-%-", "--") end end -- capitalisation if not manual_tr then if norm_code == "yue" or norm_code == "zhx-tai" or norm_code == "cjy" or norm_code == "hsn" or norm_code == "cmn-wuh" or norm_code == "nan-tws" or norm_code == "wxa" or norm_code == "wuu" or variety == "hak-mei" then args.tr_nocap = true end if not args.tr_nocap and match(example, "[。?!]") then phonetic = "^" .. gsub(phonetic, "([%.?!]) ", "%1 ^") end if not args.tr_nocap then phonetic = gsub(phonetic, "([%.%?%!][”’]) (.)", "%1 ^%2") phonetic = gsub(phonetic, "<br>(.)", "<br>^%1") phonetic = gsub(phonetic, ": ([“‘])(.)", ": %1^%2") end phonetic = gsub(phonetic, "%^<b>", "<b>^") phonetic = gsub(phonetic, "%^+.", upper) phonetic = gsub(phonetic, "%^", "") end if norm_code == "wuu" then local wuu_pron = require("Module:wuu-pron") if phonetic:find(":") then phonetic = phonetic:sub(4) end phonetic = "''" .. wuu_pron.wugniu_format(phonetic) .. "''" elseif norm_code == "cmn-wuh" or norm_code == "wxa" then phonetic = "<span class=\"IPA\">[" .. phonetic .. "]</span>" elseif norm_code == "cdo" then local cdo_pron = require("Module:cdo-pron") phonetic = "<i>" .. phonetic .. "</i>" .. (not match(phonetic, "-[^ ]+-[^ ]+-[^ ]+-") and " / <span class=\"IPA\"><small>[" .. cdo_pron.sentence(phonetic) .. "]</small></span>" or "") else phonetic = "<i>" .. phonetic .. "</i>" end phonetic = "<span lang=\"zh-Latn\" style=\"color:var(--wikt-palette-darkgrey, #54595d)\">" .. phonetic .. "</span>" end local collapse_start, collapse_end, collapse_tag, collapse_border_div, collapse_border_div_end = '', '', '', '', '' simplified_start = '<br>' if collapsed then collapse_start = '<span class="vsHide">' collapse_end = '</span>' collapse_tag = '<span class="vsToggleElement" style="color:var(--wikt-palette-forestgreen, #235923);padding-left:10px"></span>' collapse_border_div = '<div class="vsSwitcher" data-toggle-category="usage examples" style="border-left: 1px solid #930; border-left-width: 2px; padding-left: 0.8em;">' collapse_border_div_end = '</div>' simplified_start = '<hr>' end if actual_title.nsText == '' and (not args.nocat) then -- fixme: probably categorize only if text contains the actual word if reference then cat = "[[Category:" .. lang_obj_wikt:getFullName() .. " terms with quotations]]" else cat = "[[Category:" .. lang_obj_wikt:getFullName() .. " terms with " .. category .. "]]" end end local zh_format_start_simp = "<span lang=\"zh-Hans\" class=\"Hans\">" local zh_format_start_trad = "<span lang=\"zh-Hant\" class=\"Hant\">" if simp then zh_format_start_simp, zh_format_start_trad = zh_format_start_trad, zh_format_start_simp end -- indentation, font and identity tags if ((norm_code == "cmn" and original_length > 7) or (norm_code ~= "cmn" and original_length > 5) or reference or collapsed or (match(example, "[,。?!、:; ]") and norm_code == "wuu") or (norm_code == "cdo" and original_length > 3) or (inline or "" ~= "")) then trad_text = zh_format_start_trad .. trad_text .. zh_format_end if not phonetic then translation = "<i>" .. translation .. "</i>" end if phonetic then phonetic = "<dd>" .. collapse_start .. phonetic translation = "<dd>" .. translation .. "</dd>" tr_tag = tag_start .. tr_desc .. tag_end .. collapse_end .. "</dd>" else translation = "<dd>" .. translation .. "</dd>" end if audio_file then audio = "<dd>[[File:" .. audio_file .. "]]</dd>" end if do_conv then trad_tag = collapse_start .. tag_start .. desc .. ", " .. trad_link .. tag_end .. collapse_end .. collapse_tag simp_text = simplified_start .. collapse_start .. zh_format_start_simp .. simp_text .. zh_format_end simp_tag = tag_start .. desc .. ", " .. simp_link .. tag_end .. collapse_end elseif norm_code == "vi" or norm_code == "ko" then trad_tag = collapse_start .. tag_start .. desc ..", " .. trad_link .. tag_end .. collapse_end .. collapse_tag else trad_tag = collapse_start .. tag_start .. desc ..", " .. trad_link .. " and " .. simp_link .. tag_end .. collapse_end .. collapse_tag end if reference then reference = "<dd>" .. collapse_start .. "<small><i>From:</i> " .. (ref_list[reference] and ref_list[reference][2] or reference) .. "</small>" .. collapse_end .. "</dd>" end return collapse_border_div .. "<dl class=\"zhusex\">" .. trad_text .. trad_tag .. (simp_text or "") .. (simp_tag or "") .. (reference or "") .. (phonetic and phonetic .. tr_tag or "") .. (audio or "") .. translation .. "</dl>" .. (cat or "") .. collapse_border_div_end else trad_text = zh_format_start_trad .. trad_text .. zh_format_end divider = "&nbsp; ―&nbsp; " if variety ~= "cmn" then ts_tag = tag_start .. desc .. tag_end tr_tag = tag_start .. tr_desc .. tag_end end if not phonetic then translation = "<i>" .. translation .. "</i>" end if do_conv then simp_text = "<span lang=\"zh-Hani\" class=\"Hani\">/</span>" .. zh_format_start_simp .. simp_text .. zh_format_end end if audio_file then audio = " [[File:" .. audio_file .. "]]" end return trad_text .. (simp_text or "") .. (ts_tag or "") .. divider .. (phonetic and phonetic .. (tr_tag or "") .. (audio or "") .. divider or "") .. translation .. (literal and " (literally, “" .. literal .. "”)" or "") .. (cat or "") end end -- function export.migrate(text, translation, ref) -- if type(text) == "table" then -- if not text.args or not text.args[1] then -- text = text:getParent() -- end -- if text.args[2] and text.args[2] ~= '' then -- ref = text.args[1] -- translation = text.args[3] -- text = text.args[2] -- else -- text = text.args[1] -- end -- end -- text = text:gsub('^[%*#: \n]+', ''):gsub('[ \n]+$', ''):gsub(' +', ' '):gsub('\n+', '<br>'):gsub('|', '\\'):gsub('\'\'\'%[%[', ' '):gsub('%]%]\'\'\'', ' '):gsub('%]%]%[%[', ' '):gsub('%]%]', ''):gsub('%[%[', '') -- :gsub('\'\'\'', ''):gsub(',', ','):gsub('!', '!'):gsub('%?', '?') -- if translation then -- if ref and ref ~= '' then -- return '{{zh-x|' .. text .. '|' .. translation .. '|ref=' .. ref .. '}}' -- else -- return '{{zh-x|' .. text .. '|' .. translation .. '}}' -- end -- else -- return text -- end -- end return export ig2jwguf3z830afjrj93kgho3dbxiwl Modul:zh-pron 828 130272 628894 553087 2024-11-06T15:41:17Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628894 Scribunto text/plain local m_str_utils = require("Module:string utilities") local codepoint = m_str_utils.codepoint local concat = table.concat local explode_chars = require("Module:Hani").explode_chars local find = m_str_utils.find local format = string.format local gmatch = m_str_utils.gmatch local gsub = m_str_utils.gsub local insert = table.insert local ipairs = ipairs local match = m_str_utils.match local pairs = pairs local split = m_str_utils.split local gsplit = m_str_utils.gsplit local export = {} local hanzi = require("Module:scripts").getByCode("Hani"):getCharacters() local bopomofo = require("Module:scripts").getByCode("Bopo"):getCharacters() local langname = { ["cdo"] = "Eastern Min", ["cjy"] = "Jin", ["cpx"] = "Puxian Min", ["cmn"] = "Mandarin", ["csp"] = "Southern Pinghua", ["dng"] = "Dungan", ["gan"] = "Gan", ["hak"] = "Hakka", ["hsn"] = "Xiang", ["hsn-lou"] = "Xiang", ["hsn-hya"] = "Xiang", ["mnp"] = "Northern Min", ["nan-hbl"] = "Hokkien", ["nan-luh"] = "Leizhou Min", ["nan-tws"] = "Teochew", ["wuu"] = "Wu", ["wuu-jih"] = "Wu", ["yue"] = "Cantonese", ["zhx-sic"] = "Sichuanese", ["zhx-tai"] = "Taishanese", } local langname_abbr = { ["m"] = "Mandarin", ["m-s"] = "Sichuanese", ["m-x"] = "Mandarin", ["m-nj"] = "Mandarin", ["dg"] = "Dungan", ["c"] = "Cantonese", ["c-dg"] = "Cantonese", ["c-t"] = "Taishanese", ["c-yj"] = "Cantonese", ["g"] = "Gan", ["h"] = "Hakka", ["j"] = "Jin", ["mb"] = "Northern Min", ["mc"] = "Middle Chinese", ["md"] = "Eastern Min", ["mn"] = "Hokkien", ["mn-t"] = "Teochew", ["mn-l"] = "Leizhou Min", ["oc"] = "Old Chinese", ["px"] = "Puxian Min", ["sp"] = "Southern Pinghua", ["w"] = "Wu", ["w-j"] = "Wu", ["x"] = "Xiang", ["x-l"] = "Loudi Xiang", ["x-h"] = "Hengyang Xiang", } local pos_aliases_cat = { ["n"] = "nouns", ["noun"] = "nouns", ["pn"] = "proper nouns", ["propn"] = "proper nouns", ["proper"] = "proper nouns", ["proper noun"] = "proper nouns", ["pron"] = "pronouns", ["pronoun"] = "pronouns", ["v"] = "verbs", ["verb"] = "verbs", ["a"] = "adjectives", ["adj"] = "adjectives", ["adjective"] = "adjectives", ["adv"] = "adverbs", ["adverb"] = "adverbs", ["prep"] = "prepositions", ["pre"] = "prepositions", ["postp"] = "postpositions", ["post"] = "postpositions", ["con"] = "conjunctions", ["conj"] = "conjunctions", ["conjunction"] = "conjunctions", ["part"] = "particles", ["particle"] = "particles", ["pref"] = "prefixes", ["prefix"] = "prefixes", ["suf"] = "suffixes", ["suffix"] = "suffixes", ["infix"] = "infixes", ["prov"] = "proverbs", ["proverb"] = "proverbs", ["id"] = "idioms", ["idiom"] = "idioms", ["ch"] = "chengyu", ["cy"] = "chengyu", ["4ci"] = "chengyu", ["ph"] = "phrases", ["phrase"] = "phrases", ["int"] = "interjections", ["intj"] = "interjections", ["interj"] = "interjections", ["interjection"] = "interjections", ["cl"] = "classifiers", ["cls"] = "classifiers", ["classifier"] = "classifiers", ["num"] = "numerals", ["numeral"] = "numerals", ["abb"] = "abbreviations", ["abbreviation"] = "abbreviations", ["det"] = "determiners", ["deter"] = "determiners", ["determiner"] = "determiners", ["syl"] = "syllables", ["syll"] = "syllables", ["syllable"] = "syllables", } local function make_note(text) if find(text, ": ") then text = "\n*" .. gsub(gsub(text, "\n", ".\n*"), "([:;]) ", "%1\n**") elseif find(text, "; ") then text = "\n*" .. gsub(text, "; ", ";\n*") end text = gsub(text, "“([^”]+)”", function (a) return "“" .. gsub(a, ";\n%*+", "; ") .. "”" end) -- fix bug about indentation levels (see https://en.wiktionary.org/w/index.php?oldid=78848651) local last_level = ("\n"..text):match("\n(%**)[^*\n][^\n]*$") local append = last_level:gsub("%*","<ul>") return "\n<div style=\"border: 1px solid var(--wikt-palette-forestgreen, #235923); padding: 4px; margin: 8px; background: var(--wikt-palette-lightyellow, #ffffe0); font-size: 85%\">'''Note''': " .. text .. ".</div>" .. append end local function ipa_format(text) local numbers = { ["1"]="¹",["2"]="²",["3"]="³",["4"]="⁴",["5"]="⁵",["0"]="⁰",["-"]="⁻",["/"]="/, /" } return gsub(text,"[0-5%-/]",numbers) end local function Consolas(text) return '<span style="font-family: Consolas, monospace;">' .. text .. "</span>" end local function format_IPA(text) return '<span class="IPA">' .. text .. "</span>" end function export.make(frame) local parent_args = frame:getParent().args local params = { pagename = {}, namespace = {}, dial = {}, mc = {}, oc = {}, cat = {}, only_cat = {type = "boolean"}, poj_form_zh_see = {type = "boolean"}, } for abbr, _ in pairs(langname_abbr) do params[abbr] = {} params[abbr .. "a"] = {list = true} params[abbr .. "_note"] = {} end local args = require("Module:parameters").process(parent_args, params, nil, "zh-pron", "make") local title = mw.title.getCurrentTitle() local pagename = args.pagename or mw.loadData("Module:headword/data").pagename local sortkey = (require("Module:Hani-sortkey").makeSortKey(pagename)) local is_single_hanzi = find(pagename, "^[" .. hanzi .. "]$") ~= nil local namespace = args.namespace or title.nsText local m_rom = args["m"] local m_s_rom = args["m-s"] local m_x_rom = args["m-x"] local m_nj_rom = args["m-nj"] local dg_rom = args["dg"] local c_rom = args["c"] local c_dg_rom = args["c-dg"] local c_t_rom = args["c-t"] local c_yj_rom = args["c-yj"] local g_rom = args["g"] local h_rom = args["h"] local j_rom = args["j"] local mb_rom = args["mb"] local md_rom = args["md"] local mn_rom = args["mn"] local mn_l_rom = args["mn-l"] local mn_t_rom = args["mn-t"] local px_rom = args["px"] local sp_rom = args["sp"] local w_rom = args["w"] local w_j_rom = args["w-j"] local x_rom = args["x"] local x_l_rom = args["x-l"] local x_h_rom = args["x-h"] local m_audio = args["ma"] local m_s_audio = args["m-sa"] local m_x_audio = args["m-xa"] local m_nj_audio = args["m-nja"] local dg_audio = args["dga"] local c_audio = args["ca"] local c_dg_audio = args["c-dga"] local c_t_audio = args["c-ta"] local c_yj_audio = args["c-yja"] local g_audio = args["ga"] local h_audio = args["ha"] local j_audio = args["ja"] local mb_audio = args["mba"] local md_audio = args["mda"] local mn_audio = args["mna"] local mn_l_audio = args["mn-la"] local mn_t_audio = args["mn-ta"] local px_audio = args["pxa"] local sp_audio = args["spa"] local w_audio = args["wa"] local w_j_audio = args["w-ja"] local x_audio = args["xa"] local x_l_audio = args["x-la"] local x_h_audio = args["x-ha"] local dial = args["dial"] local mc = args["mc"] local oc = args["oc"] local only_cat = args["only_cat"] -- True if arguments exist for the specified variety, using a language param abbreviation. local function has_var(var) return args[var] or #args[var .. "a"] > 0 end local function add_audio(text, audios, lang, show) -- This function has side effects for _, audio in ipairs(audios) do if audio == "y" then audio = format("%s-%s.ogg", lang, title.baseText) end insert(text, "\n*" .. (show and "::" or "**") .. " [[File:") insert(text, audio) insert(text, "]]") end if #audios > 0 then insert(text, "[[Category:") insert(text, langname[lang]) insert(text, " terms with audio pronunciation|" .. sortkey .. "]]") end end local function add_audio_show(text, audios, lang) add_audio(text, audios, lang, "show") end local text = {} --the pronunciation table if not only_cat then --The whole table consists of 4 parts --"textShow" contains Part 1, 3 and 4 local textShow = {'<div class="toccolours zhpron" style="overflow:auto; max-width:500px; font-size:100%">'} --"textHide" is Part 2 local textHide = {} local function show(txt) insert(textShow, txt) end local function hide(txt) insert(textHide, txt) end local function hide_note(var) local note = args[var .. "_note"] if note then hide(make_note(note)) end end show('<div class="vsSwitcher" data-toggle-category="pronunciations">') --Part 1 and 2, "Pronunciation" and "Pronunciation expressed in different romanizations" if m_rom or m_s_rom or m_x_rom or m_nj_rom or dg_rom then show("\n* [[w:Mandarin Chinese|Mandarin]]") end if has_var("m") then local m_args = {} local m_pron = require("Module:cmn-pron") if m_rom then local str_analysis = m_pron.str_analysis local other_m_vars = has_var("m-s") or has_var("m-x") or has_var("m-nj") or has_var("dg") show("\n" .. str_analysis(m_rom, "head", other_m_vars)) m_args[1] = str_analysis(m_rom, "") for i = 2, 5 do m_args[i] = str_analysis(m_rom, tostring(i)) end local m_args_params_prefixed_with_1 = {"n", "na", "nb", "nc", "nd"} for _, base in ipairs(m_args_params_prefixed_with_1) do for i = 1, 5 do local param = tostring(i) .. base m_args[param] = str_analysis(m_rom, param) end end local m_args_params = {"py", "cap", "tl", "tl2", "tl3", "a", "audio", "er", "ertl", "ertl2", "ertl3", "era", "eraudio"} for _, base in ipairs(m_args_params) do m_args[base] = str_analysis(m_rom, base) for i = 2, 5 do local param = tostring(i) .. base m_args[param] = str_analysis(m_rom, param) end end end for i, audio in ipairs(m_audio) do local ind = i == 1 and "" or tostring(i) m_args[ind .. "a"] = audio end show(m_pron.make_audio(m_args)) hide(m_pron.make_args(m_args)) hide_note("m") end if (not m_rom) and (m_s_rom or m_x_rom or m_nj_rom or dg_rom) then hide("\n* [[w:Mandarin Chinese|Mandarin]]") end if has_var("m-s") then local m_s_pron = require("Module:zhx-sic-pron") local m_s_processed = gsub(m_s_rom:gsub("/", " / "), "([%d-])([%a])", "%1 %2") :gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>") if m_s_rom then show("\n*: <small>(<i>[[w:Sichuanese dialect|Chengdu]], [[w:Sichuanese Pinyin|Sichuanese Pinyin]]</i>)</small>: ") show(Consolas(m_s_processed)) end add_audio_show(textShow, m_s_audio, "zhx-sic") hide("\n** <small>(<i>[[w:Chengdu|Chengdu]]</i>)</small>") hide("\n*** <small><i>[[w:Sichuanese Pinyin|Sichuanese Pinyin]]</i></small>: ") hide(Consolas(m_s_processed)) local xinwenz = m_s_pron.convert(m_s_rom, "SWZ") if xinwenz then hide("\n*** <small><i>[[w:zh:四川话拉丁化新文字|Scuanxua Ladinxua Xin Wenz]]</i></small>: ") hide(Consolas(m_s_pron.convert(m_s_rom, "SWZ"))) end hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:zh:成都话|key]])</sup></small>: ") hide(format_IPA(m_s_pron.convert(m_s_rom, "IPA"))) hide_note("m-s") end if has_var("m-x") then local m_x_pron = require("Module:cmn-pron-Xian") local m_x_display, m_x_hidden, m_x_ipa = m_x_pron.py_process(m_x_rom) show("\n*: <small>(<i>[[w:Guanzhong dialect|Xi'an]], [[Wiktionary:About Chinese/Xi'an|Guanzhong Pinyin]]</i>)</small>: ") show(Consolas(m_x_display)) add_audio_show(textShow, m_x_audio, "cmn") hide("\n** <small>(<i>[[w:Xi'an|Xi'an]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Xi'an|Guanzhong Pinyin]]</i></small>: ") hide(Consolas(m_x_hidden)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Guanzhong dialect|key]])</sup></small>: ") hide(format_IPA(m_x_ipa)) hide_note("m-x") end if has_var("m-nj") then local m_nj_pron = require("Module:cmn-pron-Nanjing") local m_nj_display, m_nj_hidden, m_nj_num, m_nj_ipa = m_nj_pron.py_process(m_nj_rom) show("\n*: <small>(<i>[[w:Nanjing dialect|Nanjing]], [[Wiktionary:About Chinese/Nanjing|Nanjing Pinyin]]</i>)</small>: ") show(Consolas(m_nj_display)) add_audio_show(textShow, m_nj_audio, "cmn") hide("\n** <small>(<i>[[w:Nanjing|Nanjing]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Nanjing|Nanjing Pinyin]]</i></small>: ") hide(Consolas(m_nj_hidden)) hide("\n*** <small><i>[[Wiktionary:About Chinese/Nanjing|Nanjing Pinyin]] (numbered)</i></small>: ") hide(Consolas(m_nj_num)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Nanjing dialect|key]])</sup></small>: ") hide(format_IPA(m_nj_ipa)) hide_note("m-nj") end if has_var("dg") then local dg_pron = require("Module:dng-pron") local dg_processed = dg_pron.process(dg_rom) if dg_rom then show("\n*: <small>(<i>[[w:Dungan language|Dungan]], [[w:Dungan alphabet|Cyrillic]] and [[Wiktionary:Dungan transliteration|Wiktionary]]</i>)</small>: ") show(Consolas(dg_processed)) end add_audio_show(textShow, dg_audio, "dng") hide("\n** <small>(<i>[[w:Dungan language|Dungan]]</i>)</small>") hide("\n*** <small><i>[[w:Dungan alphabet|Cyrillic]] and [[Wiktionary:Dungan transliteration|Wiktionary]]</i></small>: ") hide(Consolas(dg_processed)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Dungan phonology|key]])</sup></small>: ") hide(format_IPA(dg_pron.convert(dg_rom, "IPA")) .. "\n**: <small>(Note: Dungan pronunciation is currently experimental and may be inaccurate.)</small>") hide_note("dg") end if has_var("c") or has_var("c-dg") or has_var("c-t") or has_var("c-yj") then if c_rom or c_dg_rom or c_t_rom or c_yj_rom then local c_count = (c_rom and 1 or 0) + (c_dg_rom and 1 or 0) + (c_t_rom and 1 or 0) + (c_yj_rom and 1 or 0) local c_sep = (c_count == 1) and " " or "\n*: " show("\n* [[w:Cantonese|Cantonese]]") hide("\n* [[w:Cantonese|Cantonese]]") if c_rom then local c_pron = require("Module:yue-pron") show(c_sep) show("<small>(<i>") if c_count > 1 then show("[[w:Guangzhou Cantonese|Guangzhou]]–[[w:Hong Kong Cantonese|Hong Kong]], ") end show("[[w:Jyutping|Jyutping]]</i>)</small>: ") show(Consolas(c_pron.show_standard(c_rom, is_single_hanzi))) add_audio_show(textShow, c_audio, "yue") hide(c_pron.hide_standard(c_rom, is_single_hanzi)) if not args["c_note"] and is_single_hanzi and (c_rom:find("^[ao]") or c_rom:find(",[ao]")) then args["c_note"] = "The zero initial " .. format_IPA("/∅-/") .. " is commonly pronounced with a ''ng''-initial " .. format_IPA("/ŋ-/") .. " in some varieties of Cantonese, including Hong Kong Cantonese" end hide_note("c") end if c_dg_rom then local c_dg_pron = require("Module:yue-pron/Dongguan") local c_dg_display = c_dg_rom:gsub(","," / ") :gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>") show(c_sep .. "<small>(<i>[[w:zh:東莞話|Dongguan]], [[Wiktionary:About Chinese/Cantonese/Dongguan|Jyutping++]]</i>)</small>: ") show(Consolas(c_dg_display)) add_audio_show(textShow, c_dg_audio, "yue") hide("\n** <small>(<i>[[w:zh:東莞話|Dongguan]], [[w:Guancheng Subdistrict|Guancheng]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Cantonese/Dongguan|Jyutping++]]</i></small>: ") hide(Consolas(c_dg_display)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:zh:東莞話|key]])</sup></small>: ") hide(format_IPA(c_dg_pron.jpp_to_ipa(c_dg_rom))) hide_note("c-dg") end if c_t_rom then local c_t_pron = require("Module:yue-pron/Taishanese") local c_t_display = c_t_rom:gsub(","," / ") :gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>") show(c_sep .. "<small>(<i>[[w:Taishanese|Taishan]], [[Wiktionary:About Chinese/Cantonese/Taishanese|Wiktionary]]</i>)</small>: ") show(Consolas(c_t_display)) add_audio_show(textShow, c_t_audio, "zhx-tai") hide("\n** <small>(<i>[[w:Taishanese|Taishanese]], [[w:Taicheng Subdistrict|Taicheng]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Cantonese/Taishanese|Wiktionary]]</i></small>: ") hide(Consolas(c_t_display)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Taishanese|key]])</sup></small>: ") hide(format_IPA(c_t_pron.hoisanva_to_ipa(c_t_rom))) hide_note("c-t") end if c_yj_rom then local c_yj_pron = require("Module:yue-pron/Yangjiang") local c_yj_display = c_yj_rom:gsub(","," / ") :gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>") show(c_sep .. "<small>(<i>[[w:zh:陽江話|Yangjiang]], [[Wiktionary:About Chinese/Cantonese/Yangjiang|Jyutping++]]</i>)</small>: ") show(Consolas(c_yj_display)) add_audio_show(textShow, c_yj_audio, "yue") hide("\n** <small>(<i>[[w:zh:陽江話|Yangjiang Yue]], [[w:Jiangcheng, Yangjiang|Jiangcheng]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Cantonese/Yangjiang|Jyutping++]]</i></small>: ") hide(Consolas(c_yj_display)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Gao–Yang Yue|key]])</sup></small>: ") hide(format_IPA(c_yj_pron.jpp_to_ipa(c_yj_rom))) hide_note("c-yj") end end end if has_var("g") then local g_pron = require("Module:gan-pron") if g_rom then show("\n* [[w:Gan Chinese|Gan]] <small>(<i>[[Wiktionary:About Chinese/Gan|Wiktionary]]</i>)</small>: ") show(Consolas(g_pron.rom(g_rom))) end add_audio_show(textShow, g_audio, "gan") hide("\n* [[w:Gan Chinese|Gan]]") hide("\n** <small>(<i>[[w:Nanchang dialect|Nanchang]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Gan|Wiktionary]]</i></small>: ") hide(Consolas(g_pron.rom(g_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Nanchang dialect|key]])</sup></small>: ") hide(format_IPA("/" .. g_pron.ipa(g_rom) .. "/")) hide_note("g") end if h_rom and (find(h_rom, "pfs=.") or find(h_rom, "gd=.") or find(h_rom, "hrs=.") or find(h_rom, "ct=.")) or #h_audio > 0 then local h_pron = require("Module:hak-pron") if find(h_rom, "pfs=.") or find(h_rom, "gd=.") or find(h_rom, "hrs=.") or find(h_rom, "ct=.") then show("\n* [[w:Hakka Chinese|Hakka]]") show(h_pron.rom_display(h_rom,"yes")) end add_audio_show(textShow, h_audio, "hak") hide("\n* [[Wiktionary:About Chinese/Hakka|Hakka]]") if h_rom then hide(h_pron.rom_display(h_rom,"")) end hide_note("h") end if has_var("j") then local j_pron = require("Module:cjy-pron") if j_rom then show("\n* [[w:Jin Chinese|Jin]] <small>(<i>[[Wiktionary:About Chinese/Jin|Wiktionary]]</i>)</small>: ") show(Consolas(j_pron.rom(j_rom))) end add_audio_show(textShow, j_audio, "cjy") hide("\n* [[w:Jin Chinese|Jin]]") hide("\n** <small>(<i>[[w:Taiyuan|Taiyuan]]</i>)<sup>[[:w:zh:太原話|+]]</sup></small>") if j_rom then hide("\n*** <small><i>[[Wiktionary:About Chinese/Jin|Wiktionary]]</i></small>: ") hide(Consolas(j_pron.rom(j_rom))) end local no_sandhi = false local roms = split(j_rom, "/") for i = 1, #roms do if find(roms[i], " [^ ]+ ") then no_sandhi = true break end end hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] (<i>old-style" .. (no_sandhi and ", no sandhi" or "") .. "</i>)</small>: ") hide(format_IPA("/" .. j_pron.ipa(j_rom, no_sandhi and "no_sandhi" or "") .. "/")) hide_note("j") end if has_var("mb") then local mb_pron = require("Module:mnp-pron") if mb_rom then show("\n* [[w:Northern Min|Northern Min]] <small>(<i>[[w:Kienning Colloquial Romanized|KCR]]</i>)</small>: ") show(Consolas(mb_pron.rom(mb_rom))) end add_audio_show(textShow, mb_audio, "mnp") hide("\n* [[w:Northern Min|Northern Min]]") hide("\n** <small>(<i>[[w:Jian'ou dialect|Jian'ou]]</i>)</small>") if mb_rom then hide("\n*** <small><i>[[w:Kienning Colloquial Romanized|Kienning Colloquial Romanized]]</i></small>: ") hide(Consolas(mb_pron.rom(mb_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Jian'ou dialect|key]])</sup></small>: ") hide(format_IPA(mb_pron.ipa(mb_rom))) end hide_note("mb") end if has_var("md") then local md_pron = require("Module:cdo-pron") if md_rom then show("\n* [[w:Eastern Min|Eastern Min]] <small>(<i>[[Wiktionary:About Chinese/Eastern Min|BUC]]</i>)</small>: ") show(Consolas(md_pron.rom(md_rom))) end add_audio_show(textShow, md_audio, "cdo") hide("\n* [[w:Eastern Min|Eastern Min]]") hide("\n** <small>(<i>[[w:Fuzhou dialect|Fuzhou]]</i>)</small>") if md_rom then hide("\n*** <small><i>[[Wiktionary:About Chinese/Eastern Min|Bàng-uâ-cê]]</i></small>: ") hide(Consolas(md_pron.rom(md_rom))) if not (md_rom and find(md_rom, "([^/]*)-([^/]*)-([^/]*)-([^/]*)-([^/]*)")) then hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Fuzhou dialect|key]])</sup></small>: ") hide(format_IPA("/" .. md_pron.ipa(md_rom) .. "/")) else hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Fuzhou dialect|key]])</sup> (<i>no sandhi</i>)</small>: ") hide(format_IPA("/" .. md_pron.ipa(md_rom, "no_sandhi") .. "/")) end end hide_note("md") end if has_var("px") then local px_pron = require("Module:cpx-pron") show("\n* [[w:Puxian Min|Puxian Min]]") show(px_pron.rom_display(px_rom,"brief")) add_audio_show(textShow, px_audio, "cpx") hide("\n* [[Wiktionary:About Chinese/Puxian Min|Puxian Min]]") if px_rom then hide(px_pron.rom_display(px_rom,"complete")) end hide_note("px") end if has_var("mn") or has_var("mn-l") or has_var("mn-t") then local mn_pron, mn_l_pron if has_var("mn") or has_var("mn-t") then mn_pron = require("Module:nan-pron") end if has_var("mn-l") then mn_l_pron = require("Module:nan-pron-Leizhou") end if mn_rom or mn_t_rom or mn_l_rom then show("\n* [[w:Southern Min|Southern Min]]") if mn_rom then show(((mn_l_rom or mn_t_rom) and "\n*:" or "") .. " <small>(<i>[[w:Hokkien|Hokkien]], [[w:Pe̍h-ōe-jī|POJ]]</i>)</small>: ") show(Consolas(mn_pron.poj_display(mn_pron.poj_check_invalid(mn_rom)))) add_audio_show(textShow, mn_audio, "nan-hbl") end if mn_t_rom then show(((mn_rom or mn_l_rom) and "\n*:" or "") .. " <small>(<i>[[w:Teochew dialect|Teochew]], [[w:Peng'im|Peng'im]]</i>)</small>: ") show(Consolas(mn_pron.pengim_display(mn_t_rom))) add_audio_show(textShow, mn_t_audio, "nan-tws") end if mn_l_rom then show(((mn_rom or mn_t_rom) and "\n*:" or "") .. " <small>(<i>[[w:Leizhou Min|Leizhou]], Leizhou Pinyin</i>)</small>: ") show(Consolas(mn_l_pron.rom(mn_l_rom))) add_audio_show(textShow, mn_l_audio, "nan-luh") end end hide("\n* [[w:Southern Min|Southern Min]]") if has_var("mn") then hide(mn_pron.generate_all(mn_rom)) hide_note("mn") end if has_var("mn-t") then hide("\n** <small>(<i>[[w:Teochew dialect|Teochew]]</i>)</small>") hide("\n*** <small><i>[[w:Peng'im|Peng'im]]</i></small>: ") hide(Consolas(mn_pron.pengim_display(mn_t_rom))) hide("\n*** <small><i>[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]-like</i></small>: ") hide(Consolas(mn_pron.pengim_to_pojlike_conv(mn_t_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:zh:潮州話#語音|key]])</sup></small>: ") hide(format_IPA(mn_pron.pengim_to_ipa_conv(mn_t_rom))) hide_note("mn-t") end if has_var("mn-l") then hide("\n** <small>(<i>[[w:Leizhou Min|Leizhou]]</i>)</small>") hide("\n*** <small><i>Leizhou Pinyin</i></small>: ") hide(Consolas(mn_l_pron.rom(mn_l_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]</small>: ") hide(format_IPA(mn_l_pron.ipa(mn_l_rom))) hide_note("mn-l") end end if has_var("sp") then local sp_pron = require("Module:csp-pron") local sp_processed = sp_rom:gsub(",([^ ])",", %1") :gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>") show("\n* [[w:Pinghua|Southern Pinghua]] <small>(<i>[[w:Pinghua|Nanning]], [[Wiktionary:About Chinese/Southern Pinghua|Jyutping++]]</i>)</small>: ") show(Consolas(sp_processed)) add_audio_show(textShow, sp_audio, "csp") hide("\n* [[w:Pinghua|Southern Pinghua]]") hide("\n** <small>(<i>[[w:Pinghua|Nanning Pinghua]], [[w:Nanning|Tingzi]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Southern Pinghua|Jyutping++]]</i></small>: ") hide(Consolas(sp_processed)) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Pinghua#Phonology|key]])</sup></small>: ") hide(format_IPA(sp_pron.jpp_to_ipa(sp_rom))) hide_note("sp") end if has_var("w") or has_var("w-j") then local w_count = (w_rom and 1 or 0) + (w_j_rom and 1 or 0) local w_show, w_hide, w_j_show, w_j_hide if w_rom then w_show, w_hide = require("Module:wuu-pron").make(w_rom, w_count) end if w_j_rom then w_j_show, w_j_hide = require("Module:wuu-pron/Jinhua").make(w_j_rom, w_count) end if w_count > 1 then show("\n* [[w:Wu Chinese|Wu]] <small>(<i>[[Wiktionary:About Chinese/Wu|Wugniu]]</i>)</small>") else show("\n* [[w:Wu Chinese|Wu]]") end show(w_show) show(w_j_show) add_audio_show(textShow, w_audio, "wuu") hide("\n* [[w:Wu Chinese|Wu]]") hide(w_hide) hide(w_j_hide) -- add_audio(textHide, w_audio, "wuu") hide_note("w") hide_note("w-j") end if has_var("x") or has_var("x-l") or has_var("x-h") then local x_pron = has_var("x") and require("Module:hsn-pron") or nil local x_l_pron = has_var("x-l") and require("Module:hsn-pron-Loudi") or nil local x_h_pron = has_var("x-h") and require("Module:hsn-pron-Hengyang") or nil if x_rom or x_l_rom or x_h_rom then show("\n* [[w:Xiang Chinese|Xiang]]") if x_rom then show(((x_l_rom or x_h_rom) and "\n*:" or "") .. " <small>(<i>[[w:Changsha dialect|Changsha]], [[Wiktionary:About Chinese/Xiang|Wiktionary]]</i>)</small>: ") show(Consolas(x_pron.rom(x_rom))) add_audio_show(textShow, x_audio, "hsn") end if x_l_rom then show(((x_rom or x_h_rom) and "\n*:" or "") .. " <small>(<i>[[w:zh:娄底话|Loudi]], [[Wiktionary:About Chinese/Xiang/Loudi|Wiktionary]]</i>)</small>: ") show(Consolas(x_l_pron.rom(x_l_rom))) add_audio_show(textShow, x_l_audio, "hsn-lou") end if x_h_rom then show(((x_rom or x_l_rom) and "\n*:" or "") .. " <small>(<i>[[w:Hengyang dialect|Hengyang]], [[Wiktionary:About Chinese/Xiang/Hengyang|Wiktionary]]</i>)</small>: ") show(Consolas(x_h_pron.rom(x_h_rom))) add_audio_show(textShow, x_h_audio, "hsn-hya") end end hide("\n* [[w:Xiang Chinese|Xiang]]") if x_rom then local x_diff = x_pron.stylediff(x_rom) hide("\n** <small>(<i>[[w:Changsha dialect|Changsha]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Xiang|Wiktionary]]</i></small>: ") hide(Consolas(x_pron.rom(x_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Changsha dialect|key]])</sup>") hide(x_diff and " (<i>old-style</i>)" or "") hide("</small>: ") hide(format_IPA("/" .. x_pron.ipa(x_rom) .. "/")) if x_diff then hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Changsha dialect|key]])</sup> (<i>new-style</i>)</small>: ") hide(format_IPA("/" .. x_pron.ipa(x_rom, "new") .. "/")) end hide_note("x") end if x_l_rom then hide("\n** <small>(<i>[[w:zh:娄底话|Loudi]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Xiang/Loudi|Wiktionary]]</i></small>: ") hide(Consolas(x_l_pron.rom(x_l_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:zh:娄底话|key]])</sup>") hide("</small>: ") hide(format_IPA("/" .. x_l_pron.ipa(x_l_rom) .. "/")) hide_note("x-l") end if x_h_rom then hide("\n** <small>(<i>[[w:Hengyang dialect|Hengyang]]</i>)</small>") hide("\n*** <small><i>[[Wiktionary:About Chinese/Xiang/Hengyang|Wiktionary]]</i></small>: ") hide(Consolas(x_h_pron.rom(x_h_rom))) hide("\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Hengyang dialect|key]])</sup>") hide("</small>: ") hide(format_IPA("/" .. x_h_pron.ipa(x_h_rom) .. "/")) hide_note("x-h") end end -- combine textShow and textHide into text text = { concat(textShow), '<span class="vsToggleElement" style="float: right;"></span>\n<div class="vsHide" style="clear:right;">\n<hr>\n', concat(textHide), "</div></div>" } --Part 3 "Dialectal data" if dial ~= "n" and is_single_hanzi then local success, m_dial = pcall(mw.loadData, "Module:zh/data/dial-pron/" .. pagename) if success then local dialPron = {} local temporary = {} if dial and find(dial, "^[0-9\\,]+$") then for element in gsplit(dial, ",") do insert(dialPron, m_dial[tonumber(element)]) end else for _, element in ipairs(m_dial) do insert(dialPron, element) end end for _, set in ipairs(dialPron) do for _, object in ipairs(set[2]) do insert(temporary, object) end end insert(text, '\n<hr style="clear:right;">\n<div class="vsSwitcher" data-toggle-category="pronunciations" style="background-color:#FAFFFA">\n* ' .. '<span style="color:#3366bb">Dialectal data</span>' .. '<span class="vsToggleElement" style="float:right; padding:0 0"></span>\n' .. '<div class="vsHide">' ) insert(text, '\n{| class="wikitable" ' .. '" style="width:100%; margin:0; ' .. 'text-align:center; border-collapse: collapse; border-style: hidden; display: table;"') local locStart = "\n|-\n!" local readingStart = concat({'\n!style="background:#E8ECFA; width:9em"|', '<div style="float: right; clear: right; font-size:60%"><span class="plainlinks">[', tostring(mw.uri.fullUrl("Module:zh/data/dial-pron/" .. pagename, {["action"]="edit"})), ' edit]</span></div><span lang="zh" class="Hani">'}) local locEnd = '<span class="IPA">' local headclr = 'style="background:#E8ECFA"|' local mclr = 'style="background:#FAF5F0"|' local jclr = 'style="background:#FAF5F0"|' local wclr = 'style="background:#F4F0FA"|' local huclr = 'style="background:#FAF9F0"|' local xclr = 'style="background:#F0F2FA"|' local gclr = 'style="background:#F0FAF3"|' local haclr = 'style="background:#FAF0F6"|' local cclr = 'style="background:#F0F5FA"|' local minclr = 'style="background:#F7FAF0"|' local clrList = { mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, jclr, jclr, jclr, wclr, wclr, wclr, wclr, huclr, huclr, xclr, xclr, gclr, haclr, haclr, cclr, cclr, cclr, minclr, minclr, minclr, minclr, minclr } local locList = { concat({headclr, "Variety\n!", headclr, "Location"}), concat({"rowspan=17 ", mclr, "Mandarin\n!", mclr, "[[w:Beijing dialect|Beijing]]\n|", mclr}), concat({mclr, "[[w:Harbin dialect|Harbin]]\n|", mclr}), concat({mclr, "[[w:Tianjin dialect|Tianjin]]\n|", mclr}), concat({mclr, "[[w:Jinan dialect|Jinan]]\n|", mclr}), concat({mclr, "[[w:Qingdao dialect|Qingdao]]\n|", mclr}), concat({mclr, "[[w:zh:鄭州話|Zhengzhou]]\n|", mclr}), concat({mclr, "[[w:Xi'an dialect|Xi'an]]\n|", mclr}), concat({mclr, "[[w:Xining|Xining]]\n|", mclr}), concat({mclr, "[[w:Yinchuan|Yinchuan]]\n|", mclr}), concat({mclr, "[[w:zh:蘭州話|Lanzhou]]\n|", mclr}), concat({mclr, "[[w:zh:烏魯木齊話|Ürümqi]]\n|", mclr}), concat({mclr, "[[w:zh:武漢話|Wuhan]]\n|", mclr}), concat({mclr, "[[w:Chengdu dialect|Chengdu]]\n|", mclr}), concat({mclr, "[[w:zh:貴陽話|Guiyang]]\n|", mclr}), concat({mclr, "[[w:Kunming dialect|Kunming]]\n|", mclr}), concat({mclr, "[[w:Nanjing dialect|Nanjing]]\n|", mclr}), concat({mclr, "[[w:zh:合肥話|Hefei]]\n|", mclr}), concat({"rowspan=3 ", jclr, "Jin\n!", jclr, "[[w:zh:太原話|Taiyuan]]\n|", jclr}), concat({jclr, "[[w:Pingyao|Pingyao]]\n|", jclr}), concat({jclr, "[[w:Hohhot dialect|Hohhot]]\n|", jclr}), concat({"rowspan=4 ", wclr, "Wu\n!", wclr, "[[w:Shanghai dialect|Shanghai]]\n|", wclr}), concat({wclr, "[[w:Suzhou dialect|Suzhou]]\n|", wclr}), concat({wclr, "[[w:Hangzhou dialect|Hangzhou]]\n|" , wclr}), concat({wclr, "[[w:Wenzhou dialect|Wenzhou]]\n|", wclr}), concat({"rowspan=2 ", huclr, "Hui\n!", huclr, "[[w:Shexian|Shexian]]\n|", huclr}), concat({huclr, "[[w:zh:屯溪話|Tunxi]]\n|", huclr}), concat({"rowspan=2 ", xclr, "Xiang\n!", xclr, "[[w:Changsha dialect|Changsha]]\n|", xclr}), concat({xclr, "[[w:zh:湘潭話|Xiangtan]]\n|", xclr}), concat({gclr, "Gan\n!", gclr, "[[w:Nanchang dialect|Nanchang]]\n|", gclr}), concat({"rowspan=2 ", haclr, "Hakka\n!", haclr, "[[w:Meixian dialect|Meixian]]\n|", haclr}), concat({haclr, "[[w:Taoyuan, Taiwan|Taoyuan]]\n|", haclr}), concat({"rowspan=3 ", cclr, "Cantonese\n!", cclr, "[[w:Guangzhou dialect|Guangzhou]]\n|", cclr}), concat({cclr, "[[w:Nanning|Nanning]]\n|", cclr}), concat({cclr, "[[w:Hong Kong dialect|Hong Kong]]\n|", cclr}), concat({"rowspan=5 ", minclr, "Min\n!", minclr, "[[w:Xiamen dialect|Xiamen]] (Hokkien)\n|", minclr}), concat({minclr, "[[w:Fuzhou dialect|Fuzhou]] (Eastern Min)\n|", minclr}), concat({minclr, "[[w:Jian'ou dialect|Jian'ou]] (Northern Min)\n|", minclr}), concat({minclr, "[[w:Shantou dialect|Shantou]] (Teochew)\n|", minclr}), concat({minclr, "[[w:Haikou dialect|Haikou]] (Hainanese)\n|", minclr})} local function ipa_correct(ipa, location) if location == 22 then return (gsub(ipa, "13", "23")) else return ipa end end local function fmtDial(text, location) local fmttedPron = {} if text == "" then return "" end for pronunciation in gsplit(text, "|") do local ipa = match(pronunciation, "^[^%(%)" .. hanzi .. "~,]+") ipa = gsub(ipa, "([ptk])([0-5])", "%1̚%2") local environ = match(pronunciation, "[%(%)" .. hanzi .. "~,]*$") or false insert(fmttedPron, "<span class=\"IPA\"><small>/" .. tostring(ipa_format(ipa_correct(ipa, location))) .. "/</small></span>" .. (environ and " <span class=\"Hani\" lang=\"zh\"><small>"..environ.."</small></span>" or nil)) end return concat(fmttedPron, "<br>") end for locationNo = 1, 40 do for readingNo = 1, #dialPron do if readingNo == 1 then insert(text, locStart) insert(text, locList[locationNo]) end if locationNo == 1 then local situation = dialPron[readingNo][1] insert(text, readingStart) insert(text, pagename) insert(text, (pagename ~= situation and " (" .. gsub(situation, pagename, "<b>" .. pagename .. "</b>") .. ")" or "")) insert(text, "</span>") else insert(text, (readingNo == 1 and "" or "\n|" .. clrList[locationNo-1])) insert(text, locEnd) insert(text, fmtDial(dialPron[readingNo][2][locationNo-1], locationNo)) insert(text, "</span>") end end end insert(text, "\n|}</div></div>") end end --Part 4 "Middle Chinese & Old Chinese" local mc_preview, oc_preview local m_ltc_pron, m_och_pron -- !!! -- The following function modifies the tables generated by mod:ltc-pron and mod:och-pron, shifting them -- from using "mw-collapsible" to using "vsSwitcher", because the former -- can not collapse on the mobile site and makes Chinese entries a mess. -- It is supposed to be a temporary solution. -- !!! local function shiftCustomtoggle2Vsswitcher(s) local result result = (s:gsub( '\n%* <div title="expand" class="mw%-customtoggle[^>]+">', '\n<div class="vsSwitcher" data-toggle-category="pronunciations">\n* ' ):gsub( '<span style="float:right; border:1px solid #ccc; border%-radius:1px; padding:0 0; font%-size:90%%">▼</span>(.-)</div>\n{| class="wikitable', '<span class="vsToggleElement" style="float:right; padding:0 0"></span>%1\n<div class="vsHide">\n{| class="wikitable' ):gsub( '{| class="wikitable mw%-collapsible mw%-collapsed" id="[^"]+"', '{| class="wikitable"' ):gsub( "\n|}$", "\n|}</div></div>" )) return result end if mc then m_ltc_pron = require("Module:ltc-pron") mc_preview = m_ltc_pron.retrieve_pron(pagename, false, mc, true) if not mc_preview then require("Module:debug/track")("zh-pron/Middle Chinese data not found") mc = nil end end if oc then m_och_pron = require("Module:och-pron") oc_preview = m_och_pron.generate_show(pagename, oc) if not oc_preview then require("Module:debug/track")("zh-pron/Old Chinese data not found") oc = nil end end if mc or oc then insert(text, '\n<hr style="clear:right;">\n<div style="background-color:var(--wikt-palette-lighterblue, #ebf4ff)">') if mc then insert(text, shiftCustomtoggle2Vsswitcher(m_ltc_pron.ipa(mc, mc_preview))) end if oc then insert(text, shiftCustomtoggle2Vsswitcher(m_och_pron.ipa(oc, oc_preview))) end insert(text, "</div>") end insert(text, "</div>") if namespace == "" or namespace == "-" then if mc then if is_single_hanzi then if mc_preview:find("k̚$") then insert(text, "[[Category:Middle Chinese -k characters|" .. sortkey .. "]]") elseif mc_preview:find("t̚$") then insert(text, "[[Category:Middle Chinese -t characters|" .. sortkey .. "]]") elseif mc_preview:find("p̚$") then insert(text, "[[Category:Middle Chinese -p characters|" .. sortkey .. "]]") end end end if not args["cat"] then insert(text, "[[Category:zh-pron usage missing POS]]") end end end local conv_text = {} --categories if namespace == "" or namespace == "-" then local catText = args["cat"] or "" local cat_start = "[[Category:" local cat_end = "]]" if w_rom then w_rom = gsub(w_rom, "%d", "") end local function add_cat(cat_table, name, cat) insert(cat_table, cat_start .. name .. cat .. "|" .. sortkey .. cat_end) end local cats = split(catText, ",", true) for i = 1, #cats do if pos_aliases_cat[cats[i]] == "chengyu" then insert(cats, i, "idioms") break end end insert(cats, 1, "lemmas") if is_single_hanzi then insert(cats, 2, "hanzi") end for i = 1, #cats do local cat = cats[i] if cat == "" then break end cat = gsub(cat, "^ +", "") if find(cat, ":") then local cat_split = split(cat, ":", true) local lang_name = langname_abbr[cat_split[1]] local category = pos_aliases_cat[cat_split[2]] or cat add_cat(conv_text, "Chinese ", category) insert(conv_text, cat_start .. lang_name .. " " .. category .. "|" .. sortkey .. cat_end) else cat = pos_aliases_cat[cat] or cat add_cat(conv_text, "Chinese ", cat) if m_rom or m_x_rom or m_nj_rom then add_cat(conv_text, "Mandarin ", cat) end if has_var("m-s") then add_cat(conv_text, "Sichuanese ", cat) end if has_var("dg") then add_cat(conv_text, "Dungan ", cat) end if c_rom or c_dg_rom or c_yj_rom then add_cat(conv_text, "Cantonese ", cat) end if c_t_rom then add_cat(conv_text, "Taishanese ", cat) end if has_var("g") then add_cat(conv_text, "Gan ", cat) end if h_rom and (find(h_rom, "pfs=.") or find(h_rom, "gd=.")) or #h_audio > 0 then add_cat(conv_text, "Hakka ", cat) end if has_var("j") then add_cat(conv_text, "Jin ", cat) end if has_var("mb") then add_cat(conv_text, "Northern Min ", cat) end if has_var("md") then add_cat(conv_text, "Eastern Min ", cat) end if has_var("mn") then add_cat(conv_text, "Hokkien ", cat) end if has_var("mn-t") then add_cat(conv_text, "Teochew ", cat) end if has_var("mn-l") then add_cat(conv_text, "Leizhou Min ", cat) end if has_var("px") then add_cat(conv_text, "Puxian Min ", cat) end if has_var("sp") then add_cat(conv_text, "Southern Pinghua ", cat) end if has_var("w") then add_cat(conv_text, "Wu ", cat) end if has_var("w-j") then add_cat(conv_text, "Wu ", cat) end if has_var("x") then add_cat(conv_text, "Xiang ", cat) end if has_var("x-l") then add_cat(conv_text, "Xiang ", cat) end if has_var("x-h") then add_cat(conv_text, "Xiang ", cat) end if mc and has_var("mc") then add_cat(conv_text, "Middle Chinese ", cat) end if oc and has_var("oc") then add_cat(conv_text, "Old Chinese ", cat) end end end if not args.only_cat then insert(conv_text, cat_start .. "Chinese terms with IPA pronunciation|" .. sortkey .. cat_end) end if not args.poj_form_zh_see then if not find(pagename, "[" .. hanzi .. bopomofo .. "]") then insert(conv_text, cat_start .. "Chinese terms written in foreign scripts|" .. sortkey .. cat_end) end -- TODO: handle Zhuyin. -- Note: this parses any IDS to pick out the full character. for _, character in ipairs(explode_chars(pagename)) do if match(character, "[" .. hanzi .. "%%%+%-·×々〻𖿣⿰-⿿㇯]") then insert(conv_text, cat_start .. "Chinese terms spelled with " .. character .. "|" .. sortkey .. cat_end) end end end end local output = concat(text) .. concat(conv_text) if namespace ~= "" and namespace ~= "-" then output = gsub(output, "%[%[Category:[^%]]+%]%]", "") end return output end return export n8g2fn4wja0yef92188dllwbpyj3qyz Modul:cmn-pron 828 130277 628890 460767 2024-11-06T15:36:34Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628890 Scribunto text/plain local export = {} local m_str_utils = require("Module:string utilities") local cmn = require("Module:tili").getByCode("cmn") local find = m_str_utils.find local gsub = m_str_utils.gsub local len = m_str_utils.len local match = m_str_utils.match local gmatch = m_str_utils.gmatch local sub = m_str_utils.sub local split = m_str_utils.split local gsplit = m_str_utils.gsplit local lower = m_str_utils.lower local upper = m_str_utils.upper local format = string.format local u = m_str_utils.char local toNFD = mw.ustring.toNFD local toNFC = mw.ustring.toNFC local trim = mw.text.trim local pua = {} for i = 1, 7 do pua[i] = u(0xF000+i-1) end local m_data = mw.loadData("Module:cmn-pron/data") local m_zh = require("Module:zh") local _m_zh_data = nil local hom_data = nil local function track(page) local tracking_page = "cmn-pron/" .. page require("Module:debug/track")(tracking_page) return true end local function hom_data_part(pinyin) local x = toNFD(pinyin):sub(1,1) if "a" <= x and x <= "g" then return 1 elseif "h" <= x and x <= "m" then return 2 elseif "n" <= x and x <= "w" then return 3 end return 4 end local function get_hom_data(py) if hom_data == nil then hom_data = require("Module:zh/data/cmn-hom/" .. hom_data_part(py)) end return hom_data end -- if not empty local function ine(var) if var == "" then return nil else return var end end local breve, hacek, circumflex = u(0x306), u(0x30C), u(0x302) local function input_error(text) if type(text) ~= "string" then return end local subs, err = {[breve] = hacek, [circumflex] = "h", ["ŋ"] = "ng", ["Ŋ"] = "Ng"} text = toNFD(text) if find(text, breve) and (find(text, "[zcsZCS]" .. circumflex) or find(text, "[ŋŊ]")) then err = "a breve and an uncommon shorthand" elseif find(text, breve) then err = "a breve" elseif find(text, "[zcsZCS]" .. circumflex) or find(text, "[ŋŊ]") then err = "an uncommon shorthand" end if err then error('The pinyin text "' .. text .. '" contains ' .. err .. '. Replace it with "' .. gsub(text, ".", subs) .. '".', 2) end end local function m_zh_data() if _m_zh_data == nil then _m_zh_data = require("Module:zh/data/cmn-tag") end; return _m_zh_data; end function export.py_detone(text) return toNFC(gsub(toNFD(text), "[̄́̌̀]", "")) end function export.tone_determ(text) text = toNFD(text) return m_data.py_tone_mark_to_num[match(text, m_data.tones)] or '5' end local function sup(text) local ret = mw.html.create("sup"):wikitext(text) return tostring(ret) end function export.py_transf(text) return export.py_detone(text) .. export.tone_determ(text) end local function decompose_tones(text) return (toNFD(text):gsub("[EeUu]\204[\130\136]", toNFC)) end function export.py_transform(text, detone, not_spaced) if find(text, "​") then error("Pinyin contains the hidden character: ​ (U+200B). Please remove that character from the text.") elseif find(text, "%d") then -- e.g. ma1 instead of mā error("Numbered tones should be given with tone marks instead.") end local tones = m_data.tones detone = ine(detone) not_spaced = ine(not_spaced) text = decompose_tones(text) text = text :gsub("\204[\128\129\132\140]", {["̄"] = "\1", ["́"] = "\2", ["̌"] = "\3", ["̀"] = "\4"}) :gsub("\195[\138\156\170\188]", {["ê"] = "\5", ["ü"] = "\6", ["Ê"] = "\14", ["Ü"] = "\15"}) :gsub("\228\184[\128\141]", {["一"] = "\7", ["不"] = "\8"}) local function plaintext(text) return (text:gsub("\16([\1-\4])", "n%1g") :gsub("[\1-\8\14-\18]", function(m) return ({"\204\132", "\204\129", "\204\140", "\204\128", "ê", "ü", "一", "不", [14] = "Ê", [15] = "Ü", [16] = "ng", [17] = "gn", [18] = "'"})[m:byte()] end)) end if not not_spaced then local i = 1 local function check_apostrophes(check_text) i = i + 1 local new_text = check_text :gsub("([^mnMN][\1-\4][iouIOU]?)([aeiou\5\6AEIOU\14\15]%f[\1-\4])", "%1'%2") :gsub("([\1-\4])([aeiou\5\6AEIOU\14\15]%f[\1-\4])", "%1'%2") :gsub("([a-gi-zA-GI-Z\5\6\14\15])([mnMN]%f[\1-\4])", "%1'%2") :gsub("([b-dfgj-np-tv-zB-DFGJ-NP-TV-Z])([mnMN]%f[%z%s%p])", "%1'%2") :gsub("([mnMN][\1-\4])([mnMN]%f[%z%s%p])", "%1'%2") :gsub("([\7\8])([aeiou\5\6mnAEIOU\14\15MN]%f[\1-\4%z%s%p])", "%1'%2") if new_text ~= check_text then check_apostrophes(new_text) elseif new_text ~= text then error(("Missing apostrophe before null-initial syllable - should be \"%s\" instead."):format(plaintext(new_text)), i) end end check_apostrophes(text) end local check_text = gsub(text,"([AOEaoe])([iou])(" .. tones .. ")", "%1%3%2") check_text = gsub(check_text,"([iuü])(" .. tones .. ")([aeiou])", "%1%3%2") if text ~= check_text then error("Incorrect diacritic placement in Pinyin - should be \"".. check_text .. "\" instead.") end text = lower(text) :gsub(" *([,.?]) *", " %1 ") :gsub("[#0]", {["#"] = " #", ["0"] = "5"}) :gsub("%. +%. +%.", "...") :gsub("(%d)([%a\5-\8])", "%1 %2") :gsub("n([\1-\4]?)g", "\16%1") :gsub("%f[^aeiou\1-\6]\16%f[aeiou\1-\6]", "ng") :gsub("gn%f[aeiou\5\6]", "\17") :gsub("'r", "\18r") :gsub("\18r([aeiou\5\6])", "'r%1") :gsub("([aeiou\5\6][\1-\4]?[mn\16]?\18?r?)([bpmfvdtnlgkhjqxzcsywr\16\17\7\8])", "%1 %2") :gsub("([mn\16\7\8][\1-\4]?\18?r?)([bpmfvdtnlgkhjqxzcsywr\16\17\7\8])", "%1 %2") :gsub(" r%f[%z%d%s'%-]", "r") :gsub("([aeiou\5\6][\1-\4]?) ([mn\16])%f[%z%d%s'%-]", "%1%2") :gsub("['%-]", " ") if detone or text:find("%d") then text = text :gsub("([\1-\4])([^ ]*)", function(m1, m2) return m2 .. m1:byte() end) :gsub("[^%d\7\8]%f[%z%s,.?]", "%05") :gsub("([\7\8]\18?r)5", "%1") end text = plaintext(text) if not_spaced then text = text:gsub(" ", "") end return (toNFC(trim(text)):gsub(" +", " ")) end local function iterate_words(text) local pos, word, non_word local function get_word() word, non_word, pos = text:match("([^%s]+)([%s]*)()", pos) if pos then return word, non_word end end return get_word end local function iterate_syllables(text) local cap = find(text, "^%u") text = export.py_transform(text, true) text = text :gsub("\195[\170\188]", {["ê"] = "\1", ["ü"] = "\2"}) :gsub("[zcs]h", {["zh"] = "\3", ["ch"] = "\4", ["sh"] = "\5"}) local raw_syllables = split(text, " ") local function plaintext(text) return (text and text:gsub("[\1-\8]", function(m) return ({"ê", "ü", "ẑ", "ĉ", "ŝ", "ŋ", "ɲ", "ɨ"})[m:byte()] end)) end local i = 0 local function explode_syllable() i = i + 1 if raw_syllables[i] then local syllable, tone, sandhi, block_sandhi = raw_syllables[i] if syllable == "" then return explode_syllable() end syllable = syllable :gsub("(\228\184[\128-\141])('?r?)$", function(m, erhua) sandhi = m return (m:gsub(".*", {["一"] = "yi1", ["不"] = "bu4"}) :gsub("(%a+)(%d)", "%1" .. erhua .. "%2")) end) :gsub("^#", function(m) block_sandhi = true return "" end) :gsub("%d$", function(m) tone = m return "" end) :gsub("ng", "\6") :gsub("gn", "\7") :gsub("([bpmfv])(o'?r?)$", "%1u%2") :gsub("([jq\7x])u", "%1\2") :gsub("[iy]u", {["iu"] = "iou", ["yu"] = "\2"}) :gsub("[eu]i", {["ei"] = "\1i", ["ui"] = "u\1i"}) :gsub("ao", "au") :gsub("[wy]", {["w"] = "u", ["y"] = "i"}) :gsub("([iu\2])e('?r?)$", "%1\1%2") :gsub("(.)o([mn\6]'?r?)$", "%1u%2") :gsub("iu", "\2") :gsub("^([^aoe\1]?[iu\2])([mn\6]'?r?)$", "%1e%2") :gsub("([iu])%1", "%1") :gsub("([\3-\5rzcs])i('?r?)$", "%1\8%2") local initial, glide1, nucleus, glide2, nasal, erhua = syllable:match("^([bpmfvdtnlgk\6hjq\7x\3-\5rzcs]?)([iu\2\8]?)([aoe\1]?)([iu]?)([mn\6]?)('?r?)$") return (syllable:gsub("[#%d]", "")), plaintext(initial), plaintext(glide1), plaintext(nucleus), glide2, plaintext(nasal), erhua, tone, sandhi, (not not block_sandhi) end end return explode_syllable end -- Generate a normalized pinyin version as a baseline, which everything else can work from. local function normalize_py(text, no_words) local raw_words, words = split(text, " "), {} for i, word in ipairs(raw_words) do local cap = find(word, "^%u") word = export.py_transform(word, true) word = word:gsub("\195[\170\188]", {["ê"] = "\1", ["ü"] = "\2"}) local raw_syllables, syllables = split(word, " "), {} for j, s in ipairs(raw_syllables) do s = s :gsub("[zcs]h", {["zh"] = "\3", ["ch"] = "\4", ["sh"] = "\5"}) :gsub("ng", "\6") :gsub("gn", "\7") :gsub("([bpmfv])(or?%d)", "%1u%2") :gsub("([jq\7x])u", "%1\2") :gsub("iu", "iou") :gsub("yu", "\2") :gsub("ui", "uei") :gsub("ao", "au") :gsub("[wy]", {["w"] = "u", ["y"] = "i"}) :gsub("([iu\2])e(r?%d)", "%1\1%2") :gsub("ue([n\6]r?)", "u%1") :gsub("io(\6r?)", "\2%1") :gsub("([iu])%1", "%1") :gsub("([\3-\5rzcs])i(r?%d)", "%1ɨ%2") :gsub("[\1-\7]", function(m) return ({"ê", "ü", "ẑ", "ĉ", "ŝ", "ŋ", "ɲ"})[m:byte()] end) table.insert(syllables, toNFC(s)) end word = syllables if #word > 0 then word[1] = cap and gsub(word[1], "^.", upper) or word[1] table.insert(words, word) end end if no_words then local syllables = {} for _, word in ipairs(words) do for _, s in ipairs(word) do table.insert(syllables, s) end end words = syllables end return words end function export.py_ipa(text) local ipa_initials = m_data.py_ipa_initials local ipa_initials_tl = m_data.py_ipa_initials_tl local ipa_finals = m_data.py_ipa_finals local ipa_erhua = m_data.py_ipa_erhua local ipa_tl_ts = m_data.py_ipa_tl_ts local ipa_t_values = m_data.py_ipa_t_values local tones = {} local tone_cats = {} text = lower(text) local syllables = normalize_py(text, true) for i, s in ipairs(syllables) do if s:find("^[,.?]+$") then table.remove(syllables, i) end end for i = 1, #syllables do syllables[i] = syllables[i]:gsub("%d", function(m) tone_cats[i] = m return "" end) if syllables[i] == "一" then tone_cats[i] = syllables[i+1] and (syllables[i+1]:match("%d") == "4" or syllables[i+1] == "ge") and "1-2" or "1-4" syllables[i] = "i" elseif syllables[i] == "不" then tone_cats[i] = syllables[i+1] and syllables[i+1]:match("%d") == "4" and "4-2" or "4" syllables[i] = "bu" end tone_cats[i] = tone_cats[i] or "5" syllables[i] = syllables[i]:gsub("#", function(m) tone_cats[i] = "#" .. tone_cats[i] return "" end) end for i, s in ipairs(syllables) do s = gsub(s, "^([bpmfvdtnlgkŋhjqɲxẑĉŝrzcs]?)([^r']+)('?r?)$", function(initial, final, erhua) if initial == "" and find(final, "^[aeêo]") then initial = "ˀ" end final = ipa_finals[final] or final if erhua == "r" then for i, from in ipairs(ipa_erhua[1]) do final = gsub(toNFD(final), toNFD(from) .. "$", ipa_erhua[2][i]) end final = toNFC(final) end if initial:find("[zcs]") then final = final:gsub("ʐ", "z") elseif initial == "" then final = final:gsub("[iuy]̯", {["i̯"] = "j", ["u̯"] = "w", ["y̯"] = "ɥ"}) end initial = ipa_initials[initial] or initial if tone_cats[i] == "5" then initial = initial:gsub(".*", ipa_initials_tl) final = final:gsub("ɤ$", "ə") end return gsub(initial .. final, "ʐʐ̩", "ʐ̩") end) local curr_tone_cat, prev_tone_cat, next_tone_cat = tone_cats[i], tone_cats[i-1], tone_cats[i+1] if curr_tone_cat == "5" then tones[i] = prev_tone_cat and ipa_tl_ts[prev_tone_cat:gsub("#", "")] or "" else tones[i] = ipa_t_values[curr_tone_cat:gsub("#", "")] end if curr_tone_cat:find("3") then if i == #tone_cats then if i > 1 then tones[i] = "²¹⁴⁻²¹⁽⁴⁾" end elseif next_tone_cat == "3" then tones[i] = "²¹⁴⁻³⁵" elseif next_tone_cat ~= "5" then tones[i] = "²¹⁴⁻²¹" end elseif curr_tone_cat == "4" and (next_tone_cat == "4" or next_tone_cat == "1-4") then tones[i] = "⁵¹⁻⁵³" elseif curr_tone_cat == "1-4" and next_tone_cat == "4" then tones[i] = "⁵⁵⁻⁵³" end syllables[i] = s .. tones[i] syllables[i] = gsub(syllables[i], "#", "") end return table.concat(syllables, " ") end function export.py_number_to_mark(text) local priority = m_data.py_mark_priority local tones = m_data.py_tone_num_to_mark text = text:gsub("([^%s0-5]+)([0-5])", function(syl, tone) for _, pattern in ipairs(priority) do local syl, n = gsub(syl, pattern, "%0" .. (tones[tone] or "")) if n > 0 then return syl end end return syl .. tone end) return toNFC(text) end function export.py_zhuyin(text) input_error(text) local py_zhuyin_consonant = m_data.py_zhuyin_consonant local py_zhuyin_glide = m_data.py_zhuyin_glide local py_zhuyin_nucleus = m_data.py_zhuyin_nucleus local py_zhuyin_final = m_data.py_zhuyin_final local py_zhuyin_syllabic_nasal = m_data.py_zhuyin_syllabic_nasal local py_zhuyin_tone = m_data.py_zhuyin_tone local output = {} text = export.py_transform(text) for syllable, initial, glide1, nucleus, glide2, nasal, erhua, tone in iterate_syllables(text) do if not (initial or glide1 or nucleus or glide2 or nasal) then table.insert(output, syllable) else local final = (py_zhuyin_nucleus[nucleus] or nucleus) .. (py_zhuyin_glide[glide2] or glide2) final = (py_zhuyin_final[final] or final) .. (py_zhuyin_consonant[nasal] or nasal) final = ((py_zhuyin_glide[glide1] or glide1) .. (py_zhuyin_final[final] or final)) :gsub("(\227\132[\167-\169])ㄜ", "%1") syllable = (py_zhuyin_consonant[initial] or initial) .. final if initial:find("[bpmfv]") and syllable:find("ㄨㄛ$") then syllable = syllable:gsub("ㄨ", "") end syllable = syllable:gsub("^\227\132[\135\139\171]$", py_zhuyin_syllabic_nasal) :gsub("\227\132[\135\139\171]$", "<small>%0</small>") if syllable == "ㄜ" and erhua == "r" then syllable = "ㄦ" erhua = "" elseif #erhua > 0 then erhua = "ㄦ" end if tone == "5" then syllable = py_zhuyin_tone[tone] .. syllable .. erhua else syllable = syllable .. py_zhuyin_tone[tone] .. erhua end table.insert(output, syllable) end end return table.concat(output, " ") end function export.zhuyin_py(text) local zhuyin_py_initial = m_data.zhuyin_py_initial local zhuyin_py_final = m_data.zhuyin_py_final local zhuyin_py_tone = m_data.zhuyin_py_tone local word = split(text, " ", true) local function process_syllable(syllable) syllable = gsub(syllable, "^([ㄓㄔㄕㄖㄗㄘㄙ])([ˊˇˋ˙]?)$", "%1ㄧ%2") return gsub(syllable, "([ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄪ]?)([ㄧㄨㄩ]?[ㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄪㄫㄬㄧㄨㄩㄇ])([ˊˇˋ˙]?)(ㄦ?)", function(initial, final, tone, erhua) initial = zhuyin_py_initial[initial] final = zhuyin_py_final[final] if erhua ~= "" then final = final .. "r" end if initial == "" then final = final :gsub("^([iu])(n?g?)$", function(a, b) return gsub(a, "[iu]", {["i"] = "yi", ["u"] = "wu"}) .. b end) :gsub("^(w?u)([in])$", "ue%2") :gsub("^iu$", "iou") :gsub("^([iu])", {["i"] = "y", ["u"] = "w"}) :gsub("^ong", "weng") :gsub("^ü", "yu") end if initial:find("[jqx]") then final = final:gsub("^ü", "u") end local tone = zhuyin_py_tone[tone] if final:find("[ae]") then final = final:gsub("([ae])", "%1" .. tone) elseif final:find("i[ou]") then final = final:gsub("(i[ou])", "%1" .. tone) elseif final:find("[io]") then final = final:gsub("([io])", "%1" .. tone) else final = gsub(final, "^([wy]?)(.)", "%1" .. "%2" .. tone) end return initial .. final end) end for i, syllable in ipairs(word) do word[i] = process_syllable(syllable) end return toNFC(table.concat(word, " ")) end function export.py_wg(text) local py_wg_consonant = m_data.py_wg_consonant local py_wg_consonant_dental = m_data.py_wg_consonant_dental local py_wg_glide = m_data.py_wg_glide local py_wg_nucleus = m_data.py_wg_nucleus local py_wg_o = m_data.py_wg_o local output = {} for word, non_word in iterate_words(text) do local cap = find(word, "^%u") word = cap and lower(word) or word local syllables = {} for syllable, initial, glide1, nucleus, glide2, nasal, erhua, tone in iterate_syllables(word) do if not (initial or glide1 or nucleus or glide2 or nasal) then table.insert(syllables, syllable) else if glide1 == "ɨ" and py_wg_consonant_dental[initial] then syllable = py_wg_consonant_dental[initial] .. "ŭ" else syllable = ((py_wg_consonant[initial] or initial) .. (py_wg_glide[glide1] or glide1) .. (py_wg_nucleus[nucleus] or nucleus) .. glide2 .. (py_wg_consonant[nasal] or nasal)) :gsub("ehi", "ei") :gsub("au", "ao") :gsub("iou", "iu") :gsub("ian$", "ien") if py_wg_o[initial] then syllable = syllable:gsub("ê$", "o") elseif initial ~= "ŝ" then syllable = syllable:gsub("uo$", "o") end syllable = (#glide1 > 0 and syllable:gsub("ê([mn]g?)", "%1") or syllable) :gsub("üng", "iung") if initial == "" then syllable = syllable :gsub("^.[\128-\191]*", {["i"] = "y", ["u"] = "w", ["ü"] = "yü"}) :gsub("^[yw]$", {["y"] = "i", ["w"] = "wu"}) :gsub("^([wyo])([mn])", function(m1, m2) return ({["w"] = "wê", ["y"] = "yi", ["o"] = "u"})[m1] .. m2 end) elseif glide1 == "u" and not initial:find("[gk]") then syllable = syllable:gsub("uei", "ui") end end if syllable == "o" and nucleus == "e" and erhua == "r" then syllable = "êrh" erhua = "" elseif #erhua > 0 then erhua = "-ʼrh" end table.insert(syllables, syllable .. tone:gsub("%d", sup) .. erhua) end end syllables[1] = cap and gsub(syllables[1], "^.", upper) or syllables[1] word = table.concat(syllables, "-") :gsub("%-([,.?])", "%1") table.insert(output, word .. non_word) end return table.concat(output) end local function temp_bg(text, bg) if bg == 'y' then return '<' .. text .. '>' end return text end local function make_bg(text, bg) if bg == 'y' then return '<span style="background-color:#F5DEB3">' .. text .. '</span>' else return text end end function export.py_gwoyeu(text, original_text) local initials = m_data.py_gwoyeu_initial local finals = m_data.py_gwoyeu_final if text:find('^%s') or text:find('%s$') then error('invalid spacing') end local words = split(text, " ") local count = 0 for i, word in ipairs(words) do local cap = find(toNFD(word), "^%u") word = export.py_transform(word, true, true) word = gsub(word, "([1-5])", "%1 ") word = gsub(word, " $", "") word = gsub(word, '([!-/:-@%[-`{|}~!-/:-@[-`{-・])', ' %1 ') word = gsub(word, ' +', ' ') word = gsub(word, ' $', '') word = gsub(word, '^ ', '') local syllables = split(word, " ") for j, syllable in ipairs(syllables) do count = count + 1 if not find(syllable, '^[!-/:-@%[-`{|}~!-/:-@[-`{-・]+$') then local current = sub(mw.title.getCurrentTitle().text, count, count) if find(current, '^[一七八不]$') then local exceptions = {['一'] = 'i', ['七'] = 'chi', ['八'] = 'ba', ['不'] = 'bu'} syllables[j] = exceptions[current] else local initial, final, tone = '', '', '' syllable = gsub(syllable, '([jqxy])u', '%1ü') syllable = gsub(syllable, '^([zcsr]h?)i(r?[1-5])$', '%1ɨ%2') if find(syllable, '([bpmfvdtnlgkhjqxzcsryw]?h?)([iuü]?[aoeiɨuüê][ioun]?g?r?)([1-5])') then syllable = gsub(syllable, '([bpmfvdtnlgkhjqxzcsryw]?h?)([iuü]?[aoeiɨuüê][ioun]?g?r?)([1-5])', function(a, b, c) initial = initials[a] or error('Unrecognised initial:' .. a); final = finals[b] or error('Unrecognised final:' .. b); tone = c return (initial .. final .. tone) end) elseif not (find(mw.title.getCurrentTitle().text, "[们們呒呣哏唔哼哦嗯嘸噷姆欸誒诶麼ㄇㄝM]") or find(mw.title.getCurrentTitle().text, "cmn-pron/testcases", 1, true)) then error('Unrecognised syllable:' .. syllable) end local original = initial..final..tone if initial:find('^[iu]$') then final = initial .. final initial = '' end if initial .. final == "e'l" then final = "el" end final = gsub(final, '([iu])%1', '%1') local len = len(initial) + len(final) local detone = initial..final local replace = detone local fullstop = false if tone == 5 or tone == '5' then fullstop = true if original_text then tone = split(export.py_transform(original_text, true), ' ')[count]:match('[1-5]') elseif initial:find('^[lmnr]$') then tone = 2 else tone = 1 end if tone == 5 or tone == '5' then tone = export.tone_determ(m_zh.py(current)) end end if tone == 1 or tone == '1' then if initial:find('^[lmnr]$') then replace = initial .. 'h' .. sub(detone, 2, len) else replace = detone end elseif tone == 2 or tone == '2' then if not initial:find('^[lmnr]$') then if final:find('^[iu]') then replace = gsub(detone, '[iu]', {['i'] = 'y', ['u'] = 'w'}, 1) replace = gsub(replace, '[yw]l?$', {['y'] = 'yi', ['w'] = 'wu', ['wl'] = 'wul',}) else replace = gsub(detone, '([aiueoyè]+)', '%1r') end else replace = detone end elseif tone == 3 or tone == '3' then if final:find("^iu?e'l$") then detone = gsub(detone, "'", '') end detone = gsub(detone, '^[iu]', {['i'] = 'yi', ['u'] = 'wu'}) if final:find('[aeiou][aeiou]') and (not final:find('^[ie][ie]') or initial..final=="ie") and (not final:find('^[uo][uo]') or initial..final=="uo") then replace = gsub(detone, '[iu]', {['i'] = 'e', ['u'] = 'o'}, 1) elseif final:find('[aoeiuyè]') then replace = gsub(detone, '([iuyw]?)([aoeiuyè])', '%1%2%2', 1) else error('Unrecognised final:'..final) end elseif tone == 4 or tone == '4' then if final:find("^iu?e'l$") then detone = gsub(detone, "'", '') end detone = gsub(detone, '^[iu]', {['i'] = 'yi', ['u'] = 'wu'}) if detone:find('[aeo][iu]l?$') then replace = gsub(detone, "[iu]l?$", {['i'] = 'y', ['u'] = 'w', ['ul'] = 'wl'}) elseif detone:find('[ngl]$') then replace = gsub(detone, "[ng'l]l?$", {['n'] = 'nn', ['g'] = 'q', ['l'] = 'll', ['gl'] = 'ql', ["'l"] = 'hl'}) else replace = detone .. 'h' end replace = gsub(replace, 'yi([aeiou])', 'y%1') replace = gsub(replace, 'wu([aeiou])', 'w%1') end if fullstop then replace = '.' .. replace end syllables[j] = gsub(syllable, original, replace) end end end words[i] = table.concat(syllables, "") words[i] = cap and gsub(words[i], "^.", upper) or words[i] end return table.concat(words, " ") end -- Converts Hanyu Pinyin into Tongyong Pinyin. function export.py_tongyong(text) local ty_tone = { ["1"] = "", ["2"] = "\204\129", ["3"] = "\204\140", ["4"] = "\204\128", ["5"] = "\204\138" } local function num_to_mark(syllable, tone) tone = ty_tone[tone] if tone ~= "" then if find(syllable, "[aeê]") then syllable = gsub(syllable, "([aeê])", "%1" .. tone) elseif find(syllable, "o") then syllable = gsub(syllable, "(o)", "%1" .. tone) elseif find(syllable, "[iu]") then syllable = gsub(syllable, "([iu])", "%1" .. tone) elseif find(syllable, "[mn]") then syllable = gsub(syllable, "([mn])", "%1" .. tone) end end return syllable end local words = {} for word in gsplit(text, " ") do local cap = find(toNFD(word), "^%u") word = export.py_transform(word, true) local syllables = {} for syllable in gsplit(word, " ") do syllable = toNFC(gsub(syllable, "([crsz]h?i)", "%1h")) syllable = gsub(syllable, "ü", "yu") syllable = gsub(syllable, "([jqx])u", "%1yu") syllable = gsub(syllable, "iu", "iou") syllable = gsub(syllable, "ui", "uei") syllable = gsub(syllable, "([wf])eng", "%1ong") syllable = gsub(syllable, "wen", "wun") syllable = gsub(syllable, "iong", "yong") syllable = gsub(syllable, "^zh", "jh") syllable = gsub(syllable, "^q", "c") syllable = gsub(syllable, "^x", "s") syllable = #syllables ~= 0 and gsub(syllable, "^([aeo])", "-%1") or syllable syllable = gsub(syllable, "^([^1-5]+)([1-5])$", num_to_mark) table.insert(syllables, syllable) end word = table.concat(syllables, "") word = cap and gsub(word, "^.", upper) or word table.insert(words, word) end return toNFC(table.concat(words, " ")) end -- Converts Hanyu Pinyin into the Yale system. function export.py_yale(text) local yale_tone = { ["1"] = u(0x304), ["2"] = u(0x301), ["3"] = u(0x30C), ["4"] = u(0x300), ["5"] = "" } local function num_to_mark(syllable, tone) tone = yale_tone[tone] if tone ~= "" then if find(syllable, "[ae]") then syllable = gsub(syllable, "([ae])", "%1" .. tone) elseif find(syllable, "o") then syllable = gsub(syllable, "(o)", "%1" .. tone) elseif find(syllable, "[iu]") then syllable = gsub(syllable, "([iu])", "%1" .. tone) elseif find(syllable, "[mnrz]") then syllable = gsub(syllable, "([mnrz])", "%1" .. tone) end end return syllable end local words = {} for word in gsplit(text, " ") do local cap = find(toNFD(word), "^%u") word = export.py_transform(word, true) local syllables = {} for syllable in gsplit(word, " ") do syllable = toNFC(gsub(syllable, "^r(%d)", "er%1")) syllable = gsub(syllable, "^([jqxy])u", "%1ü") syllable = gsub(syllable, "^(.h)i(%d)", "%1r%2") syllable = gsub(syllable, "^ri(%d)", "r%1") syllable = gsub(syllable, "^([csz])i(%d)", "%1z%2") syllable = gsub(syllable, "^zh", "j") syllable = gsub(syllable, "^.", m_data.py_yale_initial) syllable = gsub(syllable, "^tsh", "ch") syllable = gsub(syllable, "i([aeo])", "y%1") syllable = gsub(syllable, "u([ao])", "w%1") syllable = gsub(syllable, "ü([ae])", "yw%1") for chars, replacement in pairs(m_data.py_yale_two_medials) do syllable = gsub(syllable, chars, replacement) end syllable = gsub(syllable, "ong", "ung") syllable = gsub(syllable, ".", m_data.py_yale_one_medial) syllable = gsub(syllable, "ü", "yu") syllable = gsub(syllable, "([^lwy])o(%d)$", "%1wo%2") syllable = gsub(syllable, "([yz])%1", "%1") syllable = gsub(syllable, "^([^%d]+)(%d)$", num_to_mark) table.insert(syllables, syllable) end word = table.concat(syllables, "-") word = cap and gsub(word, "^.", upper) or word table.insert(words, word) end return toNFC(table.concat(words, " ")) end -- Converts Hanyu Pinyin into the Palladius system. function export.py_palladius(text) local words = {} for word in gsplit(text, " ") do local cap = find(toNFD(word), "^%u") word = export.py_transform(word, true) local syllables = {} for syllable in gsplit(word, " ") do syllable = toNFC(gsub(syllable, "%d", "")) syllable = gsub(syllable, "^([jqxy])u", "%1ü") syllable = gsub(syllable, "([mnr])(r?)$", function(m1, m2) m1 = m_data.py_palladius_final[m1] or m1 return m1 .. (m2 == "r" and "р" or "") end) syllable = gsub(syllable, "ng", "н") syllable = gsub(syllable, "^..", m_data.py_palladius_two_initials) syllable = gsub(syllable, "^.", m_data.py_palladius_one_initial) for chars, replacement in pairs(m_data.py_palladius_three_medials) do syllable = gsub(syllable, chars, replacement) end for chars, replacement in pairs(m_data.py_palladius_two_medials) do syllable = gsub(syllable, chars, replacement) end syllable = gsub(syllable, ".", m_data.py_palladius_one_medial) for chars, replacement in pairs(m_data.py_palladius_specials) do syllable = gsub(syllable, chars, replacement) end syllable = gsub(syllable, "н$", "%1" .. pua[1]) syllable = gsub(syllable, "[ую]$", "%1" .. pua[3]) syllable = gsub(syllable, "[ая]?о$", "%1" .. pua[4]) syllable = gsub(syllable, "[ая]$", "%1" .. pua[5]) syllable = gsub(syllable, "ю?[иэ]$", "%1" .. pua[6]) syllable = gsub(syllable, "оу$", "%1" .. pua[6]) if syllable == "н" or syllable == "нь" then syllable = syllable .. pua[7] end table.insert(syllables, syllable) end word = table.concat(syllables, "") word = gsub(word, "н" .. pua[1] .. "([аеёиоуэюя])", "нъ%1") for chars, replacement in pairs(m_data.py_palladius_disambig) do word = gsub(word, chars, replacement) end word = gsub(word, "[" .. pua[1] .. "-" .. pua[7] .. "]", "") word = cap and gsub(word, "^.", upper) or word table.insert(words, word) end return toNFC(table.concat(words, " ")) end function export.py_format(text, cap, bg, simple) if cap == false then cap = nil end if bg == false then bg = 'n' else bg = 'y' end if simple == false then simple = nil end text = toNFD(text) local phon = text local title = mw.title.getCurrentTitle().text local cat = '' local spaced = toNFD(export.py_transform(text)) local space_count spaced, space_count = spaced:gsub(' ', '@') local consec_third_count for _ = 1, space_count do spaced, consec_third_count = gsub(spaced, "([^@]+)̌([^#@]*)@([^#@]+̌)", function(a, b, c) return temp_bg(a..'́'..b, bg)..'@'..c end, 1) if consec_third_count > 0 then phon = gsub(spaced, '@', '') end end text = gsub(text, "#", "") phon = gsub(phon, "#", "") if title:find('一') and not text:find('一') and not simple then cat = cat .. '[[Category:Mandarin words containing 一 not undergoing tone sandhi]]' end if text:find('[一不]') and not simple then text = gsub(text, '[一不]$', {['一'] = 'yī', ['不'] = 'bù'}) phon = gsub(phon, '[一不]$', {['一'] = 'yī', ['不'] = 'bù'}) if find(text, '一') then if find(text, '一[^̄́̌̀]*[̄́̌]') then cat = cat .. '[[Category:Mandarin words containing 一 undergoing tone sandhi to the fourth tone]]' phon = gsub(phon, '一([^̄́̌̀]*[̄́̌])', function(a) return temp_bg('yì', bg) .. a end) text = gsub(text, '一([^̄́̌̀]*[̄́̌])', 'yī%1') end if find(text, '一[^̄́̌̀]*̀') or find(text, '一ge$') or find(text, '一ge[^nr]') then cat = cat .. '[[Category:Mandarin words containing 一 undergoing tone sandhi to the second tone]]' phon = gsub(phon, '一([^̄́̌̀]*̀)', function(a) return temp_bg('yí', bg) .. a end) phon = gsub(phon, '一ge', temp_bg('yí', bg) .. 'ge') text = gsub(text, '一([^̄́̌̀]*[̄́̌])', 'yī%1') end end if find(text, '不 ?[bpmfvdtnlgkhjqxzcsrwy]?[ghn]?[aeiou]*̀') then cat = cat .. '[[Category:Mandarin words containing 不 undergoing tone sandhi|2]]' phon = gsub(phon, '不( ?[bpmfvdtnlgkhjqxzcsrwy]?[ghn]?[aeiou]*̀)', function(a) return temp_bg('bú', bg) .. a end) end end text = gsub(text, '[一不]', {['一'] = 'yī', ['不'] = 'bù'}) text = gsub(text, '兒', function() return make_bg('r', bg) end) -- character is deleted phon = gsub(phon, '[一不]', {['一'] = 'yī', ['不'] = 'bù'}) phon = gsub(phon, '<([^>]+)>', '<span style="background-color:#F5DEB3">%1</span>') if not simple then if cap then text = gsub(text, '^%l', upper) phon = gsub(phon, '^%l', upper) end local linked_text = require("Module:links").full_link{term = text, lang = cmn} if phon ~= text then text = (linked_text) .. " [Phonetic: " .. phon .. "]" else text = linked_text end if mw.title.getCurrentTitle().nsText ~= "Template" then text = text .. cat end end return toNFC(text) end function export.make_tl(original_text, tl_pos, bg, cap) if bg == false then bg = 'n' else bg = 'y' end local _, countoriginal = original_text:gsub(" ", " ") local spaced = export.py_transform(original_text) if sub(spaced, -1, -1) == ' ' then spaced = sub(spaced, 1, -2) end local _, count = spaced:gsub(" ", " ") local index = {} local start, finish local pos = 1 for i = 1, count, 1 do if i ~= 1 then pos = (index[i-1] + 1) end index[i] = find(spaced, ' ', pos) end if tl_pos == 2 then start = index[count-1] - count + countoriginal + 2 finish = index[count] - count + countoriginal elseif tl_pos == 3 then start = index[count-2] - count + countoriginal + 3 finish = index[count-1] - count + countoriginal + 1 else start = count == 0 and 1 or (index[count] - count + countoriginal + 1) finish = -1 end local text = (sub(original_text, 1, start-1) .. make_bg(gsub(sub(original_text, start, finish), '.', export.py_detone), bg)) if finish ~= -1 then text = (text .. sub(original_text, finish+1, -1)) end if cap == true then text = gsub(text, '^%l', upper) end return text end function export.tag(first, second, third, fourth, fifth) local text = "(''" local tag = {} local tagg = first or "Standard Chinese" tag[1] = (second ~= '') and second or "Standard Chinese" tag[2] = (third ~= '') and third or nil tag[3] = (fourth ~= '') and fourth or nil tag[4] = (fifth ~= '') and fifth or nil text = text .. ((tagg == '') and table.concat(tag, ", ") or tagg) .. "'')" text = gsub(text, 'Standard Chinese', "[[w:Standard Chinese|Standard Chinese]]") text = gsub(text, 'Mainland', "[[w:Putonghua|Mainland]]") text = gsub(text, 'Taiwan', "[[w:Taiwanese Mandarin|Taiwan]]") text = gsub(text, 'Beijing', "[[w:Beijing dialect|Beijing]]") text = gsub(text, 'erhua', "[[w:erhua|erhua]]") text = gsub(text, 'Min Nan', "[[w:Min Nan|Min Nan]]") text = gsub(text, 'shangkouzi', "''[[上口字|shangkouzi]]''") return text end function export.straitdiff(text, pron_ind, tag) local conv_text = text for i = 1, #text do if m_zh_data().MT[sub(text, i, i)] then conv_text = 'y' end end if tag == 'tag' then conv_text = (conv_text == 'y') and m_zh_data().MT_tag[match(text, '[丁-丌与-龯㐀-䶵]')][pron_ind] or '' elseif pron_ind == 1 or pron_ind == 2 or pron_ind == 3 or pron_ind == 4 or pron_ind == 5 then local reading = {} for a, b in pairs(m_zh_data().MT) do reading[a] = b[pron_ind] if reading[a] then reading[a] = gsub(reading[a], "^([āōēáóéǎǒěàòèaoe])", "'%1") end end conv_text = gsub(text, '.', reading) text = gsub(text, "^'", "") text = gsub(text, " '", " ") if conv_text == text and tag == 'exist' then return nil end end conv_text = gsub(conv_text, "^'", "") return conv_text end function export.str_analysis(text, conv_type, other_m_vars) local MT = m_zh_data().MT text = gsub(text, '{default}', '') text = gsub(text, '=', '—') text = gsub(text, ',', '隔') text = gsub(text, '隔 ', ', ') if conv_type == 'head' or conv_type == 'link' then if find(text, '隔cap—') then text = gsub(text, '[一不]', {['一'] = 'Yī', ['不'] = 'Bù'}) end text = gsub(text, '[一不]', {['一'] = 'yī', ['不'] = 'bù'}) end local comp = split(text, '隔', true) local reading = {} local alternative_reading = {} local zhuyin = {} --[[ -- not used local param = { '1n', '1na', '1nb', '1nc', '1nd', 'py', 'cap', 'tl', 'tl2', 'tl3', 'a', 'audio', 'er', 'ertl', 'ertl2', 'ertl3', 'era', 'eraudio', '2n', '2na', '2nb', '2nc', '2nd', '2py', '2cap', '2tl', '2tl2', '2tl3', '2a', '2audio', '2er', '2ertl', '2ertl2', '2ertl3', '2era', '2eraudio', '3n', '3na', '3nb', '3nc', '3nd', '3py', '3cap', '3tl', '3tl2', '3tl3', '3a', '3audio', '3er', '3ertl', '3ertl2', '3ertl3', '3era', '3eraudio', '4n', '4na', '4nb', '4nc', '4nd', '4py', '4cap', '4tl', '4tl2', '4tl3', '4a', '4audio', '4er', '4ertl', '4ertl2', '4ertl3', '4era', '4eraudio', '5n', '5na', '5nb', '5nc', '5nd', '5py', '5cap', '5tl', '5tl2', '5tl3', '5a', '5audio', '5er', '5ertl', '5ertl2', '5ertl3', '5era', '5eraudio' } --]] if conv_type == '' then return comp[1] elseif conv_type == 'head' or conv_type == 'link' then for i, item in ipairs(comp) do if not find(item, '—') then if find(item, '[一-龯㐀-䶵]') then local M, T, t = {}, {}, {} for a, b in pairs(MT) do M[a] = b[1]; T[a] = b[2]; t[a] = b[3]; M[a] = gsub(M[a], "^([āōēáóéǎǒěàòèaoe])", "'%1") T[a] = gsub(T[a], "^([āōēáóéǎǒěàòèaoe])", "'%1") if t[a] then t[a] = gsub(t[a], "^([āōēáóéǎǒěàòèaoe])", "'%1") end end local mandarin = gsub(item, '.', M) local taiwan = gsub(item, '.', T) mandarin = gsub(mandarin, "^'", "") mandarin = gsub(mandarin, " '", " ") if conv_type == 'link' then return mandarin end taiwan = gsub(taiwan, "^'", "") taiwan = gsub(taiwan, " '", " ") local tt = gsub(item, '.', t) if find(text, 'cap—') then mandarin = gsub(mandarin, '^%l', upper) taiwan = gsub(taiwan, '^%l', upper) tt = gsub(tt, '^%l', upper) end if tt == item then zhuyin[i] = export.py_zhuyin(mandarin, true) .. ', ' .. export.py_zhuyin(taiwan, true) reading[i] = mandarin .. ']], [[' .. taiwan else tt = gsub(tt, "^'", "") tt = gsub(tt, " '", " ") zhuyin[i] = export.py_zhuyin(mandarin, true) .. ', ' .. export.py_zhuyin(taiwan, true) .. ', ' .. export.py_zhuyin(tt, true) reading[i] = mandarin .. ']], [[' .. taiwan .. ']], [[' .. tt end else if conv_type == 'link' then return item end zhuyin[i] = export.py_zhuyin(item, true) reading[i] = item if len(mw.title.getCurrentTitle().text) == 1 and #split(export.py_transform(item), " ") == 1 then local target = export.py_transf(reading[i]) alternative_reading[i] = "[[" .. target .. "|" .. gsub(target, '([1-5])', sup) .. "]]" if alternative_reading[i]:find("5") then alternative_reading[i] = alternative_reading[i] .. "<span class=\"Zsym mention\" style=\"font-size:100%;\">/</span>" .. alternative_reading[i]:gsub("5", "0") end local title = mw.title.new(mw.ustring.lower(target)):getContent() if not (title and title:find("{{cmn%-pinyin}}")) then track("uncreated pinyin") end end end if reading[i] ~= '' then reading[i] = '[[' .. reading[i] .. ']]' end reading[i] = gsub(reading[i], "#", "") end comp[i] = item if conv_type == 'link' then return comp[1] end end local id = m_zh.ts_determ(mw.title.getCurrentTitle().text) local accel if id == 'trad' then accel = '<span class="form-of pinyin-t-form-of transliteration-' .. m_zh.ts(mw.title.getCurrentTitle().text) elseif id == 'simp' then accel = '<span class="form-of pinyin-s-form-of transliteration-' .. m_zh.st(mw.title.getCurrentTitle().text) elseif id == 'both' then accel = '<span class="form-of pinyin-ts-form-of' end accel = accel .. '" lang="cmn" style="font-family: Consolas, monospace;">' local result = other_m_vars and "*: <small>(''[[w:Standard Chinese|Standard]]'')</small>\n*::" or "*:" result = result .. "<small>(''[[w:Pinyin|Pinyin]]'')</small>: " .. accel .. gsub(table.concat(reading, ", "), ", ,", ",") if alternative_reading[1] then result = result .. " (" .. table.concat(alternative_reading, ", ") .. ")" end result = result .. (other_m_vars and "</span>\n*::" or "</span>\n*:") result = result .. "<small>(''[[w:Zhuyin|Zhuyin]]'')</small>: " .. '<span lang="cmn-Bopo" class="Bopo">' .. gsub(table.concat(zhuyin, ", "), ", ,", ",") .. "</span>" return result elseif conv_type == '2' or conv_type == '3' or conv_type == '4' or conv_type == '5' then if not find(text, '隔') or (comp[tonumber(conv_type)] and find(comp[tonumber(conv_type)], '—')) then return '' else return comp[tonumber(conv_type)] end else for i = 1, #comp, 1 do local target = '^' .. conv_type .. '—' if find(comp[i], target) then text = gsub(comp[i], target, '') return text end end text = '' end return text end function export.homophones(pinyin) local text = '' if mw.title.getCurrentTitle().nsText == '' then local args = get_hom_data(pinyin).list[pinyin] text = '<div style="visibility:hidden; float:left"><sup><span style="color:#FFF">edit</span></sup></div>' for i, term in ipairs(args) do if i > 1 then text = text .. "<br>" end if mw.title.new(term).exists and term ~= mw.title.getCurrentTitle().text then local forms = { term } local content = mw.title.new(term):getContent() local template = match(content, "{{zh%-forms[^}]*}}") if template then local simp = match(template, "|s=([^|}])+") if simp then table.insert(forms, simp) end for tradVar in gmatch(template, "|t[0-9]=([^|}])+") do table.insert(forms, tradVar) end for simpVar in gmatch(template, "|s[0-9]=([^|}])+") do table.insert(forms, simpVar) end term = table.concat(forms, "/") end end text = text .. require("Module:links").full_link{ term = term, lang = cmn, tr = "-" } end text = text .. '[[Category:Mandarin terms with homophones]]' end return text end local function erhua(word, erhua_pos, pagename) local title = split(pagename, '') local linked_title = '' local syllables = split(export.py_transform(word), ' ') local count = #syllables erhua_pos = find(erhua_pos, '[1-9]') and split(erhua_pos, ';') or { count } for _, pos in ipairs(erhua_pos) do pos = tonumber(pos) title[pos] = title[pos] .. '兒' syllables[pos] = syllables[pos] .. 'r' end local title = table.concat(title) if mw.title.new(title).exists then linked_title = ' (' .. require("Module:links").full_link{ term = title, lang = cmn, tr = "-" } .. ')' end for i, syllable in pairs(syllables) do if i ~= 1 and toNFD(syllable):find('^[aeiou]') then syllables[i] = "'" .. syllable end end word = table.concat(syllables, '') return (export.tag('', '', 'erhua-ed') .. linked_title), word end export.erhua = erhua function export.make(frame) local args = frame:getParent().args return export.make_args(args) end function export.make_args(args) local pagename = mw.title.getCurrentTitle().text local text = {} local reading = {args[1] or '', args[2] or '', args[3] or '', args[4] or '', args[5] or ''} args["1nb"] = ine(args["1nb"]) if reading[1] ~= '' then local title = export.tag((args["1n"] or ''), (args["1na"] or ''), (args["1nb"] or export.straitdiff(args[1], 1, 'tag')), (args["1nc"] or ''), (args["1nd"] or '')) local pinyin = export.straitdiff(reading[1], 1, '') table.insert(text, export.make_table(title, pinyin, (args["py"] or ''), (args["cap"] or ''), (args["tl"] or ''), (args["tl2"] or ''), (args["tl3"] or ''), (args["a"] or args["audio"] or ''))) if args["er"] and args["er"] ~= '' then title, pinyin = erhua(pinyin, args["er"], pagename) table.insert(text, export.make_table(title, pinyin, '', (args["cap"] or ''), (args["ertl"] or ''), (args["ertl2"] or ''), (args["ertl3"] or ''), (args["era"] or args["eraudio"] or ''), true)) end end if reading[2] ~= '' or export.straitdiff(reading[1], 2, 'exist') then if args["2nb"] and args["2nb"] ~= '' then tagb = args["2nb"] else tagb = export.straitdiff(args[1], 2, 'tag') end title = export.tag((args["2n"] or ''), (args["2na"] or ''), tagb, (args["2nc"] or ''), (args["2nd"] or '')) pinyin = (reading[2] ~= '') and reading[2] or export.straitdiff(reading[1], 2, '') table.insert(text, export.make_table(title, pinyin, (args["2py"] or ''), (args["2cap"] or ''), (args["2tl"] or ''), (args["2tl2"] or ''), (args["2tl3"] or ''), (args["2a"] or args["2audio"] or ''), true)) table.insert(text, '[[Category:Mandarin terms with multiple pronunciations|' .. (export.straitdiff(args[1], 1, '') or args[1]) .. ']]') if args["2er"] and args["2er"] ~= '' then title, pinyin = erhua(pinyin, args["2er"], pagename) table.insert(text, export.make_table(title, pinyin, '', (args["2cap"] or ''), (args["2ertl"] or ''), (args["2ertl2"] or ''), (args["2ertl3"] or ''), (args["2era"] or args["2eraudio"] or ''), true)) end if reading[3] ~= '' or export.straitdiff(reading[1], 3, 'exist') then if args["3nb"] and args["3nb"] ~= '' then tagb = args["3nb"] else tagb = export.straitdiff(args[1], 3, 'tag') end title = export.tag((args["3n"] or ''), (args["3na"] or ''), tagb, (args["3nc"] or ''), (args["3nd"] or '')) if reading[3] ~= '' then pinyin = reading[3] else pinyin = export.straitdiff(reading[1], 3, '') end table.insert(text, export.make_table(title, pinyin, (args["3py"] or ''), (args["3cap"] or ''), (args["3tl"] or ''), (args["3tl2"] or ''), (args["3tl3"] or ''), (args["3a"] or args["3audio"] or ''), true)) if args["3er"] and args["3er"] ~= '' then title, pinyin = erhua(pinyin, args["3er"], pagename) table.insert(text, export.make_table(title, pinyin, '', (args["3cap"] or ''), (args["3ertl"] or ''), (args["3ertl2"] or ''), (args["3ertl3"] or ''), (args["3era"] or args["3eraudio"] or ''), true)) end if reading[4] ~= '' or export.straitdiff(reading[1], 4, 'exist') then if args["4nb"] and args["4nb"] ~= '' then tagb = args["4nb"] else tagb = export.straitdiff(args[1], 4, 'tag') end title = export.tag((args["4n"] or ''), (args["4na"] or ''), tagb, (args["4nc"] or ''), (args["4nd"] or '')) if reading[4] ~= '' then pinyin = reading[4] else pinyin = export.straitdiff(reading[1], 4, '') end table.insert(text, export.make_table(title, pinyin, (args["4py"] or ''), (args["4cap"] or ''), (args["4tl"] or ''), (args["4tl2"] or ''), (args["4tl3"] or ''), (args["4a"] or args["4audio"] or ''), true)) if args["4er"] and args["4er"] ~= '' then title, pinyin = erhua(pinyin, args["4er"], pagename) table.insert(text, export.make_table(title, pinyin, '', (args["4cap"] or ''), (args["4ertl"] or ''), (args["4ertl2"] or ''), (args["4ertl3"] or ''), (args["4era"] or args["4eraudio"] or ''), true)) end if reading[5] ~= '' or export.straitdiff(reading[1], 5, 'exist') then if args["5nb"] and args["5nb"] ~= '' then tagb = args["5nb"] else tagb = export.straitdiff(args[1], 5, 'tag') end title = export.tag((args["5n"] or ''), (args["5na"] or ''), tagb, (args["5nc"] or ''), (args["5nd"] or '')) if reading[5] ~= '' then pinyin = reading[5] else pinyin = export.straitdiff(reading[1], 5, '') end table.insert(text, export.make_table(title, pinyin, (args["5py"] or ''), (args["5cap"] or ''), (args["5tl"] or ''), (args["5tl2"] or ''), (args["5tl3"] or ''), (args["5a"] or args["5audio"] or ''), true)) if args["5er"] and args["5er"] ~= '' then title, pinyin = erhua(pinyin, args["5er"], pagename) table.insert(text, export.make_table(title, pinyin, '', (args["5cap"] or ''), (args["5ertl"] or ''), (args["5ertl2"] or ''), (args["5ertl3"] or ''), (args["5era"] or args["5eraudio"] or ''), true)) end end end end end if (args["tl"] or '') .. (args["tl2"] or '') .. (args["tl3"] or '') .. (args["2tl"] or '') .. (args["2tl2"] or '') .. (args["2tl3"] or '') ~= '' then table.insert(text, '[[Category:Mandarin words containing toneless variants|' .. export.straitdiff(args[1], 1, '') .. ']]') end return table.concat(text) end local function add_audio(text, audio, pinyin) if audio and audio ~= "" then if audio == "y" then audio = format('zh-%s.ogg', pinyin) end table.insert(text, '\n*:: [[File:') table.insert(text, audio) table.insert(text, ']]') table.insert(text, '[[Category:Mandarin terms with audio pronunciation]]') end end function export.make_audio(args) local text, reading, pinyin = {}, {}, "" local audio = { args["a"] or args["audio"] or '', args["2a"] or args["2audio"] or '', args["3a"] or args["3audio"] or '', args["4a"] or args["4audio"] or '', args["5a"] or args["5audio"] or '', } for i=1, 5 do reading[i] = args[i] or '' if i == 1 then pinyin = export.straitdiff(reading[1], 1, '') else pinyin = (reading ~= '') and reading[i] or export.straitdiff(reading[1], i, '') end pinyin = export.py_format(pinyin, false, false, true) add_audio(text, audio[i], pinyin) end return table.concat(text) end function export.make_table(title, pinyin, py, cap, tl, tl2, tl3, a, novariety) py = ine(py);cap = ine(cap);tl = ine(tl);tl2 = ine(tl2);tl3 = ine(tl3);a = ine(a);novariety = ine(novariety) local text = {} local pinyin_simple_fmt = export.py_format(pinyin, false, false, true) if not novariety then table.insert(text, '* [[w:Mandarin Chinese|Mandarin]]') else table.insert(text, '<br>') end table.insert(text, '\n** <small>' .. title .. '</small>') local hom_found if get_hom_data(pinyin_simple_fmt).list[lower(pinyin_simple_fmt)] then hom_found = true else hom_found = false table.insert(text, '<sup><small><abbr title="Add Mandarin homophones"><span class="plainlinks">[' .. tostring(mw.uri.fullUrl("Module:zh/data/cmn-hom/" .. hom_data_part(pinyin_simple_fmt), {["action"]="edit"})) .. ' +]</span></abbr></small></sup>') end table.insert(text, "\n*** <small>''[[w:Pinyin|Hanyu Pinyin]]''</small>: ") local id = m_zh.ts_determ(mw.title.getCurrentTitle().text) if id == 'trad' then table.insert(text, '<span class="form-of pinyin-t-form-of transliteration-') table.insert(text, m_zh.ts(mw.title.getCurrentTitle().text)) elseif id == 'simp' then table.insert(text, '<span class="form-of pinyin-s-form-of transliteration-') table.insert(text, m_zh.st(mw.title.getCurrentTitle().text)) else -- both table.insert(text, '<span class="form-of pinyin-ts-form-of') end table.insert(text, '" lang="cmn" style="font-family: Consolas, monospace;">') if py then table.insert(text, py) else if cap then table.insert(text, export.py_format(pinyin, true, true)) else table.insert(text, export.py_format(pinyin, false, true)) end if tl or tl2 or tl3 then table.insert(text, ' → ') if tl then tl_pos = 1 elseif tl2 then tl_pos = 2 elseif tl3 then tl_pos = 3 end if cap then table.insert(text, export.make_tl(export.py_format(pinyin, true, false, true), tl_pos, true, true)) else table.insert(text, export.make_tl(pinyin_simple_fmt, tl_pos, true)) end end if tl then table.insert(text, ' <small>(toneless final syllable variant)</small>') elseif tl2 or tl3 then table.insert(text, ' <small>(toneless variant)</small>') end end table.insert(text, "</span>\n*** <small>''[[w:Zhuyin|Zhuyin]]''</small>: ") table.insert(text, '<span lang="cmn-Bopo" class="Bopo">') table.insert(text, export.py_zhuyin(pinyin_simple_fmt, true)) if tl or tl2 or tl3 then table.insert(text, ' → ') table.insert(text, export.py_zhuyin(export.make_tl(pinyin_simple_fmt, tl_pos, false), true)) end table.insert(text, '</span>') if tl then table.insert(text, ' <small>(toneless final syllable variant)</small>') elseif tl2 or tl3 then table.insert(text, ' <small>(toneless variant)</small>') end table.insert(text, "\n*** <small>''[[w:Tongyong Pinyin|Tongyong Pinyin]]''</small>: <span lang=\"cmn-Latn-tongyong\" style=\"font-family: Consolas, monospace;\">") if tl or tl2 or tl3 then table.insert(text, export.py_tongyong(export.make_tl(pinyin_simple_fmt, tl_pos, false), pinyin_simple_fmt)) else table.insert(text, export.py_tongyong(pinyin_simple_fmt)) end table.insert(text, '</span>') table.insert(text, "\n*** <small>''[[w:Wade–Giles|Wade–Giles]]''</small>: <span lang=\"cmn-Latn-wadegile\" style=\"font-family: Consolas, monospace;\">") if tl or tl2 or tl3 then table.insert(text, export.py_wg(export.make_tl(pinyin_simple_fmt, tl_pos, false), pinyin_simple_fmt)) else table.insert(text, export.py_wg(pinyin_simple_fmt)) end table.insert(text, '</span>') table.insert(text, "\n*** <small>''[[w:Yale romanization of Mandarin|Yale]]''</small>: <span lang=\"cmn-Latn\" style=\"font-family: Consolas, monospace;\">") if tl or tl2 or tl3 then table.insert(text, export.py_yale(export.make_tl(pinyin_simple_fmt, tl_pos, false), pinyin_simple_fmt)) else table.insert(text, export.py_yale(pinyin_simple_fmt)) end table.insert(text, '</span>') table.insert(text, "\n*** <small>''[[w:Gwoyeu Romatzyh|Gwoyeu Romatzyh]]''</small>: <span lang=\"cmn-Latn\" style=\"font-family: Consolas, monospace;\">") if tl or tl2 or tl3 then table.insert(text, export.py_gwoyeu(export.make_tl(pinyin_simple_fmt, tl_pos, false), pinyin_simple_fmt)) else table.insert(text, export.py_gwoyeu(pinyin_simple_fmt)) end table.insert(text, '</span>') table.insert(text, "\n*** <small>''[[w:Cyrillization of Chinese|Palladius]]''</small>: <span style=\"font-family: Consolas, monospace;\"><span lang=\"cmn-Cyrl\">") local palladius if tl or tl2 or tl3 then palladius = export.py_palladius(export.make_tl(pinyin_simple_fmt, tl_pos, false), pinyin_simple_fmt) else palladius = export.py_palladius(pinyin_simple_fmt) end table.insert(text, palladius) table.insert(text, "</span> <span lang=\"cmn-Latn\">(") table.insert(text, require("Module:ru-translit").tr(palladius, "cmn")) table.insert(text, ")</span></span>") table.insert(text, '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[Appendix:Mandarin pronunciation|key]])</sup></small>: <span class="IPA">/') table.insert(text, export.py_ipa(pinyin)) if tl or tl2 or tl3 then table.insert(text, '/ → /') table.insert(text, export.py_ipa(export.make_tl(pinyin_simple_fmt, tl_pos, false))) end table.insert(text, '/</span>') -- if a then -- if a == 'y' then a = 'zh-' .. pinyin_simple_fmt .. '.ogg' end -- table.insert(text, '\n*** <div style="display:inline-block; position:relative; top:0.5em;">[[File:') -- table.insert(text, a) -- table.insert(text, ']]</div>[[Category:Mandarin terms with audio pronunciation]]') -- end if hom_found then table.insert(text, "\n*** <small>Homophones</small>: " .. '<table class="wikitable" style="width:15em;margin:0; position:left; text-align:center">' .. '<tr><th class="mw-customtoggle-cmnhom" style="color:#3366bb">[Show/Hide]</th></tr>' .. '<tr class="mw-collapsible mw-collapsed" id="mw-customcollapsible-cmnhom">' .. '<td><sup><div style="float: right; clear: right;"><span class="plainlinks">[') table.insert(text, tostring(mw.uri.fullUrl("Module:zh/data/cmn-hom/" .. hom_data_part(pinyin_simple_fmt), {["action"]="edit"}))) table.insert(text, ' edit]</span></div></sup>') table.insert(text, export.homophones(lower(pinyin_simple_fmt))) table.insert(text, '</td></tr></table>') end return table.concat(text) end function export.py_headword(frame) local params = { ["head"] = true, ["zhuyin"] = true, ["notr"] = {type = "boolean"}, } local args = require("Module:parameters").process(frame:getParent().args, params, nil, "cmn-pron", "py_headword") local head = args.head or mw.title.getCurrentTitle().text local head_simple = require("Module:links").remove_links(head) local Latn = require("Module:scripts").getByCode("Latn") local categories = {"Hanyu Pinyin", "Mandarin non-lemma forms"} local inflections = {} if head:find("[0-5]") then table.insert(categories, "Hanyu Pinyin with tone numbers") head = head:gsub("%d", sup) elseif not args.notr then local py_detoned = export.py_transform(head, true) if not py_detoned:find("%s") then if py_detoned:find("5") then py_detoned = py_detoned .. "//" .. py_detoned:gsub("5", "0") end py_detoned = py_detoned:gsub("%d", sup) table.insert(inflections, {py_detoned, sc = Latn}) end end if not args.notr then local Bopo = require("Module:scripts").getByCode("Bopo") head_simple = export.py_number_to_mark(head_simple) table.insert(inflections, { label = "[[Zhuyin fuhao|Zhuyin]]", { term = args.zhuyin or export.py_zhuyin(head_simple), sc = Bopo, nolink = true } }) end -- Don't pass a redundant head value, because they get categorised as redundant. if head == mw.title.getCurrentTitle().text then head = nil end return require("Module:headword").full_headword{lang = cmn, sc = Latn, heads = {head}, inflections = inflections, pos_category = "pinyin", categories = categories, noposcat = true} end return export qc1fxlp7npf7b4rytt5wb9epjk1d5ut Modul:ltc-pron 828 130282 628946 240753 2024-11-06T17:17:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628946 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local codepoint = m_string_utils.codepoint local gsub = m_string_utils.gsub local len = m_string_utils.len local match = m_string_utils.match local safe_require = require("Module:utilities").safe_require local u = m_string_utils.char local m_ltc_predict = require("Module:ltc-pron/predict") local m_cmn_pron = require("Module:cmn-pron") local m_baxter = require("Module:ltc-pron/baxter") local data = mw.loadData("Module:ltc-pron/data") function export.infer_categories(text) local t = mw.text.split(text, "", true) local initial, final, deng, openness, tone = t[1], t[2], t[3], t[4], t[6] if match(text, "-") then deng = mw.text.split(text, "-")[2] .. deng end if tone == "入" then final = data.fin_conv[final] or final end local initial_type = data.init_type[initial] local tone_label = data.tone_symbol[tone] local final_type if match(final, data.final_type_1) then final_type = data.fin_type_open[final..openness] elseif match(final, data.final_type_2) then final_type = data.final_deng[final..deng] elseif match(final, data.final_type_3) then final_type = data.fin_type_deng_open[final..deng..openness] elseif match(final, data.final_type_4) then if deng == "重鈕三" then final_type = data.final_openness[final..openness] else final_type = data.final_deng[final..deng] end elseif match(final, data.final_type_5) then final_type = data.fin_type[final] else return error("Final not recognised.") end return initial_type, final_type, tone_label end local function zh_fmt(text) return '<span class="Hani" lang="zh">' .. text .. '</span>' end local function ltc_table(titlechar, text, indiv_num, count) local people = { "Zhengzhang", "Pan", "Shao", "Pulleyblank", "Li", "Wang", "Karlgren" } local pronunciation = {} local t = mw.text.split(text, "", true) local initial, final, deng, openness, she, tone, fanqieA, fanqieB = t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8] if tone == "入" then final = data.fin_conv[final] or final end local initial_type, final_type, tone_label = export.infer_categories(text) for ind, person in ipairs(people) do table.insert(pronunciation, '<span class="IPAchar" lang="zh">/' .. data.initialConv[person][initial_type] .. data.finalConv[person][final_type] .. "<sup>" .. tone_label .. "</sup>" .. "/</span>") end local baxter = '<span lang="zh">' .. m_baxter.baxter(initial_type, final_type, tone_label) .. "</span>" return { nil, '<b>'..zh_fmt(titlechar)..'</b>', indiv_num .. "/" .. count, zh_fmt("[[Appendix:Middle Chinese#Initials|"..initial.."]]") .. " (" .. initial_type .. ")", zh_fmt("[[Appendix:Middle Chinese#Finals|"..final.."]]") .. " (" .. final_type .. ")", data.tonality[tone], data.open_closed[openness], data.division[deng], fanqieB and zh_fmt(gsub(fanqieA .. fanqieB, "(.)", "[[%1]]") .. "切") or "", baxter, nil, pronunciation[1], pronunciation[2], pronunciation[3], pronunciation[4], pronunciation[5], pronunciation[6], pronunciation[7], m_cmn_pron.py_number_to_mark(m_ltc_predict.predict_cmn(initial_type, final_type, data.tone_number[tone])), m_ltc_predict.predict_yue(initial_type, final_type, data.tone_number[tone]), } end function export.ipa(index_text, preview) local titlechar = mw.title.getCurrentTitle().text local reading_index = mw.text.split(index_text, ",") local ltc_indiv_pronunciation = {} local output_text = {} local fields = { "Rime", "<small>Character</small>", "<small>Reading #</small>", "<small>Initial</small> (" .. zh_fmt("聲") .. ")", "<small>Final</small> (" .. zh_fmt("韻") .. ")", "<small>Tone</small> (" .. zh_fmt("調") .. ")", "<small>Openness</small> (" .. zh_fmt("開合") .. ")", "<small>Division</small> (" .. zh_fmt("等") .. ")", "<small>[[w:Fanqie|Fanqie]]</small>", "<small>[[w:Baxter%27s_transcription_for_Middle_Chinese|Baxter]]</small>", "Reconstructions", "<small>[[w:Zhengzhang Shangfang|Zhengzhang<br>Shangfang]]</small>", "<small>[[w:Pan Wuyun|Pan<br>Wuyun]]</small>", "<small>[[w:zh:邵荣芬|Shao<br>Rongfen]]</small>", "<small>[[w:Edwin G. Pulleyblank|Edwin<br>Pulleyblank]]</small>", "<small>[[w:Li Rong (linguist)|Li<br>Rong]]</small>", "<small>[[w:Wang Li (linguist)|Wang<br>Li]]</small>", "<small>[[w:Bernhard Karlgren|Bernard<br>Karlgren]]</small>", "<small>Expected<br>Mandarin<br>Reflex</small>", "<small>Expected<br>Cantonese<br>Reflex</small>", } for i, cp in ipairs { codepoint(titlechar, 1, -1) } do local ch = u(cp) local data_module = safe_require("Module:zh/data/ltc-pron/" .. ch) if data_module then local reading_number = reading_index[i] or "y" local count = 0 for index, value in ipairs(data_module) do count = count + 1 end if reading_number == "y" then for ltc_reading_no, position in ipairs(data_module) do table.insert(ltc_indiv_pronunciation, ltc_table(ch, position, ltc_reading_no, count)) end elseif reading_number == "n" then break else for indiv_number in mw.text.gsplit(reading_number, '%+') do table.insert(ltc_indiv_pronunciation, ltc_table(ch, data_module[tonumber(indiv_number)], indiv_number, count)) end end end end if ltc_indiv_pronunciation[1] then local hash, results, value_eff = {}, {} for _, value in ipairs(ltc_indiv_pronunciation) do table.remove(value, 11) table.remove(value, 1) value_eff = table.concat(value) if (not hash[value_eff]) then hash[value_eff] = true table.insert(value, 1, nil) table.insert(value, 11, nil) results[#results + 1] = value end end local rand = require("Module:string utilities").gsub("mc-" .. value_eff, "[^A-Za-z0-9]", codepoint('%1')) local fmt = { fold = '\n* <div title="expand" class="mw-customtoggle-mc' .. rand .. '"> ' .. '[[w:Middle Chinese|Middle Chinese]]: <span style="font-family: Consolas, monospace;">' .. preview .. '</span><span style="float:right; border:1px solid #ccc; border-radius:1px;' .. ' padding:0 0; font-size:90%">▼</span></div>\n', header = '{| class="wikitable mw-collapsible mw-collapsed" id="mw-customcollapsible-mc' .. rand .. '" style="width:100%; margin:0; text-align:center; border-collapse: collapse; border-style: hidden; display: table;"', lv1 = '\n|-\n! style="background-color:' .. data.colour_1 .. '" colspan=' .. #results+1 .. '|', lv2 = '\n|-\n! style="background-color:' .. data.colour_2 .. '; width:8em"|', lv3 = '\n| style="background-color:' .. data.colour_3 .. '"|', closing = '\n|}' } for field_index, field in ipairs(fields) do if match(field, "small") then local field_set = {} for _, result in ipairs(results) do table.insert(field_set, result[field_index]) end table.insert(output_text, fmt.lv2 .. field .. fmt.lv3 .. table.concat(field_set, fmt.lv3)) else table.insert(output_text, fmt.lv1 .. field) end end return fmt.fold .. fmt.header .. table.concat(output_text) .. fmt.closing else return "" end end function export.retrieve_pron(text, reconstruction, index, no_intro) if type(text) == "table" then text = text.args[1] end local underline_format = "<span style=\"border-bottom: 1px dotted #000; cursor:help\" title=\"Middle Chinese\">MC</span> " local separator = len(text) == 1 and (no_intro and ", ") or '<span style="padding-left:2px; padding-right:2px">|</span>' -- remove link brackets from text, at least -- as [[美姫#Etymology]] text = text:gsub("[%[%]]", "") if reconstruction then return underline_format .. reconstruction else local index_set, retrieve_result = {}, {} if index and index ~= "y" then index_set = mw.text.split(index, ",") end for char_index, cp in ipairs { codepoint(text, 1, -1) } do local char_pronunciation = {} local ch = u(cp) local data_module = safe_require("Module:zh/data/ltc-pron/" .. ch) if data_module then local reading_no = index_set[char_index] or "y" if reading_no == "n" then table.insert(char_pronunciation, "?") elseif reading_no == "y" then local initial, final, tone for _, reading in ipairs(data_module) do initial, final, tone = export.infer_categories(reading) table.insert(char_pronunciation, m_baxter.baxter(initial, final, tone)) end else for number in mw.text.gsplit(reading_no, "+") do initial, final, tone = export.infer_categories(data_module[tonumber(number)]) table.insert(char_pronunciation, m_baxter.baxter(initial, final, tone)) end end table.insert(retrieve_result, table.concat(char_pronunciation, separator)) end end return retrieve_result[1] and (no_intro and "" or underline_format) .. table.concat(retrieve_result, " ") or nil end end function export.link(frame) local args = frame:getParent().args local text, meaning, lit = args[1], args[2] or args['gloss'] or nil, args['lit'] or nil return require("Module:zh/link").link(frame, nil, { "*" .. text, tr = export.retrieve_pron(text, args["tr"] or false, args["id"] or false, false), gloss = meaning, lit = lit }, mw.title.getCurrentTitle().subpageText) end return export 4bmb65td9adtx1x1t23mydzfmey6jdg Modul:och-pron 828 130283 628951 240855 2024-11-06T17:22:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628951 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local codepoint = m_string_utils.codepoint local gsub = m_string_utils.gsub local len = m_string_utils.len local safe_require = require("Module:utilities").safe_require local u = m_string_utils.char local colour_1 = "var(--wikt-palette-lightblue, #d9ebff)" local colour_2 = "var(--wikt-palette-cyan, #eaffff)" local colour_3 = "var(--wikt-palette-paleblue, #f8f9fa)" local function zh_fmt(text) return text ~= "" and '<span class="Hani" lang="zh">' .. text .. '</span>' or "" end local function insert_pron(reading_temp, text, system, i, return_note, index) reading_temp = gsub(reading_temp, "([̥̊]) ", "%1") local part = mw.text.split(reading_temp, " ") local IPA = gsub(part[1], "^%*", "") table.remove(part, 1) return ((i == 1 and (len(text) == 1 or (index or 1) == 1)) and "/*" or "") .. IPA .. (len(text) == i and "/" or "") .. ((#part > 0 and return_note) and (" " .. table.concat(part, " ")) or "") end local function pron_table(titlechar, reading, system, reading_index, count, i) return system == "BS" and { nil, '<b>' .. zh_fmt(titlechar) .. '</b>', reading_index .. "/" .. count, reading[1], '‹ <i>' .. gsub(reading[2], '([XH])', '<sup>%1</sup>') .. '</i> ›', '<span class="IPAchar">' .. gsub(insert_pron(reading[3], titlechar, "BS", 1, true), "ˤ", "ˁ") .. '</span>', reading[4] } or { nil, '<b>'..zh_fmt(titlechar)..'</b>', reading_index .. "/" .. count, reading[1], zh_fmt("[["..reading[2].."]]"), zh_fmt("[["..reading[3].."]]"), reading[4], zh_fmt("[["..reading[5].."]]"), '<span class="IPAchar">/*' .. reading[6] .. '/</span>', gsub(gsub(gsub(reading[7], "([一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𮯯𰀀-𱍏,]+)", zh_fmt("%1")), "([^>,][^>,][^>,][^>,][^>,][^>,],)", "%1<br>"), "([一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𮯯𰀀-𱍏])", "[[%1]]") } end local function get_data(system, ch) return safe_require(("Module:zh/data/och-pron-%s/%s"):format(system, ch)) or nil end function export.ipa(index_text, preview) local titlechar = mw.title.getCurrentTitle().text local reading_index = mw.text.split(index_text, ";") local output_text = {} local systems = { "BS", "ZS" } local indiv_pronunciation = { ["BS"] = {}, ["ZS"] = {} } local rand = "" local fields = { ["BS"] = { "[[w:William H. Baxter|Baxter]]–[[w:Laurent Sagart|Sagart]] system 1.1 " .. "([http://ocbaxtersagart.lsait.lsa.umich.edu/ 2014])", "<small>Character</small>", "<small>Reading #</small>", "<small>Modern<br>Beijing<br/>(Pinyin)</small>", "<small>Middle<br>Chinese</small>", "<small>Old<br>Chinese</small>", "<small>English</small>" }, ["ZS"] = { "[[w:Zhengzhang Shangfang|Zhengzhang]] system (2003)", "<small>Character</small>", "<small>Reading #</small>", "<small>No.</small>", "<small>Phonetic<br>component</small>", "<small>Rime<br>group</small>", "<small>Rime<br>subdivision</small>", "<small>Corresponding<br>MC rime</small>", "<small>Old<br>Chinese</small>", "<small>Notes</small>" } } for system_seq, system in ipairs(systems) do for i, cp in ipairs { codepoint(titlechar, 1, -1) } do local ch = u(cp) local data_module = get_data(system, ch) if data_module then local count = 0 for index, value in ipairs(data_module) do count = count + 1 end local reading_number = reading_index[i] and (mw.text.split(reading_index[i], ',')[system_seq] or reading_index[i]) or "y" if reading_number == "y" then for reading_index, reading in ipairs(data_module) do table.insert(indiv_pronunciation[system], pron_table(ch, reading, system, reading_index, count, i)) end elseif reading_number == "n" then break else for indiv_number in mw.text.gsplit(reading_number, '%+') do table.insert(indiv_pronunciation[system], pron_table(ch, data_module[tonumber(indiv_number)], system, indiv_number, count, i)) end end end end if indiv_pronunciation[system][1] then local hash, results = {}, {} local value_eff for _, value in ipairs(indiv_pronunciation[system]) do local valeur = value table.remove(valeur, 1) value_eff = table.concat(valeur) if not hash[value_eff] then hash[value_eff] = true table.insert(value, 1, nil) results[#results + 1] = value end end rand = rand ~= "" and rand or gsub("oc-" .. value_eff, "[^A-Za-z0-9]", codepoint) local fmt = { header = '\n{| class="wikitable mw-collapsible mw-collapsed" id="mw-customcollapsible-oc' .. rand .. '" style="width:100%; margin:0; text-align:center; border-collapse: collapse; border-style: hidden; display: table;"', lv1 = '\n|-\n! style="background-color:' .. colour_1 .. '" colspan=' .. #results+1 .. '|', lv2 = '\n|-\n! style="background-color:' .. colour_2 .. '; width:8em"|', lv3 = '\n| style="background-color:' .. colour_3 .. '"|', closing = '\n|}', BS_note = '\n|-\n|colspan=' .. #results+1 .. [=[ style="text-align:left; font-size:90%"|<div class="toccolours mw-collapsible mw-collapsed"> '''''Notes''' for Old Chinese notations in the Baxter–Sagart system:'' <div class="mw-collapsible-content"> * Parentheses "()" indicate uncertain presence;<br> * Square brackets "[]" indicate uncertain identity, e.g. *[t] as coda may in fact be *-t or *-p;<br> * Angle brackets "&lt;>" indicate infix;<br> * Hyphen "-" indicates morpheme boundary;<br> * Period "." indicates syllable boundary.</div> </div>]=] } table.insert(output_text, fmt.header) for field_index, field in ipairs(fields[system]) do if field:find("small") then local field_set = {} for _, result in ipairs(results) do table.insert(field_set, result[field_index]) end if table.concat(field_set) ~= "" then table.insert(output_text, fmt.lv2 .. field .. fmt.lv3 .. table.concat(field_set, fmt.lv3)) end else table.insert(output_text, fmt.lv1 .. field) end end table.insert(output_text, (system == "BS" and fmt.BS_note or "") .. fmt.closing) end end local fold = '\n* <div title="expand" class="mw-customtoggle-oc' .. rand .. '"> ' .. '[[w:Old Chinese|Old Chinese]]<span style="float:right; border:1px solid #ccc; border-radius:1px;' .. ' padding:0 0; font-size:90%">▼</span>' .. preview .. '</div>' return output_text[1] and fold .. gsub(table.concat(output_text), "%[%[%]%]", "") or "" end function export.retrieve_pron(text, reconstruction, no_intro, index) if type(text) == "table" then text = text.args[1] end text = require("Module:links").remove_links(text) local retrieve_result = {} local intro = no_intro and "" or "<span style=\"border-bottom: 1px dotted #000; cursor:help\" title=\"Old Chinese\">OC</span> " if not reconstruction then local index_set if index and index ~= "y" then index_set = mw.text.split(index, ",") end for char_index, cp in ipairs { codepoint(text, 1, -1) } do local char_pronunciation = {} local ch = u(cp) local data_module = get_data("ZS", ch) if data_module then local reading_no = index_set and index_set[char_index] or "y" if reading_no ~= "y" then for number in mw.text.gsplit(reading_no, "+") do table.insert(char_pronunciation, data_module[tonumber(number)][6]) end else for _, reading in ipairs(data_module) do table.insert(char_pronunciation, reading[6]) end end else return nil end table.insert(retrieve_result, table.concat(char_pronunciation, len(text) == 1 and ", *" or "/")) end end return intro .. (reconstruction or "*" .. table.concat(retrieve_result, " ")) end function export.generate_show(text, index) local index_set = mw.text.split(index, ";") local extract_results = { ["BS"] = {}, ["ZS"] = {} } local result = {} local position = { ["BS"] = 3, ["ZS"] = 6 } local fmt = { beginning = { ["BS"] = "\n*: <small>(''[[w:William H. Baxter|Baxter]]–[[w:Laurent Sagart|Sagart]]'')</small>: " .. '<span style="font-size:95%">', ["ZS"] = "\n*: <small>(''[[w:Zhengzhang Shangfang|Zhengzhang]]'')</small>: " .. '<span style="font-size:95%">', }, ending = { ["BS"] = "</span>", ["ZS"] = "</span>" } } for system_seq, system in ipairs({ "BS", "ZS" }) do for i, cp in ipairs { codepoint(text, 1, -1) } do local char_pronunciation = {} local ch = u(cp) local data_module = get_data(system, ch) if data_module then local existing_pron = {} local reading_number = index_set[i] and (mw.text.split(index_set[i], ',')[system_seq] or index_set[i]) or "y" if reading_number == "y" then index = 0 for _, reading in ipairs(data_module) do index = index + 1 local reading_temp = reading[position[system]] if not existing_pron[reading_temp] then table.insert(char_pronunciation, insert_pron(reading_temp, text, system, i, false, index)) existing_pron[reading_temp] = true end end elseif reading_number == "n" then break else index = 0 for indiv_number in mw.text.gsplit(reading_number, '%+') do index = index + 1 local reading_temp = data_module[tonumber(indiv_number)][position[system]] if not existing_pron[reading_temp] then table.insert(char_pronunciation, insert_pron(reading_temp, text, system, i, false, index)) existing_pron[reading_temp] = true end end end table.insert(extract_results[system], table.concat(char_pronunciation, len(text) == 1 and ", " or "|")) else extract_results[system] = {} break end end if extract_results[system][1] then table.insert(result, fmt.beginning[system] .. '<span class="IPAchar">' .. table.concat(extract_results[system], "&nbsp; ") .. '</span>' .. fmt.ending[system]) end end text = result[1] and gsub(table.concat(result), "|%*", "|") or nil text = text and gsub(text, "/|", "|") or nil text = text and gsub(text, "|", '<span style="padding-left:2px; padding-right:2px">|</span>') return text end function export.link(frame, arg) local args = arg or frame:getParent().args local text, meaning, lit = args[1], args[2] or args['gloss'] or nil, args['lit'] or nil return require("Module:zh/link").link(frame, nil, { "*" .. text, tr = export.retrieve_pron(text, args["tr"] or false, args["no_intro"] or false, args["id"] or false), gloss = meaning, lit = lit }, mw.title.getCurrentTitle().subpageText) end return export ar1t2lcxy5dxelas8dwccyqy7pythch Modul:yue-pron 828 130292 628910 240769 2024-11-06T16:09:12Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628910 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsplit = m_string_utils.gsplit local gsub = m_string_utils.gsub local len = m_string_utils.len local lower = m_string_utils.lower local split = m_string_utils.split local entering = { p = 1, t = 1, k = 1 } local entering_tones = { ["1"] = "7", ["3"] = "8", ["6"] = "9" } local ipa_allophones = { ei = "eri", eoi = "eoy", ing = "irng", ik = "irk", ou = "oru", ung = "urng", uk = "urk", } local ipa_initial = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["gw"] = "kʷ", ["kw"] = "kʷʰ", -- ["zh"] = "t͡ʃ", ["ch"] = "t͡ʃʰ", ["sh"] = "ʃ", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["h"] = "h", ["w"] = "w", ["j"] = "j", [""] = "" } -- vowels with "r" only appear as allophones and should not appear in the input local ipa_nucleus = { ["aa"] = "aː", ["a"] = "ɐ", ["e"] = "ɛː", ["er"] = "e", ["i"] = "iː", ["ir"] = "ɪ", ["o"] = "ɔː", ["or"] = "o", ["oe"] = "œː", ["eo"] = "ɵ", ["u"] = "uː", ["ur"] = "ʊ", ["yu"] = "yː" } local ipa_coda = { ["i"] = "i̯", ["u"] = "u̯", ["y"] = "y̯", ["m"] = "m", ["n"] = "n", ["ng"] = "ŋ", ["p"] = "p̚", ["t"] = "t̚", ["k"] = "k̚", [""] = "" } local ipa_tone = { ["1"] = "<span style=\"cursor:help\" title=\"or 53\">⁵⁵</span>", ["2"] = "³⁵", ["3"] = "³³", ["4"] = "²¹", ["5"] = "¹³", ["6"] = "²²", ["7"] = "⁵", ["8"] = "³", ["9"] = "²", [""] = "" } local ipa_tone_sandhi = { ["-"] = "⁻", [""] = "" } local ipa_syllabic = { ["m"] = "m̩", ["ng"] = "ŋ̍" } -- display `main`, but show `option` on hovering local function alt(main,option) return '<span style="cursor:help" title="or ' .. option .. '">' .. main .. '</span>' end local acute = { a="á", e="é", i="í", o="ó", u="ú", m="ḿ", ng="ńg" } local grave = { a="à", e="è", i="ì", o="ò", u="ù", m="m̀", ng="ǹg" } local macron = { a="ā", e="ē", i="ī", o="ō", u="ū", m="m̄", ng="n̄g" } -- "?" indicates finals that are not supported by Yale local yale_final = { ["a"] = "?", ["aa"] = "a", ["eu"] = "?", ["em"] = "?", ["en"] = "?", ["ep"] = "?", ["et"] = "?", ["om"] = "?", ["op"] = "?", ["um"] = "?", ["up"] = "?", ["oe"] = "eu", ["oem"] = "?", ["oen"] = "?", ["oeng"] = "eung", ["oep"] = "?", ["oet"] = "?", ["oek"] = "euk", ["eoi"] = "eui", ["eon"] = "eun", ["eot"] = "eut", } -- The core function to handle conversion to Yale. -- For non-syllabics, there is exactly one vowel cluster in the syllable: -- the first vowel is inputted as `a`, and the rest of the vowels is `b`, and `t` is the tone. --- (e.g. "keui" -> a="e",b="ui"; "keung" -> a="e",b="u") -- Conversion rule: --- if `t` is 4, 5, or 6, then "h" is inserted after `b`. --- if `t` is 1, 2, 4, or 5, then the corresponding accent is put on `a`. -- (finally, for syllabics, the whole syllabic is `a`, and `b` is empty) local function yale_tone(a,b,t) local h = "" if t == "4" or t == "5" or t == "6" then h = "h" end if t == "1" then a = alt(macron[a], grave[a]) end if t == "4" then a = grave[a] end if t == "2" or t == "5" then a = acute[a] end return a..b..h end function export.jyutping_to_ipa(text) if type(text) == "table" then text = text.args[1] end text = text:gsub(", "," "):gsub("%.%.%.", " "):gsub(" $",""):gsub(" / ","/, /") -- :gsub("([zcs])yu", "%1hyu") -- :gsub("([zcs])oe", "%1hoe") -- :gsub("([zcs])eo", "%1heo") :gsub("(%l+)(%d)(%-?)(%d?)", function(main,tone,symbol,tone2) -- try initial+final local initial, final = main:match("^([bpmfdtnlgknzcshwj]?[gw]?)([aeiouy]%l*)$") if not initial then -- otherwise try initial+syllabic local syllabic initial, syllabic = main:match("^(h?)([mn]g?)$") if not initial then error("Invalid Jyutping syllable: " .. main) end main = ipa_initial[initial] .. (ipa_syllabic[syllabic] or error("Unrecognised syllabic: " .. syllabic)) -- really? else -- e.g. convert <ei> (which would be */ɛːi̯/) to <eri> (/ei̯/) final = ipa_allophones[final] or final local nucleus, coda = final:match("^(y?[aeiou][aeor]?)([iuymnptk]?g?)$") if not nucleus then error("Invalid Jyutping final: " .. final) end if entering[coda] then tone = entering_tones[tone] or tone tone2 = entering_tones[tone2] or tone2 end main = (ipa_initial[initial] or error(("Unrecognised initial: \"%s\""):format(initial))) .. (ipa_nucleus[nucleus] or error(("Unrecognised nucleus: \"%s\""):format(nucleus))) .. (ipa_coda[coda] or error(("Unrecognised coda: \"%s\""):format(coda))) end return main .. ipa_tone[tone] .. ipa_tone_sandhi[symbol] .. ipa_tone[tone2] end) return text end function export.jyutping_to_yale(text) if type(text) == "table" then text = text.args[1] end text = text:gsub("jy?","y") :gsub("[cz]",{z="j",c="ch"}) --:gsub("[1-6]%-","") :gsub("(%l+)(%d)(%-?)(%d?)", function(main,tone,symbol,tone2) if tone2 ~= "" then tone = tone2 end -- find the first vowel letter local initial,final = main:match("^([^aeiou]*)([aeiou].*)$") local a,b,c if initial then final = yale_final[final] or final if final == "?" then return "?" end a,b,c = final:match("^([aeiou])([aiu]*)([mnptk]?g?)$") else -- otherwise it is a syllabic initial,a = main:match("(h?)([mn]g?)") b,c = "","" end return initial..yale_tone(a,b,tone)..c end) if text:find("?") then return false end return text end function export.jyutping_to_cantonese_pinyin(text) if type(text) == "table" then text = text.args[1] end if text:find("oe[mnpt][^g]") then -- unsupported finals return false end text = text:gsub("yu","y") :gsub("eo[int]",{eoi="oey",eon="oen",eot="oet"}) :gsub("[zc]",{z="dz",c="ts"}) :gsub("([ptk])([1-6])(%-?)([1-6]?)",function(a,b,c,d) return a .. (entering_tones[b] or b) .. c .. (entering_tones[d] or d) end) return text end function export.jyutping_to_guangdong(text) if type(text) == 'table' then text = text.args[1] end -- unsupported finals if text:find("%f[a]a%d") or text:find("oe[mnpt][^g]") or text:find("[ou][mp]") or text:find("e[un][^g]") then return false end text = text:gsub("yu","ü") :gsub("j","y") :gsub("[zcs]%f[iü]",{z="j",c="q",s="x"}) -- ü=\xC3\xBC :gsub("([jqxy])ü","%1u") :gsub("eoi","êu") :gsub("[aeo][aeo]?",{aa="a",a="e",e="é",oe="ê",eo="ê"}) :gsub("([ae])u","%1o") :gsub("([gk])w","%1u") :gsub("[ptk]%f[%d]",{p="b",t="d",k="g"}) return text end -- substitute changed tones for finding homophones function export.jyutping_format(text) text = text:gsub("[1-6]%-([1-6])", "%1") return split(text," / ") end local function Consolas(text) return '<span style="font-family: Consolas, monospace;">' .. text .. "</span>" end local function format_IPA(text) return '<span class="IPA">' .. text .. "</span>" end local function make_superscript(text) return (text:gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>")) end -- the only allowed punctuations are: --- ", ": represents a comma (or a break of any sort) --- "...": represents a slot where a text can go to (e.g. [[一……就……]]) --- ",": separates alternate readings local function validate(c_rom) if c_rom:find("[7-9]") then error("Invalid tone in Jyutping.") end if c_rom:find("[A-Z]") then error("Please do not capitalize the Jyutping.") end if c_rom:find("%-[a-z]") then error("Please do not hyphenate the Jyutping.") end if c_rom:find("[0-9][a-z]") then error("Error in Jyutping: please use spaces to separate syllables.") end if c_rom:find("[zcs]h") then error("'zh'/'ch'/'sh' are non-valid Jyutping, use 'z'/'c'/'s' instead.") end if c_rom:find("y[^u]") then error("Wrong usage of 'y' in Jyutping.") end if c_rom:find("oei") then error("Invalid rime oei in Jyutping. Did you mean eoi?") end if c_rom:find("eong") then error("Invalid rime eong in Jyutping. Did you mean oeng?") end if c_rom:find("eok") then error("Invalid rime eok in Jyutping. Did you mean oek?") end if c_rom:find("r") then error("Invalid letter \"r\" in Jyutping.") end if c_rom:find("%d%d") then error("Invalid Jyutping: please use a hyphen to indicate a changed tone.") end c_rom = c_rom:gsub("^%.%.%.",""):gsub("%.%.%.%f[%z,]",""):gsub("%.%.%."," "):gsub(", ?"," ") if c_rom:find("^ ") or c_rom:find(" ") or c_rom:find(" $") then error("Empty syllable detected.") end if c_rom:find("[^a-z1-6%- ]") then error("Invalid character found.") end -- ensure that each syllable matches `^%l+%d%-?%d?$` for syllable in c_rom:gmatch("%S+") do if not syllable:match("^%l+%d%-?%d?$") then error("Invalid Jyutping syllable: " .. syllable) end end end -- generate the shown text of Standard Cantonese -- if the pagename is one character long, then generate links to all the readings function export.show_standard(c_rom, is_single_hanzi) validate(c_rom) c_rom = c_rom:gsub(",%f[^ ,]"," / ") if is_single_hanzi then for reading in c_rom:gmatch("[^ ,./]+") do require('Module:debug').track('yue-pron/'..reading) end c_rom = c_rom:gsub("(%l+)(%d%-?%d?)","[[%1%2|%1<sup>%2</sup>]]") else c_rom = make_superscript(c_rom) end return c_rom end -- generate the collapsed text of Standard Cantonese -- generate all the different romanisations, as well as homophones function export.hide_standard(c_rom, is_single_hanzi) local res = "" c_rom = c_rom:gsub(",%f[^ ,]"," / ") -- generate IPA first because the error-catching is located there local c_ipa = export.jyutping_to_ipa(c_rom) local c_yale = export.jyutping_to_yale(c_rom) local c_cp = export.jyutping_to_cantonese_pinyin(c_rom) local c_gd = export.jyutping_to_guangdong(c_rom) local c_hom = mw.loadData("Module:yue-pron/hom") local c_hom_exists = false for _,c_first in ipairs(export.jyutping_format(c_rom)) do if c_hom[c_first] then c_hom_exists = c_first break end end res = res .. "\n** <small>(<i>[[w:Standard Cantonese|Standard Cantonese]], [[w:Guangzhou Cantonese|Guangzhou]]–[[w:Hong Kong Cantonese|Hong Kong]]</i>)</small>" if not c_hom_exists and not is_single_hanzi then res = res .. '<sup><small><abbr title="Add Cantonese homophones"><span class="plainlinks">[' res = res .. tostring(mw.uri.fullUrl("Module:yue-pron/hom",{["action"]="edit"})) res = res .. " +]</span></abbr></small></sup>" end res = res .. "\n*** <small><i>[[w:Jyutping|Jyutping]]</i></small>: " res = res .. Consolas(make_superscript(c_rom)) if c_yale then res = res .. "\n*** <small><i>[[w:Yale romanization of Cantonese|Yale]]</i></small>: " res = res .. Consolas(c_yale) end if c_cp then res = res .. "\n*** <small><i>[[w:Cantonese Pinyin|Cantonese Pinyin]]</i></small>: " res = res .. Consolas(make_superscript(c_cp)) end if c_gd then res = res .. "\n*** <small><i>[[w:Guangdong Romanization|Guangdong Romanization]]</i></small>: " res = res .. Consolas(make_superscript(c_gd)) end res = res .. "\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Cantonese phonology|key]])</sup></small>: " res = res .. format_IPA("/" .. c_ipa .. "/") if c_hom_exists then res = res .. '\n*** <small>Homophones</small>: <table class="wikitable mw-collapsible mw-collapsed" style="width:15em;margin:0;' res = res .. 'position:left; text-align:center"><tr><th></th></tr><tr><td><div style="float: right; clear: right;"><sup>' res = res .. '<span class="plainlinks">[' res = res .. tostring(mw.uri.fullUrl("Module:yue-pron/hom",{["action"]="edit"})) res = res .. ' edit]</span></sup></div><div style="visibility:hidden; float:left"><sup><span style="color:#FFF">edit</span></sup></div>' local hom_text = {} local yue = require("Module:tili").getByCode("yue") for _,hom in ipairs(c_hom[c_hom_exists]) do table.insert(hom_text, require("Module:links").full_link( { term = hom, lang = yue, tr = "-" } )) end res = res .. table.concat(hom_text, "<br>") res = res .. "</td></tr></table>" res = res .. "[[Category:Cantonese terms with homophones]]" end return res end function export.jyutping_headword(frame) local args = require("Module:parameters").process(frame:getParent().args, { ["head"] = {}, }) return require("Module:headword").full_headword{ lang = require("Module:tili").getByCode("yue"), sc = require("Module:scripts").getByCode("Latn"), heads = {make_superscript(args.head or mw.loadData("Module:headword/data").pagename)}, pos_category = "jyutping" } end return export gf3udjsbc7ws71prmkl8sy6e08n12x2 Modul:hak-pron 828 130293 628887 240770 2024-11-06T15:33:33Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628887 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local sub = mw.ustring.sub local match = m_string_utils.match local find = m_string_utils.find local len = m_string_utils.len local lower = m_string_utils.lower local toNFD = mw.ustring.toNFD function export.rom_display(text,convtype) if type(text) == 'table' then text,convtype = text.args[1],(text.args[2] or '') end local display = '' local show = { ['pfs'] = '', ['gd'] = '', ['hrs'] = '', ['ct'] = '' } local decomp = mw.text.split(gsub(text,'/',' / '),';',true) local TableTools = require('Module:table') for i = 1,#decomp,1 do if match(decomp[i],'pfs') then decomp[i] = gsub(decomp[i],'pfs=','') local pfs_readings = { ['n'] = {}, ['s'] = {} } local hrs_readings = { ['n'] = {}, ['s'] = {} } local hpy_readings = { ['n'] = {}, ['s'] = {} } local ipa_readings = { ['n'] = {}, ['s'] = {} } local function display_format(style) local label = { ['n'] = 'Northern ', ['s'] = 'Southern ', ['ns'] = '' } local city = { ['n'] = '[[w:Miaoli City|Miaoli]]', ['s'] = '[[w:Neipu|Neipu]]', ['ns'] = '[[w:Miaoli City|Miaoli]] and [[w:Neipu|Neipu]]' } local text = string.format("\n** <small>(''[[w:Sixian dialect|%sSixian]], incl. %s'')</small>", label[style], city[style]) text = text .. "\n*** <small>''[[w:Pha̍k-fa-sṳ|Pha̍k-fa-sṳ]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(pfs_readings[style:sub(1,1)], ' / ') .. '</span>' text = text .. "\n*** <small>''[[w:Taiwanese Hakka Romanization System|Hakka Romanization System]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(hrs_readings[style:sub(1,1)], ' / ') .. '</span>' text = text .. "\n*** <small>''[[w:Hagfa Pinyim|Hagfa Pinyim]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(hpy_readings[style:sub(1,1)], ' / ') .. '</span>' local ipa = '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]' local span = '</small>: <span class="IPA">/' text = text .. ipa if style == 'ns' then local north = table.concat(ipa_readings['n'], '/, /') local south = table.concat(ipa_readings['s'], '/, /') if north == south then text = text .. span .. north .. '/</span>' else text = text .. " (''Northern, incl. " .. city['n'] .. "'')" .. span .. north .. "/</span>" text = text .. ipa .. " (''Southern, incl. " .. city['s'] .. "'')" .. span .. south .. "/</span>" end else text = text .. span .. table.concat(ipa_readings[style], '/, /') .. '/</span>' end return text end local function southern(text) local function convert(a, b, c) local e_a = { ['e'] = 'a', ['ê'] = 'â', ['é'] = 'á', ['è'] = 'à' } return a .. e_a[b] .. c end text = gsub(text, '([yY])([eéèê])(̍?[nt])', convert) text = gsub(text, '([nN]gi)([eéèê])(̍?[nt])', convert) text = gsub(text, '([kK]h?i)([eéèê])(̍?[nt])', convert) text = gsub(text, '^([hH]i)([eéèê])(̍?[nt])', convert) text = gsub(text, '([%-%s][hH]i)([eéèê])(̍?[nt])', convert) return text end local function add(style, reading) pfs_readings[style][#pfs_readings[style] + 1] = reading hrs_readings[style][#hrs_readings[style] + 1] = export.hrs(reading, style) hpy_readings[style][#hpy_readings[style] + 1] = export.pfs_to_hpy(reading) ipa_readings[style][#ipa_readings[style] + 1] = export.ipa(reading, style) end local ns = true for _, reading in ipairs(mw.text.split(decomp[i], ' / ')) do if match(reading,':') then local pair = mw.text.split(reading, ':') if pair[1] == 'ns' then add('n', pair[2]) add('s', pair[2]) else ns = false add(pair[1], pair[2]) end elseif match(reading,'[yY]') or reading ~= southern(reading) then ns = false add('n', reading) add('s', southern(reading)) else add('n', reading) add('s', reading) end end if convtype == '' then if ns then display = display .. display_format('ns') else if #pfs_readings['n'] ~= 0 then display = display .. display_format('n') end if #pfs_readings['s'] ~= 0 then display = display .. display_format('s') end end else for i, reading in ipairs(pfs_readings['s']) do pfs_readings['n'][#pfs_readings['n'] + 1] = pfs_readings['s'][i] end show['pfs'] = table.concat(TableTools.removeDuplicates(pfs_readings['n']), ' / ') end end if match(decomp[i],'hrs') then decomp[i] = gsub(decomp[i], 'hrs=', '') local supported = { "h" } local hrs_readings = { ['h'] = {}, ['d'] = {}, ['r'] = {}, ['z'] = {} } for _, reading in ipairs(mw.text.split(decomp[i], ' / ')) do if find(reading, ':') then local dialects, rom = match(reading, '^([hdrz,]+):(.+)$') for _, dialect in ipairs(mw.text.split(dialects, ',')) do table.insert(hrs_readings[dialect], rom) end else error("Missing dialect label for Hakka Romanization.") end end local dialect_link = { ['h'] = "[[w:Hailu dialect|Hailu]], incl. [[w:Zhudong|Zhudong]]", ['d'] = "[[w:zh:大埔話|Dabu]]", ['r'] = "[[w:Raoping Hakka|Raoping]]", ['z'] = "[[w:zh:詔安客語|Zhao'an]]", } if convtype == '' then for _, dialect in ipairs(supported) do display = display .. string.format("\n** <small>(''%s'')</small>", dialect_link[dialect]) display = display .. "\n*** <small>''[[w:Taiwanese Hakka Romanization System|Hakka Romanization System]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. export.hrs_process(hrs_readings[dialect], dialect, "rom") .. '</span>' display = display .. '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]</small>: <span class="IPA">/' .. export.hrs_process(hrs_readings[dialect], dialect, "ipa") .. "/</span>" end else show['hrs'] = export.hrs_process(hrs_readings['h'], 'h', "rom") --TO-DO: multiple dialects end end if match(decomp[i],'gd') then local gd_formatted = gsub(gsub(decomp[i], 'gd=', ''), '([1-6])', '<sup>%1</sup>') if convtype == '' then display = display .. "\n** <small>(''[[w:Meixian dialect|Meixian]]'')</small>" display = display .. "\n*** <small>''[[w:Guangdong_Romanization#Hakka|Guangdong]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. gd_formatted .. '</span>' display = display .. '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]</small>: <span class="IPA">/' .. export.gd_to_ipa(decomp[i]) .. "/</span>" else show['gd'] = gd_formatted end end if match(decomp[i],'ct') then local ct_formatted = gsub(gsub(decomp[i], 'ct=', ''), '([1-5])', '<sup>%1</sup>') if convtype == '' then display = display .. "\n** <small>(''[[w:Changting dialect|Changting]]'')</small>" display = display .. "\n*** <small>''Changting Pinyin''</small>: <span style=\"font-family: Consolas, monospace;\">" .. ct_formatted .. '</span>' display = display .. '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]</small>: <span class="IPA">/' .. export.ct_to_ipa(decomp[i]) .. "/</span>" else show['ct'] = ct_formatted end end end if convtype ~= '' then local pfs = " <small>(''[[w:Sixian dialect|Sixian]], [[w:Pha̍k-fa-sṳ|PFS]]'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['pfs'] .. '</span>' local gd = " <small>(''[[w:Meixian dialect|Meixian]], [[w:Guangdong_Romanization#Hakka|Guangdong]]'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['gd'] .. '</span>' local hrs = " <small>(''[[w:Hailu dialect|Hailu]], [[w:Taiwanese Hakka Romanization System|HRS]]'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['hrs'] .. '</span>' local ct = " <small>(''[[w:Changting dialect|Changting]], Changting Pinyin'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['ct'] .. '</span>' if show['pfs'] ~= '' and show['hrs'] == '' and show['gd'] == '' and show['ct'] == '' then display = display .. pfs elseif show['gd'] ~= '' and show['pfs'] == '' and show['hrs'] == '' and show['ct'] == '' then display = display .. gd elseif show['hrs'] ~= '' and show['pfs'] == '' and show['gd'] == '' and show['ct'] == '' then display = display .. hrs elseif show['ct'] ~= '' and show['pfs'] == '' and show['hrs'] == '' and show['gd'] == '' then display = display .. ct else display = display .. (show['pfs'] ~= '' and '\n*:' .. pfs or '') display = display .. (show['hrs'] ~= '' and '\n*:' .. hrs or '') display = display .. (show['gd'] ~= '' and '\n*:' .. gd or '') display = display .. (show['ct'] ~= '' and '\n*:' .. ct or '') end end return display end local function find_tone(text) text = toNFD(text) if find(text, '̂') then return 1 elseif find(text, '̀') then return 2 elseif find(text, '́') then return 3 elseif find(text, '̍') then return 6 elseif find(text, '[^n][ptkbdg]$') then return 5 else return 4 end end function export.ipa(text, dialect) local syllables, initial, final, tone, tone_conv = {}, {}, {}, {}, {} local ipa = {} if type(text) == 'table' then text = text.args[1] end text = gsub(gsub(gsub(lower(text), '%.', ''), '%s+$', ''), '%s+', '-') syllables = mw.text.split(text, "-") for i, syllable in ipairs(syllables) do syllable = gsub(syllable, ",", "") syllable = gsub(syllable,'o̍[ae]',{['o̍a']='ua̍',['o̍e']='ue̍'}) syllable = gsub(syllable,'[oóòôō][ae]',{['oa']='ua',['óa']='uá',['òa']='uà',['ôa']='uâ',['ōa']='uā',['oe']='ue',['óe']='ué',['òe']='uè',['ôe']='uê',['ōe']='uē'}) initial[i] = match(syllable, '^[mnptkcfvshyl]?[gh]?h?') final[i] = sub(syllable, len(initial[i]) + 1, -1) local initial_ipa = { ['ng'] = 'ŋ', ['ph'] = 'pʰ', ['th'] = 'tʰ', ['kh'] = 'kʰ', ['ch'] = 't͡s', ['chh'] = 't͡sʰ', ['y'] = 'i' } initial[i] = initial_ipa[initial[i]] or initial[i] tone[i] = find_tone(final[i]) local final_conv = { ['á'] = 'a', ['é'] = 'e', ['í'] = 'i', ['ó'] = 'o', ['ú'] = 'u', ['́'] = '', ['à'] = 'a', ['è'] = 'e', ['ì'] = 'i', ['ò'] = 'o', ['ù'] = 'u', ['̀'] = '', ['â'] = 'a', ['ê'] = 'e', ['î'] = 'i', ['ô'] = 'o', ['û'] = 'u', ['̂'] = '', ['ń'] = 'n', ['ǹ'] = 'n', ['̍'] = '', ['ṳ'] = 'ɨ', } final[i] = gsub(final[i], '[âêîôû̂àèìòù̀áéíóú́ńǹ̍ṳ]', final_conv) if initial[i] == 'i' then final[i] = (find(final[i], '^i[mnpt]?$') and '' or 'i') .. final[i] initial[i] = dialect == 's' and '(j)' or '' end final[i] = gsub(final[i], '([ptk])$', '%1̚') final[i] = gsub(final[i], 'ng$', 'ŋ') final[i] = final[i] == 'ŋ' and 'ŋ̍' or final[i] final[i] = gsub(final[i], 'er$', 'ə') final[i] = gsub(final[i], '([aeiouɨ])([aeiouɨ])([aeiouɨ]?)', function(first, second, third) if third ~= '' then first = first .. '̯' third = third .. '̯' elseif first == 'i' or first == 'u' then first = first .. '̯' elseif second == 'i' or second == 'u' then second = second .. '̯' end return first .. second .. third end) end for i, syllable in ipairs(syllables) do local tone_ipa = { [1] = '²⁴', [2] = '¹¹', [3] = '³¹', [4] = '⁵⁵', [5] = '²', [6] = '⁵', } tone_conv[i] = tone_ipa[tone[i]] if (tone[i] == 1 and find(tostring(tone[i+1]), '[146]') and not find(syllable, ",")) or (syllable == 'é' and dialect == 'n' and find(mw.title.getCurrentTitle().text, '仔') and find(text, '-é') and find(tostring(tone[i-1]), '[35]')) then tone_conv[i] = tone_conv[i] .. '⁻¹¹' end ipa[i] = initial[i] .. final[i] .. tone_conv[i] end return gsub(table.concat(ipa, " "), ",", "") end function export.hrs(text, dialect) if type(text) == 'table' then text = text.args[1] end local syllables = mw.text.split(gsub(lower(text), ' ', '-'), "-") for i, syllable in ipairs(syllables) do -- check for commas local comma = '' if find(syllable, ',') then comma = ',' syllable = sub(syllable, 1, -2) end -- change consonants syllable = gsub(syllable,'[ptky]',{['p']='b',['t']='d',['k']='g',['y']=dialect == 's' and '(r)i' or 'i'}) syllable = gsub(syllable,'[bdgc]h',{['bh']='p',['dh']='t',['gh']='k',['ch']='z'}) syllable = gsub(syllable,'zh','c') local palatal = {['z']='j',['c']='q',['s']='x',['i']=''} syllable = gsub(syllable,'([zcsi])([iíìî])', function(a,b) return palatal[a]..b end) -- find tones local marks = { [1] = 'ˊ', [2] = 'ˇ', [3] = 'ˋ', [5] = 'ˋ' } local tone = marks[find_tone(syllable)] or '' -- remove tone marks and fix vowels syllable = gsub(syllable, 'ṳ', 'ii') syllable = gsub(toNFD(syllable), '[́̀̂̍]', '') syllable = gsub(syllable, 'o([ae])', 'u%1') -- add new tone marks syllables[i] = syllable .. "<sup>" .. tone .. "</sup>" .. comma end return table.concat(syllables, " ") end function export.pfs_to_hpy(text) if type(text) == 'table' then text = text.args[1] end local syllables = mw.text.split(gsub(lower(text), ' ', '-'), "-") for i, syllable in ipairs(syllables) do if syllable == '...' then syllables[i] = syllable else -- check for commas local comma = '' if find(syllable, ',') then comma = ',' syllable = sub(syllable, 1, -2) end -- change consonants syllable = gsub(syllable,'[ptk]',{['p']='b',['t']='d',['k']='g'}) syllable = gsub(syllable,'[bdgc]h',{['bh']='p',['dh']='t',['gh']='k',['ch']='z'}) syllable = gsub(syllable,'zh','c') local palatal = {['z']='j',['c']='q',['s']='x'} syllable = gsub(syllable,'([zcs])([iíìî])', function(a,b) return palatal[a]..b end) -- find tones local tone = find_tone(syllable) -- remove tone marks and fix vowels syllable = gsub(syllable, 'ṳ', 'i') syllable = gsub(toNFD(syllable), '[́̀̂̍]', '') syllable = gsub(syllable, 'o([ae])', 'u%1') syllable = syllable == 'yu' and 'yiu' or syllable syllable = gsub(syllable, '([iy])e([nd])', '%1a%2') -- put everything together syllables[i] = syllable .. '<sup>' .. tone .. '</sup>' .. comma end end return table.concat(syllables, " ") end function export.gd_to_ipa(text) local initial_conv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "ʋ", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["j"] = "t͡s", ["q"] = "t͡sʰ", ["x"] = "s", [""] = "", } local final_conv = { ["ii"] = "z̩", ["i"] = "i", ["u"] = "u", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["ê"] = "e", ["iê"] = "ie", ["uê"] = "ue", ["o"] = "o", ["io"] = "io", ["uo"] = "uo", ["m"] = "m̩", ["n"] = "n̩", ["ai"] = "aɪ", ["iai"] = "iaɪ", ["uai"] = "uaɪ", ["oi"] = "oɪ", ["ui"] = "uɪ", ["iui"] = "iuɪ", ["au"] = "au", ["iau"] = "iau", ["êu"] = "eu", ["iu"] = "iu", ["em"] = "əm", ["im"] = "im", ["am"] = "am", ["iam"] = "iam", ["êm"] = "ɛm", ["en"] = "ən", ["in"] = "in", ["an"] = "an", ["ian"] = "ian", ["uan"] = "uan", ["ên"] = "ɛn", ["iên"] = "iɛn", ["uên"] = "uɛn", ["on"] = "ɔn", ["ion"] = "iɔn", ["uon"] = "uɔn", ["un"] = "un", ["iun"] = "iun", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["ong"] = "ɔŋ", ["iong"] = "iɔŋ", ["uong"] = "uɔŋ", ["ung"] = "ʊŋ", ["iung"] = "iʊŋ", ["eb"] = "əp̚", ["ib"] = "ip̚", ["ab"] = "ap̚", ["iab"] = "iap̚", ["êb"] = "ɛp̚", ["ed"] = "ət̚", ["id"] = "it̚", ["ad"] = "at̚", ["iad"] = "iat̚", ["uad"] = "uat̚", ["êd"] = "ɛt̚", ["iêd"] = "iɛt̚", ["uêd"] = "uɛt̚", ["od"] = "ɔt̚", ["ud"] = "ut̚", ["iud"] = "iut̚", ["ag"] = "ak̚", ["iag"] = "iak̚", ["uag"] = "uak̚", ["og"] = "ɔk̚", ["iog"] = "iɔk̚", ["uog"] = "uɔk̚", ["ug"] = "ʊk̚", ["iug"] = "iʊk̚", } local tone_conv = { ["1"] = "⁴⁴", ["2"] = "¹¹", ["3"] = "³¹", ["4"] = "⁵³", ["5"] = "¹", ["6"] = "⁵", ["1*"] = "⁴⁴⁻³⁵", ["4*"] = "⁵³⁻⁵⁵", } if type(text) == 'table' then text = text.args[1] end local words = mw.text.split(text, " / ") local result = {} for _, word in ipairs(words) do word = gsub(gsub(gsub(word, 'gd=', ''), '[%.,]', ''), '%s+$', '') local syllables = mw.text.split(word, '%s+') local initial, final, tone, ipa = {}, {}, {}, {} for i, syllable in ipairs(syllables) do initial[i] = match(syllable, "^[bpmfvdtnlgkhzcsjqx]?g?") final[i] = match(sub(syllable, len(initial[i]) + 1, -1), "^[^1-6]*") if initial[i] == "" and find(final[i], "^i") then error('Syllables starting with "i" need a "y" in front.') end final[i] = gsub(gsub(final[i], "^yi", "i"), "^y", "i") if find(initial[i], "[zcs]") and final[i] == "i" then final[i] = "ii" end if final[i] == "" then final[i] = initial[i] initial[i] = "" end tone[i] = match(syllable, "[1-6]$") end for i, syllable in ipairs(syllables) do local ortho_pal = { --orthographic palatalization ["z"] = "j", ["c"] = "q", ["s"] = "x", } local ortho_alv = { --orthographic alveolars ["j"] = "z", ["q"] = "c", ["x"] = "s", } if find(initial[i], "^[zcs]$") and find(final[i], "^i[^i]") then error("Initial should be " .. ortho_pal[initial[i]] .. "?") end if find(initial[i], "^[jqx]$") and find(final[i], "^[^i]") then error("Initial should be " .. ortho_alv[initial[i]] .. "?") end initial[i] = initial_conv[initial[i]] or error(("Unrecognised initial: \"%s\""):format(initial[i])) final[i] = final_conv[final[i]] or error(("Unrecognised final: \"%s\""):format(final[i])) if match(tone[i], "[14]") and match(tone[i+1] or "", "[2345]") then tone[i] = tone[i] .. "*" end if initial[i] == "" and final[i] == "e" and tone[i] == "3" and find(mw.title.getCurrentTitle().text, '仔') then initial[i] = match(final[i-1] or '', '([mnŋpti])̚?$') or initial[i] initial[i] = find(final[i-1] or '', 'u$') and 'ʋ' or initial[i] initial[i] = find(final[i-1] or '', '[ao]$') and '(ʋ)' or initial[i] initial[i] = find(final[i-1] or '', 'e$') and '(i)' or initial[i] end tone[i] = tone_conv[tone[i]] ipa[i] = initial[i] .. final[i] .. tone[i] end table.insert(result, table.concat(ipa, " ")) end return table.concat(result, "/, /") end function export.hrs_process(rom_list, dialect, process) local dialect_names = { ["h"] = "hailu", ["d"] = "dabu", ["r"] = "raoping", ["z"] = "zhaoan", } if process == "rom" then return gsub(table.concat(rom_list, " / "), "([ˊˇˋ˖])", "<sup>%1</sup>") elseif process == "ipa" then local ipa_readings = {} for i, reading in ipairs(rom_list) do ipa_readings[i] = export.hrs_to_ipa(reading, dialect_names[dialect]) end return table.concat(ipa_readings, "/, /") end end function export.hrs_to_ipa(text, dialect) local initial_conv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "v", ["bb"] = "b", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["j"] = "t͡s", ["q"] = "t͡sʰ", ["x"] = "s", ["zh"] = "t͡ʃ", ["ch"] = "t͡ʃʰ", ["sh"] = "ʃ", ["rh"] = "ʒ", [""] = "", } local final_conv = { ["ii"] = "ɨ", ["i"] = "i", ["e"] = "e", ["a"] = "a", ["o"] = "o", ["u"] = "u", ["ie"] = "ie", ["eu"] = "eu", ["ieu"] = "ieu", ["ia"] = "ia", ["ua"] = "ua", ["ai"] = "ai", ["iai"] = "iai", ["uai"] = "uai", ["au"] = "au", ["iau"] = "iau", ["io"] = "io", ["oi"] = "oi", ["ioi"] = "ioi", ["iu"] = "iu", ["ui"] = "ui", ["iui"] = "iui", ["ue"] = "ue", ["iim"] = "ɨm", ["im"] = "im", ["em"] = "em", ["iem"] = "iem", ["am"] = "am", ["iam"] = "iam", ["iin"] = "ɨn", ["in"] = "in", ["en"] = "en", ["ien"] = "ien", ["uen"] = "uen", ["an"] = "an", ["ian"] = "ian", ["uan"] = "uan", ["on"] = "on", ["ion"] = "ion", ["un"] = "un", ["iun"] = "iun", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["ong"] = "oŋ", ["iong"] = "ioŋ", ["ung"] = "uŋ", ["iung"] = "iuŋ", ["er"] = "ə", ["iib"] = "ɨp", ["ib"] = "ip", ["eb"] = "ep", ["ieb"] = "iep", ["ab"] = "ap", ["iab"] = "iap", ["iid"] = "ɨt", ["id"] = "it", ["ed"] = "et", ["ied"] = "iet", ["ued"] = "uet", ["ad"] = "at", ["iad"] = "iat", ["uad"] = "uat", ["od"] = "ot", ["iod"] = "iot", ["ud"] = "ut", ["iud"] = "iut", ["ag"] = "ak", ["iag"] = "iak", ["uag"] = "uak", ["og"] = "ok", ["iog"] = "iok", ["ug"] = "uk", ["iug"] = "iuk", ["m"] = "m̩", ["n"] = "n̩", ["ng"] = "ŋ̍", } local function get_tone(final, tone_mark, dialect) local mark_to_value = { ["hailu"] = { ["ˋ"] = "53", [""] = "55", ["ˊ"] = "24", ["ˇ"] = "11", ["˖"] = "33", ["d"] = "5", ["dˋ"] = "2", } } local mark = (find(final, "[ptk]$") and "d" or "") .. tone_mark return mark_to_value[dialect][mark] or "" end local function get_sandhi(syl_count, i, tone, dialect) if dialect == "hailu" then if i < syl_count then if tone == "24" then return "33" elseif tone == "5" then return "2" end end end return "" end local sup = { ["1"] = "¹", ["2"] = "²", ["3"] = "³", ["4"] = "⁴", ["5"] = "⁵", ["-"] = "⁻", } local function hrs_check_invalid(text) if not text then return nil end local common_errors = "[´`+⁺^]" local error_correction = { ["´"] = "ˊ", ["`"] = "ˋ", ["+"] = "˖", ["⁺"] = "˖", ["^"] = "ˆ", } local correct = gsub(text, common_errors, error_correction) if text ~= correct then error("Invalid Hakka Romanization \"" .. text .. "\": please change it to \"" .. correct .. "\"") end end --check for common errors in input hrs_check_invalid(text) local syllables, initial, final, tone, sandhi, ipa = {}, {}, {}, {}, {}, {} syllables = mw.text.split(text, " ") for i, syllable in ipairs(syllables) do syllable = gsub(syllable, ",", "") --find initial, final, tone initial[i] = match(syllable, "^([bpmfvdtnlgkhzcsjqxr][ghb]?)") or "" tone[i] = match(syllable, "([ˊˇˋ˖])$") or "" final[i] = sub(syllable, len(initial[i]) + 1, -1 - len(tone[i])) --convert initial, final, tone initial[i] = initial_conv[initial[i]] or "" final[i] = final_conv[final[i]] or "" tone[i] = get_tone(final[i], tone[i], dialect) sandhi[i] = get_sandhi(#syllables, i, tone[i], dialect) ipa[i] = initial[i] .. final[i] .. gsub(tone[i] .. (sandhi[i] ~= "" and "-" or "") .. sandhi[i], "[12345%-]", sup) end return gsub(table.concat(ipa, " "), ",", "") end function export.ct_to_ipa(text) local initial_conv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "v", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["zh"] = "t͡ʃ", ["ch"] = "t͡ʃʰ", ["sh"] = "ʃ", [""] = "", } local final_conv = { ["ï"] = "ʐ̩", ["i"] = "i", ["u"] = "u", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["o"] = "o", ["io"] = "io", ["e"] = "e", ["ie"] = "ie", ["ue"] = "ue", ["ai"] = "ai", ["ui"] = "ui", ["ao"] = "ɔ", ["iao"] = "iɔ", ["eu"] = "əɯ", ["iu"] = "iəɯ", ["ieu"] = "iəɯ", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["eng"] = "eŋ", ["ieng"] = "ieŋ", ["ueng"] = "ueŋ", ["ing"] = "iŋ", ["ung"] = "uŋ", ["ông"] = "ɔŋ", ["iông"] = "iɔŋ", ["ong"] = "oŋ", ["iong"] = "ioŋ", ["ng"] = "ŋ̍", } local tone_conv = { ["1"] = "³³", ["2"] = "²⁴", ["3"] = "⁴²", ["4"] = "⁵⁴", ["5"] = "²¹", ["3*"] = "⁴²⁻³³", } if type(text) == 'table' then text = text.args[1] end local words = mw.text.split(text, " / ") local result = {} for _, word in ipairs(words) do word = gsub(gsub(gsub(word, 'ct=', ''), '[%.,]', ''), '%s+$', '') local syllables = mw.text.split(word, '%s+') local initial, final, tone, ipa = {}, {}, {}, {} for i, syllable in ipairs(syllables) do initial[i] = match(syllable, "^[bpmfvdtnlgkhzcsjqx]?[gh]?") final[i] = match(sub(syllable, len(initial[i]) + 1, -1), "^[^1-5]*") if initial[i] == "" and final[i] == "wung" then error('Please change "wung" to "ng".') end if initial[i] == "" and find(final[i], "^i") then error('Syllables starting with "i" need a "y" in front.') end final[i] = gsub(gsub(final[i], "^yi", "i"), "^y", "i") if initial[i] == "" and find(final[i], "^u") then error('Syllables starting with "u" need a "w" in front.') end final[i] = gsub(gsub(final[i], "^wu", "u"), "^w", "u") if final[i] == "" then final[i] = initial[i] initial[i] = "" end tone[i] = match(syllable, "[1-5]$") end for i, syllable in ipairs(syllables) do initial[i] = initial_conv[initial[i]] or error(("Unrecognised initial: \"%s\""):format(initial[i])) final[i] = final_conv[final[i]] or error(("Unrecognised final: \"%s\""):format(final[i])) if initial[i]:find("[zcs]") then final[i] = final[i]:gsub("ʐ", "z") end if (tone[i] == "3") and (tone[i+1] == "3") then tone[i] = tone[i] .. "*" end -- TODO: tone sandhi? tone[i] = tone_conv[tone[i]] ipa[i] = initial[i] .. final[i] .. tone[i] end table.insert(result, table.concat(ipa, " ")) end return table.concat(result, "/, /") end return export 3i5lrnjjbaboiunu7fehztvh80cpv5u Andoza:ja-pron 10 130300 628872 367595 2024-11-06T14:50:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE Replaced content with "<includeonly>{{#invoke:ja-pron|show}}</includeonly><noinclude>{{documentation}}</noinclude>" 628872 wikitext text/x-wiki <includeonly>{{#invoke:ja-pron|show}}</includeonly><noinclude>{{documentation}}</noinclude> 95six17gjfb2iazaus01v1hn4vnd29k Modul:ja-pron 828 130301 628873 240792 2024-11-06T14:52:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628873 Scribunto text/plain local m_str_utils = require("Module:string utilities") local concat = table.concat local gsplit = m_str_utils.gsplit local gsub = m_str_utils.gsub local insert = table.insert local len = m_str_utils.len local match = m_str_utils.match local min = math.min local split = m_str_utils.split local sub = m_str_utils.sub local toNFC = mw.ustring.toNFC local lang = require("Module:tili").getByCode("ja") local kana_to_romaji = require("Module:Hrkt-translit").tr local m_accent = require("Module:accent qualifier") -- also [[Module:qualifier]] local PAGENAME = mw.loadData("Module:headword/data").pagename local range = mw.loadData("Module:ja/data/range") local a_kana = range.vowels.a local i_kana = range.vowels.i local u_kana = range.vowels.u local e_kana = range.vowels.e local o_kana = range.vowels.o local n_kana = range.vowels.n local submoraic_kana = range.submoraic_kana local export = {} local ref_template_name_data = { ["DJR"] = "R:Daijirin", ["DJR4"] = "R:Daijirin4", ["DJS"] = "R:Daijisen", ["KDJ"] = "R:Kokugo Dai Jiten", ["NHK"] = "R:NHK Hatsuon", ["NKD2"] = "R:Nihon Kokugo Daijiten 2 Online", ["SMK2"] = "R:Shinmeikai2", ["SMK5"] = "R:Shinmeikai5", ["SMK7"] = "R:Shinmeikai7", ["SMK8"] = "R:Shinmeikai8", ["SKK8"] = "R:Sankoku8", ["ZAJ"] = "R:Zenkoku Akusento Jiten", ["JEL"] = "R:Kenkyusha JEL Pocket", ["JAC"] = "R:ja:JAccent", } local function add_acc_refs(frame, text) local output = {} for ref_name in gsplit(text, ",") do mw.log(ref_name) local ref_template_name = ref_template_name_data[ref_name] if ref_template_name then insert(output, frame:extensionTag("ref", "{{" .. ref_template_name .. "}}", {name = ref_name})) elseif match(ref_name, "ref") then insert(output, frame:preprocess(ref_name)) else -- [[Special:WhatLinksHere/Wiktionary:Tracking/ja-pron/unrecognized ref]] require("Module:debug").track("ja-pron/unrecognized ref") end end return concat(output) end function export.show(frame) local params = { [1] = {default = PAGENAME, list = true}, ["accent"] = {list = true}, ["accent\1_loc"] = {list = true, allow_holes = true}, ["accent\1_ref"] = {list = true, allow_holes = true}, ["accent\1_note"] = {list = true, allow_holes = true}, ["acc"] = {alias_of = "accent", list = true}, ["acc\1_loc"] = {alias_of = "accent\1_loc", list = true}, ["acc\1_ref"] = {alias_of = "accent\1_ref", list = true}, ["acc\1_note"] = {alias_of = "accent\1_note", list = true}, ["dev"] = {}, ["dev2"] = {}, ["devm"] = {}, ["a"] = {alias_of = "audio"}, ["audio"] = {} } local args = require("Module:parameters").process(frame:getParent().args, params) local au = args.audio local dev = args.dev or args.devm local dev2 = args.dev2 local maxindex = table.getn(args[1]) local html_list_main = mw.html.create("ul") local categories = {} -- Deals with the accents local a, al, ar, an = args.accent, args.accent_loc, args.accent_ref, args.accent_note for i, position in ipairs(a) do local text = args[1][min(maxindex,i)] if not al[i] then al[i] = "[[w:Tokyo dialect|Tokyo]]" end local result = m_accent.format_qualifiers(lang, {al[i]}) .. " " result = result .. export.accent(text, position, dev, dev2) if ar[i] then result = result .. add_acc_refs(frame, ar[i]) else require("Module:debug").track("ja-pron/unsourced accent") end result = result .. (an[i] and (" " .. an[i]) or "") html_list_main:tag("li"):wikitext( result ) end -- Deals with the IPA local m_IPA, no_acc = require("Module:IPA"), false for i, text in ipairs(args[1]) do html_list_main:tag("li"):wikitext( m_IPA.format_IPA_full { lang = lang, items = {{ pron = "[" .. export.ipa(text, dev, dev2) .. "]" }}, } ) if not a[i] then no_acc = true end end if no_acc then insert(categories, lang:getCanonicalName() .. " terms with IPA pronunciation missing pitch accent") end -- Deals with the audio if au then html_list_main:tag("li"):wikitext( require("Module:audio").format_audio { lang = lang, file = au, } ) end return "\n" .. tostring(html_list_main) .. (#categories > 0 and require("Module:utilities").format_categories(categories, lang) or "") end function export.ipa(text, dev, dev2) if type(text) == "table" then text, dev, dev2 = text.args[1], text.args["dev"], text.args["dev2"] end dev = dev or "" dev2 = dev2 or "" if dev2 ~= "" then error("Please remove parameter dev2 and change parameter dev to \"dev=" .. dev .. "," .. dev2 .. "\"") end -- Convert 〜 and 〰 to a regular ー. text = gsub(text, "[〜〰]", "ー") local position_mora = {} for i = 1, len(text) do if not match(sub(text, i, i), "[ " .. submoraic_kana .. "%.]") then local nxt = sub(text, i + 1,i + 1) if nxt and match(nxt, "[" .. submoraic_kana .. "]") then insert(position_mora, i + 1) else insert(position_mora, i) end end end -- insert @ to stand for devoicing if dev ~= "" then for position in gsplit(dev, ",") do position = tonumber(position) if #position_mora == position then text = text .. "@" else local position_devspace = position_mora[position] text = sub(text, 1, position_devspace) .. "@" .. sub(text, position_devspace+1, -1) end for i = position + 1, #position_mora do position_mora[i] = position_mora[i] + 1 end end end text = toNFC(kana_to_romaji(text, "ja", nil, {keep_dot = true, disambig = true})) text = gsub(text, "[lv'@]", { ["l"] = "r", ["v"] = "b", ["'"] = "ʔ", ["@"] = "̥" }) -- Hyphens which have been geminated over are removed; otherwise converted to dots. text = gsub(text, "([bcdfghjkmnprstvw])%-%1", "%1%1") :gsub("-", ".") text = text:gsub("([kprt])(%s*)%1", "%1̚%2%1") :gsub("t(%s*)ch", "t̚%1ch") :gsub("([bd])(%s*)%1", "%1̚%2%1̥") :gsub("g(%s*)g", "g̚%1g̊") :gsub("([jz])(%s*)%1", "d̚%2%1") :gsub("s(%s*)sh", "ɕ%1ɕ") text = gsub(text, "ei", "ē") text = gsub(text, "[āēīōūfvjryz]", { ["ā"] = "aː", ["ē"] = "eː", ["ī"] = "iː", ["ō"] = "oː", ["ū"] = "uː", ["f"] = "ɸ", ["j"] = "d͡ʑ", ["r"] = "ɾ", ["y"] = "j", ["z"] = "d͡z" }) text = gsub(text, "[sct][hs]", { ["sh"] = "ɕ", ["ch"] = "t͡ɕ", ["ts"] = "t͡s" }) text = gsub(text, "([aeiouː̥])d͡([zʑ])", "%1%2") text = gsub(text, "([bdɸgkmnpɾstz][̥̊]*)i", "%1ʲi") text = gsub(text, "([bdɸgkmnpɾstwz][̥̊]*)j", "%1ʲ") text = gsub(text, "([bɕdɸghjkmpɾstzʑʲ][̥̊]*)w", "%1ᵝ") text = gsub(text, "nʲ", "ɲ̟") text = gsub(text, "n+$", function(n) return ("ɴ"):rep(#n) end) text = gsub(text, "([^ ː_nɴʔ])(ː*)ɴ", "%1̃%2ɴ") text = gsub(text, "([^ ː_nʔ])(ː*)n([^aeou%s])", "%1̃%2n%3") text = gsub(text, "n[n ]*[bmp]", function(m) return m:gsub("n", "m") end) text = gsub(text, "n[n ]*.͡[ɕʑ]", function(m) return m:gsub("n", "ɲ̟") end) text = gsub(text, "n[n ]*ɲ̟", function(m) return m:gsub("n", "ɲ̟") end) text = gsub(text, "n[n ]*ɾ", function(m) return m:gsub("n", "n̺") end) text = gsub(text, "_ng", "ŋ") text = gsub(text, "(n[n ]*)([kg])([ʲᵝ]*)", function(m1, m2, m3) return m1:gsub("n", "ŋ" .. m3) .. m2 .. m3 end) text = gsub(text, "_nw", "nᵝ") text = gsub(text, "n[n ]*[ɸszɕhjw]", function(m) return m:gsub("n", "ɰ̃") end) text = gsub(text, "([n ]*n)[ʔ_]", function(m) -- ʔ to be removed once Hrkt-translit `disambig` flag is implemented, as ʔ will always represent a glottal return m:gsub("n", "ɰ̃") end) text = gsub(text, "n[n ]* [aeiou]", function(m) return m:gsub("n", "ɰ̃") end) text = gsub(text, "h[iju]", { ["hi"] = "çi", ["hj"] = "ç", ["hu"] = "ɸu" }) text = gsub(text, "h([çɸ])", "%1%1") for _, cons in ipairs{"ç", "ɕ", "ɸ", "h", "j", "m", "n", "ɴ", "ŋ", "ɾ", "s", "w", "z", "ʑ"} do text = gsub(text, "(" .. cons .. ")()" .. cons .. "+()", function(cons, i, j) return cons .. ("ː"):rep(j - i) end) end for _, cons in ipairs{"n̺", "nᵝ", "ɲ̟", "ŋʲ", "ŋᵝ", "ɰ̃"} do local char1, char2 = cons:match("(.[\128-\191]*)(.*)") text = gsub(text, "(" .. cons .. ")()" .. char1 .. "[" .. char1 .. char2 .. "]*" .. char2 .. "()", function(cons, i, j) return cons .. ("ː"):rep((j - i) / 2) end) end text = gsub(text, "(ː+)([ʲᵝ]+)", "%2%1") text = gsub(text, "̚(.[̥̊]*)([ʲᵝ]+)", "̚%2%1%2") text = gsub(text, "[aeiouw]", { ["a"] = "a̠", ["e"] = "e̞", ["o"] = "o̞", ["u"] = "ɯ̟", ["w"] = "β̞" }) text = gsub(text, "([szɕʑɲçʲ][̟̥̊]*ː*)ɯ̟", "%1ɨ") text = gsub(text, "̠[̥̃][̥̃]", "̥̃˗") text = gsub(text, "̞[̥̃][̥̃]", "̥̃˕") text = gsub(text, "̟[̥̃][̥̃]", "̥̃˖") text = gsub(text, "([̠̞̟])̥", "%1̊") :gsub("[%._]", "") :gsub("g", "ɡ") return text end function export.rise_and_fall(word, rftype) word = gsub(word, "([" .. o_kana .. "][゙゚]?)([うウ])", "%1.%2") word = gsub(word, "([" .. e_kana .. "][゙゚]?)([いイ])", "%1.%2") word = kana_to_romaji(word, "ja") if rftype == "rise" then word = gsub(word, ".", { ["a"] = "á", ["e"] = "é", ["i"] = "í", ["o"] = "ó", ["u"] = "ú", ["ā"] = "áá", ["ē"] = "éé", ["ī"] = "íí", ["ō"] = "óó", ["ū"] = "úú" }) word = gsub(gsub(word, "n([bcdfghjkmnprstvw%'z ])", "ń%1"), "n$", "ń") elseif rftype == "fall" then word = gsub(word, ".", { ["a"] = "à", ["e"] = "è", ["i"] = "ì", ["o"] = "ò", ["u"] = "ù", ["ā"] = "àà", ["ē"] = "èè", ["ī"] = "ìì", ["ō"] = "òò", ["ū"] = "ùù" }) word = gsub(gsub(word, "n([bcdfghjkmnprstvw%'z ])", "ǹ%1"), "n$", "ǹ") else return error("Type not recognised.") end return word end -- [[Module:ja-ojad]] and [[Module:ja-infl-demo]] rely on the output format of this function function export.accent(text, class, dev, dev2) local result if(type(text)) == "table" then text, class, dev, dev2 = text.args[1], text.args[2], text.args["dev"], text.args["dev2"] end text = gsub(text, "([" .. o_kana .. "][゙゚]?)[うウ]", "%1ー") text = gsub(text, "([" .. e_kana .. "][゙゚]?)[いイ]", "%1ー") text = gsub(text, "%.", "") if dev == "" then dev = false end if dev2 == "" then dev2 = false end local down_first = "<span style=\"border-top:1px solid;position:relative;padding:1px;\">" local down_last = "<span style=\"position:absolute;top:0;bottom:67%;right:0%;border-right:1px solid;\"></span></span>" local high_first = "<span style=\"border-top:1px solid\">" local start = "<span lang=\"ja\" class=\"Jpan\">" local romaji_start = " <span class=\"Latn\"><samp>[" local romaji_last = "]</samp></span> " local last = "</span>" local position_kana = {} --position of each kana (ぁ counted), text without space local position_mora = {} --position of each mora (ぁ not counted), text without space local position_mora_space = {} --position of each mora (ぁ not counted), text with space for i=1, len(text) do if not match(sub(text,i,i), "[ " .. submoraic_kana .. "]") then local extra = len(match(sub(text,i+1), "^[" .. submoraic_kana .. "]*")) insert(position_mora_space, i+extra) end end local space_removed = gsub(text," ","") for i=1, len(space_removed) do insert(position_kana, i) if not match(sub(space_removed,i,i), "[" .. submoraic_kana .. "]") then local extra = len(match(sub(space_removed,i+1), "^[" .. submoraic_kana .. "]*")) insert(position_mora, i+extra) end end local acc_type, acc_number if match(class, "^[h0]$") then acc_type, acc_number = "h", 0 elseif match(class, "^[a1]$") then acc_type, acc_number = "a", 1 elseif match(class, "^o$") then acc_type = "o" acc_number = len(gsub(text, "[ " .. submoraic_kana .. "]", "")) end if match(class, "^[0-9]+$") and not match(class,"^[01]$") then class = gsub(class, "[on]", "") acc_number = tonumber(class) local morae_count = len(gsub(text, "[ " .. submoraic_kana .. "]", "")) if morae_count == acc_number then acc_type = "o" elseif morae_count < acc_number then return error(("Mora count (%d) is smaller than position of downstep mora (%d).") :format(morae_count, acc_number)) else acc_type = "n" end elseif not acc_number then acc_number = class end local start_index = 1 while match(sub(text, start_index+1, start_index+1), "[" .. submoraic_kana .. "]") do start_index = start_index + 1 end local kanas = {} local single_mora for i=1, len(text) do if not match(sub(text,i,i), "[ " .. submoraic_kana .. "]") then single_mora = gsub(sub(text, i, -1), "^(.[" .. submoraic_kana .. "]*).*", "%1") insert(kanas, single_mora) end end local function kana_devoice(text) return "<span style=\"border:1px dotted gray; border-radius:50%;\">" .. text .. "</span>" end if dev then for position in gsplit(dev, ",") do position = tonumber(position) kanas[position] = kana_devoice(kanas[position]) end end local romaji_text = gsub(text, "([" .. o_kana .. "][゙゚]?)ー", "%1お") romaji_text = gsub(romaji_text, "([" .. e_kana .. "][゙゚]?)ー", "%1え") romaji_text = gsub(romaji_text, "([" .. u_kana .. "][゙゚]?)ー", "%1う") romaji_text = gsub(romaji_text, "([" .. i_kana .. "][゙゚]?)ー", "%1い") romaji_text = gsub(romaji_text, "([" .. a_kana .. "][゙゚]?)ー", "%1あ") romaji_text = gsub(romaji_text, "([" .. n_kana .. "][゙゚]?)ー", "%1%1") local romajis = split(romaji_text, "") local function count_nspaces(text, index) local i, sample, nspaces = 0, "", 0 while len(sample) < index do i = i + 1 sample, nspaces = gsub(sub(text, 1, i), " ", "") end return nspaces end local function romaji_devoice(text) -- use @ instead of ̥ return text .. "@" end if dev then for position in gsplit(dev,",") do position = position_mora_space[tonumber(position)] romajis[position] = romaji_devoice(romajis[position]) end end if acc_type == "n" then local r_start_index = start_index + count_nspaces(romaji_text, start_index) local r_index = position_mora_space[acc_number] local k_index = acc_number local r_parts = { [1] = concat(romajis, "", 1, r_start_index), [2] = concat(romajis, "", r_start_index + 1, r_index), [3] = concat(romajis, "", r_index + 1, #romajis) } local k_parts = { [1] = concat(kanas, "", 1, 1), [2] = concat(kanas, "", 2, k_index), [3] = concat(kanas, "", k_index + 1, #kanas) } local space2 = "" local space3 = "" if sub(r_parts[2], 1, 1) == " " then space2 = " " end if sub(r_parts[3], 1, 1) == " " then space3 = " " end result = start .. k_parts[1] .. down_first .. k_parts[2] .. down_last .. k_parts[3] .. last .. romaji_start .. export.rise_and_fall(r_parts[1], "fall") .. space2 .. export.rise_and_fall(r_parts[2], "rise") .. "ꜜ" .. space3 .. export.rise_and_fall(r_parts[3], "fall") .. romaji_last .. "([[中高型|Nakadaka]] – [" .. acc_number .. "])" else local r_start_index = start_index + count_nspaces(romaji_text, start_index) local r_parts = { [1] = concat(romajis, "", 1, r_start_index), [2] = concat(romajis, "", r_start_index + 1, #romajis) } local k_parts = { [1] = concat(kanas, "", 1, 1), [2] = concat(kanas, "", 2, #kanas) } local space2 = "" if sub(r_parts[2], 1, 1) == " " then space2 = " " end if acc_type == "h" then result = start .. k_parts[1] .. high_first .. k_parts[2] .. last .. last .. romaji_start .. export.rise_and_fall(r_parts[1], "fall") .. space2 .. export.rise_and_fall(r_parts[2], "rise") .. romaji_last .. "([[平板型|Heiban]] – [" .. acc_number .. "])" elseif acc_type == "a" then result = start .. down_first .. k_parts[1] .. down_last .. k_parts[2] .. last .. romaji_start .. export.rise_and_fall(r_parts[1], "rise") .. "ꜜ" .. space2 .. export.rise_and_fall(r_parts[2], "fall") .. romaji_last .. "([[頭高型|Atamadaka]] – [" .. acc_number .. "])" elseif acc_type == "o" then result = start .. k_parts[1] .. down_first .. k_parts[2] .. down_last .. last .. romaji_start .. export.rise_and_fall(r_parts[1], "fall") .. space2 .. export.rise_and_fall(r_parts[2], "rise") .. "ꜜ" .. romaji_last .. "([[尾高型|Odaka]] – [" .. acc_number .. "])" else return error("Accent type not recognised.") end end result = gsub(result, "(.)@", "<del>%1</del>") return result end return export n74d4jvo18t26e85yxudi1460a0bbq1 出去 0 130356 628921 549122 2024-11-06T16:23:34Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628921 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=chūqù,tl=y |ma=y |c=ceot1 heoi3 |h=pfs=chhut-hi |mn=chhut-khì |cat=v,particle}} {{zh-verb}} # tashqariga chiqish uchun ===Sinonimlari=== * {{zh-ts|出門|出门}} ===Zarrachalar=== {{zh-particle}} # bir [[tashqi]] yoʻnalishini koʻrsatish uchun bir huquqbuzarlik oʻzgartirish uchun ishlatiladi; har doim bir [[feʼl]] oxiriga ilova #: {{zh-usex|丟 '''出去'''|tashqariga '''chiqish'''}} #: {{zh-usex|開 '''出去'''|haydab '''chiqish'''}} ===Boshiga shartlari=== * {{zh-ts|滾出去|滚出去}} 1mkbcd9irt2zt1ubyk8sy4v50c3ks8k 628973 628921 2024-11-06T17:55:57Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628973 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=chūqù,tl=y |ma=y |c=ceot1 heoi3 |h=pfs=chhut-hi |mn=chhut-khì |cat=v,particle}} {{zh-verb}} # tashqariga chiqish uchun ===Sinonimlari=== * {{zh-ts|出門|出门}} ===Zarrachalar=== {{zh-particle}} # bir [[tashqi]] yoʻnalishini koʻrsatish uchun bir huquqbuzarlik oʻzgartirish uchun ishlatiladi; har doim bir [[feʼl]] oxiriga ilova #: 丟 '''出去''' tashqariga '''chiqish''' #: 開 '''出去''' haydab '''chiqish''' ===Boshiga shartlari=== * {{zh-ts|滾出去|滚出去}} 4wbko08zoplxzuxw8vwh8g95415t1hj Modul:cdo-pron 828 130364 628889 240921 2024-11-06T15:35:28Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628889 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local sub = mw.ustring.sub local len = mw.ustring.len local match = mw.ustring.match local lower = mw.ustring.lower local split_tone = { ["ă"] = "a".."̆", ["ĕ"] = "e".."̆", ["ĭ"] = "i".."̆", ["ŏ"] = "o".."̆", ["ŭ"] = "u".."̆", ["ā"] = "a".."̄", ["ē"] = "e".."̄", ["ī"] = "i".."̄", ["ō"] = "o".."̄", ["ū"] = "u".."̄", ["á"] = "a".."́", ["é"] = "e".."́", ["í"] = "i".."́", ["ó"] = "o".."́", ["ú"] = "u".."́", ["à"] = "a".."̀", ["è"] = "e".."̀", ["ì"] = "i".."̀", ["ò"] = "o".."̀", ["ù"] = "u".."̀", ["â"] = "a".."̂", ["ê"] = "e".."̂", ["î"] = "i".."̂", ["ô"] = "o".."̂", ["û"] = "u".."̂", } local tone_from_mark = { [""] = 1, ["̆"] = 1, ["̆k"] = 7, ["̆h"] = 7, ["̄"] = 2, ["́"] = 3, ["́k"] = "4A", ["́h"] = "4B", ["̀"] = 5, ["̂"] = 6 } local initial_ipa = { ["b"] = { ["unchanged"] = "p", ["lenited"] = "<sup>(p-)</sup>β", ["nasal"] = "<sup>(p-)</sup>m" }, ["p"] = { ["unchanged"] = "pʰ", ["lenited"] = "<sup>(pʰ-)</sup>β", ["nasal"] = "<sup>(pʰ-)</sup>m" }, ["m"] = { ["unchanged"] = "m", ["lenited"] = "m", ["nasal"] = "m" }, ["d"] = { ["unchanged"] = "t", ["lenited"] = "<sup>(t-)</sup>l", ["nasal"] = "<sup>(t-)</sup>n" }, ["t"] = { ["unchanged"] = "tʰ", ["lenited"] = "<sup>(tʰ-)</sup>l", ["nasal"] = "<sup>(tʰ-)</sup>n" }, ["n"] = { ["unchanged"] = "nˡ", ["lenited"] = "nˡ", ["nasal"] = "nˡ" }, ["l"] = { ["unchanged"] = "l̃", ["lenited"] = "l̃", ["nasal"] = "<sup>(l-)</sup>nˡ" }, ["g"] = { ["unchanged"] = "k", ["lenited"] = "<sup>(k-)</sup>", ["nasal"] = "<sup>(k-)</sup>ŋ" }, ["k"] = { ["unchanged"] = "kʰ", ["lenited"] = "<sup>(kʰ-)</sup>", ["nasal"] = "<sup>(kʰ-)</sup>ŋ" }, ["ng"] = { ["unchanged"] = "ŋ", ["lenited"] = "ŋ", ["nasal"] = "ŋ" }, ["h"] = { ["unchanged"] = "h", ["lenited"] = "<sup>(h-)</sup>", ["nasal"] = "<sup>(h-)</sup>ŋ" }, ["c"] = { ["unchanged"] = "t͡s", ["lenited"] = "<sup>(t͡s-)</sup>ʒ", ["nasal"] = "<sup>(t͡s-)</sup>ʒ" }, ["ch"] = { ["unchanged"] = "t͡sʰ", ["lenited"] = "<sup>(t͡sʰ-)</sup>ʒ", ["nasal"] = "<sup>(t͡sʰ-)</sup>ʒ" }, ["s"] = { ["unchanged"] = "s", ["lenited"] = "<sup>(s-)</sup>l", ["nasal"] = "<sup>(s-)</sup>n" }, [""] = { ["unchanged"] = "", ["lenited"] = "", ["nasal"] = "<sup>(Ø-)</sup>ŋ" }, } local final_ipa = { ["a"] = { ["closed"] = "a", ["open"] = "ɑ" }, ["a̤"] = { ["closed"] = "ɛ", ["open"] = "ɑ" }, ["ae̤"] = { ["closed"] = "œ", ["open"] = "ɔ" }, ["ae̤h"] = { ["closed"] = "øyʔ", ["open"] = "ɔyʔ" },--see [[茉莉]] ["ae̤k"] = { ["closed"] = "øyʔ", ["open"] = "ɔyʔ" }, ["ae̤ng"] = { ["closed"] = "øyŋ", ["open"] = "ɔyŋ" }, ["ah"] = { ["closed"] = "aʔ", ["open"] = "ɑʔ" }, ["a̤h"] = { ["closed"] = "ɛʔ", ["open"] = "ɑʔ" }, ["ai"] = { ["closed"] = "ai", ["open"] = "ɑi" }, ["aik"] = { ["closed"] = "ɛiʔ", ["open"] = "aiʔ" }, ["aing"] = { ["closed"] = "ɛiŋ", ["open"] = "aiŋ" }, ["aiu"] = { ["closed"] = "ɛu", ["open"] = "ɑu" }, ["ak"] = { ["closed"] = "aʔ", ["open"] = "ɑʔ" }, ["ang"] = { ["closed"] = "aŋ", ["open"] = "ɑŋ" }, ["au"] = { ["closed"] = "au", ["open"] = "ɑu" }, ["auk"] = { ["closed"] = "ouʔ", ["open"] = "ɑuʔ" }, ["aung"] = { ["closed"] = "ouŋ", ["open"] = "ɑuŋ" }, ["e"] = { ["closed"] = "i", ["open"] = "ɛi" }, ["e̤"] = { ["closed"] = "œ", ["open"] = "ɔ" }, ["eh"] = { ["closed"] = "ɛiʔ", ["open"] = "ɛiʔ" },--see [[茉莉]] ["e̤h"] = { ["closed"] = "œʔ", ["open"] = "œʔ" }, ["ek"] = { ["closed"] = "ɛiʔ", ["open"] = "aiʔ" }, ["ek2"] = { ["closed"] = "iʔ", ["open"] = "ɛiʔ" }, ["e̤k"] = { ["closed"] = "øyʔ", ["open"] = "ɔyʔ" }, ["eng"] = { ["closed"] = "ɛiŋ", ["open"] = "aiŋ" }, ["eng2"] = { ["closed"] = "iŋ", ["open"] = "ɛiŋ" }, ["e̤ng"] = { ["closed"] = "øyŋ", ["open"] = "ɔyŋ" }, ["eu"] = { ["closed"] = "ɛu", ["open"] = "ɑu" }, ["eu2"] = { ["closed"] = "ieu", ["open"] = "iɛu" }, ["e̤ṳ"] = { ["closed"] = "y", ["open"] = "øy" }, ["e̤ṳk"] = { ["closed"] = "yʔ", ["open"] = "øyʔ" }, ["e̤ṳng"] = { ["closed"] = "yŋ", ["open"] = "øyŋ" }, ["i"] = { ["closed"] = "i", ["open"] = "ɛi" }, ["ia"] = { ["closed"] = "ia", ["open"] = "iɑ" }, ["iah"] = { ["closed"] = "iaʔ", ["open"] = "iɑʔ" }, ["iak"] = { ["closed"] = "iaʔ", ["open"] = "iɑʔ" }, ["iang"] = { ["closed"] = "iaŋ", ["open"] = "iɑŋ" }, ["iau"] = { ["closed"] = "iau", ["open"] = "iau" }, ["ie"] = { ["closed"] = "ie", ["open"] = "iɛ" }, ["ieh"] = { ["closed"] = "ieʔ", ["open"] = "iɛʔ" }, ["iek"] = { ["closed"] = "ieʔ", ["open"] = "iɛʔ" }, ["ieng"] = { ["closed"] = "ieŋ", ["open"] = "iɛŋ" }, ["ieu"] = { ["closed"] = "ieu", ["open"] = "iɛu" }, ["ih"] = { ["closed"] = "iʔ", ["open"] = "ɛiʔ" }, ["ik"] = { ["closed"] = "iʔ", ["open"] = "ɛiʔ" }, ["ing"] = { ["closed"] = "iŋ", ["open"] = "ɛiŋ" }, ["io"] = { ["closed"] = "yo", ["open"] = "yɔ" }, ["ioh"] = { ["closed"] = "yoʔ", ["open"] = "yɔʔ" }, ["iok"] = { ["closed"] = "yoʔ", ["open"] = "yɔʔ" }, ["iong"] = { ["closed"] = "yoŋ", ["open"] = "yɔŋ" }, ["iu"] = { ["closed"] = "ieu", ["open"] = "iɛu" }, ["ng"] = { ["closed"] = "ŋ̍", ["open"] = "ŋ̍" }, ["o"] = { ["closed"] = "u", ["open"] = "ou" }, ["o̤"] = { ["closed"] = "o", ["open"] = "ɔ" }, ["oh"] = { ["closed"] = "uʔ", ["open"] = "ouʔ" }, ["o̤h"] = { ["closed"] = "oʔ", ["open"] = "ɔʔ" }, ["oi"] = { ["closed"] = "øy", ["open"] = "ɔy" }, ["oi2"] = { ["closed"] = "ui", ["open"] = "ui" }, ["o̤i"] = { ["closed"] = "øy", ["open"] = "ɔy" }, ["ok"] = { ["closed"] = "ouʔ", ["open"] = "ɔuʔ" }, ["ok2"] = { ["closed"] = "uʔ", ["open"] = "ouʔ" }, ["o̤k"] = { ["closed"] = "oʔ", ["open"] = "ɔʔ" }, --see [[汝各儂]] ["ong"] = { ["closed"] = "ouŋ", ["open"] = "ɔuŋ" }, ["ong2"] = { ["closed"] = "uŋ", ["open"] = "ouŋ" }, ["u"] = { ["closed"] = "u", ["open"] = "ou" }, ["ṳ"] = { ["closed"] = "y", ["open"] = "øy" }, ["ua"] = { ["closed"] = "ua", ["open"] = "uɑ" }, ["uah"] = { ["closed"] = "uaʔ", ["open"] = "uɑʔ" }, ["uai"] = { ["closed"] = "uai", ["open"] = "uɑi" }, ["uak"] = { ["closed"] = "uaʔ", ["open"] = "uɑʔ" }, ["uang"] = { ["closed"] = "uaŋ", ["open"] = "uɑŋ" }, ["ui"] = { ["closed"] = "ui", ["open"] = "ui" }, ["uk"] = { ["closed"] = "uʔ", ["open"] = "ouʔ" }, ["ṳk"] = { ["closed"] = "yʔ", ["open"] = "øyʔ" }, ["ung"] = { ["closed"] = "uŋ", ["open"] = "ouŋ" }, ["ṳng"] = { ["closed"] = "yŋ", ["open"] = "øyŋ" }, ["uo"] = { ["closed"] = "uo", ["open"] = "uɔ" }, ["uoh"] = { ["closed"] = "uoʔ", ["open"] = "uɔʔ" }, ["uoi"] = { ["closed"] = "ui", ["open"] = "ui" }, ["uok"] = { ["closed"] = "uoʔ", ["open"] = "uɔʔ" }, ["uong"] = { ["closed"] = "uoŋ", ["open"] = "uɔŋ" }, } local tone_ipa = { ["1"] = "⁵⁵", --陰平 ["2"] = "³³", --上聲 ["3"] = "²¹³", --陰去 ["4A"] = "²⁴", --陰入-甲 (-k) ["4B"] = "²⁴", --陰入-乙 (-h) ["5"] = "⁵³", --陽平 ["6"] = "²⁴²", --陽去 ["7"] = "⁵", --陽入 ["8"] = "²¹", --半陰去 ["9"] = "³⁵", --半陽去 ["-"] = "⁻", ["("] = "⁽", [")"] = "⁾", } local tone_sandhi = { ["A-I"] = "1", ["A-II"] = "1", ["A-III"] = "5", ["A-IV"] = "5", ["B-I"] = "8", ["B-II"] = "8", ["B-III"] = "9", ["B-IV"] = "1", ["C-I"] = "1", ["C-II"] = "2", ["C-III"] = "2", ["C-IV"] = "8", ["A-A-I"] = "8-1", ["A-A-II"] = "8-1", ["A-A-III"] = "8-5", ["A-A-IV"] = "8-5", ["A-B-I"] = "8-8", ["A-B-II"] = "8-8", ["A-B-III"] = "8-9", ["A-B-IV"] = "8-1", ["B-A-I"] = "8-1", ["B-A-II"] = "8-1", ["B-A-III"] = "8-5", ["B-A-IV"] = "8-5", ["B-B-I"] = "8-8", ["B-B-II"] = "8-8", ["B-B-III"] = "8-9", ["B-B-IV"] = "8-1", ["C-A-I"] = "8-1", ["C-A-II"] = "8-1", ["C-A-III"] = "8-5", ["C-A-IV"] = "8-5", ["C-B-I"] = "8-8", ["C-B-II"] = "8-8", ["C-B-III"] = "8-9", ["C-B-IV"] = "8-1", ["A-C-I"] = "1-1", ["A-C-II"] = "1-1", ["A-C-III"] = "5-2", ["A-C-IV"] = "5-8", ["B-C-I"] = "9-2", ["B-C-II"] = "9-2", ["B-C-III"] = "9-2", ["B-C-IV"] = "1-8", ["C-C-I"] = "2-2", ["C-C-II"] = "2-2", ["C-C-III"] = "2-2", ["C-C-IV"] = "8-8", } local sylcat = { [1] = { ["1"] = "A", ["3"] = "A", ["4B"] = "A", ["6"] = "A", ["2"] = "B", ["4A"] = "B", ["5"] = "C", ["7"] = "C" }, [2] = { ["1"] = "I", ["5"] = "II", ["7"] = "II", ["2"] = "III", ["3"] = "IV", ["6"] = "IV", ["4A"] = "IV", ["4B"] = "IV" } } local diminutive_sandhi = { ["1"] = "2", ["2"] = "2", ["5"] = "2", ["3"] = "8", ["4A"] = "8", ["4B"] = "8", ["6"] = "8", ["7"] = "7" } local dual_rimes = { ["ong"] = true, ["ok"] = true, ["eng"] = true, ["ek"] = true, ["eu"] = true, ["oi"] = true, } local neg_assim = { ["labial"] = "<sup>(ŋ̍-)</sup>m̩", ["dental"] = "<sup>(ŋ̍-)</sup>n̩", ["velar"] = "<sup>(ŋ̍-)</sup>ŋ̍", ["alone"] = "<sup>(ŋ̍-)</sup>ŋ̍/m̩/n̩", } local neg_type = { ["b"] = "labial", ["p"] = "labial", ["m"] = "labial", ["d"] = "dental", ["t"] = "dental", ["n"] = "dental", ["l"] = "dental", ["s"] = "dental", ["c"] = "dental", ["✘"] = "alone", } local initial_string = "^([bpmdtnlgkhcs]?[gh]?)" function export.rom(text) return (text :gsub("/", " / ") :gsub("[!\\]", "") :gsub(">([^> %-]+)", "<sup>→%1</sup>")) end function export.sentence(text) local sentence = {} text = gsub(text, "[,%.%?!;:']", "") for word in mw.text.gsplit(lower(text), " ", true) do table.insert(sentence, export.ipa(word)) end return table.concat(sentence, " ") end local function determ_tone(text) local tone = gsub(gsub(text, ".", split_tone), "^[^̆̄́̀̂hk]*([̆̄́̀̂]?)[^̆̄́̀̂hk]*([hk]?)$", function(tone_symbol, coda) return tone_from_mark[tone_symbol..coda] end) return tone end function export.ipa(text, feature) if type(text) == "table" then text = text.args[1] end text = lower(text) local phrase_result = {} local words = mw.text.split(text, "/") for _, word in ipairs(words) do local word_result = {} local parts = mw.text.split(word, " ") for _, part in ipairs(parts) do local initial, final, tone, tone_conv, ipa, exc = {}, {}, {}, {}, {}, {} local lenition_blocked, ablaut_blocked, diminutive = {}, {}, {} local syllables = mw.text.split(part, "-") for index, syllable in ipairs(syllables) do syllable = gsub(syllable, "\\$", function(diminutive_syllable) diminutive[index] = true return "" end) syllable = gsub(syllable, "!$", function(ablaut_syllable) ablaut_blocked[index] = true return "" end) syllable = gsub(syllable, "%*", function(captured_initial) lenition_blocked[index] = true return "" end) if match(syllable, ">") then tone[index] = determ_tone(gsub(gsub(gsub(syllable, ">[^>]+$", ""), initial_string, ""), ".", split_tone)) syllable = gsub(syllable, "[^>]+>", "") exc[index] = determ_tone(gsub(syllable, initial_string, "")) end initial[index] = match(syllable, initial_string) final[index] = sub(syllable, len(initial[index]) + 1, -1) final[index] = gsub(final[index], ".", split_tone) tone[index] = exc[index] and tone[index] or determ_tone(final[index]) final[index] = gsub(final[index], "[̆̄́̀̂]", "") if dual_rimes[final[index]] and match(tostring(tone[index]), "[346]") then final[index] = final[index] .. "2" end final[index] = match(initial[index] .. final[index], "[dtnlcs]h?io") and gsub(final[index], "io", "uo") or final[index] if (initial[index] .. final[index]) == "ng" then initial[index], final[index] = "", "ng" end end if #syllables == 1 or feature == "no_sandhi" then tone_conv = tone elseif #syllables == 2 then tone_conv = { tone[1].."-"..(tone_sandhi[sylcat[1][exc[1] or tone[1]].."-"..sylcat[2][tone[2]]]), tone[2] } elseif #syllables == 3 then sandhi = mw.text.split(tone_sandhi[sylcat[1][exc[1] or tone[1]].."-".. sylcat[1][exc[2] or tone[2]].."-"..sylcat[2][tone[3]]], "-") tone_conv = { tone[1].."-"..sandhi[1], tone[2].."-"..sandhi[2], tone[3] } elseif #syllables == 4 then tone_conv = { tone[1].."-"..tone_sandhi[sylcat[1][exc[1] or tone[1]].."-"..sylcat[2][tone[2]]], tone[2].."(-8)", tone[3].."-"..tone_sandhi[sylcat[1][exc[3] or tone[3]].."-"..sylcat[2][tone[4]]], tone[4] } end for index = 1, #syllables do if diminutive[index] then tone_conv[index] = gsub(tone_conv[index], "%-.+$", "-" .. diminutive_sandhi[tone[index]]) end if (match(tostring(tone_conv[index]), "[346][AB]?$") and (#syllables == 1 or index == #syllables)) or ablaut_blocked[index] then final[index] = final_ipa[final[index]]["open"] else final[index] = final_ipa[final[index]]["closed"] end local initial_state = (index == 1 or match(syllables[index-1], "k!?\\?$") or lenition_blocked[index]) and "unchanged" or (match(final[index-1], "[ŋ̩̍]$") and "nasal" or "lenited") initial[index] = initial_ipa[initial[index]][initial_state] if final[index] == "ŋ̍" then final[index] = neg_assim[neg_type[sub(syllables[index + 1] or "✘", 1, 1)] or "velar"] end tone_conv[index] = gsub(tone_conv[index], "([1-9AB]+)%-([1-9AB]+)", function(original, sandhi) if original == sandhi then return original end end) tone_conv[index] = gsub(tone_conv[index], "([1-9%-%(%)][AB]?)", tone_ipa) ipa[index] = initial[index] .. final[index] .. tone_conv[index] end table.insert(word_result, table.concat(ipa, " ")) end table.insert(phrase_result, table.concat(word_result, " ")) end return table.concat(phrase_result, "/, /") end return export tb28193z69xentn6mz43mvyyat181dc Modul:nan-pron 828 130365 628888 240922 2024-11-06T15:34:40Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628888 Scribunto text/plain local export = {} local m_str_utils = require("Module:string utilities") local find = m_str_utils.find local gsplit = m_str_utils.gsplit local gsub = m_str_utils.gsub local sub = m_str_utils.sub local match = m_str_utils.match local len = m_str_utils.len local lower = m_str_utils.lower local split = m_str_utils.split local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local poj_tone_marks = "́" .. "̀" .. "̂" .. "̌" .. "̄" .. "̍" .. "̋" .. "̆" local psdb_initial = { ["p"] = "'p", ["ph"] = "ph", ["b"] = "'b", ["t"] = "'d", ["th"] = "'t", ["k"] = "'k", ["kh"] = "'q", ["g"] = "'g", ["chi"] = "c", ["ch"] = "z", ["chhi"] = "ch", ["chh"] = "zh", ["si"] = "s", ["s"] = "s", ["j"] = "j", ["l"] = "l", ["h"] = "'h", ["m"] = "m", ["n"] = "n", ["ng"] = "ng", [""] = "'" } local function psdb_final(text) local basic_psdb = { --single vowel tone 12357 ["a1"] = "af", ["a2"] = "ar", ["a3"] = "ax", ["a5"] = "aa", ["a7"] = "a", ["i1"] = "y", ["i2"] = "ie", ["i3"] = "ix", ["i5"] = "ii", ["i7"] = "i", ["u1"] = "w", ["u2"] = "uo", ["u3"] = "ux", ["u5"] = "uu", ["u7"] = "u", ["e1"] = "ef", ["e2"] = "ea", ["e3"] = "ex", ["e5"] = "ee", ["e7"] = "e", ["oo1"] = "of", ["oo2"] = "or", ["oo3"] = "ox", ["oo5"] = "oo", ["oo7"] = "o", ["o1"] = "oy", ["o2"] = "oir", ["o3"] = "oix", ["o5"] = "ooi", ["o7"] = "oi", ["ng1"] = "'ngf", ["ng2"] = "'ngr", ["ng3"] = "'ngx", ["ng5"] = "'ngg", ["ng7"] = "'ng", ["m1"] = "'mf", ["m2"] = "'mr", ["m3"] = "'mx", ["m5"] = "'mm", ["m7"] = "'m", --double vowel tone 12357 ["ai1"] = "ay", ["ai2"] = "ae", ["ai3"] = "aix", ["ai5"] = "aai", ["ai7"] = "ai", ["au1"] = "aw", ["au2"] = "ao", ["au3"] = "aux", ["au5"] = "aau", ["au7"] = "au", ["ia1"] = "iaf", ["ia2"] = "iar", ["ia3"] = "iax", ["ia5"] = "iaa", ["ia7"] = "ia", ["iau1"] = "iaw", ["iau2"] = "iao", ["iau3"] = "iaux", ["iau5"] = "iaau", ["iau7"] = "iau", ["io1"] = "ioy", ["io2"] = "ioir", ["io3"] = "ioix", ["io5"] = "iooi", ["io7"] = "ioi", ["iu1"] = "iw", ["iu2"] = "iuo", ["iu3"] = "iux", ["iu5"] = "iuu", ["iu7"] = "iu", ["oa1"] = "oaf", ["oa2"] = "oar", ["oa3"] = "oax", ["oa5"] = "oaa", ["oa7"] = "oa", ["oai1"] = "oay", ["oai2"] = "oae", ["oai3"] = "oaix", ["oai5"] = "oaai", ["oai7"] = "oai", ["oe1"] = "oef", ["oe2"] = "oea", ["oe3"] = "oex", ["oe5"] = "oee", ["oe7"] = "oe", ["ui1"] = "uy", ["ui2"] = "uie", ["ui3"] = "uix", ["ui5"] = "uii", ["ui7"] = "ui", --nasal vowel tone 12357 --nasal ending tone 12357 ["ian1"] = "iefn", ["ian2"] = "iern", ["ian3"] = "iexn", ["ian5"] = "ieen", ["ian7"] = "ien", ["iong1"] = "iofng", ["iong2"] = "iorng", ["iong3"] = "ioxng", ["iong5"] = "ioong", ["iong7"] = "iong", --stopped single vowel tone 48 ["op4"] = "ob", ["op8"] = "op", ["ot4"] = "od", ["ot8"] = "ot", ["ok4"] = "og", ["ok8"] = "ok", --stopped double vowel tone 48 ["iop4"] = "iob", ["iop8"] = "iop", ["iot4"] = "iod", ["iot8"] = "iot", ["iok4"] = "iog", ["iok8"] = "iok", } text = gsub(text, "[一二三四五六七八]", {["一"] = "1", ["二"] = "2", ["三"] = "3", ["四"] = "4", ["五"] = "5", ["六"] = "6", ["七"] = "7", ["八"] = "8"}) if find(text, "ⁿ[12357]$") then local basic = gsub(text, "ⁿ", "") basic = gsub(basic, "^o([12357])$", "oo%1") if basic_psdb[basic] then return "v" .. basic_psdb[basic] end elseif find(text, ".[mn]g?[12357]$") and not find(text, "^ian[12357]$") and not find(text, "^iong[12357]$") then local basic = gsub(text, "[mn]g?([12357])$", "%1") local ending = match(text, "([mn]g?)[12357]$") basic = gsub(basic, "^o([12357])$", "oo%1") if basic_psdb[basic] then return basic_psdb[basic] .. ending end elseif find(text, "[ptkh]ⁿ?4$") and not find(text, "^i?o[ptk]4$") then local basic = gsub(text, "[ptkh](ⁿ?)4$", "%1") .. "7" local ending = match(text, "([ptkh])ⁿ?4$") ending = gsub(ending, "[ptkh]",{p = "b", t = "d", k = "g", h = "q"}) if find(basic, "ⁿ") then basic = gsub(basic, "ⁿ", "") basic = gsub(basic, "^o([12357])$", "oo%1") if basic_psdb[basic] then return "v" .. basic_psdb[basic] .. ending end else if basic_psdb[basic] then return basic_psdb[basic] .. ending end end elseif find(text, "[ptkh]ⁿ?8$") and not find(text, "^i?o[ptk]8$") then local basic = gsub(text, "[ptkh](ⁿ?)8$", "%1") .. "7" local ending = match(text, "([ptkh])ⁿ?8$") if find(basic, "ⁿ") then basic = gsub(basic, "ⁿ", "") basic = gsub(basic, "^o([12357])$", "oo%1") if basic_psdb[basic] then return "v" .. basic_psdb[basic] .. ending end else if basic_psdb[basic] then return basic_psdb[basic] .. ending end end else return basic_psdb[text] end end function export.poj_check_invalid(text) if not text then return nil end local correct = toNFD(text) .. "-" local accent = "[" .. poj_tone_marks .. "]" local switch = "%1%3%2%4" local title = mw.title.getCurrentTitle().text correct = gsub(correct, "([oO])([ae])(" .. gsub(accent, "̍", "") .. ")([ⁿ%-/ ])", switch) correct = gsub(correct, "([oO])(" .. accent .. ")([ae])([imnptkh][gh]?ⁿ?)", switch) correct = gsub(correct, "([oO]a)(i)(" .. accent .. ")(h?ⁿ?)", switch) correct = gsub(correct, "([aA])([iu])(" .. accent .. ")(h?ⁿ?)", switch) correct = gsub(correct, "([iI])(" .. accent .. ")([aou])(u?[mnptkh]?g?ⁿ?)", switch) correct = gsub(correct, "([iI]a)(u)(" .. accent .. ")(h?ⁿ?)", switch) correct = gsub(correct, "([uU])(i)(" .. accent .. ")([hⁿ]?)", switch) correct = gsub(correct, "([eE])(e)(" .. accent .. ")(h?ⁿ?)", switch) correct = gsub(correct, "([eE])(re)(" .. gsub(accent, "̍", "") .. ")([%-/ ])", switch) -- correct = gsub(correct, "([oO]" .. accent .. ")[ou·]", "%1͘") if find(title, "[子仔]") and title ~= "明仔早" then correct = gsub(correct, "%-" .. toNFD("á") .. "([%- /])", "-仔%1") end correct = toNFC(gsub(correct, "-$", "")) if text ~= correct then error("Invalid POJ input \"" .. text .. "\": please change it to \"" .. correct .. "\"") end return text end function export.poj_to_tl_conv(text) if type(text) == "table" then text = text.args[1] end local accent = "[" .. poj_tone_marks .. "]?" local conv = { ["e"] = "i", ["E"] = "I", ["o"] = "u", ["O"] = "U" } local function convert2(a, b) return conv[a] .. b end local function convert3(a, b, c) return a .. conv[b] .. c end text = gsub(text, "#", "") text = toNFD(text) text = gsub(text, "仔", "á") text = gsub(text, "%(([^%)]+)%)", "%1-%1-%1") text = gsub(text, "([eE])(̍?k)", convert2) text = gsub(text, "^([^eE]*)([eE])(" .. accent .. "ng)", convert3) text = gsub(text, "(-[^eE]*)([eE])(" .. accent .. "ng)", convert3) text = gsub(text, "([oO])(" .. accent .. "[ae])", convert2) text = gsub(text, "([uU])(" .. accent .. ")([aei])", "%1%3%2") text = gsub(text, "([eE])(" .. accent .. ")(re)", "%1%3%2") text = gsub(text, "([oO]" .. accent .. ")͘", "%1o") text = gsub(text, "(h?)ⁿ", "nn%1") text = gsub(text, "[cC]h", {["ch"] = "ts", ["Ch"] = "Ts"}) text = gsub(text, "̆", "̋") text = gsub(text,'/([^ ])',' / %1') return toNFC(text) end function export.poj_check_syllable(initial, final, loc) local validInitials = { ["p"] = 1, ["ph"] = 1, ["m"] = 1, ["b"] = 1, ["t"] = 1, ["th"] = 1, ["n"] = 1, ["l"] = 1, ["ch"] = 1, ["s"] = 1, ["k"] = 1, ["kh"] = 1, ["ng"] = 1, ["g"] = 1, ["h"] = 1, [""] = 1, } local moreValidInitials = { } moreValidInitials["Xiamen"] = { ["chh"] = 1, } moreValidInitials["Xiamen-d"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Tong'an"] = { ["chh"] = 1, } moreValidInitials["Quanzhou"] = { ["chh"] = 1, } moreValidInitials["Jinjiang"] = { ["chh"] = 1, } moreValidInitials["Nan'an"] = { ["chh"] = 1, } moreValidInitials["Hui'an"] = { ["chh"] = 1, } moreValidInitials["Yongchun"] = { ["chh"] = 1, } moreValidInitials["Zhangpu"] = { ["j"] = 1, } moreValidInitials["Changtai"] = { ["chh"] = 1, ["j"] = 1 } moreValidInitials["Zhangzhou"] = { ["chh"] = 1, ["j"] = 1 } moreValidInitials["Taipei"] = { ["chh"] = 1, } moreValidInitials["Kaohsiung"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Hongmaogang"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Dalinpu"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Tainan"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Lukang"] = { ["chh"] = 1, } moreValidInitials["Yilan"] = { ["chh"] = 1, ["j"] = 1, } moreValidInitials["Kinmen"] = { ["chh"] = 1, } moreValidInitials["Longyan"] = { ["chh"] = 1, } moreValidInitials["Singapore"] = { ["chh"] = 1, ["j"] = 1 } moreValidInitials["Penang"] = { ["chh"] = 1, ["f"] = 1, ["d"] = 1, ["j"] = 1, ["sh"] = 1, ["r"] = 1, ["w"] = 1, ["y"] = 1, } moreValidInitials["Klang"] = { ["chh"] = 1, } moreValidInitials["Philippines"] = { ["chh"] = 1, } local validFinals = { ["a"] = 1, ["ah"] = 1, ["ai"] = 1, ["aiⁿ"] = 1, ["ak"] = 1, ["am"] = 1, ["an"] = 1, ["aⁿ"] = 1, ["ang"] = 1, ["ap"] = 1, ["at"] = 1, ["au"] = 1, ["auh"] = 1, ["e"] = 1, ["eh"] = 1, ["eng"] = 1, ["i"] = 1, ["ia"] = 1, ["iah"] = 1, ["iak"] = 1, ["iam"] = 1, ["ian"] = 1, ["iaⁿ"] = 1, ["iang"] = 1, ["iap"] = 1, ["iat"] = 1, ["iau"] = 1, ["iauⁿ"] = 1, ["ih"] = 1, ["im"] = 1, ["in"] = 1, ["iⁿ"] = 1, ["io"] = 1, ["ioh"] = 1, ["iok"] = 1, ["iong"] = 1, ["ip"] = 1, ["it"] = 1, ["iu"] = 1, ["m"] = 1, ["ng"] = 1, ["o"] = 1, ["o͘"] = 1, ["oa"] = 1, ["oah"] = 1, ["oai"] = 1, ["oan"] = 1, ["oaⁿ"] = 1, ["oat"] = 1, ["oe"] = 1, ["oeh"] = 1, ["oh"] = 1, ["ok"] = 1, ["oⁿ"] = 1, ["ong"] = 1, ["u"] = 1, ["uh"] = 1, ["ui"] = 1, ["uiⁿ"] = 1, ["un"] = 1, ["ut"] = 1, } local moreValidFinals = { } moreValidFinals["Xiamen"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oehⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Xiamen-d"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oehⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Tong'an"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ek"] = 1, ["er"] = 1, ["erh"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["oehⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, } moreValidFinals["Quanzhou"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["erm"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["irh"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Jinjiang"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaihⁿ"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, ["erm"] = 1, } moreValidFinals["Nan'an"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["aihⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["erm"] = 1, ["ern"] = 1, ["ert"] = 1, ["erng"] = 1, ["erk"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["irh"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["iuhⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Hui'an"] = { ["ahⁿ"] = 1, ["aihⁿ"] = 1, ["auhⁿ"] = 1, ["eⁿ"] = 1, ["ehⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["ern"] = 1, ["ert"] = 1, ["em"] = 1, ["en"] = 1, ["ep"] = 1, ["et"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["irh"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["iuhⁿ"] = 1, ["mh"] = 1,["ngh"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Yongchun"] = { ["auⁿ"] = 1, ["ek"] = 1, ["er"] = 1, ["erh"] = 1, ["erm"] = 1, ["ern"] = 1, ["ert"] = 1, ["iahⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["ngh"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["oaiⁿ"] = 1, ["uih"] = 1, ["uihⁿ"] = 1, } moreValidFinals["Zhangpu"] = { ["ahⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ee"] = 1, ["eeh"] = 1, ["ehⁿ"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaiⁿ"] = 1, ["ohⁿ"] = 1, ["om"] = 1, ["op"] = 1, } moreValidFinals["Changtai"] = { ["ahⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ioⁿ"] = 1, ["iuh"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaiⁿ"] = 1, ["oeⁿ"] = 1, ["ohⁿ"] = 1, ["om"] = 1, } moreValidFinals["Zhangzhou"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ee"] = 1, ["eeh"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ioⁿ"] = 1, ["iuh"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["om"] = 1, ["op"] = 1, } moreValidFinals["Longyan"] = { ["auⁿ"] = 1, ["ee"] = 1, ["ie"] = 1, ["iee"] = 1, ["oee"] = 1, ["ieⁿ"] = 1, ["oeⁿ"] = 1, ["ioa"] = 1, ["ioaⁿ"] = 1, ["ioⁿ"] = 1, ["ir"] = 1, } moreValidFinals["Taipei"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["om"] = 1, ["op"] = 1, ["uih"] = 1, } moreValidFinals["Kaohsiung"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaiⁿ"] = 1, ["oaihⁿ"] = 1, ["oeⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["om"] = 1, ["op"] = 1, } moreValidFinals["Hongmaogang"] = { ["ahⁿ"] = 1, ["aihⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaiⁿ"] = 1, ["oaiⁿ"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, } moreValidFinals["Dalinpu"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["aihⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["iuhⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaiⁿ"] = 1, ["oaihⁿ"] = 1, ["oahⁿ"] = 1, ["oak"] = 1, ["oeⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, ["uⁿ"] = 1, } moreValidFinals["Tainan"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["ioⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaiⁿ"] = 1, ["oaihⁿ"] = 1, ["oeⁿ"] = 1, ["ohⁿ"] = 1, ["om"] = 1, ["uih"] = 1, } moreValidFinals["Lukang"] = { ["ahⁿ"] = 1, ["auⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iauhⁿ"] = 1, ["ir"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["o͘h"] = 1, ["oaihⁿ"] = 1, ["oeⁿ"] = 1, ["ohⁿ"] = 1, ["erm"] = 1, ["uih"] = 1, ["uiⁿ"] = 1, } moreValidFinals["Yilan"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["aihⁿ"] = 1, ["auⁿ"] = 1, ["auhⁿ"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["o͘h"] = 1, ["oaiⁿ"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oeⁿ"] = 1, ["ohⁿ"] = 1, ["o͘h"] = 1, ["om"] = 1, ["op"] = 1, ["uiⁿ"] = 1, } moreValidFinals["Kinmen"] = { ["ahⁿ"] = 1, ["aih"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ek"] = 1, ["er"] = 1, ["erh"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaih"] = 1, ["oaihⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["oehⁿ"] = 1, ["o͘h"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, } moreValidFinals["Singapore"] = { ["ahⁿ"] = 1, ["auhⁿ"] = 1, ["auⁿ"] = 1, ["ee"] = 1, ["ehⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["ern"] = 1, ["iahⁿ"] = 1, ["iauh"] = 1, ["iauhⁿ"] = 1, ["ihⁿ"] = 1, ["ioⁿ"] = 1, ["ir"] = 1, ["iuh"] = 1, ["iuⁿ"] = 1, ["mh"] = 1, ["ngh"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["oehⁿ"] = 1, ["oeⁿ"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, } moreValidFinals["Penang"] = { ["aih"] = 1, ["ee"] = 1, ["eeh"] = 1, ["eek"] = 1, ["eeng"] = 1, ["ei"] = 1, ["ek"] = 1, ["em"] = 1, ["en"] = 1, ["eⁿ"] = 1, ["eoi"] = 1, ["er"] = 1, ["erh"] = 1, ["ern"] = 1, ["ert"] = 1, ["et"] = 1, ["ik"] = 1, ["ing"] = 1, ["ioⁿ"] = 1, ["oaiⁿ"] = 1, ["oang"] = 1, ["o͘h"] = 1, ["oi"] = 1, ["oiⁿ"] = 1, ["om"] = 1, ["on"] = 1, ["ot"] = 1, ["ou"] = 1, ["uk"] = 1, ["um"] = 1, ["ung"] = 1, ["y"] = 1, ["yn"] = 1, } moreValidFinals["Klang"] = { ["auⁿ"] = 1, ["ek"] = 1, ["eⁿ"] = 1, ["er"] = 1, ["erh"] = 1, ["erm"] = 1, ["ern"] = 1, ["iahⁿ"] = 1, ["ihⁿ"] = 1, ["ir"] = 1, ["iuⁿ"] = 1, ["ngh"] = 1, ["oang"] = 1, ["ohⁿ"] = 1, ["uih"] = 1, } moreValidFinals["Philippines"] = moreValidFinals["Jinjiang"] local loc_code = { ["Xiamen"] = "x", ["Xiamen-d"] = "a", ["Tong'an"] = "d", ["Quanzhou"] = "q", ["Jinjiang"] = "c", ["Nan'an"] = "n", ["Hui'an"] = "h", ["Zhangpu"] = "u", ["Changtai"] = "o", ["Zhangzhou"] = "z", ["Zhao'an"] = "Z", ["Taipei"] = "t", ["Kaohsiung"] = "k", ["Hongmaogang"] = "H", ["Dalinpu"] = "D", ["Tainan"] = "n", ["Kinmen"] = "j", ["Longyan"] = "l", ["Lukang"] = "L", ["Singapore"] = "s", ["Penang"] = "p", ["Philippines"] = "f", ["Yilan"] = "y", ["Yongchun"] = "Y", } if not ((validInitials[initial] or moreValidInitials[loc][initial]) and (validFinals[final] or moreValidFinals[loc][final])) then --error("The syllable " .. initial .. "+" .. final .. " does not appear to be a valid " .. loc .. " POJ syllable.") return "[[Category:Hokkien terms needing pronunciation attention|" .. loc_code[loc] .. "]]" end return nil end function export.generate_all(text) local nan_pronunc, loc if type(text) == "table" then text, nan_pronunc, loc = text.args[1], text.args[2], text.args["loc"] end local location_list = { ["ax"] = "Anxi", ["ct"] = "Changtai", ["ha"] = "Hui'an", ["hc"] = "Hsinchu", ["jj"] = "Jinjiang", ["kh"] = "Kaohsiung", ["kl"] = "Klang", ["km"] = "Kinmen", ["ly"] = "Longyan", ["lk"] = "Lukang", ["md"] = "Medan", ["mg"] = "Magong", ["ml"] = "Mainland", ["na"] = "Nan'an", ["ph"] = "Philippines", ["pn"] = "Penang", ["px"] = "Pingxi", ["qz"] = "Quanzhou", ["qzd"] = "Quanzhou-d", ["sg"] = "Singapore", ["sghmg"] = "Hongmaogang", ["sgdlp"] = "Dalinpu", ["sx"] = "Sanxia", ["ta"] = "Tong'an", ["tc"] = "Taichung", ["tn"] = "Tainan", ["tp"] = "Taipei", ["ts"] = "Tamsui", ["tt"] = "Taitung", ["wh"] = "Wanhua", ["wq"] = "Wuqi", ["xm"] = "Xiamen", ["xmd"] = "Xiamen-d", ["yc"] = "Yongchun", ["yl"] = "Yilan", ["za"] = "Zhao'an", ["zp"] = "Zhangpu", ["zz"] = "Zhangzhou", ["zzd"] = "Zhangzhou-d", ["tw"] = "Taiwan", ["twt"] = "Taiwan-t", ["twk"] = "Taiwan-k", ["twv"] = "Taiwan-v", ["twvt"] = "Taiwan-vt", ["twvk"] = "Taiwan-vk", ["twd"] = "Taiwan-d", ["twdt"] = "Taiwan-dt", ["twdk"] = "Taiwan-dk", ["twr"] = "Taiwan-r", ["twrt"] = "Taiwan-rt", ["twrk"] = "Taiwan-rk", ["twq"] = "Taiwan-Q", ["twz"] = "Taiwan-Z", } local location_alias = { ["xz"] = "hc", ["sj"] = "hc", ["st"] = "hc", ["kx"] = "kh", ["gm"] = "km", ["jm"] = "km", ["qm"] = "km", ["ln"] = "ly",["lg"] = "lk", ["mk"] = "mg", ["cj"] = "qj", ["ss"] = "sx", ["sk"] = "sx", ["tz"] = "tc", ["tj"] = "tc", ["tl"] = "tn", ["em"] = "xm", ["am"] = "xm", ["hm"] = "xm", ["il"] = "yl", ["lc"] = "zz", ["cc"] = "zz (Zhangzhou) or qz (Quanzhou)", ["cz"] = "zz (Zhangzhou) or qz (Quanzhou)" } local location_link = { ["Anxi"] = "''[[w:Anxi County|Anxi]]''", ["Changtai"] = "''[[w:Changtai District|Changtai]]''", ["Hongmaogang"] = "''[[w:zh:紅毛港 (高雄市)|Hongmaogang]]''", ["Dalinpu"] = "''[[w:zh:大林蒲|Dalinpu]]''", ["Hsinchu"] = "''[[w:Hsinchu|Hsinchu]]''", ["Hui'an"] = "''[[w:Hui'an County|Hui'an]]''", ["Jinjiang"] = "''[[w:Jinjiang, Fujian|Jinjiang]]''", ["Kaohsiung"] = "''[[w:Kaohsiung|Kaohsiung]]''", ["Kinmen"] = "''[[w:Kinmen|Kinmen]]''", ["Klang"] = "''[[w:Klang (city)|Klang]]''", ["Longyan"] = "''[[w:Longyan dialect|Longyan]]''", ["Lukang"] = "''[[w:Lukang|Lukang]]''", ["Magong"] = "''[[w:Magong|Magong]]''", ["Medan"] = "''[[w:Medan Hokkien|Medan]]''", ["Mainland"] = "''[[w:Amoy dialect|Xiamen]]'', ''[[w:Quanzhou dialect|Quanzhou]]'', ''[[w:Zhangzhou dialect|Zhangzhou]]''", ["Nan'an"] = "''[[w:Nan'an, Fujian|Nan'an]]''", ["Penang"] = "''[[w:Penang Hokkien|Penang]]''", ["Philippines"] = "''[[w:Philippine Hokkien|Philippines]]''", ["Pingxi"] = "''[[w:Pingxi District|Pingxi]]''", ["Quanzhou"] = "''[[w:Quanzhou dialect|Quanzhou]]''", ["Quanzhou-d"] = "''dated in [[w:Quanzhou dialect|Quanzhou]]''", ["Sanxia"] = "''[[w:Sanxia|Sanxia]]''", ["Singapore"] = "''[[w:Singaporean Hokkien|Singapore]]''", ["Taichung"] = "''[[w:Taichung|Taichung]]''", ["Tainan"] = "''[[w:Tainan|Tainan]]''", ["Taipei"] = "''[[w:Taipei|Taipei]]''", ["Tamsui"] = "''[[w:Tamsui District|Tamsui]]''", ["Taitung"] = "''[[w:Taitung City|Taitung]]''", ["Tong'an"] = "''[[w:Tong'an District|Tong'an]]''", ["Wanhua"] = "''[[w:Wanhua District|Wanhua]]''", ["Wuqi"] = "''[[w:Wuqi District|Wuqi]]''", ["Xiamen"] = "''[[w:Amoy dialect|Xiamen]]''", ["Xiamen-d"] = "''dated in [[w:Amoy dialect|Xiamen]]''", ["Yilan"] = "''[[w:Yilan|Yilan]]''", ["Yongchun"] = "''[[w:Yongchun County|Yongchun]]''", ["Zhao'an"] = "''[[w:Zhao'an County|Zhao'an]]''", ["Zhangpu"] = "''[[w:Zhangpu County|Zhangpu]]''", ["Zhangzhou"] = "''[[w:Zhangzhou dialect|Zhangzhou]]''", ["Zhangzhou-d"] = "''dated in [[w:Zhangzhou dialect|Zhangzhou]]''", ["Taiwan"] = "''General [[w:Taiwanese Hokkien|Taiwanese]]''", ["Taiwan-t"] = "''General [[w:Taiwanese Hokkien|Taiwanese]]''", ["Taiwan-k"] = "''General [[w:Taiwanese Hokkien|Taiwanese]]''", ["Taiwan-v"] = "''variant in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-vt"] = "''variant in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-vk"] = "''variant in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-d"] = "''dated in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-dt"] = "''dated in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-dk"] = "''dated in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-r"] = "''rare in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-rt"] = "''rare in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-rk"] = "''rare in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-Q"] = "''[[w:Quanzhou dialect|Quanzhou]]-like accent in [[w:Taiwanese Hokkien|Taiwan]]''", ["Taiwan-Z"] = "''[[w:Zhangzhou dialect|Zhangzhou]]-like accent in [[w:Taiwanese Hokkien|Taiwan]]''", } local IPA_available = { ["Xiamen"] = true, ["Tong'an"] = true, ["Quanzhou"] = true, ["Jinjiang"] = true, ["Nan'an"] = true, ["Hui'an"] = true, ["Yongchun"] = true, ["Zhangzhou"] = true, ["Changtai"] = true, ["Zhangpu"] = true, ["Longyan"] = true, ["Taipei"] = true, ["Kaohsiung"] = true, ["Hongmaogang"] = true, ["Dalinpu"] = true, ["Tainan"] = true, ["Kinmen"] = true, ["Lukang"] = true, ["Yilan"] = true, ["Singapore"] = true, ["Penang"] = true, ["Klang"] = true, ["Philippines"] = true, } local ast = (not nan_pronunc or nan_pronunc == "") and "*" or "" local formatting = { LV_two = { leading = "\n" .. ast .. "* <small>(\'\'[[w:Hokkien|Hokkien]]\'\'", trailing = ")</small>", }, POJ = { leading = "\n" .. ast .. "** <small>''[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]''</small>: <span style=\"font-family: Consolas, monospace;\">", trailing = "</span>", }, TL = { leading = "\n" .. ast .. "** <small>''[[w:Tâi-lô|Tâi-lô]]''</small>: <span style=\"font-family: Consolas, monospace;\">", trailing = "</span>", }, PSDB = { leading = "\n" .. ast .. "** <small>''[[w:Phofsit Daibuun|Phofsit Daibuun]]''</small>: <span style=\"font-family: Consolas, monospace;\">", trailing = "</span>", }, IPA = { leading = "\n" .. ast .. "** <small>[[Wiktionary:International Phonetic Alphabet|IPA]] (", trailing = ")</small>: ", } } local IPA_available_list = { "Xiamen", "Quanzhou", "Zhangzhou", "Taiwan" } export.poj_check_invalid(text) local all_readings, locations, output_text = {}, {}, {} for i, reading in ipairs(split(text, "/", true)) do if find(reading, ":") then local reading_part = split(reading, ":", true) locations[i] = {} all_readings[i] = reading_part[2] for location_abbrev in gsplit(reading_part[1], ",", true) do if location_alias[location_abbrev] then error("Invalid Hokkien location code: " .. location_abbrev .. ", maybe you meant: " .. location_alias[location_abbrev]) end if not location_list[location_abbrev] then error("The region label '" .. location_abbrev .. "' cannot be found. Please see [[Template:zh-pron#Parameters]].") end table.insert(locations[i], location_list[location_abbrev]) end else locations[i] = IPA_available_list all_readings[i] = reading end end if not find(text, ":") then table.insert(output_text, formatting.LV_two.leading .. formatting.LV_two.trailing .. formatting.POJ.leading .. export.poj_display(text) .. formatting.POJ.trailing .. formatting.TL.leading .. export.poj_to_tl_conv(text) .. formatting.TL.trailing) if not find(text, "%-%-") then local psdb_hash = export.poj_to_psdb_conv(text) if not find(psdb_hash, "error") then table.insert(output_text, formatting.PSDB.leading .. psdb_hash .. formatting.PSDB.trailing) end for _, IPA_location in ipairs(IPA_available_list) do IPA_location = IPA_location == "Taiwan" and { "Taipei", "Kaohsiung" } or { IPA_location } for _, location in ipairs(IPA_location) do table.insert(output_text, formatting.IPA.leading .. location_link[location] .. formatting.IPA.trailing) local reading_IPA_hash = {} for poj_reading in gsplit(text, "/", true) do table.insert(reading_IPA_hash, export.generate_IPA(poj_reading, location)) end table.insert(output_text, table.concat(reading_IPA_hash, ", ")) if #reading_IPA_hash > 1 then table.insert(output_text, string.format("[[Category:Hokkien terms needing pronunciation attention|%d]]", #reading_IPA_hash)) end end end end else for i, poj_reading in ipairs(all_readings) do table.insert(output_text, formatting.LV_two.leading) local location_hash = {} for _, location_name in ipairs(locations[i]) do table.insert(location_hash, location_link[location_name]) end table.insert(output_text, ": " .. table.concat(location_hash, ", ") .. formatting.LV_two.trailing) table.insert(output_text, formatting.POJ.leading .. export.poj_display(poj_reading) .. formatting.POJ.trailing .. formatting.TL.leading .. export.poj_to_tl_conv(poj_reading) .. formatting.TL.trailing) if not find(poj_reading, "%-%-") then local psdb_hash = export.poj_to_psdb_conv(poj_reading) if not find(psdb_hash, "error") then table.insert(output_text, formatting.PSDB.leading .. psdb_hash .. formatting.PSDB.trailing) end local IPA_readings = {} for j, location_name in ipairs(locations[i]) do location_name = gsub(location_name, '^Taiwan%-[vdr]?([tk]?)$', { ['t'] = 'Taipei', ['k'] = 'Kaohsiung', [''] = 'Taiwan' }) loc = { ['Taiwan'] = { 'Taipei', 'Kaohsiung' }, ['Xiamen-d'] = { 'Xiamen-d' }, ['Mainland'] = { 'Xiamen', 'Quanzhou', 'Zhangzhou' } } location_name = loc[location_name] or { gsub(location_name, '%-d$', '') } for k, location in ipairs(location_name) do local loc = gsub(location, '%-d$', '') if IPA_available[loc] then local poj_to_ipa = export.generate_IPA(poj_reading, location) if IPA_readings[poj_to_ipa] then table.insert(IPA_readings[poj_to_ipa][2], location_link[loc]) else IPA_readings[poj_to_ipa] = { j + (k/10), { location_link[loc] } } end end end end for reading, reading_info in pairs(IPA_readings) do table.insert(output_text, formatting.IPA.leading .. table.concat(reading_info[2], ", ") .. formatting.IPA.trailing .. reading) end end end end return table.concat(output_text) end function export.generate_IPA(text, location) -- (Wyang) I can't seem to find an example where 'triple' is used.. The code is below: --if match(p[i], "%(") then -- p[i] = gsub(p[i], "[%(%)]", "") -- triple[i] = true --end --if triple[i] then -- if tone[i] == "一" then -- ipa[i] = (initial[i] .. final[i] .. "一至七 " .. initial[i] .. final[i] .. "一至七 " .. initial[i] .. final[i] .. (i == #tone and "一" or "一至七")) -- elseif tone[i] == "二" then -- ipa[i] = (initial[i] .. final[i] .. "二至一 " .. initial[i] .. final[i] .. "二至一 " .. initial[i] .. final[i] .. (i == #tone and "二" or "二至一")) -- elseif tone[i] == "三" then -- ipa[i] = (initial[i] .. final[i] .. "三至二 " .. initial[i] .. final[i] .. "三至二 " .. initial[i] .. final[i] .. (i == #tone and "三" or "三至二")) -- elseif tone[i] == "四A" then -- ipa[i] = (initial[i] .. final[i] .. "四至八 " .. initial[i] .. final[i] .. "四至八 " .. initial[i] .. final[i] .. (i == #tone and "四" or "四至八")) -- elseif tone[i] == "四B" then -- final[i] = gsub(final[i], "ʔ", "(ʔ)") -- ipa[i] = (initial[i] .. final[i] .. "四至二 " .. initial[i] .. final[i] .. "四至二 " .. initial[i] .. final[i] .. (i == #tone and "四" or "四至二")) -- elseif tone[i] == "五" then -- if loc == "Quanzhou" or loc == "Taipei" then -- ipa[i] = (initial[i] .. final[i] .. "五 " .. initial[i] .. final[i] .. "五至三 " .. initial[i] .. final[i] .. (i == #tone and "五" or "五至三")) -- else -- ipa[i] = (initial[i] .. final[i] .. "五 " .. initial[i] .. final[i] .. "五至七 " .. initial[i] .. final[i] .. (i == #tone and "五" or "五至七")) -- end -- elseif tone[i] == "七" then -- ipa[i] = (initial[i] .. final[i] .. "七至一 " .. initial[i] .. final[i] .. "七至三 " .. initial[i] .. final[i] .. (i == #tone and "七" or "七至三")) -- elseif tone[i] == "八A" then -- ipa[i] = (initial[i] .. final[i] .. "八至四 " .. initial[i] .. final[i] .. "八至四 " .. initial[i] .. final[i] .. (i == #tone and "八" or "八至四")) -- elseif tone[i] == "八B" then -- final[i] = gsub(final[i], "ʔ", "(ʔ)") -- ipa[i] = (initial[i] .. final[i] .. "八至五 " .. initial[i] .. final[i] .. "八至三 " .. initial[i] .. final[i] .. (i == #tone and "八" or "八至三")) -- end --end if type(text) == "table" then text, location = text.args[1], text.args["loc"] end local tone_from_mark = { [""] = "1", ["́"] = "2", ["̀"] = "3", ["p"] = "4A", ["t"] = "4A", ["k"] = "4A", ["h"] = "4B", ["̂"] = "5", ["̌"] = "6", ["̄"] = "7", ["̍p"] = "8A", ["̍t"] = "8A", ["̍k"] = "8A", ["̍h"] = "8B", ["̋"] = "9", ["̆"] = "9", } local initial_ipa = { ["p"] = "p", ["ph"] = "pʰ", ["m"] = "m", ["b"] = "b", ["f"] = "f", ["t"] = "t", ["th"] = "tʰ", ["n"] = "n", ["l"] = "l", ["d"] = "d", ["ch"] = "t͡s", ["chh"] = "t͡sʰ", ["j"] = "d͡z", ["s"] = "s", ["sh"] = "ʃ", ["k"] = "k", ["kh"] = "kʰ", ["ng"] = "ŋ", ["g"] = "ɡ", ["h"] = "h", ["r"] = "ɹ", ["w"] = "w", ["y"] = "j", [""] = "", ["Kaohsiung-j"] = "z", } local final_ipa = { ["a"] = "a", ["ah"] = "aʔ", ["ahⁿ"] = "ãʔ", ["ai"] = "ai", ["aih"] = "aiʔ", ["aiⁿ"] = "ãi", ["aihⁿ"] = "ãiʔ", ["ak"] = "ak̚", ["am"] = "am", ["an"] = "an", ["aⁿ"] = "ã", ["ang"] = "aŋ", ["ap"] = "ap̚", ["at"] = "at̚", ["au"] = "au", ["auh"] = "auʔ", ["auhⁿ"] = "ãuʔ", ["auⁿ"] = "ãu", ["e"] = "e", ["ee"] = "ɛ", ["eeh"] = "ɛʔ", ["eek"] = "ɛk̚", ["eeng"] = "ɛŋ", ["eh"] = "eʔ", ["ehⁿ"] = "ẽʔ", ["ei"] = "ei", ["ek"] = "iɪk̚", ["em"] = "ɛm", ["en"] = "ɛn", ["eⁿ"] = "ẽ", ["eng"] = "iɪŋ", ["eoi"] = "ɵy", ["er"] = "ə", ["erh"] = "əʔ", ["erm"] = "əm", ["ern"] = "ən", ["ert"] = "ət̚", ["erk"] = "ək̚", ["et"] = "ɛt̚", ["ep"] = "ep̚", ["eu"] = "eu", ["euⁿ"] = "ẽu", ["i"] = "i", ["ia"] = "ia", ["iah"] = "iaʔ", ["iahⁿ"] = "iãʔ", ["iak"] = "iak̚", ["iam"] = "iam", ["ian"] = "iɛn", ["iaⁿ"] = "iã", ["iang"] = "iaŋ", ["iap"] = "iap̚", ["iat"] = "iɛt̚", ["iau"] = "iau", ["iauh"] = "iauʔ", ["iauhⁿ"] = "iãuʔ", ["iauⁿ"] = "iãu", ["ie"] = "ie", ["iee"] = "iɛ", ["ieⁿ"] = "iɛ̃", ["ih"] = "iʔ", ["ihⁿ"] = "ĩʔ", ["im"] = "im", ["in"] = "in", ["iⁿ"] = "ĩ", ["ing"] = "iŋ", ["io"] = "io", ["ioa"] = "iua", ["ioaⁿ"] = "iuã", ["ioh"] = "ioʔ", ["io͘h"] = "iɔʔ", ["io͘"] = "iɔ", ["iop"] = "iop", ["iok"] = "iɔk̚", ["ioⁿ"] = "iɔ̃", ["iom"] = "iom", ["iong"] = "iɔŋ", ["ip"] = "ip̚", ["ir"] = "ɯ", ["irh"] = "ɯʔ", ["irn"] = "ən", ["it"] = "it̚", ["iu"] = "iu", ["iua"] = "iua", ["iuh"] = "iuʔ", ["iuⁿ"] = "iũ", ["iuaⁿ"] = "iuã", ["iuhⁿ"] = "iũʔ", ["ie"] = "ie", ["iee"] = "iɛ", ["ieeⁿ"] = "iɛ̃", ["m"] = "m̩", ["mh"] = "m̩ʔ", ["ng"] = "ŋ̍", ["ngh"] = "ŋ̍ʔ", ["o"] = "o", ["o͘"] = "ɔ", ["oa"] = "ua", ["oah"] = "uaʔ", ["oahⁿ"] = "uãʔ", ["oai"] = "uai", ["oaih"] = "uaiʔ", ["oaihⁿ"] = "uãiʔ", ["oaiⁿ"] = "uãi", ["oan"] = "uan", ["oaⁿ"] = "uã", ["oang"] = "uaŋ", ["oat"] = "uat̚", ["oak"] = "uak̚", ["oe"] = "ue", ["oeh"] = "ueʔ", ["oehⁿ"] = "uẽʔ", ["oeⁿ"] = "uẽ", ["oee"] = "uɛ", ["oh"] = "oʔ", ["o͘h"] = "ɔʔ", ["ohⁿ"] = "ɔ̃ʔ", ["oi"] = "ɔi", ["oiⁿ"] = "ɔ̃i", ["ok"] = "ɔk̚", ["om"] = "ɔm", ["oⁿ"] = "ɔ̃", ["ong"] = "ɔŋ", ["op"] = "ɔp̚", ["ot"] = "ɔt̚", ["ou"] = "ou", ["u"] = "u", ["uⁿ"] = "ũ", ["uh"] = "uʔ", ["uhⁿ"] = "ũʔ", ["ui"] = "ui", ["uiⁿ"] = "uĩ", ["uih"] = "uiʔ", ["uihⁿ"] = "uĩʔ", ["uk"] = "ok̚", ["um"] = "om", ["un"] = "un", ["ung"] = "oŋ", ["ut"] = "ut̚", ["y"] = "y", ["yn"] = "yn", ["Tong'an-iai"] = "iai", ["Zhangpu-e"] = "iei", ["Zhangpu-eⁿ"] = "ɛ̃", ["Zhangzhou-eⁿ"] = "ɛ̃", ["Penang-eⁿ"] = "ɛ̃", ["Zhangpu-ehⁿ"] = "ɛ̃ʔ", ["Zhangzhou-ehⁿ"] = "ɛ̃ʔ", ["Kaohsiung-o"] = "ɤ", ["Kaohsiung-io"] = "iɤ", ["Kaohsiung-oh"] = "ɤʔ", ["Kaohsiung-ioh"] = "iɤʔ", ["Tainan-o"] = "ɤ", ["Tainan-io"] = "iɤ", ["Tainan-oh"] = "ɤʔ", ["Tainan-ioh"] = "iɤʔ", ["Zhangpu-oe"] = "uɛ", ["Zhangpu-oeⁿ"] = "uɛ̃", ["Zhangpu-oeh"] = "uɛʔ", ["Zhangpu-eng"] = "ɛŋ", ["Zhangpu-ek"] = "ɛk̚", ["Singapore-eng"] = "eŋ", ["Singapore-ek"] = "ek̚", ["Penang-eng"] = "eŋ", ["Penang-ek"] = "ek̚", ["Penang-ik"] = "ik̚", ["Zhangpu-o͘"] = "ɔu", ["Zhangpu-oⁿ"] = "ɔ̃u", ["Changtai-eng"] = "eŋ", ["Changtai-ek"] = "ek̚", ["Changtai-o"] = "ɔ", ["Changtai-io"] = "iɔ", ["Changtai-oh"] = "ɔʔ", ["Changtai-ioh"] = "iɔʔ", ["Changtai-o͘"] = "eu", ["Changtai-o͘ⁿ"] = "ẽu", ["Hui'an-eng"] = "eŋ", ["Hui'an-ek"] = "ek̚", ["Hui'an-en"] = "en", ["Hui'an-et"] = "et̚", ["Hui'an-em"] = "em", ["Longyan-ong"] = "oŋ", ["Longyan-ok"] = "ok̚", ["Longyan-iong"] = "ioŋ", ["Longyan-iok"] = "iok̚", ["Longyan-oⁿ"] = "õ", ["Longyan-ioⁿ"] = "iõ", ["Longyan-oeⁿ"] = "uɛ̃", ["Longyan-ir"] = "z̩", ["Lukang-ir"] = "ɨ", ["Klang-eng"] = "eŋ", ["Klang-ek"] = "ek̚", } local tone_sandhi = { } -- (Wyang) I'm not sure about the 'Xd' ones, when tone X is followed by the diminutive 仔. tone_sandhi["Xiamen"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "7", ["7"] = "3", ["8A"] = "4A", ["8B"] = "3", } tone_sandhi["Xiamen-d"] = tone_sandhi["Xiamen"] tone_sandhi["Tong'an"] = { -- 2 and 4 are special cases ["1"] = "7", ["3"] = "10", ["5"] = "9", ["7"] = "9", ["8A"] = "11", ["8B"] = "11", } tone_sandhi["Quanzhou"] = { ["1"] = "1", ["2"] = "5", ["3"] = "2", ["4A"] = "8A", ["4B"] = "4B", ["5"] = "6", ["6"] = "6", ["7"] = "6", ["8A"] = "S", ["8B"] = "S", } tone_sandhi["Jinjiang"] = { ["1"] = "1", ["2"] = "5", ["3"] = "2", ["4A"] = "8A", ["4B"] = "4B", ["5"] = "S1", ["6"] = "S1", ["7"] = "S1", ["8A"] = "S2", ["8B"] = "S2", } tone_sandhi["Nan'an"] = { ["1"] = "1", ["2"] = "5", ["3"] = "2", ["4A"] = "4A", ["4B"] = "4B", ["5"] = "6", ["6"] = "6", ["7"] = "6", ["8A"] = "S", ["8B"] = "S", } tone_sandhi["Hui'an"] = { ["1"] = "1", ["2"] = "5", ["3"] = "2", ["4A"] = "5", ["4B"] = "4B", ["5"] = "6", ["6"] = "6", ["7"] = "6", ["8A"] = "S", ["8B"] = "S", } tone_sandhi["Yongchun"] = { ["1"] = "7", ["2"] = "1", ["3"] = "S1", ["4A"] = "8B", ["4B"] = "8B", ["5"] = "7", ["7"] = "3", ["8A"] = "S2", ["8B"] = "S2", } tone_sandhi["Zhangzhou"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "S", ["4B"] = "2", ["5"] = "7", ["7"] = "3", ["8A"] = "3", ["8B"] = "3", ["4Bd"] = "1", ["8Bd"] = "7", } tone_sandhi["Changtai"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "7", ["7"] = "3", ["8A"] = "4A", ["8B"] = "3", } tone_sandhi["Zhangpu"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "4A", ["4B"] = "4B", ["5"] = "7", ["7"] = "3", ["8A"] = "7", ["8B"] = "7", } tone_sandhi["Longyan"] = { ["1"] = "1", ["5"] = "5", ["6"] = "5", ["8A"] = "2", ["8B"] = "2", } tone_sandhi["Taipei"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "3", ["7"] = "3", ["8A"] = "4A", ["8B"] = "3", ["9"] = "9", ["3d"] = "1", ["4Bd"] = "1", ["5d"] = "7", ["7d"] = "7", ["8Bd"] = "7", } tone_sandhi["Kaohsiung"] = { ["1"] = "7", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "7", ["7"] = "3", ["8A"] = "4A", ["8B"] = "3", ["9"] = "9", ["3d"] = "1", ["4Bd"] = "1", ["5d"] = "7", ["7d"] = "7", ["8Bd"] = "7", } tone_sandhi["Hongmaogang"] = { ["1"] = "1", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "3", ["6"] = "3", ["7"] = "3", ["8A"] = "S", ["8B"] = "S", } tone_sandhi["Dalinpu"] = { ["1"] = "1", ["2"] = "1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "3", ["6"] = "3", ["7"] = "3", ["8A"] = "S", ["8B"] = "S", } tone_sandhi["Tainan"] = { ["1"] = "7", ["2"] = "S1", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "7", ["7"] = "S2", ["8A"] = "S3", ["8B"] = "S3", ["9"] = "9", } tone_sandhi["Lukang"] = { ["1"] = "1", ["2"] = "8A", ["3"] = "S1", ["4A"] = "4A", ["4B"] = "S1", ["5"] = "S2", ["6"] = "S2", ["7"] = "S2", ["8A"] = "S3", ["8B"] = "S3", ["9"] = "9", } tone_sandhi["Yilan"] = { ["1"] = "7", ["2"] = "S", ["3"] = "2", ["4A"] = "8A", ["4B"] = "2", ["5"] = "7", ["7"] = "3", ["8A"] = "4A", ["8B"] = "4B", ["9"] = "9", } tone_sandhi["Kinmen"] = { -- 3 and 4B are special cases ["1"] = "7", ["2"] = "5", ["4A"] = "8A", ["5"] = "3", ["7"] = "3", ["8A"] = "4A", ["8B"] = "3" } tone_sandhi["Singapore"] = { --Xiamen/Zhangzhou-like ["1"] = "7", ["2"] = "5", ["3"] = "2", ["4A"] = "8As", ["4B"] = "2", ["5"] = "3", ["7"] = "3", ["8A"] = "3", ["8B"] = "3" } tone_sandhi["Penang"] = { ["1"] = "7", ["2"] = "1", ["3"] = "1", ["4A"] = "8A", ["4B"] = "8B", ["5"] = "7", ["6"] = "6", ["7"] = "3", ["8A"] = "4A", ["8B"] = "4B", ["9"] = "9" } tone_sandhi["Klang"] = { ["1"] = "1", ["2"] = "S2", ["3"] = "S3", ["4A"] = "S3", ["4B"] = "S3", ["5"] = "S1", ["7"] = "S1", ["8A"] = "8B", ["8B"] = "8B", } tone_sandhi["Philippines"] = tone_sandhi["Jinjiang"] local tone_value = { } tone_value["Xiamen"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "4", ["8B"] = "4", } tone_value["Xiamen-d"] = tone_value["Xiamen"] tone_value["Tong'an"] = { ["1"] = "44", ["2"] = "31", ["3"] = "112", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "53", ["8B"] = "53", ["9"] = "11", ["10"] = "42", ["11"] = "1", ["12"] = "4" --sandhi-only tones } tone_value["Quanzhou"] = { ["1"] = "33", ["2"] = "554", ["3"] = "41", ["4A"] = "5", ["4B"] = "5", ["5"] = "24", ["6"] = "22", ["7"] = "41", ["8A"] = "24", ["8B"] = "24", ["S"] = "2", --sandhi-only } tone_value["Jinjiang"] = { ["1"] = "33", ["2"] = "554", ["3"] = "41", ["4A"] = "5", ["4B"] = "5", ["5"] = "24", ["6"] = "33", ["7"] = "41", ["8A"] = "24", ["8B"] = "24", ["S1"] = "22", ["S2"] = "2", --sandhi-only } tone_value["Nan'an"] = { ["1"] = "33", ["2"] = "554", ["3"] = "31", ["4A"] = "5", ["4B"] = "5", ["5"] = "24", ["6"] = "22", ["7"] = "31", ["8A"] = "23", ["8B"] = "23", ["S"] = "2", --sandhi-only } tone_value["Hui'an"] = { ["1"] = "33", ["2"] = "54", ["3"] = "21", ["4A"] = "4", ["4B"] = "4", ["5"] = "24", ["6"] = "22", ["7"] = "21", ["8A"] = "23", ["8B"] = "23", ["S"] = "2", --sandhi-only } tone_value["Yongchun"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "24", ["8B"] = "4", ["S1"] = "53", ["S2"] = "21", --sandhi-only } tone_value["Zhangzhou"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "13", ["7"] = "22", ["8A"] = "121", ["8B"] = "121", ["S"] = "5", --sandhi-only } tone_value["Changtai"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "3", ["8B"] = "3", } tone_value["Zhangpu"] = { ["1"] = "55", ["2"] = "53", ["3"] = "11", ["4A"] = "32", ["4B"] = "32", ["5"] = "213", ["7"] = "33", ["8A"] = "14", ["8B"] = "14", } tone_value["Longyan"] = { ["1"] = "334", ["2"] = "21", ["3"] = "213", ["4A"] = "5", ["4B"] = "5", ["5"] = "11", ["6"] = "53", ["7"] = "55", ["8A"] = "32", ["8B"] = "32", ["S"] = "34", --sandhi-only } tone_value["Taipei"] = { ["1"] = "44", ["2"] = "53", ["3"] = "11", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "33", ["8A"] = "4", ["8B"] = "4", ["9"] = "35" } tone_value["Kaohsiung"] = { ["1"] = "44", ["2"] = "41", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "23", ["7"] = "33", ["8A"] = "4", ["8B"] = "4", ["9"] = "35" } tone_value["Hongmaogang"] = { ["1"] = "33", ["2"] = "51", ["3"] = "11", ["4A"] = "31", ["4B"] = "31", ["5"] = "13", ["6"] = "31", ["7"] = "11", ["8A"] = "5", ["8B"] = "5", ["S"] = "1", --sandhi-only } tone_value["Dalinpu"] = { ["1"] = "33", ["2"] = "51", ["3"] = "11", ["4A"] = "31", ["4B"] = "31", ["5"] = "13", ["6"] = "31", ["7"] = "11", ["8A"] = "5", ["8B"] = "5", ["S"] = "1", --sandhi-only } tone_value["Tainan"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "33", ["8A"] = "4", ["8B"] = "4", ["9"] = "35", ["S1"] = "55", ["S2"] = "11", ["S3"] = "1", --sandhi-only } tone_value["Lukang"] = { ["1"] = "33", ["2"] = "55", ["3"] = "31", ["4A"] = "5", ["4B"] = "5", ["5"] = "24", ["6"] = "33", ["7"] = "31", ["8A"] = "35", ["8B"] = "35", ["9"] = "35", ["S1"] = "53", ["S2"] = "22", ["S3"] = "2", --sandhi-only } tone_value["Yilan"] = { ["1"] = "44", ["2"] = "53", ["3"] = "21", ["4A"] = "2", ["4B"] = "2", ["5"] = "24", ["7"] = "33", ["8A"] = "5", ["8B"] = "5", ["9"] = "35", ["S"] = "55", --sandhi-only } tone_value["Kinmen"] = { ["1"] = "44", ["2"] = "53", ["3"] = "12", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "54", ["8B"] = "54" } tone_value["Singapore"] = { --Xiamen/Zhangzhou-like ["1"] = "44", ["2"] = "42", ["3"] = "21", ["4A"] = "32", ["4B"] = "32", ["5"] = "24", ["7"] = "22", ["8A"] = "43", ["8B"] = "43", ["8As"] = "4" } tone_value["Penang"] = { ["1"] = "33", ["2"] = "445", ["3"] = "21", ["4A"] = "3", ["4B"] = "3", ["5"] = "23", ["6"] = "55", ["7"] = "21", ["8A"] = "4", ["8B"] = "4", ["9"] = "5" } tone_value["Klang"] = { ["1"] = "33", ["2"] = "53", ["3"] = "31", ["4A"] = "53", ["4B"] = "53", ["5"] = "24", ["7"] = "31", ["8A"] = "3", ["8B"] = "3", ["S1"] = "22", ["S2"] = "34", ["S3"] = "54", --sandhi-only } tone_value["Philippines"] = tone_value["Jinjiang"] local function get_sandhi_from_post(location, current, post) if post then if location == "Tong'an" then if current == "2" then if find(post, "^[15]$") or find(post, "^8[AB]$") then return "7" else return "5" end elseif find(current, "^4[AB]$") then if post == "2" then return "10" else return "12" end end elseif location == "Kinmen" then if current == "3" or current == "4B" then if find(post, "^[12]$") or find(post, "^4[AB]$") then return "1" else return "2" end end elseif location == "Longyan" then if current == "2" then if post == "2" or post == "5" then return "3" else return "2" end elseif current == "3" then if post == "2" or post == "5" then return "3" else return "2" end elseif find(current, "^4[AB]$") then if post == "2" or post == "5" then return current else return "S" end elseif current == "7" then if post == "2" or post == "5" then return "7" else return "1" end end end end end local function get_tone(text) local tone = gsub(text, "^[^" .. poj_tone_marks .. "ptkh]+([" .. poj_tone_marks .. "]?)[^" .. poj_tone_marks .. "ptkh]*([ptkh]?)ⁿ?", function(tone_symbol, coda) return tone_from_mark[tone_symbol .. coda] end) return tone end local function nasalize(final) if find(final, "^mh?$") or find(final, "^ngh?$") then return final end if find(final, "o͘h?$") then final = gsub(final, "͘", "") elseif find(final, "oh?$") then error("Invalid POJ: nasal initial cannot go with -" .. final) elseif find(final, "eeh?$") then final = gsub(final, "ee", "e") end return final .. "ⁿ" end local formatting = { leading = "<span class=\"IPA\">/", trailing = "/</span>" } local tone_superscript = { ["1"] = "¹", ["2"] = "²", ["3"] = "³", ["4"] = "⁴", ["5"] = "⁵", ["-"] = "⁻" } local word_result = {} local attention = {} if location ~= 'Xiamen-d' then location = gsub(location, '%-d$', '') end text = gsub(text, " ", "-") text = gsub(text, ",", "#") text = gsub(text, "%-?%.%.%.%-?", "#") text = gsub(text, "#$", "") text = gsub(text, "#%-?", " ") text = toNFD(lower(text)) for word in gsplit(text, " ", true) do local initial, final, tone, diminutive, sandhi, result = {}, {}, {}, {}, {}, {} local syllables = split(word, "-", true) syllables.length = #syllables for index, syllable in ipairs(syllables) do if syllable == "仔" then syllable = "a".."́" diminutive[index] = true end local original_syllable = syllable syllable = gsub(syllable, "[" .. poj_tone_marks .. "]", "") if not find(syllable, "[aeiouy]") then final[index] = match(syllable, "^[ckmnpst]?h?h?(ngh?)$") or match(syllable, "^h?(mh?)$") initial[index] = syllable ~= final[index] and sub(syllable, 1, len(syllable) - len(final[index])) or "" --original code: "ʔ" else initial[index] = match(syllable, "^[bcdfgjklmnprstwy]?[gh]?h?") final[index] = sub(syllable, len(initial[index]) + 1, -1) end tone[index] = get_tone(sub(original_syllable, len(initial[index]) + 1, -1)) local nasal_initial = match(initial[index], "^[mn]g?$") if nasal_initial then if find(final[index], "ⁿ") then error("Too much nasality in POJ. " .. original_syllable .. " should be " .. gsub(original_syllable, "ⁿ", "")) end if location ~= "Penang" and location ~= "Philippines" and location ~= "Singapore" then --exception for Penang, Philippines and Singapore final[index] = nasalize(final[index]) end end if location == "Longyan" and find(final[index], "h$") then final[index] = gsub(final[index], "h", "") end local nasal_final = match(final[index], "^[mn]") or match(final[index], "ⁿ") local not_nasal_initial = match(initial[index], "^[blg]$") if ((nasal_initial and not nasal_final) or (not_nasal_initial and nasal_final)) and (location ~= "Penang" and location ~= "Philippines" and location ~= "Singapore") then --exception for Penang, Philippines and Singapore error("POJ error: nasality of initial and final not synchronized.") end table.insert(attention, export.poj_check_syllable(initial[index], final[index], location)) initial[index] = initial_ipa[location .. "-" .. initial[index]] or initial_ipa[initial[index]] final[index] = final_ipa[location .. "-" .. final[index]] or final_ipa[final[index]] or error("Cannot recognise " .. final[index] .. ".") if index < syllables.length then final[index] = gsub(final[index], "ʔ", "(ʔ)") end end for index = 1, syllables.length do sandhi[index] = tone_value[location][tone[index]] local sandhi_hash = get_sandhi_from_post(location, tone[index], tone[index+1]) or tone_sandhi[location][tone[index]..(diminutive[index+1] and "d" or "")] or tone_sandhi[location][tone[index]] if index < syllables.length and tone_value[location][sandhi_hash] ~= tone_value[location][tone[index]] then sandhi[index] = sandhi[index] .. "-" .. tone_value[location][sandhi_hash] end table.insert(result, initial[index] .. final[index] .. sandhi[index]) end table.insert(word_result, table.concat(result, " ")) end return (gsub(formatting.leading .. table.concat(word_result, " ") .. formatting.trailing, "[12345%-]", tone_superscript)) .. table.concat(attention) end function export.poj_to_psdb_conv(text) if type(text) == "table" then text = text.args[1] end local readings = split(lower(text), "/", true) for i = 1, #readings do -- will ignore # boundary marker local parts = split(gsub(readings[i], "#", ""), " ", true) for j = 1, #parts do local initial = {} local final = {} local psdb = {} local tone = {} local tonesandhi = {} local neutral = {} parts[j] = gsub(parts[j], "%-%-", "-0") local p = split(parts[j], "-", true) local ar = {} local triple = {} for i, item in ipairs(p) do if find(item, "仔") then item = gsub(item, "仔", "á") ar[i] = true end if find(item, "%(") then item = gsub(item, "[%(%)]", "") triple[i] = true end if find(item, "^0") then item = gsub(item, "0", "") neutral[i] = true end item = gsub(item, "ớ", "óo") item = gsub(item, "ờ", "òo") item = gsub(item, "ơ̂", "ôo") item = gsub(item, "ơ̄", "ōo") item = gsub(item, "ơ̍", "o̍o") item = gsub(item, "ơ", "oo") item = gsub(item, "͘", "o") item = gsub(item, "[̍̂̄̀]",{["̍"] = "捌", ["̂"] = "伍", ["̄"] = "柒", ["̀"] = "叁"}) if find(item, "[aeiou][捌]?[ptkh]") or find(item, "[^aeiou][mn][捌]?g?[ptkh]") then if find(item, "捌") then tone[i] = "八" else tone[i] = "四" end elseif find(item, "[áíúéóḿń貳]") then tone[i] = "二" elseif find(item, "[àìùèòǹ叁]") then tone[i] = "三" elseif find(item, "[âîûêô伍]") then tone[i] = "五" elseif find(item, "[āīūēō柒]") then tone[i] = "七" else tone[i] = "一" end item = gsub(item, "[áíúéóḿńàìùèòǹâîûêôāīūēō貳叁伍柒捌]",{["á"] = "a", ["í"] = "i", ["ú"] = "u", ["é"] = "e", ["ó"] = "o", ["ḿ"] = "m", ["ń"] = "n", ["貳"] = "", ["à"] = "a", ["ì"] = "i", ["ù"] = "u", ["è"] = "e", ["ò"] = "o", ["ǹ"] = "n", ["叁"] = "", ["â"] = "a", ["î"] = "i", ["û"] = "u", ["ê"] = "e", ["ô"] = "o", ["伍"] = "", ["ā"] = "a", ["ī"] = "i", ["ū"] = "u", ["ē"] = "e", ["ō"] = "o", ["柒"] = "", ["捌"] = ""}) if sub(item,1,3) == "chh" then initial[i] = "chh" final[i] = sub(item,4,-1) elseif sub(item,1,1) == "m" then if sub(item,2,2) == "h" then initial[i] = "" final[i] = "mh" elseif sub(item,2,2) == "" then initial[i] = "" final[i] = "m" else initial[i] = "m" final[i] = sub(item,2,-1) end elseif sub(item,1,2) == "ng" then if sub(item,3,3) == "h" then initial[i] = "" final[i] = "ngh" elseif sub(item,3,3) == "" then initial[i] = "" final[i] = "ng" else initial[i] = "ng" final[i] = sub(item,3,-1) end elseif find(item, "^[ptkc]h") then initial[i] = sub(item,1,2) final[i] = sub(item,3,-1) elseif find(item, "^[npbtkgjshl]") then initial[i] = sub(item,1,1) final[i] = sub(item,2,-1) else initial[i] = "" final[i] = item end if find(initial[i], "^chh?$") or initial[i] == "s" then if find(final[i], "^i") then initial[i] = initial[i] .. "i" end end p[i] = item end for i = 1, #p do if tone[i] == "一" then tonesandhi[i] = "七" elseif tone[i] == "二" then tonesandhi[i] = "一" elseif tone[i] == "三" then tonesandhi[i] = ar[i+1] and "一" or "二" elseif tone[i] == "四" then tonesandhi[i] = "八" elseif tone[i] == "五" then tonesandhi[i] = "七" elseif tone[i] == "七" then tonesandhi[i] = ar[i+1] and "七" or "三" elseif tone[i] == "八" then tonesandhi[i] = "四" end if triple[i] then local tonesandhi1 = nil if tone[i] == "五" then tonesandhi1 = "五" elseif tone[i] == "七" then tonesandhi1 = "一" end psdb[i] = (psdb_initial[initial[i]] or "error") ..(psdb_final(final[i]..(tonesandhi1 or tonesandhi[i])) or "error") ..psdb_initial[initial[i]] ..psdb_final(final[i]..tonesandhi[i]) ..psdb_initial[initial[i]] ..psdb_final(final[i]..(i == #tone and tone[i] or tonesandhi[i])) else psdb[i] = (psdb_initial[initial[i]] or "error") ..(psdb_final(final[i]..(i == #tone and tone[i] or tonesandhi[i])) or "error") end if neutral[i] then psdb[i] = "~" .. (psdb_initial[initial[i]] or "error") ..(psdb_final(final[i].."七") or "error") end --psdb[i] = p[i] end parts[j] = table.concat(psdb, "") end readings[i] = table.concat(parts, " ") readings[i] = gsub(readings[i], "'+", "'") readings[i] = gsub(readings[i], "^'", "") readings[i] = gsub(readings[i], "([^a-z])'", "%1") readings[i] = gsub(readings[i], "([^pbdtkqgczsjlmnhaeiou])'([aeiouwy])", "%1%2") readings[i] = gsub(readings[i], "([^aeiouwy])'([ptkbdqmn])", "%1%2") readings[i] = gsub(readings[i], "([^aeiouwyn])'g", "%1g") readings[i] = gsub(readings[i], "([^aeiouwypcz])'h", "%1h") end return (gsub(table.concat(readings, ", "),'/([^ ])',' / %1')) end function export.poj_display(text) if type(text) == "table" then text = text.args[1] end text = gsub(text, "仔", "á") local readings = split(text, "/", true) for i = 1, #readings do readings[i] = gsub(readings[i], "[%a,]+:", "") readings[i] = gsub(readings[i], "#", "") readings[i] = gsub(readings[i], "%(([^%)]+)%)", "%1-%1-%1") if not find(readings[i], " ") then readings[i] = "[[" .. readings[i] .. "#Hokkien|" .. readings[i] .. "]]" end end text = table.concat(readings, " / ") return text end function export.pengim_check_syllable(initial, final, loc) local validInitials = { ["b"] = 1, ["p"] = 1, ["m"] = 1, ["bh"] = 1, ["d"] = 1, ["t"] = 1, ["n"] = 1, ["l"] = 1, ["g"] = 1, ["k"] = 1, ["ng"] = 1, ["gh"] = 1, ["h"] = 1, ["z"] = 1, ["c"] = 1, ["s"] = 1, ["r"] = 1, [""] = 1, } local validFinals = { ["a"] = 1, ["i"] = 1, ["u"] = 1, ["ê"] = 1, ["o"] = 1, ["ah"] = 1, ["ih"] = 1, ["uh"] = 1, ["êh"] = 1, ["oh"] = 1, ["oi"] = 1, ["ai"] = 1, ["ou"] = 1, ["au"] = 1, ["ia"] = 1, ["iu"] = 1, ["uê"] = 1, ["ua"] = 1, ["ui"] = 1, ["uai"] = 1, ["oih"] = 1, ["auh"] = 1, ["uêh"] = 1, ["uah"] = 1, ["ang"] = 1, ["êng"] = 1, ["ong"] = 1, ["iang"] = 1, ["iong"] = 1, ["ung"] = 1, ["uang"] = 1, ["ag"] = 1, ["êg"] = 1, ["og"] = 1, ["iag"] = 1, ["iog"] = 1, ["ug"] = 1, ["uag"] = 1, ["an"] = 1, ["in"] = 1, ["ên"] = 1, ["oun"] = 1, ["ain"] = 1, ["aun"] = 1, ["iun"] = 1, ["ian"] = 1, ["uên"] = 1, ["uin"] = 1, ["uan"] = 1, ["uain"] = 1, ["ng"] = 1, ["m"] = 1, } local moreValidFinals = { ["Chaozhou"] = { ["e"] = 1, ["iê"] = 1, ["iou"] = 1, ["iêh"] = 1, ["eng"] = 1, ["am"] = 1, ["ing"] = 1, ["iêng"] = 1, ["im"] = 1, ["iêm"] = 1, ["uêng"] = 1, ["uam"] = 1, ["eg"] = 1, ["ab"] = 1, ["ig"] = 1, ["iêg"] = 1, ["ib"] = 1, ["iêb"] = 1, ["uêg"] = 1, ["uab"] = 1, ["oin"] = 1, ["iên"] = 1, }, ["Shantou"] = { ["e"] = 1, ["io"] = 1, ["iau"] = 1, ["ioh"] = 1, ["eng"] = 1, ["am"] = 1, ["ing"] = 1, ["im"] = 1, ["iam"] = 1, ["uam"] = 1, ["eg"] = 1, ["ab"] = 1, ["ig"] = 1, ["ib"] = 1, ["iab"] = 1, ["uab"] = 1, ["oin"] = 1, ["ion"] = 1, }, ["Chenghai"] = { ["e"] = 1, ["iê"] = 1, ["iou"] = 1, ["iêh"] = 1, ["eng"] = 1, ["ing"] = 1, ["eg"] = 1, ["ig"] = 1, ["oin"] = 1, ["iên"] = 1, }, ["Raoping"] = { ["e"] = 1, ["io"] = 1, ["iau"] = 1, ["ioh"] = 1, ["eng"] = 1, ["am"] = 1, ["ing"] = 1, ["im"] = 1, ["iam"] = 1, ["uam"] = 1, ["eg"] = 1, ["ab"] = 1, ["ig"] = 1, ["ib"] = 1, ["iab"] = 1, ["uab"] = 1, ["oin"] = 1, ["ion"] = 1, }, ["Jieyang"] = { ["e"] = 1, ["io"] = 1, ["iau"] = 1, ["ioh"] = 1, ["am"] = 1, ["im"] = 1, ["iam"] = 1, ["uêng"] = 1, ["uam"] = 1, ["ab"] = 1, ["ib"] = 1, ["iab"] = 1, ["uêg"] = 1, ["uab"] = 1, ["ion"] = 1, }, ["Chaoyang"] = { ["io"] = 1, ["iau"] = 1, ["ioh"] = 1, ["am"] = 1, ["ing"] = 1, ["im"] = 1, ["iam"] = 1, ["uêng"] = 1, ["uam"] = 1, ["ab"] = 1, ["ig"] = 1, ["ib"] = 1, ["iab"] = 1, ["uêg"] = 1, ["uab"] = 1, ["ion"] = 1, }, } if not (validInitials[initial] and (validFinals[final] or moreValidFinals[loc][final])) then return "[[Category:Teochew terms needing pronunciation attention|" .. loc .. "]]" end return nil end local pengim_to_ipa_two_letters_above = { ["gh"] = "ɡ", ["bh"] = "β", ["ng"] = "ŋ", ["ao"] = "au", } local pengim_to_ipa_one_letter = { --initials ["m"] = "m", ["n"] = "n", ["b"] = "p", ["d"] = "t", ["g"] = "k", ["p"] = "pʰ", ["t"] = "tʰ", ["k"] = "kʰ", ["s"] = "s", ["h"] = "h", ["r"] = "d͡z", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["l"] = "l", --vowels ["a"] = "a", ["ê"] = "e", ["e"] = "ɯ", ["i"] = "i", ["o"] = "o", ["u"] = "u", --tones ["1"] = "³³⁻²³", ["2"] = "⁵²⁻³⁵", ["2"] = "⁵²⁻²¹", ["3"] = "²¹³⁻⁵⁵", ["4"] = "²⁻⁴", ["5"] = "⁵⁵⁻¹¹", ["6"] = "³⁵⁻¹¹", ["7"] = "¹¹", ["8"] = "⁴⁻²", } local pengim_tone_value = {} pengim_tone_value["Chaozhou"] = { ["1"] = "33", ["2"] = "53", ["3"] = "213", ["4"] = "2", ["5"] = "55", ["6"] = "35", ["7"] = "11", ["8"] = "5" } pengim_tone_value["Shantou"] = pengim_tone_value["Chaozhou"] pengim_tone_value["Chenghai"] = pengim_tone_value["Chaozhou"] pengim_tone_value["Jieyang"] = pengim_tone_value["Chaozhou"] pengim_tone_value["Chaoyang"] = { ["1"] = "33", ["2"] = "53", ["3"] = "31", ["4"] = "2", ["5"] = "55", ["6"] = "313", ["7"] = "11", ["8"] = "5" } local pengim_tone_sandhi = {} pengim_tone_sandhi["Chaozhou"] = { ["1"] = "23", ["2A"] = "23", ["2B"] = "35", ["3A"] = "31", ["3B"] = "53", ["4A"] = "3", ["4B"] = "5", ["5"] = "11", ["6"] = "21", ["7"] = "", ["8"] = "2" } pengim_tone_sandhi["Shantou"] = { ["1"] = "23", ["2A"] = "35", ["2B"] = "35", ["3A"] = "55", ["3B"] = "55", ["4A"] = "5", ["4B"] = "5", ["5"] = "11", ["6"] = "21", ["7"] = "", ["8"] = "2" } pengim_tone_sandhi["Chenghai"] = pengim_tone_value["Chaozhou"] pengim_tone_sandhi["Jieyang"] = pengim_tone_value["Chaozhou"] pengim_tone_sandhi["Chaoyang"] = { ["1"] = "23", ["2A"] = "31", ["2B"] = "31", ["3A"] = "55", ["3B"] = "55", ["4A"] = "5", ["4B"] = "5", ["5"] = "11", ["6"] = "33", ["7"] = "33", ["8"] = "2" } local pengim_to_ipa_fix = { ["β"] = "b", ["p([²⁴⁻]+[ -/])"] = "p̚%1", ["k([²⁴⁻]+[ -/])"] = "k̚%1", ["h([²⁴⁻]+[ -/])"] = "ʔ%1", } local pengim_to_ipa_nasal = { ["a"] = "ã", ["e"] = "ẽ", -- ê ["ɯ"] = "ɯ̃", -- e ["i"] = "ĩ", ["o"] = "õ", ["u"] = "ũ", ["n"] = "", } function export.pengim_to_ipa_conv(text) local result for key, val in pairs(pengim_to_ipa_two_letters_above) do text = gsub(text, key, val) end text = gsub(text, "([234]) ([^12345678 ]+)2$", "%1 %22") local function verbose_function(char) return pengim_to_ipa_one_letter[char] or char end -- This should work, but it doesn't convert the tone number in "diên1": -- result = gsub(text, ".", pengim_to_ipa_one_letter) result = gsub(text, ".", verbose_function) result = result .. "/" for key, val in pairs(pengim_to_ipa_fix) do result = gsub(result, key, val) end result = gsub(result, "[aeiouɯ]+nʔ?[¹²³⁴⁵⁻]+[ -/]", function (a) return gsub(a, ".", pengim_to_ipa_nasal) end) result = gsub(result, "(⁻[¹²³⁴⁵]+)/", function(a) return (a ~= "⁻²¹" and "/" or a .. "/") end) result = gsub(result, ",", "#") result = gsub(result, "(⁻[¹²³⁴⁵]+)#", function(a) return (a ~= "⁻²¹" and "" or a) end) result = gsub(result, "#", "") result = gsub(result, "/$", "") result = gsub(result, "/", "/, /") return "/" .. result .. "/" end function export.pengim_display(text) text = gsub(text, "([1-8])/", "%1 / ") text = gsub(text, "[1-8]+", "<sup>%0</sup>") -- note: originally [1-8-]+ but it seems like websites have the final tone within parentheses, if at all return (gsub(text, "#", "")) end function export.pengim_to_pojlike_conv(text) -- kind of based on MTR (http://www.ispeakmin.com/bbs/viewthread.php?tid=2784) text = gsub(text, "#", "") local words = split(text, "/", true) local tone_marks = { ['1'] = '', ['2'] = '́', ['3'] = '̀', ['4'] = '', ['5'] = '̂', ['6'] = '̆', -- this is a breve; MTR: breve; current hokkien dialect convention: hacek; missionary: tilde or breve?? ['7'] = '̄', ['8'] = '̍' } local function get_tone_mark(a, num) return tone_marks[num] .. a end local function convert_final(x,c,t) -- convert final -g and -b (but not -ng) if c=='b' then c='p' elseif c=='g' then c='k' end return x..c..t end local cons_correspondences = { ['bh']='b', ['gh']='g', ['b']='p', ['d']='t', ['g']='k', ['p']='ph', ['t']='th', ['k']='kh', ['z']='ts', ['c']='tsh', ['r']='j' } local function nasalization(n,h,t) return h..'ⁿ'..t end for i, word in ipairs(words) do local syllables = split(word, " ", true) for i, syllable in ipairs(syllables) do syllable = gsub(syllable, '^[bdgptkzcr]h?', cons_correspondences) syllable = gsub(syllable, '([^n])([bg])(%d)', convert_final) syllable = gsub(syllable, '[êe]', { ['ê']='e', ['e']='ṳ' } ) syllable = gsub(syllable, 'ao', 'au' ) syllable = gsub(syllable, '(n)(h?)(%d)', nasalization) if find(syllable, 'uai') then syllable = gsub(syllable, 'uai', 'ua符i') elseif find(syllable, '[aiueoṳ][aiueoṳ]') then syllable = gsub(syllable, '([aouṳ])i', '%1符i') -- ?i syllable = gsub(syllable, 'i([aoeuṳ])', 'i%1符') -- i? syllable = gsub(syllable, '([ao])([uṳ])', '%1符%2') -- ?u syllable = gsub(syllable, '([uṳ])([ae])', '%1%2符') -- u? elseif find(syllable, '[^aiueoṳ][aiueoṳ]') or find(syllable, '^[aiueoṳ]') then syllable = gsub(syllable, '([aiueoṳ])', '%1符') elseif find(syllable, 'ngh?%d') then syllable = gsub(syllable, 'ng(h?)(%d)', 'n符g%1%2') elseif find(syllable, '[^aiueoṳ]h?%d') then syllable = gsub(syllable, '([^aiueoṳ])(h?)(%d)', '%1符%2%3') end syllable = gsub(syllable, '符(.*)(%d)', get_tone_mark) syllables[i] = syllable end words[i] = table.concat(syllables, ' ') end return toNFC(table.concat(words, ' / ')) end return export r4ldcqf39mt5i10fgl348j1n0ln2g4d Modul:wuu-pron 828 130366 628992 240923 2024-11-06T18:15:39Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628992 Scribunto text/plain local export = {} local data = mw.loadData("Module:wuu-pron/data") --[=[ TODO: - do IPA for glottalised nasal intials (currently the glottal stop is dropped) - FIND DATA FOR 3+ SYLLABLE SANDHI AND RPS!!! (we can settle for trisyllabics right) - northern wu data: FIRST PRIORITY should be - CHUANSHA 川沙 (sandhi found in 當代, needs. understanding) - NEW KUNSHAN 崑山新派 (trisyllabic sandhi needed) - HUZHOU 湖州 (trisyllabic sandhi needed) - XIAOSHAN 蕭山 (大西博子 source doesn't exactly line up with wugniu 市志) - CIXI 慈溪 (慈溪方言研究 PDF exists but currently unretrieved, please inform @ND381 if a working PDF is in your possession ASAP!! zia-zia) - any other northern wu points are good!! pls note the source u used in the EDIT SUMMARY if u do add one zia-zia - MODULES for TAIZHOU & WENZHOU → and then we're done (probably) ]=]-- local loc_names = { -- Basic 聲韻調 Disyll LPS Trisyll LPS Quad+ LPS RPS Logic ['sh'] = 'Shanghai', -- + + + + + + ['jd'] = 'Jiading', -- + + + - - + ['sj'] = 'Songjiang', -- + + + - - + ['cs'] = 'Chuansha', -- + + + - - - ['cm'] = 'Chongming', -- + + + - + + ['sz'] = 'Suzhou', -- + + + + + + ['ks'] = 'Kunshan', -- + + - - - - Wugniu "新派" ['yx'] = 'Yixing', -- + - - - - - ['cz'] = 'Changzhou', -- + + + - - + ['jj'] = 'Jingjiang', -- + + - - - - ['jx'] = 'Jiaxing', -- + + + - - + ['tx'] = 'Tongxiang', -- + + + - - + ['hn'] = 'Haining', -- + + + - + + Xiashi locality ['hy'] = 'Haiyan', -- + + + - - + ['dq'] = 'Deqing', -- + - - - - - ['hz'] = 'Hangzhou', -- + + + + + + ['xs'] = 'Xiaoshan', -- + - - - - - ['sx'] = 'Shaoxing', -- + + + - + + ['cx'] = 'Cixi', -- + + - - - - ['nb'] = 'Ningbo', -- + + + - + + ['zs'] = 'Zhoushan', -- + - - - - - -- Jinhua + + + + + + -- Taizhou need to pick locality/localities -- Wenzhou need to reconcile differences between sources } -- default to "<loc_name> dialect" if empty -- specifies the name of the Wikipedia article of the lect local wiki_names = { jd = 'Shanghainese#Classification', sj = 'Shanghainese#Classification', cs = 'Shanghainese#Classification', yx = 'Taihu Wu', jj = 'Taihu Wu', jx = 'Taihu Wu', tx = 'Taihu Wu', hn = 'Taihu Wu', hy = 'Taihu Wu', dq = 'Taihu Wu', xs = 'Taihu Wu', cx = 'Taihu Wu', zs = 'Taihu Wu', } local minidict = { ['sh'] = true, ['jd'] = true, ['cm'] = true, ['sz'] = true, ['cz'] = true, ['jx'] = true, ['hz'] = true, ['sx'] = true, ['nb'] = true } local order = {'sh', 'jd', 'sj', 'cm', 'cs', 'sz', 'ks', 'yx', 'cz', 'jj', 'jx', 'tx', 'hn', 'hy', 'dq', 'hz', 'xs', 'sx', 'cx', 'nb', 'zs'} local ipa_initial = { ["p"] = "p", ["ph"] = "pʰ", ["b"] = "b", ["m"] = "m", ["f"] = "f", ["v"] = "v", ["t"] = "t", ["th"] = "tʰ", ["d"] = "d", ["n"] = "n", ["l"] = "l", ["ts"] = "t͡s", ["tsh"] = "t͡sʰ", ["s"] = "s", ["z"] = "z", ["c"] = "t͡ɕ", ["ch"] = "t͡ɕʰ", ["dz"] = "d͡z", ["j"] = "d͡ʑ", ["gn"] = "n̠ʲ", ["sh"] = "ɕ", ["zh"] = "ʑ", ["k"] = "k", ["kh"] = "kʰ", ["g"] = "ɡ", ["ng"] = "ŋ", ["h"] = "h", ["gh"] = "ɦ", [""] = "", } local ipa_initial_override = { --this always takes priority over the table above --additional unique initials can also be defined here --a question mark means the initial does not exist --there must be empty tables for all locations, even if there is nothing there ['sh'] = { ["dz"] = "?" }, ['jd'] = { ["dz"] = "?", ["zh"] = "?" }, ['sj'] = { ["p"] = "ɓ", ["t"] = "ɗ", ["f"] = "ɸ", ["v"] = "β", ["ch"] = "cʰ", ["c"] = "c", ["j"] = "ɟ", ["sh"] = "ç", ["zh"] = "?", ["dz"] = "?" }, ['cm'] = { ["v"] = "fv", ["z"] = "sz", ["zh"] = "ɕʑ", ["gh"] = "hɦ", }, ['cs'] = { ["p"] = "ɓ", ["t"] = "ɗ", ["f"] = "ɸ", ["v"] = "β", ["dz"] = "?" }, ['sz'] = { ["dz"] = "?", ["zh"] = "?" }, ['ks'] = { ["zh"] = "?", ["h"] = "x" }, ['yx'] = { }, ['cz'] = { }, ['jj'] = { }, ['jx'] = { ['dz'] = "?", ["vh"] = "ʔv" }, ['tx'] = { }, ['hn'] = { }, ['hy'] = { ['dz'] = "?" }, ['dq'] = { ['dz'] = "?" }, ['hz'] = { ["zh"] = "?" }, ['xs'] = { }, ['sx'] = { }, ['cx'] = { }, ['nb'] = { }, ['zs'] = { }, } local function get_initial(initial, loc) return ipa_initial_override[loc][initial] or ipa_initial[initial] or error('Invalid initial: "' .. initial .. '"') end local function get_final(final, loc) return data.ipa_final[loc][final] or error('Invalid final: "' .. final .. '"') end local ipa_syllabic = { ["m"] = "m̩", ["n"] = "n̩", ["ng"] = "ŋ̍", } -- diagnose tone error local function diagnose_tones(word_length, loc, text, tone, tone2, tone3) -- the cap on number of syllables local syl_cap = ({sh=5,sj=3,cm=3,cs=3,sz=4,ks=2,yx=1,cz=3,jj=2,jx=3,tx=3,hn=3,hy=3,dq=1,hz=5,xs=1,sx=3,cx=2,nb=3,zs=1})[loc] if syl_cap and word_length > syl_cap then error(("Maximum %d syllables supported for %s."):format(syl_cap, loc)) end -- the cap on number of specified tones local tone_cap = ({sj=3,ks=2,cz=3,jx=3,tx=3,hn=3,hy=2})[loc] if tone_cap then local expected = math.min(tone_cap, word_length) local received = 1 + (tone2 ~= '' and 1 or 0) + (tone3 ~= '' and 1 or 0) if received ~= expected then error(('Expected %d tones, but received %d: "%s:%s".'):format(expected, received, loc, text)) end elseif loc == 'sz' or loc == 'sx' then -- sz: tone is 7 or 8, but second tone not provided error("For " .. loc .. ", second tone must be specified.") end error(('Incorrect tone notation "%s" for %s. See [[WT:AZH/Wu]].'):format(tone..tone2..tone3, loc)) end local function tone_superscript(text) return text:gsub('[1-5]',{['1']='¹',['2']='²',['3']='³',['4']='⁴',['5']='⁵'}) end local function get_tone(text, loc) local word_length = text:gsub("[^ ]+", ""):len() + 1 local tone, tone2, tone3 = text:match("^(.%u*)%w+ ?(%d?%u?)%w* ?(%d?%u?)") if loc == "jx" and tone == "3" then tone = text:find("^3[ptkc]s?h") and "3B" or "3A" elseif loc == "cm" then local result = nil if tone:find("[MP]") then -- Verb + Motion / Verb + Pronoun if word_length ~= 2 then error("cm: Unsupported word length.") end result = data.tone_contours[loc][tone] or error("cm: Wrong motion/pronoun format.") elseif tone:find("R",1,true) then -- Reduplication local main_tone, redup_type, word, sub_tone = text:match("^(%d)R([VCN])(%l+) (%d)%3$") main_tone, sub_tone = tonumber(main_tone), tonumber(sub_tone) local conv_tone = (redup_type == "N" and main_tone%2==0 and word:find("^g?[mnl]") and main_tone-1) or main_tone if sub_tone ~= conv_tone then error("cm: Wrong reduplication format.") end result = data.tone_contours[loc]["R"..redup_type..main_tone] end if result then return tone_superscript(result) end elseif loc == "sx" and tone:find("^%dA$") then return tone_superscript(data.tone_contours[loc][tone]) elseif loc == "cs" and word_length == 3 then tone2 = "" end local result = data.tone_contours[loc][word_length..tone..tone2..tone3] or data.tone_contours[loc][word_length..tone..tone2] or data.tone_contours[loc][word_length..tone] return result and tone_superscript(result) or diagnose_tones(word_length, loc, text, tone, tone2, tone3) end local function RPS_tone_determ(word_length, tone, loc) local result if word_length == 1 then result = data.tone_contours[loc][tone .. "s"] or data.tone_contours[loc]['s'] else result = data.tone_contours[loc]["multiple"] end return tone_superscript(result) end local function rom_check(text, locs) --this checks wugniu if text:match("%f[%l']['qx]") or text:match('ny') or text:match('hh') or text:match("h$") then error('Invalid syllable: ' .. text ..'. Wugniu expected, but another romanisation is supplied.') end if text:match('ghi') and locs ~= 'cm' then error('Invalid initial "ghi". Use "yi" instead.') end if text:match('ghu') and locs ~= 'cm' then error('Invalid initial "ghu". Use "wu" instead.') end if text:match('%f[%l]y%f[%L]') then error('Invalid syllable "y"') end if text:match('%f[%l]y[nq]') then error('Invalid syllable "yn" or "yq"') end if text:match('gn[aeou]') then error('Palatalization expected. Insert an "i" after the "gn".') end if text:match('uw') then error(('Invalid syllable in "%s".'):format(text)) end if locs:find('cm') and (text:find('ueu') or text:find('uon') or text:find('ui')) then error('cm: Mutation-only final found.') end for syl in text:gmatch("[%d%l%u]+") do if not syl:match("%d") then require("Module:debug").track("wuu-pron/no-tone") if locs ~= "sh" then require("Module:debug").track("wuu-pron/no-tone-other") end end end return nil end function export.ipa_syl_conv(text, loc, initials, finals, syllabics, i, main_tone, tone) -- get ipa from tables local initial, final = text:match("^([td]?[pbmfvtdnlszcjghk][hng]?)(.+)$") local if_syllabic = syllabics[text] if loc == 'sx' and text == 'gn' then if_syllabic = "ɲ̩" end if not initial or if_syllabic then initial, final = '', text end if loc == 'cm' then -- mutation local mutated_initial = i > 1 and initial == "z" and "z" local preglottal = "" if tone ~= "0" and (mutated_initial or initial:find("^g?[mnl]") or initial == "") then preglottal = (i > 1 or main_tone:find("^[1357]$")) and "ʔ" or "ɦ" end return preglottal .. (mutated_initial or initials(initial,loc)) .. (if_syllabic or finals(final,loc)) end return initials(initial,loc) .. (if_syllabic or finals(final,loc)) end function export.wugniu_to_ipa(original_text, loc, initials, finals, syllabics, tones) local text, conv_text = "", "" local tone_number = "" original_text = original_text:gsub(" (%l+)(%d%u?)", ' %2%1') if loc == 'cm' then original_text = original_text:gsub("%f[%l]yi?","i"):gsub("%f[%l]wu?","u") else original_text = original_text:gsub("%f[%l]yi?","ghi"):gsub("%f[%l]wu?","ghu") end local reading = mw.text.split(original_text, ",", true) local syllable = {} local syl_tone = {} for reading_index = 1, #reading, 1 do local components = mw.text.split(reading[reading_index], "&", true) for component_index = 1, #components do local indep_words = mw.text.split(components[component_index], "+", true) for indep_index = 1, #indep_words do text = indep_words[indep_index] tone_number = text:sub(1, 1) local tone = tones(text, loc) text = text:gsub("[^ %l]+", "") local syllable = mw.text.split(text, " ", true) local syl_tone = mw.text.split(tone, " ", true) for i = 1, #syllable, 1 do --RPS if i == #syllable and indep_words[indep_index + 1] and tone ~= "³³" then syl_tone[i] = RPS_tone_determ(#syllable, tone_number, loc) end syllable[i] = (syllable[i] ~= "" and export.ipa_syl_conv(syllable[i], loc, initials, finals, syllabics, i, tone_number, syl_tone[i]) or "") .. (syl_tone[i] == "0" and "" or syl_tone[i]) end indep_words[indep_index] = table.concat(syllable, " ") end components[component_index] = table.concat(indep_words, " &nbsp;") end reading[reading_index] = table.concat(components, " ") end return table.concat(reading, "/, /") end function export.wikt_to_wugniu(text) require("Module:debug").track("wuu-pron/legacy") if type(text) == "table" then text = text.args[1] end return text --initials :gsub("'+", {["'"]=""}) :gsub("%f[%l][jqx][jx]?", {j="c", jj="j", q="ch", x="sh", xx="zh"}) :gsub("%f[%l]ny", "gn") :gsub("%f[%l]hh", "gh") --vowels :gsub("un", "uen") :gsub("yoe", "ioe") :gsub("y", "iu") :gsub("aan", "aon") :gsub("%f[er]r", "y") --syllabics :gsub("g?h?mm", "m") :gsub("g?h?ngg", "ng") --tones :gsub("[2-5]", {['2']='5', ['3']='6', ['4']='7', ['5']='8'}) --gh rules :gsub("ghi", "yi") :gsub("yi%f[aeou]", "y") :gsub("ghu", "wu") :gsub("wu%f[aeo]", "w") end local function wugniu_to_wikt(text) if type(text) == "table" then text = text.args[1] end --initials return export.wugniu_format(text :gsub("%f[%l][cjszg][nh]?", {c="j", ch="q", j="jj", sh="x", zh="xx", gn="ny", gh="hh"}) :gsub("%f[%l]yi?", "hhi") :gsub("wu?", "hhu") --vowels :gsub("y%f[%L]", "r") :gsub("uen", "un") :gsub("ioe", "yoe") :gsub("iu", "y") :gsub("aon", "aan") --syllabics :gsub("%f[%l][mn]g?%f[%L]", {m="mm",n="nn",ng="ngg"}) --initial hh and ' :gsub("([157])([mnl])", "%1'%2") :gsub("([68])([mn][mng]g?)%f[%L]", "%1hh%2") --tones :gsub("[5-8]", {['5']='2', ['6']='3', ['7']='4', ['8']='5'})) end --[[學堂拼音 → 錢拼 local function wugniu_to_qian(text) if type(text) == "table" then text = text.args[1] end --initials return export.wugniu_format(text gn → n sh zh → x xh gh w y → hh wh yh b d g m n l j → bh dh gh mh nh lh jh ng → nhg v z → fh sh ts tsh c ch → z c j q 'mh 'nh 'lh 'nhg → m n l ng --rimes q → k aon on en → ang ong eng au eu → ao ou (ae/e split, but no way to do this on enwikt) word-initial i and u → yi wu (eg. 一 iq → yik) iuk → yuik rules regarding the i in iu behaves exactly like the diaresis in Pinyin ü --syllabics: NO CHANGE: m n ng er → m n ng er --tones: 5, 6, 7, 8 UNMARKED, 1: APOSTROPHE IN FRONT 天: 'ti, 去 qu, 定 dhin, 不 bek, 日 nik SPACES between syllables, not dashes ]] function export.wugniu_format(text, loc) -- 1a a 1a 1a3 a1 -> ^1a-a-a_1-^1a_3-a_1 -- 1a3-3a5 -> ^1a_3-^3a_5 return text :gsub("[%- &+,]", {["-"]="", [" "]="-", ["&"]=" ", ["+"]=" ", [","]="; "}) :gsub("(%-?)(%d?%u?)('?%l+)(%d?%u?)", function(dash, tone1, main, tone2) if dash == '-' and tone2 == '' then tone1, tone2 = tone2, tone1 end if tone1 ~= '' then tone1 = '<sup>' .. tone1 .. '</sup>' end if tone2 ~= '' then tone2 = '<sub>' .. tone2 .. '</sub>' end return dash .. tone1 .. main .. tone2 end) end local function wikt_format(text) return export.wugniu_format(text) end local function minidict_format(text) -- 1A3 3B5 3C D3 E -> A^3 B^5 C^3 D^3 E -- 1A B -> A^1 B return text :gsub("-", "") :gsub("[&+]", " ") :gsub(",", "; ") :gsub("0", "") :gsub("[1-8]?(%l+)([1-8])", '%1<sup>%2</sup>') :gsub("([1-8])(%l+)", '%2<sup>%1</sup>') :gsub("%f[%l]([mnlr]%l*)(<sup>[1357]</sup>)", "'%1%2") :gsub("[1-8]",{ ["1"]="平",["2"]="平", ["3"]="上",["4"]="上", ["5"]="去",["6"]="去", ["7"]="入",["8"]="入", }) end function export.wugniu_to_minidict(text, loc) if type(text) == "table" then text = text.args[1] end text = text:gsub('%f[%l][yw]', {y = 'yi', w = 'wu'}) if loc == 'sx' then text = text:gsub("[ei]+[nq]",{een="en",en="eon",iq="ieq"}) elseif loc == 'hz' then -- are we dealing with mergers? text = text:gsub("[aeiu]+q?%f[%L]",{eu="ei",ieu="iu",aq="eq",iaq="ieq",iq="ieq",uaq="ueq"}) elseif loc == 'sz' or loc == 'cz' then text = text:gsub("%f[%l]yie%f[%L]", "yiie") -- ye > yie elseif loc == 'nb' then text = text:gsub("yu%f[nq]", "oe") elseif loc == 'sh' then text = text:gsub("ie%f[%L]", "iae") elseif loc == 'cm' then text = text:gsub("<sup>→%l+</sup>", "") elseif loc == 'jd' then text = text:gsub("ue%f[%L]", "uie") end return minidict_format(text --finals & syllabic :gsub("iu([nq])", "iui%1") :gsub("gher", "r") :gsub("er", "r") :gsub("q", "h")) --initials --Glottal stops? text = text:gsub("", "'") :gsub("gn", "ny") :gsub("nyi%f[aeou]", "ny") :gsub('yi([aeiou])', 'y%1') :gsub('wu([aeiou])', 'w%1') end -- various boilerplates function export.name_boilerplate(name, wiki) return '<i>[[w:' .. (wiki or name..' dialect') .. '|' .. name.. ']]</i>' end function export.consolas(text) return '<span style="font-family: Consolas, monospace;">' .. text .. '</span>' end function export.wugniu_boilerplate(text) return '\n*** <small><i>[[Wiktionary:About Chinese/Wu|Wugniu]]</i></small>: ' .. export.consolas(text) end function export.minidict_boilerplate(text) return '\n*** <small><i>[[Wiktionary:About Chinese/Wu|MiniDict]]</i></small>: ' .. export.consolas(text) end function export.wikt_boilerplate(text) return '\n*** <small><i>[[Wiktionary:About Chinese/Wu|Wiktionary Romanisation]] (Shanghai)</i></small>: ' .. export.consolas(text) end function export.IPA_boilerplate(text, name, wiki) text = text:gsub("(/?[^ /,]*/[^ /,]*/?)", '<span style="white-space: nowrap;">%1</span>') return '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]]' .. ' (' .. export.name_boilerplate(name, wiki) .. ')</small>: ' .. '<span class="IPA">/' .. text .. '/</span>' end local function preprocess_IPA(text, loc) if loc == 'hz' then return text:gsub("%f[%l]([td]?[sz]h?u)%f[aeonq]", "%1w") elseif loc == 'sx' then return text:gsub("[^,&]+%+[^,&]+", function(chain) local tone1,mode,word1,tone2,word2 = chain:match("^(%d)([AP]?)(%l+)%+(%d)(%l+)$") if not tone1 then error("sx: Wrong chain format.") end if mode == '' then mode = 'O' end if mode == 'A' then return tone1..'A'..word1..'&'..tone2..word2 end return tone1..word1..' '..tone2..mode..word2 end):gsub("#(%d)","%1N") elseif loc == 'cm' then return text:gsub("%f[%l]%l+<(%l*)>","%1") end return text end local function preprocess_wugniu(text, loc) if loc == 'jx' then return text:gsub("3[AB]","3") elseif loc == 'cm' then return text:gsub("[CMPR][VCN]?","") :gsub("%f[%l](%l*)<(%l*)>(%l*)(%d?)","%1%3%4<sup>→%2%3</sup>") elseif loc == 'sx' then return text:gsub("[#CAP]","") end return text end local function preprocess_mutation(text, locs) if locs:find('cm') then text = text:gsub(" (%d?C?)([vzgd]h?)([%w<>]+)", function(tone, initial, final) local mutated_initial = ({v="u",zh="",gh=""})[initial] if mutated_initial == "u" and final:find("^u") then mutated_initial = "" elseif initial == "d" and final:find("^i") then mutated_initial = "l" end if final:find("<") or not mutated_initial then return " "..tone..initial..final end return " "..tone..initial.."<"..mutated_initial..">"..final end) end if text:find("<") and locs ~= "cm" then error("cm: Mutation is incompatible with collapsing.") end return text end function export.make(text, w_count) if not text:match(':') then -- assume Shanghainese text = 'sh:'..text end local show = "" local hide = "" local roms = {} local input_seen, duplicated = {}, false text = mw.text.split(text, ';', true) local show_name = "<i>[[w:Taihu Wu|Northern]]</i>" if #text == 1 and text[1]:find("^..:") then -- single locality local loc = text[1]:sub(1,2) show_name = export.name_boilerplate(loc_names[loc], wiki_names[loc]) end for i = 1,#text,1 do local s = mw.text.split(text[i], ':', true) if not duplicated then if input_seen[s[2]] then duplicated = true end input_seen[s[2]] = true end if #s ~= 2 or #s[1] == 0 then error("Wugniu: prefix is required or too many prefixes") end local locs, t = mw.text.split(s[1], ',', true), s[2] t = preprocess_mutation(t, s[1]) local list = {} local format_text = t for _, loc in ipairs(locs) do if loc_names[loc] then list[loc] = true else error('Wugniu: prefix "' .. loc .. '" is not recognized') end format_text = preprocess_wugniu(format_text, loc) end rom_check(t, s[1]) local wugniu_text = export.wugniu_format(format_text, locs[1]) table.insert(roms,wugniu_text) local names = {} local minidicts = {} local minidicts_seen = {} local IPAs = {} for _, loc in ipairs(order) do if list[loc] then table.insert(names, export.name_boilerplate(loc_names[loc], wiki_names[loc])) if minidict[loc] then local minidict_result = export.wugniu_to_minidict(format_text, loc) if not minidicts_seen[minidict_result] then table.insert(minidicts, minidict_result) minidicts_seen[minidict_result] = true end end local ipa_text = preprocess_IPA(t, loc) ipa_text = export.wugniu_to_ipa(ipa_text, loc, get_initial, get_final, ipa_syllabic, get_tone) table.insert(IPAs,export.IPA_boilerplate(ipa_text, loc_names[loc], wiki_names[loc])) end end hide = hide .. '\n** <small>(<i>[[w:Taihu Wu|Northern]]</i>: ' .. table.concat(names,', ') .. ')</small>' hide = hide .. export.wugniu_boilerplate(wugniu_text) for _,minidict_text in ipairs(minidicts) do hide = hide .. export.minidict_boilerplate(minidict_text) end if list.sh then hide = hide .. export.wikt_boilerplate(wugniu_to_wikt(format_text)) end hide = hide .. table.concat(IPAs, '') end if not w_count or w_count > 1 then show = '\n** <small>('..show_name..')</small>: ' .. export.consolas(table.concat(roms, ' / ')) else show = ' <small>('..show_name..', <i>[[Wiktionary:About Chinese/Wu|Wugniu]]</i>)</small>: ' .. export.consolas(table.concat(roms, ' / ')) end if duplicated then require("Module:debug").track("wuu-pron/duplicated") end return show, hide end return export 0b6id518huv0mqtl68l5fdfzyiedfbt Modul:yue-pron/hom 828 130367 628915 240924 2024-11-06T16:17:50Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628915 Scribunto text/plain local export = {} export = { ["aa1 pin3"] = { "雅片", "鴉片" }, ["aa3 laai1 baa1 maa5"] = { "亞拉巴馬", "阿拉巴馬" }, ["aa3 maa5"] = { "阿媽", "阿瑪", "阿馬" }, ["aa3 tai3"] = { "啊嚏", "阿嚏" }, ["aai1 jo1"] = { "哎唷", "哎喲" }, ["aat3 wan6"] = { "押運", "押韻" }, ["aat3 zai3"] = { "壓制", "壓製", "遏制" }, ["am3 hap6"] = { "暗合", "暗盒" }, ["am3 si6"] = { "暗事", "暗示" }, ["am3 soeng1"] = { "暗傷", "暗箱" }, ["baa1 baa1"] = { "巴巴", "爸爸", "粑粑" }, ["baa1 baa1 laai1"] = { "巴巴拉", "芭芭拉" }, ["baa1 zaat3"] = { "巴扎", "巴紮" }, ["baa2 sau2"] = { "把守", "把手" }, ["baai6 zoeng3"] = { "敗仗", "敗將" }, ["baak6 baan1"] = { "白斑", "白班" }, ["baak6 gam1"] = { "白金", "帛金" }, ["baak6 joeng4"] = { "白楊", "白羊" }, ["baak6 juk6"] = { "白玉", "白肉" }, ["baak6 lou6"] = { "白露", "白鷺" }, ["baak6 min6"] = { "白面", "白麵" }, ["baak6 sik6"] = { "白蝕", "白食" }, ["baak6 syut3"] = { "白說", "白雪" }, ["baak6 waa2"] = { "白話", "帛畫" }, ["baak6 zi2"] = { "白子", "白紙", "白芷" }, ["baan1 ci3"] = { "班次", "頒賜" }, ["baan1 han4"] = { "斑痕", "瘢痕" }, ["baan1 laan4"] = { "斑斕", "斒斕" }, ["baan1 zoeng2"] = { "班長", "頒獎" }, ["baan2 bun2"] = { "坂本", "板本", "版本" }, ["baan2 min6"] = { "板麵", "版面" }, ["baan2 zi2"] = { "板子", "板紙" }, ["baau1 ji1"] = { "包衣", "胞衣" }, ["baau1 zi2"] = { "包子", "孢子" }, ["baau3 guk1"] = { "爆穀", "爆菊" }, ["baau3 lit6"] = { "爆烈", "爆裂" }, ["bai3 sak1"] = { "蔽塞", "閉塞" }, ["ban1 zau1"] = { "濱州", "賓舟", "賓州" }, ["ban2 fu3"] = { "秉賦", "稟賦" }, ["ban2 sing3"] = { "品性", "稟性" }, ["bat1 coeng4"] = { "不祥", "不詳" }, ["bat1 daan1"] = { "不丹", "不單", "佈道" }, ["bat1 daan1 zi2"] = { "不單只", "不單止" }, ["bat1 fong4"] = { "不妨", "不防" }, ["bat1 gon1"] = { "不乾", "不干" }, ["bat1 gung1"] = { "不公", "不恭", "筆供" }, ["bat1 jau5"] = { "不有", "筆友" }, ["bat1 ji4"] = { "不宜", "不移" }, ["bat1 leot6"] = { "篳篥", "觱栗", "觱篥" }, ["bat1 seon3"] = { "不信", "不遜" }, ["bat1 sik1"] = { "不惜", "不識", "不適" }, ["bat1 syun3"] = { "不算", "筆算" }, ["bat1 tung4"] = { "不同", "筆筒" }, ["bat1 zeon2"] = { "不准", "不準" }, ["bat1 zi1"] = { "不支", "不知" }, ["bat1 zi2"] = { "不只", "不止" }, ["bat1 zik6"] = { "不值", "筆直" }, ["bat1 zuk1"] = { "不足", "筆觸" }, ["bei1 ming4"] = { "悲鳴", "碑銘" }, ["bei2 leon4"] = { "比鄰", "毗鄰" }, ["bei2 sau2 waak6 goek3"] = { "比手劃腳", "比手畫腳" }, ["bei6 fo3"] = { "備課", "備貨" }, ["bei6 hon4"] = { "避寒", "鼻鼾" }, ["bei6 jim4"] = { "避嫌", "鼻炎" }, ["bei6 jin1"] = { "鼻咽", "鼻煙" }, ["beng6 cing4"] = { "病情", "病程" }, ["beng6 jyun4"] = { "病原", "病員", "病源" }, ["beng6 zing1"] = { "病徵", "病癥" }, ["bik1 gan6"] = { "迫近", "逼近" }, ["bin1 fuk1"] = { "蝙蝠", "邊幅" }, ["bin1 jyun4"] = { "邊沿", "邊緣" }, ["bin1 taat3"] = { "鞭撻", "鞭韃" }, ["bin1 zi2"] = { "辮子", "鞭子" }, ["bin3 gaak3"] = { "變格", "變革" }, ["bin6 sik1"] = { "辨析", "辨識" }, ["bin6 zing3"] = { "辨證", "辯證", "辨正" }, ["bing1 soeng1"] = { "冰箱", "冰霜" }, ["bing2 hei3"] = { "屏棄", "屏氣", "摒棄" }, ["bik1 zan1"] = { "逼真", "迫真" }, ["bit1 leot6"] = { "觱栗", "觱篥" }, ["bit1 seoi1"] = { "必需", "必須" }, ["biu1 gou1"] = { "標高", "飆高" }, ["biu1 hon6"] = { "標汗", "彪悍" }, ["biu1 zi3"] = { "標緻", "標誌" }, ["bo1 dou6"] = { "坡度", "坡道", "波導" }, ["bo1 laan4"] = { "波瀾", "波蘭" }, ["bo1 zi2"] = { "波子", "坡紙" }, ["bong1 zi2"] = { "幫子", "梆子" }, ["bou2 cyun4"] = { "保全", "保存" }, ["bou2 joeng5"] = { "保養", "補養" }, ["bou2 juk6"] = { "保育", "寶玉" }, ["bou2 mat6"] = { "保密", "寶物" }, ["bou2 mou5"] = { "保姆", "保母" }, ["bou2 on1"] = { "保安", "寶安" }, ["bou2 sau1"] = { "保修", "補修" }, ["bou2 zing3"] = { "保證", "補正" }, ["bou2 zo6"] = { "寶座", "補助" }, ["bou3 dou6"] = { "佈道", "報導", "報道" }, ["bou3 ging2"] = { "佈景", "報警" }, ["bou3 gou3"] = { "佈告", "報告" }, ["bou3 liu2"] = { "報料", "布料" }, --bou3 liu6-2 ["bou6 gwong1"] = { "暴光", "曝光" }, ["bou6 jyu5"] = { "哺乳", "暴雨" }, ["bou6 lei6"] = { "大智", "暴利", "暴吏" }, ["bou6 sau2"] = { "捕手", "部首" }, ["bui3 zi2"] = { "貝子", "輩子" }, ["bui6 mau6"] = { "悖謬", "背謬" }, ["buk6 lou6"] = { "暴露", "曝露" }, ["bun2 zi2"] = { "本子", "本旨" }, ["bun6 tou4"] = { "叛徒", "叛逃" }, ["but6 mau6"] = { "悖謬", "背謬" }, ["caa4 dim2"] = { "查點", "茶點" }, ["caang3 gon1 tiu3 gou1"] = { "撐桿跳高", "撐竿跳高" }, ["caat3 zi2"] = { "刷子", "擦子" }, ["caau1 se2"] = { "抄寫", "鈔寫" }, ["caau1 zaap6"] = { "剿襲", "抄襲" }, ["caau2 gwai3 diu1"] = { "炒粿條", "炒貴刁" }, ["cam4 si1"] = { "尋思", "沉思" }, ["can1 muk6"] = { "瞋目", "親睦" }, ["can3 sam1"] = { "稱心", "趁心" }, ["cau1 seoi2"] = { "抽水", "秋水" }, ["cau4 lou4"] = { "囚牢", "酬勞" }, ["ce1 zoeng2"] = { "車掌", "車長" }, ["ce4 dou6"] = { "斜度", "邪道" }, ["ce4 lou6"] = { "斜路", "邪路" }, ["cek3 dou6"] = { "尺度", "赤道" }, ["cek3 zi2"] = { "尺子", "赤子" }, ["ceoi2 tai3"] = { "取替", "取締" }, ["ceoi4 zau1"] = { "徐州", "隨州" }, ["ceoi4 zi2"] = { "廚子", "錘子" }, ["ceoi4 zik6"] = { "除夕", "除籍" }, ["ceon1 fan1"] = { "春分", "春昏" }, ["ceon2 coi4"] = { "蠢才", "蠢材" }, ["ceot1 gaa3"] = { "出價", "出嫁" }, ["ceot1 si6"] = { "出事", "出示" }, ["ceot1 sik1"] = { "出息", "出色" }, ["ci1 hon3"] = { "痴漢", "痴看" }, ["ci2 faat3"] = { "始發", "齒髮" }, ["ci2 zi3"] = { "此致", "矢志" }, ["ci3 zi2"] = { "廁紙", "次子" }, ["ci4 coeng4"] = { "慈祥", "磁場" }, ["ci4 daai2"] = { "磁帶", "臍帶" },--ci4 daai3-2 ["ci4 jyun4"] = { "詞源", "辭源" }, ["ci4 zou2"] = { "詞組", "辭藻", "遲早" }, ["ci4 zung6"] = { "持重", "詞訟" }, ["cin1 cau1"] = { "千秋", "韆鞦" }, ["cin2 sik1"] = { "淺析", "淺色", "闡釋" }, ["cin4 jiu2"] = { "纏擾", "纏繞" }, ["cin4 tou4"] = { "前途", "錢途" }, ["cing1 caa4"] = { "清查", "清茶" }, ["cing1 ceoi3"] = { "清脆", "青翠" }, ["cing1 faa3"] = { "氰化", "清化" }, ["cing1 san4"] = { "清晨", "稱臣" }, ["cing1 zing6"] = { "清淨", "清靜" }, ["cing4 bou3"] = { "呈報", "情報" }, ["cing4 ging2"] = { "情境", "情景" }, ["cing4 sik1"] = { "情色", "程式" }, ["cit3 ceoi4"] = { "切除", "撤除" }, ["cit3 si1"] = { "切絲", "設施" }, ["cit3 wun6"] = { "切換", "撤換" }, ["co1 baan2"] = { "初版", "搓板" }, ["co1 jing4"] = { "雛型", "雛形" }, ["co4 jing4"] = { "雛型", "雛形" }, ["coek3 gin3"] = { "卓見", "灼見" }, ["coeng1 hau2"] = { "槍口", "窗口" }, ["coeng1 kyut3"] = { "槍決", "猖獗" }, ["coeng2 geng3"] = { "搶鏡", "腸鏡" }, ["coeng2 sau1"] = { "搶修", "搶收" }, ["coeng4 gun2"] = { "場館", "腸管" }, ["coeng4 mat6"] = { "詳密", "長襪" }, ["coeng4 zi2"] = { "牆紙", "腸子" }, ["coi2 fung1"] = { "採風", "采風" }, ["coi2 sou3"] = { "彩塑", "彩數" }, ["coi3 dak6"] = { "塞特", "賽特" }, ["coi3 dak6 hyun2"] = { "塞特犬", "賽特犬" }, ["coi3 pou2"] = { "菜脯", "菜譜" }, ["coi4 fu3"] = { "才賦", "財富" }, ["coi4 jyun4"] = { "裁員", "財源" }, ["coi4 lik6"] = { "才力", "財力" }, ["coi4 loeng4"] = { "裁量", "財糧" }, ["cong1 wong4"] = { "倉皇", "蒼黃" }, ["cong3 gin3"] = { "創建", "創見" }, ["cong4 zi2"] = { "場子", "床笫" }, ["cou1 sam1"] = { "操心", "粗心" }, ["cou2 cung4"] = { "草叢", "草蟲" }, ["cuk1 joeng5"] = { "畜養", "蓄養" }, ["cuk1 saang1"] = { "畜牲", "畜生" }, ["cuk1 sing4"] = { "促成", "速成" }, ["cuk1 zik1"] = { "促織", "蓄積" }, ["cuk1 zik1"] = { "促織", "蓄積" }, ["cung1 ci3"] = { "衝刺", "沖廁" }, ["cung1 jung4"] = { "從容", "蓯蓉" }, ["cung4 joeng4"] = { "重洋", "重陽" }, ["cung4 loi4"] = { "從來", "重來" }, ["cung4 ming4"] = { "松明", "重明" }, ["cung4 san1"] = { "重新", "重申" }, ["cung4 zi2"] = { "松子", "蟲子" }, ["cyu5 bei6"] = { "儲備", "貯備" }, ["cyu5 cong4"] = { "儲藏", "貯藏" }, ["cyu5 cong4 sat1"] = { "儲藏室", "貯藏室" }, ["cyu5 cyun4"] = { "儲存", "貯存" }, ["cyu5 lei5"] = { "署理", "處理" }, ["cyun2 dok6"] = { "忖度", "揣度" }, ["cyun4 coeng4"] = { "全場", "全長" }, ["cyun4 daan1"] = { "傳單", "存單" }, ["cyun4 ging2"] = { "全境", "全景" }, ["cyun4 jin4"] = { "傳言", "全然" }, ["cyun4 kau4"] = { "傳球", "全球" }, ["cyun4 man4"] = { "傳聞", "全文", "全民" }, ["cyun4 sam1"] = { "全心", "存心" }, ["cyun4 san1"] = { "全新", "全身" }, ["cyun4 syu1"] = { "傳輸", "全書" }, ["cyun4 zau1"] = { "全州", "泉州" }, ["cyun4 zung6"] = { "傳誦", "傳頌" }, ["daa2 cau1 fung1"] = { "打抽豐", "打秋風" }, ["daa2 dou2"] = { "打倒", "打賭" }, ["daa2 gung1"] = { "打工", "打恭", "打躬" }, ["daai6 dou1"] = { "大刀", "大都" }, ["daai6 dou6"] = { "大度", "大道" }, ["daai6 fo2"] = { "大夥", "大火" }, ["daai6 gong1"] = { "大江", "大綱" }, ["daai6 gu1"] = { "大姑", "大家" }, ["daai6 gun1"] = { "大官", "大觀" }, ["daai6 gung1"] = { "大公", "大功", "大工" }, ["daai6 hei3"] = { "大氣", "大器", "大戲" }, ["daai6 jan4"] = { "大人", "大仁" }, ["daai6 ji4 zi2"] = { "大兒子", "大姨子" }, ["daai6 ji6"] = { "大二", "大義" }, ["daai6 jyu5"] = { "大禹", "大語", "大雨" }, ["daai6 paai4 dong3"] = { "大排檔", "大牌檔" }, ["daai6 si3"] = { "大使", "大肆" }, ["daai6 sing3"] = { "大勝", "大聖" }, ["daai6 wong4"] = { "大王", "大黃" }, ["daai6 zi3"] = { "大志", "大智", "大致" }, ["daam1 tin1 mong6 dei6"] = { "眈天望地", "耽天望地" }, ["daam6 bok6"] = { "淡泊", "淡薄" }, ["daan1 duk6"] = { "丹毒", "單獨" }, ["daan1 geoi3"] = { "單句", "單據" }, ["daan1 sam1"] = { "丹參", "丹心" }, ["daan2 hok3"] = { "彈殼", "蛋殼" },-- daan6-2 hok3 ["dai6 gaau1"] = { "締交", "遞交" }, ["dak1 si2"] = { "得士", "德士" },-- dak1 si6-2 ["dak1 sing3"] = { "得勝", "德性" }, ["dang1 gei1"] = { "登基", "登機" }, ["dang1 luk6"] = { "登錄", "登陸" }, ["dang3 zi2"] = { "凳子", "鐙子" }, ["dau3 zi3"] = { "鬥志", "鬥智" }, ["dau6 bok1"] = { "豆卜", "豆撲", "豆泡" }, ["dau6 miu4"] = { "痘苗", "豆苗" }, ["dau6 pok1"] = { "豆撲", "豆泡" }, ["dei6 bou6"] = { "地埗", "地步" }, ["dei6 dung6"] = { "地動", "地洞" }, ["deng6 fo3"] = { "定貨", "訂貨" }, ["deoi3 fu6"] = { "兌付", "對付" }, ["deoi3 jik6"] = { "對奕", "對譯" }, ["deoi3 wun6"] = { "兌換", "對換" }, ["deoi3 zing3"] = { "對症", "對證" }, ["deoi3 zoeng6"] = { "對仗", "對象" }, ["din6 ci4"] = { "電池", "電磁" }, ["din6 gei1"] = { "奠基", "電機" }, ["din6 gon1"] = { "電杆", "電桿" }, ["din6 haa6"] = { "奠下", "殿下" }, ["din6 hei3"] = { "電器", "電氣" }, ["din6 jau4"] = { "電油", "電郵", "靛油"}, ["din6 seon3"] = { "電信", "電訊" }, ["din6 sin3"] = { "電扇", "電線" }, ["din6 sin3 gon1"] = { "電線杆", "電線桿" }, ["ding1 dong1"] = { "丁當", "叮噹" }, ["ding2 fung1"] = { "頂峰", "頂風" }, ["dip6 hyut3"] = { "啑血", "喋血" }, ["doi6 gaa3"] = { "代價", "代駕" }, ["dong2 jyu5"] = { "擋雨", "黨羽" }, ["dou2 zeoi6"] = { "倒敘", "島嶼" }, ["dou6 ci4"] = { "悼詞", "悼辭" }, ["dou6 gwo3"] = { "度過", "渡過" }, ["dou6 maa5"] = { "杜馬", "盜馬" }, ["dou6 si1"] = { "導師", "杜詩" }, ["duk6 mat6"] = { "毒物", "讀物" }, ["duk6 sou3"] = { "毒素", "讀數" }, ["dung1 gaa1"] = { "東加", "東家" }, ["dung1 ging1"] = { "東京", "東經" }, ["dung1 gwaa1"] = { "冬瓜", "東瓜" }, ["dyun2 seon3"] = { "短信", "短訊" }, ["dyun6 jin4"] = { "斷然", "斷言" }, ["dyun6 zi2"] = { "段子", "緞子" }, ["faa1 gyun2"] = { "花卷", "花捲" }, ["faa1 sik1"] = { "花式", "花色" }, ["faa1 ziu1"] = { "花招", "花椒" }, ["faa3 zong1"] = { "化妝", "化裝" }, ["faa3 zong1 sat1"] = { "化妝室", "化裝室" }, ["faan1 gung1"] = { "翻供", "返工" }, ["faan1 jyut6"] = { "翻越", "翻閱" }, ["faan1 san1"] = { "翻新", "翻身" }, ["faan2 gwok3"] = { "反國", "返國" }, ["faan4 jan4"] = { "凡人", "煩人" }, ["faan4 si6"] = { "凡事", "凡是", "繁峙" }, ["faan4 so2"] = { "煩瑣", "繁瑣" }, ["faan6 lai6"] = { "凡例", "範例" }, ["faan6 man4"] = { "梵文", "範文" }, ["faat3 coeng4"] = { "法場", "發祥" }, ["faat3 fan5"] = { "發奮", "發憤" }, ["faat3 gaa1"] = { "法家", "發家" }, ["faat3 jan4"] = { "法人", "發人" }, ["faat3 jan4 sam1 sing2"] = { "發人深省", "發人深醒" }, ["faat3 ji1"] = { "法衣", "法醫" }, ["faat3 ling6"] = { "法令", "發愣" }, ["faat3 long4"] = { "法郎", "琺瑯", "髮廊" }, ["faat3 ming4"] = { "法名", "發明" }, ["faat3 zi2"] = { "法子", "髮指" }, ["fai1 gwan1"] = { "揮軍", "麾軍" }, ["fai3 hei3"] = { "廢棄", "廢氣" }, ["fai3 zi2"] = { "廢止", "廢紙" }, ["fan1 bin6"] = { "分辨", "分辯" }, ["fan1 caa3"] = { "分岔", "分杈" }, ["fan1 juk6"] = { "燻肉", "獯鬻" }, ["fan1 kei4"] = { "分期", "分歧", "婚期" }, ["fan1 pui3"] = { "分配", "婚配" }, ["fan1 wai4"] = { "分為", "氛圍" }, ["fan1 zi1"] = { "分之", "分支", "分枝" }, ["fan2 min6"] = { "粉面", "粉麵" }, ["fan2 sik1"] = { "粉色", "粉飾" }, ["fan5 nou6"] = { "奮怒", "憤怒" }, ["fan6 zi2"] = { "份子", "分子" }, ["fat6 mun4"] = { "佛門", "閥門" }, ["fei1 faat3"] = { "非法", "飛髮" }, ["fei1 jyu2"] = { "飛魚", "鯡魚" },--fei1 jyu4-2 ["fei1 leot6 ban1"] = { "菲律賓", "菲律濱" }, ["fo2 bun6"] = { "伙伴", "火伴" }, ["fo2 gei3"] = { "夥計", "夥記" }, ["fo2 hei3"] = { "火器", "火氣" }, ["fong1 caak3"] = { "方冊", "方策" }, ["fong1 jin4"] = { "方言", "謊言" }, ["fong1 jyun4"] = { "方圓", "荒原" }, ["fong1 tong4"] = { "方糖", "荒唐" }, ["fong2 fat1"] = { "彷彿", "恍惚" }, ["fong2 zik1"] = { "紡織", "紡績" }, ["fong3 hei3"] = { "放棄", "放氣" }, ["fong4 zi2"] = { "房子", "防止" }, ["fu1 fu1"] = { "呼呼", "夫夫" }, ["fu2 hau2"] = { "苦口", "虎口" }, ["fu2 joeng5"] = { "俯仰", "撫養" }, ["fu2 lin6"] = { "苦楝", "苦練" }, ["fu3 jip6"] = { "副業", "庫頁" }, ["fu3 taai3"] = { "富態", "富泰" }, ["fu4 ci4"] = { "扶持", "鳧茈" }, ["fu6 joek3"] = { "負約", "赴約" }, ["fu6 neoi2"] = { "父女", "腐女" }, ["fu6 wui6"] = { "傅會", "附會" }, ["fu6 zi2"] = { "父子", "附子" }, ["fuk1 dei6"] = { "福地", "腹地" }, ["fuk1 gei1"] = { "覆機", "腹肌" }, ["fuk1 hat6"] = { "複核", "覆核" }, ["fuk1 lei6"] = { "福利", "複利" }, ["fuk1 sing3"] = { "複姓", "覆姓" }, ["fuk1 zaap6"] = { "複習", "複雜" }, ["fuk6 faat3"] = { "伏法", "復發" }, ["fuk6 jyun4"] = { "復原", "復員" }, ["fuk6 si6"] = { "服事", "服侍" }, ["fun1 coeng3"] = { "寬暢", "歡暢" }, ["fun1 sam1"] = { "寬心", "歡心" }, ["fung1 diu6"] = { "瘋掉", "風調" }, ["fung1 dou6"] = { "豐度", "風度" }, ["fung1 fo2"] = { "烽火", "風火" }, ["fung1 hau2"] = { "封口", "風口" }, ["fung1 hau6"] = { "封后", "蜂后" }, ["fung1 jyu5"] = { "豐乳", "風雨" }, ["fung1 jyut6"] = { "風月", "風穴" }, ["fung1 mat6"] = { "蜂蜜", "風物" }, ["fung1 mei5"] = { "豐美", "風靡" }, ["fung1 san4"] = { "封臣", "風神" }, ["fung1 soeng1"] = { "蜂箱", "風箱", "風霜" }, ["fung1 tiu4"] = { "封條", "風調" }, ["fung1 tong4"] = { "楓糖", "蜂糖" }, ["fung1 wan6"] = { "丰韻", "風韻" }, ["fung1 zi1"] = { "豐姿", "風姿" }, ["gaa1 cuk1"] = { "加速", "家畜" }, ["gaa1 dai2"] = { "加底", "家底" }, ["gaa1 faat3"] = { "加法", "家法" }, ["gaa1 gung1"] = { "加工", "家公" }, ["gaa1 min5"] = { "加冕", "嘉勉" }, ["gaa1 naap6"] = { "加納", "迦納" }, ["gaa1 saa1"] = { "加沙", "袈裟" }, ["gaa1 zoeng2"] = { "嘉獎", "家長" }, ["gaa3 lei1"] = { "咖喱", "咖哩" }, ["gaa3 lei1 fan2"] = { "咖喱粉", "咖哩粉" }, ["gaai1 ging2"] = { "佳境", "街景" }, ["gaai2 duk6"] = { "解毒", "解讀" }, ["gaai2 gau3"] = { "解救", "解構" }, ["gaai2 sik1"] = { "解析", "解釋" }, ["gaai3 min2"] = { "介面", "界面" },--gaai3 min6-2 ["gaai3 zi2"] = { "介子", "戒指", "界址" }, ["gaak3 lei4"] = { "隔籬", "隔離" }, ["gaak3 mok2"] = { "膈膜", "隔膜" },--gaak3 mok6-2 ["gaam2 siu2"] = { "減小", "減少" }, ["gaan1 him2"] = { "奸險", "艱險" }, ["gaan2 faa3"] = { "簡化", "鹼化" }, ["gaap3 baan2"] = { "夾板", "甲板" }, ["gaap3 zi2"] = { "夾子", "甲子", "鴿子" }, ["gaau1 doi6"] = { "交代", "交待", "膠袋" }, ["gaau1 jau4"] = { "交遊", "郊遊" }, ["gaau1 zi2"] = { "膠子", "膠紙" }, ["gaau2 wan4"] = { "攪勻", "攪渾" }, ["gaau3 mou5"] = { "教母", "酵母" }, ["gaau3 zing3"] = { "教正", "校正" }, ["gam1 gwat1"] = { "柑橘", "金橘" }, ["gam1 on1 syun1"] = { "甘氨酸", "甘胺酸" }, ["gam1 sik1"] = { "今昔", "金色" }, ["gam1 syu4"] = { "甘薯", "金薯" }, ["gam3 zi2"] = { "禁指", "禁止" }, ["gan1 ceoi4"] = { "根除", "跟隨" }, ["gan2 gan2"] = { "僅僅", "緊緊" }, ["gan6 si6"] = { "近侍", "近視" }, ["gang1 san1"] = { "庚申", "更新" }, ["gap1 cuk1"] = { "急促", "急速" }, ["gau2 gau2"] = { "久久", "赳赳" }, ["gei1 coeng4"] = { "機場", "飢腸" }, ["gei1 gin3"] = { "基建", "肌腱" }, ["gei1 lei5"] = { "機理", "肌理" }, ["gei1 leot2"] = { "幾率", "機率" },--gei1 leot6-2 ["gei1 sou3"] = { "基數", "奇數" }, ["gei1 tai2"] = { "機體", "肌體" }, ["geoi2 dung6"] = { "舉動", "齲洞" }, ["geoi3 dim2"] = { "句點", "據點" }, ["geoi3 zi2"] = { "句子", "鋸子" }, ["geoi6 luk2"] = { "巨鹿", "鉅鹿" },--geoi6 luk6-2 ["geoi6 mou4 baa3"] = { "巨毋霸", "巨無霸" }, ["gik1 faat3"] = { "擊發", "激發" }, ["gik1 fan5"] = { "激奮", "激憤" }, ["gin3 dak1"] = { "建德", "見得" }, ["ging1 fong1"] = { "經方", "驚慌" }, ["ging1 gwai3"] = { "矜貴", "驚悸" }, ["ging1 kei4"] = { "經期", "驚奇" }, ["ging1 sam1"] = { "經心", "驚心" }, ["ging1 sau6"] = { "經受", "經售" }, ["ging2 fong3"] = { "境況", "景況" }, ["ging2 gaai3"] = { "境界", "警戒" }, ["ging2 gun1"] = { "景觀", "警官" }, ["ging2 keoi1"] = { "景區", "警區" }, ["ging2 si6"] = { "警示", "竟是" }, ["ging3 ci4"] = { "敬詞", "敬辭" }, ["git3 sing4"] = { "結成", "結繩" }, ["giu1 hei3"] = { "嬌氣", "驕氣" }, ["go1 sing1"] = { "歌星", "歌聲" }, ["goeng1 wong4"] = { "姜黃", "薑黃" }, ["goeng1 wut6"] = { "羌活", "薑活" }, ["gok3 sik1"] = { "各色", "腳色", "角色" }, ["gon1 faan6"] = { "乾飯", "干犯" }, ["gong1 jiu3"] = { "剛要", "綱要" }, ["gong1 lit6"] = { "剛烈", "肛裂" }, ["gong1 mun4"] = { "江門", "肛門" }, ["gong1 saan1"] = { "岡山", "江山" }, ["gong2 gu2"] = { "港股", "講古" }, ["gong2 toi4"] = { "港臺", "講臺" }, ["gong2 ze2"] = { "港姐", "講者" }, ["gou1 gaa3"] = { "高價", "高架" }, ["gou1 joeng4"] = { "羔羊", "高陽" }, ["gou1 jyun2"] = { "睪丸", "高院" }, ["gou1 loeng4"] = { "膏粱", "高梁", "高樑", "高粱" }, ["gou1 tong4"] = { "高唐", "高堂" }, ["gou2 zi2"] = { "稿子", "稿紙" }, ["gu1 fu6"] = { "姑父", "辜負" }, ["gu2 gaa3"] = { "估價", "股價" }, ["gu2 mou5"] = { "鈷鉧", "鼓舞" }, ["gu2 waak6"] = { "蠱惑", "鼓惑" }, ["gu3 gei6"] = { "故伎", "顧忌" }, ["gu3 gung1"] = { "僱工", "故宮" }, ["gu3 jau5"] = { "固有", "故友" }, ["gu3 jyun4"] = { "僱員", "固原" }, ["gun2 zi2"] = { "管子", "館子" }, ["gun3 zyu3"] = { "灌注", "貫注" }, ["gung1 bou3"] = { "公佈", "公報", "公布" }, ["gung1 dak1"] = { "公德", "功德" }, ["gung1 din6"] = { "供電", "宮殿" }, ["gung1 dou6"] = { "公道", "弓道" }, ["gung1 fan1"] = { "公分", "功勛", "工分" }, ["gung1 fong4"] = { "公房", "攻防" }, ["gung1 fu1"] = { "功夫", "工夫" }, ["gung1 gaau1"] = { "公交", "工交" }, ["gung1 gwaan1"] = { "公關", "攻關" }, ["gung1 haau6"] = { "功效", "工效" }, ["gung1 hak1"] = { "公克", "攻克" }, ["gung1 jau5"] = { "公有", "工友" }, ["gung1 jing4"] = { "公營", "宮刑" }, ["gung1 jing6"] = { "供認", "公認" }, ["gung1 jung6"] = { "供用", "公用", "功用" }, ["gung1 jyu4"] = { "公餘", "工餘" }, ["gung1 kei4"] = { "宮崎", "工期" }, ["gung1 lei5"] = { "公理", "公里" }, ["gung1 lik6"] = { "公曆", "功力", "工力" }, ["gung1 man4"] = { "公文", "公民" }, ["gung1 mou6"] = { "公務", "公墓" }, ["gung1 si1"] = { "公司", "公私" }, ["gung1 si6"] = { "公事", "公示", "工事" }, ["gung1 sing4"] = { "攻城", "恭城", "功成", "宮城"}, ["gung1 soeng1"] = { "工傷", "工商" }, ["gung1 wai4"] = { "宮闈", "恭維" }, ["gung1 wui2"] = { "公會", "工會" },--gung1 wui6-2 ["gung1 zik1"] = { "公積", "公職", "功績" }, ["gung1 zing3"] = { "公正", "公證" }, ["gung3 ban2"] = { "供品", "貢品" }, ["gwaan1 ngoi6"] = { "關外", "關礙" }, ["gwai1 suk1"] = { "歸宿", "龜縮" }, ["gwai2 gai3"] = { "詭計", "鬼計" }, ["gwan1 ji1"] = { "軍衣", "軍醫" }, ["gwan1 lit6"] = { "皸裂", "龜裂" }, ["gwan1 san4"] = { "君臣", "軍神" }, ["gwan1 si6"] = { "軍事", "軍士" }, ["gwat1 gaak3"] = { "骨格", "骨骼" }, ["gwat1 pun4"] = { "骨盆", "骨盤" }, ["gwat1 zi2"] = { "橘子", "骨子" }, ["gwo3 dou6"] = { "過度", "過渡", "過道" }, ["gwo3 lai4"] = { "過來", "過嚟" }, ["gwo3 sai3"] = { "無色", "過世", "過細" }, ["gwok3 dou6"] = { "國度", "國道" }, ["gwok3 gwan1"] = { "國君", "國軍" }, ["gwok3 seoi3"] = { "國稅", "國粹" }, ["gwong1 cuk1"] = { "光束", "光速" }, ["haa1 lo2"] = { "哈囉", "哈羅" },--haa1 lo4-2 ["haa4 gwong1"] = { "狹小", "霞光" }, ["haa6 gaa3"] = { "下嫁", "下架" }, ["haa6 ling6"] = { "下令", "夏令" }, ["haa6 mun4"] = { "下門", "廈門" }, ["haai4 saap6 saap6"] = { "嚡澀澀", "嚡熠熠" }, ["haai4 zi2"] = { "孩子", "鞋子" }, ["haak3 jan4"] = { "嚇人", "客人" }, ["haam4 sau6"] = { "函售", "函授" }, ["haau1 daa2"] = { "拷打", "敲打" }, ["hai6 ci4"] = { "係詞", "系詞" }, ["hak1 fuk6"] = { "克復", "克服" }, ["hang4 jing4"] = { "行刑", "行營" }, ["hang4 saan1"] = { "恆山", "衡山" }, ["hang4 sing1"] = { "恆星", "行星" }, ["hap6 zi2"] = { "合子", "盒子" }, ["hat6 zi2"] = { "核子", "瞎子" }, ["hau4 zi2"] = { "猴子", "瘊子" }, ["hau5 dou6"] = { "厚度", "厚道" }, ["hau5 pok3"] = { "厚朴", "厚樸" }, ["hau6 bou6"] = { "後步", "後部" }, ["hau6 zo6"] = { "后座", "後座" }, ["hei1 jau5"] = { "希有", "稀有" }, ["hei1 kei4"] = { "希奇", "稀奇" }, ["hei1 ling4"] = { "欺凌", "欺陵" }, ["hei2 gaa3"] = { "起價", "起駕" }, ["hei2 gam2"] = { "喜感", "豈敢" }, ["hei2 si6"] = { "喜事", "豈是", "起事" }, ["hei2 sik1"] = { "喜色", "起色" }, ["hei2 zi2"] = { "豈止", "起止" }, ["hei3 loeng6"] = { "器量", "氣量" }, ["hei3 sai3"] = { "棄世", "氣勢" }, ["hei3 sik1"] = { "器識", "憩息", "氣息", "氣色" }, ["hei3 syun4"] = { "氣旋", "汽船" }, ["heoi3 sai3"] = { "去世", "去勢" }, ["him3 san1"] = { "欠伸", "欠身" }, ["hin2 sing3"] = { "顯性", "顯聖" }, ["hing1 faa3"] = { "氫化", "興化" }, ["hip3 ji3"] = { "愜意", "歉意" }, ["ho4 jyun4"] = { "河沿", "河源" }, ["ho4 maa5"] = { "河馬", "荷馬" }, ["hoi1 gung1"] = { "開工", "開弓" }, ["hoi1 lo4"] = { "開羅", "開鑼" }, ["hoi2 ging2"] = { "海景", "海警" }, ["hoi2 gwai1"] = { "海歸", "海龜" }, ["hoi2 joeng4"] = { "海洋", "海陽" }, ["hoi2 jyun4"] = { "海原", "海員" }, ["hok6 haau6"] = { "學效", "學校" }, ["hok6 lik6"] = { "學力", "學歷" }, ["hon4 cam2"] = { "寒傖", "寒磣" }, ["hon4 lau4"] = { "寒流", "韓流" }, ["hon4 syun1"] = { "寒暄", "寒酸" }, ["hong1 fuk6"] = { "匡復", "康復" }, ["hong4 cing4"] = { "航程", "行情" }, ["hong4 fuk6"] = { "降伏", "降服" }, ["hou2 hon3"] = { "好漢", "好看" }, ["hou4 mou4"] = { "毫無", "毫毛" }, ["hung1 bou6"] = { "凶暴", "胸部" }, ["hung1 hei3"] = { "凶器", "空氣", "胸器" }, ["hung1 hong1"] = { "空腔", "胸腔" }, ["hung1 sau2"] = { "兇手", "空手" }, ["hung1 tau4"] = { "空投", "空頭" }, ["hung4 juk6"] = { "紅玉", "紅肉" }, ["hung4 kei4"] = { "紅旗", "雄奇" }, ["hung4 mou4"] = { "紅毛", "鴻毛" }, ["hung4 sam1"] = { "紅心", "雄心" }, ["hung4 tou4"] = { "紅桃", "雄圖" }, ["hung4 zou2"] = { "紅棗", "紅藻" }, ["jam1 duk6"] = { "陰毒", "音讀" }, ["jam1 ging3"] = { "欽敬", "陰莖" }, ["jam1 gung1"] = { "陰公", "陰功" }, ["jam1 lik6"] = { "陰力", "陰曆" }, ["jam1 seon3"] = { "音信", "音訊" }, ["jam4 fu5"] = { "妊婦", "淫婦" }, ["jam4 jyu5"] = { "淫語", "淫雨" }, ["jam4 san1"] = { "壬申", "妊娠" }, ["jan1 jyun4"] = { "因緣", "姻緣" }, ["jan1 si1"] = { "恩師", "恩施" }, ["jan1 sou3"] = { "因數", "因素" }, ["jan1 wai6"] = { "因為", "恩惠" }, ["jan2 tung3"] = { "忍痛", "隱痛" }, ["jan4 jyun4"] = { "人員", "人緣" }, ["jan4 man4"] = { "人文", "人民" }, ["jan4 sai3"] = { "人世", "人勢" }, ["jan4 sam1"] = { "人參", "人心", "仁心" }, ["jan4 san4"] = { "人神", "人臣" }, ["jan4 si6"] = { "人事", "人士", "人氏" }, ["jan5 dou6"] = { "引導", "引渡" }, ["jap6 juk6"] = { "入浴", "入獄", "入肉" }, ["jap6 lai4"] = { "入來", "入嚟" }, ["jap6 lei4"] = { "入來", "入嚟" }, ["jap6 wai4"] = { "入圍", "入闈" }, ["jap6 zik6"] = { "入席", "入籍" }, ["jat1 bou6"] = { "一步", "一部" }, ["jat1 dou6"] = { "一度", "一道" }, ["jat1 jyun4"] = { "一元", "一員" }, ["jat1 san1"] = { "一新", "一身" }, ["jat6 ceot1"] = { "日出", "溢出" }, ["jat6 jyun4"] = { "日元", "日圓" }, ["jau1 ling4"] = { "丘陵", "幽靈" }, ["jau1 ngaa5"] = { "優雅", "幽雅" }, ["jau1 sam1"] = { "幽深", "憂心" }, ["jau1 wui6"] = { "休會", "幽會" }, ["jau4 gei3"] = { "遊記", "郵寄" }, ["jau4 hei3"] = { "油氣", "遊憩", "遊戲" }, ["jau4 jin4"] = { "柔然", "油然", "蚰蜒" }, ["jau4 jyun5"] = { "悠遠", "柔軟" }, ["jau4 leon4"] = { "油輪", "遊輪", "郵輪" }, ["jau4 mak6"] = { "油墨", "莜麥", "油麥" }, ["jau4 syun4"] = { "遊船", "郵船" }, ["jau4 zi1"] = { "油脂", "郵資" }, ["jau4 zi1"] = { "油脂", "郵資" }, ["jau4 zik1"] = { "油漬", "油跡" }, ["jau5 cing4"] = { "友情", "有情" }, ["jau5 jan4"] = { "友人", "有人", "誘人" }, ["jau5 jing4"] = { "有型", "有形" }, ["jau5 jyu4"] = { "有如", "有餘" }, ["jau5 paai4"] = { "有排", "有牌" }, ["jau5 si4"] = { "有時", "酉時" }, ["jau6 sau2"] = { "右手", "右首" }, ["jau6 sau2"] = { "右手", "右首" }, ["ji3 zi2"] = { "意旨", "懿旨" }, ["ji4 biu2"] = { "儀表", "姨表" }, ["ji4 gaa1"] = { "宜家", "而家" }, ["ji4 geoi1"] = { "宜居", "移居" }, ["ji4 hei3"] = { "儀器", "兒戲", "彝器" }, ["ji4 jan4"] = { "夷人", "宜人", "怡人" }, ["ji4 sik1"] = { "儀式", "兒媳" }, ["ji5 hau6"] = { "以後", "爾後" }, ["ji5 jyun4"] = { "洱源", "議員" }, ["ji5 taai3"] = { "以太", "擬態" }, ["ji5 wong5"] = { "以往", "已往" }, ["ji5 zi3"] = { "以至", "以致" }, ["ji5 zyu1"] = { "爾朱", "耳珠" }, ["ji6 hing1"] = { "二兄", "義兄" }, ["ji6 sam1"] = { "二心", "異心" }, ["jik1 joeng4"] = { "抑揚", "益陽" }, ["jim1 zim1"] = { "㤿憸", "腌臢" }, ["jim4 gan2"] = { "嚴緊", "嚴謹" }, ["jim4 wong4"] = { "炎黃", "閻王" }, ["jim4 zing3"] = { "嚴正", "炎症" }, ["jim6 si1"] = { "豔詩", "驗屍" }, ["jin1 zi1"] = { "焉知", "胭脂" }, ["jin2 bin3"] = { "演變", "衍變" }, ["jin2 faa3"] = { "演化", "衍化" }, ["jin4 ci4"] = { "延遲", "言詞" }, ["jin4 hau6"] = { "延後", "然後" }, ["jin4 wai6"] = { "賢惠", "賢慧" }, ["jin5 bin3"] = { "演變", "衍變" }, ["jin5 faa3"] = { "演化", "衍化" }, ["jin6 gam1"] = { "現今", "現金" }, ["jin6 zoi6"] = { "現在", "見在" }, ["jing1 bong6"] = { "英磅", "英鎊" }, ["jing1 daam3"] = { "英擔", "英石" }, ["jing1 dak1"] = { "應得", "英德" }, ["jing1 ming4"] = { "英名", "英明" }, ["jing1 mou5"] = { "英武", "鸚鵡" }, ["jing2 zoeng6"] = { "影像", "映像" }, ["jing4 fo2"] = { "營火", "螢火" }, ["jing4 fong4"] = { "刑房", "營房" }, ["jing4 gwong1"] = { "熒光", "螢光" }, ["jing4 lei6"] = { "營利", "盈利", "贏利" }, ["jing4 mok6"] = { "熒幕", "螢幕" }, ["jing4 san4"] = { "凝神", "迎神" }, ["jing4 si1"] = { "凝思", "營私" }, ["jing4 si6"] = { "凝視", "刑事" }, ["jing4 zoeng6"] = { "形像", "形象" }, ["jit6 zung1"] = { "熱中", "熱衷" }, ["jiu1 mo1"] = { "妖魔", "幺麼" }, ["joek3 mok2"] = { "約摸", "約莫" },--joek3 mok6-2 ["joeng4 hei3"] = { "揚棄", "洋氣" }, ["joeng4 jin4"] = { "揚言", "佯言" }, ["joeng4 kam4"] = { "揚琴", "洋琴" }, ["joeng4 ming4"] = { "揚名", "陽明" }, ["joeng4 tou2"] = { "楊桃", "洋桃", "羊桃", "陽桃" },--joeng4 tou4-2 ["joeng4 zong1"] = { "佯裝", "洋裝" }, ["juk6 sat1"] = { "浴室", "獄室" }, ["jung1 jung1"] = { "嗡嗡", "雝雝" }, ["jung4 faa3"] = { "溶化", "熔化", "融化" }, ["jung4 gaai2"] = { "溶解", "融解" }, ["jung4 hap6"] = { "融合", "融洽" }, ["jung4 jan4"] = { "傭人", "庸人", "用人" }, ["jung4 jung4"] = { "熔融", "融融" }, ["jung4 sing4"] = { "榕城", "融城" }, ["jung4 wui6"] = { "融匯", "融會" }, ["jung4 zi1"] = { "容姿", "融資" }, ["jyu1 hyut3"] = { "淤血", "瘀血" }, ["jyu4 ci2"] = { "如此", "餘矢" }, ["jyu4 ci3"] = { "魚刺", "魚翅" }, ["jyu4 faai3"] = { "愉快", "魚塊" }, ["jyu4 gaa1"] = { "儒家", "漁家", "瑜伽" }, ["jyu4 haa6"] = { "如下", "餘暇" }, ["jyu4 jan4"] = { "愚人", "漁人" }, ["jyu4 jip6"] = { "漁業", "餘孽" }, ["jyu4 joeng4"] = { "揄揚", "漁陽" }, ["jyu4 jyut6"] = { "愉悅", "逾越" }, ["jyu4 kei4"] = { "如期", "逾期", "魚鰭" }, ["jyu4 lam4"] = { "儒林", "榆林" }, ["jyu4 lei6"] = { "漁利", "餘利" }, ["jyu4 man4"] = { "愚民", "漁民" }, ["jyu4 mong5"] = { "愚妄", "漁網", "魚網" }, ["jyu4 piu1"] = { "漁漂", "魚漂" }, ["jyu4 sou3"] = { "如數", "餘數" }, ["jyu5 kei4"] = { "與其", "雨期" }, ["jyu6 gin3"] = { "遇見", "預見" }, ["jyu6 jin4"] = { "寓言", "預言" }, ["jyu6 si6"] = { "遇事", "預示" }, ["jyu6 zaap6"] = { "遇襲", "預習" }, ["jyu6 zi1"] = { "預支", "預知" }, ["jyun2 jin4"] = { "婉言", "宛然" }, ["jyun4 bat1"] = { "完畢", "鉛筆" }, ["jyun4 cyun4"] = { "完全", "源泉" }, ["jyun4 fan1"] = { "元勛", "完婚" }, ["jyun4 fan6"] = { "緣份", "緣分" }, ["jyun4 gung1"] = { "完工", "員工" }, ["jyun4 hou6"] = { "元號", "圓號" }, ["jyun4 jan4"] = { "完人", "猿人" }, ["jyun4 jau4"] = { "原油", "緣由" }, ["jyun4 jing4"] = { "原型", "原形", "圓形" }, ["jyun4 jyun4"] = { "圓圓", "源源" }, ["jyun4 kuk1"] = { "元曲", "原曲" }, ["jyun4 luk1 luk1"] = { "圓碌碌", "圓轆轆" }, ["jyun4 mun5"] = { "圓滿", "完滿" }, ["jyun4 si6"] = { "原是", "完事" }, ["jyun4 syu1"] = { "原書", "爰書" }, ["jyun4 zi2"] = { "原址", "原子" }, ["jyun4 zi6"] = { "源自", "鉛字" }, ["jyun4 zik6"] = { "原籍", "鉛直" }, ["jyun5 ngok6"] = { "軟顎", "軟齶" }, ["jyun5 ngok6 jam1"] = { "軟顎音", "軟齶音" }, ["jyut6 dung1"] = { "粵東", "越冬" }, ["jyut6 gwai3"] = { "月季", "月桂" }, ["jyut6 kap1"] = { "月給", "越級" }, ["jyut6 kek6"] = { "粵劇", "越劇" }, ["jyut6 lik6"] = { "月曆", "閱歷" }, ["jyut6 sik1"] = { "月息", "月色" }, ["jyut6 zi1"] = { "月支", "月氏" }, ["kai2 si6"] = { "啟事", "啟示" }, ["kap1 ceoi2"] = { "吸取", "汲取" }, ["kap1 jyu5"] = { "給予", "給與" }, ["kap1 lik6"] = { "吸力", "給力" }, ["kau3 lau4"] = { "佝僂", "扣留" }, ["kau4 ji1"] = { "求醫", "球衣" }, ["kei4 ci3"] = { "其次", "旗幟" }, ["kei4 gaan1"] = { "其間", "期間" }, ["kei4 ji6"] = { "奇異", "歧異" }, ["kei4 kau4"] = { "期求", "祈求" }, ["kei4 mong6"] = { "期望", "祈望" }, ["kei4 sau2"] = { "旗手", "棋手" }, ["kei4 si6"] = { "棋士", "歧視" }, ["kei4 zi2"] = { "旗子", "棋子" }, ["keoi1 ceoi4"] = { "祛除", "驅除" }, ["keoi1 lau4"] = { "佝僂", "拘留" }, ["king4 king4"] = { "惸惸", "煢煢" }, ["koeng4 dou6"] = { "強度", "強盜" }, ["kong3 hon5"] = { "亢旱", "抗旱" }, ["kui2 tou4"] = { "潰逃", "繪圖" }, ["kyun4 seot6"] = { "拳術", "權術" }, ["kyut3 coi3"] = { "決賽", "蕨菜" }, ["kyut3 hau2"] = { "決口", "缺口" }, ["laang5 min6"] = { "冷面", "冷麵" }, ["laang5 zin3"] = { "冷戰", "冷箭" }, ["laap6 zuk1"] = { "立足", "蠟燭" }, ["lai6 hang4"] = { "例行", "厲行" }, ["lai6 hoi6"] = { "利害", "厲害" }, ["lam4 coeng4"] = { "林場", "臨場" }, ["lam4 hoi2"] = { "林海", "臨海" }, ["lau4 cing4"] = { "流程", "留情" }, ["lau4 haa6"] = { "樓下", "流下", "留下" }, ["lau4 jin4"] = { "流言", "留言" }, ["lau4 lei4"] = { "流離", "琉璃" }, ["lau4 lin4"] = { "榴槤", "流連" }, ["lau4 ming4"] = { "流明", "留名" }, ["lau4 mong4"] = { "流亡", "流氓" }, ["lau4 sam1"] = { "琉森", "留心" }, ["lau4 zi2"] = { "瘤子", "蔞子" }, ["lau5 jam1"] = { "柳蔭", "柳陰" }, ["lei4 zi2"] = { "梨子", "離子" }, ["lei5 joek3"] = { "履約", "里約" }, ["lei6 ngaa5 dak1"] = { "利雅得", "利雅德" }, ["leoi4 gung1"] = { "雷公", "驢公" }, ["leoi4 kam4"] = { "擂琴", "雷琴" }, ["leoi4 leoi4"] = { "累累", "纍纍" }, ["leoi4 se6"] = { "鐳射", "雷射" }, ["leoi4 sit3"] = { "縲絏", "纍紲" }, ["leoi5 bin6"] = { "呂便", "裡便" }, ["leoi6 zeoi6"] = { "累墜", "累贅" }, ["leon4 lei5"] = { "倫理", "鄰里" }, ["leon6 sik1"] = { "吝嗇", "吝惜" }, ["li1 li1 lo4 lo4"] = { "哩哩囉囉", "哩哩羅羅" }, ["lik6 gaai3"] = { "歷屆", "力戒" }, ["lik6 zin3"] = { "力戰", "力薦" }, ["lim4 zing3"] = { "廉政", "廉正" }, ["lin4 lin4"] = { "漣漣", "連連" }, ["lin4 pin1"] = { "連篇", "連翩" }, ["lin4 zi2"] = { "蓮子", "鏈子" }, ["lin4 zuk6"] = { "連濁", "連續" }, ["ling4 cam2"] = { "陵寢", "靈寢" }, ["ling4 lyun6"] = { "凌亂", "零亂" }, ["ling4 wan4"] = { "凌雲", "靈魂" }, ["lip6 gau2"] = { "獵狗", "鬣狗" }, ["liu4 jyun4"] = { "燎原", "遼源" }, ["liu4 liu4"] = { "寥寥", "聊聊", "遼遼" }, ["lo1 pet1"] = { "囉噼", "籮噼" }, ["lo4 maa5"] = { "羅馬", "騾馬" }, ["lo4 mou5"] = { "羅姆", "螺母" }, ["lo4 si1"] = { "羅斯", "螺絲", "螺螄" }, ["lo4 si1 fan2"] = { "螺絲粉", "螺螄粉" }, ["loek6 gwo3"] = { "掠過", "略過" }, ["loeng6 zi2"] = { "亮子", "量子" }, ["loi4 sai3"] = { "來世", "來勢" }, ["lok6 bok6"] = { "落泊", "落雹" }, ["lok6 maa5"] = { "落馬", "駱馬" }, ["lok6 mok6"] = { "落寞", "落幕" }, ["long6 dong6"] = { "浪蕩", "莨菪" }, ["lou4 zi2"] = { "爐子", "驢子" }, ["lou5 faa3"] = { "老化", "鹵化" }, ["lou5 go1"] = { "老哥", "老歌" }, ["lou5 lou5"] = { "姥姥", "老老" }, ["lou5 seoi2"] = { "滷水", "鹵水" }, ["lou5 si6"] = { "老是", "老視" }, ["lou6 min6"] = { "路面", "露面" }, ["luk1 luk1"] = { "碌碌", "轆轆" }, ["luk6 dei6"] = { "綠地", "陸地" }, ["luk6 dou2"] = { "綠島", "鹿島", "鹿嶋" }, ["luk6 lik6"] = { "勠力", "戮力" }, ["lung4 tau4"] = { "籠頭", "龍頭" }, ["lung4 zau1"] = { "龍州", "龍舟" }, ["lung4 zi2"] = { "籠子", "聾子" }, ["m4 zeon2"] = { "唔准", "唔準" }, ["maa4 fung1 beng6"] = { "痲瘋病", "麻風病" }, ["maa4 zoeng3"] = { "麻將", "麻醬" }, ["maa5 ji5 taa1"] = { "馬爾他", "馬耳他" }, ["maa5 ji5 taa1 jan4"] = { "馬爾他人", "馬耳他人" }, ["maa5 lei6"] = { "瑪莉", "馬利" }, ["maa5 lo4"] = { "馬鑼", "馬騾" }, ["maa5 ngaa5"] = { "瑪雅", "馬雅" }, ["maa5 tau4"] = { "碼頭", "馬頭" }, ["maan6 jau4"] = { "漫游", "漫遊" }, ["maan6 jung6"] = { "慢用", "萬用" }, ["maan6 maa6"] = { "漫罵", "謾罵" }, ["maan6 sing3"] = { "慢性", "萬姓" }, ["maan6 zoeng6"] = { "萬丈", "萬象" }, ["maang5 zoeng3"] = { "猛將", "猛漲" }, ["mak6 jin4"] = { "驀然", "默然" }, ["mak6 mak6"] = { "脈脈", "默默" }, ["mak6 zi2"] = { "麥子", "墨子" }, ["man4 duk6"] = { "文牘", "文讀" }, ["man4 faat3"] = { "文法", "民法" }, ["man4 fo1"] = { "文科", "民科" }, ["man4 fong4"] = { "民房", "民防" }, ["man4 gaak3"] = { "文革", "民革" }, ["man4 lei5"] = { "文理", "紋理" }, ["man4 loi4"] = { "文萊", "汶萊" }, ["man4 san1"] = { "文身", "紋身" }, ["man4 si6"] = { "文士", "民事" }, ["man4 syun2"] = { "文選", "民選" }, ["man4 zoeng1"] = { "文章", "紋章" }, ["man4 zuk6"] = { "民俗", "民族" }, ["man4 zuk6 hok6"] = { "民俗學", "民族學" }, ["mat6 fung1"] = { "密封", "蜜蜂" }, ["mat6 gin2"] = { "密件", "物件" },--mat6 gin6-2 ["mau4 si6"] = { "謀事", "謀士" }, ["mei4 ci4"] = { "微詞", "微辭" }, ["mei4 ngaan5"] = { "媚眼", "眉眼" }, ["mei5 jyun4"] = { "美元", "美圓" }, ["mei5 mei5"] = { "娓娓", "靡靡" }, ["min5 jik6"] = { "免役", "免疫" }, ["min6 gan1"] = { "面巾", "麵筋" }, ["min6 pei4"] = { "面皮", "麵皮" }, ["min6 si5"] = { "面市", "面試" }, ["ming4 ci3"] = { "名刺", "名次" }, ["ming4 cing1"] = { "名稱", "明清" }, ["ming4 giu3"] = { "名叫", "鳴叫" }, ["ming4 jin4"] = { "名言", "明言" }, ["ming4 jyu6"] = { "名譽", "明喻" }, ["ming4 man4"] = { "明文", "銘文" }, ["ming4 muk6"] = { "明目", "瞑目" }, ["ming4 sing1"] = { "名聲", "明星" }, ["ming4 zi6"] = { "名字", "明治" }, ["miu6 jyu5"] = { "妙語", "廟宇" }, ["mok6 ming4 kei4 miu6"] = { "莫名其妙", "莫明其妙" }, ["mong5 kau4"] = { "妄求", "網球" }, ["mou4 baan2"] = { "模板", "模版" }, ["mou4 bat1"] = { "毛筆", "無不" }, ["mou4 bun2"] = { "模本", "摹本" }, ["mou4 cou3"] = { "毛糙", "毛躁" }, ["mou4 cung4"] = { "毛蟲", "無從" }, ["mou4 faat3"] = { "毛髮", "無法" }, ["mou4 ji4"] = { "模擬", "無疑" }, ["mou4 jing4"] = { "模型", "模形", "無形" }, ["mou4 laa1 laa1"] = { "無啦啦", "無喇喇" }, ["mou4 ming4"] = { "無名", "無明" }, ["mou4 san4"] = { "巫神", "無神" }, ["mou4 seoi1"] = { "毋須", "無需", "無須" }, ["mou4 si1"] = { "巫師", "無私" }, ["mou4 si6"] = { "無事", "無視" }, ["mou4 sik1"] = { "模式", "無息", "無色" }, ["mou4 sin3"] = { "毛線", "無線" }, ["mou4 soeng4"] = { "無償", "無常" }, ["mou4 zi2"] = { "模子", "毛子" }, ["mou5 dou6"] = { "武道", "舞蹈" }, ["mou5 jyu5"] = { "母乳", "母語" }, ["mou5 si6"] = { "冇事", "武士", "獅虎" }, ["mou5 zi2"] = { "拇指", "母子" }, ["mou6 hei3"] = { "暮氣", "霧氣" }, ["mou6 jyun4"] = { "墓園", "戊烷" }, ["mui4 coi3"] = { "梅菜", "霉菜" }, ["mui4 hei3"] = { "煤氣", "霉氣" }, ["muk6 baan2"] = { "木板", "木版" }, ["mung4 lung4"] = { "朦朧", "矇矓" }, ["mut3 saat3"] = { "抹殺", "抹煞" }, ["mut6 hung1"] = { "抹胸", "沒空" }, ["mut6 sai3"] = { "末世", "沒世" }, ["naa5 ci3"] = { "哪次", "那次" }, ["naa5 go3"] = { "哪個", "那個" }, ["naa5 ji4"] = { "哪兒", "那兒" }, ["naa5 joeng6"] = { "哪樣", "那樣" }, ["naa5 leoi5"] = { "哪裡", "那裡" }, ["naa5 se1"] = { "哪些", "那些" }, ["naam4 coeng1"] = { "南昌", "男娼" }, ["naam4 fong1"] = { "南方", "男方" }, ["naam4 jan4"] = { "南人", "男人" }, ["naam4 joeng4"] = { "南洋", "南陽" }, ["naam4 naam4"] = { "喃喃", "囡囡" }, ["naam4 sik1"] = { "男式", "男色" }, ["naan4 dou6"] = { "難度", "難道" }, ["naap6 seoi3"] = { "納稅", "納粹" }, ["nei5 hou2"] = { "你好", "您好" }, ["nei5 mun4"] = { "你們", "妳們", "您們", "祢們" }, ["neoi5 sik1"] = { "女式", "女色" }, ["neoi5 wong4"] = { "女王", "女皇" }, ["neoi4 neoi2"] = { "囡囡", "女女" },--neoi5-4 neoi5-2 ["ng5 baa3"] = { "五伯", "五霸" }, ["ngaa4 baan1"] = { "牙斑", "牙班" }, ["ngaai4 ngon6"] = { "崖岸", "涯岸" }, ["ngaam4 sek6"] = { "岩石", "巖石" }, ["ngaan5 lim4"] = { "眼瞼", "眼簾" }, ["ngai6 gei6"] = { "藝伎", "藝妓" }, ["ngan4 jyun4"] = { "銀元", "銀圓" }, ["ngan4 zi2"] = { "銀子", "銀紙" }, ["ngo4 jyu5"] = { "俄語", "俄雨" }, ["ngoi6 si6"] = { "外事", "礙事" }, ["ngoi6 soeng1"] = { "外傷", "外商" }, ["nim1 tou2"] = { "粘土", "黏土" }, ["nim4 tip3"] = { "粘貼", "黏貼" }, ["nim4 zoek6"] = { "粘著", "黏著" }, ["nin4 zung1"] = { "年中", "年終" }, ["noi6 sam1"] = { "內心", "耐心" }, ["nou5 lik6"] = { "努力", "腦力" }, ["nung4 mou6"] = { "濃霧", "農務" }, ["oi1 hou4"] = { "哀嚎", "哀號" }, ["oi1 ming4"] = { "哀憐", "哀鳴" }, ["oi3 sek3"] = { "愛惜", "愛錫" }, ["oi3 zi1"] = { "愛滋", "愛知" }, ["ok3 sam1"] = { "噁心", "惡心" }, ["on1 gei1"] = { "氨基", "胺基" }, ["on1 gei1 jyut3 syun1"] = { "氨基乙酸", "胺基乙酸" }, ["on1 gei1 jyut6 syun1"] = { "氨基乙酸", "胺基乙酸" }, ["on1 gei1 syun1"] = { "氨基酸", "胺基酸" }, ["on1 hong1"] = { "安康", "鮟鱇" }, ["on1 saan1"] = { "安山", "鞍山" }, ["on1 sik1"] = { "安息", "安適" }, ["on1 syun1"] = { "氨酸", "胺酸" }, ["on1 zing6"] = { "安靖", "安靜" }, ["on3 jyu5"] = { "按語", "案語" }, ["on3 lai6"] = { "按例", "案例" }, ["ou3 mun2 jyun4"] = { "澳門元", "澳門圓" },--ou3 mun4-2 jyun4 ["ou3 si1 ting1"] = { "奧斯丁", "奧斯汀" }, ["paai4 hei3"] = { "排戲", "排氣" }, ["paak3 si1"] = { "佩斯", "柏斯", "珀斯" }, ["paan1 wun4"] = { "攀援", "攀緣" }, ["paau3 zai3"] = { "泡製", "炮製" }, ["pan4 dou6"] = { "貧道", "頻道" }, ["pan4 jau4"] = { "貧油", "貧鈾" }, ["pei4 gaap3"] = { "皮夾", "皮革" }, ["pei4 paa4"] = { "枇杷", "琵琶" }, ["pin1 fuk1"] = { "篇幅", "蝙蝠" }, ["pin1 muk6"] = { "篇目", "編目" }, ["pin1 pin1"] = { "偏偏", "翩翩" }, ["pin1 si1"] = { "偏師", "偏私" }, ["pin1 taan2"] = { "偏癱", "偏袒" }, ["pin1 zai3"] = { "編制", "編製" }, ["pin3 dyun6"] = { "片斷", "片段" }, ["ping4 ding6"] = { "平定", "評定" }, ["ping4 fan1"] = { "平分", "評分" }, ["ping4 gaa3"] = { "平價", "評價" }, ["ping4 hang4"] = { "平行", "平衡" }, ["ping4 kek6"] = { "平劇", "評劇" }, ["ping4 man4"] = { "平民", "駢文" }, ["piu1 fat1"] = { "飄忽", "飄拂" }, ["piu1 fau4"] = { "漂浮", "飄浮" }, ["pui3 gok3"] = { "配腳", "配角" }, ["pui4 zeoi6"] = { "賠罪", "陪罪" }, ["saa1 laai1"] = { "沙拉", "莎拉" }, ["saa1 lung4"] = { "沙龍", "紗籠" }, ["saa1 zau1"] = { "沙州", "沙洲" }, ["saa1 zi2"] = { "沙子", "砂紙" }, ["saa3 de1"] = { "沙嗲", "沙爹" },--saa1-3 de1 ["saam1 wai4"] = { "三圍", "三維" }, ["saan1 cyun1"] = { "山川", "山村" }, ["saan1 fung1"] = { "山峰", "山風" }, ["saan1 joeng4"] = { "山羊", "山陽" }, ["saan1 wu4 ziu1"] = { "山胡椒", "珊瑚礁" }, ["saang1 juk6"] = { "生肉", "生育" }, ["saat3 hei3"] = { "撒氣", "殺氣" }, ["saat3 naa5"] = { "剎那", "薩那" }, ["saat3 sau2"] = { "撒手", "殺手" }, ["sai1 ging1"] = { "西京", "西經" }, ["sai1 ngok6"] = { "西嶽", "西樂", "西鄂" }, ["sai1 sai1"] = { "栖栖", "西西" }, ["sai1 zeon3"] = { "西晉", "西進" }, ["sai1 zi2"] = { "篩子", "西紙" }, ["sai2 cin2"] = { "洗錢", "使錢" }, ["sai3 zuk6"] = { "世俗", "世族" }, ["sam1 cing4"] = { "心情", "深情" }, ["sam1 coeng4"] = { "心腸", "深長" }, ["sam1 gaang1"] = { "深更", "深耕" }, ["sam1 gei1"] = { "心機", "心肌" }, ["sam1 ji1"] = { "心衣", "深衣" }, ["sam1 ji4"] = { "心儀", "心疑" }, ["sam1 jim4"] = { "森嚴", "森蚺" }, ["sam1 jyun5"] = { "心軟", "深遠" }, ["sam1 ngoi3"] = { "心愛", "深愛" }, ["sam1 seoi2"] = { "心水", "深水" }, ["sam1 seoi5"] = { "心緒", "心髓" }, ["sam1 si1"] = { "心思", "深思" }, ["sam1 sing2"] = { "深省", "深醒" }, ["sam1 zi3"] = { "心志", "心智" }, ["san1 baan2"] = { "身板", "鋅版" }, ["san1 bou3"] = { "申報", "辛布" }, ["san1 ciu4"] = { "新朝", "新潮" }, ["san1 coeng4"] = { "伸長", "身長" }, ["san1 fan2"] = { "身份", "身分" },--san1 fan6-2 ["san1 gaau3"] = { "新教", "身教" }, ["san1 gong2"] = { "伸港", "新港" }, ["san1 geoi1"] = { "故居", "新居" }, ["san1 jing4"] = { "新型", "身形" }, ["san1 kei4"] = { "新奇", "辛奇" }, ["san1 keoi1"] = { "新區", "身軀" }, ["san1 man4"] = { "新聞", "申文" }, ["san1 sau2"] = { "新手", "身手" }, ["san1 syu1"] = { "新書", "神荼" }, ["san4 gwong1"] = { "晨光", "辰光" }, ["san4 hei3"] = { "神器", "神氣" }, ["san4 kei4"] = { "神奇", "神祇" }, ["san4 kuk1"] = { "神曲", "神麴" }, ["san4 saa1"] = { "神沙", "辰砂" }, ["san4 zi3"] = { "神志", "神智" }, ["sang1 sik1"] = { "生息", "生色" }, ["sap1 nap6 nap6"] = { "濕𣲷𣲷", "濕納納" }, ["sat1 diu6"] = { "失掉", "失調" }, ["sat1 sau2"] = { "失守", "失手" }, ["sat6 si6"] = { "實事", "實是" }, ["sau1 fuk6"] = { "修復", "收復", "收服" }, ["sau1 joeng5"] = { "修養", "收養" }, ["sau1 zaap6"] = { "收集", "蒐集" }, ["sau1 zing3"] = { "修正", "蒐證" }, ["sau2 faat3"] = { "守法", "手法" }, ["sau2 gung1"] = { "守宮", "手工", "首功" }, ["sau2 jip6"] = { "守業", "首頁" }, ["sau2 sai3"] = { "守勢", "手勢" }, ["sau2 seon3"] = { "守信", "手信" }, ["sau2 soeng3"] = { "手相", "首相" }, ["sau2 zi2"] = { "手指", "手紙" }, ["sau2 zoeng2"] = { "手掌", "首長" }, ["sau2 zuk6"] = { "手續", "手鐲" }, ["sau3 juk6"] = { "獸慾", "瘦肉" }, ["sau6 fo3"] = { "售貨", "授課" }, ["sau6 jyu5"] = { "授乳", "授予" }, ["sau6 kyun4"] = { "受權", "授權" }, ["sau6 ming6"] = { "壽命", "授命" }, ["sau6 zoeng2"] = { "受獎", "授獎" }, ["se3 lei6"] = { "猞猁", "舍利" }, ["se3 zong1"] = { "卸妝", "卸裝" }, ["sek6 min4"] = { "石棉", "石綿" }, ["sek6 zoeng6"] = { "石像", "石匠" }, ["seoi2 dou6"] = { "水稻", "水道" }, ["seoi2 hei3"] = { "水氣", "水汽" }, ["seoi2 paau3"] = { "水泡", "水炮", "水疱" }, ["seoi2 ping4"] = { "水平", "水瓶" }, ["seon3 hou6"] = { "信號", "訊號" }, ["seon3 sau2"] = { "信守", "信手" }, ["seon3 sik1"] = { "信息", "瞬息", "訊息", "遜色" }, ["seon4 faa3"] = { "純化", "馴化" }, ["seon4 hau5"] = { "淳厚", "醇厚" }, ["seon4 sou3"] = { "純數", "純素" }, ["seon4 suk6"] = { "純屬", "純熟" }, ["si1 daa2"] = { "廝打", "絲打" }, ["si1 dai6"] = { "司隸", "師弟" }, ["si1 dak1"] = { "師德", "私德" }, ["si1 faat3"] = { "司法", "師法", "私法" }, ["si1 fu2"] = { "師傅", "師父", "獅虎" },--si1 fu6-2 ["si1 gaa1"] = { "思家", "施加", "私家" }, ["si1 gung1"] = { "師公", "施工" }, ["si1 jan4"] = { "私人", "詩人" }, ["si1 lou6"] = { "思路", "絲路" }, ["si1 mat6"] = { "私密", "絲襪" }, ["si1 nim6"] = { "思念", "私念" }, ["si1 sang1"] = { "師生", "私生" }, ["si1 sau2"] = { "屍首", "廝守" }, ["si1 sau4"] = { "私仇", "私讎" }, ["si1 si1"] = { "偲偲", "絲絲" }, ["si1 si6"] = { "司事", "施事", "私事" }, ["si1 tou4"] = { "司徒", "師徒" }, ["si3 gun2"] = { "使館", "試管" }, ["si3 hang4"] = { "肆行", "試行" }, ["si3 sik6"] = { "嗜食", "蟶子", "試食" }, ["si3 tou4"] = { "使徒", "試圖" }, ["si4 ji4"] = { "時宜", "時而" }, ["si4 sai3"] = { "時世", "時勢" }, ["si4 san1"] = { "時新", "時薪" }, ["si6 fung6"] = { "事奉", "侍奉" }, ["si6 gok3"] = { "視覺", "視角" }, ["si6 gu3"] = { "是故", "事故" }, ["si6 hau6"] = { "事後", "伺候", "侍候" }, ["si6 ji4"] = { "事兒", "事宜" }, ["si6 lai6"] = { "事例", "示例" }, ["si6 si6"] = { "事事", "視事" }, ["si6 tou4"] = { "仕途", "視圖" }, ["sik1 bit6"] = { "惜別", "識別" }, ["sik1 ji4"] = { "析疑", "適宜", "釋疑" }, ["sik1 juk6"] = { "息肉", "色慾" }, ["sik1 sou3"] = { "悉數", "色素" }, ["sik1 zi2"] = { "釋子", "骰子" }, ["sik6 juk6"] = { "食慾", "食肉" }, ["sik6 tong4"] = { "食堂", "食糖" }, ["sin1 jan4"] = { "仙人", "先人" }, ["sin1 lai6"] = { "先例", "鮮麗" }, ["sin1 lit6"] = { "先烈", "鮮烈" }, ["sin3 cing4"] = { "煽情", "線程" }, ["sin3 dung6"] = { "扇動", "煽動" }, ["sin6 bin3"] = { "善變", "嬗變" }, ["sin6 hau6"] = { "善後", "善戰" }, ["sing1 hung1"] = { "升空", "星空" }, ["sing1 kap1"] = { "升級", "星級" }, ["sing1 kei4"] = { "升旗", "星期" }, ["sing1 ming4"] = { "聲名", "聲明" }, ["sing1 sik1"] = { "聲息", "聲色" }, ["sing1 sing1"] = { "星星", "猩猩" }, ["sing1 soeng1"] = { "星相", "星霜" }, ["sing2 ng6"] = { "省悟", "醒悟" }, ["sing3 dei6"] = { "勝地", "聖地" }, ["sing3 fu6"] = { "勝負", "聖父" }, ["sing3 ling4"] = { "性靈", "聖靈" }, ["sing3 ming4"] = { "姓名", "聖明" }, ["sing3 zi2"] = { "性子", "聖子", "聖旨", "蟶子" }, ["sing4 coi4"] = { "成才", "成材" }, ["sing4 gaau1"] = { "城郊", "成交" }, ["sing4 gin3"] = { "城建", "成見", "承建" }, ["sing4 jan4"] = { "成人", "成仁" }, ["sing4 jing4"] = { "成型", "成形" }, ["sing4 sam1"] = { "成心", "誠心" }, ["sit3 lou6"] = { "泄露", "洩露" }, ["sit6 bun2"] = { "折本", "蝕本" }, ["siu1 faa3"] = { "消化", "硝化", "燒化"}, ["siu1 fong4 saan1"] = { "消火栓", "消防栓" }, ["siu1 sat1"] = { "消失", "蕭瑟" }, ["siu1 sau6"] = { "消受", "銷售" }, ["siu1 sik1"] = { "消息", "消釋" }, ["siu1 wai2"] = { "燒毀", "銷毀" }, ["siu2 dik1"] = { "小滴", "小的" }, ["siu2 hei3"] = { "小戲", "小氣" }, ["siu2 ji4"] = { "小兒", "小姨" }, ["siu2 ji4 zi2"] = { "小兒子", "小姨子" }, ["siu2 loeng6"] = { "小量", "少量" }, ["siu2 sang1"] = { "小僧", "小生" }, ["siu2 si6"] = { "小事", "小視" }, ["siu2 siu2"] = { "小小", "少少", "指事" }, ["siu2 sou3"] = { "小數", "少數" }, ["siu2 syu2"] = { "小暑", "小鼠" }, ["siu2 syut3"] = { "小說", "小雪" }, ["siu2 zi2"] = { "小子", "小指" }, ["siu3 mei1 mei1"] = { "笑咪咪", "笑瞇瞇" }, ["siu3 mi1 mi1"] = { "笑咪咪", "笑瞇瞇" }, ["so1 lei5"] = { "梳理", "疏理" }, ["so1 sai2"] = { "唆使", "梳洗" }, ["so1 zi2"] = { "梭子", "梳子" }, ["so2 wai6"] = { "所為", "所謂" }, ["soeng1 can1"] = { "相親", "雙親" }, ["soeng1 can3"] = { "相稱", "相襯" }, ["soeng1 cing1"] = { "相稱", "雙清" }, ["soeng1 daa2"] = { "相打", "雙打" }, ["soeng1 fong2"] = { "廂房", "相仿" }, ["soeng1 fung1"] = { "傷風", "雙峰" }, ["soeng1 gwaan1"] = { "相關", "雙關" }, ["soeng1 hou6"] = { "傷號", "商號" }, ["soeng1 jan4"] = { "商人", "雙人" }, ["soeng1 loeng4"] = { "商量", "雙糧" }, ["soeng1 jyu5"] = { "湘語", "相與", "雙語" }, ["soeng1 mong4"] = { "傷亡", "雙亡" }, ["soeng1 sing1"] = { "雙星", "雙聲" }, ["soeng1 sou3"] = { "商數", "雙數" }, ["soeng1 wai4"] = { "相為", "相違" }, ["soeng1 zi2"] = { "箱子", "雙子" }, ["soeng2 zoeng6"] = { "想像", "想象" }, ["soeng2 zoeng6 lik6"] = { "想像力", "想象力" }, ["soeng5 bong2"] = { "上榜", "上綁" }, ["soeng5 fo3"] = { "上課", "上貨" }, ["soeng5 gaau1"] = { "上交", "上膠" }, ["soeng5 jin4"] = { "上弦", "上言" }, ["soeng5 saan1"] = { "上山", "上閂" }, ["soeng5 zoeng3"] = { "上帳", "上漲" }, ["soeng5 zong1"] = { "上妝", "上裝" }, ["soeng6 coeng4"] = { "上庠", "上詳" }, ["soeng6 fung1"] = { "上峰", "上風" }, ["soeng6 gaai3"] = { "上屆", "上界" }, ["soeng6 hou2"] = { "上好", "尚好" }, ["soeng6 ji1"] = { "上衣", "上醫" }, ["soeng6 lau4"] = { "上僂", "上流" }, ["soeng6 man4"] = { "上文", "上聞" }, ["soeng6 sou3"] = { "上溯", "上訴" }, ["soeng6 syu1"] = { "上書", "尚書" }, ["soeng6 zau3"] = { "上奏", "上晝" }, ["soeng6 zi3"] = { "上智", "上知", "尚志" }, ["soeng6 zoeng3"] = { "上將", "上漲" }, ["sou3 maa5"] = { "數碼", "掃碼" }, ["sou3 miu4"] = { "掃描", "素描" }, ["sou3 syut3"] = { "數說", "訴說" }, ["sou3 zik6"] = { "數值", "素席" }, ["sou3 zyu1"] = { "數珠", "訴諸" }, ["suk1 suk1"] = { "叔叔", "颼颼" }, ["suk6 dei6"] = { "屬地", "熟地" }, ["suk6 sik1"] = { "熟悉", "熟識" }, ["sung3 zung1"] = { "送終", "送中" }, ["syu1 faat3"] = { "抒發", "書法" }, ["syu1 gaa1"] = { "書家", "輸家" }, ["syu1 se2"] = { "抒寫", "書寫" }, ["syu1 wun4"] = { "紓緩", "舒緩" }, ["syu1 wun6"] = { "紓緩", "舒緩" }, ["syu1 zin2"] = { "書展", "舒展" }, ["syu6 laap6"] = { "樹立", "豎立" }, ["syu6 lap6"] = { "樹立", "豎立" }, ["syu6 zi1"] = { "樹枝", "樹脂" }, ["syun1 faa3"] = { "宣化", "酸化" }, ["syun1 zi2"] = { "孫子", "宣旨", "宣紙" }, ["syut3 baak6"] = { "說白", "雪白" }, ["syut3 baa1"] = { "雪巴", "雪葩" }, ["taa1 mun4"] = { "他們", "她們", "它們", "牠們", "祂們" }, ["taai3 gu2"] = { "太古", "太鼓" }, ["taai3 kek6"] = { "傣劇", "泰劇" }, ["taan3 faa3"] = { "炭化", "碳化" }, ["tai2 jing4"] = { "體型", "體形" }, ["tai2 loeng6"] = { "體諒", "體量" }, ["tai2 ngoi6 sau6 zing1"] = { "體外受精", "體外授精" }, ["tai4 bat6"] = { "提拔", "題跋" }, ["tai4 ci4"] = { "提詞", "題詞" }, ["tai4 fong4"] = { "堤防", "提防" }, ["tai4 ming4"] = { "提名", "題名" }, ["tai4 zi2"] = { "提子", "蹄子" }, ["tau1 dou6"] = { "偷渡", "偷盜" }, ["tau4 toi1"] = { "頭胎", "投胎" }, ["teoi1 ci4"] = { "推辭", "推遲" }, ["teoi3 ciu4"] = { "退朝", "退潮" }, ["teoi3 faa3"] = { "蛻化", "退化" }, ["tim4 jin4"] = { "恬然", "甜言" }, ["tim4 mat6"] = { "恬謐", "甜蜜" }, ["tin1 ngaan5"] = { "天目", "天眼" }, ["tin1 ping4"] = { "天平", "天秤" }, ["tin1 wong4"] = { "天王", "天皇" }, ["ting1 zing3"] = { "聽政", "聽證" }, ["ting4 zi2"] = { "亭子", "停止" }, ["tip3 zi2"] = { "帖子", "貼紙" }, ["tiu4 lei5"] = { "條理", "調理" }, ["tiu4 gaau3"] = { "調教", "調校" }, ["tiu4 man4"] = { "條文", "條紋" }, ["tiu4 zau2"] = { "笤帚", "調酒" }, ["toi4 fung1"] = { "臺風", "颱風" }, ["tong1 ci4"] = { "湯匙", "湯池" }, ["tong4 ji1"] = { "堂姨", "糖衣" }, ["tong4 sik6"] = { "堂食", "糖食" }, ["tou2 si1"] = { "吐司", "土司" }, ["tou3 hei3"] = { "吐棄", "吐氣" }, ["tou3 lou6"] = { "吐露", "套路" }, ["tou4 hei3"] = { "淘氣", "陶器" }, ["tou4 jing4"] = { "圖形", "徒刑" }, ["tou4 jyun4"] = { "桃園", "桃源" }, ["tou4 zi2"] = { "圖紙", "桃子" }, ["tung1 seon3"] = { "通信", "通訊" }, ["tung1 sing3"] = { "通勝", "通性" }, ["tung4 jan4"] = { "同人", "同仁", "瞳人", "瞳仁", "銅仁" }, ["tung4 ling4"] = { "同齡", "銅陵" }, ["tung4 nin4"] = { "同年", "童年" }, ["tung4 sam1"] = { "同心", "童心" }, ["tung4 sing1"] = { "同聲", "童星", "童聲" }, ["tung4 sing3"] = { "同姓", "同性" }, ["tung4 zi2"] = { "瞳子", "童子", "筒子" }, ["tyun4 jyun4"] = { "團員", "團圓" }, ["waa2 zoeng6"] = { "畫像", "畫匠" },--waa6-2 zoeng6 ["waak6 jin4"] = { "或然", "砉然" }, ["waan4 gu3"] = { "環顧", "頑固" }, ["waan4 kau4"] = { "寰球", "環球" }, ["waan4 si6"] = { "環視", "還是" }, ["waan6 ging2"] = { "幻境", "幻景" }, ["waang4 gaak3 mok2"] = { "橫膈膜", "橫隔膜" },--waang4 gaak3 mok6-2 ["wai1 ji4"] = { "委蛇", "威儀" }, ["wai4 duk6"] = { "唯獨", "遺毒" }, ["wai4 mat6"] = { "唯物", "遺物" }, ["wai4 sam1"] = { "唯心", "違心" }, ["wai4 wo4"] = { "維和", "違和" }, ["wai4 zi2"] = { "為止", "遺址" }, ["wai4 zoeng6"] = { "唯象", "遺像" }, ["wai6 ho4"] = { "渭河", "為何" }, ["wai6 sing1"] = { "彗星", "衛星" }, ["wai6 zi2"] = { "位址", "位子" }, ["wan1 cyun4"] = { "溫存", "溫泉" }, ["wan5 goek3"] = { "韻白", "韻腳" }, ["wan6 leon4"] = { "混淪", "渾淪" }, ["wan6 syu1"] = { "運輸", "韻書" }, ["wat1 zit3"] = { "屈折", "屈節" }, ["wing4 gwong1"] = { "容光", "榮光" }, ["wok6 sik1"] = { "獲悉", "獲釋" }, ["wong4 dai3"] = { "皇帝", "黃帝" }, ["wong4 gun1"] = { "王冠", "皇冠" }, ["wong4 gwan1"] = { "皇軍", "蝗軍", "黃軍" }, ["wong4 kei4"] = { "黃旗", "黃芪" }, ["wong4 kyun4"] = { "王權", "皇權" }, ["wong4 luk6 ji1 sang1"] = { "黃六醫生", "黃綠醫生" }, ["wong4 paai2"] = { "王牌", "黃牌" },--wong4 paai4-2 ["wong4 sat1"] = { "王室", "皇室" }, ["wong4 sing4"] = { "王城", "皇城" }, ["wong4 wai6"] = { "王位", "皇位" }, ["wong4 zi2"] = { "王子", "皇子" }, ["wong5 hau6"] = { "往後", "王后" }, ["wu1 dung1"] = { "烏冬", "烏鶇" }, ["wu1 zik1"] = { "污漬", "污跡" }, ["wu1 zuk6"] = { "惡俗", "污濁" }, ["wu4 fung1"] = { "胡峰", "胡蜂" }, ["wu4 sou1"] = { "狐臊", "鬍鬚" }, ["wu4 tou4"] = { "糊塗", "胡桃" }, ["wu6 wai6"] = { "互惠", "護衛" }, ["wui6 hap6"] = { "匯合", "會合" }, ["wui6 jin2"] = { "匯演", "會演" }, ["zaa3 ceoi2"] = { "榨取", "詐取" }, ["zaap6 gam2"] = { "集錦", "雜感" }, ["zaap6 luk6"] = { "集錄", "雜錄" }, ["zaap6 mat6"] = { "什物", "雜物" }, ["zai3 coi4"] = { "制裁", "製裁" }, ["zan1 si6"] = { "珍視", "真事", "真是" }, ["zan3 dong6"] = { "振盪", "震盪" }, ["zan3 dung6"] = { "振動", "震動" }, ["zan3 zoi1"] = { "賑災", "震災" }, ["zang1 gwong1"] = { "增光", "爭光" }, ["zang1 zik6"] = { "增值", "增殖" }, ["zat1 sou3"] = { "質數", "質素" }, ["zau1 coeng4"] = { "周詳", "周長" }, ["zau2 fung1"] = { "走風", "酒瘋" }, ["zau2 gwai2"] = { "走鬼", "酒鬼" }, ["zau3 man4"] = { "咒文", "皺紋" }, ["ze2 fu1"] = { "姊夫", "姐夫" }, ["zeoi1 gik1"] = { "狙擊", "追擊" }, ["zeoi1 sou3"] = { "追溯", "追訴" }, ["zeoi6 jin4"] = { "序言", "贅言" }, ["zeoi6 lok6"] = { "墜落", "聚落" }, ["zeoi6 seot6"] = { "敘述", "贅述" }, ["zeon1 zi2"] = { "榛子", "遵旨" }, ["zeon3 ciu3"] = { "俊俏", "峻峭" }, ["zeon3 gin3"] = { "晉見", "進見" }, ["zeon3 gung1"] = { "竣工", "進宮", "進攻" }, ["zeon6 loeng6"] = { "儘量", "盡量" }, ["zi1 cin4"] = { "之前", "支前" }, ["zi1 fong1"] = { "脂肪", "資方" }, ["zi1 gaai2"] = { "支解", "肢解" }, ["zi1 ji4"] = { "支移", "支頤" }, ["zi1 jip6"] = { "支孽", "枝葉" }, ["zi1 jyun4"] = { "支援", "資源" }, ["zi1 lau4"] = { "之流", "支流" }, ["zi1 lik6"] = { "資力", "資歷" }, ["zi1 sang1"] = { "孳生", "滋生" }, ["zi1 sik1"] = { "姿色", "知悉", "知識" }, ["zi1 zit3"] = { "支節", "枝節" }, ["zi1 zuk1"] = { "枝竹", "知足" }, ["zi2 aat3"] = { "指壓", "紙壓" }, ["zi2 gaap3"] = { "指甲", "趾甲" }, ["zi2 gwat1"] = { "指骨", "趾骨" }, ["zi2 man4"] = { "子民", "指紋" }, ["zi2 mei4"] = { "紫微", "紫薇" }, ["zi2 ming4"] = { "指名", "指明" }, ["zi2 si6"] = { "只是", "指事", "指示" }, ["zi2 sik1"] = { "止息", "紫色" }, ["zi2 zing3"] = { "指正", "指證" }, ["zi2 zoeng1"] = { "紙張", "紙漿" }, ["zi3 ci4"] = { "致詞", "致辭" }, ["zi3 fu3"] = { "智庫", "致富" }, ["zi3 ji3"] = { "恣意", "致意" }, ["zi3 lik6"] = { "智力", "致力" }, ["zi3 sei2"] = { "至死", "致死" }, ["zi6 ci4"] = { "字詞", "自持" }, ["zi6 geoi3"] = { "字句", "字據" }, ["zi6 hei3"] = { "正自", "稚氣", "自棄" }, ["zi6 hok6"] = { "治學", "自學" }, ["zi6 jin4"] = { "自然", "自燃" }, ["zi6 jing4"] = { "字型", "字形" }, ["zi6 lau6"] = { "痔漏", "痔瘻" }, ["zi6 lei5"] = { "治理", "自理" }, ["zi6 san1"] = { "自新", "自身" }, ["zi6 soeng1"] = { "自傷", "自相" }, ["zi6 tai2"] = { "字體", "自體" }, ["zi6 wai6"] = { "字彙", "自衛", "嗣位" }, ["zi6 zai3"] = { "自制", "自製" }, ["zi6 zeoi6"] = { "治罪", "自序" }, ["zik1 gung1"] = { "織工", "職工" }, ["zik1 si6"] = { "即事", "即是" }, ["zik1 wai6"] = { "即位", "職位" }, ["zik1 zik6"] = { "即席", "織蓆" }, ["zik6 gan1"] = { "植根", "直根" }, ["zik6 gok3"] = { "直覺", "直角" }, ["zik6 zik6"] = { "夕夕", "直直" }, ["zin1 zin1"] = { "戔戔", "濺濺" }, ["zin3 dau2"] = { "戰抖", "顫抖" }, ["zin3 si6"] = { "戰事", "戰士" }, ["zing1 bing1"] = { "徵兵", "精兵" }, ["zing1 git3"] = { "癥結", "貞潔" }, ["zing1 hei3"] = { "蒸氣", "蒸汽" }, ["zing1 jing1"] = { "精英", "菁英" }, ["zing1 kau4"] = { "徵求", "晶球" }, ["zing1 pik1"] = { "晶癖", "精闢" }, ["zing1 sam1"] = { "精心", "精深" }, ["zing3 faat3"] = { "政法", "正法" }, ["zing3 gaau3"] = { "政教", "正教" }, ["zing3 jin4"] = { "正弦", "證言" }, ["zing3 jiu3"] = { "政要", "正要" }, ["zing3 si6"] = { "政事", "正事", "正是", "正視" }, ["zing3 sik1"] = { "正式", "正色" }, ["zing3 tai2"] = { "政體", "正體" }, ["zing3 zi6"] = { "政治", "正字", "正治", "正自" }, ["zing3 zik1"] = { "政績", "正職" }, ["zing3 zik6"] = { "正值", "正直" }, ["zing3 zung1"] = { "正中", "正宗" }, ["zing6 mak6"] = { "靜脈", "靜默" }, ["zing6 mat6"] = { "靜物", "靜謐" }, ["zip3 hap6"] = { "接合", "接洽" }, ["zit3 cou3"] = { "浙醋", "節操" }, ["ziu1 mou6"] = { "招募", "朝暮", "朝霧" }, ["zo2 sau2"] = { "左手", "左首" }, ["zo6 ci3"] = { "坐廁", "座次" }, ["zo6 wai2"] = { "坐位", "座位" },--zo6 wai6-2 ["zo6 zik6"] = { "坐席", "座席" }, ["zo6 zong1"] = { "坐莊", "坐贓" }, ["zoeng2 zi2"] = { "長姊", "長子" }, ["zoeng6 fu1"] = { "丈夫", "象夫" }, ["zoeng6 jan4"] = { "丈人", "象人" }, ["zoeng6 pei4"] = { "橡皮", "象皮" }, ["zoi3 gin3"] = { "再建", "再見" }, ["zoi6 zik1"] = { "在即", "在職", "鐘點" }, ["zok3 sik1"] = { "作息", "作色" }, ["zong1 sik1"] = { "妝飾", "裝飾" }, ["zong6 zi2"] = { "狀子", "狀紙" }, ["zou2 uk1"] = { "組屋", "祖屋" }, ["zou2 sin1"] = { "早先", "祖先" }, ["zou6 gun1"] = { "作官", "做官" }, ["zou6 mung6"] = { "做夢", "造夢" }, ["zou6 sing4"] = { "做成", "造成" }, ["zou6 zok3"] = { "做作", "造作" }, ["zuk1 gok3"] = { "觸覺", "觸角" }, ["zuk1 mo2"] = { "捉摸", "觸摸" }, ["zuk1 muk6"] = { "矚目", "觸目" }, ["zuk1 toi4"] = { "燭臺", "築臺" }, ["zuk6 cing1"] = { "俗稱", "族稱" }, ["zuk6 gaa1"] = { "俗家", "逐家" }, ["zuk6 jan4"] = { "俗人", "族人" }, ["zuk6 zi6"] = { "俗字", "逐字" }, ["zung1 cing4"] = { "中程", "鍾情" }, ["zung1 coeng4"] = { "中場", "終場" }, ["zung1 cyun1"] = { "中川", "中村" }, ["zung1 dim2"] = { "中點", "終點", "鐘點" }, ["zung1 gaau3"] = { "中校", "宗教" }, ["zung1 gai3"] = { "中繼", "中計" }, ["zung1 gwok3 waa2"] = { "中國畫", "中國話" },--zung1 gwok3 waa6-2 ["zung1 hap6 bou3 dou6"] = { "綜合報導", "綜合報道" }, ["zung1 jat6"] = { "中日", "終日" }, ["zung1 joek6"] = { "中藥", "舂藥" }, ["zung1 jyu1"] = { "忠於", "終於" }, ["zung1 lau4"] = { "中流", "鐘樓" }, ["zung1 nin4"] = { "中年", "終年" }, ["zung1 sam1"] = { "中心", "忠心", "衷心" }, ["zung1 si1"] = { "宗師", "螽斯" }, ["zung1 sik1"] = { "中式", "棕色" }, ["zung1 zi2"] = { "中子", "中指", "中止", "宗旨", "盅子", "終止" }, ["zung1 zuk6"] = { "中軸", "宗族" }, ["zung2 laam5"] = { "總攬", "總覽" }, ["zung2 zoeng3"] = { "總帳", "腫脹" }, ["zung3 gun1"] = { "綜觀", "縱觀" }, ["zung3 hap6 bou3 dou6"] = { "綜合報導", "綜合報道" }, ["zyu1 jyu4"] = { "侏儒", "茱萸", "諸如" }, ["zyu2 gok3"] = { "主腳", "主角" }, ["zyu2 jip6"] = { "主業", "主頁" }, ["zyu2 sik6"] = { "主食", "煮食" }, ["zyu2 zi2"] = { "主子", "主旨" }, ["zyu3 ming4"] = { "注明", "著名" }, ["zyu6 zi2"] = { "住址", "箸子" }, ["zyun1 coeng4"] = { "專場", "專長" }, ["zyun1 gung1"] = { "專供", "專攻" }, ["zyun1 zyu3"] = { "專注", "專著" }, ["zyun2 zit3"] = { "撙節", "轉折" }, } return export 7e8ar1cljqual7qd5vrpvhlmk2tdblr Modul:script utilities 828 130369 628866 460469 2024-11-06T14:40:07Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628866 Scribunto text/plain local m_string_utils = require("Module:string utilities") local require_when_needed = require("Module:require when needed") local concat = table.concat local find = m_string_utils.find local gsub = m_string_utils.gsub local insert = table.insert local process_params = require_when_needed("Module:parameters", "process") local toNFD = mw.ustring.toNFD local u = m_string_utils.char local export = {} --[=[ Modules used: [[Module:script utilities/data]] [[Module:scripts]] [[Module:langarlar]] (only when IDs present) [[Module:string utilities]] (only when hyphens in Korean text or spaces in vertical text) [[Module:tili]] [[Module:parameters]] [[Module:utilities]] [[Module:debug/track]] ]=] function export.is_Latin_script(sc) -- Latn, Latf, Latg, pjt-Latn return sc:getCode():find("Lat") and true or false end --[==[{{temp|#invoke:script utilities|lang_t}} This is used by {{temp|lang}} to wrap portions of text in a language tag. See there for more information.]==] do local function get_args(frame) return process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, allow_empty = true, default = ""}, ["sc"] = {type = "script"}, ["face"] = true, ["class"] = true, }) end function export.lang_t(frame) local args = get_args(frame) local lang = args[1] local sc = args["sc"] local text = args[2] local cats = {} if sc then -- Track uses of sc parameter. if sc:getCode() == lang:findBestScript(text):getCode() then insert(cats, lang:getFullName() .. " terms with redundant script codes") else insert(cats, lang:getFullName() .. " terms with non-redundant manual script codes") end else sc = lang:findBestScript(text) end text = require("Module:links").embedded_language_links{ term = text, lang = lang, sc = sc } cats = #cats > 0 and require("Module:utilities").format_categories(cats, lang, "-", nil, nil, sc) or "" local face = args["face"] local class = args["class"] return export.tag_text(text, lang, sc, face, class) .. cats end end -- Ustring turns on the codepoint-aware string matching. The basic string function -- should be used for simple sequences of characters, Ustring function for -- sets – []. local function trackPattern(text, pattern, tracking) if pattern and find(text, pattern) then require("Module:debug/track")("script/" .. tracking) end end local function track(text, lang, sc) if lang and text then local langCode = lang:getFullCode() -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/ang/acute]] if langCode == "ang" then local decomposed = toNFD(text) local acute = u(0x301) trackPattern(decomposed, acute, "ang/acute") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-phi]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-theta]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-kappa]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-rho]] ϑ, ϰ, ϱ, ϕ should generally be replaced with θ, κ, ρ, φ. ]=] elseif langCode == "el" or langCode == "grc" then trackPattern(text, "ϑ", "Greek/wrong-theta") trackPattern(text, "ϰ", "Greek/wrong-kappa") trackPattern(text, "ϱ", "Greek/wrong-rho") trackPattern(text, "ϕ", "Greek/wrong-phi") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-coronis]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-smooth-breathing]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/wrong-apostrophe]] When spacing coronis and spacing smooth breathing are used as apostrophes, they should be replaced with right single quotation marks (’). ]=] if langCode == "grc" then trackPattern(text, u(0x1FBD), "Ancient Greek/spacing-coronis") trackPattern(text, u(0x1FBF), "Ancient Greek/spacing-smooth-breathing") trackPattern(text, "[" .. u(0x1FBD) .. u(0x1FBF) .. "]", "Ancient Greek/wrong-apostrophe", true) end -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Russian/grave-accent]] elseif langCode == "ru" then local decomposed = toNFD(text) trackPattern(decomposed, u(0x300), "Russian/grave-accent") -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Tibetan/trailing-punctuation]] elseif langCode == "bo" then trackPattern(text, "[་།]$", "Tibetan/trailing-punctuation") trackPattern(text, "[་།]%]%]$", "Tibetan/trailing-punctuation") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/wrong-rue-lue]] ]=] elseif langCode == "th" then trackPattern(text, "เ".."เ", "Thai/broken-ae") trackPattern(text, "ํ[่้๊๋]?า", "Thai/broken-am") trackPattern(text, "[ฤฦ]า", "Thai/wrong-rue-lue") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-no]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-mo]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-lo]] ]=] elseif langCode == "lo" then trackPattern(text, "ເ".."ເ", "Lao/broken-ae") trackPattern(text, "ໍ[່້໊໋]?າ", "Lao/broken-am") trackPattern(text, "ຫນ", "Lao/possible-broken-ho-no") trackPattern(text, "ຫມ", "Lao/possible-broken-ho-mo") trackPattern(text, "ຫລ", "Lao/possible-broken-ho-lo") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/possible-wrong-sequence]] ]=] elseif langCode == "khb" then trackPattern(text, "ᦵ".."ᦵ", "Lü/broken-ae") trackPattern(text, "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", "Lü/possible-wrong-sequence") end end end --[==[Wraps the given text in HTML tags with appropriate CSS classes (see [[WT:CSS]]) for the [[Module:tili#Language objects|language]] and script. This is required for all non-English text on Wiktionary. The actual tags and CSS classes that are added are determined by the <code>face</code> parameter. It can be one of the following: ; {{code|lua|"term"}} : The text is wrapped in {{code|html|2=<i class="(sc) mention" lang="(lang)">...</i>}}. ; {{code|lua|"head"}} : The text is wrapped in {{code|html|2=<strong class="(sc) headword" lang="(lang)">...</strong>}}. ; {{code|lua|"hypothetical"}} : The text is wrapped in {{code|html|2=<span class="hypothetical-star">*</span><i class="(sc) hypothetical" lang="(lang)">...</i>}}. ; {{code|lua|"bold"}} : The text is wrapped in {{code|html|2=<b class="(sc)" lang="(lang)">...</b>}}. ; {{code|lua|nil}} : The text is wrapped in {{code|html|2=<span class="(sc)" lang="(lang)">...</span>}}. The optional <code>class</code> parameter can be used to specify an additional CSS class to be added to the tag.]==] function export.tag_text(text, lang, sc, face, class, id) if not sc then sc = lang:findBestScript(text) end track(text, lang, sc) -- Replace space characters with newlines in Mongolian-script text, which is written top-to-bottom. if sc:getDirection():match("vertical") and text:find(" ") then text = require("Module:munge_text")(text, function(txt) -- having extra parentheses makes sure only the first return value gets through return (txt:gsub(" +", "<br>")) end) end -- Hack Korean script text to remove hyphens. -- FIXME: This should be handled in a more general fashion, but needs to -- be efficient by not doing anything if no hyphens are present, and currently this is the only -- language needing such processing. -- 20220221: Also convert 漢字(한자) to ruby, instead of needing [[Template:Ruby]]. if sc:getCode() == "Kore" and (text:find("-", 1, true) or text:find("[()]")) then local m_scripts = require("Module:scripts") text = require("Module:munge_text")(text, function(txt) txt = txt:gsub("%-(%-?)", "%1") txt = gsub(txt, "([%-".. m_scripts.getByCode("Hani"):getCharacters() .. "]+)%(([%-" .. m_scripts.getByCode("Hang"):getCharacters() .. "]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>") return txt end) end if sc:getCode() == "Image" then face = nil end local function class_attr(classes) -- if the script code is hyphenated (i.e. language code-script code, add the last component as a class as well) -- e.g. ota-Arab adds both Arab and ota-Arab as classes if sc:getCode():find("-", 1, true) then insert(classes, 1, (gsub(sc:getCode(), ".+%-", ""))) insert(classes, 2, sc:getCode()) else insert(classes, 1, sc:getCode()) end if class and class ~= '' then insert(classes, class) end return 'class="' .. concat(classes, ' ') .. '"' end local function tag_attr(...) local output = {} if id then insert(output, 'id="' .. require("Module:anchors").language_anchor(lang, id) .. '"') end insert(output, class_attr({...}) ) if lang then -- FIXME: Is it OK to insert the etymology-only lang code and have it fall back to the first part of the -- lang code (by chopping off the '-...' part)? It seems the :lang() selector does this; not sure about -- [lang=...] attributes. insert(output, 'lang="' .. lang:getFullCode() .. '"') end return concat(output, " ") end if face == "hypothetical" then -- [[Special:WhatLinksHere/Wiktionary:Tracking/script-utilities/face/hypothetical]] require("Module:debug/track")("script-utilities/face/hypothetical") end local data = mw.loadData("Module:script utilities/data").faces[face or "plain"] -- Add a script wrapper if data then return ( data.prefix or "" ) .. '<' .. data.tag .. ' ' .. tag_attr(data.class) .. '>' .. text .. '</' .. data.tag .. '>' else error('Invalid script face "' .. face .. '".') end end --[==[Tags the transliteration for given text {translit} and language {lang}. It will add the language, script subtag (as defined in [https://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47 2.2.3]) and [https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir dir] (directional) attributes as needed. The optional <code>kind</code> parameter can be one of the following: ; {{code|lua|"term"}} : tag transliteration for {{temp|mention}} ; {{code|lua|"usex"}} : tag transliteration for {{temp|usex}} ; {{code|lua|"head"}} : tag transliteration for {{temp|head}} ; {{code|lua|"default"}} : default The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==] function export.tag_translit(translit, lang, kind, attributes, is_manual) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_translit should be a language code or language object.") end local data = mw.loadData("Module:script utilities/data").translit[kind or "default"] local opening_tag = {} insert(opening_tag, data.tag) if lang == "ja" then insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. (is_manual and "manual-tr " or "") .. 'tr"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. (is_manual and "manual-tr " or "") .. 'tr Latn"') end if data.dir then insert(opening_tag, 'dir="' .. data.dir .. '"') end insert(opening_tag, attributes) return "<" .. concat(opening_tag, " ") .. ">" .. translit .. "</" .. data.tag .. ">" end function export.tag_transcription(transcription, lang, kind, attributes) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_transcription should be a language code or language object.") end local data = mw.loadData("Module:script utilities/data").transcription[kind or "default"] local opening_tag = {} insert(opening_tag, data.tag) if lang == "ja" then insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. 'ts"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. 'ts Latn"') end if data.dir then insert(opening_tag, 'dir="' .. data.dir .. '"') end insert(opening_tag, attributes) return "<" .. concat(opening_tag, " ") .. ">" .. transcription .. "</" .. data.tag .. ">" end --[==[Generates a request to provide a term in its native script, if it is missing. This is used by the {{temp|rfscript}} template as well as by the functions in [[Module:links]]. The function will add entries to one of the subcategories of [[:Category:Requests for native script by language]], and do several checks on the given language and script. In particular: * If the script was given, a subcategory named "Requests for (script) script" is added, but only if the language has more than one script. Otherwise, the main "Requests for native script" category is used. * Nothing is added at all if the language has no scripts other than Latin and its varieties.]==] function export.request_script(lang, sc, usex, nocat, sort_key) local scripts = lang.getScripts and lang:getScripts() or error('The language "' .. lang:getCode() .. '" does not have the method getScripts. It may be unwritten.') -- By default, request for "native" script local cat_script = "native" local disp_script = "script" -- If the script was not specified, and the language has only one script, use that. if not sc and #scripts == 1 then sc = scripts[1] end -- Is the script known? if sc and sc:getCode() ~= "None" then -- If the script is Latin, return nothing. if export.is_Latin_script(sc) then return "" end if (not scripts[1]) or sc:getCode() ~= scripts[1]:getCode() then disp_script = sc:getCanonicalName() end -- The category needs to be specific to script only if there is chance of ambiguity. This occurs when when the language has multiple scripts (or with codes such as "und"). if (not scripts[1]) or scripts[2] then cat_script = sc:getCanonicalName() end else -- The script is not known. -- Does the language have at least one non-Latin script in its list? local has_nonlatin = false for i, val in ipairs(scripts) do if not export.is_Latin_script(val) then has_nonlatin = true break end end -- If there are no non-Latin scripts, return nothing. if not has_nonlatin then return "" end end local category if usex then local usex_type = usex == "quote" and "quotations" or "usage examples" -- Etymology languages have their own categories, whose parents are the regular language. category = "Requests for " .. cat_script .. " script in " .. lang:getCanonicalName() .. " " .. usex_type else category = "Requests for " .. cat_script .. " script for " .. lang:getCanonicalName() .. " terms" end return "<small>[" .. disp_script .. " needed]</small>" .. (nocat and "" or require("Module:utilities").format_categories({category}, lang, sort_key)) end --[==[This is used by {{temp|rfscript}}. See there for more information.]==] do local function get_args(frame) local boolean = {type = "boolean"} return process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, ["sc"] = {type = "script"}, ["usex"] = boolean, ["quote"] = boolean, ["nocat"] = boolean, ["sort"] = true, }) end function export.template_rfscript(frame) local args = get_args(frame) local ret = export.request_script(args[1], args["sc"], args.quote and "quote" or args.usex, args.nocat, args.sort) if ret == "" then error("This language is written in the Latin alphabet. It does not need a native script.") else return ret end end end function export.checkScript(text, scriptCode, result) local scriptObject = require("Module:scripts").getByCode(scriptCode) if not scriptObject then error('The script code "' .. scriptCode .. '" is not recognized.') end local originalText = text -- Remove non-letter characters. text = gsub(text, "%A+", "") -- Remove all characters of the script in question. text = gsub(text, "[" .. scriptObject:getCharacters() .. "]+", "") if text ~= "" then if type(result) == "string" then error(result) else error('The text "' .. originalText .. '" contains the letters "' .. text .. '" that do not belong to the ' .. scriptObject:getDisplayForm() .. '.', 2) end end end return export 1r86ahhueslf0kjultsa88ig5xkwefv 旧世界 0 130384 628994 549407 2024-11-06T18:17:45Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628994 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|きゅう|せ|かい|yomi=on}} ===Etimologiya=== {{prefiks|旧|世界|lang=ja|t1=old|t2=world|sort=せかい}} {{ja-pos|きゅうせかい|proper|kyu=舊世界}} # [[qadimgi]] [[dunyo]] ===Antonimlari=== * [[新世界]] [[しんせかい]]: [[yangi]] [[dunyo]] 3os46k7bstk91hh1p5mo6n6lxbi2q62 0 130399 628984 549039 2024-11-06T18:07:10Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628984 wikitext text/x-wiki {{-zh-}} {{zh-forms|t2=瞭|note=瞭 – sense “clear”}} ===Talaffuz=== {{zh-pron |m=le |ma=Zh-le.ogg |c=liu5 |h=pfs=lé |mn=liáu |w=5leq |mc=y |oc=y |cat=particle }} ===Talaffuz=== {{zh-pron |m=liǎo |ma=zh-liǎo.ogg |c=liu5 |h=pfs=liáu |w=3liau |cat=verb }} {{-ja-}} ===Kanji=== {{ja-kanji|grade=c|rs=亅01}} # [[soʻng]], [[toʻliq]] ===Oʻqishlar=== * {{ja-oʻqishlar|on=[[りょう]] (ryō)|kun=[[おわる]] (owaru), [[ついに]] (tsuini)}} ===Aralashmalari=== * [[了解]] * [[了承]] rx7awdkdz97ly5frxtwoq86y54dl4ho 628985 628984 2024-11-06T18:08:08Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628985 wikitext text/x-wiki {{-zh-}} {{zh-forms|t2=瞭|note=瞭 – sense “clear”}} ===Talaffuz=== {{zh-pron |m=le,liǎo,lou,3nb=dated variant |m_note=liǎo - in poetry, songs or Malaysian Mandarin |ma=Zh-le.ogg |m-s=no2/no3 |dg=ли0 |m-x=liao |c=liu5 |g=lieu |h=pfs=lé;gd=ê2 |mb=làu |md=lāu |mn=liáu |mna=Zh-liào.ogg |mn-t=liao2 |px=pt,xy:lieo3 |w=sh:8leq,0leq |cat=part |ca=LL-Q9186-Luilui6666-了.wav }} {{-ja-}} ===Kanji=== {{ja-kanji|grade=c|rs=亅01}} # [[soʻng]], [[toʻliq]] ===Oʻqishlar=== * {{ja-oʻqishlar|on=[[りょう]] (ryō)|kun=[[おわる]] (owaru), [[ついに]] (tsuini)}} ===Aralashmalari=== * [[了解]] * [[了承]] 8nven41dn8fszmeyxe1j1ilt7ccwkn3 Andoza:ja-usex 10 130408 628925 240998 2024-11-06T16:31:19Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628925 wikitext text/x-wiki <includeonly>{{#invoke:ja-usex|show}}{{cln|ja|terms with usage examples}}</includeonly><noinclude>{{documentation}}</noinclude> gmltml8bw2uizx2h4uwnntfm03f0ti5 Modul:ja-usex 828 130409 628926 624622 2024-11-06T16:33:20Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628926 Scribunto text/plain local export = {} local remove_ruby_markup = require("Module:ja").remove_ruby_markup local kana_to_romaji = require("Module:Hrkt-translit").tr -- [[Module:scripts]] -- [[Module:parameters]] -- [[Module:utilities]] -- [[Module:links]] -- [[Module:tili]] -- [[Module:ja-ruby]] local lang = require("Module:tili").getByCode("ja") local pagename = mw.loadData("Module:headword/data").pagename local HaniHiraKana_characters local function test_script(text, scriptCode, entirely) if type(text) == "string" and type(scriptCode) == "string" then local characters if scriptCode == "HaniHiraKana" then if HaniHiraKana_characters then return HaniHiraKana_characters end local getScriptByCode = require("Module:scripts").getByCode characters = "" for code in scriptCode:gmatch("%u%l%l%l") do characters = characters .. getScriptByCode(code):getCharacters() end else characters = require("Module:scripts").getByCode(scriptCode):getCharacters() end local out if entirely then out = mw.ustring.match(text, "^[" .. characters .. "]+$") else text = mw.ustring.gsub(text, "%W", "") out = mw.ustring.find(text, "[" .. characters .. "]") end return out else mw.log("Parameters to test_script were incorrect.") end end -- main entry point function export.show(frame) local params = { [1] = {}, [2] = {}, [3] = {}, ["lit"] = {}, ["rom"] = {}, ["manyou"] = {}, ["m"] = { alias_of = "manyou" }, ["manyou_kana"] = {}, ["m_kana"] = { alias_of = "manyou_kana" }, ["ref"] = {}, ["sort"] = {}, ["inline"] = {}, -- not currently used } local args = require("Module:parameters").process(frame:getParent().args, params) local literally = args.lit local sortkey -- Use sort parameter, or title if it consists only of kana. if args.sort then sortkey = args.sort elseif test_script(pagename, "Hira", true) or test_script(pagename, "Kana", true) then sortkey = pagename else -- [[Special:WhatLinksHere/Wiktionary:Tracking/ja-usex/no sortkey]] require("Module:debug").track("ja-usex/no sortkey") end -- Process sortkey. if sortkey then sortkey = (lang:makeSortKey(sortkey)) end local text = {} local categories = { "Japanese terms with usage examples" } local example, kana, translation -- Custom errors are preferable to the generic "These parameters are required.", -- which would be generated if "required = true" were added to the tables for parameters 1 and 2. if not args[1] then error("Usage example text has not been given.") elseif test_script(args[1], "Hani") then example = args[1] if args[2] and test_script(args[2], "HaniHiraKana") then kana = args[2] translation = args[3] else error("Kana spelling of the usage example text has not been given.") end elseif test_script(args[1], "HaniHiraKana") then example = args[1] if args[2] and test_script(args[2], "HaniHiraKana") then kana = args[2] translation = args[3] else kana = args[1] translation = args[2] end end if (not translation) then translation = '<small>(please add an English translation of this example)</small>' table.insert(categories, "Requests for translations of Japanese usage examples") end local romaji = args["rom"] local manyou = args["manyou"] local old_kana = args["manyou_kana"] local ref = args["ref"] local tag_start = " <span style=\"color:darkgreen; font-size:x-small;\">&#91;" -- see also [[module:zh-usex]] local tag_end = "&#93;</span>" if manyou then table.insert(text, ('<span lang="ja" class="Jpan">%s</span>'):format(old_kana ~= "" and require('Module:ja-ruby').ruby_auto{ term = manyou, kana = old_kana, } or manyou)) table.insert(text, tag_start) table.insert(text, "[[w:Man'yōgana|Man'yōgana]]") table.insert(text, tag_end) table.insert(text, "<dd>") end local ruby_text if example and kana and example ~= kana then ruby_text = require('Module:ja-ruby').ruby_auto{ term = example, kana = kana, } else ruby_text = remove_ruby_markup(kana) kana = require("Module:links").remove_links(kana) end if ruby_text then if string.find(ruby_text, "[[", 1, true) then ruby_text = require("Module:links").language_link{ term = ruby_text, lang = lang} end table.insert(text, ('<span lang="ja" class="Jpan">%s</span>'):format(ruby_text)) end if ref then table.insert(text, ref) end if manyou then table.insert(text, tag_start) table.insert(text, "Modern spelling") table.insert(text, tag_end) table.insert(text, "</dd>") end if kana or romaji or translation then table.insert(text, "<dl>") end if kana or romaji then table.insert(text, '<dd><i><span class="tr">') if romaji then table.insert(text, romaji) elseif kana then -- add capitalization markup to the kana if manual markup is not present if mw.ustring.match(kana, "[。?!]") and not mw.ustring.match(kana, "%^") then -- "「テスト」です。"→"「^テスト」^です。" kana = mw.ustring.gsub(kana, "([^「」『』。?!]+)", "^%1") -- remove "^" in ~other certain circumstances~ -- TESTS: https://en.wiktionary.org/?oldid=51248532 kana = mw.ustring.gsub(kana, "([)」』])%^", "%1") kana = mw.ustring.gsub(kana, "([^)」』])([(「『])%^", "%1%2") end -- add romaji table.insert(text, kana_to_romaji(kana, "ja")) end table.insert(text, "</span></i></dd>") end if translation then table.insert(text, "<dd>" .. translation .. "</dd>") end if literally then table.insert(text, "<dd>(literally, “" .. literally .. "”)</dd>") end table.insert(text, "</dl>") return table.concat(text) .. require("Module:utilities").format_categories(categories, lang, args.sort) end return export rsx8gtymomvxv1zboqn0i0tgwj8wfgz Modul:headword 828 130420 628932 617126 2024-11-06T16:46:08Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628932 Scribunto text/plain local export = {} -- Named constants for all modules used, to make it easier to swap out sandbox versions. local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local gender_and_number_module = "Module:gender and number" local headword_data_module = "Module:headword/data" local headword_page_module = "Module:headword/page" local links_module = "Module:links" local pages_module = "Module:pages" local palindromes_module = "Module:palindromes" local pron_qualifier_module = "Module:pron qualifier" local scripts_module = "Module:scripts" local scripts_data_module = "Module:scripts/data" local script_utilities_module = "Module:script utilities" local script_utilities_data_module = "Module:script utilities/data" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local require = require local require_when_needed = require("Module:require when needed") local m_str_utils = require(string_utilities_module) local concat = table.concat local encode_entities = m_str_utils.encode_entities local find_best_script_without_lang = require_when_needed(scripts_module, "findBestScriptWithoutLang") local format_categories = require_when_needed(utilities_module, "format_categories") local format_genders = require_when_needed(gender_and_number_module, "format_genders") local format_pron_qualifiers = require_when_needed(pron_qualifier_module, "format_qualifiers") local full_link = require_when_needed(links_module, "full_link") local get_current_L2 = require_when_needed(pages_module, "get_current_L2") local get_link_page = require_when_needed(links_module, "get_link_page") local get_script = require_when_needed(scripts_module, "getByCode") local insert = table.insert local ipairs = ipairs local is_palindrome = require_when_needed(palindromes_module, "is_palindrome") local language_link = require_when_needed(links_module, "language_link") local load_data = mw.loadData local max = math.max local new_title = mw.title.new local pairs = pairs local pattern_escape = m_str_utils.pattern_escape local pluralize = require_when_needed(en_utilities_module, "pluralize") local process_page = require_when_needed(headword_page_module, "process_page") local remove_links = require_when_needed(links_module, "remove_links") local shallowcopy = require_when_needed(table_module, "shallowcopy") local tag_text = require_when_needed(script_utilities_module, "tag_text") local tag_transcription = require_when_needed(script_utilities_module, "tag_transcription") local tag_translit = require_when_needed(script_utilities_module, "tag_translit") local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local trim = m_str_utils.trim local type = type local ufind = mw.ustring.find local ugmatch = mw.ustring.gmatch local ugsub = mw.ustring.gsub local ulen = m_str_utils.len local umatch = mw.ustring.match local m_data = load_data(headword_data_module) local isLemma = m_data.lemmas local isNonLemma = m_data.nonlemmas local notranslit = m_data.notranslit local toBeTagged = m_data.toBeTagged -- If set to true, categories always appear, even in non-mainspace pages local test_force_categories = false -- Add a tracking category to track entries with certain (unusually undesirable) properties. `track_id` is an identifier -- for the particular property being tracked and goes into the tracking page. Specifically, this adds a link in the -- page text to [[Wiktionary:Tracking/headword/TRACK_ID]], meaning you can find all entries with the `track_id` property -- by visiting [[Special:WhatLinksHere/Wiktionary:Tracking/headword/TRACK_ID]]. -- -- If `lang` (a language object) is given, an additional tracking page [[Wiktionary:Tracking/headword/TRACK_ID/CODE]] is -- linked to where CODE is the language code of `lang`, and you can find all entries in the combination of `track_id` -- and `lang` by visiting [[Special:WhatLinksHere/Wiktionary:Tracking/headword/TRACK_ID/CODE]]. This makes it possible to -- isolate only the entries with a specific tracking property that are in a given language. Note that if `lang` -- references at etymology-only language, both that language's code and its full parent's code are tracked. local function track(track_id, lang) local tracking_page = "headword/" .. track_id local m_debug_track = require(debug_track_module) if lang and lang:hasType("etymology-only") then m_debug_track{tracking_page, tracking_page .. "/" .. lang:getCode(), tracking_page .. "/" .. lang:getFullCode()} elseif lang then m_debug_track{tracking_page, tracking_page .. "/" .. lang:getCode()} else m_debug_track(tracking_page) end return true end local function text_in_script(text, script_code) local sc = get_script(script_code) if not sc then error("Internal error: Bad script code " .. script_code) end local characters = sc.characters local out if characters then text = ugsub(text, "%W", "") out = ufind(text, "[" .. characters .. "]") end if out then return true else return false end end local spacingPunctuation = "[%s%p]+" --[[ List of punctuation or spacing characters that are found inside of words. Used to exclude characters from the regex above. ]] local wordPunc = "-#%%&@־׳״'.·*’་•:᠊" local notWordPunc = "[^" .. wordPunc .. "]+" -- Format a term (either a head term or an inflection term) along with any left or right qualifiers, labels, references -- or customized separator: `part` is the object specifying the term (and `lang` the language of the term), which should -- optionally contain: -- * left qualifiers in `q`, an array of strings; -- * right qualifiers in `qq`, an array of strings; -- * left labels in `l`, an array of strings; -- * right labels in `ll`, an array of strings; -- * references in `refs`, an array either of strings (formatted reference text) or objects containing fields `text` -- (formatted reference text) and optionally `name` and/or `group`; -- * a separator in `separator`, defaulting to " <i>or</i> " if this is not the first term (j > 1), otherwise "". -- `formatted` is the formatted version of the term itself, and `j` is the index of the term. local function format_term_with_qualifiers_and_refs(lang, part, formatted, j) local function part_non_empty(field) local list = part[field] if not list then return nil end if type(list) ~= "table" then error(("Internal error: Wrong type for `part.%s`=%s, should be \"table\""):format(field, mw.dumpObject(list))) end return list[1] end if part_non_empty("q") or part_non_empty("qq") or part_non_empty("l") or part_non_empty("ll") or part_non_empty("ref") then formatted = format_pron_qualifiers { lang = lang, text = formatted, q = part.q, qq = part.qq, l = part.l, ll = part.ll, refs = part.refs, } end local separator = part.separator or j > 1 and " <i>or</i> " -- use "" to request no separator if separator then formatted = separator .. formatted end return formatted end --[==[Return true if the given head is multiword according to the algorithm used in full_headword().]==] function export.head_is_multiword(head) for possibleWordBreak in ugmatch(head, spacingPunctuation) do if umatch(possibleWordBreak, notWordPunc) then return true end end return false end do local function workaround_to_exclude_chars(s) return (ugsub(s, notWordPunc, "\2%1\1")) end --[==[Add links to a multiword head.]==] function export.add_multiword_links(head, default) head = "\1" .. ugsub(head, spacingPunctuation, workaround_to_exclude_chars) .. "\2" if default then head = head :gsub("(\1[^\2]*)\\([:#][^\2]*\2)", "%1\\\\%2") :gsub("(\1[^\2]*)([:#][^\2]*\2)", "%1\\%2") end --Escape any remaining square brackets to stop them breaking links (e.g. "[citation needed]"). head = encode_entities(head, "[]", true, true) --[=[ use this when workaround is no longer needed: head = "[[" .. ugsub(head, WORDBREAKCHARS, "]]%1[[") .. "]]" Remove any empty links, which could have been created above at the beginning or end of the string. ]=] return (head :gsub("\1\2", "") :gsub("[\1\2]", {["\1"] = "[[", ["\2"] = "]]"})) end end local function non_categorizable(full_raw_pagename) return full_raw_pagename:find("^Appendix:Gestures/") or -- Unsupported titles with descriptive names. (full_raw_pagename:find("^Unsupported titles/") and not full_raw_pagename:find("`")) end local function tag_text_and_add_quals_and_refs(data, head, formatted, j) -- Add language and script wrapper. formatted = tag_text(formatted, data.lang, head.sc, "head", nil, j == 1 and data.id or nil) -- Add qualifiers, labels, references and separator. return format_term_with_qualifiers_and_refs(data.lang, head, formatted, j) end -- Format a headword with transliterations. local function format_headword(data) -- Are there non-empty transliterations? local has_translits = false local has_manual_translits = false ------ Format the headwords. ------ local head_parts = {} local unique_head_parts = {} local has_multiple_heads = #data.heads > 1 for j, head in ipairs(data.heads) do if head.tr or head.ts then has_translits = true end if head.tr and head.tr_manual or head.ts then has_manual_translits = true end local formatted -- Apply processing to the headword, for formatting links and such. if head.term:find("[[", nil, true) and head.sc:getCode() ~= "Image" then formatted = language_link{term = head.term, lang = data.lang} else formatted = data.lang:makeDisplayText(head.term, head.sc, true) end local head_part = tag_text_and_add_quals_and_refs(data, head, formatted, j) insert(head_parts, head_part) -- If multiple heads, try to determine whether all heads display the same. To do this we need to effectively -- rerun the text tagging and addition of qualifiers and references, using 1 for all indices. if has_multiple_heads then local unique_head_part if j == 1 then unique_head_part = head_part else unique_head_part = tag_text_and_add_quals_and_refs(data, head, formatted, 1) end unique_head_parts[unique_head_part] = true end end local set_size = 0 if has_multiple_heads then for _ in pairs(unique_head_parts) do set_size = set_size + 1 end end if set_size == 1 then head_parts = head_parts[1] else head_parts = concat(head_parts) end if has_manual_translits then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/has-manual-translit]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/has-manual-translit/LANGCODE]] track("has-manual-translit", data.lang) end ------ Format the transliterations and transcriptions. ------ local translits_formatted if has_translits then local translit_parts = {} for _, head in ipairs(data.heads) do if head.tr or head.ts then local this_parts = {} if head.tr then insert(this_parts, tag_translit(head.tr, data.lang:getCode(), "head", nil, head.tr_manual)) if head.ts then insert(this_parts, " ") end end if head.ts then insert(this_parts, "/" .. tag_transcription(head.ts, data.lang:getCode(), "head") .. "/") end insert(translit_parts, concat(this_parts)) end end translits_formatted = " (" .. concat(translit_parts, " <i>or</i> ") .. ")" local langname = data.lang:getCanonicalName() local transliteration_page = new_title(langname .. " transliteration", "Wiktionary") local saw_translit_page = false if transliteration_page and transliteration_page.exists then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted saw_translit_page = true end -- If data.lang is an etymology-only language and we didn't find a translation page for it, fall back to the -- full parent. if not saw_translit_page and data.lang:hasType("etymology-only") then langname = data.lang:getFullName() transliteration_page = new_title(langname .. " transliteration", "Wiktionary") if transliteration_page and transliteration_page.exists then translits_formatted = " [[Wiktionary:" .. langname .. " transliteration|•]]" .. translits_formatted end end else translits_formatted = "" end ------ Paste heads and transliterations/transcriptions. ------ local lemma_gloss if data.gloss then lemma_gloss = ' <span class="ib-content qualifier-content">' .. data.gloss .. '</span>' else lemma_gloss = "" end return head_parts .. translits_formatted .. lemma_gloss end local function format_headword_genders(data) local retval = "" if data.genders and #data.genders > 0 then if data.gloss then retval = "," end local pos_for_cat if not data.nogendercat and not m_data.no_gender_cat[data.lang:getCode()] and not m_data.no_gender_cat[data.lang:getFullCode()] then local pos_category = data.pos_category:gsub("^reconstructed ", "") pos_for_cat = m_data.pos_for_gender_number_cat[pos_category] end local text, cats = format_genders(data.genders, data.lang, pos_for_cat) for _, cat in ipairs(cats) do insert(data.categories, cat) end retval = retval .. "&nbsp;" .. text end return retval end local function format_inflection_parts(data, parts) local any_part_translit = false for j, part in ipairs(parts) do if type(part) ~= "table" then part = {term = part} end local partaccel = part.accel local face = part.face or "bold" if face ~= "bold" and face ~= "plain" and face ~= "hypothetical" then error("The face `" .. face .. "` " .. ( load_data(script_utilities_data_module).faces[face] and "should not be used for non-headword terms on the headword line." or "is invalid." )) end -- Here the final part 'or data.nolinkinfl' allows to have 'nolinkinfl=true' -- right into the 'data' table to disable inflection links of the entire headword -- when inflected forms aren't entry-worthy, e.g.: in Vulgar Latin local nolinkinfl = part.face == "hypothetical" or (part.nolink and track("nolink") or part.nolinkinfl) or ( data.nolink and track("nolink") or data.nolinkinfl) local formatted if part.label then -- FIXME: There should be a better way of italicizing a label. As is, this isn't customizable. formatted = "<i>" .. part.label .. "</i>" else -- Convert the term into a full link. Don't show a transliteration here unless enable_auto_translit is -- requested, either at the `parts` level (i.e. per inflection) or at the `data.inflections` level (i.e. -- specified for all inflections). This is controllable in {{head}} using autotrinfl=1 for all inflections, -- or fNautotr=1 for an individual inflection (remember that a single inflection may be associated with -- multiple terms). The reason for doing this is to avoid clutter in headword lines by default in languages -- where the script is relatively straightforward to read by learners (e.g. Greek, Russian), but allow it -- to be enabled in languages with more complex scripts (e.g. Arabic). local tr = part.translit or (not (parts.enable_auto_translit or data.inflections.enable_auto_translit) and "-" or nil) if tr ~= "-" then any_part_translit = true end formatted = full_link( { term = not nolinkinfl and part.term or nil, alt = part.alt or (nolinkinfl and part.term or nil), lang = part.lang or data.lang, sc = part.sc or parts.sc or nil, gloss = part.gloss, pos = part.pos, lit = part.lit, id = part.id, genders = part.genders, tr = tr, ts = part.transcription, accel = partaccel or parts.accel, }, face ) end parts[j] = format_term_with_qualifiers_and_refs(part.lang or data.lang, part, formatted, j) end local parts_output if #parts > 0 then parts_output = (parts.label and " " or "") .. concat(parts) elseif parts.request then parts_output = " <small>[please provide]</small>" insert(data.categories, "Requests for inflections in " .. data.lang:getFullName() .. " entries") else parts_output = "" end local parts_label = parts.label and ("<i>" .. parts.label .. "</i>") or "" return parts_label .. parts_output, any_part_translit end -- Format the inflections following the headword. local function format_inflections(data) local any_part_translit = false if data.inflections and #data.inflections > 0 then -- Format each inflection individually. for key, infl in ipairs(data.inflections) do local this_any_part_translit data.inflections[key], this_any_part_translit = format_inflection_parts(data, infl) if this_any_part_translit then any_part_translit = true end end local concat_result = concat(data.inflections, ", ") return " (" .. concat_result .. ")" else return "" end end --[==[ -- Returns the plural form of `pos`, a raw part of speech input, which could be singular or -- plural. Irregular plural POS are taken into account (e.g. "kanji" pluralizes to -- "kanji").]==] function export.pluralize_pos(pos) -- Make the plural form of the part of speech return m_data.irregular_plurals[pos] or pos:sub(-1) == "s" and pos or pluralize(pos) end --[==[ -- Return "lemma" if the given POS is a lemma, "non-lemma form" if a non-lemma form, or nil -- if unknown. The POS passed in must be in its plural form ("nouns", "prefixes", etc.). -- If you have a POS in its singular form, call export.pluralize_pos() above to pluralize it -- in a smart fashion that knows when to add "-s" and when to add "-es", and also takes -- into account any irregular plurals.]==] -- -- If `best_guess` is given and the POS is in neither the lemma nor non-lemma list, guess -- based on whether it ends in " forms"; otherwise, return nil.]==] function export.pos_lemma_or_nonlemma(plpos, best_guess) -- Is it a lemma category? if isLemma[plpos] then return "lemma" end local plpos_no_recon = plpos:gsub("^reconstructed ", "") if isLemma[plpos_no_recon] then return "lemma" end -- Is it a nonlemma category? if isNonLemma[plpos] or isNonLemma[plpos_no_recon] then return "non-lemma form" end local plpos_no_mut = plpos:gsub("^mutated ", "") if isLemma[plpos_no_mut] or isNonLemma[plpos_no_mut] then return "non-lemma form" elseif best_guess then return plpos:find(" forms$") and "non-lemma form" or "lemma" else return nil end end -- Find and return the maximum index in the array `data[element]` (which may have gaps in it), and initialize it to a -- zero-length array if unspecified. Check to make sure all keys are numeric (other than "maxindex", which is set by -- [[Module:parameters]] for list parameters), all values are strings, and unless `allow_blank_string` is given, -- no blank (zero-length) strings are present. local function init_and_find_maximum_index(data, element, allow_blank_string) local maxind = 0 if not data[element] then data[element] = {} end local typ = type(data[element]) if typ ~= "table" then error(("In full_headword(), `data.%s` must be an array but is a %s"):format(element, typ)) end for k, v in pairs(data[element]) do if k ~= "maxindex" then if type(k) ~= "number" then error(("Unrecognized non-numeric key '%s' in `data.%s`"):format(k, element)) end if k > maxind then maxind = k end if v then if type(v) ~= "string" then error(("For key '%s' in `data.%s`, value should be a string but is a %s"):format(k, element, type(v))) end if not allow_blank_string and v == "" then error(("For key '%s' in `data.%s`, blank string not allowed; use 'false' for the default"):format(k, element)) end end end end return maxind end --[==[ -- Add the page to various maintenance categories for the language and the -- whole page. These are placed in the headword somewhat arbitrarily, but -- mainly because headword templates are mandatory for entries (meaning that -- in theory it provides full coverage). -- -- This is provided as an external entry point so that modules which transclude -- information from other entries (such as {{tl|ja-see}}) can take advantage -- of this feature as well, because they are used in place of a conventional -- headword template.]==] do -- Handle any manual sortkeys that have been specified in raw categories -- by tracking if they are the same or different from the automatically- -- generated sortkey, so that we can track them in maintenance -- categories. local function handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) sortkey = sortkey or lang:makeSortKey(page.pagename) -- If there are raw categories with no sortkey, then they will be -- sorted based on the default MediaWiki sortkey, so we check against -- that. if tbl == true then if page.raw_defaultsort ~= sortkey then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return end local redundant, different for k in pairs(tbl) do if k == sortkey then redundant = true else different = true end end if redundant then insert(lang_cats, lang:getFullName() .. " terms with redundant sortkeys") end if different then insert(lang_cats, lang:getFullName() .. " terms with non-redundant non-automated sortkeys") end return sortkey end function export.maintenance_cats(page, lang, lang_cats, page_cats) for _, cat in ipairs(page.cats) do insert(page_cats, cat) end lang = lang:getFull() -- since we are just generating categories local canonical = lang:getCanonicalName() local tbl, sortkey = page.wikitext_topic_cat[lang:getCode()] if tbl then sortkey = handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with topic categories using raw markup") end tbl = page.wikitext_langname_cat[canonical] if tbl then handle_raw_sortkeys(tbl, sortkey, page, lang, lang_cats) insert(lang_cats, canonical .. " entries with language name categories using raw markup") end if get_current_L2() ~= canonical then insert(lang_cats, canonical .. " entries with incorrect language header") end end end --[==[This is the primary external entry point. {{lua|full_headword(data)}} This is used by {{temp|head}} and various language-specific headword templates (e.g. {{temp|ru-adj}} for Russian adjectives, {{temp|de-noun}} for German nouns, etc.) to display an entire headword line. See [[#Further explanations for full_headword()]] ]==] function export.full_headword(data) -- Prevent data from being destructively modified. local data = shallowcopy(data) ------------ 1. Basic checks for old-style (multi-arg) calling convention. ------------ if data.getCanonicalName then error("In full_headword(), the first argument `data` needs to be a Lua object (table) of properties, not a language object") end if not data.lang or type(data.lang) ~= "table" or not data.lang.getCode then error("In full_headword(), the first argument `data` needs to be a Lua object (table) and `data.lang` must be a language object") end if data.id and type(data.id) ~= "string" then error("The id in the data table should be a string.") end ------------ 2. Initialize pagename etc. ------------ local langcode = data.lang:getCode() local full_langcode = data.lang:getFullCode() local langname = data.lang:getCanonicalName() local full_langname = data.lang:getFullName() local raw_pagename, page = data.pagename if raw_pagename and raw_pagename ~= m_data.pagename then -- for testing, doc pages, etc. page = process_page(raw_pagename) else page = m_data.page end -- Check the namespace against the language type. local namespace = page.namespace if namespace == "" then if data.lang:hasType("reconstructed") then error("Entries in " .. langname .. " must be placed in the Reconstruction: namespace") elseif data.lang:hasType("appendix-constructed") then error("Entries in " .. langname .. " must be placed in the Appendix: namespace") end elseif namespace == "Citations" or namespace == "Thesaurus" then error("Headword templates should not be used in the " .. namespace .. ": namespace.") end ------------ 3. Initialize `data.heads` table; if old-style, convert to new-style. ------------ if type(data.heads) == "table" and type(data.heads[1]) == "table" then -- new-style if data.translits or data.transcriptions then error("In full_headword(), if `data.heads` is new-style (array of head objects), `data.translits` and `data.transcriptions` cannot be given") end else -- convert old-style `heads`, `translits` and `transcriptions` to new-style local maxind = max( init_and_find_maximum_index(data, "heads"), init_and_find_maximum_index(data, "translits", true), init_and_find_maximum_index(data, "transcriptions", true) ) for i = 1, maxind do data.heads[i] = { term = data.heads[i], tr = data.translits[i], ts = data.transcriptions[i], } end end -- Make sure there's at least one head. if not data.heads[1] then data.heads[1] = {} end ------------ 4. Initialize and validate `data.categories` and `data.whole_page_categories`, and determine `pos_category` if not given, and add basic categories. ------------ -- EXPERIMENTAL: see [[Wiktionary:Beer parlour/2024/June#Decluttering the altform mess]] if data.altform then data.noposcat = true end init_and_find_maximum_index(data, "categories") init_and_find_maximum_index(data, "whole_page_categories") local pos_category_already_present = false if #data.categories > 0 then local escaped_langname = pattern_escape(full_langname) local matches_lang_pattern = "^" .. escaped_langname .. " " for _, cat in ipairs(data.categories) do -- Does the category begin with the language name? If not, tag it with a tracking category. if not cat:find(matches_lang_pattern) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/no lang category]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/no lang category/LANGCODE]] track("no lang category", data.lang) end end -- If `pos_category` not given, try to infer it from the first specified category. If this doesn't work, we -- throw an error below. if not data.pos_category and data.categories[1]:find(matches_lang_pattern) then data.pos_category = data.categories[1]:gsub(matches_lang_pattern, "") -- Optimization to avoid inserting category already present. pos_category_already_present = true end end if not data.pos_category then error("`data.pos_category` not specified and could not be inferred from the categories given in " .. "`data.categories`. Either specify the plural part of speech in `data.pos_category` " .. "(e.g. \"proper nouns\") or ensure that the first category in `data.categories` is formed from the " .. "language's canonical name plus the plural part of speech (e.g. \"Norwegian Bokmål proper nouns\")." ) end -- Insert a category at the beginning for the part of speech unless it's already present or `data.noposcat` given. if not pos_category_already_present and not data.noposcat then local pos_category = full_langname .. " " .. data.pos_category -- FIXME: [[User:Theknightwho]] Why is this special case here? Please add an explanatory comment. if pos_category ~= "Translingual Han characters" then insert(data.categories, 1, pos_category) end end -- Try to determine whether the part of speech refers to a lemma or a non-lemma form; if we can figure this out, -- add an appropriate category. local postype = export.pos_lemma_or_nonlemma(data.pos_category) if not postype then -- We don't know what this category is, so tag it with a tracking category. -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/LANGCODE]] track("unrecognized pos", data.lang) -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/POS]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/POS/LANGCODE]] track("unrecognized pos/pos/" .. data.pos_category, data.lang) elseif not data.noposcat then insert(data.categories, 1, full_langname .. " " .. postype .. "s") end -- EXPERIMENTAL: see [[Wiktionary:Beer parlour/2024/June#Decluttering the altform mess]] if data.altform then insert(data.categories, 1, full_langname .. " alternative forms") end ------------ 5. Create a default headword, and add links to multiword page names. ------------ -- Determine if term is reconstructed local is_reconstructed = namespace == "Reconstruction" or data.lang:hasType("reconstructed") -- Create a default headword based on the pagename, which is determined in -- advance by the data module so that it only needs to be done once. local default_head = page.pagename -- Add links to multi-word page names when appropriate if not data.nolinkhead and not m_data.no_multiword_links[langcode] and not m_data.no_multiword_links[full_langcode] and not is_reconstructed and export.head_is_multiword(default_head) then default_head = export.add_multiword_links(default_head, true) end if is_reconstructed then default_head = "*" .. default_head end ------------ 6. Fill in missing values in `data.heads`. ------------ -- True if any script among the headword scripts has spaces in it. local any_script_has_spaces = false -- True if any term has a redundant head= param. local has_redundant_head_param = false for _, head in ipairs(data.heads) do ------ 6a. If missing head, replace with default head. if not head.term then head.term = default_head elseif head.term == default_head then has_redundant_head_param = true elseif head.term:find("^[!?]$") then -- If explicit head= just consists of ! or ?, add it to the end of the default head. head.term = default_head .. head.term end if is_reconstructed then local head_term = head.term if head_term:find("%[%[") then head_term = remove_links(head_term) end if head_term:sub(1, 1) ~= "*" then error("The headword '" .. head_term .. "' must begin with '*' to indicate that it is reconstructed.") end end ------ 6b. Try to detect the script(s) if not provided. If a per-head script is provided, that takes precedence, ------ otherwise fall back to the overall script if given. If neither given, autodetect the script. local auto_sc = data.lang:findBestScript(head.term) if ( auto_sc:getCode() == "None" and find_best_script_without_lang(head.term):getCode() ~= "None" ) then insert(data.categories, full_langname .. " terms in nonstandard scripts") end if not (head.sc or data.sc) then -- No script code given, so use autodetected script. head.sc = auto_sc else if not head.sc then -- Overall script code given. head.sc = data.sc end -- Track uses of sc parameter. if head.sc:getCode() == auto_sc:getCode() then insert(data.categories, full_langname .. " terms with redundant script codes") else insert(data.categories, full_langname .. " terms with non-redundant manual script codes") end end -- If using a discouraged character sequence, add to maintenance category. if head.sc:hasNormalizationFixes() == true then local composed_head = toNFC(head.term) if head.sc:fixDiscouragedSequences(composed_head) ~= composed_head then insert(data.whole_page_categories, "Pages using discouraged character sequences") end end any_script_has_spaces = any_script_has_spaces or head.sc:hasSpaces() ------ 6c. Create automatic transliterations for any non-Latin headwords without manual translit given ------ (provided automatic translit is available, e.g. not in Persian or Hebrew). -- Make transliterations head.tr_manual = nil -- Try to generate a transliteration if necessary if head.tr == "-" then head.tr = nil elseif not notranslit[langcode] and not notranslit[full_langcode] and head.sc:isTransliterated() then head.tr_manual = not not head.tr local text = head.term if not data.lang:link_tr(head.sc) then text = remove_links(text) end local automated_tr, tr_categories automated_tr, head.tr_fail, tr_categories = data.lang:transliterate(text, head.sc) if automated_tr or head.tr_fail then local manual_tr = head.tr if manual_tr then if (remove_links(manual_tr) == remove_links(automated_tr)) and (not head.tr_fail) then insert(data.categories, full_langname .. " terms with redundant transliterations") elseif not head.tr_fail then insert(data.categories, full_langname .. " terms with non-redundant manual transliterations") end end if not manual_tr then head.tr = automated_tr for _, category in ipairs(tr_categories) do insert(data.categories, category) end end end -- There is still no transliteration? -- Add the entry to a cleanup category. if not head.tr then head.tr = "<small>transliteration needed</small>" -- FIXME: No current support for 'Request for transliteration of Classical Persian terms' or similar. -- Consider adding this support in [[Module:category tree/poscatboiler/data/entry maintenance]]. insert(data.categories, "Requests for transliteration of " .. full_langname .. " terms") else -- Otherwise, trim it. head.tr = trim(head.tr) end end -- Link to the transliteration entry for languages that require this. if head.tr and data.lang:link_tr(head.sc) then head.tr = full_link{ term = head.tr, lang = data.lang, sc = get_script("Latn"), tr = "-" } end end ------------ 7. Maybe tag the title with the appropriate script code, using the `display_title` mechanism. ------------ -- Assumes that the scripts in "toBeTagged" will never occur in the Reconstruction namespace. -- (FIXME: Don't make assumptions like this, and if you need to do so, throw an error if the assumption is violated.) -- Avoid tagging ASCII as Hani even when it is tagged as Hani in the headword, as in [[check]]. The check for ASCII -- might need to be expanded to a check for any Latin characters and whitespace or punctuation. local display_title -- Where there are multiple headwords, use the script for the first. This assumes the first headword is similar to -- the pagename, and that headwords that are in different scripts from the pagename aren't first. This seems to be -- about the best we can do (alternatively we could potentially do script detection on the pagename). local dt_script = data.heads[1].sc local dt_script_code = dt_script:getCode() local page_non_ascii = namespace == "" and not page.pagename:find("^[%z\1-\127]+$") local unsupported_pagename, unsupported = page.full_raw_pagename:gsub("^Unsupported titles/", "") if unsupported == 1 and page.unsupported_titles[unsupported_pagename] then display_title = 'Unsupported titles/<span class="' .. dt_script_code .. '">' .. page.unsupported_titles[unsupported_pagename] .. '</span>' elseif page_non_ascii and toBeTagged[dt_script_code] or (dt_script_code == "Jpan" and (text_in_script(page.pagename, "Hira") or text_in_script(page.pagename, "Kana"))) or (dt_script_code == "Kore" and text_in_script(page.pagename, "Hang")) then display_title = '<span class="' .. dt_script_code .. '">' .. page.full_raw_pagename .. '</span>' -- Keep Han entries region-neutral in the display title. elseif page_non_ascii and (dt_script_code == "Hant" or dt_script_code == "Hans") then display_title = '<span class="Hani">' .. page.full_raw_pagename .. '</span>' elseif namespace == "Reconstruction" then local matched display_title, matched = ugsub( page.full_raw_pagename, "^(Reconstruction:[^/]+/)(.+)$", function(before, term) return before .. tag_text(term, data.lang, dt_script) end ) if matched == 0 then display_title = nil end end -- FIXME: Generalize this. -- If the current language uses ur-Arab (for Urdu, etc.), ku-Arab (Central Kurdish) or pa-Arab -- (Shahmukhi, for Punjabi) and there's more than one language on the page, don't set the display title -- because these three scripts display in Nastaliq and we don't want this for terms that also exist in other -- languages that don't display in Nastaliq (e.g. Arabic or Persian) to display in Nastaliq. Because the word -- "Urdu" occurs near the end of the alphabet, Urdu fonts tend to override the fonts of other languages. -- FIXME: This is checking for more than one language on the page but instead needs to check if there are any -- languages using scripts other than the ones just mentioned. if (dt_script_code == "ur-Arab" or dt_script_code == "ku-Arab" or dt_script_code == "pa-Arab") and page.L2_list.n > 1 then display_title = nil end if display_title then mw.getCurrentFrame():callParserFunction( "DISPLAYTITLE", display_title ) end ------------ 8. Insert additional categories. ------------ if data.force_cat_output then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/force cat output]] track("force cat output") end if has_redundant_head_param then if not data.no_redundant_head_cat then insert(data.categories, full_langname .. " terms with redundant head parameter") end end -- If the first head is multiword (after removing links), maybe insert into "LANG multiword terms". if not data.nomultiwordcat and any_script_has_spaces and postype == "lemma" and not m_data.no_multiword_cat[langcode] and not m_data.no_multiword_cat[full_langcode] then -- Check for spaces or hyphens, but exclude prefixes and suffixes. -- Use the pagename, not the head= value, because the latter may have extra -- junk in it, e.g. superscripted text that throws off the algorithm. local checkpattern = ".[%s%-፡]." if m_data.hyphen_not_multiword_sep[langcode] or m_data.hyphen_not_multiword_sep[full_langcode] then -- Exclude hyphens if the data module states that they should for this language checkpattern = ".[%s፡]." end if umatch(page.pagename, checkpattern) and not non_categorizable(page.full_raw_pagename) then insert(data.categories, full_langname .. " multiword terms") end end if data.sccat then for _, head in ipairs(data.heads) do insert(data.categories, full_langname .. " " .. data.pos_category .. " in " .. head.sc:getDisplayForm()) end end -- Reconstructed terms often use weird combinations of scripts and realistically aren't spelled so much as notated. if namespace ~= "Reconstruction" then -- Map from languages to a string containing the characters to ignore when considering whether a term has -- multiple written scripts in it. Typically these are Greek or Cyrillic letters used for their phonetic -- values. local characters_to_ignore = { ["aaq"] = "α", -- Penobscot ["acy"] = "δθ", -- Cypriot Arabic ["anc"] = "γ", -- Ngas ["aou"] = "χ", -- A'ou ["awg"] = "β", -- Anguthimri ["bhp"] = "β", -- Bima ["byk"] = "θ", -- Biao ["cdy"] = "θ", -- Chadong ["clm"] = "χ", -- Klallam ["col"] = "χ", -- Colombia-Wenatchi ["coo"] = "χ", -- Comox; FIXME: others? E.g. Greek theta (θ)? ["ets"] = "θ", -- Yekhee ["gmw-gts"] = "χ", -- Gottscheerish ["hur"] = "θ", -- Halkomelem ["izh"] = "ь", -- Ingrian ["kic"] = "θ", -- Kickapoo ["lil"] = "χ", -- Lillooet ["mhz"] = "β", -- Mor (Austronesian) ["neg"]= "ӡ", -- Negidal (normally in Cyrillic) ["oui"] = "γβ", -- Old Uyghur: FIXME: others? E.g. Greek delta (δ)? ["pox"] = "χ", -- Polabian ["rom"] = "Θθ", -- Romani: International Standard; two different thetas??? ["sah"] = "ь", -- Yakut (1929 - 1939 Latin spelling) ["sjw"] = "θ", -- Shawnee ["squ"] = "χ", -- Squamish ["str"] = "χθ", -- Saanich; uses two Greek letters ["twa"] = "χ", -- Twana ["yha"] = "θ", -- Baha ["za"] = "зч", -- Zhuang; 1957-1982 alphabet used two Cyrillic letters (as well as some others like -- ƃ, ƅ, ƨ, ɯ and ɵ that look like Cyrillic or Greek but are actually Latin) ["zlw-slv"] = "χђћ", -- Slovincian; FIXME: χ is Greek, the other two are Cyrillic, but I'm not sure -- the currect characters are being chosen in the entry names ["zng"] = "θ", -- Mang } -- Determine how many real scripts are found in the pagename, where we exclude symbols and such. We exclude -- scripts whose `character_category` is false as well as Zmth (mathematical notation symbols), which has a -- category of "Mathematical notation symbols". When counting scripts, we need to elide language-specific -- variants because e.g. Beng and as-Beng have slightly different characters but we don't want to consider them -- two different scripts (e.g. [[এৰ]] has two characters which are detected respectively as Beng and as-Beng). local seen_scripts = {} local num_seen_scripts = 0 local num_loops = 0 local canon_pagename = page.pagename local ch_to_ignore = characters_to_ignore[full_langcode] if ch_to_ignore then canon_pagename = ugsub(canon_pagename, "[" .. ch_to_ignore .. "]", "") end local script_data = load_data(scripts_data_module) while true do if canon_pagename == "" or num_seen_scripts >= 2 or num_loops >= 10 then break end -- Make sure we don't get into a loop checking the same script over and over again; happens with e.g. [[ᠪᡳ]] num_loops = num_loops + 1 local pagename_script = find_best_script_without_lang(canon_pagename, "None only as last resort") local script_chars = pagename_script.characters if not script_chars then -- we are stuck; this happens with None break end local script_code = pagename_script:getCode() local replaced canon_pagename, replaced = ugsub(canon_pagename, "[" .. script_chars .. "]", "") if replaced and script_code ~= "Zmth" and script_data[script_code] and script_data[script_code].character_category ~= false then script_code = script_code:gsub("^.-%-", "") if not seen_scripts[script_code] then seen_scripts[script_code] = true num_seen_scripts = num_seen_scripts + 1 end end end if num_seen_scripts > 1 then insert(data.categories, full_langname .. " terms written in multiple scripts") end end -- Categorise for unusual characters. Takes into account combining characters, so that we can categorise for characters with diacritics that aren't encoded as atomic characters (e.g. U̠). These can be in two formats: single combining characters (i.e. character + diacritic(s)) or double combining characters (i.e. character + diacritic(s) + character). Each can have any number of diacritics. local standard = data.lang:getStandardCharacters() if standard and not non_categorizable(page.full_raw_pagename) then local function char_category(char) local specials = { ["#"] = "number sign", ["("] = "parentheses", [")"] = "parentheses", ["<"] = "angle brackets", [">"] = "angle brackets", ["["] = "square brackets", ["]"] = "square brackets", ["_"] = "underscore", ["{"] = "braces", ["|"] = "vertical line", ["}"] = "braces", ["ß"] = "ẞ", ["\205\133"] = "", -- this is UTF-8 for U+0345 ( ͅ) ["\239\191\189"] = "replacement character", } char = toNFD(char) :gsub(".[\128-\191]*", function(m) local new_m = specials[m] new_m = new_m or m:uupper() return new_m end) return toNFC(char) end if full_langcode ~= "hi" and full_langcode ~= "lo" then local standard_chars_scripts = {} for _, head in ipairs(data.heads) do standard_chars_scripts[head.sc:getCode()] = true end -- Iterate over the scripts, in case there is more than one (as they can have different sets of standard characters). for code in pairs(standard_chars_scripts) do local sc_standard = data.lang:getStandardCharacters(code) if sc_standard then if page.pagename_len > 1 then local explode_standard = {} local function explode(char) explode_standard[char] = true return "" end local sc_standard = ugsub(sc_standard, page.comb_chars.combined_double, explode) sc_standard = ugsub(sc_standard,page.comb_chars.combined_single, explode) :gsub(".[\128-\191]*", explode) local num_cat_inserted for char in pairs(page.explode_pagename) do if not explode_standard[char] then if char:find("[0-9]") then if not num_cat_inserted then insert(data.categories, full_langname .. " terms spelled with numbers") num_cat_inserted = true end elseif ufind(char, page.emoji_pattern) then insert(data.categories, full_langname .. " terms spelled with emoji") else local upper = char_category(char) if not explode_standard[upper] then char = upper end insert(data.categories, full_langname .. " terms spelled with " .. char) end end end end -- If a diacritic doesn't appear in any of the standard characters, also categorise for it generally. sc_standard = toNFD(sc_standard) for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_single) do if not umatch(sc_standard, diacritic) then insert(data.categories, full_langname .. " terms spelled with ◌" .. diacritic) end end for diacritic in ugmatch(page.decompose_pagename, page.comb_chars.diacritics_double) do if not umatch(sc_standard, diacritic) then insert(data.categories, full_langname .. " terms spelled with ◌" .. diacritic .. "◌") end end end end -- Ancient Greek, Hindi and Lao handled the old way for now, as their standard chars still need to be converted to the new format (because there are a lot of them). elseif ulen(page.pagename) ~= 1 then for character in ugmatch(page.pagename, "([^" .. standard .. "])") do local upper = char_category(character) if not umatch(upper, "[" .. standard .. "]") then character = upper end insert(data.categories, full_langname .. " terms spelled with " .. character) end end end if data.heads[1].sc:isSystem("alphabet") then local pagename, i = page.pagename:ulower(), 2 while umatch(pagename, "(%a)" .. ("%1"):rep(i)) do i = i + 1 insert(data.categories, full_langname .. " terms with " .. i .. " consecutive instances of the same letter") end end -- Categorise for palindromes if not data.nopalindromecat and namespace ~= "Reconstruction" and ulen(page.pagename) > 2 -- FIXME: Use of first script here seems hacky. What is the clean way of doing this in the presence of -- multiple scripts? and is_palindrome(page.pagename, data.lang, data.heads[1].sc) then insert(data.categories, full_langname .. " palindromes") end if namespace == "" and not data.lang:hasType("reconstructed") then for _, head in ipairs(data.heads) do if page.full_raw_pagename ~= get_link_page(remove_links(head.term), data.lang, head.sc) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/pagename spelling mismatch]] -- [[Special:WhatLinksHere/Wiktionary:Tracking/headword/pagename spelling mismatch/LANGCODE]] track("pagename spelling mismatch", data.lang) break end end end -- Add to various maintenance categories. export.maintenance_cats(page, data.lang, data.categories, data.whole_page_categories) ------------ 9. Format and return headwords, genders, inflections and categories. ------------ -- Format and return all the gathered information. This may add more categories (e.g. gender/number categories), -- so make sure we do it before evaluating `data.categories`. local text = '<span class="headword-line">' .. format_headword(data) .. format_headword_genders(data) .. format_inflections(data) .. '</span>' -- Language-specific categories. local cats = format_categories( data.categories, data.lang, data.sort_key, page.encoded_pagename, data.force_cat_output or test_force_categories, data.heads[1].sc ) -- Language-agnostic categories. local whole_page_cats = format_categories( data.whole_page_categories, nil, "-" ) return text .. cats .. whole_page_cats end return export ej1ifug2dzufrusq36slwlcd77gjxgg 三人称 0 130472 628928 549006 2024-11-06T16:40:12Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628928 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|さん|にん|しょう|yomi=on}} {{ja-ism|さんにんしょう}} # {{kontekst|grammatika|lang=ja}} [[uchinchi]] [[odam]] ===Shuningdek qarang=== * [[一人称]] ([[いちにんしょう]]): [[birinchi]] [[odam]] * [[二人称]] ([[ににんしょう]]): [[ikkinchi]] [[odam]] e56ii084xpwzzvm7n062w7h82nx6pxd 一人称 0 130474 628983 549000 2024-11-06T18:05:16Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628983 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|いち|にん|しょう|yomi=on}} {{ja-ism|いちにんしょう}} # (grammatika) [[birinchi]] [[odam]] ===Shuningdek qarang=== * [[二人称]] [[ににんしょう]]: [[ikkinchi]] [[odam]] * [[三人称]] [[さんにんしょう]]: [[uchinchi]] [[odam]] esaka1k9e7tj5dy92ek5gcj04a1radg 大提琴 0 130658 628967 549246 2024-11-06T17:45:45Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628967 wikitext text/x-wiki {{-zh-}} {{zh-forms|type=12}} ===Talaffuz=== {{zh-pron |m=dàtíqín |c=daai6 tai4 kam4 |cat=n }} {{zh-ism|mw=把}} # (musiqiy asboblar) [[violonchel]] 6lnah8p0djjubd0geju1oe9gpyfceb4 Modul:category tree 828 130809 628999 461774 2024-11-06T18:27:52Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628999 Scribunto text/plain local m_str_utils = require("Module:string utilities") local m_template_parser = require("Module:template parser") local m_utilities = require("Module:utilities") local class_else_type = m_template_parser.class_else_type local concat = table.concat local insert = table.insert local new_title = mw.title.new local pages_in_category = mw.site.stats.pagesInCategory local parse = m_template_parser.parse local remove_comments = m_str_utils.remove_comments local sort = table.sort local split = m_str_utils.split local uupper = m_str_utils.upper local current_frame = mw.getCurrentFrame() local current_title = mw.title.getCurrentTitle() local inFundamental = mw.loadData("Module:category tree/data") local function show_error(text) return require("Module:message box").maintenance( "red", "[[File:Ambox warning pn.svg|50px]]", "This category is not defined in Wiktionary's category tree.", text ) end -- Show the text that goes at the very top right of the page. local function show_topright(current) return (current.getTopright and current:getTopright() or "") end local function link_box(content) return "<div class=\"noprint plainlinks\" style=\"float: right; clear: both; margin: 0 0 .5em 1em; background: var(--wikt-palette-paleblue, #f9f9f9); border: 1px var(--border-color-base, #aaaaaa) solid; margin-top: -1px; padding: 5px; font-weight: bold;\">" .. content .. "</div>" end local function show_editlink(current) return link_box( "[" .. tostring(mw.uri.fullUrl(current:getDataModule(), "action=edit")) .. " Edit category data]") end function show_related_changes() local title = current_title.fullText return link_box( "[" .. tostring(mw.uri.fullUrl("Special:RecentChangesLinked", { target = title, showlinkedto = 0, })) .. ' <span title="Recent edits and other changes to pages in ' .. title .. '">Recent changes</span>]') end local function show_pagelist(current) local namespace = "namespace=" local info = current:getInfo() local lang_code = info.code if info.label == "citations" or info.label == "citations of undefined terms" then namespace = namespace .. "Citations" elseif lang_code then local lang = require("Module:tili").getByCode(lang_code, true, nil, nil, true) if lang then -- Proto-Norse (gmq-pro) is the probably language with a code ending in -pro -- that's intended to have mostly non-reconstructed entries. if (lang_code:find("%-pro$") and lang_code ~= "gmq-pro") or lang:hasType("reconstructed") then namespace = namespace .. "Reconstruction" elseif lang:hasType("appendix-constructed") then namespace = namespace .. "Appendix" end end elseif info.label:match("templates") then namespace = namespace .. "Template" elseif info.label:match("modules") then namespace = namespace .. "Module" elseif info.label:match("^Wiktionary") or info.label:match("^Pages") then namespace = "" end return ([=[ {| id="newest-and-oldest-pages" class="wikitable mw-collapsible" style="float: right; clear: both; margin: 0 0 .5em 1em;" ! Newest and oldest pages&nbsp; |- | id="recent-additions" style="font-size:0.9em;" | '''Newest pages ordered by last [[mw:Manual:Categorylinks table#cl_timestamp|category link update]]:''' %s |- | id="oldest-pages" style="font-size:0.9em;" | '''Oldest pages ordered by last edit:''' %s |}]=]):format( current_frame:extensionTag( "DynamicPageList", ([=[ category=%s %s count=10 mode=ordered ordermethod=categoryadd order=descending]=] ):format(current_title.text, namespace) ), current_frame:extensionTag( "DynamicPageList", ([=[ category=%s %s count=10 mode=ordered ordermethod=lastedit order=ascending]=] ):format(current_title.text, namespace) ) ) end -- Show navigational "breadcrumbs" at the top of the page. local function show_breadcrumbs(current) local steps = {} -- Start at the current label and move our way up the "chain" from child to parent, until we can't go further. while current do local category = nil local display_name = nil local nocap = nil if type(current) == "string" then category = current display_name = current:gsub("^Category:", "") else if not current.getCategoryName then error("Internal error: Bad format in breadcrumb chain structure, probably a misformatted value for `parents`: " .. mw.dumpObject(current)) end category = "Category:" .. current:getCategoryName() display_name, nocap = current:getBreadcrumbName() end if not nocap then display_name = mw.getContentLanguage():ucfirst(display_name) end insert(steps, 1, "[[:" .. category .. "|" .. display_name .. "]]") -- Move up the "chain" by one level. if type(current) == "string" then current = nil else current = current:getParents() end if current then current = current[1].name elseif inFundamental[category] then current = "Category:Fundamental" end end local templateStyles = require("Module:TemplateStyles")("Module:category tree/styles.css") local ol = mw.html.create("ol") for i, step in ipairs(steps) do local li = mw.html.create("li") if i ~= 1 then local span = mw.html.create("span") :attr("aria-hidden", "true") :addClass("ts-categoryBreadcrumbs-separator") :wikitext(" » ") li:node(span) end li:wikitext(step) ol:node(li) end local div = mw.html.create("div") :attr("role", "navigation") :attr("aria-label", "Breadcrumb") :addClass("ts-categoryBreadcrumbs") :node(ol) return templateStyles .. tostring(div) end -- Show a short description text for the category. local function show_description(current) return (current:getDescription() or "") end local function show_appendix(current) local appendix if current.getAppendix then appendix = current:getAppendix() end if appendix then return "For more information, see [[" .. appendix .. "]]." else return nil end end -- Show a list of child categories. local function show_children(current) local children = current:getChildren() if not children then return nil end sort(children, function(first, second) return uupper(first.sort) < uupper(second.sort) end) local children_list = {} for _, child in ipairs(children) do local child_pagetitle if type(child.name) == "string" then child_pagetitle = child.name else child_pagetitle = "Category:" .. child.name:getCategoryName() end local child_page = new_title(child_pagetitle) if child_page.exists then local child_description = child.description or type(child.name) == "string" and child.name:gsub("^Category:", "") .. "." or child.name:getDescription("child") insert(children_list, "* [[:" .. child_pagetitle .. "]]: " .. child_description) end end return concat(children_list, "\n") end -- Show a table of contents with links to each letter in the language's script. local function show_TOC(current) local titleText = current_title.text local inCategoryPages = pages_in_category(titleText, "pages") local inCategorySubcats = pages_in_category(titleText, "subcats") local TOC_type -- Compute type of table of contents required. if inCategoryPages > 2500 or inCategorySubcats > 2500 then TOC_type = "full" elseif inCategoryPages > 200 or inCategorySubcats > 200 then TOC_type = "normal" else -- No (usual) need for a TOC if all pages or subcategories can fit on one page; -- but allow this to be overridden by a custom TOC handler. TOC_type = "none" end if current.getTOC then local TOC_text = current:getTOC(TOC_type) if TOC_text ~= true then return TOC_text end end if TOC_type ~= "none" then local templatename = current:getTOCTemplateName() local TOC_template if TOC_type == "full" then -- This category is very large, see if there is a "full" version of the TOC. local TOC_template_full = new_title(templatename .. "/full") if TOC_template_full.exists then TOC_template = TOC_template_full end end if not TOC_template then local TOC_template_normal = new_title(templatename) if TOC_template_normal.exists then TOC_template = TOC_template_normal end end if TOC_template then return current_frame:expandTemplate{title = TOC_template.text, args = {}} end end return nil end -- Show the "catfix" that adds language attributes and script classes to the page. local function show_catfix(current) local lang, sc if current.getCatfixInfo then lang, sc = current:getCatfixInfo() elseif not (current._info and current._info.no_catfix) then -- FIXME: This is hacky and should be removed. lang = current._lang sc = current._info and require("Module:scripts").getByCode(current._info.sc, true, nil, true) or nil end if lang then return m_utilities.catfix(lang, sc) else return nil end end -- Show the parent categories that the current category should be placed in. local function show_categories(current, categories) local parents = current:getParents() if not parents then return end for _, parent in ipairs(parents) do local sortkey = type(parent.sort) == "table" and parent.sort:makeSortKey() or parent.sort if type(parent.name) == "string" then insert(categories, "[[" .. parent.name .. "|" .. sortkey .. "]]") else insert(categories, "[[Category:" .. parent.name:getCategoryName() .. "|" .. sortkey .. "]]") end end -- Also put the category in its corresponding "umbrella" or "by language" category. local umbrella = current:getUmbrella() if umbrella then -- FIXME: use a language-neutral sorting function like the Unicode Collation Algorithm. local sortkey = current._lang and current._lang:getCanonicalName() or current:getCategoryName() sortkey = require("Module:tili").getByCode("en", true, nil, nil, true):makeSortKey(sortkey) if type(umbrella) == "string" then insert(categories, "[[" .. umbrella .. "|" .. sortkey .. "]]") else insert(categories, "[[Category:" .. umbrella:getCategoryName() .. "|" .. sortkey .. "]]") end end -- Check for various unwanted parser functions, which should be integrated into the category tree data instead. -- Note: HTML comments shouldn't be removed from `content` until after this step, as they can affect the result. local content = current_title:getContent() if not content then -- This happens when using [[Special:ExpandTemplates]] to call {{auto cat}} on a nonexistent category page, -- which is needed by my (Benwing's) create_wanted_categories.py script. return end local defaultsort, displaytitle, page_has_param for node in parse(content):__pairs("next_node") do local node_class = class_else_type(node) if node_class == "template" then local name = node:get_name() if name == "DEFAULTSORT:" and not defaultsort then insert(categories, "[[Category:Pages with DEFAULTSORT conflicts]]") defaultsort = true elseif name == "DISPLAYTITLE:" and not displaytitle then insert(categories,"[[Category:Pages with DISPLAYTITLE conflicts]]") displaytitle = true end elseif node_class == "parameter" and not page_has_param then insert(categories,"[[Category:Pages with raw triple-brace template parameters]]") page_has_param = true end end -- Check for raw category markup, which should also be integrated into the category tree data. content = remove_comments(content, "BOTH") local head = content:find("[[", 1, true) while head do local close = content:find("]]", head + 2, true) if not close then break end -- Make sure there are no intervening "[[" between head and close. local open = content:find("[[", head + 2, true) while open and open < close do head = open open = content:find("[[", head + 2, true) end local cat = content:sub(head + 2, close - 1) local colon = cat:match("^[ _\128-\244]*[Cc][Aa][Tt][EeGgOoRrYy _\128-\244]*():") if colon then local pipe = cat:find("|", colon + 1, true) if pipe ~= #cat then local title = new_title(pipe and cat:sub(1, pipe - 1) or cat) if title and title.namespace == 14 then insert(categories,"[[Category:Categories with categories using raw markup]]") break end end end head = open end end local function generate_output(current) local functions = { "getBreadcrumbName", "getDataModule", "canBeEmpty", "getDescription", "getParents", "getChildren", "getUmbrella", "getAppendix", "getTOCTemplateName", } if current then for _, functionName in pairs(functions) do if type(current[functionName]) ~= "function" then require("Module:debug").track{ "category tree/missing function", "category tree/missing function/" .. functionName } end end end local boxes = {} local display = {} local categories = {} -- Categories should never show files as a gallery. insert(categories, "__NOGALLERY__") if current_frame:getParent():getTitle() == "Template:auto cat" then insert(categories, "[[Category:Categories calling Template:auto cat]]") end -- Check if the category is empty local totalPages = pages_in_category(current_title.text, "all") local hugeCategory = totalPages > 1250000 -- Categorize huge categories, as they can't use DynamicPageList (see below). if hugeCategory then insert(categories, "[[Category:Huge categories]]") end -- Are the parameters valid? if not current then insert(categories, "[[Category:Categories that are not defined in the category tree]]") insert(categories, totalPages == 0 and "[[Category:Empty categories]]" or nil) insert(display, show_error( "Double-check the category name for typos. <br>" .. "[[Special:Search/Category: " .. current_title.text:gsub("^.+:", ""):gsub(" ", "~2 ") .. '~2|Search existing categories]] to check if this category should be created under a different name (for example, "Fruits" instead of "Fruit"). <br>' .. "To add a new category to Wiktionary's category tree, please consult " .. current_frame:expandTemplate{title = "section link", args = { "Help:Category#How_to_create_a_category", }} .. ".")) -- Exit here, as all code beyond here relies on current not being nil return concat(categories, "") .. concat(display, "\n\n"), true end -- Does the category have the correct name? local currentName = current:getCategoryName() local correctName = current_title.text == currentName if not correctName then insert(categories, "[[Category:Categories with incorrect names]]") insert(display, show_error( "Based on the data in the category tree, this category should be called '''[[:Category:" .. currentName .. "]]'''.")) end -- Add cleanup category for empty categories. local canBeEmpty = current:canBeEmpty() if canBeEmpty and correctName then insert(categories, " __EXPECTUNUSEDCATEGORY__") elseif totalPages == 0 then insert(categories, "[[Category:Empty categories]]") end if current:isHidden() then insert(categories, "__HIDDENCAT__") end -- Put all the float-right stuff into a <div> that does not clear, so that float-left stuff like the breadcrumbs and -- description can go opposite the float-right stuff without vertical space. insert(boxes, "<div style=\"float: right;\">") insert(boxes, show_topright(current)) insert(boxes, show_editlink(current)) insert(boxes, show_related_changes()) -- Show pagelist unless the category has more than 1.25 million members, as DynamicPageList times out with very large -- categories. if not hugeCategory then insert(boxes, show_pagelist(current)) end insert(boxes, "</div>") -- Generate the displayed information insert(display, show_breadcrumbs(current)) insert(display, show_description(current)) insert(display, show_appendix(current)) insert(display, show_children(current)) insert(display, show_TOC(current)) insert(display, show_catfix(current)) insert(display, '<br class="clear-both-in-vector-2022-only">') show_categories(current, categories) return concat(boxes, "\n") .. "\n" .. concat(display, "\n\n") .. concat(categories, "") end local export = {} function export.split_lang_label(titleObject) local getByCanonicalName = require("Module:tili").getByCanonicalName local text = titleObject.text -- Progressively remove a word from the potential canonical name until it -- matches an actual canonical name. local words = split(text, " ", true) for i = #words - 1, 1, -1 do local lang = getByCanonicalName(concat(words, " ", 1, i)) if lang then return lang, concat(words, " ", i + 1) end end return nil, text end -- The main entry point from [[Module:auto cat]]. -- TODO: merge [[Module:auto cat]] into this module. function export.main(submodule, info) submodule = require("Module:category tree/" .. submodule) return generate_output(submodule.main(info)) end -- TODO: new test entrypoint. return export ixlq2m2y9jqn8dwbjy2edfxmswzi03i Modul:category tree/poscatboiler/data 828 130813 629001 553104 2024-11-06T18:30:51Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629001 Scribunto text/plain local labels = {} local raw_categories = {} local handlers = {} local raw_handlers = {} local subpages = { "affixes and compounds", "characters", "entry maintenance", "families", "figures of speech", "lang-specific-raw", "tili", "lects", "lemmas", "miscellaneous", "modules", "names", "non-lemma forms", "phrases", "rhymes", "scripts", "shortenings", "speech acts", "symbols", "templates", "terms by etymology", "terms by grammatical category", "terms by lexical property", "terms by semantic function", "terms by script", "terms by usage", "transliterations", "unicode", "wiktionary", "wiktionary maintenance", "word of the day", } -- Import subpages for _, subpage in ipairs(subpages) do local datamodule = "Module:category tree/poscatboiler/data/" .. subpage local retval = require(datamodule) if retval["LABELS"] then for label, data in pairs(retval["LABELS"]) do if labels[label] and not retval["IGNOREDUP"] then error("Label " .. label .. " defined in both [[" .. datamodule .. "]] and [[" .. labels[label].module .. "]].") end data.module = datamodule labels[label] = data end end if retval["RAW_CATEGORIES"] then for category, data in pairs(retval["RAW_CATEGORIES"]) do if raw_categories[category] and not retval["IGNOREDUP"] then error("Raw category " .. category .. " defined in both [[" .. datamodule .. "]] and [[" .. raw_categories[category].module .. "]].") end data.module = datamodule raw_categories[category] = data end end if retval["HANDLERS"] then for _, handler in ipairs(retval["HANDLERS"]) do table.insert(handlers, { module = datamodule, handler = handler }) end end if retval["RAW_HANDLERS"] then for _, handler in ipairs(retval["RAW_HANDLERS"]) do table.insert(raw_handlers, { module = datamodule, handler = handler }) end end end -- Add child categories to their parents local function add_children_to_parents(hierarchy, raw) for key, data in pairs(hierarchy) do local parents = data.parents if parents then if type(parents) ~= "table" then parents = {parents} end if parents.name or parents.module then parents = {parents} end for _, parent in ipairs(parents) do if type(parent) ~= "table" or not parent.name and not parent.module then parent = {name = parent} end if parent.name and not parent.module and type(parent.name) == "string" and not parent.name:find("^Category:") then local parent_is_raw if raw then parent_is_raw = not parent.is_label else parent_is_raw = parent.raw end -- Don't do anything if the child is raw and the parent is lang-specific, -- otherwise e.g. "Lemmas subcategories by language" will be listed as a -- child of every "LANG lemmas" category. -- FIXME: We need to rethink this mechanism. if not raw or parent_is_raw then local child_hierarchy = parent_is_raw and raw_categories or labels if child_hierarchy[parent.name] then local child = {name = key, sort = parent.sort, raw = raw} if child_hierarchy[parent.name].children then table.insert(child_hierarchy[parent.name].children, child) else child_hierarchy[parent.name].children = {child} end end end end end end end end add_children_to_parents(labels) add_children_to_parents(raw_categories, true) return { LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers, RAW_HANDLERS = raw_handlers } osds5ypgebngaqnj7vzmtxhcnp5o2y5 Modul:ugly hacks 828 132635 628971 253221 2024-11-06T17:52:10Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628971 Scribunto text/plain local export = {} function export.explode(frame) local args = frame.args local wanted_index, i = tonumber(args[3]), 1 for item in require("Module:string utilities").gsplit(args[1], args[2], true) do if i == wanted_index then return item end i = i + 1 end return "" end function export.substr(frame) local args = frame.args return require("Module:string utilities").sub(args[1] or "", tonumber(args[2]) or 1, tonumber(args[3]) or -1) end function export.find(frame) local args = frame.args return require("Module:string utilities").find(args[1] or "", args[2] or "", 1, true) or "" end function export.find_pattern(frame) local args = frame.args return require("Module:string utilities").find(args[1] or "", args[2] or "", 1, false) or "" end function export.replace(frame) local args = frame.args return (require("Module:string utilities").gsub(args[1] or "", args[2] or "", args[3] or "")) end function export.match(frame) local args = frame.args return (require("Module:string utilities").match(args[1] or "", args[2] or "")) end function export.is_valid_page_name(frame) return require("Module:pages").is_valid_page_name(frame.args[1]) and "valid" or "" end local mt = {} function mt:__index(k) local track = require("Module:debug/track") local parent = mw.getCurrentFrame():getParent() track("ugly hacks/" .. k) if parent then track("ugly hacks/" .. k .. "/from " .. parent:getTitle()) end return export[k] end return setmetatable({}, mt) dy6ajcsfrq4ubavlg9d6opgtkiu3ymx Modul:ru-common 828 132643 628912 555087 2024-11-06T16:12:09Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628912 Scribunto text/plain --[[ Author: Benwing; some very early work by CodeCat and Atitarev This module holds some commonly used functions for the Russian language. It's generally for use from other modules, not #invoke, although some functions can be invoked from a template (export.iotation(), export.reduce_stem(), export.dereduce_stem() -- this was actually added to support calling from a bot script rather than from a user template). There's also export.main(), which supposedly can be used to invoke most functions in this module from a template, but it may or may not work. There may also be issues when invoking such functions from templates when transliteration is present, due to the need for the transliteration to be decomposed, as mentioned below (all strings from Wiktionary pages are normally in composed form). NOTE NOTE NOTE: All functions assume that transliteration (but not Russian) has had its acute and grave accents decomposed using export.decompose(). This is the first thing that should be done to all user-specified transliteration and any transliteration we compute that we expect to work with. ]] local export = {} local lang = require("Module:tili").getByCode("ru") local strutils = require("Module:string utilities") local m_table_tools = require("Module:table tools") -- Prevents an infinite require loop since ru-translit requires a different function in this module. local m_ru_translit = require("Module:require when needed")("Module:ru-translit") local u = require("Module:string/char") local rfind = mw.ustring.find local rsubn = mw.ustring.gsub local ulen = mw.ustring.len local rmatch = mw.ustring.match local rsplit = mw.text.split local toNFD = mw.ustring.toNFD local ulower = mw.ustring.lower local uupper = mw.ustring.upper local usub = mw.ustring.sub local AC = u(0x0301) -- acute = ́ local GR = u(0x0300) -- grave = ̀ local CFLEX = u(0x0302) -- circumflex = ̂ local BREVE = u(0x0306) -- breve ̆ local DIA = u(0x0308) -- diaeresis = ̈ local CARON = u(0x030C) -- caron ̌ local OGONEK = u(0x0328) -- ogonek ̨ local PSEUDOVOWEL = u(0xFFF1) -- pseudovowel placeholder local PSEUDOCONS = u(0xFFF2) -- pseudoconsonant placeholder -- any accent export.accent = AC .. GR .. DIA .. BREVE .. CARON .. OGONEK -- regex for any optional accent(s) export.opt_accent = "[" .. export.accent .. "]*" -- any composed Cyrillic vowel with grave accent export.composed_grave_vowel = "ѐЀѝЍ" -- any Cyrillic vowel except ёЁ export.vowel_no_jo = "аеиоуяэыюіѣѵАЕИОУЯЭЫЮІѢѴ" .. PSEUDOVOWEL .. export.composed_grave_vowel -- any Cyrillic vowel, including ёЁ export.vowel = export.vowel_no_jo .. "ёЁ" -- any vowel in transliteration export.tr_vowel = "aeěɛiouyAEĚƐIOUY" .. PSEUDOVOWEL -- any consonant in transliteration, omitting soft/hard sign export.tr_cons_no_sign = "bcčdfghjklmnpqrsštvwxzžBCČDFGHJKLMNPQRSŠTVWXZŽ" .. PSEUDOCONS -- any consonant in transliteration, including soft/hard sign export.tr_cons = export.tr_cons_no_sign .. "ʹʺ" -- regex for any consonant in transliteration, including soft/hard sign, -- optionally followed by any accent export.tr_cons_acc_re = "[" .. export.tr_cons .. "]" .. export.opt_accent -- any Cyrillic consonant except sibilants and ц export.cons_except_sib_c = "бдфгйклмнпрствхзьъБДФГЙКЛМНПРСТВХЗЬЪ" .. PSEUDOCONS -- Cyrillic sibilant consonants export.sib = "шщчжШЩЧЖ" -- Cyrillic sibilant consonants and ц export.sib_c = export.sib .. "цЦ" -- any Cyrillic consonant export.cons = export.cons_except_sib_c .. export.sib_c -- Cyrillic velar consonants export.velar = "кгхКГХ" -- uppercase Cyrillic consonants export.uppercase = "АЕИОУЯЭЫЁЮІѢѴБДФГЙКЛМНПРСТВХЗЬЪШЩЧЖЦ" -- 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 local function ine(x) return x ~= "" and x or nil end -- this function enables the module to be called from a template; -- FIXME, does this actually work? function export.main(frame) -- FIXME: Not used. Consider deleting. if type(export[frame.args[1]]) == 'function' then return export[frame.args[1]](frame.args[2], frame.args[3]) else return export[frame.args[1]][frame.args[2]] end end -- selects preposition о, об or обо for next phrase, which can start from -- punctuation function export.obo(phr) -- FIXME: Not used. Consider deleting. --Algorithm design is mainly inherited from w:ru:template:Обо local w = rmatch(phr,"[%p%s%c]*(.-)[%p%s%c]") or rmatch(phr,"[%p%s%c]*(.-)$") if not w then return nil end if string.find(" всей всём всех мне ",' '..ulower(w)..' ',1,true) then return 'обо' end local ws=usub(w,1,2) if ws==uupper(ws) then -- abbrev if rmatch(ws,"^[ЙУНФЫАРОЛЭСМИRYUIOASFHLXNMÖÜÄΑΕΟΥΩ]") then return 'об' else return 'о' end elseif rmatch(uupper(w),"^[АОЭИУЫAOIEÖÜÄΑΕΟΥΩ]") then return 'об' else return 'о' end end -- Apply Proto-Slavic iotation. This is the change that is affected by a -- Slavic -j- after a consonant. function export.iotation(stem, tr, shch) local combine_tr = false -- so this can be called from a template if type(stem) == 'table' then stem, tr, shch = ine(stem.args[1]), ine(stem.args[2]), ine(stem.args[3]) combine_tr = true end stem = rsub(stem, "[сх]$", "ш") stem = rsub(stem, "ск$", "щ") stem = rsub(stem, "ст$", "щ") stem = rsub(stem, "[кц]$", "ч") -- normally "т" is iotated as "ч" but there are many verbs that are iotated with "щ" if shch == "щ" then stem = rsub(stem, "т$", "щ") else stem = rsub(stem, "т$", "ч") end stem = rsub(stem, "[гдз]$", "ж") stem = rsub(stem, "([бвмпф])$", "%1л") if tr then tr = rsub(tr, "[sx]$", "š") tr = rsub(tr, "sk$", "šč") tr = rsub(tr, "st$", "šč") tr = rsub(tr, "[kc]$", "č") -- normally "т" is iotated as "ч" but there are many verbs that are iotated with "щ" if shch == "щ" then tr = rsub(tr, "t$", "šč") else tr = rsub(tr, "t$", "č") end tr = rsub(tr, "[gdz]$", "ž") tr = rsub(tr, "([bvmpf])$", "%1l") end if combine_tr then return export.combine_russian_tr(stem, tr) else return stem, tr end end -- Does a set of Cyrillic words in connected text need accents? We need to -- split by word and check each one. function export.needs_accents(text) local function word_needs_accents(word) -- A word needs accents if it is unstressed and contains more than -- one vowel, unless it's a prefix or suffix return not rfind(word, "^%-") and not rfind(word, "%-$") and export.is_unstressed(word) and not export.is_monosyllabic(word) end local words = rsplit(text, "%s") for _, word in ipairs(words) do if word_needs_accents(word) then return true end end return false end -- True if either: -- (1) A vowel is marked with explicit primary stress. -- (2) The word has a single jo in it (which doesn't have secondary stress). -- This is because a word with multiple jos requires explicit stress to be -- marked, since we can't infer where primary stress lies. -- Jo can be ё, ѣ̈, or я̈ (e.g. сѣ̈дла, plural of сѣдло́). function export.is_stressed(word) if word:match(AC) then return true end word = toNFD(word) return ( select(2, rsubn(word, "[еѣяЕѢЯ]" .. DIA, "")) == 1 and not rmatch(word, "[еѣяЕѢЯ]" .. DIA .. GR) ) end -- True if a Cyrillic word requires explicit stress. function export.is_unstressed(word) return not export.is_stressed(word) end -- True if Cyrillic word is stressed on the last syllable function export.is_ending_stressed(word) return rfind(word, "[ёЁ][^" .. export.vowel .. "]*$") or rfind(word, "[" .. export.vowel .. "][́̈][^" .. export.vowel .. "]*$") end -- True if a Cyrillic word has two or more stresses (acute or diaeresis) function export.is_multi_stressed(word) word = rsub(word, "[ёЁ]", "е́") return rfind(word, "[" .. export.vowel .. "][́̈].*[" .. export.vowel .. "][́̈]") end -- True if Cyrillic word is stressed on the first syllable function export.is_beginning_stressed(word) return rfind(word, "^[^" .. export.vowel .. "]*[ёЁ]") or rfind(word, "^[^" .. export.vowel .. "]*[" .. export.vowel .. "]́") end -- True if Cyrillic word has no vowel. Don't treat suffixes as nonsyllabic -- even if they have no vowel, as they are generally added onto words with -- vowels. function export.is_nonsyllabic(word) return not rfind(word, "^%-") and not rfind(word, "[" .. export.vowel .. "]") end -- True if Cyrillic word has no more than one vowel; includes non-syllabic -- stems such as льд- function export.is_monosyllabic(word) return not rfind(word, "[" .. export.vowel .. "].*[" .. export.vowel .. "]") end local recomposer = { -- Cyrillic letters ["е" .. DIA] = "ё", ["Е" .. DIA] = "Ё", ["и" .. BREVE] = "й", ["И" .. BREVE] = "Й", ["і" .. DIA] = "ї", ["І" .. DIA] = "Ї", -- Latin letters ["c" .. CARON] = "č", ["C" .. CARON] = "Č", ["e" .. CARON] = "ě", ["E" .. CARON] = "Ě", ["o" .. CARON] = "ǒ", ["O" .. CARON] = "Ǒ", ["o" .. OGONEK] = "ǫ", ["O" .. OGONEK] = "Ǫ", ["s" .. CARON] = "š", ["S" .. CARON] = "Š", ["z" .. CARON] = "ž", ["Z" .. CARON] = "Ž", -- used in ru-pron: ["ж" .. BREVE] = "ӂ", -- used in ru-pron ["Ж" .. BREVE] = "Ӂ", ["j" .. CFLEX] = "ĵ", ["J" .. CFLEX] = "Ĵ", ["j" .. CARON] = "ǰ", -- no composed uppercase equivalent of J-caron ["ʒ" .. CARON] = "ǯ", ["Ʒ" .. CARON] = "Ǯ", } -- Decompose acute, grave, etc. on letters (esp. Latin) into individivual -- character + combining accent. But recompose Cyrillic and Latin characters -- that we want to treat as units and get caught in the crossfire. We mostly -- want acute and grave decomposed; perhaps should just explicitly decompose -- those and no others. function export.decompose(text) text = toNFD(text) text = rsub(text, ".[" .. BREVE .. DIA .. CARON .. OGONEK .. "]", recomposer) return text end function export.assert_decomposed(text) assert(not rfind(text, "[áéíóúýàèìòùỳäëïöüÿÁÉÍÓÚÝÀÈÌÒÙỲÄËÏÖÜŸ]")) end -- Transliterate text and then apply acute/grave decomposition. function export.translit(text, no_include_monosyllabic_jo_accent) local jo_accent = not no_include_monosyllabic_jo_accent and "mono" or nil return export.decompose(m_ru_translit.tr(text, nil, nil, jo_accent)) end -- Recompose acutes and graves into preceding vowels. Probably not necessary. function export.recompose(text) return mw.ustring.toNFC(text) end local grave_decomposer = { ["ѐ"] = "е" .. GR, ["Ѐ"] = "Е" .. GR, ["ѝ"] = "и" .. GR, ["Ѝ"] = "И" .. GR, } -- decompose precomposed Cyrillic chars w/grave accent; not necessary for -- acute accent as there aren't precomposed Cyrillic chars w/acute accent, -- and undesirable for precomposed ё and Ё function export.decompose_grave(word) return rsub(word, "[ѐЀѝЍ]", grave_decomposer) end local grave_deaccenter = { [GR] = "", -- grave accent ["ѐ"] = "е", -- composed Cyrillic chars w/grave accent ["Ѐ"] = "Е", ["ѝ"] = "и", ["Ѝ"] = "И", } local deaccenter = mw.clone(grave_deaccenter) deaccenter[AC] = "" -- acute accent -- Remove acute and grave accents; don't affect composed diaeresis in ёЁ or -- uncomposed diaeresis in -ѣ̈- (as in plural сѣ̈дла of сѣдло́). -- NOTE: Translit must already be decomposed! See comment at top. function export.remove_accents(word, tr) local ru_removed = rsub(word, "[́̀ѐЀѝЍ]", deaccenter) if not tr then return ru_removed, nil end return ru_removed, rsub(tr, "[" .. AC .. GR .. "]", deaccenter) end -- Remove grave accents; don't affect acute or composed diaeresis in ёЁ or -- uncomposed diaeresis in -ѣ̈- (as in plural сѣ̈дла of сѣдло́). -- NOTE: Translit must already be decomposed! See comment at top. function export.remove_grave_accents(word, tr) local ru_removed = rsub(word, "[̀ѐЀѝЍ]", grave_deaccenter) if not tr then return ru_removed, nil end return ru_removed, rsub(tr, GR, "") end -- Remove acute and grave accents in monosyllabic words; don't affect -- diaeresis (composed or uncomposed) because it indicates a change in vowel -- quality, which still applies to monosyllabic words. Don't change suffixes, -- where a "monosyllabic" stress is still significant (e.g. -ча́т short -- masculine of -ча́тый, vs. -́чат short masculine of -́чатый). -- NOTE: Translit must already be decomposed! See comment at top. function export.remove_monosyllabic_accents(word, tr) if export.is_monosyllabic(word) and not rfind(word, "^%-") then return export.remove_accents(word, tr) else return word, tr end end local destresser = mw.clone(deaccenter) destresser["ё"] = "е" destresser["Ё"] = "Е" destresser["̈"] = "" -- diaeresis -- Subfunction of split_syllables(). On input we get sections of text -- consisting of CONSONANT - VOWEL - CONSONANT - VOWEL ... - CONSONANT, -- where CONSONANT consists of zero or more consonants and VOWEL consists -- of exactly one vowel plus any following accent(s); we combine these into -- syllables as required by split_syllables(). local function combine_captures(captures) if #captures == 1 then return captures end local combined = {} for i = 1,(#captures-1),2 do table.insert(combined, captures[i] .. captures[i+1]) end combined[#combined] = combined[#combined] .. captures[#captures] return combined end -- Split Russian text and transliteration into syllables. Syllables end with -- vowel + accent(s), except for the last syllable, which includes any -- trailing consonants. -- NOTE: Translit must already be decomposed! See comment at top. function export.split_syllables(ru, tr) -- Split into alternating consonant/vowel sequences, as described in -- combine_captures(). Uses capturing_split(), which is like rsplit() -- but also includes any capturing groups in the split pattern. local rusyllables = combine_captures(strutils.capturing_split(ru, "([" .. export.vowel .. "]" .. export.opt_accent .. ")")) local trsyllables if tr then export.assert_decomposed(tr) trsyllables = combine_captures(strutils.capturing_split(tr, "([" .. export.tr_vowel .. "]" .. export.opt_accent .. ")")) if #rusyllables ~= #trsyllables then error("Russian " .. ru .. " doesn't have same number of syllables as translit " .. tr) end end --error(table.concat(rusyllables, "/") .. "(" .. #rusyllables .. (trsyllables and (") || " .. table.concat(trsyllables, "/") .. "(" .. #trsyllables .. ")") or "")) return rusyllables, trsyllables end -- Split Russian word and transliteration into hyphen-separated components. -- Rejoining with table.concat(..., "-") will recover the original word. -- If the original word ends in a hyphen, that hyphen gets included with the -- preceding component (this is the only case when an individual component has -- a hyphen in it). function export.split_hyphens(ru, tr) local rucomponents = rsplit(ru, "%-") if rucomponents[#rucomponents] == "" and #rucomponents > 1 then rucomponents[#rucomponents - 1] = rucomponents[#rucomponents - 1] .. "-" table.remove(rucomponents) end local trcomponents if tr then trcomponents = rsplit(tr, "%-") if trcomponents[#trcomponents] == "" and #trcomponents > 1 then trcomponents[#trcomponents - 1] = trcomponents[#trcomponents - 1] .. "-" table.remove(trcomponents) end if #rucomponents ~= #trcomponents then error("Russian " .. ru .. " doesn't have same number of hyphenated components as translit " .. tr) end end return rucomponents, trcomponents end -- Apply j correction, converting je to e after consonants, jo to o after -- a sibilant, ju to u after hard sibilant. -- NOTE: Translit must already be decomposed! See comment at top. function export.j_correction(tr) tr = rsub(tr, "([" .. export.tr_cons_no_sign .. "]" .. export.opt_accent ..")[Jj]([EeĚě])", "%1%2") tr = rsub(tr, "([žščŽŠČ])[Jj]([Oo])", "%1%2") tr = rsub(tr, "([žšŽŠ])[Jj]([Uu])", "%1%2") return tr end local function make_unstressed_ru(ru) -- The following regexp has grave+acute+diaeresis after the bracket -- return rsub(ru, "[̀́̈ёЁѐЀѝЍ]", destresser) end -- Remove all stress marks (acute, grave, diaeresis). -- NOTE: Translit must already be decomposed! See comment at top. function export.make_unstressed(ru, tr) if not tr then return make_unstressed_ru(ru), nil end -- In the presence of TR, we need to do things the hard way: Splitting -- into syllables and only converting Latin o to e opposite a ё. rusyl, trsyl = export.split_syllables(ru, tr) for i=1,#rusyl do if rfind(rusyl[i], "[ёЁ]") then trsyl[i] = rsub(trsyl[i], "[Oo]", {["O"] = "E", ["o"] = "e"}) end rusyl[i] = make_unstressed_ru(rusyl[i]) -- the following should still work as it will affect accents only trsyl[i] = make_unstressed_ru(trsyl[i]) end -- Also need to apply j correction as otherwise we'll have je after cons, etc. return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end local function remove_jo_ru(word) return rsub(word, "[̈ёЁ]", destresser) end -- Remove diaeresis stress marks only. -- NOTE: Translit must already be decomposed! See comment at top. function export.remove_jo(ru, tr) if not tr then return remove_jo_ru(ru), nil end -- In the presence of TR, we need to do things the hard way: Splitting -- into syllables and only converting Latin o to e opposite a ё. rusyl, trsyl = export.split_syllables(ru, tr) for i=1,#rusyl do if rfind(rusyl[i], "[ёЁ]") then trsyl[i] = rsub(trsyl[i], "[Oo]", {["O"] = "E", ["o"] = "e"}) end rusyl[i] = remove_jo_ru(rusyl[i]) -- the following should still work as it will affect accents only trsyl[i] = make_unstressed_once_ru(trsyl[i]) end -- Also need to apply j correction as otherwise we'll have je after cons, etc. return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end local function make_unstressed_once_ru(word) -- leave graves alone return rsub(word, "([́̈ёЁ])([^́̈ёЁ]*)$", function(x, rest) return destresser[x] .. rest; end, 1) end local function map_last_hyphenated_component(fn, ru, tr) if rfind(ru, "%-") then -- If there is a hyphen, do it the hard way by splitting into -- individual components and doing the last one. Otherwise we just do -- the whole string. local rucomponents, trcomponents = export.split_hyphens(ru, tr) local lastru, lasttr = fn(rucomponents[#rucomponents], trcomponents and trcomponents[#trcomponents] or nil) rucomponents[#rucomponents] = lastru ru = table.concat(rucomponents, "-") if trcomponents then trcomponents[#trcomponents] = lasttr tr = table.concat(trcomponents, "-") end return ru, tr end return fn(ru, tr) end -- Make last stressed syllable (acute or diaeresis) unstressed; leave -- unstressed; leave graves alone; if NOCONCAT, return individual syllables. -- NOTE: Translit must already be decomposed! See comment at top. local function make_unstressed_once_after_hyphen_split(ru, tr, noconcat) if not tr then return make_unstressed_once_ru(ru), nil end -- In the presence of TR, we need to do things the hard way, as with -- make_unstressed(). rusyl, trsyl = export.split_syllables(ru, tr) for i=#rusyl,1,-1 do local stressed = export.is_stressed(rusyl[i]) if stressed then if rfind(rusyl[i], "[ёЁ]") then trsyl[i] = rsub(trsyl[i], "[Oo]", {["O"] = "E", ["o"] = "e"}) end rusyl[i] = make_unstressed_once_ru(rusyl[i]) -- the following should still work as it will affect accents only trsyl[i] = make_unstressed_once_ru(trsyl[i]) break end end if noconcat then return rusyl, trsyl end -- Also need to apply j correction as otherwise we'll have je after cons return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end -- Make last stressed syllable (acute or diaeresis) to the right of any hyphen -- unstressed (unless the hyphen is word-final); leave graves alone. We don't -- destress a syllable to the left of a hyphen unless the hyphen is word-final -- (i.e. a prefix). Otherwise e.g. the accents in the first part of words like -- ко́е-како́й and а́льфа-лу́ч won't remain. -- NOTE: Translit must already be decomposed! See comment at top. function export.make_unstressed_once(ru, tr) return map_last_hyphenated_component(make_unstressed_once_after_hyphen_split, ru, tr) end local function make_unstressed_once_at_beginning_ru(word) -- leave graves alone return rsub(word, "^([^́̈ёЁ]*)([́̈ёЁ])", function(rest, x) return rest .. destresser[x]; end, 1) end -- Make first stressed syllable (acute or diaeresis) unstressed; leave -- graves alone; if NOCONCAT, return individual syllables. -- NOTE: Translit must already be decomposed! See comment at top. function export.make_unstressed_once_at_beginning(ru, tr, noconcat) if not tr then return make_unstressed_once_at_beginning_ru(ru), nil end -- In the presence of TR, we need to do things the hard way, as with -- make_unstressed(). rusyl, trsyl = export.split_syllables(ru, tr) for i=1,#rusyl do local stressed = export.is_stressed(rusyl[i]) if stressed then if rfind(rusyl[i], "[ёЁ]") then trsyl[i] = rsub(trsyl[i], "[Oo]", {["O"] = "E", ["o"] = "e"}) end rusyl[i] = make_unstressed_once_at_beginning_ru(rusyl[i]) -- the following should still work as it will affect accents only trsyl[i] = make_unstressed_once_at_beginning_ru(trsyl[i]) break end end if noconcat then return rusyl, trsyl end -- Also need to apply j correction as otherwise we'll have je after cons return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end -- Subfunction of make_ending_stressed(), make_beginning_stressed(), which -- add an acute accent to a syllable that may already have a grave accent; -- in such a case, remove the grave. -- NOTE: Translit must already be decomposed! See comment at top. function export.correct_grave_acute_clash(word, tr) word = rsub(word, "([̀ѐЀѝЍ])́", function(x) return grave_deaccenter[x] .. AC; end) word = rsub(word, AC .. GR, AC) if not tr then return word, nil end tr = rsub(tr, GR .. AC, AC) tr = rsub(tr, AC .. GR, AC) return word, tr end local function make_ending_stressed_ru(word) -- If already ending stressed, just return word so we don't mess up ё if export.is_ending_stressed(word) then return word end -- Destress the last stressed syllable word = make_unstressed_once_ru(word) -- Add an acute to the last syllable word = rsub(word, "([" .. export.vowel_no_jo .. "])([^" .. export.vowel .. "]*)$", "%1́%2") -- If that caused an acute and grave next to each other, remove the grave return export.correct_grave_acute_clash(word) end -- Remove the last primary stress from the word and put it on the final -- syllable. Leave grave accents alone except in the last syllable. -- If final syllable already has primary stress, do nothing. -- NOTE: Translit must already be decomposed! See comment at top. local function make_ending_stressed_after_hyphen_split(ru, tr) if not tr then return make_ending_stressed_ru(ru), nil end -- If already ending stressed, just return ru/tr so we don't mess up ё if export.is_ending_stressed(ru) then return ru, tr end -- Destress the last stressed syllable; pass in "noconcat" so we get -- the individual syllables back rusyl, trsyl = make_unstressed_once_after_hyphen_split(ru, tr, "noconcat") -- Add an acute to the last syllable of both Russian and translit rusyl[#rusyl] = rsub(rusyl[#rusyl], "([" .. export.vowel_no_jo .. "])", "%1" .. AC) trsyl[#trsyl] = rsub(trsyl[#trsyl], "([" .. export.tr_vowel .. "])", "%1" .. AC) -- If that caused an acute and grave next to each other, remove the grave rusyl[#rusyl], trsyl[#trsyl] = export.correct_grave_acute_clash(rusyl[#rusyl], trsyl[#trsyl]) -- j correction didn't get applied in make_unstressed_once because -- we short-circuited it and made it return lists of syllables return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end -- Remove the last primary stress from the portion of the word to the right of -- any hyphen (unless the hyphen is word-final) and put it on the final -- syllable. Leave grave accents alone except in the last syllable. If final -- syllable already has primary stress, do nothing. (See make_unstressed_once() -- for why we don't affect stresses to the left of a hyphen.) -- NOTE: Translit must already be decomposed! See comment at top. function export.make_ending_stressed(ru, tr) return map_last_hyphenated_component(make_ending_stressed_after_hyphen_split, ru, tr) end local function make_beginning_stressed_ru(word) -- If already beginning stressed, just return word so we don't mess up ё if export.is_beginning_stressed(word) then return word end -- Destress the first stressed syllable word = make_unstressed_once_at_beginning_ru(word) -- Add an acute to the first syllable word = rsub(word, "^([^" .. export.vowel .. "]*)([" .. export.vowel_no_jo .. "])", "%1%2́") -- If that caused an acute and grave next to each other, remove the grave return export.correct_grave_acute_clash(word) end -- Remove the first primary stress from the word and put it on the initial -- syllable. Leave grave accents alone except in the first syllable. -- If initial syllable already has primary stress, do nothing. -- NOTE: Translit must already be decomposed! See comment at top. function export.make_beginning_stressed(ru, tr) if not tr then return make_beginning_stressed_ru(ru), nil end -- If already beginning stressed, just return ru/tr so we don't mess up ё if export.is_beginning_stressed(ru) then return ru, tr end -- Destress the first stressed syllable; pass in "noconcat" so we get -- the individual syllables back rusyl, trsyl = export.make_unstressed_once_at_beginning(ru, tr, "noconcat") -- Add an acute to the first syllable of both Russian and translit rusyl[1] = rsub(rusyl[1], "([" .. export.vowel_no_jo .. "])", "%1" .. AC) trsyl[1] = rsub(trsyl[1], "([" .. export.tr_vowel .. "])", "%1" .. AC) -- If that caused an acute and grave next to each other, remove the grave rusyl[1], trsyl[1] = export.correct_grave_acute_clash(rusyl[1], trsyl[1]) -- j correction didn't get applied in make_unstressed_once_at_beginning -- because we short-circuited it and made it return lists of syllables return table.concat(rusyl, ""), export.j_correction(table.concat(trsyl, "")) end -- used for tracking and categorization local trailing_letter_type = { ["ш"] = {"sibilant", "cons"}, ["щ"] = {"sibilant", "cons"}, ["ч"] = {"sibilant", "cons"}, ["ж"] = {"sibilant", "cons"}, ["ц"] = {"c", "cons"}, ["к"] = {"velar", "cons"}, ["г"] = {"velar", "cons"}, ["х"] = {"velar", "cons"}, ["ь"] = {"soft-cons", "cons"}, ["ъ"] = {"hard-cons", "cons"}, ["й"] = {"palatal", "cons"}, ["а"] = {"vowel", "hard-vowel"}, ["я"] = {"vowel", "soft-vowel"}, ["э"] = {"vowel", "hard-vowel"}, ["е"] = {"vowel", "soft-vowel"}, ["ѣ"] = {"vowel", "soft-vowel"}, ["и"] = {"i", "vowel", "soft-vowel"}, ["і"] = {"i", "vowel", "soft-vowel"}, ["ѵ"] = {"i", "vowel", "soft-vowel"}, ["ы"] = {"vowel", "hard-vowel"}, ["о"] = {"vowel", "hard-vowel"}, ["ё"] = {"vowel", "soft-vowel"}, ["у"] = {"vowel", "hard-vowel"}, ["ю"] = {"vowel", "soft-vowel"}, } function export.get_stem_trailing_letter_type(stem) local hint = ulower(usub(export.remove_accents(stem), -1)) local hint_types = trailing_letter_type[hint] or {"hard-cons", "cons"} return hint_types end -- Reduce stem by eliminating the "epenthetic" vowel. Applies to -- nominative singular masculine 2nd-declension hard and soft, and -- 3rd-declension feminine in -ь (e.g. любовь). STEM should be the -- result after calling detect_stem_type(), but with final -й if -- present. Normally returns two arguments (STEM and TR), but can be -- called from a template using #invoke and will return one argument -- (STEM, or STEM//TR if TR is present). Returns nil if unable to -- reduce. -- NOTE: Translit must already be decomposed! See comment at top. function export.reduce_stem(stem, tr, soft_n) local pre, letter, post local pretr, lettertr, posttr local combine_tr = false -- test cases with translit: -- =p.reduce_stem("фе́ез", "fɛ́jez") -> фе́йз, fɛ́jz -- =p.reduce_stem("фе́йез", "fɛ́jez") -> фе́йз, fɛ́jz -- =p.reduce_stem("фе́без", "fɛ́bez") -> фе́бз, fɛ́bz -- =p.reduce_stem("фе́лез", "fɛ́lez") -> фе́льз, fɛ́lʹz -- =p.reduce_stem("феёз", p.decompose("fɛjóz")) -> фейз, fɛjz -- =p.reduce_stem("фейёз", p.decompose("fɛjjóz")) -> фейз, fɛjz -- =p.reduce_stem("фебёз", p.decompose("fɛbjóz")) -> фебз, fɛbz -- =p.reduce_stem("фелёз", p.decompose("fɛljóz")) -> фельз, fɛlʹz -- =p.reduce_stem("фе́бей", "fɛ́bej") -> фе́бь, fɛ́bʹ -- =p.reduce_stem("фебёй", p.decompose("fɛbjój")) -> фебь, fɛbʹ -- =p.reduce_stem("фе́ей", "fɛ́jej") -> фе́йй, fɛ́jj -- =p.reduce_stem("феёй", p.decompose("fɛjój")) -> фейй, fɛjj -- so this can be called from a template if type(stem) == 'table' then stem, tr = ine(stem.args[1]), ine(stem.args[2]) combine_tr = true end pre, letter, post = rmatch(stem, "^(.*)([оОеЕёЁ])́?([" .. export.cons .. "]+)$") if not pre then return nil, nil end if tr then -- FIXME, may not be necessary to write the posttr portion as a -- consonant + zero or more consonant/accent combinations -- when will -- we ever get an accent after a consonant? That would indicate a -- failure of the decompose mechanism. pretr, lettertr, posttr = rmatch(tr, "^(.*)([oOeE])́?([" .. export.tr_cons .. "][" .. export.tr_cons .. export.accent .. "]*)$") if not pretr then return nil, nil -- should not happen unless tr is really messed up end -- Remove any trailing j's on the translit stem which don't have a -- corresponding й on the Cyrillic stem. This avoids excess j's with -- cases like индонези́ец//indonɛzíjec, but retains multiple j's where -- necessary. pretr = rsub(pretr, "[jJ]+$", function(m) return usub(m, 1, ulen(rmatch(pre, "[йЙ]*$"))) end) end if letter == "О" or letter == "о" then -- FIXME, what about when the accent is on the removed letter? if post == "й" or post == "Й" then -- FIXME, is this correct? return nil, nil end letter = "" else local is_upper = rfind(post, "[" .. export.uppercase .. "]") if rfind(pre, "[" .. export.vowel .. "]́?$") then letter = is_upper and "Й" or "й" elseif post == "й" or post == "Й" then letter = is_upper and "Ь" or "ь" post = "" if posttr then posttr = "" end elseif rfind(post, "[" .. export.velar .. "]$") and rfind(pre, "[" .. export.cons_except_sib_c .. "]$") or rfind(post, "[^йЙ" .. export.velar .. "]$") and rfind(pre, "[лЛ]$") or soft_n and rfind(pre, "[нН]$") then letter = is_upper and "Ь" or "ь" else letter = "" end end stem = pre .. letter .. post if tr then tr = pretr .. export.translit(letter) .. posttr end if combine_tr then return export.combine_russian_tr(stem, tr) else return stem, tr end end -- Generate the dereduced stem given STEM and EPENTHETIC_STRESS (which -- indicates whether the epenthetic vowel should be stressed); this is -- without any terminating non-syllabic ending, which is added if needed by -- the calling function. Normally returns two arguments (STEM and TR), but -- can be called from a template using #invoke and will return one argument -- (STEM, or STEM//TR if TR is present). Returns nil if unable to dereduce. -- NOTE: Translit must already be decomposed! See comment at top. function export.dereduce_stem(stem, tr, epenthetic_stress) local combine_tr = false -- so this can be called from a template if type(stem) == 'table' then stem, tr, epenthetic_stress = ine(stem.args[1]), ine(stem.args[2]), ine(stem.args[3]) combine_tr = true end if epenthetic_stress then stem, tr = export.make_unstressed_once(stem, tr) end local pre, letter, post local pretr, lettertr, posttr -- FIXME!!! Deal with this special case --if not (z.stem_type == 'soft' and _.equals(z.stress_type, {'b', 'f'}) -- we should ignore asterix for 2*b and 2*f (so to process it just like 2b or 2f) -- or _.contains(z.specific, '(2)') and _.equals(z.stem_type, {'velar', 'letter-ц', 'vowel'})) -- and also the same for (2)-specific and 3,5,6 stem-types --then -- I think this corresponds to our -ья and -ье types, which we -- handle separately --if z.stem_type == 'vowel' then -- 1). -- if _.equals(z.stress_type, {'b', 'c', 'e', 'f', "f'", "b'" }) then -- gen_pl ending stressed -- TODO: special vars for that -- z.stems['gen_pl'] = _.replace(z.stems['gen_pl'], 'ь$', 'е́') -- else -- z.stems['gen_pl'] = _.replace(z.stems['gen_pl'], 'ь$', 'и') -- end --end pre, letter, post = rmatch(stem, "^(.*)([" .. export.cons .. "])([" .. export.cons .. "])$") if tr then pretr, lettertr, posttr = rmatch(tr, "^(.*)(" .. export.tr_cons_acc_re .. ")(" .. export.tr_cons_acc_re .. ")$") if pre and not pretr then return nil, nil -- should not happen unless tr is really messed up end end if pre then local is_upper = rfind(post, "[" .. export.uppercase .. "]") local epvowel if rfind(letter, "[ьйЬЙ]") then letter = "" lettertr = "" if rfind(post, "[цЦ]$") or not epenthetic_stress then epvowel = is_upper and "Е" or "е" else epvowel = is_upper and "Ё" or "ё" end elseif rfind(letter, "[" .. export.cons_except_sib_c .. "]") and rfind(post, "[" .. export.velar .. "]") or rfind(letter, "[" .. export.velar .. "]") then epvowel = is_upper and "О" or "о" elseif post == "ц" or post == "Ц" then epvowel = is_upper and "Е" or "е" elseif epenthetic_stress then if rfind(letter, "[" .. export.sib .. "]") then epvowel = is_upper and "О́" or "о́" else epvowel = is_upper and "Ё" or "ё" end else epvowel = is_upper and "Е" or "е" end assert(epvowel) stem = pre .. letter .. epvowel .. post if tr then tr = pretr .. lettertr .. export.translit(epvowel) .. posttr tr = export.j_correction(tr) end if epenthetic_stress then stem, tr = export.make_ending_stressed(stem, tr) end if combine_tr then return export.combine_russian_tr(stem, tr) else return stem, tr end end return nil, nil end -- Parse an entry that potentially has final footnote symbols and initial * -- for a hypothetical entry into initial symbols, text and final symbols. function export.split_symbols(entry, do_subscript) local prefentry, finalnotes = m_table_tools.separate_notes(entry) local initnotes, text = rmatch(prefentry, "(%*?)(.*)$") return initnotes, text, finalnotes end -------------------------------------------------------------------------- -- Used for manual translit -- -------------------------------------------------------------------------- function export.translit_no_links(text) return export.translit(require("Module:links").remove_links(text)) end function export.split_russian_tr(term, dopair) local ru, tr if not rfind(term, "//") then ru = term else splitvals = rsplit(term, "//") if #splitvals ~= 2 then error("Must have at most one // in a Russian//translit expr: '" .. term .. "'") end ru, tr = splitvals[1], export.decompose(splitvals[2]) end if dopair then return {ru, tr} else return ru, tr end end function export.combine_russian_tr(ru, tr) if type(ru) == "table" then ru, tr = unpack(ru) end if tr then return ru .. "//" .. tr else return ru end end local function concat_maybe_moving_notes(x, y, movenotes) if movenotes then local xentry, xnotes = m_table_tools.separate_notes(x) local yentry, ynotes = m_table_tools.separate_notes(y) return xentry .. yentry .. xnotes .. ynotes else return x .. y end end -- Concatenate two Russian strings RU1 and RU2 that may have corresponding -- manual transliteration TR1 and TR2 (which should be nil if there is no -- manual translit). If DOPAIR, return a two-item list of the combined -- Russian and manual translit (which will be nil if both TR1 and TR2 are -- nil); else, return two values, the combined Russian and manual translit. -- If MOVENOTES, extract any footnote symbols at the end of RU1 and move -- them to the end of the concatenated string, before any footnote symbols -- for RU2; same thing goes for TR1 and TR2. function export.concat_russian_tr(ru1, tr1, ru2, tr2, dopair, movenotes) local ru, tr if not tr1 and not tr2 then ru = concat_maybe_moving_notes(ru1, ru2, movenotes) else if not tr1 then tr1 = export.translit_no_links(ru1) end if not tr2 then tr2 = export.translit_no_links(ru2) end ru, tr = concat_maybe_moving_notes(ru1, ru2, movenotes), export.j_correction(concat_maybe_moving_notes(tr1, tr2, movenotes)) end if dopair then return {ru, tr} else return ru, tr end end -- Concatenate two Russian/translit combinations (where each combination is -- a two-element list of {RUSSIAN, TRANSLIT} where TRANSLIT may be nil) by -- individually concatenating the Russian and translit portions, and return -- a concatenated combination as a two-element list. If the manual translit -- portions of both terms on entry are nil, the result will also have nil -- manual translit. If MOVENOTES, extract any footnote symbols at the end -- of TERM1 and move them after the concatenated string and before any -- footnote symbols at the end of TERM2. function export.concat_paired_russian_tr(term1, term2, movenotes) assert(type(term1) == "table") assert(type(term2) == "table") local ru1, tr1 = term1[1], term1[2] local ru2, tr2 = term2[1], term2[2] return export.concat_russian_tr(ru1, tr1, ru2, tr2, "dopair", movenotes) end function export.concat_forms(forms) local joined_rutr = {} for _, form in ipairs(forms) do table.insert(joined_rutr, export.combine_russian_tr(form)) end return table.concat(joined_rutr, ",") end -- Given a list of forms, where each form is a two-element list of {RUSSIAN, TRANSLIT}, strip footnote symbols from the -- end of the Russian and translit. function export.strip_notes_from_forms(forms) local newforms = {} for _, form in ipairs(forms) do local ru, tr = form[1], form[2] ru, _ = m_table_tools.separate_notes(ru) if tr then tr, _ = m_table_tools.separate_notes(tr) end table.insert(newforms, {ru, tr}) end return newforms end -- Given a list of forms, where each form is a two-element list of {RUSSIAN, TRANSLIT}, unzip into parallel lists of -- Russian and translit. The latter list may have gaps in it. function export.unzip_forms(forms) local rulist = {} local trlist = {} for i, form in ipairs(forms) do local ru, tr = form[1], form[2] rulist[i] = ru trlist[i] = tr end return rulist, trlist end -- Given parallel lists of Russian and translit (where the latter list may have gaps in it), return a list of forms, -- where each form is a two-element list of {RUSSIAN, TRANSLIT}. function export.zip_forms(rulist, trlist) local forms = {} for i, ru in ipairs(rulist) do table.insert(forms, {ru, trlist[i]}) end return forms end local function any_forms_have_translit(forms) for _, form in ipairs(forms) do if form[2] then return true end end return false end -- Given a list of forms, where each form is a two-element list of {RUSSIAN, TRANSLIT}, combine forms with -- identical Russian, concatenating the translit with a comma in between. function export.combine_translit_of_duplicate_forms(forms) if #forms == 0 then return forms end -- Optimization to avoid creating a new list in the majority case when no translit exists. if not any_forms_have_translit(forms) then return forms end local newforms = {} table.insert(newforms, {forms[1][1], forms[1][2]}) for i = 2, #forms do local found_duplicate = false for j = 1, #newforms do -- If the Russian of the next form is the same as that of the last one, combine their translits and modify -- newforms[] in-place. Otherwise add the next form to newforms[]. Make sure to clone the form rather than -- just appending it directly since we may modify it in-place; we don't want to side-effect `forms` as passed -- in. if forms[i][1] == newforms[j][1] then local tr1 = newforms[j][2] local tr2 = forms[i][2] if not tr1 and not tr2 then -- this shouldn't normally happen else tr1 = tr1 or export.translit_no_links(newforms[j][1]) tr2 = tr2 or export.translit_no_links(forms[i][1]) if tr1 == tr2 then -- this shouldn't normally happen else newforms[j][2] = tr1 .. ", " .. tr2 end end found_duplicate = true break end end if not found_duplicate then table.insert(newforms, {forms[i][1], forms[i][2]}) end end return newforms end -- Given a list of forms, where each form is a two-element list of {RUSSIAN, TRANSLIT}, split cases where two different -- transliterations have been packed into a single translit field by creating two adjacent term/translit pairs. This is -- the opposite operation of combine_translit_of_duplicate_forms(). function export.split_translit_of_duplicate_forms(forms) if #forms == 0 then return forms end -- Optimization to avoid creating a new list in the majority case when no translit exists. if not any_forms_have_translit(forms) then return forms end local newforms = {} for _, form in ipairs(forms) do local ru, tr = unpack(form) if not tr or not tr:find(",") or ru:find(",") then table.insert(newforms, form) else local split_trs = rsplit(tr, ",%s*") local default_tr = export.translit_no_links(ru) for _, split_tr in ipairs(split_trs) do if split_tr == default_tr then split_tr = nil end table.insert(newforms, {ru, split_tr}) end end end return newforms end function export.strip_ending(ru, tr, ending) local strippedru = rsub(ru, ending .. "$", "") if strippedru == ru then error("Argument " .. ru .. " doesn't end with expected ending " .. ending) end ru = strippedru tr = export.strip_tr_ending(tr, ending) return ru, tr end function export.strip_tr_ending(tr, ending) if not tr then return nil end local endingtr = rsub(export.translit_no_links(ending), "^([Jj])", "%1?") local strippedtr = rsub(tr, endingtr .. "$", "") if strippedtr == tr then error("Translit " .. tr .. " doesn't end with expected ending " .. endingtr) end return strippedtr end return export 7zmj4fenr1exwvd3tu3wvrdsst55hsp Modul:category tree/poscatboiler 828 151092 629000 553106 2024-11-06T18:29:49Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629000 Scribunto text/plain local concat = table.concat local insert = table.insert local type = type local uupper = require("Module:string utilities").upper local lang_independent_data = require("Module:category tree/poscatboiler/data") local lang_specific_module = "Module:category tree/poscatboiler/data/lang-specific" local lang_specific_module_prefix = lang_specific_module .. "/" local auto_cat_module = "Module:auto cat" local labels_utilities_module = "Module:labels/utilities" -- Category object local Category = {} Category.__index = Category function Category:get_originating_info() local originating_info = "" if self._info.originating_label then originating_info = " (originating from label \"" .. self._info.originating_label .. "\" in module [[" .. self._info.originating_module .. "]])" end return originating_info end local valid_keys = require("Module:table").listToSet{"code", "label", "sc", "raw", "args", "called_from_inside", "originating_label", "originating_module"} function Category.new(info) for key in pairs(info) do if not valid_keys[key] then error("The parameter \"" .. key .. "\" was not recognized.") end end local self = setmetatable({}, Category) self._info = info if not self._info.label then error("No label was specified.") end self:initCommon() if not self._data then error("The " .. (self._info.raw and "raw " or "") .. "label \"" .. self._info.label .. "\" does not exist" .. self:get_originating_info() .. ".") end return self end function Category:initCommon() local args_handled = false if self._info.raw then -- Check if the category exists local raw_categories = lang_independent_data["RAW_CATEGORIES"] self._data = raw_categories[self._info.label] if self._data then if self._data.lang then self._lang = require("Module:tili").getByCode(self._data.lang, true, nil, nil, true) self._info.code = self._lang:getCode() end if self._data.sc then self._sc = require("Module:scripts").getByCode(self._data.sc, true, nil, true) self._info.sc = self._sc:getCode() end else -- Go through raw handlers local data = { category = self._info.label, args = self._info.args or {}, called_from_inside = self._info.called_from_inside, } for _, handler in ipairs(lang_independent_data["RAW_HANDLERS"]) do self._data, args_handled = handler.handler(data) if self._data then self._data.module = self._data.module or handler.module break end end if self._data then -- Update the label if the handler specified a canonical name for it. if self._data.canonical_name then self._info.canonical_name = self._data.canonical_name end if self._data.lang then if type(self._data.lang) ~= "string" then error("Received non-string value " .. mw.dumpObject(self._data.lang) .. " for self._data.lang, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".") end self._lang = require("Module:tili").getByCode(self._data.lang, true, nil, nil, true) self._info.code = self._lang:getCode() end if self._data.sc then if type(self._data.sc) ~= "string" then error("Received non-string value " .. mw.dumpObject(self._data.sc) .. " for self._data.sc, label \"" .. self._info.label .. "\"" .. self:get_originating_info() .. ".") end self._sc = require("Module:scripts").getByCode(self._data.sc, true, nil, true) self._info.sc = self._sc:getCode() end end end else -- Already parsed into language + label if self._info.code then self._lang = require("Module:tili").getByCode(self._info.code, 1, nil, nil, true) else self._lang = nil end if self._info.sc then self._sc = require("Module:scripts").getByCode(self._info.sc, true, nil, true) or error("The script code \"" .. self._info.sc .. "\" is not valid.") else self._sc = nil end self._info.orig_label = self._info.label if not self._lang then -- Umbrella categories without a preceding language always begin with a capital letter, but the actual label may be -- lowercase (cf. [[:Category:Nouns by language]] with label 'nouns' with per-language [[:Category:English nouns]]; -- but [[:Category:Reddit slang by language]] with label 'Reddit slang' with per-language -- [[:Category:English Reddit slang]]). Since the label is almost always lowercase, we lowercase it for umbrella -- categories, storing the original into `orig_label`, and correct it later if needed. self._info.label = mw.getContentLanguage():lcfirst(self._info.label) end -- First, check lang-specific labels and handlers if this is not an umbrella category. if self._lang then local langs_with_modules = mw.loadData(lang_specific_module) local obj, seen = self._lang, {} repeat if langs_with_modules[obj:getCode()] then local module = lang_specific_module_prefix .. obj:getCode() local labels_and_handlers = require(module) if labels_and_handlers.LABELS then self._data = labels_and_handlers.LABELS[self._info.label] if self._data then if self._data.umbrella == nil and self._data.umbrella_parents == nil then self._data.umbrella = false end self._data.module = self._data.module or module end end if not self._data and labels_and_handlers.HANDLERS then for _, handler in ipairs(labels_and_handlers.HANDLERS) do local data = { label = self._info.label, lang = self._lang, sc = self._sc, args = self._info.args or {}, called_from_inside = self._info.called_from_inside, } self._data, args_handled = handler(data) if self._data then if self._data.umbrella == nil and self._data.umbrella_parents == nil then self._data.umbrella = false end self._data.module = self._data.module or module break end end end if self._data then break end end seen[obj:getCode()] = true obj = obj:getFamily() until not obj or seen[obj:getCode()] end -- Then check lang-independent labels. if not self._data then local labels = lang_independent_data["LABELS"] self._data = labels[self._info.label] -- See comment above about uppercase- vs. lowercase-initial labels, which are indistinguishable -- in umbrella categories. if not self._data then self._data = labels[self._info.orig_label] if self._data then self._info.label = self._info.orig_label end end end -- Then check lang-independent handlers. if not self._data then local data = { label = self._info.label, lang = self._lang, sc = self._sc, args = self._info.args or {}, called_from_inside = self._info.called_from_inside, } for _, handler in ipairs(lang_independent_data["HANDLERS"]) do self._data, args_handled = handler.handler(data) if self._data then self._data.module = self._data.module or handler.module break end end end end if not args_handled and self._data and self._info.args and next(self._info.args) then local module_text = " (handled in [[" .. (self._data.module or "UNKNOWN").. "]])" local args_text = {} for k, v in pairs(self._info.args) do insert(args_text, k .. "=" .. ((type(v) == "string" or type(v) == "number") and v or mw.dumpObject(v))) end error("poscatboiler label '" .. self._info.label .. "' " .. module_text .. " doesn't accept extra args " .. concat(args_text, ", ")) end if self._sc and not self._lang then error("Umbrella categories cannot have a script specified.") end end function Category:convert_spec_to_string(desc) if not desc then return desc elseif type(desc) == "number" then return tostring(desc) elseif type(desc) == "function" then return desc{ lang = self._lang, sc = self._sc, label = self._info.label, raw = self._info.raw, } end return desc end -- TODO: use the template parser with this, for more sophisticated handling of multiple brackets. function Category:substitute_template_specs(desc) -- This may end up happening twice but that's OK as the function is (usually) idempotent. -- FIXME: Not idempotent if a preprocessed template returns wikicode. desc = self:convert_spec_to_string(desc) if not desc then return desc end desc = desc:gsub("{{PAGENAME}}", mw.title.getCurrentTitle().text) desc = desc:gsub("{{{umbrella_msg}}}", "This is an umbrella category. It contains no dictionary entries, but " .. "only other, language-specific categories, which in turn contain relevant terms in a given language.") desc = desc:gsub("{{{umbrella_meta_msg}}}", "This is an umbrella metacategory, covering a general area such as " .. '"lemmas", "names" or "terms by etymology". It contains no dictionary entries, but holds only umbrella ' .. '("by language") categories covering specific subtopics, which in turn contain language-specific categories ' .. "holding terms in a given language for that same topic.") local lang = self._lang if lang then desc = desc:gsub("{{{langname}}}", lang:getCanonicalName()) desc = desc:gsub("{{{langcode}}}", lang:getCode()) desc = desc:gsub("{{{langcat}}}", lang:getCategoryName()) desc = desc:gsub("{{{langlink}}}", lang:makeCategoryLink()) end local sc = self._sc if sc then desc = desc:gsub("{{{scname}}}", sc:getCanonicalName()) desc = desc:gsub("{{{sccode}}}", sc:getCode()) desc = desc:gsub("{{{sccat}}}", sc:getCategoryName()) desc = desc:gsub("{{{scdisp}}}", sc:getDisplayForm()) desc = desc:gsub("{{{sclink}}}", sc:makeCategoryLink()) end return mw.getCurrentFrame():preprocess(desc) end function Category:substitute_template_specs_in_args(args) if not args then return args end local pinfo = {} for k, v in pairs(args) do k = self:substitute_template_specs(k) v = self:substitute_template_specs(v) pinfo[k] = v end return pinfo end function Category:make_new(info) info.originating_label = self._info.label info.originating_module = self._data.module info.called_from_inside = true return Category.new(info) end function Category:getBreadcrumbName() local ret if self._lang or self._info.raw then ret = self._data.breadcrumb else ret = self._data.umbrella and self._data.umbrella.breadcrumb end if not ret then ret = self._info.label end if type(ret) ~= "table" then ret = {name = ret} end local name = self:substitute_template_specs(ret.name) local nocap = ret.nocap if self._sc then name = name .. " in " .. self._sc:getDisplayForm() end return name, nocap end function Category:getTOC(toc_type) -- Type "none" means everything fits on a single page; in that case, display nothing. if toc_type == "none" then return nil end local function expand_toc_template_if(template) local template_obj = mw.title.new("Template:" .. template) if template_obj.exists then return mw.getCurrentFrame():expandTemplate{title = template_obj.text, args = {}} end return nil end -- Return the textual expansion of the first existing template among the given templates, first performing -- substitutions on the template name such as replacing {{{langcode}}} with the current language's code (if any). -- If no templates exist after expansion, or if nil is passed in, return nil. If a single string is passed in, -- treat it like a one-element list consisting of that string. local function get_template_text(templates) if templates == nil then return nil end if type(templates) ~= "table" then templates = {templates} end for _, template in ipairs(templates) do if template == false then return false end template = self:substitute_template_specs(template) return expand_toc_template_if(template) end return nil end local templates, fallback_templates -- If TOC type is "full" (more than 2500 entries), do the following, in order: -- 1. look up and expand the `toc_template_full` templates (normal or umbrella, depending on whether there is -- a current language); -- 2. look up and expand the `toc_template` templates (normal or umbrella, as above); -- 3. do the default behavior, which is as follows: -- 3a. look up a language-specific "full" template according to the current language (using English if there -- is no current language); -- 3b. look up a script-specific "full" template according to the first script of current language (using English -- if there is no current language); -- 3c. look up a language-specific "normal" template according to the current language (using English if there -- is no current language); -- 3d. look up a script-specific "normal" template according to the first script of the current language (using -- English if there is no current language); -- 3e. display nothing. -- -- If TOC type is "normal" (between 200 and 2500 entries), do the following, in order: -- 1. look up and expand the `toc_template` templates (normal or umbrella, depending on whether there is -- a current language); -- 2. do the default behavior, which is as follows: -- 2a. look up a language-specific "normal" template according to the current language (using English if there -- is no current language); -- 2b. look up a script-specific "normal" template according to the first script of the current language (using -- English if there is no current language); -- 2c. display nothing. local data_source if self._lang or self._info.raw then data_source = self._data else data_source = self._data.umbrella end if data_source then if toc_type == "full" then templates = data_source.toc_template_full fallback_templates = data_source.toc_template else templates = data_source.toc_template end end local text = get_template_text(templates) if text then return text end if text == false then return nil end text = get_template_text(fallback_templates) if text then return text end if text == false then return nil end local default_toc_templates_to_check = {} local lang, sc = self:getCatfixInfo() local langcode = lang and lang:getCode() or "en" local sccode = sc and sc:getCode() or lang and lang:getScriptCodes()[1] or "Latn" -- FIXME: What is toctemplateprefix used for? local tocname = (self._data.toctemplateprefix or "") .. "categoryTOC" if toc_type == "full" then table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(langcode, tocname)) table.insert(default_toc_templates_to_check, ("%s-%s/full"):format(sccode, tocname)) end table.insert(default_toc_templates_to_check, ("%s-%s"):format(langcode, tocname)) table.insert(default_toc_templates_to_check, ("%s-%s"):format(sccode, tocname)) for _, toc_template in ipairs(default_toc_templates_to_check) do local toc_template_text = expand_toc_template_if(toc_template) if toc_template_text then return toc_template_text end end return nil end function Category:getInfo() return self._info end function Category:getDataModule() return self._data.module end function Category:canBeEmpty() if self._lang or self._info.raw then return self._data.can_be_empty else return self._data.umbrella and self._data.umbrella.can_be_empty end end function Category:isHidden() if self._lang or self._info.raw then return self._data.hidden else return self._data.umbrella and self._data.umbrella.hidden end end function Category:getCategoryName() if self._info.raw then return self._info.canonical_name or self._info.label elseif self._lang then local ret = self._lang:getCanonicalName() .. " " .. self._info.label if self._sc then ret = ret .. " in " .. self._sc:getDisplayForm() end return mw.getContentLanguage():ucfirst(ret) else local ret = mw.getContentLanguage():ucfirst(self._info.label) if not (self._data.no_by_language or self._data.umbrella and self._data.umbrella.no_by_language) then ret = ret .. " by language" end return ret end end function Category:getTopright() if self._lang or self._info.raw then return self:substitute_template_specs(self._data.topright) else return self._data.umbrella and self:substitute_template_specs(self._data.umbrella.topright) end end local function remove_lang_params(desc) -- Simply remove a language name/code/category from the beginning of the string, but replace the language name -- in the middle of the string with either "specific languages" or "specific-language" depending on whether the -- language name appears to be an attributive qualifier of another noun or to stand by itself. This may be wrong, -- in which case the category in question should supply its own umbrella description. desc = desc:gsub("^{{{langname}}} ", "") desc = desc:gsub("^{{{langcode}}} ", "") desc = desc:gsub("^{{{langcat}}} ", "") desc = desc:gsub("^{{{langlink}}} ", "") desc = desc:gsub("{{{langname}}} %(", "specific languages (") desc = desc:gsub("{{{langname}}}([.,])", "specific languages%1") desc = desc:gsub("{{{langname}}} ", "specific-language ") desc = desc:gsub("{{{langcode}}} ", "") desc = desc:gsub("{{{langcat}}} ", "") desc = desc:gsub("{{{langlink}}} ", "") return desc end function Category:getDescription(isChild) -- Allows different text in the list of a category's children local isChild = isChild == "child" local function display_title(displaytitle, lang) if type(displaytitle) == "string" then displaytitle = self:substitute_template_specs(displaytitle) else displaytitle = displaytitle(self:getCategoryName(), lang) end mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Category:" .. displaytitle) end local function get_labels_categorizing() local m_labels_utilities = require(labels_utilities_module) local pos_cat_labels, sense_cat_labels, use_tlb pos_cat_labels = m_labels_utilities.find_labels_for_category(self._info.label, "pos", self._lang) local sense_label = self._info.label:match("^(.*) terms$") if sense_label then use_tlb = true else sense_label = self._info.label:match("^terms with (.*) senses$") end if sense_label then sense_cat_labels = m_labels_utilities.find_labels_for_category(sense_label, "sense", self._lang) if use_tlb then return m_labels_utilities.format_labels_categorizing(pos_cat_labels, sense_cat_labels, self._lang) else local all_labels = pos_cat_labels for k, v in pairs(sense_cat_labels) do all_labels[k] = v end return m_labels_utilities.format_labels_categorizing(all_labels, nil, self._lang) end end end if self._lang or self._info.raw then if not isChild and self._data.displaytitle then display_title(self._data.displaytitle, self._lang) end if self._sc then return self:getCategoryName() .. "." else local desc = self:convert_spec_to_string(self._data.description) if not isChild and desc then if self._data.preceding then desc = self._data.preceding .. "\n\n" .. desc end if self._data.additional then desc = desc .. "\n\n" .. self._data.additional end local labels_msg = get_labels_categorizing() if labels_msg then desc = desc .. "\n\n" .. labels_msg end end return self:substitute_template_specs(desc) end else if not isChild and self._data.umbrella and self._data.umbrella.displaytitle then display_title(self._data.umbrella.displaytitle, nil) end local desc = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.description) local has_umbrella_desc = not not desc if not desc then desc = self:convert_spec_to_string(self._data.description) if desc then desc = remove_lang_params(desc) -- Use the following in preference to mw.getContentLanguage():lcfirst(), which will only lowercase the first -- character, whereas the following will correctly handle links at the beginning of the text. desc = require("Module:string utilities").lcfirst(desc) desc = desc:gsub("%.$", "") desc = "Categories with " .. desc .. "." end end if not desc then desc = "Categories with " .. self._info.label .. " in various specific languages." end if not isChild then local preceding = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.preceding or not has_umbrella_desc and self._data.preceding) local additional = self:convert_spec_to_string(self._data.umbrella and self._data.umbrella.additional or not has_umbrella_desc and self._data.additional) if preceding then desc = remove_lang_params(preceding) .. "\n\n" .. desc end if additional then desc = desc .. "\n\n" .. remove_lang_params(additional) end desc = desc .. "\n\n{{{umbrella_msg}}}" local labels_msg = get_labels_categorizing() if labels_msg then desc = desc .. "\n\n" .. labels_msg end end desc = self:substitute_template_specs(desc) return desc end end function Category:new_sortkey(sortkey) if type(sortkey) == "string" then sortkey = uupper(sortkey) elseif type(sortkey) == "table" then function sortkey:makeSortKey() if self.sort_func then return self.sort_func(self.sort_base) end local lang = self.lang and require("Module:tili").getByCode(self.lang, true, true, nil, true) or nil if lang then return lang:makeSortKey( self.sort_base, require("Module:scripts").getByCode(self.sc, true, nil, true) ) end return self.sort_base end end return sortkey end function Category:inherit_spec(spec, parent_spec) if spec == false then return nil end return self:substitute_template_specs(spec or parent_spec) end function Category:canonicalize_parents_children(cats, is_children) if not cats then return nil end if type(cats) ~= "table" then cats = {cats} end if cats.name or cats.module then cats = {cats} end if #cats == 0 then return nil end local ret = {} for _, cat in ipairs(cats) do if type(cat) ~= "table" or not cat.name and not cat.module then cat = {name = cat} end insert(ret, cat) end local is_umbrella = not self._lang and not self._info.raw local table_type = is_children and "extra_children" or "parents" for i, cat in ipairs(ret) do local raw if self._info.raw or is_umbrella then raw = not cat.is_label else raw = cat.raw end local lang = self:inherit_spec(cat.lang, not raw and self._info.code or nil) local sc = self:inherit_spec(cat.sc, not raw and self._info.sc or nil) -- Get the sortkey. local sortkey = cat.sort if type(sortkey) == "table" then sortkey.sort_base = self:substitute_template_specs(sortkey.sort_base) or error("Missing .sort_base in '" .. table_type .. "' .sort table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") if sortkey.sort_func then -- Not allowed to give a lang and/or script if sort_func is given. local bad_spec = sortkey.lang and "lang" or sortkey.sc and "sc" or nil if bad_spec then error("Cannot specify both ." .. bad_spec .. " and .sort_func in '" .. table_type .. "' .sort table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") end else sortkey.lang = self:inherit_spec(sortkey.lang, lang) sortkey.sc = self:inherit_spec(sortkey.sc, sc) end else sortkey = self:substitute_template_specs(sortkey) end local name if cat.module then -- A reference to a category using another category tree module. if not cat.args then error("Missing .args in '" .. table_type .. "' table with module=\"" .. cat.module .. "\" for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") end name = require("Module:category tree/" .. cat.module).new(self:substitute_template_specs_in_args(cat.args)) else name = cat.name if not name then error("Missing .name in " .. (is_umbrella and "umbrella " or "") .. "'" .. table_type .. "' table for '" .. self._info.label .. "' category entry in module '" .. (self._data.module or "unknown") .. "'") elseif type(name) == "string" then -- otherwise, assume it's a category object and use it directly name = self:substitute_template_specs(name) if name:find("^Category:") then -- It's a non-poscatboiler category name. sortkey = sortkey or is_children and name:gsub("^Category:", "") or self:getCategoryName() else -- It's a label. sortkey = sortkey or is_children and name or self._info.label name = self:make_new{ label = name, code = lang, sc = sc, raw = raw, args = self:substitute_template_specs_in_args(cat.args) } end end end sortkey = sortkey or is_children and " " or self._info.label ret[i] = { name = name, description = is_children and self:substitute_template_specs(cat.description) or nil, sort = self:new_sortkey(sortkey) } end return ret end function Category:getParents() local is_umbrella = not self._lang and not self._info.raw local retval if self._sc then local parent1 = self:make_new{code = self._info.code, label = "terms in " .. self._sc:getCanonicalName() .. " script"} local parent2 = self:make_new{code = self._info.code, label = self._info.label, raw = self._info.raw, args = self._info.args} retval = { {name = parent1, sort = self._sc:getCanonicalName()}, {name = parent2, sort = self._sc:getCanonicalName()}, } else local parents if is_umbrella then parents = self._data.umbrella and self._data.umbrella.parents or self._data.umbrella_parents else parents = self._data.parents end retval = self:canonicalize_parents_children(parents) end if not retval then return nil end local self_cat = self:getCategoryName() for _, parent in ipairs(retval) do local parent_cat = parent.name.getCategoryName and parent.name:getCategoryName() if self_cat == parent_cat then error(("Internal error: Infinite loop would occur, as parent category '%s' is the same as the child category"): format(self_cat)) end end return retval end function Category:getChildren() local is_umbrella = not self._lang and not self._info.raw local children = self._data.children local ret = {} if not is_umbrella and children then for _, child in ipairs(children) do child = mw.clone(child) if type(child) ~= "table" then child = {name = child} end if not child.sort then child.sort = child.name end -- FIXME, is preserving the script correct? child.name = self:make_new{code = self._info.code, label = child.name, raw = child.raw, sc = self._info.sc} insert(ret, child) end end local extra_children if is_umbrella then extra_children = self._data.umbrella and self._data.umbrella.extra_children else extra_children = self._data.extra_children end extra_children = self:canonicalize_parents_children(extra_children, "children") if extra_children then for _, child in ipairs(extra_children) do insert(ret, child) end end if #ret == 0 then return nil end return ret end function Category:getUmbrella() local umbrella = self._data.umbrella if umbrella == false or self._info.raw or not self._lang or self._sc then return nil end -- If `umbrella` is a string, use that; otherwise, use the label. return self:make_new({label = type(umbrella) == "string" and umbrella or self._info.label}) end function Category:getAppendix() -- FIXME, this should be customizable. if not self._info.raw and self._info.label and self._lang then local appendixName = "Appendix:" .. self._lang:getCanonicalName() .. " " .. self._info.label local appendix = mw.title.new(appendixName).exists if appendix then return appendixName else return nil end else return nil end end function Category:getCatfixInfo() if self._lang or self._info.raw then if self._data.catfix == false then return nil end local lang, sc if self._data.catfix then lang = require("Module:tili").getByCode(self:substitute_template_specs(self._data.catfix), true, nil, nil, true) else lang = self._lang end if self._data.catfix_sc then sc = require("Module:scripts").getByCode(self:substitute_template_specs(self._data.catfix_sc), true, nil, true) else sc = self._sc end return lang, sc else -- umbrella if not self._data.umbrella or not self._data.umbrella.catfix then return nil end local lang = require("Module:tili").getByCode(self:substitute_template_specs(self._data.umbrella.catfix), true, nil, nil, true) local sc = self:substitute_template_specs(self._data.umbrella.catfix_sc) if sc then sc = require("Module:scripts").getByCode(sc, true, nil, true) end return lang, sc end end function Category:getTOCTemplateName() -- This should only be invoked if getTOC() returns true, meaning to do the default algorithm, but getTOC() -- implements its own default algorithm. error("Internal error: This should never get called") end local export = {} function export.main(info) local self = setmetatable({_info = info}, Category) self:initCommon() return self._data and self or nil end export.new = Category.new return export 6au1v2h7tmiojyzceyib38cltw539ud 列車 0 151313 628942 549125 2024-11-06T17:13:27Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628942 wikitext text/x-wiki {{-zh-}} {{zh-forms|s=列车}} ===Talaffuz=== {{zh-pron |m=lièchē |c=lit6 ce1 |mn=lia̍t-chhia |cat=n}} {{zh-ism}} # [[poezd]] #: [[旅客 列車]] yoʻlovchi '''poezdi''' #: [[火車 票]] '''poezd''' chiptasi #: [[火車 站]] '''poezd''' stantsiyasi #: [[坐 火車]] '''poezdda''' sayohat qilish ===Shuningdek qarang=== * [[地鐵]] (dìtiě) * [[動車]] (dòngchē) * [[高鐵]] (gāotiě) * [[火車]] (huǒchē) * [[鐵路]] (tiělù) ===Boshiga shartlari=== * [[子彈列車]] (zǐdàn lièchē) {{-ja-}} {{ja-kanjitab|れつ|k1=れっ|しゃ|yomi=on}} {{ja-ism|れっしゃ}} # [[poezd]] ===Manbalar=== * {{R:Shogakukan}} oiz8brlybc8buxpc9b4qpjkz99oi9pu 安全第一 0 151332 629011 549272 2024-11-06T18:43:54Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629011 wikitext text/x-wiki {{-zh-}} {{zh-forms|type=22}} ===Talaffuz=== {{zh-pron |m=ānquán dì一 |c=on1 cyun4 dai6 jat1 |cat=ph }} #[[xavfsizlik]] [[birinchi]] {{-ja-}} {{ja-kanjitab|あん|ぜん|だい|いち|yomi=o}} # [[xavfsizlik]] [[birinchi]] qy1ptuibhyiqgkxj8e0nmd5c3njlmuw Modul:ru-translit 828 151469 628909 421189 2024-11-06T16:07:59Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628909 Scribunto text/plain local export = {} --[=[ FIXME: 1. (DONE) If you write '''Б'''ез, it transliterates to '''B'''jez instead of '''B'''ez, as it should. -- NOTE: This currently doesn't work due to an issue in [[Module:tili]] -- which means this module won't see style apostrophes. 2. (DONE) Convert ъ to nothing before comma or other non-letter particle, e.g. in Однимъ словомъ, идешь на чтеніе. 3. (DONE) Make special-casing for adjectives in -го and for что (and friends) be the default, and implement transformations in Cyrillic rather than after translit so that we can display the transformed Cyrillic in the "phonetic respelling" notation of {{ru-IPA}}. ]=] local m_str_utils = require("Module:string utilities") local decompose = require("Module:ru-common").decompose local explode = m_str_utils.explode_utf8 local concat = table.concat local insert = table.insert local ipairs = ipairs local remove = table.remove local rfind = m_str_utils.find local rsub = m_str_utils.gsub local rsplit = m_str_utils.split local select = select local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local u = m_str_utils.char local AC = u(0x301) -- acute = ́ local GR = u(0x0300) -- grave = ̀ local BR = u(0x0306) -- breve ̆ local DI = u(0x0308) -- diaeresis = ̈ local DIACRITICS = AC .. GR .. BR .. DI .. u(0x0302) .. -- circumflex ̂ u(0x0304) .. -- macron ̄ u(0x0307) .. -- dot above ̇ u(0x030A) .. -- ring above ̊ u(0x030C) .. -- caron ̌ u(0x030F) .. -- double grave ̏ u(0x0323) .. -- dot below ̣ u(0x0328) -- ogonek ̨ local TEMP_G = u(0xFFF1) -- substitute to prevent g from changing to v local word_chars = "%a’%(%)%[%]" .. DIACRITICS local function ine(x) -- if not empty return x ~= "" and x or nil end -- Main letter conversion table. local letters = { ["а"] = "a", ["б"] = "b", ["в"] = "v", ["г"] = "g", ["д"] = "d", ["е"] = "je", ["ж"] = "ž", ["з"] = "z", ["и"] = "i", ["й"] = "j", ["к"] = "k", ["л"] = "l", ["м"] = "m", ["н"] = "n", ["о"] = "o", ["п"] = "p", ["р"] = "r", ["с"] = "s", ["т"] = "t", ["у"] = "u", ["ф"] = "f", ["х"] = "x", ["ц"] = "c", ["ч"] = "č", ["ш"] = "š", ["щ"] = "šč", ["ъ"] = "ʺ", ["ы"] = "y", ["ь"] = "ʹ", ["э"] = "e", ["ю"] = "ju", ["я"] = "ja", ["А"] = "A", ["Б"] = "B", ["В"] = "V", ["Г"] = "G", ["Д"] = "D", ["Е"] = "Je", ["Ж"] = "Ž", ["З"] = "Z", ["И"] = "I", ["Й"] = "J", ["К"] = "K", ["Л"] = "L", ["М"] = "M", ["Н"] = "N", ["О"] = "O", ["П"] = "P", ["Р"] = "R", ["С"] = "S", ["Т"] = "T", ["У"] = "U", ["Ф"] = "F", ["Х"] = "X", ["Ц"] = "C", ["Ч"] = "Č", ["Ш"] = "Š", ["Щ"] = "Šč", ["Ъ"] = "ʺ", ["Ы"] = "Y", ["Ь"] = "ʹ", ["Э"] = "E", ["Ю"] = "Ju", ["Я"] = "Ja", -- Russian style quotes ["«"] = "“", ["»"] = "”", -- archaic, pre-1918 letters ["і"] = "i", ["ѳ"] = "f", ["ѣ"] = "jě", ["ѵ"] = "i", ["І"] = "I", ["Ѳ"] = "F", ["Ѣ"] = "Jě", ["Ѵ"] = "I", -- archaic, pre-1708 letters (most of these are covered by aliases below) ["ѥ"] = "je", ["ѯ"] = "ks", ["ѱ"] = "ps", ["Ѥ"] = "Je", ["Ѯ"] = "Ks", ["Ѱ"] = "Ps", } -- Treat most archaic letters as aliases. Exceptions: -- ѥ is not the same as е, because it doesn't lose iotation after a consonant. -- ѯ and ѱ can't be treated as aliases, because mapping 1 character to 2 messes -- can cause the logic which checks the capitalization of adjacent letters to -- become unreliable. This only affects the uppercase forms, but the lowercase -- forms are also excepted for consistency. local aliases = { ["є"] = "е", ["ꙁ"] = "з", ["ꙃ"] = "з", ["ѕ"] = "з", ["ї"] = "і", ["ꙋ"] = "у", ["ѡ"] = "о", ["ѿ"] = "о", ["ꙑ"] = "ы", ["ꙗ"] = "я", ["ѧ"] = "я", ["ѫ"] = "у", ["ѩ"] = "я", ["ѭ"] = "ю", ["Є"] = "Е", ["Ꙁ"] = "З", ["Ꙃ"] = "З", ["Ѕ"] = "З", ["Ї"] = "І", ["Ꙋ"] = "У", ["Ѡ"] = "О", ["Ѿ"] = "О", ["Ꙑ"] = "Ы", ["Ꙗ"] = "Я", ["Ѧ"] = "Я", ["Ѫ"] = "У", ["Ѩ"] = "Я", ["Ѭ"] = "Ю", ["'"] = "’" } local plain_e = { ["е"] = "e", ["ѣ"] = "ě", ["э"] = "ɛ", ["Е"] = "E", ["Ѣ"] = "Ě", ["Э"] = "Ɛ" } local jo_letters = { ["ё"] = "jo", ["ѣ̈"] = "jǒ", ["я̈"] = "jǫ", ["Ё"] = "Jo", ["Ѣ̈"] = "Jǒ", ["Я̈"] = "Jǫ" } local vowels = "аеиіоуыѣэюяѥѵaæɐeəɛiɪɨoɵuyʊʉАЕИІОУЫѢЭЮЯѤѴAEƐIOUY" -- Apply transformations to the Cyrillic to more closely match pronunciation. -- Return two arguments: the "original" text (after decomposing composed -- grave characters), and the transformed text. If the two are different, -- {{ru-IPA}} should display a "phonetic respelling" notation. -- NOADJ disables special-casing for adjectives in -го, while FORCEADJ forces -- special-casing for adjectives, including those in -аго (pre-reform spelling) -- and disables checking for exceptions (e.g. много, ого). NOSHTO disables -- special-casing for что and related words. function export.apply_tr_fixes(text, noadj, noshto, forceadj) -- normalize any aliases text = text:gsub(".[\128-\191]*", aliases) -- decompose stress accents without decomposing letters we want to treat -- as units (e.g. й or ё) text = decompose(text) local origtext = text -- the second half of the if-statement below is an optimization; see above. if not noadj and text:find("го") then local v = {["г"] = "в", ["Г"] = "В"} local repl = function(e, g, o, sja) return e .. v[g] .. o .. (sja or "") end -- Handle какого-нибудь/-либо/-то; must be done first because of an exception -- made for бого-, снего-, etc. text = rsub(text, "([кКтТ][аА][кК][оеОЕ" .. (forceadj and "аА" or "") .. "][" .. AC .. GR .. "]?)([гГ])([оО]%-)", repl) if not forceadj then local function go(text, case) local pattern = rsub(case, "^(.)(.*)(го[" .. AC .. GR .. "]?)(%-?)$", function(m1, m2, m3, m4) m1 = "%f[%a" .. AC .. GR .. "]([" .. m1:uupper() .. m1 .. "]" m2 = m2:gsub("\204[\128\129]", "[" .. AC .. GR .. "]?") .. ")" m3 = m3:gsub("\204[\128\129]", "[" .. AC .. GR .. "]?") :gsub("^г(.*)", "г(%1") m4 = m4 == "-" and "%-)" or ")%f[^%a" .. AC .. GR .. "]" return m1 .. m2 .. m3 .. m4 end) return rsub(text, pattern, "%1" .. TEMP_G .. "%2") end for _, case in ipairs{"мно́го", "н[еа]мно́го", "до́рого", "недо́рого", "стро́го", "нестро́го", "на́строго", "убо́го", "пол[ао]́го"} do text = go(text, case) end -- check for neuter short forms of compound adjectives in -но́гий if rfind(text, "но[" .. AC .. GR .. "]?го%f[^%a" .. AC .. GR .. "]") then for _, case in ipairs{"безно́го", "босоно́го", "веслоно́го", "длинноно́го", "двуно́го", "коротконо́го", "кривоно́го", "одноно́го", "пятино́го", "трёхно́го", "трехно́го", "хромоно́го", "четвероно́го", "шестино́го"} do text = go(text, case) end end for _, case in ipairs{"ого́", "го́го", "ваго́го", "ло́го", "п[ео]́го", "со́го", "То́го", "ле́го", "игого́", "огого́", "альбиньязего", "д[иі]е́го", "бо́лого", "гр[иі]е́го", "манче́го", "пичис[иі]е́го", "тенкодого", "хио́го", "аго-", "его-", "ого-"} do text = go(text, case) end end --handle genitive/accusative endings, which are spelled -ого/-его/-аго -- (-ogo/-ego/-ago) but transliterated -ovo/-evo/-avo; only for adjectives -- and pronouns, excluding words like много, ого (-аго occurs in -- pre-reform spelling); \204\129 is an acute accent, \204\128 is a grave accent local pattern = "([оеОЕ" .. (forceadj and "аА" or "") .. "][" .. AC .. GR .. "]?)([гГ])([оО][" .. AC .. GR .. "]?)" local reflexive = "([сС][яЯ][" .. AC .. GR .. "]?)" text = rsub(text, pattern .. "%f[^%a" .. AC .. GR .. TEMP_G .. "]", repl) text = rsub(text, pattern .. reflexive .. "%f[^%a" .. AC .. GR .. TEMP_G .. "]", repl) -- handle сегодня text = rsub(text, "%f[%a" .. AC .. GR .. "]([Сс]е)г(о[" .. AC .. GR .. "]?дня)%f[^%a" .. AC .. GR .. "]", "%1в%2") -- handle сегодняшн- text = rsub(text, "%f[%a" .. AC .. GR .. "]([Сс]е)г(о[" .. AC .. GR .. "]?дняшн)", "%1в%2") -- replace TEMP_G with g; must be done after the -go -> -vo changes text = rsub(text, TEMP_G, "г") end -- the second half of the if-statement below is an optimization; see above. if not noshto and text:find("то") then local ch2sh = {["ч"] = "ш", ["Ч"] = "Ш"} -- Handle что text = rsub(text, "%f[%a" .. AC .. GR .. "]([Чч])(то[" .. AC .. GR .. "]?)%f[^%a" .. AC .. GR .. "]", function(ch, to) return ch2sh[ch] .. to end) -- Handle чтобы, чтоб text = rsub(text, "%f[%a" .. AC .. GR .. "]([Чч])(то[" .. AC .. GR .. "]?бы?)%f[^%a" .. AC .. GR .. "]", function(ch, to) return ch2sh[ch] .. to end) -- Handle ничто text = rsub(text, "%f[%a" .. AC .. GR .. "]([Нн]и)ч(то[" .. AC .. GR .. "]?)%f[^%a" .. AC .. GR .. "]", "%1ш%2") end -- Handle мягкий, лёгкий, легчать, etc. text = rsub(text, "([МмЛл][яеё][" .. AC .. GR .. "]?)г([кч])", "%1х%2") return origtext, text end do local function get_prev_char(word, i) local j, ch = 0 repeat j = j + 1 ch = word[i - j] until not (ch and (DIACRITICS .. "()’"):find(ch, 1, true)) return ch end local function get_next_char(word, i) local j, ch = 0 repeat j = j + 1 ch = word[i + j] until ch ~= "(" and ch ~= ")" -- If и, check if it's actually й to avoid wrongly treating it as -- a vowel. if (ch == "и" or ch == "И") and word[i + j + 1] == BR then remove(word, i + j + 1) ch = toNFC(ch .. BR) word[i + j] = ch end return ch end -- Check if a vowel should be made "plain" (usually by removing the "j" -- in the transliteration). Returns true if `prev` is in the string `check`. -- If `this` and `prev` are both uppercase, always returns false (on the -- assumption the term is an initialism). -- Note: We check both because of terms like Романо-д’Эццелино and -- Комон-л’Эванте, where an uppercase `this` follows a lowercase `prev`, -- (since the apostrophe is ignored). local function check_plain(this, prev, check, in_check) if prev and (this == this:ulower() or prev == prev:ulower()) then if check:match(prev, 1, true) then return in_check end return not in_check end end -- Convert any jos (ё, ѣ̈, я̈) as a special-case. local function is_jo_letter(this, prev, output, word, d) local tr = jo_letters[this] if not tr then return end -- Remove "j" if preceded by a hushing consonant (ж ч ш щ). if check_plain(this, prev, "жчшщЖЧШЩ", true) then tr = tr:sub(2) if this == this:uupper() then tr = tr:uupper() end end insert(output, tr) -- Note the position, so we can give it an implicit primary stress -- if necessary (unless it already has secondary stress; shouldn't -- ever come after primary stress, but just in case it does we -- shouldn't override it or give the jo two stress marks. if word[d.i + 1] ~= GR then d.final_jo = #output end return true end local function do_iteration(output, word, d) -- Get current, previous and next characters, skipping over brackets, and -- ignoring diacritics for the previous character (which simplifies checks). local this = word[d.i] local prev = get_prev_char(word, d.i) local nxt = get_next_char(word, d.i) -- A word is monosyllabic if it has only one vowel. if vowels:find(this, 1, true) then d.vowels = d.vowels + 1 end if nxt == DI then d.i = d.i + 1 this = toNFC(this .. DI) if is_jo_letter(this, prev, output, word, d) then return end elseif nxt == BR then d.i = d.i + 1 this = toNFC(this .. BR) -- Note that explicit stress has been found, which prevents any -- implicit stress from being added for jos. elseif this == AC then d.primary = true -- After a lowercase consonant or at the start of a suffix, е becomes -- e, ѣ becomes ě and э becomes ɛ. elseif plain_e[this] and ( check_plain(this, prev, vowels .. "ъьЪЬʹʺ", false) or not prev and d.dash_before ) then insert(output, plain_e[this]) return -- ю becomes u if if preceded by ж or ш. elseif ( (this == "ю" or this == "Ю") and check_plain(this, prev, "жшЖШ", true) ) then insert(output, this == "ю" and "u" or "U") return -- Make lowercase izhitsa display as -v- after /a/, /e/ and /i/ -- (matching the equivalent Greek digraphs αυ, ευ and ηυ). elseif ( this == "ѵ" and prev and ("аеиіѣэяѥaæɐeəɛiɪɨАЕИІѢЭЯѤAEƐI"):find(prev, 1, true) ) then this = "в" word[d.i] = "в" -- Ignore word-final hard signs. elseif (this == "ъ" or this == "Ъ") and d.i == #word then return end insert(output, letters[this] or this) end -- Transliterate after the pronunciation-related transformations of -- export.apply_tr_fixes() have been applied. Called from {{ru-IPA}}. -- `jo_accent` is as in export.tr(). function export.tr_after_fixes(text, jo_accent) -- normalize any aliases text = toNFC(text:gsub(".[\128-\191]*", aliases)) local output = {} -- Note: We use ustring gsub because ustring gmatch is bugged, and -- it's easy to make gsub do the same thing. rsub(text, "([^" .. word_chars .. "]*)([" .. word_chars .. "]*)", function(before, word) for _, ch in ipairs(explode(before)) do insert(output, ch) end -- FIXME: Do this in one loop instead of splitting by word. word = explode(toNFD(word)) local d = { i = 0, vowels = 0 } -- Prefix if it's preceded by "^-" or " -". if output[#output] == "-" then local prev = output[#output - 1] if not prev or rfind(prev, "%s") then d.dash_before = true end end while d.i < #word do d.i = d.i + 1 do_iteration(output, word, d) end -- Add an implicit primary stress to a jo (if applicable). -- Jos do not implicitly take stress accents if an explicit primary -- stress is given. Otherwise, the final jo which doesn't have -- secondary stress takes primary stress. -- Prefixes do not take implicit primary stress. -- Primary stress will be shown on monosyllables if either they -- are a suffix or `jo_accent` is "mono". if ( jo_accent ~= "none" and d.final_jo and (not (d.primary or word[#word] == "-")) and (jo_accent == "mono" or d.vowels > 1 or d.dash_before) ) then output[d.final_jo] = output[d.final_jo] .. AC end end) return toNFC(concat(output)) end end -- Transliterates text, which should be a single word or phrase. It should -- include stress marks, which are then preserved in the transliteration. -- ё is a special case: it is rendered (j)ó in multisyllabic words and -- monosyllabic words in multi-word phrases, but rendered (j)o without an -- accent in isolated monosyllabic words. This can be overridden with the -- JO_ACCENT parameter: if set to "mono", monosyllabic words will also be -- given as (j)ó (this is used in conjugation and declension tables); if set -- to "none", it will always be rendered (j)o. -- NOADJ disables special-casing for adjectives in -го, while FORCEADJ forces -- special-casing for adjectives and disables checking for exceptions -- (e.g. много). NOSHTO disables special-casing for что and related words. -- As a special case, if `lang` is a language other than "ru", then none of -- the special transformations are applied, and JO_ACCENT is set to "none". -- This is for situations which require Russian transcriptions of Cyrillic, -- but where the special cases don't make sense (e.g. the Cyrillization of -- Mandarin, or pidgins such as Russenorsk). function export.tr(text, lang, sc, jo_accent, noadj, noshto, forceadj) if (ine(lang) or "ru") ~= "ru" then return export.tr_after_fixes(text, "none") end return export.tr_after_fixes( select(2, export.apply_tr_fixes(text, noadj, noshto, forceadj)), jo_accent ) end -- translit with various special-case substitutions; NOADJ disables -- special-casing for adjectives in -го, while FORCEADJ forces special-casing -- for adjectives and disables checking for expections (e.g. много). -- NOSHTO disables special-casing for что and related words. SUB is used -- to implement arbitrary substitutions in the Cyrillic text before other -- transformations are applied and before translit. It is of the form -- FROM/TO,FROM/TO,... function export.tr_sub(text, jo_accent, noadj, noshto, sub, forceadj) if type(text) == "table" then -- called directly from a template jo_accent = ine(text.args.jo_accent) noadj = ine(text.args.noadj) noshto = ine(text.args.noshto) sub = ine(text.args.sub) text = text.args[1] end if sub then local subs = rsplit(sub, ",") for _, subpair in ipairs(subs) do local subsplit = rsplit(subpair, "/") text = rsub(text, subsplit[1], subsplit[2]) end end return export.tr(text, nil, nil, jo_accent, noadj, noshto, forceadj) end --for adjectives, pronouns function export.tr_adj(text, jo_accent) if type(text) == "table" then -- called directly from a template jo_accent = ine(text.args.jo_accent) text = text.args[1] end -- we have to include "forceadj" because typically when tr_adj() is called -- from the noun or adjective modules, it's called with suffix ого, which -- would otherwise trigger the exceptional case and be transliterated as ogo return export.tr(text, nil, nil, jo_accent, false, "noshto", "forceadj") end return export sh9c0c8iwbn3k5xo1fk254lqrmxoknn Modul:fr-headword 828 151521 628957 275617 2024-11-06T17:28:16Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628957 Scribunto text/plain local export = {} local pos_functions = {} local rfind = mw.ustring.find local rmatch = mw.ustring.match local rsubn = mw.ustring.gsub local rsplit = mw.text.split local lang = require("Module:tili").getByCode("fr") local langname = lang:getCanonicalName() local suffix_categories = { ["adjectives"] = true, ["adverbs"] = true, ["nouns"] = true, ["verbs"] = true, ["prepositional phrases"] = true, } local prepositions = { "à ", "aux? ", "d[eu] ", "d['’]", "des ", "en ", "sous ", "sur ", "avec ", "pour ", "par ", "dans ", "contre ", "sans ", "comme ", "jusqu['’]", -- We could list others but you get diminishing returns } -- 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 local function track(page) require("Module:debug").track("fr-headword/" .. page) return true end local function glossary_link(entry, text) text = text or entry return "[[Appendix:Glossary#" .. entry .. "|" .. text .. "]]" end -- mw.title.new() returns nil if there are weird chars in the pagename. local function exists(pagename) local title = mw.title.new(pagename) return title and title.exists end local function check_exists(forms, cats, pos) for _, form in ipairs(forms) do if type(form) == "table" then form = form.term end if not exists(form) then table.insert(cats, langname .. " " .. pos .. " with red links in their headword lines") return false end end return true end local function make_plural(form, special) local retval = require("Module:romance utilities").handle_multiword(form, special, make_plural, prepositions) if retval then if #retval > 1 then error("Internal error: Got multiple plurals from handle_multiword(): " .. table.concat(retval)) end return retval[1] end if rfind(form, "[sxz]$") then return form elseif rfind(form, "au$") then return form .. "x" elseif rfind(form, "al$") then return rsub(form, "al$", "aux") else return form .. "s" end end local function make_feminine(form, special) local retval = require("Module:romance utilities").handle_multiword(form, special, make_feminine, prepositions) if retval then if #retval > 1 then error("Internal error: Got multiple feminines from handle_multiword(): " .. table.concat(retval)) end return retval[1] end if rfind(form, "e$") then return form elseif rfind(form, "en$") then return form .. "ne" elseif rfind(form, "er$") then return rsub(form, "er$", "ère") elseif rfind(form, "el$") then return form .. "le" elseif rfind(form, "et$") then return form .. "te" elseif rfind(form, "on$") then return form .. "ne" elseif rfind(form, "ieur$") then return form .. "e" elseif rfind(form, "teur$") then return rsub(form, "teur$", "trice") elseif rfind(form, "eu[rx]$") then return rsub(form, "eu[rx]$", "euse") elseif rfind(form, "if$") then return rsub(form, "if$", "ive") elseif rfind(form, "c$") then return rsub(form, "c$", "que") elseif rfind(form, "eau$") then return rsub(form, "eau$", "elle") else return form .. "e" end end -- For bot use function export.make_feminine(frame) local masc = frame.args[1] or error("Masculine in 1= is required.") local special = frame.args[2] return make_feminine(masc, special) end local function add_suffix(list, suffix, special) local newlist = {} for _, form in ipairs(list) do if suffix == "s" then form = make_plural(form, special) elseif suffix == "e" then form = make_feminine(form, special) else error("Internal error: Unrecognized suffix '" .. suffix .. "'") end table.insert(newlist, form) end return newlist end local no_split_apostrophe_words = { ["c'est"] = true, ["quelqu'un"] = true, ["aujourd'hui"] = true, } -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, ["splithyph"] = {type = "boolean"}, ["nolinkhead"] = {type = "boolean"}, ["pagename"] = {}, -- for testing } if pos_functions[poscat] then for key, val in pairs(pos_functions[poscat].params) do params[key] = val end end local parargs = frame:getParent().args local args = require("Module:parameters").process(parargs, params) local subpage = args.pagename or mw.loadData("Module:headword/data").pagename local heads = args["head"] if pos_functions[poscat] and pos_functions[poscat].param1_is_head and args[1] then table.insert(heads, 1, args[1]) end if args.nolinkhead then if #heads == 0 then heads = {subpage} end else local auto_linked_head = require("Module:romance utilities").add_links_to_multiword_term(subpage, args.splithyph, no_split_apostrophe_words) if #heads == 0 then heads = {auto_linked_head} else for _, head in ipairs(heads) do if head == auto_linked_head then track("redundant-head") end end end end local data = { lang = lang, pos_category = poscat, categories = {}, heads = heads, no_redundant_head_cat = #args.head == 0, genders = {}, inflections = {}, categories = {}, pagename = args.pagename, subpage = subpage } if subpage:find("^%-") and suffix_categories[poscat] then data.pos_category = "suffixes" local singular_poscat = poscat:gsub("s$", "") table.insert(data.categories, langname .. " " .. singular_poscat .. "-forming suffixes") end if pos_functions[poscat] then pos_functions[poscat].func(args, data) end return require("Module:headword").full_headword(data) end local allowed_genders = { ["m"] = true, ["f"] = true, ["mf"] = true, ["mfbysense"] = true, ["mfequiv"] = true, ["gneut"] = true, ["m-p"] = true, ["f-p"] = true, ["mf-p"] = true, ["mfbysense-p"] = true, ["mfequiv-p"] = true, ["gneut-p"] = true, } local additional_allowed_pronoun_genders = { ["m-s"] = true, ["f-s"] = true, ["mf-s"] = true, ["p"] = true, -- mf-p doesn't make sense for e.g. [[iels]]/[[ielles]] } local function get_noun_pos(pos) return { params = { [1] = {}, ["g"] = {list = true}, [2] = {list = true}, ["pqual"] = {list = true, allow_holes = true}, ["f"] = {list = true}, ["fqual"] = {list = true, allow_holes = true}, ["m"] = {list = true}, ["mqual"] = {list = true, allow_holes = true}, ["dim"] = {list = true}, ["dimqual"] = {list = true, allow_holes = true}, }, func = function(args, data) local lemma = data.subpage local is_proper = pos == "proper nouns" if pos == "cardinal nouns" then pos = "numerals" data.pos_category = "numerals" table.insert(data.categories, 1, langname .. " cardinal numbers") end -- Gather genders table.insert(data.genders, args[1]) for _, g in ipairs(args.g) do table.insert(data.genders, g) end local function process_inflection(label, infls, quals) infls.label = label for i, infl in ipairs(infls) do if quals[i] then infls[i] = {term = infl, q = {quals[i]}} end end end -- Gather all the plural parameters from the numbered parameters. local plurals = args[2] -- Add categories for genders if #data.genders == 0 then table.insert(data.genders, "?") end local mode = nil for _, g in ipairs(data.genders) do if g == "m-p" or g == "f-p" or g =="mf-p" or g == "mfbysense-p" then mode = "p" end if g == "?" and (is_proper or mw.title.getCurrentTitle().nsText == "Template") then -- allow unknown gender in template example and proper nouns, -- since there are currently so many proper nouns with -- unspecified gender elseif g and g ~= "" and not allowed_genders[g] then error("Unrecognized " .. langname .. " gender: " .. g) end end -- Decide how to show the plurals mode = mode or plurals[1] local function insert_countable_cat() table.insert(data.categories, langname .. " countable " .. pos) end local function insert_uncountable_cat() -- Most proper nouns are uncountable, so don't create a category for them if not is_proper then table.insert(data.categories, langname .. " uncountable " .. pos) end end if mode == "!" then -- Plural is not attested table.insert(data.inflections, {label = "plural not attested"}) table.insert(data.categories, langname .. " " .. pos .. " with unattested plurals") elseif mode == "p" then -- Plural-only noun, doesn't have a plural table.insert(data.inflections, {label = "plural only"}) table.insert(data.categories, langname .. " pluralia tantum") else if mode == "?" then -- Plural is unknown table.remove(plurals, 1) -- Remove the mode parameter elseif mode == "-" then -- Uncountable noun; may occasionally have a plural table.remove(plurals, 1) -- Remove the mode parameter insert_uncountable_cat() -- If plural forms were given explicitly, then show "usually" if #plurals > 0 then track("count-uncount") table.insert(data.inflections, {label = "usually " .. glossary_link("uncountable")}) insert_countable_cat() else table.insert(data.inflections, {label = glossary_link("uncountable")}) end elseif mode == "~" then -- Mixed countable/uncountable noun, always has a plural table.remove(plurals, 1) -- Remove the mode parameter table.insert(data.inflections, {label = glossary_link("countable") .. " and " .. glossary_link("uncountable")}) insert_uncountable_cat() insert_countable_cat() -- If no plural was given, add a default one now if #plurals == 0 then plurals = {"+"} end elseif is_proper then -- Default proper noun; uncountable unless plural(s) specified if #plurals > 0 then insert_countable_cat() else insert_uncountable_cat() end else -- The default, always has a plural insert_countable_cat() -- If no plural was given, add a default one now if #plurals == 0 then plurals = {"+"} end end -- Gather plurals, handling requests for default plurals for i, pl in ipairs(plurals) do if pl == "#" then pl = lemma elseif pl == "s" or pl == "x" then pl = lemma .. pl elseif pl == "+" then pl = make_plural(lemma) elseif pl:find("^%+") then pl = require("Module:romance utilities").get_special_indicator(pl) pl = make_plural(lemma, pl) end if not exists(pl) then table.insert(data.categories, langname .. " " .. pos .. " with red links in their headword lines") end plurals[i] = pl end process_inflection("plural", plurals, args["pqual"]) plurals.accel = {form = "p"} plurals.request = true -- Add the plural forms; do this in some cases even if no plurals -- specified so we get a "please provide plural" message. if mode ~= "-" and (not is_proper or mode) or #plurals > 0 then table.insert(data.inflections, plurals) end end local function insert_inflection(label, arg, process_arg) local forms = args[arg] if process_arg then for i, form in ipairs(forms) do forms[i] = process_arg(form) end end process_inflection(label, forms, args[arg .. "qual"]) if #forms > 0 then table.insert(data.inflections, forms) check_exists(forms, data.categories, pos) end return forms end -- Add the feminine forms local fems = insert_inflection("feminine", "f", function(form) -- Allow '#', 'e', '+', '+first', etc. for feminine. if form == "#" then return lemma elseif form == "e" then return lemma .. form elseif form == "+" then return make_feminine(lemma) elseif form:find("^%+") then form = require("Module:romance utilities").get_special_indicator(form) return make_feminine(lemma, form) else return form end end) fems.accel = {form = "f"} -- Add the masculine forms insert_inflection("masculine", "m") -- Add the diminutives local dims = insert_inflection("diminutive", "dim") dims.accel = {form = "diminutive"} end } end for _, noun_pos in ipairs { "nouns", "proper nouns", "cardinal nouns" } do pos_functions[noun_pos] = get_noun_pos(noun_pos) end local function get_pronoun_pos() return { params = { ["head"] = {list = true}, [1] = {alias_of = "g"}, ["g"] = {list = true}, ["f"] = {list = true}, ["fqual"] = {list = true, allow_holes = true}, ["m"] = {list = true}, ["mqual"] = {list = true, allow_holes = true}, ["mv"] = {list = true}, ["mvqual"] = {list = true, allow_holes = true}, ["fp"] = {list = true}, ["fpqual"] = {list = true, allow_holes = true}, ["mp"] = {list = true}, ["mpqual"] = {list = true, allow_holes = true}, ["p"] = {list = true}, ["pqual"] = {list = true, allow_holes = true}, ["type"] = {list = true}, }, func = function(args, data) -- Gather genders data.genders = args.g local function process_inflection(label, infls, quals) infls.label = label for i, infl in ipairs(infls) do if quals[i] then infls[i] = {term = infl, q = {quals[i]}} end end end local function insert_inflection() end -- Validate/canonicalize genders for i, g in ipairs(data.genders) do if g == "?" and mw.title.getCurrentTitle().nsText == "Template" then -- allow unknown gender in template example elseif g == "?" then -- FIXME, remove this branch once we’ve added the required genders track("missing-pron-gender") elseif g and not allowed_genders[g] and not additional_allowed_pronoun_genders[g] then error("Unrecognized " .. langname .. " gender: " .. g) end end -- Gather all inflections. process_inflection("masculine", args["m"], args["mqual"]) process_inflection("masculine singular before vowel", args["mv"], args["mvqual"]) process_inflection("feminine", args["f"], args["fqual"]) process_inflection("masculine plural", args["mp"], args["mpqual"]) process_inflection("feminine plural", args["fp"], args["fpqual"]) process_inflection("plural", args["p"], args["pqual"]) -- Add the inflections if #args["m"] > 0 then table.insert(data.inflections, args["m"]) end if #args["f"] > 0 then table.insert(data.inflections, args["f"]) end if #args["mp"] > 0 then table.insert(data.inflections, args["mp"]) end if #args["fp"] > 0 then table.insert(data.inflections, args["fp"]) end if #args["p"] > 0 then table.insert(data.inflections, args["p"]) end -- Categorize by "type" local pos = "pronouns" for _, ty in ipairs(args.type) do local category, label if ty == "indefinite" then category = "indefinite" elseif ty == "interrogative" then category = "interrogative" elseif ty == "personal" then category = "personal" elseif ty == "possessive" then category = "possessive" elseif ty == "reflexive" then category = "reflexive" elseif ty == "relative" then category = "relative" end if category then if type(category) == "table" then for _, cat in ipairs(category) do table.insert(data.categories, langname .. " " .. cat .. " " .. pos) end else table.insert(data.categories, langname .. " " .. category .. " " .. pos) end end end end } end pos_functions["pronouns"] = get_pronoun_pos(true) pos_functions["determiners"] = get_pronoun_pos(true) local function get_misc_pos() return { param1_is_head = true, params = { [1] = {}, }, func = function(args, data) end } end pos_functions["adverbs"] = get_misc_pos() pos_functions["prepositions"] = get_misc_pos() pos_functions["phrases"] = get_misc_pos() pos_functions["prepositional phrases"] = get_misc_pos() pos_functions["proverbs"] = get_misc_pos() pos_functions["punctuation marks"] = get_misc_pos() pos_functions["diacritical marks"] = get_misc_pos() pos_functions["interjections"] = get_misc_pos() pos_functions["prefixes"] = get_misc_pos() pos_functions["abbreviations"] = get_misc_pos() local function do_adjective(pos) return { params = { [1] = {}, ["inv"] = {type = "boolean"}, ["sp"] = {}, -- special indicator: "first", "first-last", etc. ["onlyg"] = {}, ["m"] = {list = true}, ["mqual"] = {list = true}, ["mv"] = {list = true}, ["mvqual"] = {list = true}, ["f"] = {list = true}, ["fqual"] = {list = true}, ["mp"] = {list = true}, ["mpqual"] = {list = true}, ["fp"] = {list = true}, ["fpqual"] = {list = true}, ["p"] = {list = true}, ["pqual"] = {list = true}, ["current"] = {list = true}, ["comp"] = {list = true}, ["compqual"] = {list = true}, ["sup"] = {list = true}, ["supqual"] = {list = true}, ["intr"] = {type = "boolean"}, }, func = function(args, data) local lemma = data.subpage if pos == "cardinal adjectives" then pos = "numerals" data.pos_category = "numerals" table.insert(data.categories, 1, langname .. " cardinal numbers") end if pos ~= "numerals" then if args.onlyg == "p" or args.onlyg == "m-p" or args.onlyg == "f-p" then table.insert(data.categories, langname .. " pluralia tantum") end if args.onlyg == "s" or args.onlyg == "f-s" or args.onlyg == "f-s" then table.insert(data.categories, langname .. " singularia tantum") end if args.onlyg then table.insert(data.categories, langname .. " defective " .. pos) end end local function process_inflection(label, arg, accel, get_default, explicit_default_only) local default_val local function default() if default_val == nil then if get_default then default_val = get_default() else default_val = false end end return default_val end local orig_infls = #args[arg] > 0 and args[arg] or explicit_default_only and {} or default() or {} local infls = {} if #orig_infls > 0 then infls.label = label infls.accel = accel and {form = accel} or nil local quals = args[arg .. "qual"] for i, infl in ipairs(orig_infls) do if infl == "#" then infl = lemma elseif infl == "e" or infl == "s" or infl == "x" then infl = lemma .. infl elseif infl == "+" then infl = default() if not infl then error("Can't use '+' with " .. arg .. "=; no default available") end end if type(infl) == "table" then for _, inf in ipairs(infl) do if quals[i] then table.insert(infls, {term = inf, q = {quals[i]}}) else table.insert(infls, inf) end end elseif quals[i] then table.insert(infls, {term = infl, q = {quals[i]}}) else table.insert(infls, infl) end end table.insert(data.inflections, infls) end return infls end if args.sp and not require("Module:romance utilities").allowed_special_indicators[args.sp] then local indicators = {} for indic, _ in pairs(require("Module:romance utilities").allowed_special_indicators) do table.insert(indicators, "'" .. indic .. "'") end table.sort(indicators) error("Special inflection indicator beginning can only be " .. require("Module:table").serialCommaJoin(indicators, {dontTag = true}) .. ": " .. args.sp) end local function get_current() return #args.current > 0 and args.current or {data.subpage} end if args.onlyg == "p" then table.insert(data.inflections, {label = "plural only"}) if args[1] ~= "mf" then -- Handle feminine plurals process_inflection("feminine plural", "fp", "f|p") end elseif args.onlyg == "s" then table.insert(data.inflections, {label = "singular only"}) if not (args[1] == "mf" or #args.f == 0 and rfind(data.subpage, "e$")) then -- Handle feminines process_inflection("feminine singular", "f", "f", function() return add_suffix(get_current(), "e", args.sp) end) end elseif args.onlyg == "m" then table.insert(data.genders, "m") table.insert(data.inflections, {label = "masculine only"}) -- Handle masculine plurals process_inflection("masculine plural", "mp", "m|p", function() return add_suffix(get_current(), "s", args.sp) end) elseif args.onlyg == "f" then table.insert(data.genders, "f") table.insert(data.inflections, {label = "feminine only"}) -- Handle feminine plurals process_inflection("feminine plural", "fp", "f|p", function() return add_suffix(get_current(), "s", args.sp) end) elseif args.onlyg then table.insert(data.genders, args.onlyg) table.insert(data.inflections, {label = "defective"}) else -- Gather genders local gender = args[1] -- Default to mf if base form ends in -e and no feminine, -- feminine plural or gender specified if not gender and #args.f == 0 and #args.fp == 0 and rfind(data.subpage, "e$") and not rfind(data.subpage, " ") then gender = "mf" end if #args.current > 0 then track("adj-current") end if args.intr then table.insert(data.inflections, {label = glossary_link("intransitive")}) table.insert(data.inflections, {label = "hence " .. glossary_link("invariable")}) args.inv = true elseif args.inv then table.insert(data.inflections, {label = glossary_link("invariable")}) end -- Handle plurals of mf adjectives if not args.inv and gender == "mf" then process_inflection("plural", "p", "p", function() return add_suffix(get_current(), "s", args.sp) end) end if not args.inv and gender ~= "mf" then -- Handle masculine form if not same as lemma; e.g. [[sûr de soi]] with m=+, m2=sûr de lui process_inflection("masculine singular", "m", "m|s", function() return {data.subpage} end, "explicit default only") -- Handle case of special masculine singular before vowel process_inflection("masculine singular before vowel", "mv", "m|s") -- Handle feminines local feminines = process_inflection("feminine", "f", "f|s", function() return add_suffix(get_current(), "e", args.sp) end) -- Handle masculine plurals process_inflection("masculine plural", "mp", "m|p", function() return add_suffix(get_current(), "s", args.sp) end) -- Handle feminine plurals process_inflection("feminine plural", "fp", "f|p", function() return add_suffix(feminines, "s", args.sp) end) end end -- Handle comparatives process_inflection("comparative", "comp", "comparative") -- Handle superlatives process_inflection("superlative", "sup", "superlative") -- Check existence for _, infls in pairs(data.inflections) do if not check_exists(infls, data.categories, pos) then break end end end } end pos_functions["adjectives"] = do_adjective("adjectives") pos_functions["past participles"] = do_adjective("participles") pos_functions["cardinal adjectives"] = do_adjective("cardinal adjectives") pos_functions["verbs"] = { param1_is_head = true, params = { [1] = {}, ["type"] = {list = true}, }, func = function(args, data) local pos = "verbs" for _, ty in ipairs(args.type) do local category, label if ty == "auxiliary" then category = "auxiliary" elseif ty == "defective" then category = "defective" label = glossary_link("defective") elseif ty == "impersonal" then category = "impersonal" label = glossary_link("impersonal") elseif ty == "modal" then category = "modal" elseif ty == "reflexive" then category = "reflexive" elseif ty == "transitive" then label = glossary_link("transitive") category = "transitive" elseif ty == "intransitive" then label = glossary_link("intransitive") category = "intransitive" elseif ty == "ambitransitive" or ty == "ambi" then category = {"transitive", "intransitive"} label = glossary_link("transitive") .. " and " .. glossary_link("intransitive") end if category then if type(category) == "table" then for _, cat in ipairs(category) do table.insert(data.categories, langname .. " " .. cat .. " " .. pos) end else table.insert(data.categories, langname .. " " .. category .. " " .. pos) end end if label then table.insert(data.inflections, {label = label}) end end end } pos_functions["cardinal invariable"] = { params = {}, func = function(args, data) data.pos_category = "numerals" table.insert(data.categories, langname .. " cardinal numbers") table.insert(data.categories, langname .. " indeclinable numerals") table.insert(data.inflections, {label = glossary_link("invariable")}) end } return export qs0yaeh674dojvsc8rxu42sw5gixsr0 Modul:documentation 828 152002 628938 628766 2024-11-06T17:05:30Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628938 Scribunto text/plain local export = {} -- it is either here, or in [[Module:ugly hacks]], and it is not in ugly hacks. function export.CONTENTMODEL() return mw.title.getCurrentTitle().contentModel end local skins = { ["common" ] = ""; ["vector" ] = "Vector"; ["monobook" ] = "Monobook"; ["cologneblue"] = "Cologne Blue"; ["modern" ] = "Modern"; } local Array = require "Module:array" local function track(page) require("Module:debug/track")("documentation/" .. page) return true end local function compare_pages(page1, page2, text) return "[" .. tostring( mw.uri.fullUrl("Special:ComparePages", {page1 = page1, page2 = page2})) .. " " .. text .. "]" end local function page_exists(title) local success, title_obj = pcall(mw.title.new, title) return success and title_obj.exists end -- Avoid transcluding [[Module:tili/cache]] everywhere. local lang_cache = setmetatable({}, { __index = function (self, k) return require "Module:tili/cache"[k] end }) local function zh_link(word) return require("Module:links").full_link{ lang = lang_cache.zh, term = word } end local function make_languages_data_documentation(title, cats, division) local doc_template, module_cat if division:find("/extra$") then division = division:gsub("/extra$", "") doc_template = "language extradata documentation" module_cat = "Language extra data modules" else doc_template = "language data documentation" module_cat = "Language data modules" end local sort_key if division == "exceptional" then sort_key = "x" else sort_key = division:gsub("/", "") end cats:insert(module_cat .. "|" .. sort_key) return { title = doc_template } end local function make_Unicode_data_documentation(title, cats) local subpage, first_three_of_code_point = title.fullText:match("^Module:Unicode data/([^/]+)/(%x%x%x)$") if subpage == "names" or subpage == "images" or subpage == "emoji images" then local low, high = tonumber(first_three_of_code_point .. "000", 16), tonumber(first_three_of_code_point .. "FFF", 16) local text, text_type if subpage == "names" then text_type = "titles of images" elseif subpage == "images" then text_type = "titles of images" elseif subpage == "emoji images" then text_type = "emoji-style images" end text = string.format( "This data module contains the " .. text_type .. " of " .. "[[Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.", low, high) if subpage == "images" and pcall(mw.loadData, "Module:Unicode data/emoji images/" .. first_three_of_code_point) then text = text .. " This list includes the text variants of emojis. For the list of emoji variants of those characters, see [[Module:Unicode data/emoji images/" .. first_three_of_code_point .. "]]." elseif subpage == "emoji images" then text = text .. " For text-style images, see [[Module:Unicode data/images/" .. first_three_of_code_point .. "]]." end return text end end local function insert_lang_data_module_cats(cats, langcode, overall_data_module_cat) local lang = lang_cache[langcode] if lang then local langname = lang:getCanonicalName() cats:insert(overall_data_module_cat .. "|" .. langname) cats:insert(langname .. " modules") cats:insert(langname .. " data modules") return lang, langname end end --[=[ This provides categories and documentation for various data modules, so that [[Category:Uncategorized modules]] isn't unnecessarily cluttered. It is a list of tables, each of which have the following possible fields: `regex` (required): A Lua pattern to match the module's title. If it matches, the data in this entry will be used. Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the `process` function as the third and subsequent parameters. `process` (optional): This may be a function or a string. If it is a function, it is called as follows: `process(TITLE, CATS, CAPTURE1, CAPTURE2, ...)` where: * TITLE is a title object describing the module's title; see [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects]. * CATS is an array object (see [[Module:array]]) of categories that the module will be added to. * CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field. The return value of `process` should either be a string (which will be used as the module's documentation), or a table specifying the name of a template to expand to get the documentation, along with the arguments to that template. In the latter format, the template name (bare, without the "Template:" prefix) should be in the `title` field, and any arguments should be in `args; in this case, the template name will be listed above the generated documentation as the source of the documentation, along with an edit button to edit the template's contents. If, however, the return value of the `process` function is a string, any template invocations will be expanded using frame:preprocess(), and [[Module:documentation]] will be listed as the source of the documentation. If `process` itself is a string rather than a function, it should name a submodule under [[Module:documentation/functions/]] which returns a function, of the same type as described above. This submodule will be specified as the source of the documentation (unless it returns a table naming a template to expand to get the documentation, as described above). If `process` is omitted entirely, the module will have no documentation. `cat` (optional): A string naming the category into which the module should be placed, or a list of such strings. Captures specified in `regex` may be referenced in this string using %1 for the first capture, %2 for the second, etc. It is also possible to add categories in the `process` function by inserting them into the passed-in CATS array (the second parameter). ]=] local module_regex = { { regex = "^Module:languages/data/(3/[a-z]/extra)$", process = make_languages_data_documentation, }, { regex = "^Module:languages/data/(3/[a-z])$", process = make_languages_data_documentation, }, { regex = "^Module:languages/data/(2/extra)$", process = make_languages_data_documentation, }, { regex = "^Module:languages/data/(2)$", process = make_languages_data_documentation, }, { regex = "^Module:languages/data/(exceptional/extra)$", process = make_languages_data_documentation, }, { regex = "^Module:languages/data/(exceptional)$", process = make_languages_data_documentation, }, { regex = "^Module:tili/.+$", cat = "Language and script modules", }, { regex = "^Module:scripts/.+$", cat = "Language and script modules", }, { regex = "^Module:data tables/data..?.?.?$", cat = "Reference module sharded data tables", }, { regex = "^Module:zh/data/dial%-pron/.+$", cat = "Chinese dialectal pronunciation data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/dial%-syn/.+$", cat = "Chinese dialect synonyms data modules", process = "zh dial or syn", }, { regex = "^Module:zh/data/glyph%-data/.+$", cat = "Chinese historical character forms data modules", process = function(title, cats) local character = title.fullText:match("^Module:zh/data/glyph%-data/(.+)") if character then return ("This module contains data on historical forms of the Chinese character %s.") :format(zh_link(character)) end end, }, { regex = "^Module:zh/data/ltc%-pron/(.+)$", cat = "Middle Chinese pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-BS/(.+)$", cat = "Old Chinese (Baxter-Sagart) pronunciation data modules|%1", process = "zh data", }, { regex = "^Module:zh/data/och%-pron%-ZS/(.+)$", cat = "Old Chinese (Zhengzhang) pronunciation data modules|%1", process = "zh data", }, { -- capture rest of zh/data submodules regex = "^Module:zh/data/(.+)$", cat = "Chinese data modules|%1", }, { regex = "^Module:mul/guoxue%-data/cjk%-?(.*)$", process = "guoxue-data", }, { regex = "^Module:Unicode data/(.+)$", cat = "Unicode data modules|%1", process = make_Unicode_data_documentation, }, { regex = "^Module:number list/data/(.+)$", process = function(title, cats, lang_code) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Number data modules") if lang then return ("This module contains data on various types of numbers in %s.\n%s") :format(lang:makeCategoryLink(), require("Module:number list/show").table() or "") end end, }, { regex = "^Module:accel/(.+)$", process = function(title, cats) local lang_code = title.subpageText local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|accel") cats:insert(("Accel submodules|%s"):format(lang:getCanonicalName())) return ("This module contains new entry creation rules for %s; see [[WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.") :format(lang:makeCategoryLink()) end end, }, { regex = "^Module:inc%-ash/dial/data/(.+)$", cat = "Ashokan Prakrit modules|%1", process = function(title, cats) local word = title.fullText:match("^Module:inc%-ash/dial/data/(.+)$") if word then local lang = lang_cache["inc-ash"] return ("This module contains data on the pronunciation of %s in dialects of %s.") :format(require("Module:links").full_link({ term = word, lang = lang }, "term"), lang:makeCategoryLink()) end end, }, { regex = "^.+%-translit$", process = "translit", }, { regex = "^Module:form of/lang%-data/(.+)$", process = function(title, cats, lang_code) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Language-specific form-of modules") if lang then -- FIXME, display more info. return "This module contains language-specific form-of data (tags, shortcuts, base lemma params. etc.) for " .. langname .. ".\n\n'''NOTE:''' If you add a new language-specific module, you must add the language code to the " .. "list at the top of [[Module:form of]] in order for the module to be recognized." end end }, { regex = "^Module:labels/data/lang/(.+)$", process = function(title, cats, lang_code) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Language-specific label data modules") if lang then return { title = "label language-specific data documentation", args = { [1] = lang_code }, } end end }, { regex = "^Module:category tree/poscatboiler/data/lang%-specific/(.+)$", process = function(title, cats, lang_code) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Category tree data modules/poscatboiler") if lang then return "This module handles generating the descriptions and categorization for " .. langname .. " category pages " .. "of the format \"" .. langname .. " LABEL\" where LABEL can be any text. Examples are " .. "[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. " .. "This module is part of the poscatboiler system, which is a general framework for generating the " .. "descriptions and categorization of category pages.\n\n" .. "For more information, see [[Module:category tree/poscatboiler/data/lang-specific/documentation]].\n\n" .. "'''NOTE:''' If you add a new language-specific module, you must add the language code to the " .. "list at the top of [[Module:category tree/poscatboiler/data/lang-specific]] in order for the module to be " .. "recognized." end end }, { regex = "^Module:category tree/poscatboiler/data/(.+)$", process = function(title, cats, submodule) cats:insert("Category tree data modules/poscatboiler| ") return { title = "poscatboiler data submodule documentation" } end }, { regex = "^Module:category tree/topic cat/data/(.+)$", process = function(title, cats, submodule) cats:insert("Category tree data modules/topic cat| ") return { title = "topic cat data submodule documentation" } end }, { regex = "^Module:ja/data/(.+)$", cat = "Japanese data modules|%1", }, { regex = "^Module:fi%-dialects/data/feature/Kettunen1940 ([0-9]+)$", cat = "Finnish dialectal data atlas modules|%1", process = function(title, cats, shard) return "This module contains shard " .. shard .. " of the online version of Lauri Kettunen's 1940 work " .. "''Suomen murteet III A. Murrekartasto'' (\"Finnish dialects III A: Dialect atlas\"). " .. "It was imported and converted from urn:nbn:fi:csc-kata20151130145346403821, published by the " .. "''Kotimaisten kielten keskus'' under the CC BY 4.0 license." end }, { regex = "^Module:fi%-dialects/data/feature/(.+)", cat = "Finnish dialectal data modules|%1", }, { regex = "^Module:fi%-dialects/data/word/(.+)", cat = "Finnish dialectal data modules|%1", }, { regex = "^Module:Swadesh/data/([a-z-]+)$", process = function(title, cats, lang_code) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Swadesh modules") if lang then return "This module contains the [[Swadesh list]] of basic vocabulary in " .. langname .. "." end end }, { regex = "^Module:Swadesh/data/([a-z-]+)/([^/]*)$", process = function(title, cats, lang_code, variety) local lang, langname = insert_lang_data_module_cats(cats, lang_code, "Swadesh modules") if lang then local prefix = "This module contains the [[Swadesh list]] of basic vocabulary in the " local etym_lang = require("Module:tili").getByCode(variety, nil, "allow etym") if etym_lang then return ("%s %s variety of %s."):format(prefix, etym_lang:getCanonicalName(), langname) end local script = require("Module:scripts").getByCode(variety) if script then return ("%s %s %s script."):format(prefix, langname, script:getCanonicalName()) end return ("%s %s variety of %s."):format(prefix, variety, langname) end end }, { regex = "^Module:typing%-aids", process = function(title, cats) local data_suffix = title.fullText:match("^Module:typing%-aids/data/(.+)$") local sortkey if data_suffix then if data_suffix:find "^[%l-]+$" then local lang = require("Module:tili").getByCode(data_suffix) if lang then sortkey = lang:getCanonicalName() cats:insert(sortkey .. " data modules") end elseif data_suffix:find "^%u%l%l%l$" then local script = require("Module:scripts").getByCode(data_suffix) if script then sortkey = script:getCanonicalName() cats:insert(script:getCategoryName()) end end cats:insert("Character insertion data modules|" .. (sortkey or data_suffix)) end end, }, { regex = "^Module:R:([a-z%-]+):(.+)$", process = function(title, cats, lang_code, refname) local lang = lang_cache[lang_code] if lang then cats:insert(lang:getCanonicalName() .. " modules|" .. refname) cats:insert(("Reference modules|%s"):format(lang:getCanonicalName())) return "This module implements the reference template {{temp|R:" .. lang_code .. ":" .. refname .. "}}." end end, }, { regex = "^Module:Quotations/([a-z-]+)/?(.*)", process = "Quotation", }, { regex = "^Module:affix/lang%-data/([a-z-]+)", process = "affix lang-data", }, { regex = "^Module:dialect synonyms/([a-z-]+)$", process = function(title, cats, lang_code) local lang = lang_cache[lang_code] if lang then local langname = lang:getCanonicalName() cats:insert("Dialect synonyms data modules|" .. langname) cats:insert(langname .. " dialect synonyms data modules| ") return "This module contains data on specific varieties of " .. langname .. ", for use by " .. "{{tl|dialect synonyms}}. The actual synonyms themselves are contained in submodules." end end, }, { regex = "^Module:dialect synonyms/([a-z-]+)/(.+)$", process = function(title, cats, lang_code, term) local lang = lang_cache[lang_code] if lang then local langname = lang:getCanonicalName() cats:insert("Dialect synonyms data modules|" .. langname) cats:insert(langname .. " dialect synonyms data modules|" .. term) return ("This module contains dialectal %s synonyms for {{m|%s|%s}}."):format(langname, lang_code, term) end end, }, } function export.show(frame) local boolean_default_false = {type = "boolean", default = false} local args = require("Module:parameters").process(frame.args, { ["hr"] = true, ["for"] = true, ["from"] = true, ["allowondoc"] = boolean_default_false, -- Don't throw an error if used on a documentation subpage. ["notsubpage"] = boolean_default_false, ["nodoc"] = boolean_default_false, ["nolinks"] = boolean_default_false, -- suppress all "Useful links" }) local output = Array('\n<div class="documentation" style="display:block; clear:both">\n') local cats = Array() local nodoc = args.nodoc if (not args.hr) or (args.hr == "above") then output:insert("----\n") end local title = args["for"] and mw.title.new(args["for"]) or mw.title.getCurrentTitle() local doc_title = args.from ~= "-" and mw.title.new(args.from or title.fullText .. '/documentation') or nil local contentModel = title.contentModel local pagetype = require("Module:pages").pagetype(title) local preload, fallback_docs, doc_content, old_doc_title, user_name, skin_name, needs_doc local doc_content_source = "Module:documentation" local auto_generated_cat_source local cats_auto_generated = false if pagetype == "script" then -- .js if title.nsText == "MediaWiki" then if title.text:find("Gadget-") then preload = "Template:documentation/preloadGadget" else preload = "Template:documentation/preloadMediaWikiJavaScript" end else preload = "Template:documentation/preloadTemplate" -- XXX end if title.nsText == "User" then user_name = title.rootText end elseif pagetype == "stylesheet" then -- .css preload = "Template:documentation/preloadTemplate" -- XXX if title.nsText == "User" then user_name = title.rootText end elseif pagetype == "module" or pagetype == "module testcase page" then preload = "Template:documentation/preloadModule" elseif pagetype == "module sandbox" then user_name = title.rootText:match("^[Uu]ser:(.+)") if user_name then preload = "Template:documentation/preloadModuleUserSandbox" else preload = "Template:documentation/preloadModuleSandbox" end elseif pagetype == "template" or pagetype == "template testcase page" then preload = "Template:documentation/preloadTemplate" elseif pagetype == "template sandbox" then user_name = title.rootText:match("^[Uu]ser:(.+)") if user_name then preload = "Template:documentation/preloadTemplateUserSandbox" else preload = "Template:documentation/preloadTemplateSandbox" end elseif pagetype == "project page" then preload = "Template:documentation/preloadTemplate" -- XXX elseif not args.allowondoc and (pagetype == "template documentation page" or pagetype == "module documentation page") then -- TODO: merge with {{documentation subpage}}, and choose behaviour based on the page type. error("This template should not be used on a documentation page. Please use [[Template:documentation subpage]].") end if doc_title and doc_title.isRedirect then old_doc_title = doc_title doc_title = doc_title.redirectTarget end output:insert("<dl class=\"plainlinks\" style=\"font-size: smaller;\">") local function get_module_doc_and_cats(categories_only) cats_auto_generated = true local automatic_cats = nil if user_name then fallback_docs = "documentation/fallback/user module" automatic_cats = {"User sandbox modules"} else for _, data in ipairs(module_regex) do local captures = {mw.ustring.match(title.fullText, data.regex)} if #captures > 0 then local cat local process_function if type(data.process) == "function" then process_function = data.process elseif type(data.process) == "string" then doc_content_source = "Module:documentation/functions/" .. data.process process_function = require(doc_content_source) end if process_function then doc_content = process_function(title, cats, unpack(captures)) end if type(doc_content) == "table" then doc_content_source = doc_content.title and "Template:" .. doc_content.title or doc_content_source doc_content = mw.getCurrentFrame():expandTemplate(doc_content) elseif doc_content and doc_content:find("{{") then doc_content = mw.getCurrentFrame():preprocess(doc_content) end cat = data.cat if cat then if type(cat) == "string" then cat = {cat} end for _, c in ipairs(cat) do -- gsub() and Lua :gsub() return two arguments, which causes all sorts of problems. -- Terrible design, there should have been a separate two-argument function. local gsub_sucks = mw.ustring.gsub(title.fullText, data.regex, c) table.insert(cats, gsub_sucks) end end break end end end if title.subpageText == "templates" then cats:insert("Template interface modules") end if automatic_cats then for _, c in ipairs(automatic_cats) do cats:insert(c) end end if #cats == 0 then local auto_cats = require("Module:module categorization").categorize(frame, "return raw", "noerror") if #auto_cats > 0 then auto_generated_cat_source = "Module:module categorization" end for _, category in ipairs(auto_cats) do cats:insert(category) end end -- meaning module is not in user’s sandbox or one of many datamodule boring series needs_doc = not categories_only and not (automatic_cats or doc_content or fallback_docs) end -- Override automatic documentation, if present. if doc_title and doc_title.exists then local cats_auto_generated_text = "" if contentModel == "Scribunto" then local doc_page_content = doc_title:getContent() -- Track then do nothing if there are uses of includeonly. The -- pattern is slightly too permissive, but any false-positives are -- obvious typos that should be corrected. if doc_page_content:lower():match("</?includeonly%f[%s/>][^>]*>") then track("module-includeonly") else -- Check for uses of {{module cat}}. find_templates treats the -- input as transcluded by default (i.e. it parses the wikitext -- which will be transcluded through to the module page). local module_cat for template in require("Module:template parser").find_templates(doc_page_content) do if template:get_name() == "module cat" then module_cat = true break end end if not module_cat then get_module_doc_and_cats("categories only") auto_generated_cat_source = auto_generated_cat_source or doc_content_source cats_auto_generated_text = " Categories were auto-generated by [[" .. auto_generated_cat_source .. "]]. <sup>[[" .. mw.title.new(auto_generated_cat_source):fullUrl{action = "edit"} .. " edit]]</sup>" end end end output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is located at [[" .. doc_title.fullText .. "]]. " .. "<sup>[[" .. doc_title:fullUrl{action = "edit"} .. " edit]]</sup>" .. cats_auto_generated_text .. "</i></dd>") else if contentModel == "Scribunto" then get_module_doc_and_cats(false) elseif title.nsText == "Template" then --cats:insert("Uncategorized templates") needs_doc = not (fallback_docs or nodoc) elseif pagetype == "script" or pagetype == "stylesheet" then if user_name then skin_name = skins[title.text:sub(#title.rootText + 1):match("^/([a-z]+)%.[jc]ss?$")] if skin_name then fallback_docs = "documentation/fallback/user " .. contentModel end end end if doc_content then output:insert( "<dd><i style=\"font-size: larger;\">The following " .. "[[Help:Documenting templates and modules|documentation]] is " .. "generated by [[" .. doc_content_source .. "]]. <sup>[[" .. mw.title.new(doc_content_source):fullUrl{action = "edit"} .. " edit]]</sup> </i></dd>") elseif not nodoc then if doc_title then output:insert( "<dd><i style=\"font-size: larger;\">This " .. pagetype .. " lacks a [[Help:Documenting templates and modules|documentation subpage]]. " .. (fallback_docs and "You may " or "Please ") .. "[" .. doc_title:fullUrl{action = "edit", preload = preload} .. " create it].</i></dd>\n") else output:insert( "<dd><i style=\"font-size: larger; color: #FF0000;\">Unable to auto-generate " .. "documentation for this " .. pagetype ..".</i></dd>\n") end end end if title.fullText:match("^MediaWiki:Gadget%-") then local is_gadget = false local gadget_list = mw.title.new("MediaWiki:Gadgets-definition"):getContent() for line in mw.text.gsplit(gadget_list, "\n") do local gadget, opts, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)%[(.-)%]|(.+)$") -- opts is unused if not gadget then gadget, items = line:match("^%*%s*([A-Za-z][A-Za-z0-9_%-]*)|(.+)$") end if gadget then items = Array(mw.text.split(items, "|")) for i, item in ipairs(items) do if title.fullText == ("MediaWiki:Gadget-" .. item) then is_gadget = true output:insert("<dd> ''This script is a part of the <code>") output:insert(gadget) output:insert("</code> gadget ([") output:insert(tostring(mw.uri.fullUrl("MediaWiki:Gadgets-definition", {action = "edit"}))) output:insert(" edit definitions])'' <dl>") output:insert("<dd> ''Description ([") output:insert(tostring(mw.uri.fullUrl("MediaWiki:Gadget-" .. gadget, {action = "edit"}))) output:insert(" edit])'': ") local gadget_description = mw.message.new('Gadget-' .. gadget):plain() gadget_description = frame:preprocess(gadget_description) output:insert(gadget_description) output:insert(" </dd>") items:remove(i) if #items > 0 then for j, item in ipairs(items) do items[j] = '[[MediaWiki:Gadget-' .. item .. '|' .. item .. ']]' end output:insert("<dd> ''Other parts'': ") output:insert(mw.text.listToText(items)) output:insert("</dd>") end output:insert("</dl></dd>") break end end end end if not is_gadget then output:insert("<dd> ''This script is not a part of any [") output:insert(tostring(mw.uri.fullUrl("Special:Gadgets", {uselang = "en"}))) output:insert(' gadget] ([') output:insert(tostring(mw.uri.fullUrl("MediaWiki:Gadgets-definition", {action = "edit"}))) output:insert(' edit definitions]).</dd>') -- else -- cats:insert("Wiktionary gadgets") end end if old_doc_title then output:insert("<dd> ''Redirected from'' [") output:insert(old_doc_title:fullUrl{redirect = "no"}) output:insert(" ") output:insert(old_doc_title.fullText) output:insert("] ([") output:insert(old_doc_title:fullUrl{action = "edit"}) output:insert(" edit]).</dd>\n") end if not args.nolinks then local links = Array() if title.isSubpage and not args.notsubpage then links:insert("[[:" .. title.nsText .. ":" .. title.rootText .. "|root page]]") links:insert("[[Special:PrefixIndex/" .. title.nsText .. ":" .. title.rootText .. "/|root page’s subpages]]") else links:insert("[[Special:PrefixIndex/" .. title.fullText .. "/|subpage list]]") end links:insert( "[" .. tostring(mw.uri.fullUrl("Special:WhatLinksHere/" .. title.fullText, {hidetrans = true, hideredirs = true})) .. " links]") if contentModel ~= "Scribunto" then links:insert( "[" .. tostring(mw.uri.fullUrl("Special:WhatLinksHere/" .. title.fullText, {hidelinks = true, hidetrans = true})) .. " redirects]") end if pagetype == "script" or pagetype == "stylesheet" then if user_name then links:insert("[[Special:MyPage" .. title.text:sub(#title.rootText + 1) .. "|your own]]") end else links:insert( "[" .. tostring(mw.uri.fullUrl("Special:WhatLinksHere/" .. title.fullText, {hidelinks = true, hideredirs = true})) .. " transclusions]") end if contentModel == "Scribunto" then local is_testcases = title.isSubpage and title.subpageText == "testcases" local without_subpage = title.nsText .. ":" .. title.baseText if is_testcases then links:insert("[[:" .. without_subpage .. "|tested module]]") else links:insert("[[" .. title.fullText .. "/testcases|testcases]]") end if user_name then links:insert("[[User:" .. user_name .. "|user page]]") links:insert("[[User talk:" .. user_name .. "|user talk page]]") links:insert("[[Special:PrefixIndex/User:" .. user_name .. "/|userspace]]") else -- If sandbox module, add a link to the module that this is a sandbox of. -- Exclude user sandbox modules like [[User:Dine2016/sandbox]]. if title.text:find("/sandbox%d*%f[/%z]") then cats:insert("Sandbox modules") track("sandbox to be moved") -- Sandbox modules don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else track("no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) -- If not a sandbox module, add link to sandbox module. -- Sometimes there are multiple sandboxes for a single module: -- [[Module:sa-pronunc/sandbox]], [[Module:sa-pronunc/sandbox2]]. -- Occasionally sandbox modules have their own subpages that are also -- sandboxes: [[Module:grc-decl/sandbox/decl]]. else local sandbox_title if title.fullText:find("^Module:grc%-decl/") then sandbox_title = title.fullText:gsub("^Module:grc%-decl/", "Module:grc-decl/sandbox/") elseif is_testcases then sandbox_title = title.fullText:gsub("/testcases", "/sandbox/testcases") else sandbox_title = title.fullText .. "/sandbox" end local sandbox_link = "[[:" .. sandbox_title .. "|sandbox]]" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert(sandbox_link .. (diff or "")) end end end if title.nsText == "Template" then -- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]] -- apparently same with/without: &profile=advanced&fulltext=1 local errorq = 'searchengineselect=mediawiki&search=all: hastemplate:\"'..title.rootText..'\" insource:\"'..title.rootText..'\" incategory:' local eincategory = "Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors" links:insert( '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..eincategory )) .. ' errors]' .. ' (' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'ParserFunction_errors' )) .. ' parser]' .. '/' .. '[' .. tostring(mw.uri.fullUrl('Special:Search', errorq..'Pages_with_module_errors' )) .. ' module]' .. ')' ) if title.isSubpage and title.text:find("/sandbox%d*%f[/%z]") then -- This is a sandbox template. -- At the moment there are no user sandbox templates with subpage -- “/sandbox”. cats:insert("Sandbox templates") -- Sandbox templates don’t really need documentation. needs_doc = false -- Will behave badly if “/sandbox” occurs twice in title! local sandbox_of = title.fullText:gsub("/sandbox%d*%f[/%z]", "") local diff if page_exists(sandbox_of) then diff = " (" .. compare_pages(title.fullText, sandbox_of, "diff") .. ")" else track("no sandbox of") end links:insert("[[:" .. sandbox_of .. "|sandbox of]]" .. (diff or "")) else -- This is a template that can have a sandbox. local sandbox_title = title.fullText .. "/sandbox" local diff if page_exists(sandbox_title) then diff = " (" .. compare_pages(title.fullText, sandbox_title, "diff") .. ")" end links:insert("[[:" .. sandbox_title .. "|sandbox]]" .. (diff or "")) end end if #links > 0 then output:insert("<dd> ''Useful links'': " .. links:concat(" • ") .. "</dd>") end end output:insert("</dl>\n") -- Show error from [[Module:category tree/topic cat/data]] on its submodules' -- documentation to, for instance, warn about duplicate labels. if title.fullText:find("Module:category tree/topic cat/data", 1, true) == 1 then local ok, err = pcall(require, "Module:category tree/topic cat/data") if not ok then output:insert('<span class="error">' .. err .. '</span>\n\n') end end if doc_title and doc_title.exists then -- Override automatic documentation, if present. doc_content = frame:expandTemplate { title = doc_title.fullText } elseif not doc_content and fallback_docs then doc_content = frame:expandTemplate { title = fallback_docs, args = { ['user'] = user_name, ['page'] = title.fullText, ['skin name'] = skin_name, }, } end if doc_content then output:insert(doc_content) end output:insert(('\n<%s style="clear: both;" />'):format(args.hr == "below" and "hr" or "br")) if cats_auto_generated and not cats[1] and (not doc_content or not doc_content:find("%[%[Category:")) then if contentModel == "Scribunto" then cats:insert("Uncategorized modules") -- elseif title.nsText == "Template" then -- cats:insert("Uncategorized templates") end end if needs_doc then cats:insert("Templates and modules needing documentation") end for _, cat in ipairs(cats) do output:insert("[[Category:" .. cat .. "]]") end output:insert("</div>\n") return output:concat() end function export.module_auto_doc_table() local parts = {} local function ins(text) table.insert(parts, text) end ins('{|class="wikitable"') ins("! Regex !! Category !! Handling modules") for _, spec in ipairs(module_regex) do local cat_text local cats = spec.cat if cats then local cat_parts = {} if type(cats) == "string" then cats = {cats} end for _, cat in ipairs(cats) do table.insert(cat_parts, ("<code>%s</code>"):format((cat:gsub("|", "&#124;")))) end cat_text = table.concat(cat_parts, ", ") else cat_text = "''(unspecified)''" end ins("|-") ins(("| <code>%s</code> || %s || %s"):format(spec.regex, cat_text, type(spec.process) == "function" and "''(handled internally)''" or type(spec.process) == "string" and ("[[Module:documentation/functions/%s]]"):format(spec.process) or "''(no documentation generator)''")) end ins("|}") return table.concat(parts, "\n") end -- Used by {{translit module documentation}}. function export.translitModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local translitModule = pagename local languageObjects = require("Module:languages/byTranslitModule")(translitModule) local codeInPagename = pagename:match("^([%l-]+)%-.*translit$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Transliteration modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Transliteration modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to transliterate " .. langs .. "." .. categories:concat() end -- Used by {{entry name module documentation}}. function export.entryNameModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local entryNameModule = pagename local languageObjects = require("Module:languages/byEntryNameModule")(entryNameModule) local codeInPagename = pagename:match("^([%l-]+)%-.*entryname$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Entry name-generating modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Entry name-generating modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to generate entry names for " .. langs .. "." .. categories:concat() end -- Used by {{sortkey module documentation}}. function export.sortkeyModuleLangList(frame) local pagename, subpage if frame.args[1] then pagename = frame.args[1] else local title = mw.title.getCurrentTitle() subpage = title.subpageText pagename = title.text if subpage ~= pagename then pagename = title.rootText end end local sortkeyModule = pagename local languageObjects = require("Module:languages/bySortkeyModule")(sortkeyModule) local codeInPagename = pagename:match("^([%l-]+)%-.*sortkey$") local categories = Array() local codeInPagenameInList = false if codeInPagename then if languageObjects[1] and subpage ~= "documentation" then local agreement = languageObjects[2] and "s" or "" categories:insert("[[Category:Sortkey-generating modules used by " .. #languageObjects .. " language" .. agreement .. "]]") end languageObjects = Array(languageObjects) :filter( function (lang) local result = lang:getCode() ~= codeInPagename codeInPagenameInList = codeInPagenameInList or result return result end) end if subpage ~= "documentation" then for script_code in pagename:gmatch("%f[^-%z]%u%l%l%l%f[-]") do local script = require "Module:scripts".getByCode(script_code) if script then categories:insert("[[Category:" .. script:getCategoryName() .. "]]") end end end if subpage ~= "documentation" and not page_exists("Module:" .. pagename .. "/testcases") then categories:insert("[[Category:Sortkey-generating modules without a testcases subpage]]") end if not languageObjects[1] then return categories:concat() end local langs = Array(languageObjects) :sort( function(lang1, lang2) return lang1:getCode() < lang2:getCode() end) -- This will not error because languageObjects is not empty. :map(languageObjects[1].makeCategoryLink) :serial_comma_join() return "It is " .. ( codeInPagenameInList and "also" or "" ) .. " used to sort " .. langs .. "." .. categories:concat() end return export pivry05ycfxflxdm0xqwtugdgmo2uar Hellouin 0 152553 628980 568894 2024-11-06T18:03:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628980 wikitext text/x-wiki [[Tasvir:Jack-o'-Lantern 2003-10-31.jpg|thumb|rught|200px|Halloween ramzi Jack O'Lantern]] {{-uz-}} ==Mustaqil ifoda== {{PAGENAME}} {{-az-}} ==Mustaqil ifoda== {{PAGENAME}} {{trans-top}} * {{ar}}: [[هالووين]] * {{hy}}: [[Հելոուին]] * {{be}}: [[Хэлоўін]] * {{bg}}: [[Хелоуин]] * {{bn}}: [[হ্যালোইন]] * {{cy}}: [[Gŵyl Calan Gaeaf]] * {{da}}: [[Allehelgensaften]] * {{de}}: [[Halloween]] * {{el}}: [[Χαλοουίν]] * {{fa}}: [[هالووین]] * {{ga}}: [[Oíche Shamhna]] * {{gu}}: [[હેલોવીન]] * {{haw}}: [[Heleuī]] * {{he}}: [[ליל כל הקדושים]] * {{hi}}: [[हैलोवीन]] * {{is}}: [[Hrekkjavaka]] * {{ja}}: [[ハロウィン]] * {{ka}}: [[ჰელოუინი]] * {{kk}}: [[Хэллоуин]] * {{kn}}: [[ಹ್ಯಾಲೋವೀನ್‌]] * {{ko}}: [[할로윈]] * {{la}}: [[Pervigilium Omnium Sanctorum]] {{trans-mid}} * {{lt}}: [[Helovinas]] * {{lv}}: [[Helovīns]] * {{mg}}: [[Halôhinina]] * {{mk}}: [[Ноќ на вештерките]] * {{ml}}: [[ഹാലോവീൻ]] * {{mr}}: [[हॅलोवीन]] * {{ne}}: [[हलोविन]] * {{no}}: [[Allehelgensaften]] * {{pa}}: [[ਹੈਲੋਵੀਨ]] * {{pt}}: [[Dia das Bruxas]] * {{ru}}: [[Хэллоуин]] * {{sl}}: [[Noč čarovnic]] * {{tg}}: [[Ҳеллоуин]] * {{th}}: [[ฮาโลวีน]] * {{tl}}: [[Gabi ng Pangangaluluwa]] * {{tr}}: [[Cadılar Bayramı]] * {{tt}}: [[Хэллоуин]] * {{uk}}: [[Хелловін]] * {{ur}}: [[ہالووین]] * {{vi}}: [[Halloween]] * {{yi}}: [[האלאווין]] * {{zh}}: [[萬聖夜]], [[万圣夜]] |} j85nahgifovz94ihcwu9dts7hxixhep 628981 628980 2024-11-06T18:04:09Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628981 wikitext text/x-wiki [[Tasvir:Jack-o'-Lantern 2003-10-31.jpg|thumb|rught|200px|Halloween ramzi Jack O'Lantern]] =={{-uz-}}== ==Mustaqil ifoda== {{PAGENAME}} {{-az-}} ==Mustaqil ifoda== {{PAGENAME}} {{trans-top}} * {{ar}}: [[هالووين]] * {{hy}}: [[Հելոուին]] * {{be}}: [[Хэлоўін]] * {{bg}}: [[Хелоуин]] * {{bn}}: [[হ্যালোইন]] * {{cy}}: [[Gŵyl Calan Gaeaf]] * {{da}}: [[Allehelgensaften]] * {{de}}: [[Halloween]] * {{el}}: [[Χαλοουίν]] * {{fa}}: [[هالووین]] * {{ga}}: [[Oíche Shamhna]] * {{gu}}: [[હેલોવીન]] * {{haw}}: [[Heleuī]] * {{he}}: [[ליל כל הקדושים]] * {{hi}}: [[हैलोवीन]] * {{is}}: [[Hrekkjavaka]] * {{ja}}: [[ハロウィン]] * {{ka}}: [[ჰელოუინი]] * {{kk}}: [[Хэллоуин]] * {{kn}}: [[ಹ್ಯಾಲೋವೀನ್‌]] * {{ko}}: [[할로윈]] * {{la}}: [[Pervigilium Omnium Sanctorum]] {{trans-mid}} * {{lt}}: [[Helovinas]] * {{lv}}: [[Helovīns]] * {{mg}}: [[Halôhinina]] * {{mk}}: [[Ноќ на вештерките]] * {{ml}}: [[ഹാലോവീൻ]] * {{mr}}: [[हॅलोवीन]] * {{ne}}: [[हलोविन]] * {{no}}: [[Allehelgensaften]] * {{pa}}: [[ਹੈਲੋਵੀਨ]] * {{pt}}: [[Dia das Bruxas]] * {{ru}}: [[Хэллоуин]] * {{sl}}: [[Noč čarovnic]] * {{tg}}: [[Ҳеллоуин]] * {{th}}: [[ฮาโลวีน]] * {{tl}}: [[Gabi ng Pangangaluluwa]] * {{tr}}: [[Cadılar Bayramı]] * {{tt}}: [[Хэллоуин]] * {{uk}}: [[Хелловін]] * {{ur}}: [[ہالووین]] * {{vi}}: [[Halloween]] * {{yi}}: [[האלאווין]] * {{zh}}: [[萬聖夜]], [[万圣夜]] |} ptya97crsqrxmx7xqf7xw09bsb48z7m homofon 0 152665 628976 569107 2024-11-06T18:00:51Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628976 wikitext text/x-wiki = {{-uz-}} = {{uz-ot}} ===Tillarda=== {{trans-top|Shu talaffuz bilan soʻzlar}} * Arabcha: [[لَفْظَة مُتَجَانِسَة]] (lafẓa mutajānisa) * Katalancha: {{t+|ca|homòfon}} * Xitoycha: *: Mandarin: [[同音詞]], {{t+|cmn|同音词|tr=tóngyīncí|sc=Hani}}, {{dardga|xitoy belgilar}} {{t+|cmn|同音字|tr=tóngyīnzì|sc=Hani}} * {{cs}}: [[homofon]], [[homofonum]] * {{nl}}: {{t+|nl|homofoon}} * Esperantocha: [[homofono]] * {{fr}}: {{t+|fr|homophone}} * Inglizcha: [[homophone]] * {{de}}: {{t+|de|Homophon}} * {{el}}: {{t+|el|ομόφωνος}} * Islandcha: [[samhljóma orð]] {{trans-mid}} * {{ga}}: [[homafón]], [[téarma comhfhuaimneach]] * Italyancha: [[omofono]] * {{ja}}: [[同音語]] ([[どうおんご]], [[dōongo]]) * Kxmercha: [[សូរដូច]] (soo dooc), [[កល្បសព្ទ]] (kɑlpa’sap) * Kurdcha: {{t+|ku|hevdeng}}, {{t+|ku|homofon}} * Portugalcha: {{t+|pt|homófono}} * {{de}}: {{t+|de|Homophon}} * {{sh}}: [[homofon]], [[istozvučnica]] * {{es}}: {{t+|es|homófono}} * Turkcha: [[sesteş kelime]] (1), [[sesteş]] * {{vi}}: [[chữ đồng âm]] |} {{-cs-}} {{cs-ism}} {{-ku-}} {{ku-ism}} {{-sh-}} {{sh-ism}} {{-sv-}} {{sv-ism}} 9hhl2wiv9xbwkfozl3lkb3zxazjw93t 微波 0 152936 628963 549340 2024-11-06T17:37:08Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628963 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=微bō |c=mei4 bo1 |h=mì-pô |md=mì-pŏ̤ |mn=bî-pho |h=pfs=mì-pô |cat=n }} {{zh-ism}} # [[mikrodalga]] #: [[微波]]/[[烤箱]]: [[mikrodalga]] ====Boshiga shartlari==== * [[微波烤箱]] (wēibō kǎoxiāng) * [[微波爐]] (wēibōlú) mil6ougc9ucu18xt2yuusjtji1sj10z Modul:columns 828 152958 628860 617018 2024-11-06T14:21:50Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628860 Scribunto text/plain local links_module = "Module:links" local parameter_utilities_module = "Module:parameter utilities" local parameters_module = "Module:parameters" local pron_qualifier_module = "Module:pron qualifier" local string_utilities_module = "Module:string utilities" local m_str_utils = require(string_utilities_module) local concat = table.concat local html = mw.html.create local is_substing = mw.isSubsting local find = string.find local insert = table.insert local match = string.match local remove = table.remove local sub = string.sub local trim = m_str_utils.trim local u = m_str_utils.char local export = {} local function format_list_items(list, args) local function term_already_linked(term) -- FIXME: "<span" is an ugly hack to prevent double-linking of terms already run through {{l|...}}: -- [[Thread:User talk:CodeCat/MewBot adding lang to column templates]] return find(term, "<span") end for _, item in ipairs(args.content) do if item == false then -- omitted item; do nothing else local text if type(item) == "table" then text = item.term and term_already_linked(item.term) and item.term or require(links_module).full_link(item) -- We could use the "show qualifiers" flag to full_link() but not when term_already_linked(). if item.q and item.q[1] or item.qq and item.qq[1] or item.l and item.l[1] or item.ll and item.ll[1] or item.refs and item.refs[1] then text = require(pron_qualifier_module).format_qualifiers { lang = item.lang or args.lang, text = text, q = item.q, qq = item.qq, l = item.l, ll = item.ll, refs = item.refs, } end elseif args.lang and not term_already_linked(item) then text = require(links_module).full_link {lang = args.lang, term = item, sc = args.sc} else text = item end list = list:node(html("li") :wikitext(text) ) end end return list end local function make_sortbase(item) if item == false then return "*" -- doesn't matter, will be omitted in format_list_items() elseif type(item) == "table" then return item.alt or item.term end return item end function export.create_list(args) -- Fields in args that are used: -- args.column_count, args.content, args.alphabetize, args.background_color, -- args.collapse, args.toggle_category, args.class, args.lang -- Check for required fields? if type(args) ~= "table" then error("expected table, got " .. type(args)) end local class = args.class or "derivedterms" local column_count = args.column_count or 1 local toggle_category = args.toggle_category or "derived terms" local header = args.header if header and args.format_header then header = html("div") :addClass("term-list-header") :wikitext(header) end if args.alphabetize then require("Module:collation").sort(args.content, args.lang, make_sortbase) end local list = html("ul") list = format_list_items(list, args) local output = html("div") :addClass(class) :addClass("term-list") :addClass("ul-column-count") :attr("data-column-count", column_count) :css("background-color", args.background_color) :node(list) if args.collapse then local nbsp = u(0xA0) output = html("div") :node(output) :addClass("list-switcher") :attr("data-toggle-category", toggle_category) :node(html("div") :addClass("list-switcher-element") :attr("data-showtext", nbsp .. "show more ▼" .. nbsp) :attr("data-hidetext", nbsp .. "show less ▲" .. nbsp) :css("display", "none") :wikitext(nbsp) ) end return tostring(header or "") .. tostring(output) end -- This function is for compatibility with earlier version of [[Module:columns]] -- (now found in [[Module:columns/old]]). function export.create_table(...) -- Earlier arguments to create_table: -- n_columns, content, alphabetize, bg, collapse, class, title, column_width, line_start, lang local args = {} args.column_count, args.content, args.alphabetize, args.background_color, args.collapse, args.class, args.header, args.column_width, args.line_start, args.lang = ... args.format_header = true return export.create_list(args) end function export.display_from(frame_args, parent_args, frame) local boolean = {type = "boolean"} local iparams = { ["class"] = true, -- Default for auto-collapse. Overridable by template |collapse= param. ["collapse"] = boolean, -- If specified, this specifies the number of columns, and no columns -- parameter is available on the template. Otherwise, the columns -- parameter is the first available numbered param after the language-code -- parameter. ["columns"] = {type = "number"}, -- If specified, this specifies the language code, and no language-code -- parameter is available on the template. Otherwise, the language-code -- parameter can be specified as either |lang= or |1=. ["lang"] = {type = "language"}, -- Default for auto-sort. Overridable by template |sort= param. ["sort"] = boolean, -- The following is accepted but currently ignored, per an extended discussion in -- [[Wiktionary:Beer parlour/2018/November#Titles of morphological relations templates]]. ["title"] = {default = ""}, ["toggle_category"] = true, } local iargs = require(parameters_module).process(frame_args, iparams) local compat = iargs.lang or parent_args.lang local lang_param = compat and "lang" or 1 local columns_param, first_content_param -- New-style #columns specification is through parameter n= so we can transition to the situation where -- omitting it results in auto-determination. Old-style #columns specification is through the first numbered -- parameter after the lang parameter. if parent_args.n then columns_param = "n" first_content_param = compat and 1 or 2 else columns_param = compat and 1 or 2 first_content_param = columns_param + (iargs.columns and 0 or 1) end local deprecated local params = { [lang_param] = not iargs.lang and {required = true, type = "language", default = "und"} or nil, [columns_param] = not iargs.columns and {required = true, type = "number", default = 2} or nil, [first_content_param] = {list = true, allow_holes = true}, ["title"] = {}, ["collapse"] = boolean, ["sort"] = boolean, ["sc"] = {type = "script"}, ["omit"] = {list = true}, -- used when calling from [[Module:saurus]] so the page displaying the synonyms/antonyms doesn't occur in the list } if lang_param == "lang" then deprecated = true end local m_param_utils = require(parameter_utilities_module) local param_mods = m_param_utils.construct_param_mods { {default = true, require_index = true}, {group = "link"}, -- sc has separate_no_index = true; that's the only one -- It makes no sense to have overall l=, ll=, q= or qq= params for columnar display. {group = {"ref", "l", "q"}, require_index = true}, } local items, args = m_param_utils.process_list_arguments { params = params, param_mods = param_mods, raw_args = parent_args, termarg = first_content_param, parse_lang_prefix = true, allow_multiple_lang_prefixes = true, disallow_custom_separators = true, track_module = "columns", lang = iargs.lang or lang_param, sc = "sc.default", } local lang = iargs.lang or args[lang_param] local langcode = lang:getCode() local sc = args.sc.default local sort = iargs.sort if args.sort ~= nil then sort = args.sort end local collapse = iargs.collapse if args.collapse ~= nil then collapse = args.collapse end for i, item in ipairs(items) do -- If a separate language code was given for the term, display the language name as a right qualifier. -- Otherwise it may not be obvious that the term is in a separate language (e.g. if the main language is 'zh' -- and the term language is a Chinese lect such as Min Nan). But don't do this for Translingual terms, which -- are often added to the list of English and other-language terms. if item.termlangs then local qqs = {} for _, termlang in ipairs(item.termlangs) do local termlangcode = termlang:getCode() if termlangcode ~= langcode and termlangcode ~= "mul" then insert(qqs, termlang:getCanonicalName()) end if item.qq then for _, qq in ipairs(item.qq) do insert(qqs, qq) end end end item.qq = qqs end local omitted = false for _, omitted_item in ipairs(args.omit) do if omitted_item == item.term then omitted = true break end end if omitted then -- signal create_list() to omit this item items[i] = false end end local ret = export.create_list { column_count = iargs.columns or args[columns_param], content = items, alphabetize = sort, header = args.title, collapse = collapse, toggle_category = iargs.toggle_category, -- columns-bg (in [[MediaWiki:Common.css]], [[MediaWiki:Mobile.css]]) provides the background color class = (iargs.class and iargs.class .. " columns-bg" or "columns-bg"), lang = lang, sc = sc, format_header = true } return deprecated and frame:expandTemplate{title = "check deprecated lang param usage", args = {ret, lang = args[lang_param]}} or ret end function export.display(frame) if not is_substing() then return export.display_from(frame.args, frame:getParent().args, frame) end -- If substed, unsubst template with newlines between each term, redundant wikilinks removed, and remove duplicates + sort terms if sort is enabled. local m_table = require("Module:table") local m_template_parser = require("Module:template parser") local parent = frame:getParent() local elems = m_table.shallowcopy(parent.args) local code = remove(elems, 1) code = code and trim(code) local lang = require("Module:tili").getByCode(code, 1) local i = 1 while true do local elem = elems[i] while elem do elem = trim(elem, "%s") if elem ~= "" then break end remove(elems, i) elem = elems[i] end if not elem then break elseif not ( -- Strip redundant wikilinks. not match(elem, "^()%[%[") or find(elem, "[[", 3, true) or find(elem, "]]", 3, true) ~= #elem - 1 or find(elem, "|", 3, true) ) then elem = sub(elem, 3, -3) elem = trim(elem, "%s") end elems[i] = elem .. "\n" i = i + 1 end -- If sort is enabled, remove duplicates then sort elements. if require("Module:yesno")(frame.args.sort) then elems = m_table.removeDuplicates(elems) require("Module:collation").sort(elems, lang) end -- Readd the langcode. insert(elems, 1, code .. "\n") -- TODO: Place non-numbered parameters after 1 and before 2. local template = m_template_parser.getTemplateInvocationName(mw.title.new(parent:getTitle())) return "{{" .. concat(m_template_parser.buildTemplate(template, elems), "|") .. "}}" end return export glxqpxfmslsltyy6wsgvqqwls3mujt5 通常 0 152996 628969 549673 2024-11-06T17:49:02Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628969 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=tōngcháng |c=tung1 soeng4 |h=pfs=thûng-sòng |mn=thong-siông |cat=sifat soʻzlar,holi soʻzlari }} {{zh-adj}} # [[normal]], [[muntazam]] [[odatiy]] {{zh-adv}} # [[oddiy]]; [[anʼanaviy]] {{-ja-}} {{ja-kanjitab|つう|じょう|yomi=o}} {{ja-adj|infl=na|つうじょう|hhira=つうじやう}} # [[oddiy]]; [[anʼanaviy]]; [[normal]] {{ja-pos|つうじょう|holi|hhira=つうじやう}} # [[odatda]]; [[tarqalgan]] {{ja-ism|つうじょう|hhira=つうじやう}} # [[odatiy]] (narsa, va hokazo), [[norma]] #: {{ja-usex|'''通常'''を除いてより高い価格になるかもしれない。|'''つうじょう''' を のぞいて より たかい かかく に なる か も しれない。|Odatiy [holatlar] tashqari, u yanada yuqori bahoga uchun borish mumkin.}} ===Manlalar=== <references/> dxzz5h9a5ulyri3qgswqotw4p8v055d Modul:zh-cat 828 153283 628997 403115 2024-11-06T18:25:19Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628997 Scribunto text/plain local export = {} local m_zh = require("Module:zh") local m_data = require("Module:zh-cat/data") function export.generateClsLink(text, doNotUsePagename) local trad = doNotUsePagename and text or mw.title.getCurrentTitle().text local simp = m_zh.ts(trad) return "Category:Chinese nouns classified by " .. (trad ~= simp and (trad .. "/" .. simp) or trad) end function export.categorize(frame) local args = type(frame) == "table" and frame:getParent().args or { frame } local PAGENAME = mw.loadData("Module:headword/data").pagename -- Accounts for unsupported titles and sets DEFAULTSORTKEY. local sortkey = (require("Module:tili").getByCode("zh"):makeSortKey(PAGENAME)) local text = "" for _, cat in ipairs(args) do if mw.ustring.match(cat, "Classifier") then local parts = mw.text.split(cat, ":") text = text .. "[[" .. export.generateClsLink(parts[2], true) .. "|" .. sortkey .. "]]" elseif m_data.conventional_names[mw.ustring.lower(cat)] then text = text .. "[[Category:" .. m_data.conventional_names[mw.ustring.lower(cat)] .. "|" .. sortkey .. "]]" else text = text .. "[[Category:zh:" .. cat .. "|" .. sortkey .. "]]" end end return (mw.title.getCurrentTitle().nsText == "" and text or "") end function export.clsCat(frame) local PAGENAME = mw.title.getCurrentTitle().text local part = mw.text.split(PAGENAME, " ") local character = part[#part] local sortkey = (require("Module:tili").getByCode("zh"):makeSortKey(character)) return "Chinese nouns using " .. require("Module:zh/link").link(frame, nil, { character, tr = "-" }, character) .. " as their classifier.\n[[Category:Chinese nouns by classifier|" .. sortkey .. "]]" end return export gw02tdfvqctafcjp5f90jif86of1e5e 0 153417 628954 603335 2024-11-06T17:24:38Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628954 wikitext text/x-wiki {{-zh-}} {{zh-forms}} ===Talaffuz=== {{zh-pron |m=fán,chù,jù |c=faan4 |h=pfs=fàm |mn=hoān |mc=y |oc=y |ma= |cat=holi soʻzlari,aniqlash soʻzlar,a }} ===Taʼriflar=== {{zh-hanzi}} # [[dunyo]]; [[shafqatsiz]]; [[yuzidagi]] # [[oddiy]]; [[odatiy]] # [[belgilab]]; [[mohiyat]] # [[w:Gongche_notation|Gongche Nota]] toʻrtinchi ko'lamli darajasi ([[工尺譜]]/[[工尺谱]]) {{zh-adv}} # [[har]]; [[barcha]]; [[har qanday]] #* [https://web.archive.org/web/20111002150223/http://www.wordproject.org/multi/bi_en_cn_py.htm John 1.3] # [[butunlay]] {{-ja-}} ===Kanji=== {{ja-kanji|grade=c|rs=几01}} ===Taʼriflar=== # [[oddiy]] [[umumiy]] ====Oʻqish==== {{ja-oʻqishlar |goon=[[ぼん]] (bon) |kanon=[[はん]] (han) |kun={{non-joyo-oʻqish}} [[おお]] (ō), {{non-joyo-oʻqish}} [[おおよそ]] (ōyoso), {{non-joyo-oʻqish}} [[およそ]] (oyoso), {{non-joyo-oʻqish}} [[おおよそ]] ([[凡そ]], ōyoso), {{non-joyo-oʻqish}} [[およそ]] ([[凡そ]], oyoso), {{non-joyo-oʻqish}} [[すべて]] ([[凡て]], subete), {{dardga|rare}} {{non-joyo-oʻqish}} [[なみ]] (nami) }} p0w5mtmjc813vonyqf7iptv3x3pb0w4 Andoza:cmn-pinyin 10 153457 628931 460987 2024-11-06T16:44:32Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628931 wikitext text/x-wiki <includeonly>{{#invoke:cmn-pron|py_headword}}</includeonly><!-- --><noinclude>{{documentation}}</noinclude> ecvjvmfmlsl5lkdjqzmfswc11ilig7g Andoza:pinyin reading of 10 153458 628935 460989 2024-11-06T16:55:17Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628935 wikitext text/x-wiki <span class="use-with-mention"><!-- -->[[Hanyu Pinyin]] oʻqish <!-- ====Xitoy belgilar==== -->{{m|zh|sc={{{sc1|{{{sc|}}}}}}|{{{1<includeonly>|</includeonly>}}}|tr=-}}<!-- -->{{#if:{{{2|}}}|, {{m|zh|sc={{{sc2|{{{sc|}}}}}}|{{{2}}}|tr=-}}}}<!-- -->{{#if:{{{3|}}}|, {{m|zh|sc={{{sc3|{{{sc|}}}}}}|{{{3}}}|tr=-}}}}<!-- -->{{#if:{{{4|}}}|, {{m|zh|sc={{{sc4|{{{sc|}}}}}}|{{{4}}}|tr=-}}}}<!-- -->{{#if:{{{5|}}}|, {{m|zh|sc={{{sc5|{{{sc|}}}}}}|{{{5}}}|tr=-}}}}<!-- -->{{#if:{{{6|}}}|, {{m|zh|sc={{{sc6|{{{sc|}}}}}}|{{{6}}}|tr=-}}}}<!-- -->{{#if:{{{7|}}}|, {{m|zh|sc={{{sc7|{{{sc|}}}}}}|{{{7}}}|tr=-}}}}<!-- -->{{#if:{{{8|}}}|, {{m|zh|sc={{{sc8|{{{sc|}}}}}}|{{{8}}}|tr=-}}}}<!-- -->{{#if:{{{9|}}}|, {{m|zh|sc={{{sc9|{{{sc|}}}}}}|{{{9}}}|tr=-}}}}<!-- -->{{#if:{{{10|}}}|, {{m|zh|sc={{{sc10|{{{sc|}}}}}}|{{{10}}}|tr=-}}}}<!-- --></span><!-- ====Kategoriyalar va tekshiruvlar==== -->{{#if:{{{attn|}}}|{{categorize|cmn|Hanyu Pinyin yozuvlarida tozalash soʻrovlari}}}}<!-- -->{{#if:{{{1|}}}|{{#ifexist:{{{1|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{2|}}}|{{#ifexist:{{{2|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{3|}}}|{{#ifexist:{{{3|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{4|}}}|{{#ifexist:{{{4|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{5|}}}|{{#ifexist:{{{5|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{6|}}}|{{#ifexist:{{{6|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{7|}}}|{{#ifexist:{{{7|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{8|}}}|{{#ifexist:{{{8|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{9|}}}|{{#ifexist:{{{9|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- -->{{#if:{{{10|}}}|{{#ifexist:{{{10|}}}||{{categorize|cmn|Hanyu Pinyin Hanzisiz kirishlari}}}}}}<!-- --><noinclude>{{documentation}}</noinclude> htddwdjqzve5xt0yftlcmhjdr6kdwkw Andoza:qayd 10 153460 628936 603945 2024-11-06T16:57:02Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628936 wikitext text/x-wiki <includeonly>{{#invoke:links/templates|l_term_t|face=term}}<!-- -->{{#if:{{{lang|}}}|[[Category:m with lang]]}}<!-- -->{{#ifeq:{{PAGENAME}}|RecentChanges||<!-- -->{{#ifeq:{{{1|}}}|und|[[Category:Undetermined language links]]}}<!-- -->}}<!-- --></includeonly><noinclude>{{m|en|term}}{{documentation}}</noinclude> dxlg3wjptqd7i2zaa019m6fvjbdwjdt 慣用音 0 153725 628962 549351 2024-11-06T17:35:53Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628962 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|かん|よう|おん|yomi=on}} ===Etimologiya=== Ning murakkab {{compound|tili=ja|sort=かんようおん|慣用|tr1=kan'yō|t1=customary or common use|音|tr2=on|t2=sound}}. {{IPAchar|/kwan'youon/}} > {{IPAchar|/kwan'yoːon/}} > {{IPAchar|/kan'yoːon/}} {{ja-ism|かんようおん|hhira=くわんようおん}} # keng tarqalgan, bir buzuq oʻqishda qabul, ammo dastlab asoslangan Kanji bir oʻqish ====Sinonimlari==== * {{ja-l|慣用読み|かんようよみ|kan'yōyomi}} ===Manlalar=== <references/> tgsq6s154yk403am6ymsjag9iv0ja86 Modul:zh/data/glosses 828 153892 628886 406793 2024-11-06T15:31:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628886 Scribunto text/plain local export = {} --From CEDICT with significant adaptations, originally licensed under a Creative Commons Attribution-Share Alike 3.0 License. export.glosses = { ["一"] = "one; single; a; (before verbs) as soon as, once; (before a noun) entire (family, etc.)", ["丁"] = "4th [[heavenly stem]]; man; people; little cube; ''surname''", ["七"] = "seven", ["丈"] = "zhang (unit of measurement)", ["三"] = "three", ["上"] = "up; on; on top; upon; first; previous or last; upper; higher; above; previous; to climb; to go into; to go up", ["下"] = "under; next; lower; below; underneath; down(wards); to go down; latter", ["丌"] = "''surname''", ["不"] = "not; no", ["丏"] = "hidden", ["丐"] = "beg for alms; beggar", ["丑"] = "2nd [[earthly branch]]; 1–3 a.m.; clown; ''surname''", ["且"] = "further; moreover", ["丕"] = "grand", ["世"] = "life; age; generation; era; world; lifetime", ["丘"] = "mound; hill; Confucius; given name", ["丙"] = "3rd [[heavenly stem]]", ["丞"] = "deputy", ["丟"] = "to lose; to put aside; to throw", ["並"] = "and; furthermore; (not) at all; simultaneously; also; together with; to combine; to join; to merge", ["丫"] = "fork; bifurcation", ["中"] = "middle; centre; within; among; in; while (doing something); during; China; Chinese; hit (the mark)", ["丮"] = "catch", ["丰"] = "buxom; good-looking; appearance and carriage of a person", ["丱"] = "tufts of hair", ["串"] = "to string together; to mix up; to conspire; to connect; (a measure word); string", ["丳"] = "skewer", ["丸"] = "pill", ["丹"] = "red; pellet; powder; cinnabar", ["主"] = "to own; to host; master; lord; primary", ["丼"] = "bowl of food; well", ["乂"] = "mow; to regulate", ["乃"] = "to be; thus; so; therefore; then; only; thereupon", ["久"] = "(long) time; (long) duration of time", ["乇"] = "to depend on, to entrust with", ["么"] = "small; one", ["之"] = "'s; him/her/it; this", ["乍"] = "for the first time; suddenly", ["乎"] = "(interrog. part.)", ["乏"] = "short of; tired", ["乒"] = "bing (onomat.)", ["乓"] = "bang (onomat.)", ["乖"] = "(of a child) obedient, well-behaved; clever", ["乘"] = "ride; mount; make use of; take advantage of; multiply; to avail of; to ride", ["乙"] = "2nd [[heavenly stem]]", ["乜"] = "squint; (dial.) what", ["九"] = "nine", ["乞"] = "beg", ["也"] = "also; too", ["乩"] = "to divine", ["乳"] = "breast; milk", ["乾"] = "dry; clean; male; strong; one of the Eight Trigrams; ''surname''", ["乿"] = "to cure, to heal", ["亂"] = "in confusion; disorderly", ["亃"] = "name of a kind of animal", ["亄"] = "covetous; greedy", ["了"] = "to know; to understand; (modal particle intensifying preceding clause); (completed action marker)", ["予"] = "to give; I", ["事"] = "matter; thing; item; work; affair", ["二"] = "two", ["亍"] = "step with right foot", ["于"] = "''surname''", ["云"] = "(classical) to say", ["互"] = "mutual", ["亓"] = "''surname''; his; her; its; their", ["五"] = "five", ["井"] = "warn; well", ["亙"] = "extend across; through", ["些"] = "some; few; several; (a measure word)", ["亞"] = "second; inferior; Asia", ["亟"] = "repeatedly; frequently; urgent", ["亡"] = "to die; to perish", ["亢"] = "overbearing", ["交"] = "to deliver; to turn over; to make friends; to intersect (lines); to pay (money)", ["亥"] = "12th [[earthly branch]]; 9–11 p.m.", ["亦"] = "also", ["亨"] = "prosperous", ["享"] = "enjoy", ["京"] = "capital; Beijing (abbrev.)", ["亭"] = "pavilion", ["亮"] = "light; bright", ["亳"] = "name of district in Anhui; capital of Yin", ["亶"] = "''surname''; sincere", ["亹"] = "resolute", ["人"] = "man; person; people", ["什"] = "tenth (used in fractions)", ["仁"] = "humane; kernel", ["仂"] = "surplus; tithe", ["仄"] = "oblique tone", ["仆"] = "fall prostrate", ["仇"] = "''surname''; match; mate; hatred; animosity; enmity; a rival; an enemy; feud", ["仈"] = "''surname''", ["今"] = "today; modern; present; current; this; now", ["介"] = "introduce; lie between; between", ["仍"] = "still; yet; to remain", ["仔"] = "minutely; young; duty; responsibility", ["仕"] = "an official", ["他"] = "he; him; other", ["仗"] = "battle", ["付"] = "pay", ["仙"] = "immortal", ["仚"] = "to fly", ["仝"] = "together; same", ["仞"] = "(measure)", ["仟"] = "thousand", ["仡"] = "strong; brave", ["代"] = "substitute; replace; generation; dynasty; geological era; era; age; period", ["令"] = "make or cause to be; order; command; decree; honourable", ["以"] = "to use; according to; so as to; in order to; by; with; because; Israel (abbrev.)", ["仨"] = "three (of)", ["仰"] = "look up", ["仲"] = "2nd in seniority", ["仳"] = "to part", ["仵"] = "opponent", ["件"] = "a measure word for thing, clothes, item", ["任"] = "to assign; to appoint; office; responsibility", ["份"] = "share; portion; part", ["仿"] = "to imitate; to copy", ["伀"] = "restless; agitated", ["企"] = "plan a project; stand on tiptoe", ["伈"] = "nervous; fearful", ["伉"] = "husband; wife", ["伊"] = "he; she; ''surname''; Iraq (abbrev.); Iran (abbrev.)", ["伋"] = "unreal", ["伍"] = "associate with; five; company", ["伎"] = "craft", ["伏"] = "conceal (ambush); prostrate; submit", ["伐"] = "(v) cut down; fell; (v) dispatch an expedition against; descend upon", ["休"] = "to rest", ["伕"] = "porter", ["伙"] = "assistant; furniture; partner", ["伝"] = "summon; propagate, transmit", ["伢"] = "(''colloquial'') child", ["伯"] = "father's elder brother; senior; paternal elder uncle; eldest of brothers; respectful form of address", ["估"] = "estimate", ["伴"] = "partner; companion; associate; to accompany; comrade", ["伶"] = "solitary; lonely; actor; clever", ["伸"] = "to stretch; to extend", ["伺"] = "to watch; to wait; to examine; to spy; wait on", ["伻"] = "to cause", ["似"] = "to seem; to appear; similar; like; to resemble", ["伾"] = "multitudinous; powerful", ["佃"] = "farmer", ["但"] = "but; yet; however; only; merely; still", ["佇"] = "wait; look towards; turn one's back on", ["佈"] = "diffuse; extend; notify", ["佉"] = "''surname''", ["佌"] = "petty; wretched", ["位"] = "position; location; (measure word for persons); place; seat", ["低"] = "to lower (one's head); to let droop; to hang down; low; to incline; beneath", ["住"] = "to live; to dwell; to reside; to stop", ["佐"] = "assist", ["佑"] = "bless; protect", ["佔"] = "to occupy; to constitute; to make up; to account; to observe; to divine", ["何"] = "carry; what; how; why; which", ["佗"] = "carry on the back", ["佘"] = "''surname''", ["余"] = "extra; surplus; remaining; after; I; me", ["佚"] = "idle", ["佛"] = "Buddha; Buddhism", ["作"] = "to regard as; to take (someone) for; to do; to make", ["佝"] = "rickets", ["佞"] = "eloquent; talent", ["佟"] = "''surname''", ["你"] = "you", ["佡"] = "make effort, endeavour", ["佢"] = "(''Cantonese'') he", ["佣"] = "commission (for middleman)", ["佤"] = "[[w:Wa people|Wa people]]", ["佩"] = "to respect; wear (belt, etc.)", ["佪"] = "irresolute; move back and forth", ["佫"] = "''surname''", ["佬"] = "man; guy", ["佯"] = "pretend", ["佰"] = "(complicated form of) hundred (used to avoid fraud)", ["佳"] = "excellent", ["佴"] = "assistant", ["併"] = "amalgamate; combine", ["佶"] = "difficult to pronounce", ["佷"] = "to act contrary to", ["佸"] = "meet", ["佹"] = "almost succeed; crafty; suddenly", ["佺"] = "immortal", ["佻"] = "frivolous; unsteady; delay", ["佼"] = "handsome", ["佽"] = "''surname''; nimble; to help", ["佾"] = "row of dancers at sacrifices", ["使"] = "to make; to cause; to enable; to use; to employ; messenger", ["侀"] = "shape; statute", ["侁"] = "large crowd", ["侂"] = "to commission, to entrust to, to depute; to request, to ask", ["侃"] = "bold", ["侄"] = "nephew", ["侅"] = "to give; prepared for; included in; embraced in", ["來"] = "to come", ["侇"] = "a class, category; a corpse", ["侈"] = "extravagant; wasteful; exaggerating", ["例"] = "example; precedent; rule; case; instance", ["侍"] = "attend on", ["侐"] = "still; silent", ["侑"] = "urge to eat", ["侔"] = "similar; comparable; equal", ["侖"] = "arrange", ["侗"] = "ignorant; (ethnic group)", ["侘"] = "boast; despondent", ["侚"] = "buried with dead; die for a cause", ["供"] = "offer; sacrificial offering; trial statement; confession; offer (information, etc.); supply", ["侜"] = "conceal; to cover", ["依"] = "according to; depend on; near to; (''Eastern Min'') kinship prefix", ["侮"] = "insult", ["侯"] = "marquis", ["侵"] = "to invade; to infringe; to approach", ["侶"] = "companion", ["侷"] = "narrow", ["便"] = "advantageous; cheap; ordinary; plain; convenient; handy; easy; then; so; thus; to relieve oneself", ["俁"] = "big", ["係"] = "be; connection; relation; tie up; bind", ["促"] = "to hurry; to rush; to hasten; near; to promote", ["俄"] = "suddenly; very soon; Russian", ["俅"] = "ornamental cap", ["俊"] = "smart; eminent; handsome; talented", ["俎"] = "a stand for food at sacrifice", ["俏"] = "smart", ["俐"] = "clever", ["俑"] = "wooden figures buried with the dead", ["俓"] = "straight; pass", ["俔"] = "like", ["俗"] = "vulgar", ["俘"] = "prisoner of war", ["俚"] = "rustic", ["俛"] = "exhort", ["俜"] = "forlorn", ["保"] = "to defend; to protect; to insure or guarantee; to maintain; hold or keep; to guard", ["俞"] = "''surname''; accede", ["俟"] = "until; wait for", ["俠"] = "knight-errant; chivalrous; heroic", ["信"] = "letter; true; to believe; sign; evidence", ["修"] = "to decorate; to embellish; to repair; to build; to study; to write; to cultivate", ["俯"] = "look down; stoop", ["俱"] = "a social club; entirely; without exception", ["俳"] = "irresolute; not serious; variety show", ["俴"] = "short; shallow; thin plate", ["俵"] = "distribute", ["俶"] = "begin", ["俸"] = "salary", ["俺"] = "I (northern dialects)", ["俾"] = "to cause", ["倀"] = "groping; rash; reckless", ["倅"] = "deputy; second; sub-", ["倆"] = "(a numeral-measure word) two; both", ["倉"] = "barn; granary; storehouse; cabin; hold (in ship)", ["個"] = "(a measure word); individual", ["倌"] = "a groom", ["倍"] = "(two, three, etc.) -fold; times (multiplier); double; to increase or multiply", ["倏"] = "sudden; abrupt", ["們"] = "(plural marker for pronouns and a few animate nouns)", ["倒"] = "upset; turn over; to tip; to pour; to go home; to the contrary; inverted; to fall; to collapse; to topple; to change; to fail; bankrupt", ["倔"] = "crabby; tough", ["倖"] = "lucky", ["倘"] = "if", ["薇"] = "''[[Osmunda regalis]]''", ["候"] = "wait", ["倚"] = "to lean on; rely upon", ["倜"] = "energetic; exalted; magnanimous", ["借"] = "to lend; to borrow; excuse; pretext; by means of", ["倡"] = "initiate; instigate; introduce; lead", ["倢"] = "handsome", ["倣"] = "imitate", ["倦"] = "tired", ["倨"] = "haughty; arrogant", ["倩"] = "niece; plagiarize; winsome", ["倪"] = "''surname''", ["倫"] = "human relationship", ["倬"] = "noticeable, large; clear, distin", ["倭"] = "Japanese", ["值"] = "value; (to be) worth; to happen", ["偁"] = "to call", ["偃"] = "to lie supine; to stop; to fall down", ["假"] = "vacation; fake; false; artificial; to borrow; if; suppose", ["偈"] = "forceful; martial; Buddhist hymn; gatha; Buddhist verse", ["偉"] = "big; large; great", ["偌"] = "so; such; to such a degree", ["偎"] = "to cuddle", ["偏"] = "one-sided; to lean; to slant; prejudiced; inclined to one side", ["偓"] = "constrained", ["偕"] = "in company with", ["做"] = "to do; to make; to produce", ["停"] = "to stop; to halt; to park (a car)", ["偝"] = "disobey; stand back-to-back", ["偟"] = "agitated; alarmed", ["偢"] = "to stare at", ["健"] = "healthy", ["偨"] = "uneven", ["偩"] = "rely on; to resemble", ["偪"] = "close to; compel", ["偫"] = "wait for; lay in", ["偭"] = "transgress", ["偯"] = "to sob; wail", ["偲"] = "talented", ["側"] = "lean on one side; the side; to incline towards; to lean; inclined; lateral; side", ["偵"] = "to scout; to spy", ["偶"] = "accidental; image; pair; mate", ["偷"] = "to steal; to pilfer", ["偽"] = "false; fake; forged; bogus", ["傀"] = "grand; strange", ["傅"] = "instruct; tutor; instructor; adhere; apply", ["傌"] = "to curse, to revile, to abuse; to scold", ["傍"] = "near; nestle; near (approaching)", ["傎"] = "inversion; mistake", ["傑"] = "hero; heroic", ["傒"] = "of Jiangxi province; servant", ["傔"] = "servant", ["傖"] = "low fellow; rustic; rude; rough", ["傘"] = "umbrella; parasol", ["備"] = "to prepare; get ready; to provide or equip", ["傚"] = "imitate", ["傜"] = "Yao tribe", ["傞"] = "uneven; unsteady (in dancing)", ["傢"] = "furniture; tool", ["傣"] = "the Dai minority living in South China", ["催"] = "urge; press; expedite; prompt; hurry", ["傭"] = "hire; servant", ["傮"] = "finish, to go around", ["傯"] = "busy; hurried; despondent", ["傲"] = "proud; overbearing; insolent; arrogant", ["傳"] = "to pass on; to spread; to transmit; to infect; to transfer; to circulate; to conduct (electricity); biography", ["傴"] = "hunchbacked", ["債"] = "debt", ["傷"] = "injure; injury; wound", ["傺"] = "detain; hinder", ["傻"] = "foolish", ["傾"] = "to overturn; to collapse; to lean; to tend; to incline; to pour out", ["傿"] = "a fraudulent price; name of an immortal; an ancient place name", ["僂"] = "hunchback", ["僄"] = "light; airy", ["僅"] = "barely; only; merely", ["僇"] = "despise; insult", ["僉"] = "all", ["僊"] = "immortal", ["僎"] = "collect", ["像"] = "(look) like; similar (to); appearance; to appear; to seem; image; portrait; resemble; seem", ["僑"] = "emigrant; reside abroad", ["僕"] = "servant", ["僖"] = "cautious; merry; joyful", ["僚"] = "bureaucrat", ["僝"] = "to revile; to abuse", ["僣"] = "assume, usurp", ["僤"] = "great; severe", ["僥"] = "by mere luck", ["僦"] = "hire; to rent", ["僧"] = "monk", ["僨"] = "instigate; ruin; destroy", ["僩"] = "courageous; valiant", ["僬"] = "clever; pygmies", ["僭"] = "usurp", ["僮"] = "name of an ethnic group in Guangxi; boy", ["僯"] = "ashamed", ["僰"] = "name of an ethnic group", ["僱"] = "hire", ["僵"] = "rigid; deadlock; stiff (corpse)", ["價"] = "price; value; valence (on an atom); great; good; middleman; servant", ["僻"] = "low; rustic; secluded", ["僾"] = "indistinct; hazy", ["僿"] = "small, minute; lacking sincerity", ["儀"] = "apparatus; rites; appearance; present; ceremony", ["儂"] = "(Shanghai dial.) you", ["億"] = "a hundred million; calculate", ["儅"] = "stop", ["儆"] = "warn; admonish", ["儇"] = "ingenious; frivolous", ["儈"] = "broker", ["儉"] = "frugal; to be in need", ["儊"] = "rough and rugged", ["儋"] = "carry", ["儌"] = "by mere luck", ["儐"] = "best man; entertain", ["儒"] = "scholar; Confucian", ["儓"] = "servant", ["儔"] = "comrades; friends; companions", ["儕"] = "a class; a company; companion", ["儗"] = "doubtful; suspicious; emulate; imitate", ["儘"] = "to the utmost", ["儜"] = "weak; wearied; in distress", ["償"] = "to compensate; pay back; to recompense", ["儡"] = "to ruin", ["儤"] = "on night duty", ["儦"] = "walking to and fro", ["儩"] = "the end; to finish", ["優"] = "excellent; superior", ["儭"] = "to assist; to give alms", ["儱"] = "rude; barbarous", ["儲"] = "savings; to save; to deposit; to store; ''surname''", ["儳"] = "irregular; mixed", ["儵"] = "alternate form of 倏; sudden; abrupt", ["儷"] = "husband and wife", ["儸"] = "smart; clever", ["儹"] = "to accumulate, to hoard, to store up", ["儺"] = "exorcize demons", ["儻"] = "if; unexpectedly", ["儼"] = "majestic; dignified", ["儽"] = "lazy; tired out, worn fatigued", ["兀"] = "cut off the feet; rising to a height; towering; bald", ["允"] = "just; fair; to permit; to allow", ["元"] = "primary; first; fundamental; dollar; (dynasty)", ["兄"] = "elder brother", ["充"] = "fill; satisfy; fulfil; to act in place of; substitute; sufficient; full", ["兆"] = "omen; million; million million, trillion", ["兇"] = "fierce", ["先"] = "early; prior; former; in advance; first", ["光"] = "light; ray; bright", ["克"] = "gram; subdue; to restrain; to overcome", ["兌"] = "to cash", ["免"] = "to exempt; to remove; to avoid; to excuse", ["兒"] = "son; child; ''diminutive suffix''", ["兔"] = "rabbit", ["兕"] = "rhinoceros indicus", ["兗"] = "place name", ["党"] = "party", ["兜"] = "pocket", ["兝"] = "decigram, dg", ["兞"] = "milligram, mg", ["兟"] = "to advance", ["兢"] = "to be fearful; apprehensive", ["入"] = "to enter", ["內"] = "inside; inner; internal; within; interior", ["全"] = "all; whole; entire; every; complete", ["兩"] = "both; two; some; a few; tael", ["八"] = "eight", ["公"] = "just; honourable; public; common; fair; duke; mister", ["六"] = "six", ["兮"] = "(part.)", ["共"] = "all together; in while; to share; common; general; together; total", ["兵"] = "soldiers; a force; an army; weapons; arms; military; warlike", ["其"] = "his; her; its; theirs; that; such; it (refers to something preceding it)", ["具"] = "tool; device; utensil; equipment; instrument", ["典"] = "canon; dictionary", ["兼"] = "double; twice; simultaneous; holding two or more (official) posts at the same time", ["冀"] = "to hope; to look forward to; Hebei", ["冇"] = "not have (''dialectal'')", ["冉"] = "passing (of time)", ["冊"] = "book; a measure word for books; booklet", ["再"] = "again; once more; next in sequence; another", ["冑"] = "helmet", ["冒"] = "to cover; to emit; to manifest; to risk; bold; brave", ["冓"] = "inner rooms of palace; ten billions", ["冔"] = "cap of Yin dynasty", ["冕"] = "royal crown", ["冗"] = "extraneous", ["冘"] = "to move on; doubtful", ["冞"] = "deep", ["冠"] = "to head; hat; crown; crest; cap", ["冢"] = "great; mound", ["冤"] = "injustice; to wrong", ["冥"] = "dark; deep", ["冪"] = "power, exponent", ["冬"] = "winter", ["冰"] = "ice", ["冱"] = "congealed; frozen", ["冶"] = "smelt", ["冷"] = "cold", ["冼"] = "''surname''", ["冽"] = "cold and raw", ["凄"] = "intense cold; mournful", ["凅"] = "dried up; dry; exhausted, tired", ["准"] = "to allow; to grant; to permit; accurate; standard", ["凈"] = "clean", ["凊"] = "cool; fresh; to cool", ["凋"] = "withered", ["凌"] = "encroach; soar; thick ice", ["凍"] = "to freeze", ["凔"] = "cold", ["凜"] = "shiver with cold or fear", ["凝"] = "congeal; concentrate attention", ["凞"] = "bright, splendid, glorious", ["几"] = "a few; how many; small table", ["凡"] = "ordinary; every; all; whatever; worldly", ["凰"] = "female fenghuang", ["凱"] = "triumphant; victorious", ["凳"] = "bench; stool", ["凵"] = "receptacle", ["凶"] = "fierce; terrible; ominous", ["凸"] = "(adj.) convex; stick out", ["凹"] = "a depression; indentation; concave; hollow", ["出"] = "to go out; to come out; to occur; to produce; to go beyond; to rise; to put forth; to happen; (a measure word for dramas, plays, or operas)", ["函"] = "envelope; case; letter", ["刀"] = "knife", ["刁"] = "artful; wicked", ["刃"] = "edge of blade", ["分"] = "to divide; minute; (a measure word); (a unit of leng)", ["切"] = "close to; to cut; to slice", ["刈"] = "mow", ["刊"] = "to print; publish", ["刎"] = "cut across (throat)", ["刑"] = "punishment", ["划"] = "to row", ["刓"] = "trim", ["刖"] = "cut off the feet as punishment", ["列"] = "to arrange; to line up; row; file; series", ["刜"] = "to chop; strike", ["初"] = "initial; first; beginning; junior; basic", ["刡"] = "to scrape; to pare", ["判"] = "to judge; to sentence; to discriminate; to discern", ["別"] = "other; distinguish; contrary; difficult; awkward; leave; depart; separate; classify; another; do not; must not; to pin", ["刨"] = "eliminate; to dig; to question; a plane; to plane; level or make smooth", ["利"] = "advantage; benefit; profit; sharp", ["刪"] = "to delete", ["刮"] = "to scrape; to blow", ["到"] = "to (a place); until (a time); up to; to go; to arrive", ["刱"] = "establish, create; knife cut", ["刲"] = "cut open and clean", ["刳"] = "to cut open; rip up; scoop out", ["刵"] = "cut off the ears as punishment", ["制"] = "system; to make; to manufacture; to control; to regulate", ["刷"] = "brush; to swipe; to select", ["券"] = "deed; bond; contract; ticket", ["刺"] = "thorn; sting; prick; pierce; stab; thrust; assassinate; murder", ["刻"] = "quarter (hour); (a measure word); to carve; to engrave; to cut; oppressive", ["剁"] = "chop (meat)", ["剃"] = "shave", ["剄"] = "cut the throat", ["則"] = "(expresses contrast with a previous sentence or clause); standard; norm; rule; to imitate; to follow; then; principle", ["剉"] = "to break; deaden; to file; to chop", ["削"] = "to reduce; to pare (away); to cut (down); to scrape", ["剋"] = "to overcome; subdue; to overthrow; restrain; cut down; to be able to", ["剌"] = " to contradict; to slash, cut in two; cruel; obstinate", ["前"] = "front, forepart; in front; past; former; previous; last; before; preceding; earlier; ago; future; time ahead; first; top; battlefront; to move forward", ["剎"] = "to brake (car); Buddhist monastery or temple; a brief moment", ["剔"] = "pick (as teeth)", ["剖"] = "to cut", ["剚"] = "erect; stab", ["剛"] = "hard; firm; strong; just; barely; exactly", ["剜"] = "scoop out", ["剝"] = "peel; to skin", ["剟"] = "to prick; to cut blocks, to engrave", ["剡"] = "sharp; river in Zhejiang", ["剩"] = "have as remainder", ["剪"] = "cut with scissors; scissors", ["剮"] = "to cut flesh off from bone; lingchi", ["副"] = "secondary; auxiliary; deputy; assistant; vice-; (measure word for a pair)", ["割"] = "cut off", ["剴"] = "carefully; moderately", ["創"] = "begin; initiate; inaugurate; start; create; a wound; cut; injury; trauma", ["剷"] = "level off; root up", ["剸"] = "slash", ["剺"] = "mark", ["剽"] = "to rob; swift; nimble", ["剿"] = "destroy (bandits)", ["劁"] = "neuter", ["劃"] = "to delimit; to transfer; to assign; to differentiate; to mark off; to draw (a line); to delete; stroke of a Chinese character", ["劄"] = "write down", ["劇"] = "drama; play; show; severe", ["劈"] = "split in two; divide; hack; chop; split open", ["劉"] = "Liu (Chinese surname)", ["劊"] = "amputate, cut off", ["劌"] = "cut; injure", ["劍"] = "(double-edged) sword", ["劑"] = "dose; agent", ["劓"] = "cut off the nose", ["劖"] = "bore; cut; polish", ["劘"] = "whittle", ["劙"] = "a divide, to partition", ["力"] = "power; force; strength", ["功"] = "merit; achievement; result; service; accomplishment", ["加"] = "to add; plus", ["劣"] = "inferior", ["助"] = "to help; to assist", ["努"] = "to exert; to strive", ["劫"] = "plunder", ["劬"] = "labour", ["劭"] = "''surname''; stimulate to effort", ["劻"] = "zealous", ["劼"] = "careful; diligent; firm", ["劾"] = "impeach", ["勁"] = "stalwart; sturdy; strength", ["勃"] = "flourishing; prosperous; suddenly; abruptly", ["勇"] = "brave", ["勉"] = "exhort", ["勍"] = "violent; strong", ["勒"] = "strangle; rein in", ["動"] = "to move; to change; to use; to act", ["勖"] = "exhort; stimulate", ["勗"] = "exhort; stimulate", ["勘"] = "to investigate; to survey; to collate", ["務"] = "affair; business; matter", ["勛"] = "medal; merit", ["勝"] = "victorious; able to do; competent enough to", ["勞"] = "toil", ["募"] = "canvass for contributions; to recruit; to collect; to raise", ["勢"] = "power; force; tendency; conditions; influence", ["勣"] = "merit; accomplishment", ["勤"] = "diligent; frequent", ["勦"] = "destroy (bandits)", ["勩"] = "toil", ["勯"] = "exhausted", ["勰"] = "harmonious", ["勱"] = "put forth effort", ["勳"] = "medal; merit", ["勵"] = "exhort", ["勷"] = "haste", ["勸"] = "to advise; to urge; to try to persuade; exhort", ["勺"] = "ladle; spoon", ["勻"] = "even; evenly (divided); uniform", ["勾"] = "affair; to reach for (with hand); to cancel; to delineate; hook", ["勿"] = "do not", ["包"] = "to cover; to wrap; to hold; to include; to take charge of; package; wrapper; container; bag; to hold or embrace; bundle; packet; to contract (to or for)", ["匆"] = "hurried; hasty", ["匈"] = "Hungary; thorax; chest", ["匉"] = "noise of waters", ["匊"] = "receive with both hands", ["匋"] = "pottery", ["匏"] = "bottle gourd; ''Lagenaria vulgaris''", ["匕"] = "dagger; ladle; an ancient type of spoon", ["化"] = "to make into; to change into; -ization; to ... -ize; to transform", ["北"] = "north", ["匙"] = "spoon; key", ["匚"] = "box; basket", ["匜"] = "washbasin with a tubular handle", ["匝"] = "go round", ["匟"] = "couch for two", ["匠"] = "craftsman", ["匡"] = "correct", ["匣"] = "box", ["匪"] = "bandit; not", ["匭"] = "small box", ["匯"] = "remit; to converge (of rivers); to exchange", ["匱"] = "lacking; empty; exhausted", ["匹"] = "(measure word for horses, mules, a bolt of cloth); ordinary person; mate; one of a pair", ["匽"] = "to hide, to secrete, to repress; to bend", ["匾"] = "a tablet; a board with an inscription; a sign hung above a door", ["匿"] = "to hide", ["區"] = "area; region; district; small; distinguish; ''surname''", ["十"] = "ten", ["千"] = "thousand", ["卄"] = "twenty, twentieth", ["卅"] = "thirty", ["升"] = "to raise; to hoist; to promote; pint", ["午"] = "7th [[earthly branch]]; 11 a.m.–1 p.m., noon", ["卉"] = "plants", ["半"] = "half; semi-; incomplete; (after a number) and a half", ["卌"] = "40", ["卍"] = "swastika", ["卑"] = "low; base; vulgar; inferior; humble", ["卒"] = "die; soldier; abruptly; hurriedly", ["卓"] = "outstanding", ["協"] = "cooperate; harmonize; to help; to assist; to join", ["南"] = "south", ["博"] = "extensive; ample; rich; obtain; aim; to win; to get; plentiful; to gamble", ["卜"] = "to divine; foretell; turnip", ["卞"] = "hurried", ["占"] = "to divine", ["卡"] = "customs station; to be choked; to fasten; to clip; to wedge; checkpost; to check; to stop; to block; card", ["卣"] = "wine container", ["卦"] = "divinatory trigram", ["卬"] = "high; raise (head)", ["卮"] = "goblet", ["卯"] = "4th [[earthly branch]]; 5–7 a.m.", ["印"] = "stamp; seal; mark; print; India (abbrev.)", ["危"] = "danger; to endanger", ["卲"] = "''surname''", ["即"] = "namely; right away; to approach; to draw near", ["卵"] = "ovum", ["卷"] = "chapter; examination paper; to roll (up); to sweep up; to carry on", ["卸"] = "unload; take off", ["卹"] = "give relief; sympathy", ["卻"] = "but; yet; however; while; to go back; to decline; to retreat; nevertheless", ["卼"] = "uncomfortable; unsteady", ["卿"] = "(old) minister; (old) term of endearment between spouses; thou (poet.)", ["厂"] = "cliff; slope", ["厄"] = "adversity", ["厎"] = "whetstone", ["厔"] = "river bent", ["厖"] = "huge", ["厘"] = "one thousandth", ["厙"] = "''surname''", ["厚"] = "generous; thick (for flat things)", ["厜"] = "a mountain peak", ["厝"] = "(''Min'') house; bury; to place; dispose", ["原"] = "former; original; primary; raw; level; cause; source", ["厤"] = "to calculate; the calendar", ["厥"] = "his; its", ["厭"] = "loathe", ["厲"] = "severe", ["厴"] = "operculum", ["厹"] = "to trample; spear", ["去"] = "to go; to leave; to remove", ["參"] = "ginseng; take part in; participate; join; attend; to join; unequal; varied; irregular; to counsel; uneven; not uniform", ["叄"] = "three (formal form used on checks, etc.)", ["又"] = "(once) again; also; both... and...; again", ["叉"] = "to cross; be stuck; to diverge; to open (as legs); fork; pitchfork; prong; pick; cross; intersect", ["及"] = "to reach; and", ["友"] = "friend", ["反"] = "wrong side out or up; anti-", ["叔"] = "uncle in direct address", ["取"] = "to take; to get; to choose; to fetch", ["受"] = "to bear; to stand; to endure; (passive marker); to receive", ["叛"] = "to betray; to rebel; to revolt", ["叟"] = "old gentleman", ["叡"] = "astute; perspicacious", ["叢"] = "cluster; collection; collection of books; thicket", ["口"] = "mouth; (a measure word, for people, livestock or utensils)", ["古"] = "ancient; old", ["句"] = "(a measure word, for sentences or lines of verse); sentence", ["另"] = "other; another; separate; separately", ["叨"] = "be in receipt of; grumble; garrulous", ["叩"] = "knock", ["只"] = "only; merely; just; but", ["叫"] = "to call; to yell; to be called; to order", ["召"] = "to call together; to summon; to convene; ''surname''; name of an ancient state", ["叭"] = "denote a sound or sharp noise (gunfire, etc.)", ["叮"] = "sting (of mosquito); to ask", ["可"] = "can; may; able to; certain(ly); to suit; (particle used for emphasis)", ["台"] = "''surname''; (classical) you (in letters); platform; Taiwan (abbrev.)", ["叱"] = "to scold; shout at; to hoot at", ["史"] = "history", ["右"] = "right (-hand)", ["叵"] = "cannot; thereupon", ["司"] = "company; control", ["叻"] = "place names", ["叼"] = "(v.) hold something in the mouth", ["吁"] = "implore; sh; hush", ["吃"] = "eat; eradicate; destroy; receive; stammer", ["各"] = "each; every", ["吆"] = "shout", ["合"] = "to close; to gather; to join; to fit; all; together", ["吉"] = "lucky; Jilin Province (abbrev.)", ["吊"] = "to hang; to suspend", ["吋"] = "inch (English)", ["同"] = "like; same; similar; together; alike; with", ["名"] = "name; fame; to describe; place", ["后"] = "empress; queen; ''surname''", ["吏"] = "minor official", ["吐"] = "vomit; to spit", ["向"] = "direction; part; side; towards; to; guide; opposite to", ["吒"] = "upbraid", ["君"] = "monarch; lord; gentleman; ruler", ["吝"] = "stingy", ["吞"] = "to swallow; to take", ["吟"] = "moan; to hum", ["吠"] = "to bark", ["否"] = "clogged; evil; to negate; to deny; not", ["吧"] = "(modal particle indicating polite suggestion); ...right?; ...OK?; (onomat.); dumb", ["吩"] = "leave instructions; to order", ["吪"] = "move", ["含"] = "to keep; to contain", ["吭"] = "throat", ["吮"] = "to suck", ["吰"] = "clang", ["吱"] = "''phonetic''", ["吳"] = "''surname''; province of Jiangsu", ["吵"] = "to quarrel; to make a noise; noisy; to disturb by making a noise", ["吶"] = "(final part.); battle cry", ["吸"] = "to breathe; to suck in; to absorb; to inhale", ["吹"] = "to blow; blast; puff; boast; brag; end in failure", ["吻"] = "kiss; mouth", ["吼"] = "to roar; to shout", ["吾"] = "I; my", ["呀"] = "(final part.)", ["呂"] = "''surname''", ["呃"] = "hiccough", ["呆"] = "foolish; stupid; no expression; stay", ["呇"] = "star", ["呈"] = "to assume (a form); to submit; to petition; to show; to present; to offer", ["告"] = "to tell; to inform; to say", ["呎"] = "foot (English)", ["呏"] = "gallon; quart", ["呠"] = "to spurt; to blow out; to puff out; to snort", ["呡"] = "the corners of the mouth; the lips", ["呢"] = "woolen material; (question particle)", ["呤"] = "purine in chem. compound; whisper", ["呦"] = "bleating of the deer", ["呧"] = "vex", ["周"] = "encircle; circuit; complete; lap; week; cycle; all; every; attentive; thoughtful", ["呫"] = "whisper; lick, taste; petty", ["呬"] = "to rest", ["呱"] = "crying sound of child", ["味"] = "taste", ["呴"] = "breathe on; yawn; roar", ["呵"] = "expel breath; my goodness; (phonetic particle)", ["呶"] = "clamour", ["呷"] = "suck, swallow, drink", ["呸"] = "to spit (in contempt)", ["呺"] = "voice of anger vast, spacious", ["呻"] = "groan", ["呼"] = "to call; to cry; to shout; to breath out; to exhale", ["命"] = "life; fate", ["呿"] = "to yawn", ["咀"] = "chew", ["咁"] = "(''Cantonese'') so", ["咂"] = "smack one's lips", ["咄"] = "noise of rage, cry out in anger", ["咆"] = "to roar", ["咇"] = "fragrant", ["咈"] = "oppose", ["咋"] = "loud noise; shout; suddenly; gnaw", ["和"] = "mix together; peace; harmony; and; with; union; cap (a poem); respond in singing; soft; warm", ["咍"] = "(interj.); happy; sound of laughter", ["咎"] = "blame", ["咐"] = "to order", ["咑"] = "da! (sound used to move animals along)", ["咒"] = "put a curse on", ["咕"] = "''an onomatopoeia''", ["咖"] = "coffee", ["咚"] = "boom (of a drum)", ["咠"] = "to whisper; to blame, to slander", ["咡"] = "space between mouth and ears", ["咢"] = "beat a drum; startle", ["咥"] = "loud laugh; gnaw; bite", ["咦"] = "expression of surprise", ["咧"] = "draw back corners of mouth; child's cry", ["咨"] = "consult", ["咩"] = "the bleating of sheep", ["咪"] = "sound to call cat", ["咫"] = "8 in. length unit of Zhou dynasty", ["咬"] = "bite; nip", ["咮"] = "beak of bird; peck at", ["咯"] = "part. indicating obviousness; cough (blood); to argue; debate; ''phonetic''", ["咱"] = "(inclusive) we", ["咳"] = "cough; sound of sighing", ["咷"] = "wail", ["咸"] = "all", ["咺"] = "glorious; sob; weep", ["咻"] = "call out; jeer", ["咼"] = "''surname''", ["咽"] = "to swallow; to choke (in crying); narrow pass; throat", ["咾"] = "a noise; a sound", ["咿"] = "(onomat.)", ["哀"] = "sorrow; grief; pity; to grieve for; to pity; to lament", ["品"] = "conduct; grade; thing; product; good", ["哂"] = "smile", ["哄"] = "deceive; coax; resound with laughter", ["哆"] = "quiver; woolen cloth", ["哇"] = "sound of child's crying", ["哈"] = "onomatopoeic representation of laughter", ["哉"] = "(exclamatory or interrog. part.)", ["哎"] = "an interjection; hey; lookout; why etc", ["哞"] = "moo (sound made by cow)", ["員"] = "person; employee; member", ["哢"] = "''phonetic''; -r + one (chem.)", ["哤"] = "jargon", ["哥"] = "elder brother", ["哦"] = "oh is that so; to chant", ["哨"] = "a whistle; sentry", ["哩"] = "mile; (part. for continued state); (onomat.)", ["哪"] = "which", ["哫"] = "to cajole", ["哭"] = "to cry; to weep", ["哮"] = "pant; roar; bark (of animals)", ["哲"] = "philosophy; wise", ["哺"] = "feed", ["哼"] = "(interj. of contempt); hum", ["哽"] = "choking", ["哿"] = "excellent; happy; well-being", ["唁"] = "condole with", ["唄"] = "to chant", ["唅"] = "a sound; to put in the mouth", ["唆"] = "incite; suck", ["唇"] = "lip", ["唈"] = "palpitation; short breathing", ["唉"] = "alas; oh dear; an interjection; to express realization or agreement (yes, oh, right, etc.)", ["唎"] = "(final part.); sound; noise", ["唏"] = "sound of sobbing", ["唐"] = "Tang dynasty (618–907)", ["唑"] = "azole", ["唔"] = "hold in mouth; bite; (''Cant.'') no/not", ["唚"] = "vomiting of animals; to use bad language", ["唧"] = "(onomat.); to pump (water)", ["唪"] = "recite; chant", ["唬"] = "intimidate; tiger's roar; to fool", ["售"] = "to sell", ["唯"] = "yes; only; alone", ["唱"] = "sing; to call loudly; to chant", ["唲"] = "forced laughter", ["唳"] = "cry of a crane or wild goose", ["唵"] = "syllable", ["唶"] = "sigh, groan; loud laughter", ["唷"] = "(exclamatory part.)", ["唸"] = "read aloud", ["唹"] = "to smile at", ["唾"] = "saliva; spit at", ["啀"] = "gnaw", ["啁"] = "twittering of birds", ["啃"] = "to gnaw; to nibble; to bite", ["啄"] = "to peck", ["商"] = "commerce; consult", ["啊"] = "an interjection; to express doubt or to question; to show realization; to stress; (interj. for surprise); (interj.) oh; (a modal particle showing affirmation, approval, or consent); (interj.); ah", ["啍"] = "move slowly", ["啎"] = "obstinate, disobedient, intractable", ["問"] = "to ask", ["啐"] = "sip; spit", ["啕"] = "wail", ["啖"] = "eat; taste; entice (with a bait)", ["啗"] = "eat; entice", ["啜"] = "drink; taste; sip; suck", ["啞"] = "dumb; mute; (onomat.)", ["啟"] = "to open; to start", ["啡"] = "coffee", ["啢"] = "ounce", ["啣"] = "hold in mouth", ["啤"] = "beer", ["啥"] = "(dialect) what", ["啦"] = "(an auxiliary word performing the grammatical functions of mood); fusion of le + a; (onomat.); ''phonetic''", ["啪"] = "An onomatopoeia of the sound of beating, clapping, etc.", ["啶"] = "-d + ine (chem.)", ["啻"] = "(not) just; (not) only", ["啼"] = "mourn; to cry; hoof", ["啽"] = "(''Cantonese'') to speak", ["啾"] = "wailing of child; chirp", ["喀"] = "(onomat.)", ["喁"] = "breathing (of fish)", ["喂"] = "(interjection) hello; to feed (someone or some animal); hey; telephone greeting", ["喃"] = "mumble in repetition", ["善"] = "good", ["喇"] = "''phonetic''; (onomat.)", ["喈"] = "harmonious (of music)", ["喉"] = "throat; larynx", ["喊"] = "call; cry; to shout", ["喋"] = "flowing flood; to chatter", ["喌"] = "syllable", ["喎"] = "a wry mouth", ["喏"] = "to salute; make one's curtsy", ["喑"] = "dumb", ["喒"] = "a dual pronoun, I, you and me, we two", ["喓"] = "grasshopper chirp; mosquito buzz", ["喔"] = "I see; oh", ["喘"] = "to gasp; to pant; asthma", ["喙"] = "beak; to pant", ["喚"] = "to call", ["喜"] = "to be fond of; to like; to enjoy; to be happy; to feel pleased; happiness; delight; glad", ["喝"] = "to drink; to shout; to shout applause", ["喟"] = "to sigh", ["喣"] = "to breathe upon", ["喤"] = "sobbing; sound of bell", ["喥"] = "(''Cantonese'') a place", ["喦"] = "talkative", ["喧"] = "clamour; noise", ["喨"] = "clear; resounding", ["喪"] = "lose (by death); mourning; funeral", ["喫"] = "eat", ["喬"] = "tall", ["喭"] = "condole with", ["單"] = "bill; list; form; single; only; sole; ''surname''; chieftain", ["喱"] = "grain weight", ["喲"] = "(interj.) Oh, sound made when expressing surprise; (idiom) used at end of sentence as an exclamation", ["喳"] = "twitter; chirp", ["喵"] = "meow (onomat. for cat's mewing)", ["喻"] = "allegory", ["喿"] = "chirping of birds", ["嗀"] = "to vomit", ["嗃"] = "scold with severity", ["嗄"] = "hoarse; ah (exclamatory part.)", ["嗅"] = "sense of smell", ["嗆"] = "choke; pungent; against wind", ["嗇"] = "stingy", ["嗈"] = "to choke", ["嗉"] = "crop (of bird)", ["嗊"] = "sing", ["嗎"] = "(question tag); morphine", ["嗐"] = "exclamation of regret", ["嗑"] = "to crack (seeds) with front teeth", ["嗒"] = "to despair", ["嗓"] = "throat; voice", ["嗔"] = "to be angry at", ["嗙"] = "boast", ["嗚"] = "(onomat. for humming)", ["嗛"] = "pouch; hold; content", ["嗜"] = "addicted to; fond of", ["嗝"] = "hiccup; belch", ["嗟"] = "sigh", ["嗡"] = "buzz; whirr", ["嗣"] = "to connect, inherit; descendants, heirs", ["嗤"] = "laugh at; jeer; scoff at; sneer at", ["嗥"] = "howl; bawl; to bark; roar", ["嗨"] = "oh alas", ["嗯"] = "(a groaning sound)", ["嗶"] = "beiges; serge", ["嗷"] = "loud clamour; the sound of wailing", ["嗹"] = "chattering", ["嗽"] = "cough", ["嗾"] = "to urge on; incite", ["嗿"] = "sound of many people eating", ["嘀"] = "''An onomatopoeia''", ["嘁"] = "whispering sound", ["嘂"] = "loud", ["嘆"] = "to sigh", ["嘈"] = "bustling; tumultuous; noisy", ["嘉"] = "excellent", ["嘍"] = "(part. expressing chagrin or resentment); subordinates in gang of bandits", ["嘎"] = "cackling sound", ["嘏"] = "far; grand; good fortune; longevity", ["嘐"] = "boastful; bombastic", ["嘒"] = "shrill sound; twinkling", ["嘓"] = "loud swallowing sound", ["嘔"] = "vomit", ["嘖"] = "(interj. of admiration or of disgust); to click one's tongue; to attempt to (find an opportunity to) speak", ["嘗"] = "to taste; flavour; indicator of past tense; already; ever; once; test; formerly", ["嘛"] = "(a modal particle)", ["嘜"] = "mark", ["嘟"] = "toot; honk", ["嘩"] = "cat-calling sound; clamour; noise; crashing sound", ["嘬"] = "suck; to gnaw; eat ravenously", ["嘮"] = "to chatter", ["嘯"] = "to hiss; to whistle", ["嘰"] = "grumble", ["嘲"] = "to ridicule; ridicule; mock", ["嘴"] = "mouth", ["嘵"] = "a cry of alarm; querulous", ["嘶"] = "hiss; neigh", ["嘸"] = "unclear; an expletive", ["嘹"] = "clear sound; cry (of cranes, etc.)", ["嘻"] = "laugh; giggle", ["嘿"] = "hey", ["噀"] = "spurt out of the mouth", ["噁"] = "", ["噂"] = "talk together", ["噅"] = "to speak falsely or wrongly; ugly", ["噉"] = "(''Cantonese'') this; in such way", ["噌"] = "sound of bells, etc; to scold; whoosh!", ["噎"] = "choke", ["噓"] = "exhale; hiss", ["噗"] = "sound of escaping laughter; water", ["噘"] = "to push (lips)", ["噙"] = "hold in the mouth", ["噚"] = "fathom", ["噞"] = "the movement of a fish's mouth at the surface of the water", ["噠"] = "''phonetic''; command to a horse; clatter (of horses' hooves)", ["噢"] = "oh!", ["噤"] = "unable to speak; silent", ["噥"] = "garrulous", ["器"] = "device; tool; utensil", ["噩"] = "startling", ["噪"] = "chirp; mixture of voices; noise; buzzing; clamour", ["噫"] = "(interj. of approval); belch", ["噬"] = "devour; to bite", ["噭"] = "shout", ["噯"] = "(interj. of regret); (interj. of disapproval)", ["噱"] = "loud laughter", ["噲"] = "''surname''; throat; to swallow", ["噳"] = "herd; stag; buck", ["噴"] = "fragrant; sneeze; to puff; to spout; to spray; to spurt", ["噸"] = "ton", ["噹"] = "dong (onomatopoeia for bell)", ["嚀"] = "enjoin", ["嚃"] = "to drink; to swallow", ["嚄"] = "(interj. of surprise); stunned and speechless", ["嚅"] = "chattering", ["嚆"] = "sound; noise", ["嚇"] = "to frighten; to scare; to intimidate; to threaten", ["嚌"] = "sip", ["嚎"] = "howl; bawl", ["嚏"] = "sneeze", ["嚐"] = "to taste", ["嚕"] = "grumble; chatter", ["嚙"] = "gnaw", ["嚚"] = "insincere; stupid", ["嚜"] = "be silent; final particle", ["嚥"] = "to swallow", ["嚦"] = "sound of splitting; cracking", ["嚨"] = "throat", ["嚬"] = "knit the brows", ["嚭"] = "great; great fortune", ["嚮"] = "guide; opposite to", ["嚲"] = "hang down", ["嚳"] = "name of an emperor", ["嚴"] = "(air or water) tight; stern; serious; strict; severe", ["嚵"] = "gluttonous; greedy", ["嚶"] = "calling of birds", ["嚷"] = "blurt out; to shout", ["嚼"] = "to chew", ["囀"] = "sing, chirp, warble, twitter", ["囁"] = "move the mouth as in speaking", ["囂"] = "clamour", ["囅"] = "smilingly", ["囈"] = "talk in sleep", ["囉"] = "subordinate in a gang of bandits; fussy; talkative", ["囊"] = "sack", ["囌"] = "loquacious; nag", ["囍"] = "double happiness", ["囑"] = "enjoin", ["囓"] = "gnaw", ["囔"] = "muttering, indistinct speech", ["囗"] = "enclosure", ["囚"] = "prisoner", ["四"] = "four", ["囝"] = "child", ["回"] = "to circle; to go back; to turn around; to answer; to return; to revolve; (a measure word for matters or actions) a time; Islam", ["囟"] = "skull; top of head", ["因"] = "cause; reason; because", ["囡"] = "one's daughter; to filch; to secrete", ["囤"] = "to store; hoard; bin for grain", ["囥"] = "to hide; store", ["囪"] = "window; chimney", ["囮"] = "decoy", ["困"] = "distress; sleepy; doze off", ["囷"] = "granary", ["囹"] = "prison", ["固"] = "hard; strong; solid; sure", ["囿"] = "park; to limit; be limited to", ["圂"] = "grain-fed animals; pigsty", ["圃"] = "garden; orchard", ["圄"] = "imprison", ["圈"] = "circle; ring; loop; to confine; enclose; pen (pig); a fold", ["圉"] = "prison; to keep the horse; one who keeps the horse; frontier", ["圊"] = "pigsty; rest-room", ["國"] = "country; state; nation", ["圌"] = "name of a mountain", ["圍"] = "to circle; to surround", ["園"] = "garden", ["圓"] = "circle; round; circular; spherical; (of the moon) full; unit of Chinese currency (Yuan); tactful; to justify", ["圖"] = "diagram; to plan; picture; drawing; chart", ["團"] = "regiment; round; circular; group; society", ["圛"] = "mist rolling upwards", ["圜"] = "circle; round; encircle", ["圞"] = "round", ["土"] = "earth; dust; rural; uncouth; uncultured; plebeian", ["在"] = "(located) at; in; exist; (before verbs) immediately involved in; right in the middle of doing", ["圩"] = "dike", ["圪"] = "''phonetic''", ["圬"] = "to plaster; whitewash", ["圭"] = "jade tablet", ["圮"] = "destroyed; injure", ["圯"] = "bridge, bank", ["地"] = "earth; ground; field; place; land; (subor. part. adverbial); -ly", ["圳"] = "furrow in field, small drainage", ["圻"] = "boundary; a border", ["址"] = "location; site", ["均"] = "equal; even; all; uniform", ["坊"] = "subdivision of a city", ["坋"] = "dust, earth; a bank of earth; to dig; to bring together", ["坌"] = "bring together; dust", ["坍"] = "collapse", ["坎"] = "pit; threshold", ["坐"] = "to sit; to take a seat; to take (a bus, aeroplane, etc.)", ["坑"] = "pit; to defraud", ["坒"] = "to compare; to match; to equal", ["坡"] = "slope", ["坤"] = "the earth-; female-principle", ["坦"] = "flat; open-hearted; level; smooth", ["坨"] = "lump; spherical substance", ["坩"] = "earthenware", ["坪"] = "a plain", ["坫"] = "stand for goblets", ["坭"] = "mud", ["坯"] = "unburnt earthenware", ["坰"] = "environs; wilderness", ["坱"] = "boundless (space); fine dust", ["坳"] = "a depression; cavity; hollow", ["坴"] = "a clod of earth; land", ["坵"] = "earthenware, earthenware vessel", ["坻"] = "place name; islet; rock in river", ["坼"] = "to crack; split; break; to chap", ["垂"] = "to hang (down); droop; dangle; bend down; hand down; bequeath; nearly; almost; to approach", ["型"] = "model", ["垓"] = "boundary", ["垔"] = "to restrain; to dam a stream and change its direction; a mound", ["垕"] = "thick", ["垗"] = "sacrifice", ["垚"] = "embankment", ["垛"] = "pile; battlement; target", ["垝"] = "dilapidated", ["垞"] = "place name", ["垟"] = "clay sheep buried with the dead", ["垠"] = "bank", ["垢"] = "dirt; disgrace", ["垣"] = "wall", ["垤"] = "anthill; mound", ["垮"] = "collapse", ["埂"] = "channel for irrigation", ["埃"] = "dirt; dust; angstrom", ["埆"] = "stony", ["埇"] = "raised path", ["埋"] = "to blame; bury", ["埌"] = "wasteland; wild", ["城"] = "city walls; city; town", ["埏"] = "boundary; to mix water with clay", ["埒"] = "enclosure, dike, embankment", ["埕"] = "earthen jar", ["埜"] = "open country, field; wilderness", ["域"] = "field; region; area; (taxonomy) domain", ["埠"] = "a jetty; port; a city; quay", ["埡"] = "character used in place names", ["埤"] = "low wall", ["埧"] = "diked pond", ["埭"] = "dam", ["埰"] = "allotment to a feudal noble", ["埳"] = "a pit, a hole, a snare, a danger; a crisis; a mortar", ["埴"] = "soil with large clay content", ["埵"] = "solid earth", ["埶"] = "skill; art", ["執"] = "execute (a plan); grasp", ["埸"] = "border", ["培"] = "to cultivate; to earth up", ["基"] = "base; foundation; basic; (chemistry) radical", ["埼"] = "headland", ["埽"] = "broom; dike", ["堀"] = "cave; hole", ["堂"] = "(main) hall; large room", ["堄"] = "[[parapet]]", ["堅"] = "strong; solid; firm; unyielding; resolute", ["堆"] = "a pile; a mass; heap; stack", ["堇"] = "yellow loam; clay; season; few", ["堈"] = "earthen jug, crock, cistern", ["堉"] = "fertile soil", ["堊"] = "to whitewash; to plaster", ["堋"] = "target in archery", ["堌"] = "place name", ["堍"] = "side of bridge", ["堎"] = "mound; tomb", ["堙"] = "bury; mound; to dam; close", ["堝"] = "", ["堞"] = "battlements", ["堠"] = "mounds for beacons", ["堡"] = "earthwork; castle; position of defence; stronghold; character used in place names", ["堤"] = "dike", ["堧"] = "adjoin", ["堨"] = "dam; to stop; check", ["堪"] = "endure", ["堭"] = "a dry moat outside a city wall; a dry ditch", ["堮"] = "a boundary; a border", ["堯"] = "''surname''; emperor Yao", ["堰"] = "weir", ["報"] = "to [[announce]]; to [[inform]]; report; newspaper; to [[repay]]; to recompense; revenge", ["堲"] = "hate", ["堳"] = "low wall", ["場"] = "courtyard; open space; place; field; a measure word; (a measure word, used for sport or recreation)", ["堵"] = "stop up", ["堽"] = "mound", ["堿"] = "alkali; soda", ["塈"] = "to brick a grave; to snuff out", ["塊"] = "piece; chunk; lump; (a measure word, for cloth, cake, soap); (measure word for chunks, lumps); yuan (unit of currency); fast (of a watch); swift; rapid; happy; joyful; soon; quick", ["塋"] = "a grave", ["塌"] = "collapse", ["塍"] = "raised path between fields", ["塏"] = "dry terrain", ["塑"] = "to model (a figure) in clay", ["塒"] = "hen roost", ["塓"] = "to plaster; whitewash (wall)", ["塔"] = "pagoda; tower", ["塕"] = "a gust of wind", ["塗"] = "to smear; daub", ["塘"] = "pond", ["塙"] = "truly", ["塚"] = "mound", ["塝"] = "the edge; border of a field", ["塞"] = "to stuff; to stop up; to squeeze in; strategic pass; piston; unenlightened; Serb (abbrev.); Serbian", ["塢"] = "dock; low wall", ["塤"] = "ancient porcelain wind-instrument", ["塥"] = "dry clay lump", ["填"] = "to fill in", ["塱"] = "raised bank; mud wall", ["塵"] = "dust; dirt; earth", ["塹"] = "moat around a city", ["塼"] = "brick", ["塽"] = "elevated prominent ground", ["塾"] = "private tutorage", ["塿"] = "small mound", ["墀"] = "courtyard", ["墁"] = "to plaster", ["境"] = "border; place; condition; boundary; circumstances; territory", ["墅"] = "villa", ["墈"] = "cliff", ["墉"] = "fortified wall", ["墊"] = "pad; cushion; mat", ["墐"] = "bury; plaster with mud", ["墓"] = "tomb", ["墜"] = "fall", ["墝"] = "stony soil", ["增"] = "to increase; to expand; to add", ["墟"] = "old burial grounds", ["墠"] = "level spot for sacrifices", ["墦"] = "a grave", ["墨"] = "China ink; ink stick; (abbrev.)", ["墩"] = "block; gate pillar; pier", ["墫"] = "goblet; bottle; wine-jar", ["墮"] = "degenerate; fall", ["墳"] = "a grave", ["墺"] = "building-plot", ["墾"] = "reclaim (land)", ["壁"] = "wall; rampart", ["壅"] = "obstruct; stop up", ["壆"] = "stiff, hard clay or rocky strata; crack in a jar", ["壇"] = "altar", ["壈"] = "disappointed", ["壎"] = "ancient porcelain wind-instrument", ["壑"] = "gully", ["壒"] = "dust; mud", ["壓"] = "to crush; to press; to push down; to keep under (control); in the first place", ["壔"] = "column; cylinder", ["壕"] = "air-raid shelter; trench", ["壖"] = "land on water edge or under wall", ["壘"] = "rampart", ["壙"] = "tomb", ["壚"] = "clay; shop", ["壝"] = "a mound, an embankment; the earthen altar to the god of the soil", ["壞"] = "bad; evil; rotten; spoiled", ["壟"] = "monopolize", ["壤"] = "soil; earth", ["壩"] = "dam; dyke; embankment", ["士"] = "scholar; warrior; knight", ["壬"] = "9th [[heavenly stem]]", ["壯"] = "to strengthen; strong; robust", ["壹"] = "one (alternate form of {{lang|zh|一}} used on checks)", ["壺"] = "pot; (a measure word)", ["壼"] = "palace corridor or passageway", ["壽"] = "(long) life", ["壿"] = "goblet; bottle; wine-jar", ["夆"] = "to butt (as horned animals)", ["夌"] = "to dawdle; the name of the father of the Emperor Yao", ["夏"] = "summer; Xia (proper name)", ["夔"] = "one-legged monster; respectful", ["夕"] = "dusk; evening", ["外"] = "outside; in addition; foreign; external", ["夗"] = "to turn over when asleep", ["夙"] = "morning", ["多"] = "many; much; a lot of; numerous; multi-", ["夜"] = "night", ["夠"] = "to reach; to be enough", ["夢"] = "to dream", ["夤"] = "late at night", ["夥"] = "assistant; partner; many; great; numerous", ["大"] = "big; great; huge; large; major; wide; deep; oldest; eldest; doctor", ["天"] = "day; sky; heaven", ["太"] = "too (much); very; extremely; highest; greatest", ["夫"] = "husband; man", ["夬"] = "decisive", ["夭"] = "tender; gentle; to die prematurely", ["央"] = "centre; to implore", ["夯"] = "to carry on the shoulder (forcefully); rammer; to ram; to strike forcefully", ["失"] = "to lose; to miss; to fail", ["夷"] = "safe; to raze; to exterminate; barbarian", ["夸"] = "to boast", ["夾"] = "hold between; clip; lined; narrow lane; folder; to press from both sides; to place in between", ["奄"] = "suddenly; to embrace; castrate; to delay", ["奇"] = "strange; odd; weird; wonderful; odd (Num)", ["奈"] = "how can one help", ["奉"] = "to receive (from superior); to offer; to revere", ["奎"] = "name of constellation; stride", ["奏"] = "present a memorial; to achieve; to play", ["奐"] = "excellent", ["契"] = "contract", ["奓"] = "extravagant", ["奔"] = "go to; towards; to hurry or rush; to run quickly; to elope", ["奕"] = "abundant; graceful", ["套"] = "to cover; covering; case; cover; (a measure word, a set of something); sheath", ["奘"] = "fat; stout; great", ["奚"] = "what; why", ["奜"] = "big", ["奠"] = "libation", ["奡"] = "haughty; vigorous", ["奢"] = "extravagant", ["奧"] = "obscure; mysterious", ["奩"] = "bridal trousseau", ["奪"] = "rob; snatch", ["奭"] = "''surname''; angry", ["奮"] = "exert oneself", ["奰"] = "anger", ["女"] = "female; woman; daughter", ["奴"] = "slave", ["奶"] = "breast; lady; milk", ["奸"] = "traitor", ["她"] = "she", ["好"] = "good; well; be fond of", ["妁"] = "''surname''; matchmaker", ["如"] = "as (if); such as", ["妃"] = "imperial concubine", ["妄"] = "absurd; fantastic", ["妊"] = "be pregnant", ["妍"] = "beautiful", ["妒"] = "jealous", ["妓"] = "prostitute", ["妖"] = "goblin; witch; devil; bewitching; enchanting; monster; phantom", ["妗"] = "wife of mother's brother", ["妙"] = "clever; wonderful", ["妝"] = "adornment; adorn", ["妞"] = "little girl", ["妣"] = "deceased mother", ["妤"] = "handsome; fair", ["妥"] = "secure; sound", ["妨"] = "hinder; harm", ["妮"] = "girl; phonetic \"ni\" (in girl's name)", ["妲"] = "concubine of last Shang emperor", ["妳"] = "you (fem.)", ["妵"] = "(feminine name); beautiful; fair", ["妹"] = "younger sister", ["妺"] = "wife of the last ruler of the Xia dynasty", ["妻"] = "wife; to marry off (a daughter)", ["妾"] = "concubine", ["姁"] = "chatter like old woman; cheerful", ["姅"] = "menstruation", ["姆"] = "governess", ["姊"] = "older sister", ["始"] = "begin", ["姍"] = "deprecate; lithe (of woman's walk)", ["姐"] = "older sister", ["姑"] = "paternal aunt", ["姒"] = "''surname''; wife of older brother", ["姓"] = "surname; family name; name", ["委"] = "give up; indeed; to commission; crooked", ["姘"] = "be a mistress or lover", ["姚"] = "''surname''", ["姜"] = "''surname''", ["姝"] = "pretty woman", ["姞"] = "''surname''", ["姣"] = "cunning; pretty", ["姤"] = "copulate; good", ["姥"] = "governess; old woman; (maternal) grandma", ["姦"] = "adultery", ["姨"] = "one's mother's sister; aunt", ["姪"] = "nephew (of the same surname)", ["姬"] = "''surname''; women", ["姱"] = "fascinating; pretty", ["姺"] = "name of an ancient state", ["姻"] = "marriage connections", ["姽"] = "quiet and nice", ["姿"] = "beauty; disposition; looks; appearance", ["娀"] = "name of an ancient state", ["威"] = "power; might; prestige", ["娃"] = "baby; doll", ["娉"] = "graceful", ["娑"] = "", ["娓"] = "active; comply with", ["娘"] = "mother; young lady", ["娛"] = "amuse", ["娜"] = "elegant; graceful", ["娟"] = "beautiful; graceful", ["娠"] = "pregnant", ["娣"] = "wife of a younger brother", ["娥"] = "good; beautiful", ["娩"] = "complaisant; agreeable; give birth to a child", ["娵"] = "(feminine name); (star)", ["娶"] = "take a wife", ["娸"] = "to ridicule; ugly", ["娼"] = "prostitute", ["婀"] = "graceful; willowy; unstable", ["婁"] = "(star); ''surname''", ["婆"] = "grandmother; matron; mother-in-law", ["婉"] = "graceful; tactful", ["婊"] = "prostitute; bitch", ["婐"] = "maid", ["婕"] = "handsome", ["婚"] = "to marry; marriage; wedding; to take a wife", ["婞"] = "upright", ["婢"] = "slave girl; maid servant", ["婤"] = "(feminine name)", ["婥"] = "weak; delicate", ["婦"] = "woman", ["婧"] = "modest; supple", ["婪"] = "avaricious", ["婬"] = "obscene, licentious, lewd", ["婭"] = "address term between sons-in-law", ["婷"] = "graceful", ["婺"] = "beautiful", ["婼"] = "recalcitrant", ["婿"] = "husband; son-in-law", ["媄"] = "beautiful", ["媊"] = "planet Venus in the morning", ["媒"] = "medium; intermediary; matchmaker; go-between", ["媕"] = "girl in love; undecided", ["媚"] = "flatter; charm", ["媛"] = "a beauty", ["媟"] = "to lust for", ["媢"] = "envious", ["媧"] = "''surname''; sister of Fu2 Xi1", ["媬"] = "governess; nurse", ["媮"] = "improper; irregular", ["媯"] = "''surname''; name of a river", ["媲"] = "to match; to pair", ["媳"] = "daughter in law", ["媵"] = "maid escorting bride to new home", ["媸"] = "ugly woman", ["媺"] = "beautiful", ["媻"] = "to move", ["媼"] = "old woman", ["媽"] = "mother; mama", ["媾"] = "to marry; to copulate", ["媿"] = "ashamed", ["嫁"] = "marry (a husband)", ["嫂"] = "older brother's wife; sister-in-law", ["嫄"] = "name of an empress", ["嫈"] = "attentively; carefully", ["嫉"] = "jealousy; be jealous of", ["嫋"] = "delicate; graceful", ["嫌"] = "to dislike; to suspect", ["嫖"] = "visit a prostitute", ["嫗"] = "brood over; old woman; protect", ["嫘"] = "''surname''", ["嫚"] = "''surname''; insult", ["嫜"] = "husband's parent; lady in the moon", ["嫠"] = "widow", ["嫡"] = "first wife; son of first wife", ["嫣"] = "captivating", ["嫩"] = "tender; soft", ["嫪"] = "''surname''; lustful", ["嫫"] = "ugly woman", ["嫵"] = "flatter; to please", ["嫻"] = "elegant; refined", ["嫽"] = "good; smart; to play", ["嫿"] = "tranquil", ["嬃"] = "elder sister", ["嬈"] = "disturbance; graceful", ["嬉"] = "amusement", ["嬋"] = "beautiful; graceful", ["嬌"] = "lovable; pampered; tender; delicate; frail", ["嬔"] = "baby rabbit", ["嬖"] = "(treat as a) favourite", ["嬗"] = "changes and succession", ["嬙"] = "female court officials", ["嬛"] = "clever; pretty; place where supreme bestows books", ["嬝"] = "delicate; graceful", ["嬤"] = "ma; mamma", ["嬪"] = "imperial concubine", ["嬬"] = "mistress, concubine; weak", ["嬭"] = "breast; lady; milk", ["嬰"] = "infant; baby", ["嬲"] = "tease; disturb", ["嬴"] = "full; profit; win", ["嬸"] = "wife of father's younger brother", ["嬾"] = "lazy", ["嬿"] = "lovely", ["孀"] = "widow", ["孃"] = "mother; troubled", ["孅"] = "cunning; slender", ["孌"] = "beautiful", ["子"] = "child; son; (''noun suffix''); small thing; seed; egg; 1st [[earthly branch]]; 11 p.m.–1 a.m., midnight;", ["孑"] = "alone; mosquito larvae; small", ["孓"] = "larvae of mosquito", ["孔"] = "hole; ''surname''", ["孕"] = "pregnant", ["孖"] = "twins", ["字"] = "letter; symbol; character; word", ["存"] = "exist; deposit; store; keep; survive", ["孚"] = "trust", ["孛"] = "comet", ["孜"] = "hard-working; industrious", ["孝"] = "filial", ["孟"] = "first month; eldest brother; ''surname''", ["孢"] = "spore", ["季"] = "season; period", ["孤"] = "lone; lonely", ["孥"] = "child; offspring", ["孩"] = "child", ["孫"] = "grandson", ["孰"] = "who; which; what", ["孱"] = "coward; weak; dodger", ["孳"] = "industrious; produce; bear", ["孵"] = "hatch", ["學"] = "learn; study; science; -ology", ["孺"] = "child", ["孻"] = "last", ["孽"] = "consequence of sin", ["孿"] = "twins", ["它"] = "it (used for things)", ["宄"] = "traitor", ["宅"] = "residence", ["宇"] = "room; universe", ["守"] = "to guard", ["安"] = "content; calm; still; quiet; to pacify; peace; how", ["宋"] = "''surname''; name of a dynasty", ["完"] = "to finish; to be over; whole; complete; entire", ["宏"] = "spacious", ["宓"] = "still; silent", ["宕"] = "dissipated; put off", ["宗"] = "school; sect; purpose; model; ancestor; family", ["官"] = "official; government; organ of body", ["宙"] = "universe", ["定"] = "to set; to fix; to determine; to decide; to stabilize; to order", ["宛"] = "similar; winding", ["宜"] = "proper; should; suitable; appropriate", ["客"] = "customer; visitor; guest", ["宣"] = "to declare (publicly); to announce", ["室"] = "room", ["宥"] = "forgive; help; profound", ["宦"] = "an official", ["宧"] = "northeastern corner of a room", ["宬"] = "library stack; storage", ["宮"] = "palace; uterus", ["宰"] = "slaughter; butcher; govern; rule; official", ["害"] = "to do harm to; to cause trouble to; harm; evil; calamity", ["宴"] = "feast; repose", ["宵"] = "night", ["家"] = "home; family; -ist; -er; -ian; measure word for stores and schools", ["宸"] = "imperial apartments", ["容"] = "to hold; to contain; to allow; appearance; look; countenance", ["宿"] = "(a) night; constellation; lodge for the night; old; former", ["寀"] = "feudal estate", ["寁"] = "swift", ["寂"] = "lonesome", ["寄"] = "lodge at; to mail; to send; to entrust; to depend", ["寅"] = "3rd [[earthly branch]]; 3–5 a.m.", ["密"] = "secret; confidential; close; thick; dense", ["寇"] = "bandit", ["富"] = "rich; abundant; to enrich; resource", ["寎"] = "nightmare; start in sleep", ["寐"] = "sleep soundly", ["寒"] = "cold; poor; to tremble", ["寓"] = "reside; residence", ["寔"] = "really; solid", ["寖"] = "immerse; soak", ["寘"] = "put aside, put down; discard", ["寙"] = "bad; useless; weak", ["寞"] = "lonesome", ["察"] = "examine; inquire; observe; inspect; look into; to examine", ["寠"] = "poor; rustic", ["寡"] = "few; widowed", ["寢"] = "lie down", ["寤"] = "awake from sleep", ["寥"] = "empty; lonesome; very few", ["實"] = "real; true; honest; really; solid", ["寧"] = "peaceful; rather; Ningxia (abbrev.)", ["寨"] = "stronghold; stockade", ["審"] = "to examine; to investigate; carefully; to try (in court)", ["寪"] = "''surname''", ["寫"] = "to write", ["寬"] = "lenient; wide; broad", ["寮"] = "Laos; fellow-official; hut", ["寰"] = "large domain", ["寵"] = "to love; to pamper; to spoil; to favour", ["寶"] = "a jewel or gem; a treasure; precious", ["寸"] = "a unit of length", ["寺"] = "Buddhist temple", ["封"] = "to confer; to grant; to seal; (a measure word)", ["尃"] = "to state to, to announce", ["射"] = "radio- (chem.); shoot", ["將"] = "a general; (will, shall, \"future tense\"); ready; prepared; to get; to use", ["專"] = "for a particular person, occasion, purpose; focused on one thing; special; expert; particular (to something); concentrated; specialized", ["尉"] = "milit. official; to quiet", ["尊"] = "to honour", ["尋"] = "to search; to look for; to seek", ["對"] = "couple; pair; to be opposite; to oppose; to face; for; to; correct (answer); to answer; to reply; to direct (towards something); right", ["導"] = "to transmit; to lead; to guide; to conduct; to direct", ["小"] = "small; tiny; few; young", ["少"] = "young; few; little; lack", ["尒"] = "thou", ["尕"] = "''phonetic''", ["尖"] = "point (of needle); sharp; shrewd; pointed", ["尚"] = "still; yet; to value; to esteem", ["尟"] = "few; rare", ["尢"] = "lame", ["尤"] = "outstanding; particularly; especially", ["尨"] = "shaggy dog; striped", ["尪"] = "feeble; lame", ["尬"] = "in an embarrassing situation", ["尰"] = "swell", ["就"] = "at once; then; right away; only; (emphasis); to approach; to move towards; to undertake", ["尸"] = "corpse", ["尹"] = "to rule; ''surname''", ["尺"] = "a Chinese foot (M); one-third of a metre; a ruler; a note musical note on traditional Chinese scale", ["尻"] = "end of spine", ["尼"] = "Buddhist nun; (often used in phonetic spellings)", ["尾"] = "tail", ["尿"] = "urinate; urine", ["局"] = "situation; office; (a measure word used for games) set or round office", ["屁"] = "to break wind; to fart", ["屄"] = "''a vulgar reference of vulva''; cunt", ["居"] = "reside", ["屆"] = "arrive at (place or time); period; to become due; measure words for events (e.g., meetings, elections)", ["屇"] = "cave; hole", ["屈"] = "bent; feel wronged", ["屋"] = "house; room", ["屌"] = "penis; to fuck", ["屍"] = "corpse", ["屎"] = "stool; faeces", ["屏"] = "(standing) screen; get rid of; put aside; reject; keep control; hold back", ["屐"] = "clogs", ["屑"] = "crumbs; filings; worth while", ["展"] = "to spread out; to postpone; to unfold; to use", ["屘"] = "the youngest", ["屙"] = "defecate", ["屜"] = "drawer; tier; tray", ["屝"] = "coarse; sandals", ["屠"] = "slaughter; slaughter man", ["屢"] = "time and again", ["屣"] = "slippers", ["層"] = "layer; floor; a measure word for layers; laminated; repeated; story (of a building); (maths) sheaf", ["履"] = "shoe; to tread on", ["屧"] = "wooden shoes", ["屨"] = "sandals", ["屩"] = "hemp sandals", ["屪"] = "penis", ["屬"] = "belong to; category; be subordinate to; (taxonomy) genus; be born in the year of (one of the 12 animals); family members; dependants; join together; fix one's attention on; concentrate on", ["屭"] = "gigantic strength", ["屮"] = "plants sprouting", ["屯"] = "to store up; to station (soldiers); difficult; stingy", ["山"] = "mountain; hill", ["屴"] = "high mountain range", ["屹"] = "high and steep", ["屺"] = "hill without trees", ["屼"] = "bare hill", ["岊"] = "mountain peak", ["岌"] = "lofty peak; perilous", ["岍"] = "name of a mountain", ["岐"] = "divergent; side road; steep", ["岑"] = "a small hill; ''surname''", ["岔"] = "branch in a road; astray; diverge", ["岝"] = "name of a mountain in Shandong", ["岡"] = "ridge; mound", ["岣"] = "name of a hill in Hunan", ["岧"] = "lofty peak", ["岨"] = "rocky hill", ["岩"] = "cliff; rock", ["岫"] = "cave; mountain peak", ["岬"] = "cape (geog.)", ["岱"] = "name of a mountain in Shandong", ["岳"] = "mountain; wife's father", ["岵"] = "wooded hill", ["岷"] = "name of a river in Sichuan", ["岸"] = "bank; shore; beach; coast", ["峇"] = "cave, cavern", ["峋"] = "ranges of hills", ["峒"] = "name of a mountain", ["峓"] = "place name", ["峙"] = "peak; to store", ["峞"] = "high and uneven", ["峨"] = "lofty; name of a mountain", ["峪"] = "valley", ["峭"] = "steep hill", ["峰"] = "peak; summit", ["峱"] = "name of a mountain", ["峴"] = "steep hill", ["島"] = "island", ["峹"] = "name of a mountain", ["峻"] = "steep", ["峽"] = "gorge", ["峿"] = "name of a mountain", ["崀"] = "place name in Hunan province", ["崆"] = "name of a mountain", ["崇"] = "high; dignified; lofty; to honour", ["崌"] = "mountain name", ["崍"] = "name of a mountain in Sichuan", ["崎"] = "mountainous", ["崑"] = "Kunlun mountains", ["崒"] = "rocky peaks; lofty and dangerous", ["崔"] = "high mountain; precipitous", ["崖"] = "precipice", ["崗"] = "mound; policeman's beat", ["崙"] = "Koulkun mountains", ["崚"] = "lofty (as of mountain)", ["崛"] = "towering as a peak", ["崞"] = "name of a mountain", ["崟"] = "high; rugged mountains; steep", ["崠"] = "place name in Guangxi province", ["崢"] = "excel; lofty", ["崤"] = "mountain in Henan", ["崦"] = "name of a mountain in Gansu", ["崧"] = "lofty; name of a mountain in Henan", ["崩"] = "collapse; fall into ruins", ["崮"] = "(element in mountain names)", ["崱"] = "lofty", ["崳"] = "county in Shandong province", ["崴"] = "high, lofty; precipitous", ["崶"] = "name of a legendary hill", ["崽"] = "young of animals", ["崿"] = "cliff; precipice", ["嵂"] = "rise sharply; to tower", ["嵇"] = "''surname''; name of a mountain", ["嵊"] = "name of a district in Zhejiang", ["嵌"] = "deep valley; inlay", ["嵎"] = "mountain range", ["嵐"] = "mountain mist", ["嵒"] = "cliff", ["嵙"] = "place name", ["嵩"] = "lofty; name of a mountain in Henan", ["嵫"] = "name of a mountain in Gansu", ["嵬"] = "rocky", ["嵯"] = "lofty (as of mountain)", ["嵼"] = "winding mountain path", ["嵾"] = "uneven; not uniform", ["嶁"] = "mountain peak", ["嶂"] = "cliff; range of peaks", ["嶄"] = "precipitous peak", ["嶇"] = "rugged", ["嶒"] = "lofty; precipitous", ["嶓"] = "name of a mountain", ["嶔"] = "loftiness (of mountain)", ["嶗"] = "name of a mountain in Shandong", ["嶙"] = "ranges of hills", ["嶝"] = "path leading up a mountain", ["嶞"] = "mountain peak", ["嶠"] = "highest peak", ["嶡"] = "sacrificial vessel; precipitous; mountainous", ["嶢"] = "high; steep; to tower", ["嶧"] = "name of hills in Shandong", ["嶨"] = "big rocky mountain", ["嶭"] = "elevated, lofty", ["嶮"] = "precipitous; rugged", ["嶰"] = "mountain valley", ["嶲"] = "a name of an old town in Sichuan; cuckoo; revolution of a wheel", ["嶴"] = "place name", ["嶷"] = "name of a mountain in Hunan", ["嶺"] = "mountain range", ["嶼"] = "islet", ["嶽"] = "mountain", ["巂"] = "place name in Sichuan", ["巃"] = "steep; precipitous (of mountain)", ["巇"] = "mountain-gorge; ravine", ["巉"] = "cliff", ["巋"] = "high and mighty (of mountain); hilly", ["巍"] = "high; lofty; towering; majestic", ["巒"] = "mountain ranges", ["巔"] = "summit", ["巖"] = "cliff", ["巘"] = "peak of mountain", ["川"] = "river; creek; plain; an area of level country; Sichuan province (abbrev.)", ["州"] = "province; prefecture; state; county", ["巟"] = "a watery waste; to reach", ["巡"] = "to patrol; to make one's rounds", ["巢"] = "nest", ["工"] = "work; worker; skill; profession; trade; craft; labour", ["左"] = "left", ["巧"] = "opportunely; coincidentally; as it happens; skilful; timely", ["巨"] = "very large; huge; tremendous; gigantic", ["巫"] = "witch; Malay", ["差"] = "differ from; short of; to lack; poor; send; a messenger; a mission; to commission; uneven; difference; discrepancy; to differ; error; to err; to make a mistake", ["巰"] = "hydrosulfuryl", ["己"] = "6th [[heavenly stem]]; self", ["已"] = "already; to stop; then; afterwards", ["巳"] = "6th [[earthly branch]]; 9–11 a.m.", ["巴"] = "(suff. for certain nouns); to hope; to wish; Palestinian, Palestine (abbrev.); Pakistan (abbrev.); Pascal (unit of pressure)", ["巷"] = "lane; alley", ["巹"] = "nuptial wine cup", ["巽"] = "a sign in the trigram; obey", ["巾"] = "towel", ["巿"] = "revolve, make circuit, turn", ["市"] = "market; city", ["布"] = "to declare; to announce; to spread; to make known; spread; (cotton) cloth", ["帆"] = "sail", ["希"] = "to hope; rare; infrequent", ["帑"] = "treasury", ["帔"] = "cape", ["帕"] = "handkerchief", ["帖"] = "invitation card; notice; rubbing from incised inscription; fit snugly", ["帗"] = "object held by dancer", ["帘"] = "wine shop sign", ["帙"] = "book cover", ["帚"] = "broom", ["帛"] = "silk", ["帝"] = "emperor", ["帟"] = "canopy", ["帡"] = "shelter, screen, awning", ["帣"] = "a bag which holds 30 pecks", ["帥"] = "commander in chief; handsome; graceful; smart", ["帨"] = "handkerchief", ["師"] = "a division (milit.); teacher; master; expert; model", ["席"] = "banquet; woven mat; seat; place", ["帳"] = "account; mosquito net; tent; curtain; debt; credit", ["帶"] = "band; belt; girdle; ribbon; area; zone; region; wear; carry; lead; bring; consists of; show; and", ["帷"] = "curtain; screen", ["常"] = "always; ever; often; frequently; common; general; constant", ["帽"] = "hat; cap", ["幀"] = "frame; one of a pair (scrolls); picture", ["幃"] = "curtain; women's apartment; tent", ["幄"] = "tent", ["幅"] = "(measure word for textile or picture); width; roll", ["幋"] = "large scarf", ["幌"] = "advertising sign", ["幔"] = "curtain", ["幕"] = "stage curtain; tent", ["幗"] = "cap worn by women; feminine", ["幘"] = "conical cap", ["幙"] = "a curtain, a screen", ["幛"] = "hanging scroll", ["幟"] = "flag", ["幠"] = "arrogant; rude; to cover", ["幡"] = "banner", ["幢"] = "(measure word for houses); tents", ["幣"] = "money; coins; currency", ["幦"] = "chariot canopy", ["幨"] = "curtain in carriage; screen", ["幩"] = "ornamental tassel on bridle", ["幪"] = "cover", ["幫"] = "to assist; to support; to help; group; gang; party", ["幬"] = "canopy; curtain", ["幭"] = "carriage cover", ["幯"] = "wipe", ["幰"] = "curtain at front of carriage", ["干"] = "to concern; to interfere; shield; stem", ["平"] = "flat; level; equal; to make the same score; to tie; to draw; calm; peaceful", ["年"] = "year", ["幵"] = "even level. to raise in both hands", ["并"] = "and; also; together with", ["幸"] = "fortunate; lucky", ["幹"] = "main part of something; to manage; to work; to do; capable; tree trunk; to kill (slang)", ["幻"] = "fantasy", ["幼"] = "young", ["幽"] = "quiet; secluded", ["幾"] = "how much; how many; several; a few; almost", ["庀"] = "prepare", ["庄"] = "farm; village", ["庇"] = "to protect; cover; shelter; hide or harbour", ["庈"] = "(person)", ["庉"] = "a village; to dwell together", ["床"] = "bed; couch; (a measure word)", ["庋"] = "a cupboard or pantry to store", ["序"] = "order; sequence; preface", ["底"] = "background; bottom; base; (possessive part.); (subor. part.)", ["庖"] = "kitchen", ["店"] = "inn; shop; store", ["庚"] = "7th [[heavenly stem]]; age", ["府"] = "prefecture; mansion", ["庠"] = "asylum for the aged; school", ["庤"] = "prepare", ["庥"] = "protection; shade", ["度"] = "capacity; degree; standard", ["座"] = "seat; base; stand; measure word for large, solid things", ["庫"] = "warehouse; storehouse", ["庬"] = "huge", ["庭"] = "court; courtyard", ["庳"] = "low-built house", ["庴"] = "place name", ["庵"] = "hut; Buddhist convent; small Buddhist temple", ["庶"] = "ordinary", ["康"] = "peaceful; spongy (of radishes)", ["庸"] = "ordinary; to use", ["庹"] = "length of 2 outstretched arms", ["庾"] = "''surname''; name of a mountain", ["廁"] = "rest-room; toilet; lavatory", ["廂"] = "box (in theatre); side room", ["廄"] = "a stable", ["廆"] = "a room; the wall of a house; a man's name", ["廈"] = "tall building", ["廉"] = "uncorrupt; inexpensive", ["廊"] = "porch", ["廋"] = "to search; be concealed", ["廎"] = "room; small hall", ["廑"] = "careful; hut", ["廒"] = "granary", ["廓"] = "big; empty; open", ["廕"] = "shade", ["廖"] = "''surname''", ["廚"] = "kitchen", ["廛"] = "market place", ["廝"] = "servant", ["廞"] = "to prepare horses and chariots for battle", ["廟"] = "temple; monastery", ["廠"] = "factory; yard; depot; workhouse; works; (industrial) plant", ["廡"] = "veranda", ["廢"] = "abolish; crippled", ["廣"] = "wide; numerous; to spread", ["廧"] = "wall", ["廨"] = "office", ["廩"] = "government granary", ["廬"] = "hut", ["廱"] = "harmonious", ["廳"] = "(reception) hall; office", ["延"] = "to prolong; to extend; to delay", ["廷"] = "palace courtyard", ["建"] = "to establish; to found; to set up; to build; to construct", ["廾"] = "hands joined", ["廿"] = "twenty", ["弁"] = "cap", ["异"] = "(interj.); raise; to stop", ["弄"] = "to do; to manage; to handle; to play with; to fool with; to mess with; to fix; to toy with; lane; alley", ["弇"] = "to cover; trap", ["弈"] = "Chinese chess game", ["弊"] = "detriment; fraud; harm; defeat", ["弋"] = "to shoot", ["式"] = "type; form; pattern; style", ["弒"] = "murder a superior", ["弓"] = "a bow (weapon)", ["弔"] = "condole with; hang", ["引"] = "to lead; to divert (water); to guide", ["弗"] = "not", ["弘"] = "great; liberal", ["弛"] = "unstring a bow; slacken; relax; loosen", ["弝"] = "the part of a bow grasped when shooting", ["弟"] = "younger brother", ["弢"] = "bow case; to cover", ["弣"] = "handle of bow", ["弤"] = "carved bow", ["弦"] = "bow string; string of mus. instr.", ["弧"] = "arc", ["弨"] = "unbent bow", ["弩"] = "cross-bow", ["弭"] = "to stop; repress", ["弮"] = "a crossbow which discharged several bolts in succession", ["弰"] = "ends of a bow", ["弱"] = "weak; feeble; young; inferior", ["弳"] = "circular measure", ["張"] = "(a measure word); ''surname''; open up", ["強"] = "strength; force; power; powerful; better", ["弸"] = "full; stretch", ["弼"] = "assist", ["彀"] = "enough", ["彄"] = "nock at end of bow; stretch", ["彆"] = "contrary; difficult; awkward", ["彈"] = "bullet; shot; ball; to play (a stringed instrument); to pluck a string; impeach", ["彊"] = "strong; superior; compel; wilful", ["彌"] = "full; to fill", ["彎"] = "bend; bent", ["彔"] = "to carve wood", ["彖"] = "hog; to judge", ["彗"] = "comet", ["彘"] = "swine", ["彙"] = "class; collection", ["彝"] = "normal nature of man; rule", ["形"] = "to appear; to look; form; shape", ["彤"] = "red", ["彥"] = "accomplished; elegant", ["彧"] = "accomplished; elegant", ["彩"] = "(bright) colour; variety; applause; applaud; (lottery) prize", ["彪"] = "a tiger-cat; stripes; streaks; veins", ["彫"] = "engrave", ["彬"] = "ornamental; refined", ["彭"] = "''surname''", ["彰"] = "manifest", ["影"] = "picture; image; reflection; shadow", ["彳"] = "step with left foot", ["彴"] = "bridge", ["彸"] = "restless, agitated", ["役"] = "service", ["彼"] = "that; those; (one) another)", ["彽"] = "go to and fro", ["往"] = "toward; (of a train) bound for; to go (in a direction); past; previous; towards", ["征"] = "attack; levy (troops or taxes); journey; trip; expedition", ["徂"] = "to go; to reach", ["待"] = "wait; treat; deal with; need; about; intending to do something; stay; delay", ["徇"] = "follow; quick", ["很"] = "very; rather; quite", ["律"] = "law", ["後"] = "back; behind; rear; afterwards; after; later", ["徐"] = "slow; gentle; ''surname''", ["徑"] = "path", ["徒"] = "apprentice; disciple", ["得"] = "get; obtain; gain; proper; suitable; proud; contented; allow; permit; ready; finished; a sentence particle used after a verb to show effect; degree or possibility; to have to; must; ought to; to need to", ["徙"] = "change one's residence", ["從"] = "from; obey; observe; follow; second cousin; lax; yielding; unhurried", ["徠"] = "to come", ["御"] = "defend; imperial; to drive", ["復"] = "again; recover; reply to a letter; to repeat; to duplicate", ["循"] = "to follow; to adhere to; to abide by", ["徬"] = "irresolute", ["徭"] = "compulsory service", ["微"] = "tiny; minute; clandestine; hide; elegant; exquisite", ["徯"] = "footpath; wait for", ["徵"] = "note in Chinese musical scale; levy (troops or taxes)", ["德"] = "Germany; virtue; goodness; morality; ethics; kindness; favour; character; kind", ["徹"] = "pervade; penetrate; pass through; thorough; penetrating", ["徻"] = "a wide room", ["徼"] = "boundary; go around; by mere luck", ["徽"] = "insignia", ["忀"] = "to stroll; to ramble", ["心"] = "heart; mind", ["必"] = "certainly; must; will; necessarily", ["忉"] = "grieved", ["忌"] = "avoid as taboo; jealous", ["忍"] = "to bear; to endure; to tolerate", ["忒"] = "excessive; to change", ["忖"] = "ponder; consider; guess", ["志"] = "the will", ["忘"] = "to forget; to overlook; to neglect", ["忙"] = "busy", ["忝"] = "to shame", ["忠"] = "loyal", ["忡"] = "grieved; distressed; sad; uneasy", ["忤"] = "disobedient; unfilial", ["忪"] = "restless; agitated", ["快"] = "fast; quick; swift", ["忭"] = "delighted; pleased", ["忮"] = "aggressive", ["忱"] = "sincerity; honesty", ["念"] = "to miss; to think of; to read; to study (a subject); to attend (a school); to read aloud; idea; remembrance; twenty", ["忸"] = "accustomed to; blush; be shy", ["忻"] = "happy", ["忽"] = "suddenly", ["忿"] = "vehement", ["怍"] = "ashamed", ["怎"] = "how", ["怏"] = "discontented", ["怒"] = "indignant", ["怔"] = "be startled", ["怕"] = "to be afraid; to fear", ["怖"] = "terror; terrified; afraid; frightened", ["怗"] = "peaceful; quiet", ["怙"] = "presume", ["怚"] = "dull, stupid, suspicious", ["怛"] = "distressed; alarmed; shocked; grieved", ["思"] = "to think; to consider", ["怞"] = "to grieve; sorrowful", ["怠"] = "idle; lazy; negligent; careless", ["怡"] = "harmony; pleased", ["急"] = "hurried; worried", ["怦"] = "impulsive", ["性"] = "sex; nature; suffix corresponding to -ness or -ity", ["怨"] = "blame; complain", ["怩"] = "shy, timid, bashful; look ashamed", ["怪"] = "queer; to blame", ["怫"] = "anxious; anger", ["怭"] = "frivolous; rude", ["怯"] = "afraid; rustic", ["怲"] = "sad; mournful", ["怳"] = "disappointed; flurried; indistinct", ["怵"] = "fearful; timid; to fear", ["怹"] = "a polite version of he", ["恁"] = "that, like this, thus, so, such", ["恂"] = "sincere", ["恃"] = "rely upon", ["恆"] = "permanent", ["恇"] = "to fear; apprehensive", ["恉"] = "purport", ["恌"] = "frivolous", ["恍"] = "disappointed; flurried; indistinct", ["恐"] = "afraid; frightened; to fear", ["恓"] = "troubled; vexed", ["恔"] = "cheerful", ["恕"] = "forgive", ["恙"] = "sickness", ["恚"] = "rage", ["恛"] = "disordered; indistinct doubtful; blurred", ["恝"] = "indifferent", ["恟"] = "scared, nervous", ["恢"] = "to restore; to recover; great", ["恣"] = "throw off restraint", ["恤"] = "give relief; sympathy", ["恥"] = "shame; disgrace", ["恧"] = "ashamed", ["恨"] = "to hate; regret", ["恩"] = "kind act (from above)", ["恪"] = "''surname''; respectful", ["恫"] = "frighten", ["恬"] = "quiet, calm, tranquil, peaceful", ["恭"] = "respectful", ["息"] = "rest; news; interest; breath", ["恰"] = "exactly; just", ["恿"] = "", ["悁"] = "impatient; angry; sad", ["悃"] = "sincere", ["悄"] = "quiet; sad", ["悅"] = "pleased", ["悆"] = "happy", ["悉"] = "in all cases; know", ["悊"] = "wise. to know intuitively", ["悌"] = "do one's duty as a younger brother", ["悍"] = "violent", ["悐"] = "respect, regard; to stand in awe of, to be alarmed", ["悒"] = "anxiety; worry", ["悔"] = "regret", ["悖"] = "perverse; rebellious; to rebel", ["悚"] = "frightened", ["悛"] = "to reform", ["悜"] = "obscure", ["悝"] = "sad; laugh at", ["悟"] = "comprehend", ["悠"] = "at ease; long (in time); sad", ["患"] = "misfortune; suffer (from illness); trouble; danger; worry; to contract (a disease)", ["您"] = "(''polite'') you", ["悰"] = "joy", ["悱"] = "want but cannot speak", ["悲"] = "sad; sadness; sorrow; grief", ["悴"] = "haggard; sad; downcast; distressed", ["悵"] = "regretful; upset; despair; depressed", ["悶"] = "melancholy; smother; stuffy", ["悸"] = "afraid", ["悻"] = "angry", ["悼"] = "mourn; lament", ["悽"] = "sorrowful", ["悾"] = "simple-minded; sincere", ["惄"] = "distressed; famished", ["情"] = "feeling; emotion; passion; situation", ["惆"] = "forlorn; vexed; disappointed", ["惇"] = "kindhearted", ["惋"] = "regret, be sorry; alarmed", ["惌"] = "to bear a grudge against", ["惎"] = "injure; vilify", ["惏"] = "avaricious; greedy", ["惑"] = "confuse", ["惓"] = "earnest", ["惔"] = "cheerful", ["惕"] = "fearful; respectful", ["惘"] = "desolate", ["惙"] = "mournful; uncertain", ["惚"] = "indistinct", ["惛"] = "confused; forgetful; silly", ["惜"] = "pity; regret; rue; begrudge", ["惝"] = "disappointed", ["惟"] = "only; think", ["惠"] = "favour; kind act (from above)", ["惡"] = "evil; to hate; to loathe; nauseated", ["惦"] = "think of; remember; miss", ["惰"] = "lazy", ["惱"] = "get mad", ["惲"] = "''surname''", ["想"] = "to think; to believe; to suppose; to wish; to want; to miss", ["惴"] = "anxious; worried", ["惶"] = "frightened", ["惷"] = "blunt; stupid; to wiggle (of worms)", ["惸"] = "alone; desolate", ["惹"] = "to provoke; to exasperate; to annoy", ["惺"] = "tranquil; understand", ["惻"] = "sorrowful", ["愀"] = "change countenance; worry", ["愁"] = "worry about", ["愃"] = "well-being", ["愆"] = "fault; transgression", ["愈"] = "heal; the more...the more; to recover; better", ["愉"] = "pleased", ["愊"] = "melancholy; sincere", ["愍"] = "pity; sympathize", ["愎"] = "perverse; obstinate", ["意"] = "idea; meaning; wish; desire; Italy (abbrev.)", ["愐"] = "shy", ["愒"] = "to desire", ["愓"] = "profligate", ["愔"] = "peaceful; solemn", ["愕"] = "startled", ["愚"] = "stupid", ["愛"] = "to love; affection; to be fond of; to like", ["愜"] = "cheerful; satisfied", ["感"] = "to feel; to move; to touch; to affect", ["愣"] = "to look distracted; to stare blankly; distracted; stupefied; blank", ["愧"] = "ashamed", ["愨"] = "honest", ["愫"] = "guileless; sincere", ["愬"] = "complain; sue; tell", ["愮"] = "distressed, agitated", ["愴"] = "mournful; sad; grieved; sorry", ["愷"] = "joyful; kind", ["愾"] = "anger", ["愿"] = "sincere; willing", ["慁"] = "confused; dishonour", ["慄"] = "afraid; trembling", ["慅"] = "agitated", ["慆"] = "rejoice", ["慇"] = "solicitous", ["慈"] = "compassionate; gentle; merciful; kind; humane", ["慉"] = "to foster; to bear", ["慊"] = "contented; dissatisfied", ["態"] = "appearance; state; attitude; (''linguistics'') voice", ["慌"] = "to get panicky; to lose one's head", ["慍"] = "indignant; feel hurt", ["慎"] = "cautious", ["慕"] = "admire", ["慘"] = "miserable; wretched; cruel; inhuman; seriously; badly; tragic", ["慚"] = "ashamed", ["慝"] = "evil thought", ["慟"] = "grief", ["慢"] = "slow", ["慣"] = "accustomed to; used to", ["慥"] = "sincere", ["慧"] = "intelligent", ["慨"] = "generous; sad", ["慪"] = "annoyed", ["慫"] = "arouse", ["慬"] = "brave; cautious; sad", ["慮"] = "anxiety", ["慰"] = "reassure", ["慱"] = "sad", ["慳"] = "stingy", ["慴"] = "terrified", ["慵"] = "careless", ["慶"] = "celebrate", ["慷"] = "generous; magnanimous", ["慼"] = "ashamed; grief", ["慾"] = "desire; wish", ["憀"] = "to rely on", ["憂"] = "worried", ["憃"] = "foolish, stupid, dull, silly", ["憊"] = "exhausted", ["憋"] = "hold in (urine); to hold (breath); to choke; stifle; restrain; hold back", ["憍"] = "arrogant", ["憎"] = "detest", ["憐"] = "to pity", ["憑"] = "lean against; proof; to rely on; to depend on; to be based on", ["憒"] = "confused; troubled", ["憔"] = "haggard", ["憖"] = "injured; moreover; preferably", ["憚"] = "dread; fear; dislike", ["憝"] = "dislike; hate", ["憤"] = "indignant; anger; resentment", ["憧"] = "irresolute; unsettled", ["憨"] = "silly; simple-minded", ["憩"] = "to rest", ["憪"] = "composed, contented", ["憫"] = "sympathize; to pity", ["憬"] = "awaken", ["憭"] = "clear; intelligible; severe; cold", ["憮"] = "disappointed; startled", ["憯"] = "already; sorrowful", ["憲"] = "statute; constitution", ["憶"] = "remember", ["憸"] = "artful; flattering", ["憺"] = "peace", ["憾"] = "regret", ["懂"] = "to understand; to know", ["懃"] = "solicitous; thoughtful", ["懅"] = "bashful; ashamed", ["懆"] = "anxious; sad", ["懇"] = "earnest", ["懈"] = "lax; negligent", ["應"] = "to answer; to respond; ought", ["懊"] = "to regret", ["懋"] = "be great; exert the mind", ["懌"] = "pleased; rejoice", ["懍"] = "fear", ["懟"] = "dislike; hate", ["懠"] = "angry", ["懣"] = "melancholy", ["懤"] = "grieved, pained", ["懥"] = "enraged", ["懦"] = "imbecile; timid", ["懨"] = "contented; peaceful", ["懫"] = "enraged; resentful; to hate; to desist", ["懮"] = "grievous; relaxed", ["懰"] = "lovely; beautiful", ["懲"] = "punish; discipline", ["懵"] = "stupid", ["懶"] = "lazy", ["懷"] = "to think of; to cherish; mind; heart; bosom", ["懸"] = "hang; suspend", ["懺"] = "feel remorse; regret; repent", ["懼"] = "to fear", ["懽"] = "pleased", ["懾"] = "afraid; be feared; to fear; to frighten; to intimidate", ["懿"] = "restrain; virtuous", ["戀"] = "feel attached to; long for; love", ["戁"] = "stand in awe", ["戄"] = "fear; be in awe; sudden glance", ["戇"] = "simple; stupid", ["戈"] = "spear", ["戊"] = "5th [[heavenly stem]]", ["戌"] = "11th [[earthly branch]]; 7–9 p.m.", ["戍"] = "garrison", ["戎"] = "weapon", ["成"] = "finish; complete; accomplish; become; turn into; win; succeed; one tenth", ["我"] = "I; me", ["戒"] = "swear off; warn against", ["戔"] = "narrow; small", ["或"] = "maybe; perhaps; might; possibly; or", ["戚"] = "get close to; relative; sorrow; battle-axe", ["戛"] = "a lance; standing alone", ["戟"] = "a lance with two points", ["戠"] = "a sword. potter's clay. to gather", ["戡"] = "kill; suppress", ["戢"] = "collect oneself; put away", ["戣"] = "a lance", ["戤"] = "infringe upon a trade mark", ["戥"] = "small steelyard for weighing money", ["戩"] = "carry to the utmost; to cut", ["截"] = "a section; cut off (a length)", ["戭"] = "spear", ["戮"] = "kill", ["戰"] = "to fight; fight; war; battle", ["戲"] = "trick; drama; play; show", ["戳"] = "poke; pierce; prick; wooden or rubber stamp or seal", ["戴"] = "to put on; to respect; to bear; to support; wear (glasses, hat, gloves)", ["戶"] = "a household; door; family", ["戺"] = "door pivot", ["戽"] = "water bucket for irrigation", ["戾"] = "do violence; go against", ["房"] = "house", ["所"] = "actually; place; (''nominalization prefix'')", ["扁"] = "flat; tablet; inscription; small boat", ["扃"] = "shut", ["扆"] = "''surname''; screen", ["扇"] = "fan; to fan; (a measure word for doors, windows, etc.)", ["扈"] = "retinue", ["扉"] = "door with only one leaf", ["扊"] = "upright bar for fastening a door", ["手"] = "hand; convenient; -er", ["才"] = "ability; talent; endowment; gift; an expert; only (then); only if; just", ["扎"] = "to prick; to run or stick (a needle, etc.) into; penetrating (as of cold); struggle; to tie; to bind", ["扐"] = "divination by straw", ["扑"] = "to rush at; to throw oneself on", ["扒"] = "climb; crawl; snatch; pull (out); to strip; hold on to; cling to; dig up; rake; push aside", ["打"] = "beat; strike; break; mix up; build; fight; fetch; make; tie up; issue; shoot; calculate; since; from; dozen", ["扔"] = "throw", ["托"] = "to hold in one's hand; to entrust; to support in one's palm", ["扛"] = "carry on one's shoulder; lift overhead with both hands", ["扞"] = "ward off, withstand, resist", ["扠"] = "to fork", ["扡"] = "drag along", ["扢"] = "sprightful; clean; to rub", ["扣"] = "10 percent; button; detain", ["扤"] = "to move; sway", ["扦"] = "graft (tree); stick in", ["扭"] = "to turn; to twist; to grab; to wring", ["扮"] = "to disguise oneself; to dress up; adorn", ["扯"] = "pull; tear; to talk casually", ["扱"] = "collect; receive", ["扳"] = "climb up; pull; to pull or draw (up or out)", ["扶"] = "to support with hand; to help someone up; to help", ["批"] = "to ascertain; (measure word for batches, lots); to act on; to criticize; to pass on", ["扻"] = "to strike; to run against; to throw, as a stone", ["扼"] = "hold (strategic position)", ["扽"] = "to move, to shake", ["找"] = "to try to find; to look for; to call on (someone); to find; to seek; to return", ["承"] = "to bear; to carry; to hold; to continue; to undertake; to take charge; owing to; due to; to receive", ["技"] = "skill", ["抃"] = "strike; tap", ["抄"] = "to copy; to plagiarize; to search and seize; to go; to transcribe; to take a shortcut; to search and confiscate", ["抆"] = "wipe", ["抈"] = "to bend", ["抉"] = "dig; pick", ["把"] = "handle; (a measure word); (marker for direct-object); to hold; to contain; to grasp; to take hold of", ["抌"] = "to bale out water, to dip", ["抑"] = "to restrain; to restrict; to keep down; or", ["抒"] = "to strain; pour out", ["抓"] = "to grab; to catch; to arrest; to snatch", ["抔"] = "take up in both hands", ["投"] = "to throw; to send", ["抖"] = "shake out; tremble", ["抗"] = "to resist; to fight; to defy", ["折"] = "tenth (in price); to break; to fold; to turn; broken (as of rope, stick)", ["抨"] = "attack; impeach", ["披"] = "scatter; separate; to open; to unroll; to spread out", ["抬"] = "to lift; to raise; (of two or more persons) to carry", ["抱"] = "to hold; to carry (in one's arms); to hug or embrace; surround; cherish", ["抵"] = "hold up; on the whole; push against; to support; to resist; to reach; to arrive; mortgage", ["抶"] = "beat; flog", ["抹"] = "girdle; brassiere; to plaster; play; to smear", ["抻"] = "pull", ["押"] = "detain in custody", ["抽"] = "to draw out; to smoke (cigarettes); to pump", ["抿"] = "purse up (lips); to smooth", ["拂"] = "brush away", ["拄"] = "post; prop", ["拆"] = "to tear open; to tear down; to tear apart; to open", ["拇"] = "thumb", ["拉"] = "to pull; to play (string instruments); to drag; to draw", ["拊"] = "pat", ["拋"] = "to throw; to toss; to fling; to cast; to abandon", ["拌"] = "to mix; mix in; to toss (a salad)", ["拍"] = "to clap; to pat; to beat; to hit; to slap; to take (a picture)", ["拎"] = "to haul; to lift; to take", ["拏"] = "apprehend; take", ["拐"] = "kidnap; to turn", ["拑"] = "pliers; pincers; to clamp", ["拒"] = "to resist; to repel; to refuse", ["拓"] = "expand; support on palm; to develop; to open up; make rubbing", ["拔"] = "pull up; pull out; select; promote", ["拖"] = "dragging (brush stroke in painting); to drag along", ["拗"] = "stubborn; contrary; bend; break in two", ["拘"] = "adhere; capture; restrain", ["拙"] = "awkward; clumsy; dull; inelegant; (polite) my", ["拚"] = "stake all; disregard; reject", ["招"] = "provoke; to recruit", ["拜"] = "to pay respect; worship; visit; salute", ["拫"] = "to pull; to drag; to stop", ["括"] = "enclose; include", ["拭"] = "wipe", ["拯"] = "to raise; to aid; to support; to save; to rescue", ["拱"] = "fold hands in salute; to arch", ["拳"] = "fist", ["拴"] = "tie up", ["拶"] = "punish by squeezing fingers", ["拷"] = "to beat; to flog; to examine by torture", ["拼"] = "piece together; stake (all); spell; join together", ["拽"] = "throw; drag", ["拾"] = "pick up; ten (fraud-proof)", ["拿"] = "to hold; to seize; to catch; to apprehend; to take", ["持"] = "to grasp; to hold; support; manage; direct; maintain", ["挂"] = "hang; suspend", ["指"] = "finger; to point; to direct; to indicate", ["挈"] = "pull out; take family along", ["按"] = "to press (with the hand); to push; to control; to restrain; to check; pressing down (brush movement in painting); according to; in the light of", ["挌"] = "fight", ["挍"] = "compare; criticize", ["挎"] = "carry on one's arm; carry over one's shoulder or slung on one's side", ["挐"] = "apprehend; take", ["挑"] = "incite; carry on a pole; choose", ["挓"] = "to open out; to expand", ["挖"] = "to dig; to excavate; to scoop out", ["挨"] = "next to; suffer (hunger); endure; drag out; delay; stall; play for time; lean to; in order; in sequence", ["挪"] = "to shift; to move", ["挫"] = "be obstructed; fail; oppress; repress; lower the tone; bend back; dampen", ["振"] = "rouse", ["挲"] = "to stroke; to caress; to fondle", ["挶"] = "structure for carrying dirt", ["挹"] = "give up; ladle out; pour out", ["挺"] = "be straight and stiff; rather (good)", ["挽"] = "draw; pull; send funeral ode", ["挾"] = "clasp under the arm; coerce; hold between", ["捂"] = "to cover; to block; to resist", ["捃"] = "gather; to sort", ["捄"] = "to rescue", ["捅"] = "poke through", ["捆"] = "a bunch; tie together; bundle", ["捉"] = "to clutch; to grab; to capture", ["捋"] = "strip (cow, leaves, branch); stroke (beard)", ["捌"] = "complicated form of the numeral eight; split; (''Min'') to know", ["捍"] = "ward off (a blow)", ["捎"] = "bring or take (along)", ["捏"] = "to pinch (with one's fingers); to knead; to make up", ["捐"] = "to contribute; to donate; tax; to abandon", ["捕"] = "to catch; to seize; to capture", ["捗"] = "make progress", ["捘"] = "push", ["捥"] = "to bend the wrist", ["捧"] = "hold or offer with both hands", ["捨"] = "give up; abandon", ["捩"] = "tear; twist", ["捫"] = "lay hands on; to cover", ["捭"] = "weed; spread out; to open", ["捱"] = "dawdle; suffer", ["捲"] = "coil; to roll", ["捶"] = "beat with the fist; to hammer; to cudgel", ["捷"] = "victory; triumph; quick; prompt; rapid", ["捺"] = "(downwards-right concave character stroke); press down firmly", ["捻"] = "twirl (in the fingers)", ["捼"] = "to rub; to crumple", ["捽"] = "seize", ["掀"] = "lift (cover)", ["掂"] = "weigh in the hand", ["掃"] = "broom; to sweep", ["掄"] = "select; whirl (one's arm)", ["掇"] = "pick up", ["授"] = "to teach; to instruct; to award; to give", ["掉"] = "to drop; to fall", ["掊"] = "break up; hit; take up in both hands", ["掌"] = "palm (of hand); in charge of", ["掎"] = "drag", ["掏"] = "fish out (from pocket)", ["掐"] = "pick (flowers); to pinch", ["排"] = "row of logs or boards; a platoon; line up", ["掔"] = "lead along; substantial", ["掖"] = "tuck (in)", ["掗"] = "attach; brandish; hold", ["掘"] = "dig", ["掙"] = "to earn; to make (money); struggle", ["掛"] = "to hang; to put up; to suspend", ["掞"] = "easy; quiet", ["掠"] = "plunder", ["採"] = "to pick; to pluck; to collect; to select; to choose; to gather", ["探"] = "to explore; to search out; to scout; to visit", ["掣"] = "pull; obstruct; hinder; draw", ["掤"] = "arrow-quiver", ["接"] = "to extend; to connect; to receive; to join", ["控"] = "to accuse; to charge; to control; to sue", ["推"] = "push; refuse (responsibility); shove", ["掩"] = "cover up; to surprise", ["措"] = "put in order; arrange; administer; execute; take action on", ["掫"] = "beat the night watches; grasp", ["掮"] = "carry on shoulders", ["掯"] = "take by force", ["掰"] = "to break with both hands", ["掱"] = "pickpocket", ["掽"] = "meet with; to bump", ["掾"] = "official", ["揀"] = "choose; pick up", ["揃"] = "shear", ["揄"] = "draw out; let hanging", ["揅"] = "grind fine; study; research", ["揆"] = "consider; estimate", ["揉"] = "knead; massage; rub", ["揌"] = "to shake", ["揍"] = "beat up; break to pieces", ["揎"] = "pull up sleeves; strike with fists", ["描"] = "depict; to trace (a drawing); to copy; to touch up", ["提"] = "to carry; to lift; to put forward; (upwards character stroke); lifting (brush stroke in painting); to mention; carry (suspended)", ["插"] = "insert; stick in; pierce; to take part in; to interfere; to interpose", ["揕"] = "to hit; to thrust", ["揖"] = "greet (by raising the joined hands)", ["揗"] = "strike, hit with hand; tap", ["揚"] = "hurl; to raise; to scatter", ["換"] = "change; exchange", ["揜"] = "cover up; to surprise", ["揝"] = "to hold in the hand, to grasp; to wring", ["揠"] = "eradicate; pull up", ["握"] = "shake hands; to hold; to grasp", ["揣"] = "estimate; guess; figure; surmise; put into", ["揥"] = "get rid of; ivory hairpin", ["揩"] = "wipe", ["揪"] = "to clutch", ["揫"] = "gather; collect", ["揭"] = "lift off (a cover); divulge", ["揮"] = "scatter; wield; wipe away", ["揰"] = "poke out; punch; push into", ["揲"] = "sort out divining stalks", ["援"] = "to help; to assist; to aid", ["揵"] = "carry", ["揹"] = "carry on one's back", ["搆"] = "implicate; reach to", ["搉"] = "consult; knock; beat", ["搊"] = "pluck (stringed instrument)", ["搌"] = "bind; wipe", ["損"] = "to damage; injure; to lose; to harm", ["搎"] = "to rub with the hand; to stroke", ["搏"] = "fight; combat; seize", ["搐"] = "lead; pull", ["搒"] = "boat; to whip", ["搓"] = "to rub or roll between the hands or fingers; to twist", ["搔"] = "disturb; to scratch", ["搕"] = "to strike; to take in the hand", ["搖"] = "shake; to rock", ["搗"] = "pound; beat; hull; attack; disturb; stir", ["搘"] = "prop up", ["搜"] = "to search", ["搞"] = "to do; to make; to go in for; to set up; to get hold of; to take care of", ["搠"] = "daub; thrust", ["搡"] = "push back; push over", ["搢"] = "shake; stick into; strike", ["搤"] = "hold (strategic position)", ["搥"] = "beat with the fist; to hammer", ["搦"] = "take hold", ["搧"] = "to fan", ["搨"] = "make rubbing", ["搪"] = "keep out", ["搬"] = "remove; transport; move; shift", ["搭"] = "build (scaffolding); take (boat, train); hang; join; match; take passage", ["搯"] = "fish out (from pocket)", ["搰"] = "dig; mix", ["搴"] = "seize", ["搵"] = "press with finger; wipe", ["搶"] = "fight over; to rush; to scramble; to grab; to rob; to snatch; against wind", ["搷"] = "to beat; to winnow", ["搽"] = "apply (ointment, powder); smear; paint on", ["搾"] = "oppress; to extract", ["搿"] = "to hug", ["摀"] = "(v) seal up; muffle", ["摁"] = "to press (with finger)", ["摎"] = "to strangle; to inquire into", ["摑"] = "to slap", ["摒"] = "arrange; drive off; expel", ["摔"] = "throw on ground; to fall", ["摘"] = "to borrow; to pick (flowers, fruit); to pluck; to take; to select", ["摙"] = "to transport; to remove to take", ["摛"] = "to spread (fame); wield (pen)", ["摜"] = "fling; smash", ["摞"] = "pile up", ["摟"] = "to hug; to embrace; graft (money); solicit; to gather; to collect", ["摠"] = "general; in every case; to hold", ["摦"] = "wide; broad", ["摧"] = "break; destroy; devastate; ravage; repress", ["摩"] = "rub", ["摭"] = "pick up; to select", ["摮"] = "to rattle; to shake; to smite", ["摯"] = "sincere", ["摰"] = "to seize with the hand; to grasp. to advance. to breakdown", ["摲"] = "to cut down; mow", ["摳"] = "dig out (with finger); stingy", ["摴"] = "dice; gambling; to release", ["摶"] = "roll round with hand", ["摷"] = "to knock; strike", ["摸"] = "feel with the hand; to touch; to stroke; to grope; to feel (one's pulse); imitate; copy", ["摹"] = "imitate; copy", ["摺"] = "folded document; to fold", ["摻"] = "to grasp; mix", ["摽"] = "to fall; sign; to signal", ["撂"] = "to leave (it)", ["撅"] = "break off; stick up (as a tail)", ["撇"] = "(downwards-left curved character stroke); throw; cast away", ["撈"] = "fish up", ["撊"] = "valiant; wrathful", ["撋"] = "to rub between the hands", ["撏"] = "pull out, pluck; take hold of", ["撐"] = "support; prop-up; to pole a boat; to open; to overfill", ["撒"] = "to scatter; let go", ["撓"] = "to scratch", ["撕"] = "to tear", ["撙"] = "regulate; restrain", ["撚"] = "twirl (in the fingers)", ["撝"] = "wave, brandish; modest, humble", ["撞"] = "to hit; to strike; to meet by accident; to run into; to bump against; to bump into", ["撟"] = "correct", ["撢"] = "to dust", ["撣"] = "brush away; dust off; a brush or duster; to dust", ["撤"] = "remove; take away; withdraw", ["撥"] = "to push aside; to appropriate (money); to move; to set aside; group; batch; to poke; to stir", ["撦"] = "to tear; pull at", ["撩"] = "stitch; take; tease; lift up (skirt); pull up (sleeve)", ["撫"] = "to comfort; touch gently with hand", ["撬"] = "to lift", ["播"] = "sow; scatter; spread; broadcast", ["撮"] = "bring together; little bit; shovel; gather up; pick", ["撰"] = "compose; compile", ["撱"] = "clip; shorten; throw away", ["撲"] = "rush on", ["撳"] = "to press", ["撻"] = "flog; rapid", ["撼"] = "shake; to incite", ["撾"] = "beat", ["撿"] = "pick up; collect; gather", ["擁"] = "(v) gather round; rush in; crowd; throng; to hold; crowded; to support", ["擂"] = "beat (a drum); beat; to grind", ["擄"] = "take captive", ["擅"] = "usurp; without authority", ["擇"] = "pick over; to select; to choose; to pick", ["擉"] = "to pierce; to break through", ["擊"] = "to hit; to strike; to break", ["擋"] = "arrange; put in order; hinder; resist; obstruct; cover; keep off; a cover; to block (a blow); to get in the way of", ["操"] = "to hold; to drill; to exercise; to act; to do; to take in hand; to keep; to manage", ["擎"] = "to raise (hand)", ["擐"] = "pass through; to get into (armour)", ["擒"] = "capture", ["擔"] = "to carry on shoulder; to undertake; shoulder pole; burden; load; responsibility; picul (133.33 lbs.)", ["擖"] = "scrape", ["擗"] = "to beat the breast", ["擘"] = "thumb; break; tear; pierce; split; to analyse", ["據"] = "according to; to act in accordance with; to depend on; to seize; to occupy", ["擠"] = "crowded; to squeeze", ["擢"] = "pull out; select", ["擣"] = "stir; to pound", ["擤"] = "blow nose", ["擦"] = "to wipe; to erase; rubbing (brush stroke in painting); to clean; to polish", ["擩"] = "to stain, to dye", ["擫"] = "to press down", ["擬"] = "plan to", ["擭"] = "trap", ["擯"] = "reject; expel; discard; exclude; renounce", ["擰"] = "mistake; to twist; stubborn; to pinch; wring", ["擱"] = "to place", ["擲"] = "toss", ["擴"] = "enlarge", ["擷"] = "collect", ["擸"] = "to hold, to grasp; to hold the hair; to pull at", ["擺"] = "pendulum; to place; to display; to swing; to oscillate; to show; to move; to exhibit", ["擻"] = "shake; trembling", ["擽"] = "tickle; ticklish, funny", ["擾"] = "disturb", ["擿"] = "to select, to pick out from, to discard", ["攀"] = "climb up; pull", ["攃"] = "preceding", ["攄"] = "set forth; to spread", ["攆"] = "expel", ["攏"] = "collect; draw near to", ["攔"] = "cut off; hinder", ["攖"] = "oppose; to attack", ["攘"] = "throw into confusion", ["攙"] = "assist by the arm; mix; support; sustain", ["攛"] = "rush; stir up; throw; fling; hurry; rage", ["攜"] = "to carry; to take along; to bring along; to hold (hands)", ["攝"] = "assist; collect; absorb", ["攢"] = "collect; hoard; bring together", ["攣"] = "twisted; bent; crooked; cramped", ["攤"] = "spread out; vendor's stand", ["攩"] = "hinder; resist", ["攪"] = "to disturb; to annoy; to mix; to stir", ["攫"] = "seize (bird or animal)", ["攬"] = "monopolize; seize", ["攮"] = "to fend off; to stab", ["支"] = "(a measure word); to support; to sustain; to erect; to raise; branch; division; to draw money", ["攲"] = "up; uneven", ["收"] = "to receive; to accept; to collect; in care of (used on address line after name)", ["攷"] = "examine", ["攸"] = "distant, far; adverbial prefix", ["改"] = "to change; to alter; to transform; to correct", ["攻"] = "to attack; to accuse; to study", ["放"] = "to release; to free; to let go; to put; to place; to let out", ["政"] = "political; politics; government", ["敁"] = "to weigh in the hand, to estimate; to shake", ["敃"] = "strong; robust; vigorous", ["故"] = "happening; instance; reason; cause; deceased; old", ["效"] = "effect; efficacy; imitate", ["敉"] = "peaceful", ["敏"] = "keen; sensitive", ["救"] = "to save; to assist; to rescue", ["敔"] = "(ancient mus. instr.)", ["敕"] = "imperial orders", ["敖"] = "ramble", ["敗"] = "be defeated; to defeat; loss", ["敘"] = "narrate", ["教"] = "teach; teaching; religion", ["敜"] = "to fill up or cover up a hole", ["敝"] = "(polite) my; poor; ruined; shabby; worn out; defeated", ["敞"] = "spacious; uncovered", ["敢"] = "dare", ["散"] = "adjourn; scatter; leisurely; loosen; powdered medicine; to scatter; to come loose", ["敦"] = "kindhearted; place name", ["敧"] = "to pick up thing with chopsticks or pincers.", ["敪"] = "to weigh; cut; come without being invited", ["敬"] = "to respect; to venerate; to salute; to offer", ["敲"] = "extort; knock; to strike; to knock (at a door); to hit", ["敳"] = "able (in administrating)", ["整"] = "exactly; in good order; whole; complete; entire; in order; orderly", ["敵"] = "enemy; match", ["敷"] = "announce; apply", ["數"] = "number; figure; to count; to calculate; several; frequently; repeatedly", ["敹"] = "keep tidy and repaired; sew", ["敺"] = "expel; urge on", ["敻"] = "''surname''", ["敿"] = "tie up (laces)", ["斁"] = "be weary of", ["斂"] = "arrange; control oneself; gather", ["斃"] = "die violently", ["文"] = "language; culture; writing; formal; literary; gentle", ["斌"] = "ornamental; refined", ["斐"] = "''phonetic''; ''surname''; elegant", ["斑"] = "variegated", ["斒"] = "variegated; striped; marbled", ["斕"] = "variegated; particoloured", ["斗"] = "ladle; dipper; small; big; stars", ["料"] = "material; stuff; grain; feed; to expect; to anticipate; to guess", ["斛"] = "5 pecks (M)", ["斜"] = "slanting", ["斝"] = "jade cup with ears", ["斞"] = "a stack of grain; a measure of 16 dou3", ["斟"] = "pour; to deliberate", ["斠"] = "to measure", ["斡"] = "to turn", ["斢"] = "to plunder", ["斤"] = "catty; weight equal to 0.5 kg", ["斥"] = "blame; reprove; reprimand", ["斧"] = "hatchet", ["斨"] = "axe", ["斫"] = "chop; carve wood", ["斬"] = "behead; chop", ["斮"] = "cut off", ["斯"] = "''phonetic''; this", ["新"] = "new; newly; meso- (chem.)", ["斲"] = "chop; carve wood", ["斷"] = "to break; to judge; absolutely; decidedly", ["斸"] = "cut", ["方"] = "square; quadrilateral; place; region; direction; side; method; way; prescription; power; upright; just", ["於"] = "in; at; to; from; by; than; out of; ''surname''", ["施"] = "distribute (alms); to do; to execute; to carry out", ["斿"] = "scallops along lower edge of flag", ["旁"] = "beside; one side; other; side; self", ["旂"] = "flag", ["旃"] = "felt; silken banner", ["旄"] = "aged; banner decorated with animal's tail", ["旅"] = "trip; travel", ["旆"] = "pennant; streamer", ["旋"] = "lathe; specially for an occasion; revolve", ["旌"] = "banner; make manifest", ["族"] = "race; nationality; ethnicity; clan", ["旐"] = "banner", ["旒"] = "tassel", ["旓"] = "serrated edges on a Chinese flag", ["旗"] = "banner; flag", ["旛"] = "pennant", ["旝"] = "banner, flag, streamer; insignia", ["旟"] = "banner with falcons; mussed up hair", ["旡"] = "choke on something eaten", ["既"] = "already; since; both... (and...)", ["日"] = "day; sun; date; day of the month; Japan (abbrev.)", ["旦"] = "dawn; morning; day-break; day", ["旨"] = "imperial decree; purport; aim; purpose", ["早"] = "early; morning", ["旬"] = "ten days; ten years", ["旭"] = "dawn; rising sun", ["旰"] = "sunset; evening", ["旱"] = "drought; dry", ["旴"] = "dawn", ["旺"] = "prosperous; flourishing; to prosper; to flourish", ["旻"] = "heaven", ["旼"] = "gentle and affable", ["旽"] = "morning sun, sunrise", ["昀"] = "sun light; used in personal name", ["昂"] = "high; soaring; raise; lift; expensive; to raise one's head", ["昃"] = "afternoon; decline", ["昄"] = "great; expansive", ["昆"] = "descendant; elder brother", ["昇"] = "ascend; peaceful", ["昉"] = "dawn; to begin", ["昊"] = "clear summer sky; vast", ["昌"] = "prosperous; flourish", ["明"] = "clear; bright; to understand; next; the Ming dynasty", ["昏"] = "muddle-headed; twilight; to faint; to lose consciousness", ["昑"] = "bright", ["易"] = "change; easy; simple", ["昔"] = "past; former", ["昕"] = "dawn", ["昜"] = "to open out, to expand; bright, glorious", ["昝"] = "(a dual pronoun) you and me, we two", ["星"] = "star; satellite; small amount", ["映"] = "reflect; shine", ["昡"] = "long day; extended; relaxed", ["昤"] = "sunshine", ["春"] = "spring (time); gay; joyful; youthful; love; lust; life", ["昧"] = "conceal; dark", ["昨"] = "yesterday", ["昫"] = "warm", ["昭"] = "illustrious; manifest", ["是"] = "be; yes; this", ["昱"] = "bright light", ["昳"] = "the declining sun in the west", ["昴"] = "the Pleiades", ["昵"] = "familiar; to approach", ["昶"] = "bright; long day", ["昺"] = "bright; glorious", ["晁"] = "''surname''", ["時"] = "o'clock; time; when; hour; season; period", ["晃"] = "sway; to shade; dazzle", ["晅"] = "light of the sun; to dry in the sun", ["晉"] = "to advance; to be promoted; name of a dynasty and state", ["晌"] = "around noon", ["晏"] = "late; quiet", ["晒"] = "to sun", ["晚"] = "evening; night; late", ["晛"] = "to appear (of sun)", ["晜"] = "descendant; elder brother", ["晝"] = "daytime", ["晞"] = "dawn; dry in the sun", ["晟"] = "brightness of sun; splendour", ["晡"] = "3–5 p.m.", ["晢"] = "bright", ["晤"] = "meet (socially)", ["晥"] = "Anhui province", ["晦"] = "dark; night; unlucky", ["晨"] = "morning; dawn; daybreak", ["晬"] = "1st birthday of a child", ["普"] = "general; popular; everywhere; universal", ["景"] = "bright; circumstance; scenery", ["晰"] = "understanding", ["晴"] = "clear; fine (weather)", ["晶"] = "crystal", ["晷"] = "sunlight; time; sundial", ["智"] = "wisdom; knowledge", ["晾"] = "to dry in the air", ["暄"] = "genial and warm", ["暇"] = "leisure", ["暈"] = "dizzy; ring around moon or sun; confused; giddy; faint; swoon; lose consciousness; pass out", ["暉"] = "bright; radiant", ["暋"] = "strong; vigorous", ["暌"] = "in opposition to; separated from", ["暍"] = "hot", ["暐"] = "the bright shining of the sun", ["暑"] = "heat; hot weather; summer heat", ["暔"] = "name of a country", ["暖"] = "warm; toasty", ["暗"] = "dark; gloomy; hidden; secret", ["暘"] = "rising sun; sunshine", ["暝"] = "(''Southern Min'') night", ["暠"] = "daybreak; bright and brilliant", ["暢"] = "smooth; fluent; joyful; happy", ["暨"] = "and; reach to; the end", ["暫"] = "temporary; temporarily", ["暮"] = "evening; dusk; sunset; (''of time'') late; closing", ["暱"] = "familiar; to approach", ["暲"] = "bright; to rise (of sun)", ["暴"] = "sudden; violent; cruel; to show or expose; to injure", ["暵"] = "dry; hot", ["暸"] = "bright, clear", ["暹"] = "Siam", ["暻"] = "bright", ["暾"] = "sun above the horizon", ["曀"] = "obscure; sun hidden by clouds", ["曄"] = "bright light; to sparkle", ["曆"] = "calendar", ["曇"] = "dark clouds", ["曈"] = "sun about to rise", ["曉"] = "dawn; to know; to tell (someone something)", ["曏"] = "formerly", ["曖"] = "obscure; clandestine", ["曙"] = "dawn; the dawn of a new epoch (metaphor)", ["曚"] = "before day break", ["曛"] = "twilight; sunset", ["曜"] = "dazzle; glorious", ["曝"] = "to air; to sun", ["曠"] = "waste; wilderness", ["曦"] = "light of day", ["曨"] = "bright", ["曩"] = "in former times", ["曬"] = "to sun", ["曰"] = "to speak; to say", ["曲"] = "tune; song; bent; crooked; wrong", ["曳"] = "drag", ["更"] = "to change; more; even more; further; still; still more", ["曷"] = "why; how; when; what; where", ["書"] = "book; letter", ["曹"] = "a company; a class; a generation; ''surname''", ["曼"] = "handsome; large; long", ["曾"] = "(refers to something that happened previously); already; at some time in the past; before; once; great-grand (father)", ["替"] = "to substitute for; to take the place of; to replace; for; on behalf of; to stand in for", ["最"] = "(the) most; -est", ["朁"] = "if, supposing, nevertheless", ["會"] = "to meet; to gather; group; to assemble; association; be able to; be likely to; to balance an account; accounting", ["朅"] = "to leave; abandon", ["月"] = "moon; month", ["有"] = "to have; there is; there are; to exist; to be", ["朊"] = "protein", ["朋"] = "friend", ["服"] = "clothes; dress; garment; submit; take (medicine)", ["朏"] = "crescent moon", ["朐"] = "''surname''", ["朓"] = "scorch; western moon before sunrise", ["朔"] = "beginning; first day of lunar month", ["朕"] = "I; we (imperial use); subtle", ["朗"] = "clear; bright", ["朘"] = "wane, reduce, contract; exploit", ["望"] = "hope; expect; to visit; to gaze (into the distance); look towards; towards", ["朝"] = "morning; to face; towards; facing; direct; a dynasty; the imperial court; Korea, esp. N. Korea (abbrev.)", ["期"] = "a period of time; phase; stage; (used for issue of a periodical, courses of study); time; term; period; to hope", ["朠"] = "colour of the moon", ["朢"] = "15th day of month (lunar calendar)", ["朣"] = "light from the rising moon", ["朦"] = "deceive; indistinct", ["朧"] = "rising moon", ["木"] = "tree; wood", ["未"] = "not yet; 8th [[earthly branch]]; 1–3 p.m.", ["末"] = "end; final stage; latter part", ["本"] = "roots or stems of plants; origin; source; this; the current; root; foundation; basis; (a measure word)", ["札"] = "short note", ["朱"] = "''surname''; vermilion", ["朳"] = "tree", ["朴"] = "Celtis sinensis var. japonica", ["朵"] = "''classifier for flowers''", ["机"] = "machine; opportunity; secret", ["朽"] = "rotten", ["朾"] = "to bump", ["朿"] = "stab", ["杅"] = "bowl; tub", ["杆"] = "measure for guns; pole", ["杇"] = "to plaster; whitewash", ["杈"] = "branches of a tree; fork of a tree; pitchfork", ["杉"] = "(pine); fir", ["杌"] = "low stool", ["李"] = "''surname''; plum", ["杏"] = "apricot", ["材"] = "material", ["村"] = "village", ["杓"] = "ladle; (star)", ["杕"] = "lone-standing tree", ["杖"] = "cane, walking stick", ["杗"] = "ridge-pole in roof", ["杙"] = "post for tethering animals", ["杜"] = "fabricate; restrict; to prevent", ["杝"] = "(tree)", ["杞"] = "(willow); name of a feudal state", ["束"] = "bunch; (a measure word); to bind; to control", ["杠"] = "carrying pole; horizontal bar; footbridge", ["杪"] = "the limit; tip of branch", ["杭"] = "''surname''; Hangzhou", ["杯"] = "drinkware; cup; glass", ["杰"] = "hero; heroic", ["東"] = "east", ["杲"] = "high; sun shines brightly; to shine", ["杳"] = "dark and quiet; disappear", ["杴"] = "(iron) shovel", ["杵"] = "pestle; to poke", ["杶"] = "(tree)", ["杸"] = "to kill; a spear", ["杻"] = "handcuffs; red apricot", ["杼"] = "shuttle of a loom", ["松"] = "pine", ["板"] = "board; plank; plate; slab", ["枉"] = "in the wrong; in vain", ["枋"] = "Santalum album", ["枌"] = "(tree)", ["析"] = "to separate; to divide; to analyse", ["枒"] = "the coconut tree; rim", ["枓"] = "square base for Chinese flagstaff", ["枕"] = "pillow", ["林"] = "woods; forest", ["枘"] = "tenon; tool handle", ["枙"] = "tree knot", ["枚"] = "''classifier for small objects''", ["果"] = "fruit; result", ["枝"] = "branch; (a measure word)", ["枟"] = "wood streaks", ["枯"] = "withered; dried up", ["枰"] = "chess-like game", ["枲"] = "male nettle-hemp", ["枳"] = "(orange); hedge thorn", ["枴"] = "cane", ["枵"] = "empty; hollow of a tree", ["架"] = "to support; frame; rack; framework; measure word for planes, large vehicles, radios, etc.", ["枷"] = "cangue", ["枸"] = "{{taxlink|Hovenia acerba|species}}; ''[[Piper betle]]''", ["枹"] = "{{taxlink|Quercus glandulifera|species}}", ["枻"] = "oar; stand for correcting a bow", ["柁"] = "main beam of roof", ["柂"] = "(tree)", ["柃"] = "{{taxlink|Eurya japonica|species}}", ["柄"] = "authority; handle; hilt", ["柅"] = "(tree); to stop", ["柈"] = "plate", ["柎"] = "calyx of flower", ["柏"] = "cypress; cedar; ''surname''", ["某"] = "(used before measure word and noun) some; (a) certain; so and so", ["柑"] = "large tangerine", ["柒"] = "seven (fraud-proof); (''Cantonese'') penis", ["染"] = "to catch (a disease); dye", ["柔"] = "soft", ["柘"] = "{{taxlink|Cudrania tricuspidata|species}}", ["柙"] = "cage; pen; scabbard", ["柚"] = "pomelo; shaddock", ["柜"] = "{{taxlink|Salix multinervis|species}}; cupboard; cabinet; wardrobe", ["柝"] = "watchman's rattle", ["柞"] = "{{vern|jolcham oak}} ({{taxlink|Quercus serrata|species}})", ["柟"] = "{{taxlink|Machilus nanmu|species}}", ["柢"] = "foundation; root", ["柣"] = "threshold", ["柤"] = "(hawthorn); {{taxlink|Chaenomeles japonica|species}}", ["查"] = "to research; to check; to investigate; to examine; to refer to; to search", ["柩"] = "bier", ["柬"] = "card; note; letter", ["柮"] = "wood scraps", ["柯"] = "handle of axe; stem", ["柰"] = "crab-apple; how can one help", ["柱"] = "pillar", ["柲"] = "weapon handle of bamboo strips", ["柳"] = "willow", ["柴"] = "firewood", ["柵"] = "fence", ["柶"] = "spoon; ladle", ["柷"] = "(mus. instr.)", ["柸"] = "to hate; bear grudge", ["柺"] = "old man's staff", ["柿"] = "persimmon", ["栒"] = "cross bar", ["栓"] = "bottle stopper; wooden pin; plug", ["栔"] = "carve; cut", ["栖"] = "to roost; to inhabit; to stay; habitat", ["栗"] = "chestnut", ["栝"] = "{{taxlink|Juniperus chinensis|species}}; measuring-frame", ["栟"] = "{{taxlink|Trachycarpus excelsa|species}}", ["校"] = "school; proofread; to check; to compare", ["栩"] = "{{taxlink|Quercus serrata|species}} ({{vern|jolcham oak}})", ["株"] = "(a measure word, use with plants); trunk of tree", ["栫"] = "fence; palisade", ["栭"] = "tree mushroom", ["栱"] = "post", ["栲"] = "mangrove", ["栳"] = "basket", ["栵"] = "hedge", ["核"] = "nuclear; atomic; stone (of fruit)", ["根"] = "radical (chem.); root; basis", ["栻"] = "(tree)", ["格"] = "frame; rule", ["栽"] = "to force; to stick in; to plant", ["桀"] = "(emperor of Xia dynasty); cruel", ["桁"] = "pole plate; purlin; ridge-pole", ["桂"] = "''[[Cinnamomum cassia]]''; Guangxi Autonomous Region (abbrev.)", ["桃"] = "peach", ["桄"] = "rung of ladder; {{taxlink|Arenga saccharifera|species}}", ["桅"] = "mast", ["框"] = "frame; door frame", ["案"] = "(legal) case; incident; record; file; table", ["桉"] = "{{taxlink|Eucalyptus globulus|species}}", ["桋"] = "(tree)", ["桌"] = "table", ["桎"] = "fetters", ["桐"] = "tung tree", ["桑"] = "mulberry tree", ["桓"] = "''surname''; {{taxlink|Sapindus mukurosi|species}}", ["桔"] = "tangerine; ''[[Platycodon grandiflorus]]''", ["桫"] = "''[[Stewartia pseudocamellia]]''", ["桭"] = "eaves; space between two pillars", ["桮"] = "cup", ["桯"] = "bed side stand", ["桲"] = "quince", ["桴"] = "beam; rafter", ["桶"] = "pail; bucket; bin; barrel", ["桷"] = "rafter; {{taxlink|Malus toringo|species}}", ["桹"] = "(palm)", ["桿"] = "stick; pole", ["梁"] = "beam of roof; bridge", ["梃"] = "a club (weapon)", ["梅"] = "plum flower", ["梆"] = "watchman's rattle", ["梊"] = "squeeze out of; extract", ["梏"] = "braces (med.); fetters; manacles", ["梐"] = "stockade", ["梓"] = "{{taxlink|Catalpa kaempferi|species}}", ["梔"] = "gardenia", ["梗"] = "stem", ["梜"] = "chopstick", ["條"] = "measure word for long, thin things (i.e. ribbon, river, etc.); a strip; item; article", ["梟"] = "brave; owl; {{taxlink|Strix uralensis|species}}", ["梠"] = "beam at the eaves", ["梡"] = "(tree); stand for sacrifice", ["梢"] = "tip of branch", ["梧"] = "{{taxlink|Sterculia platanifolia|species}}", ["梨"] = "pear", ["梩"] = "basket for removing earth; spade", ["梭"] = "shuttle", ["梯"] = "ladder", ["械"] = "tools", ["梱"] = "movable door sill", ["梲"] = "club (weapon); small pillar", ["梳"] = "comb", ["梴"] = "length (of a tree or beam); long", ["梵"] = "Brahma; Sanskrit", ["棄"] = "abandon; relinquish; to discard; to throw away", ["棉"] = "cotton", ["棋"] = "any chess-like game or game requiring strategy", ["棍"] = "stick", ["棐"] = "to strengthen; ''[[Torreya grandis]]''", ["棑"] = "raft; shield; stern of junk", ["棒"] = "a stick; club or cudgel; smart; capable; strong", ["棕"] = "palm tree; palm fibre; brown colour", ["棖"] = "door post", ["棗"] = "jujube", ["棘"] = "thorns", ["棚"] = "shed", ["棜"] = "tray for carrying sacrificial meats", ["棟"] = "roof beam", ["棠"] = "cherry-apple", ["棣"] = "{{taxlink|Kerria japonica|species}}", ["棧"] = "warehouse", ["棨"] = "tally for going through a pass", ["棪"] = "(tree)", ["棫"] = "(oak); thorny shrub", ["棬"] = "bowl", ["森"] = "of trees, many", ["棯"] = "jujube tree", ["棰"] = "flog; whip", ["棱"] = "corner; square beam", ["棲"] = "to roost; to inhabit; to stay; habitat", ["棳"] = "small pillars that support the roof, those which rest on the main beam", ["棵"] = "''classifier for plants''", ["棸"] = "''surname''", ["棹"] = "table", ["棺"] = "coffin", ["棻"] = "kind of wood from which perfume is made", ["棼"] = "beams in roof; confused", ["椄"] = "to graft", ["椅"] = "chair", ["椈"] = "''[[Fagus sylvatica]]''", ["椊"] = "to fit a handle into a socket; a plug or cork", ["椋"] = "fruit", ["椌"] = "(wooden mus. instr.)", ["植"] = "to plant", ["椎"] = "spine; a hammer", ["椏"] = "forking branch", ["椐"] = "{{taxlink|Zelkowa acuminata|species}}", ["椑"] = "''[[Fagus sylvatica]]''", ["椒"] = "pepper", ["椓"] = "beat", ["椗"] = "(plant); anchor", ["椪"] = "{{taxlink|Machilus nanmu|species}}, variety of everg", ["椳"] = "the pivots, at the top and bottom of a Chinese door, on which the door turns", ["椴"] = "''[[Hibiscus syriacus]]''", ["椵"] = "(grapefruit)", ["椷"] = "a box; letters", ["椸"] = "clothes-horse", ["椹"] = "fruit of mulberry", ["椽"] = "beam; rafters", ["椿"] = "tree of heaven; {{taxlink|Cedrela chinensis|species}}; father", ["楀"] = "''surname''; (tree)", ["楂"] = "Chinese quince; hawthorn; fell trees; raft; to hew", ["楄"] = "basket-couch in coffin", ["楅"] = "ox yoke placed on the horns", ["楊"] = "''surname''; poplar", ["楎"] = "clothes-horse", ["楓"] = "maple", ["楔"] = "to wedge; wedge", ["楗"] = "door lock", ["楘"] = "ornaments on chariot-shaft", ["楙"] = "{{taxlink|Cydonia japonica|species}}", ["楚"] = "distinct; clear; orderly; pain; suffering; ancient place name; ''surname''", ["楛"] = "broken utensil; (tree)", ["楝"] = "{{taxlink|Melia japonica|species}}", ["楞"] = "corner; square beam", ["楟"] = "tree", ["楠"] = "{{taxlink|Machilus nanmu|species}}", ["楢"] = "{{taxlink|Quercus glandulifera|species}}", ["楣"] = "lintel", ["楥"] = "to turn on a lathe", ["楦"] = "block (hat); stretch (shoe)", ["楨"] = "evergreen shrub", ["楩"] = "(tree)", ["楪"] = "small dish; window", ["楫"] = "oar; to row", ["楬"] = "a peg; tally; score", ["業"] = "business; occupation; study", ["楮"] = "{{taxlink|Broussonetia kasinoki|species}}", ["楯"] = "draw forth; horizontal railing", ["楰"] = "(tree)", ["極"] = "utmost; pole; extreme; to reach the limit", ["楷"] = "norm; model; (writing)", ["楸"] = "Catalpa; {{taxlink|Mallotus japonicus|species}}", ["楹"] = "pillar", ["概"] = "general; approximate", ["榃"] = "raised path between fields", ["榆"] = "elm", ["榎"] = "(evergreen shrub); {{taxlink|Celtis sinensis|species}}", ["榔"] = "(tree)", ["榕"] = "banyan tree; {{taxlink|Ficus wightiana|species}}", ["榖"] = "paper mulberry tree", ["榛"] = "hazel tree; {{taxlink|Corylus heterophylla|species}}", ["榜"] = "a notice or announcement; a list of names; public roll of successful examinees", ["榠"] = "Chinese quince", ["榡"] = "{{taxlink|Quercus dentata|species}}", ["榤"] = "a stump on which chickens roost", ["榥"] = "screen", ["榦"] = "tree trunk", ["榧"] = "''[[Torreya grandis]]''", ["榨"] = "salted vegetable; to extract", ["榪"] = "headboard", ["榫"] = "tenon and mortise", ["榭"] = "pavilion", ["榮"] = "glory; honoured", ["榱"] = "small rafter", ["榴"] = "pomegranate", ["榷"] = "footbridge; toll, levy; monopoly", ["榻"] = "couch", ["榼"] = "{{taxlink|Pusaetha scandens|species}}", ["榾"] = "scraps of wood", ["榿"] = "alder", ["槁"] = "dry; rotten (as wood)", ["槃"] = "big; wooden tray", ["槊"] = "long lance", ["構"] = "''[[Broussonetia papyrifera]]''; to construct; to form; to make up; to compose", ["槌"] = "hammer; mallet; pestle", ["槍"] = "gun; firearm; rifle; spear", ["槎"] = "a raft made of bamboo or wood; to fell trees; to hew", ["槐"] = "''[[Styphnolobium japonicum]]'' (syn. {{taxlink|Sophora japonica|species}})", ["槓"] = "carrying pole; horizontal bar", ["槔"] = "water pulley", ["槢"] = "a hard wood", ["槥"] = "coffin", ["槧"] = "wooden tablet; edition", ["槨"] = "outer coffin", ["槱"] = "ritual bonfire", ["槲"] = "oak; {{taxlink|Quercus dentata|species}}", ["槳"] = "oar; paddle", ["槻"] = "zelkova tree", ["槼"] = "{{taxlink|Elaeocarpus japonica|species}}", ["槽"] = "manger; trough; groove", ["槾"] = "(tree)", ["槿"] = "''[[Hibiscus syriacus]]''; transient", ["樁"] = "item; stump; stake; pile", ["樂"] = "music; happy; laugh; cheerful", ["樅"] = "{{taxlink|Abies firma|species}}", ["樊"] = "cage; fence", ["樏"] = "mountain-climbing shoes", ["樑"] = "beam of roof", ["樓"] = "house with more than 1 story; storied building; floor", ["樕"] = "shrub", ["樗"] = "[[Simaroubaceae]]", ["標"] = "the topmost branches of a tree; surface; sign; to mark; (outward) sign; indication; prize; award; bid", ["樛"] = "''surname''; hang down", ["樞"] = "hinge; pivot", ["樟"] = "camphor; ''[[Cinnamomum camphora]]''", ["樠"] = "elm; gum", ["模"] = "imitate; model; norm; pattern", ["樣"] = "manner; pattern; way; appearance; shape", ["樧"] = "{{taxlink|Zanthoxylum ailanthoides|species}}", ["樲"] = "acid variety of jujube plum", ["樴"] = "stake; picket", ["樵"] = "firewood; gather wood", ["樸"] = "Pak or Park (Korean surname); plain and simple", ["樹"] = "tree", ["樺"] = "{{taxlink|Betula japonica|species}}", ["樽"] = "goblet; bottle; wine-jar", ["樾"] = "shade of trees", ["樿"] = "(wood)", ["橁"] = "{{taxlink|Fraxinus bungeana|species}}", ["橆"] = "without, apart from, none; a negative", ["橈"] = "bent or twisted piece of wood", ["橋"] = "bridge", ["橐"] = "sack; tube for blowing fire", ["橕"] = "a prop; a shore", ["橘"] = "tangerine", ["橙"] = "orange tree; the colour orange; orange", ["橚"] = "tall and straight (of trees)", ["橛"] = "a peg; low post", ["機"] = "machine; opportunity; secret", ["橡"] = "{{vern|jolcham oak}} ({{taxlink|Quercus serrata|species}})", ["橢"] = "ellipse", ["橤"] = "dangle; hang loosely", ["橧"] = "dwelling on top of wooden stakes", ["橫"] = "unruly; horizontal; across; (horizontal character stroke)", ["橿"] = "{{taxlink|Quercus glauca|species}}", ["檀"] = "sandal wood", ["檁"] = "cross-beam; ridge-pole", ["檄"] = "dispatch; order", ["檇"] = "wooden pestle or rammer", ["檉"] = "tamarisk", ["檍"] = "{{taxlink|Quercus glauca|species}}", ["檐"] = "eaves", ["檑"] = "logs rolled down in defence of city", ["檔"] = "cross-piece; official records; grade (of goods); file; records; shelves", ["檖"] = "(tree)", ["檗"] = "{{taxlink|Phyllodendron amurense|species}}", ["檜"] = "{{taxlink|Juniperus chinensis|species}}", ["檟"] = "{{taxlink|Thea sinensis|species}}", ["檠"] = "instrument for straightening bows", ["檢"] = "to check; to examine; to inspect", ["檣"] = "boom; mast", ["檨"] = "mango", ["檬"] = "lemon", ["檮"] = "blockhead; wood-block", ["檯"] = "table; desk", ["檴"] = "(tree)", ["檸"] = "lemon", ["檻"] = "door sill; threshold; bar; railing", ["櫂"] = "oar, scull, paddle; row", ["櫃"] = "cupboard; cabinet; wardrobe", ["櫌"] = "harrow", ["櫓"] = "sculling oar", ["櫚"] = "", ["櫛"] = "comb out; weed out, eliminate", ["櫜"] = "weapon case", ["櫝"] = "cabinet; case; casket", ["櫞"] = "''[[Citrus medica]]''", ["櫟"] = "{{vern|jolcham oak}} ({{taxlink|Quercus serrata|species}})", ["櫥"] = "a wardrobe; case; cabinet", ["櫧"] = "{{taxlink|Quercus glanca|species}}", ["櫨"] = "capital (of column); smoke tree", ["櫪"] = "stable", ["櫫"] = "{{taxlink|Zelkova acuminata|species}}", ["櫬"] = "{{taxlink|Sterculia plantanifolia|species}}; coffin", ["櫱"] = "shoots from an old stump", ["櫳"] = "bar; cage; gratings", ["櫸"] = "{{taxlink|Zeikowa acuminata|species}}", ["櫺"] = "lattice", ["櫻"] = "cherry", ["欃"] = "''[[Santalum album]]''; comet", ["欄"] = "fence; railing; hurdle; column; box (as on a document)", ["權"] = "authority; power; right", ["欐"] = "beam", ["欑"] = "gather", ["欒"] = "{{taxlink|Koelreuteria paniculata|species}}", ["欖"] = "olive", ["欙"] = "sedan", ["欞"] = "the lattice of a window a sill, a lintel", ["欠"] = "deficient; owe; to lack; yawn", ["次"] = "number of times; order; sequence; next; second(ary); (measure word)", ["欣"] = "happy", ["欨"] = "to blow or breathe upon to smile", ["欬"] = "cough; sound of laughter", ["欲"] = "desire; longing; appetite; wish", ["欷"] = "to sob", ["欹"] = "interjection", ["欺"] = "take unfair advantage of; to deceive; to cheat", ["欻"] = "suddenly; (onomat.); a crashing sound", ["欼"] = "drink", ["欽"] = "royal", ["款"] = "section; paragraph; funds", ["欿"] = "discontented with oneself", ["歁"] = "unsatisfied (of eating)", ["歃"] = "drink", ["歆"] = "pleased; moved", ["歇"] = "to rest", ["歈"] = "songs", ["歉"] = "apologize; deficient; to regret", ["歊"] = "vapour; steam", ["歌"] = "song", ["歎"] = "to sigh", ["歐"] = "''surname''; Europe", ["歔"] = "to snort", ["歕"] = "to puff; to spout", ["歙"] = "name of a district in Anhui", ["歛"] = "arrange; control oneself; gather", ["歜"] = "(person); angry", ["歟"] = "(interrog. part.)", ["歠"] = "sip; suck", ["歡"] = "joyous; happy; pleased", ["止"] = "to stop; prohibit; till", ["正"] = "just (right); main; upright; straight; correct; principle; Chinese 1st month of year", ["此"] = "this; these", ["步"] = "a step; a pace; walk; march; stages in a process", ["武"] = "martial; military", ["歧"] = "divergent; side road", ["歪"] = "askew", ["歲"] = "year; years old; (a measure word)", ["歷"] = "to experience; to undergo; to pass through; all; each; every; calendar", ["歸"] = "to go back; to return", ["歹"] = "bad; wicked; evil", ["死"] = "to die; impassable; uncrossable; inflexible; rigid", ["歾"] = "to end; to die", ["歿"] = "to end; to die", ["殀"] = "die young, die prematurely", ["殂"] = "die", ["殃"] = "calamity", ["殄"] = "exterminate", ["殆"] = "dangerous; perilous; endanger; almost; probably; only", ["殈"] = "damage egg so it does not hatch", ["殉"] = "buried with dead; die for a cause", ["殊"] = "unique", ["殍"] = "die of starvation", ["殑"] = "swoon", ["殖"] = "grow; reproduce", ["殗"] = "sickness; repeated", ["殘"] = "destroy; spoil; ruin; injure; cruel; oppressive; savage; incomplete; disabled", ["殙"] = "to die by taking poison", ["殛"] = "put to death", ["殞"] = "perish; die", ["殢"] = "fatigue", ["殣"] = "die of hunger", ["殤"] = "die prematurely", ["殪"] = "exterminate", ["殫"] = "entirely; to exhaust", ["殭"] = "stiff (corpse)", ["殮"] = "prepare body for coffin", ["殯"] = "a funeral; to encoffin a corpse; to carry to burial", ["殰"] = "an abortion; stillborn", ["殲"] = "annihilate", ["殳"] = "''surname''; spear", ["段"] = "paragraph; section; segment", ["殷"] = "''surname''; dynasty; flourishing; roll of thunder; dark red", ["殺"] = "to kill; to murder; to slaughter", ["殼"] = "shell", ["殽"] = "mixed; viands", ["殿"] = "palace hall", ["毀"] = "to destroy; to damage; to ruin", ["毅"] = "perseverance", ["毆"] = "brawl", ["毈"] = "infertile egg", ["毋"] = "no; not", ["母"] = "female; mother", ["每"] = "each; every", ["毒"] = "poison; narcotics", ["毓"] = "to nourish; to rear", ["比"] = "side by side; compare; to gesture; than; ratio", ["毖"] = "careful; prevent", ["毗"] = "adjoin; border", ["毘"] = "adjoin; border", ["毚"] = "cunning; artful", ["毛"] = "hair; fur; one tenth of a yuan or dollar", ["毧"] = "down; felt", ["毫"] = "hair; drawing brush; (in the) least; one thousandth", ["毬"] = "ball", ["毯"] = "blanket; rug", ["毳"] = "fine animal hair", ["毷"] = "restless", ["毽"] = "jianzi", ["毿"] = "long-haired; shaggy", ["氂"] = "tail; tuft of hair", ["氄"] = "down or fine hair", ["氅"] = "overcoat", ["氈"] = "felt", ["氉"] = "restless, melancholy", ["氏"] = "clan name; maiden name", ["氐"] = "foundation; on the whole; name of an ancient tribe", ["民"] = "the people; nationality; citizen", ["氓"] = "people; vagrant; ruffian", ["气"] = "air; anger; gas", ["氕"] = "protium", ["氖"] = "neon", ["氘"] = "deuterium", ["氙"] = "xenon", ["氚"] = "tritium", ["氛"] = "miasma; vapour", ["氝"] = "neon", ["氟"] = "fluorine", ["氡"] = "radon", ["氣"] = "gas; air; smell; weather; vital breath; to make someone angry; to get angry; to be enraged", ["氥"] = "xenon", ["氦"] = "helium", ["氧"] = "oxygen", ["氨"] = "ammonia", ["氪"] = "krypton", ["氫"] = "hydrogen", ["氬"] = "argonium", ["氮"] = "nitrogen", ["氯"] = "chlorine", ["氰"] = "cyanogen; ethane dinitrile", ["氳"] = "heavy atmosphere", ["水"] = "water; river", ["永"] = "forever; always; perpetual(ly)", ["氾"] = "extensive; to overflow", ["氿"] = "mountain spring", ["汀"] = "sand-bank", ["汁"] = "juice", ["求"] = "to seek; to look for; to request; to demand; to beseech", ["汆"] = "boil for a short time", ["汊"] = "branching stream", ["汋"] = "to pour", ["汍"] = "shed tears", ["汎"] = "broad; vast; float; pan-", ["汐"] = "night tides; evening ebbtide", ["汔"] = "near", ["汕"] = "Swatow", ["汗"] = "perspiration; sweat", ["汛"] = "high water; sprinkle water", ["汜"] = "stream which returns after branching", ["汝"] = "thou", ["汞"] = "mercury", ["江"] = "river", ["池"] = "pond; reservoir", ["污"] = "dirt; filth", ["汧"] = "name of a river in Shangdong; marsh; float", ["汨"] = "name of a river", ["汩"] = "confused; extinguished", ["汪"] = "expanse of water; ooze; barking", ["汭"] = "river-bend", ["汰"] = "to discard; to eliminate; too", ["汲"] = "draw water from well", ["汳"] = "Henan; name of an ancient river", ["汴"] = "name of a river in Henan; Henan", ["汶"] = "name of a river", ["決"] = "breach (a dyke); to decide; to determine", ["汽"] = "steam; vapour", ["汾"] = "name of a river", ["沁"] = "name of a river", ["沂"] = "name of a river", ["沃"] = "fertile; rich", ["沄"] = "rushing of a torrent", ["沅"] = "name of a river", ["沆"] = "a ferry; fog; flowing", ["沇"] = "''surname''", ["沈"] = "sink; ''surname''; place name", ["沉"] = "submerge; immerse; sink; deep; profound; to lower; to drop", ["沌"] = "confused; turbid", ["沍"] = "congealed; frozen", ["沏"] = "to steep (tea)", ["沐"] = "bathe; cleanse; receive favours", ["沒"] = "have not; drowned; to end; to die; to inundate", ["沓"] = "again and again; many", ["沔"] = "inundation; name of a river", ["沕"] = "abstruse; profound", ["沖"] = "strong; powerful; forceful; dynamic; to punch; to rinse; to collide; to water; to rush; to dash (against); to wash out; to charge; highway; public road", ["沘"] = "name of a river", ["沙"] = "granule; hoarse; raspy; sand; powder; tsar", ["沚"] = "islet", ["沛"] = "copious; abundant", ["沫"] = "foam; suds", ["沬"] = "dawn; place name", ["沭"] = "river in Shandong", ["沮"] = "destroy; to stop", ["沰"] = "to let drop", ["沱"] = "tearful; to branch (of river)", ["河"] = "river", ["沴"] = "miasma", ["沷"] = "to remove evil; to cleanse; to wash away", ["沸"] = "boil", ["油"] = "oil; sly", ["沺"] = "turbulent", ["治"] = "to rule; to govern; to manage; to control; to harness (a river); cure; treatment; to heal", ["沼"] = "pond; pool", ["沽"] = "buy; sell", ["沾"] = "infected by; moisten; receive favours", ["沿"] = "riverside (with -r); along", ["況"] = "moreover; situation", ["泂"] = "vast", ["泄"] = "divulge; leak out", ["泅"] = "submerge; swim under water", ["泆"] = "licentious, libertine, dissipate", ["泉"] = "fountain; spring", ["泊"] = "to anchor; touch at; to moor", ["泌"] = "secrete; pour off", ["泐"] = "write", ["泑"] = "the vitreous glaze on china, porcelain, etc.", ["泒"] = "name of a river", ["泓"] = "clear; vast and deep", ["泔"] = "slop from rinsing rice", ["法"] = "law; method; way; Buddhist teaching; Legalist; France (abbrev.)", ["泖"] = "still water", ["泗"] = "place name; snivel", ["泙"] = "sound of water splashing", ["泚"] = "clear; bright and brilliant; swea", ["泛"] = "float; general; vague", ["泜"] = "a river in Hebei province", ["泝"] = "go upstream; trace the source", ["泠"] = "''surname''; sound of water flowing", ["泡"] = "to steep; soak; bubble(s); foam; puffed; swollen", ["波"] = "wave; (''Cantonese'') ball", ["泣"] = "to sob", ["泥"] = "restrained; mud; paste; pulp", ["注"] = "to inject; to pour into; to concentrate; to pay attention; to note; to comment on; to record; to register; to annotate", ["泩"] = "rising of water", ["泫"] = "weep", ["泭"] = "a raft", ["泮"] = "melt", ["泯"] = "obliterate; submerge", ["泰"] = "safe; peaceful; most; Thai(land); grand", ["泱"] = "agitated (wind, cloud); boundless", ["泲"] = "clear wine; name of a river", ["泳"] = "swimming; to swim", ["泵"] = "pump", ["洄"] = "eddy; whirlpool", ["洊"] = "flowing water; successive", ["洋"] = "ocean; foreign", ["洌"] = "pure; cleanse", ["洎"] = "to reach; when", ["洏"] = "to flow (as water; tears)", ["洑"] = "undercurrent eddy", ["洒"] = "spill; sprinkle", ["洗"] = "to wash; to bathe", ["洙"] = "''surname''; name of a river", ["洚"] = "flood", ["洛"] = "''surname''; name of a river", ["洞"] = "cave; hole", ["洟"] = "snivel", ["津"] = "Tianjin; ferry", ["洧"] = "name of a river", ["洨"] = "river in hebei province", ["洩"] = "divulge; leak out", ["洪"] = "flood", ["洫"] = "to ditch; a moat", ["洮"] = "cleanse; name of a river", ["洱"] = "name of a river", ["洲"] = "continent; island", ["洳"] = "damp, boggy, marshy", ["洴"] = "wash; bleach (fabric)", ["洵"] = "truly; whirlpool", ["洶"] = "torrential rush; tumultuous", ["洸"] = "sparkling water", ["洹"] = "name of a river", ["洺"] = "name of a river", ["活"] = "to live; alive; living; work; workmanship", ["洼"] = "winding ditch", ["洽"] = "accord; make contact", ["派"] = "clique; school; group; faction; to dispatch", ["洿"] = "dig (a pond); stagnant water", ["流"] = "to flow; to spread; to circulate; to move", ["浙"] = "Zhejiang", ["浚"] = "deepen; enlighten; profound", ["浜"] = "stream; creek", ["浠"] = "name of a river in Hubei", ["浡"] = "full; gushing (of fountain)", ["浣"] = "to wash; to rinse; 10 day period in the month (during Tang dynasty)", ["浤"] = "sound of water surging", ["浥"] = "damp; moist", ["浦"] = "riverside; river mouth", ["浩"] = "grand; vast (water)", ["浪"] = "wave; breaker; unrestrained; dissipated", ["浬"] = "nautical mile", ["浭"] = "name of a river in Hebei", ["浮"] = "to float", ["浰"] = "attend (official functions)", ["浴"] = "bath; to bathe", ["海"] = "ocean; sea", ["浸"] = "immerse; soak; steep", ["浼"] = "ask a favour of", ["涂"] = "to smear; daub; to apply (paint); to spread", ["涅"] = "blacken", ["涇"] = "name of a river", ["消"] = "consume; news; subside; to disappear; to vanish", ["涉"] = "involve; concern; wade; to experience", ["涊"] = "muddy water", ["涌"] = "bubble up; rush forth", ["涎"] = "saliva; shamelessly", ["涑"] = "name of a river", ["涒"] = "planet Jupiter; vomit", ["涓"] = "brook; to select", ["涔"] = "overflow; rainwater; tearful", ["涕"] = "nasal mucus; tears", ["涘"] = "river bank", ["涪"] = "name of a river", ["涬"] = "watery expanse", ["涮"] = "rinse", ["涯"] = "border; horizon; shore", ["液"] = "liquid; fluid", ["涴"] = "to soil", ["涵"] = "contain", ["涷"] = "rainstorm", ["涸"] = "to dry; to dry up", ["涼"] = "cool; cold", ["涿"] = "place name", ["淀"] = "shallow water", ["淄"] = "black; name of a river", ["淅"] = "sound of rain; sleet etc.", ["淇"] = "name of a river", ["淊"] = "drown; submerge", ["淋"] = "diseases of the bladder; to drain; to drip", ["淌"] = "drip; to shed (tears)", ["淒"] = "intense cold; mournful", ["淓"] = "name of a river", ["淖"] = "slush; mud", ["淘"] = "cleanse; eliminate; to clean out; to wash", ["淙"] = "noise of water", ["淚"] = "tears", ["淜"] = "roar of dashing waves", ["淝"] = "name of a river", ["淞"] = "name of a river", ["淟"] = "turbid; muddy", ["淠"] = "luxuriant (of water plants)", ["淡"] = "insipid; diluted; weak; light in colour; tasteless; fresh; indifferent; nitrogen", ["淢"] = "moat; swift current", ["淤"] = "silt", ["淥"] = "clear (water); strain liquids", ["淦"] = "name of a river", ["淨"] = "clean; completely; only", ["淩"] = "''surname''; encroach; soar", ["淪"] = "perish", ["淫"] = "excessive; wanton; lewd; kinky; obscene", ["淬"] = "dip into water; to temper", ["淮"] = "name of a river", ["淰"] = "calm water", ["深"] = "deep; profound", ["淳"] = "genuine; pure; honest", ["淵"] = "abyss", ["淶"] = "brook; ripple", ["混"] = "to mix; to get along; thoughtless; confused; dirty; mix", ["淹"] = "drown; submerge", ["淺"] = "shallow; sound of moving water", ["添"] = "to add; to increase; to replenish", ["淼"] = "a flood; infinity", ["清"] = "clear; distinct; complete; pure", ["渙"] = "disperse expansive (of river)", ["渚"] = "islet; bank", ["減"] = "to lower; to decrease; to reduce; to subtract; to diminish", ["渝"] = "Chongqing", ["渟"] = "stagnant water", ["渠"] = "big; stream or canal; drain; ditch", ["渡"] = "to cross; to pass through; to ferry", ["渢"] = "buoyant; floating", ["渣"] = "dregs", ["渤"] = "Bohai Sea", ["渥"] = "enrich; moisten", ["渦"] = "eddy; whirlpool; name of a river", ["渧"] = "to drop, as liquids; a drop", ["渨"] = "a cove, a bay; a bend or nook in the hills; the curve of a bow", ["渫"] = "''surname''; get rid of; scatter", ["測"] = "side; to lean; to survey; to measure; conjecture", ["渭"] = "name of a river", ["渮"] = "place name", ["港"] = "harbour; Hong Kong (abbrev.)", ["渰"] = "(of cloud) forming or rising", ["渲"] = "wash (colour)", ["渴"] = "thirsty", ["游"] = "to walk; to tour; to roam; to swim; to travel", ["渺"] = "vague; remote", ["渼"] = "ripple pattern", ["渾"] = "muddy", ["湃"] = "to soak something in cold water to cool", ["湄"] = "brink; edge", ["湅"] = "boil raw silk", ["湊"] = "assemble; put together; press near; come together", ["湋"] = "to flow back (of water)", ["湍"] = "to rush (of water)", ["湎"] = "drunk", ["湑"] = "abundant; bright; strain spirits", ["湓"] = "flowing of water; name of a river", ["湔"] = "cleanse; name of a river", ["湖"] = "lake", ["湘"] = "name of a river; Hunan province (abbrev.)", ["湛"] = "deep; clear (water)", ["湜"] = "clear water; pure", ["湝"] = "flowing (of water)", ["湞"] = "river in Guangdong province", ["湟"] = "name of a river", ["湢"] = "public bathhouse", ["湣"] = "mixed, confused; pity", ["湧"] = "bubble up; rush forth", ["湩"] = "muddy, turbid; milk", ["湫"] = "marsh", ["湮"] = "to submerge", ["湯"] = "soup; hot water", ["湱"] = "dashing of waves", ["湲"] = "rushing (water)", ["溈"] = "name of a river in Shanxi", ["溉"] = "irrigate", ["溎"] = "name of a river", ["溏"] = "noncoagulative; pond", ["源"] = "root; source; origin", ["準"] = "accurate; standard", ["溘"] = "suddenly", ["溛"] = "to form hollow; pit", ["溜"] = "slip away; to skate", ["溝"] = "ditch; gutter", ["溟"] = "drizzle; sea", ["溠"] = "name of a river", ["溢"] = "overflow", ["溤"] = "name of a river", ["溥"] = "extensive; pervading", ["溦"] = "drizzle; (variant) valley; (variant) mould", ["溧"] = "name of a river", ["溪"] = "creek", ["溫"] = "(luke)warm; to review", ["溮"] = "river in Henan province", ["溯"] = "go upstream; trace the source", ["溱"] = "name of a river", ["溲"] = "urinate", ["溳"] = "river name", ["溴"] = "bromine", ["溶"] = "dissolve", ["溷"] = "disordered; privy", ["溺"] = "urinate; urine; drown; indulge; be addicted to", ["溼"] = "wet", ["溽"] = "damp; muggy", ["溾"] = "light rain", ["滁"] = "name of a river", ["滂"] = "rushing (water)", ["滃"] = "float (of clouds)", ["滄"] = "blue; green (colour of water); cold; vast (of water)", ["滅"] = "extinguish", ["滇"] = "Yunnan", ["滉"] = "bright expanse of water", ["滊"] = "[not in any dict., assumed var.]", ["滋"] = "excite; nourish; this", ["滌"] = "wash; cleanse", ["滎"] = "place name", ["滏"] = "name of a river in Hebei", ["滑"] = "comical; cunning; slippery; smooth", ["滓"] = "dregs; sediment", ["滔"] = "overflow; torrent-dash", ["滕"] = "''surname''; place name", ["滘"] = "place name in Guangdong", ["滫"] = "water in which rice was boiled", ["滬"] = "Shanghai", ["滮"] = "flowing of water", ["滯"] = "sluggish", ["滲"] = "to seep; to ooze; to horrify", ["滴"] = "a drop; to drip", ["滷"] = "brine; salt; gravy", ["滸"] = "bank of a river", ["滹"] = "''surname''; name of a river", ["滾"] = "to boil; to roll", ["滿"] = "to fill; to fulfil; filled; packed; Manchurian", ["漁"] = "fisherman; to fish", ["漂"] = "to bleach; elegant; polished; to float; to drift", ["漆"] = "paint; lacquer", ["漈"] = "river bank", ["漉"] = "strain liquids", ["漊"] = "drizzle", ["漎"] = "a place where small streams flow into a large one", ["漏"] = "funnel; to leak; to let out; to divulge", ["漓"] = "pattering (of rain); seep through", ["演"] = "to develop; to evolve; to practise; to perform; to play; to act", ["漕"] = "transport by water; watercourse; canal", ["漘"] = "shore", ["漙"] = "heavy dew", ["漚"] = "steep; bubble; froth", ["漠"] = "desert; unconcerned", ["漢"] = "Chinese; name of a dynasty; man", ["漣"] = "ripple; tearful", ["漦"] = "go with current; mucus; spittle", ["漩"] = "eddy", ["漪"] = "ripple", ["漫"] = "free; unrestrained; inundate", ["漬"] = "saturate; soak", ["漭"] = "vast; expansive (of water)", ["漯"] = "name of a river", ["漰"] = "noise of dashing waves", ["漱"] = "to gargle; rinse (mouth); to wash; to scour", ["漲"] = "to swell; distend; to rise (of prices, rivers, etc.)", ["漳"] = "name of a river", ["漵"] = "name of a river", ["漶"] = "indecipherable", ["漷"] = "clashing of two currents", ["漸"] = "gradual; gradually; imbue", ["漼"] = "having the appearance of depth", ["漾"] = "overflow; swirl, ripple; be tossed", ["漿"] = "starch paste; broth; serum; to starch", ["潀"] = "gather; flow into (water); sound of waters flowing together", ["潁"] = "name of a river", ["潎"] = "rippling; pour", ["潏"] = "bubble up", ["潑"] = "splash; to spill; violent", ["潔"] = "clean", ["潕"] = "river in Henan", ["潗"] = "friendly; harmonious", ["潘"] = "''surname''", ["潚"] = "sound of rain and wind", ["潛"] = "hidden; latent; secret; to hide; to conceal; to submerge", ["潝"] = "agree", ["潞"] = "''surname''; name of a river", ["潟"] = "saline land", ["潠"] = "spurt out of the mouth", ["潢"] = "dye paper; lake; pond; mount scroll", ["潤"] = "smooth; moist", ["潦"] = "flooded; heavy rain", ["潭"] = "deep; deep pool; pit", ["潮"] = "tide; current; damp; moist; humid", ["潯"] = "name of a river; steep bank", ["潰"] = "be dispersed; break down", ["潲"] = "driving rain; to sprinkle", ["潸"] = "tearfully", ["潺"] = "flow; trickle (of water)", ["潼"] = "high; name of a pass", ["潾"] = "clear (as of water)", ["潿"] = "still water", ["澀"] = "grating (of surfaces); tart; acerbic", ["澂"] = "clear and still water", ["澄"] = "settle (liquid); clear; limpid; clarify; purify; ''surname''", ["澆"] = "to water", ["澇"] = "flooded", ["澈"] = "clear (water); thorough", ["澉"] = "place name; wash", ["澌"] = "drain dry; to exhaust", ["澍"] = "moisture; timely rain", ["澐"] = "river waves", ["澒"] = "vast; infinite", ["澔"] = "grand; vast (of water)", ["澗"] = "mountain stream", ["澠"] = "name of a river in Shandong", ["澡"] = "bath", ["澣"] = "cleanse; bathe", ["澤"] = "beneficence; marsh", ["澥"] = "become watery; creek", ["澦"] = "place name in Sichuan", ["澧"] = "''surname''; name of a river", ["澨"] = "bank; shore; name of a river", ["澬"] = "to rain continuously", ["澮"] = "drain; stream", ["澰"] = "full of water; trough", ["澱"] = "sediment; precipitate", ["澳"] = "deep bay; cove; bay; harbour; Australia (abbrev.); Macao", ["澴"] = "to return (of waves)", ["澶"] = "still (as of water); still water", ["澹"] = "tranquil; placid; quiet", ["澼"] = "bleach; to clean", ["激"] = "to arouse; to incite; to excite; to stimulate; sharp; fierce; violent", ["濁"] = "impure; muddy", ["濂"] = "name of a river in Hunan", ["濃"] = "concentrated; dense", ["濆"] = "edge of water", ["濇"] = "grating (of surfaces)", ["濈"] = "many", ["濉"] = "name of a river", ["濊"] = "vast; expansive (as of water)", ["濔"] = "many; numerous", ["濕"] = "moist; wet", ["濘"] = "muddy", ["濛"] = "drizzle; mist", ["濜"] = "river in Hubei province", ["濟"] = "aid; ferry; frugal", ["濠"] = "trench", ["濡"] = "dilatory; to moisten", ["濤"] = "big wave", ["濩"] = "cook; dashing of water", ["濫"] = "excessive; indiscriminate", ["濬"] = "deepen; enlighten; profound", ["濮"] = "name of a river", ["濯"] = "rinse; to cleanse", ["濰"] = "name of a river", ["濱"] = "shore; beach; coast; bank", ["濲"] = "name of a river in Hunan", ["濺"] = "splash", ["濼"] = "name of a river", ["濾"] = "to strain; to filter", ["瀁"] = "ripples", ["瀅"] = "clear; limpid (of water)", ["瀆"] = "ditch; trouble (some one to do)", ["瀉"] = "to flow (out) swiftly; diarrhoea", ["瀋"] = "place name; pour", ["瀌"] = "copious (of rain; snow)", ["瀍"] = "name of a river", ["瀏"] = "clear; deep (of water); swift", ["瀑"] = "waterfall; shower (rain)", ["瀔"] = "river name in Henan province", ["瀕"] = "near", ["瀘"] = "name of a river in Jiangxi; place name", ["瀚"] = "ocean; vastness", ["瀛"] = "ocean", ["瀝"] = "drip", ["瀟"] = "river name; sound of rain and wind", ["瀠"] = "eddy; small river", ["瀡"] = "slippery", ["瀣"] = "mist; vapour", ["瀦"] = "place where water stays", ["瀧"] = "name of a river in Guangdong; torrential (rain)", ["瀨"] = "name of a river; rushing of water", ["瀰"] = "overflowing", ["瀲"] = "full of water; trough", ["瀳"] = "to arrive (of water)", ["瀵"] = "name of a river; valley vapour", ["瀹"] = "cleanse; to boil", ["瀺"] = "sound of water", ["瀼"] = "dewy", ["瀾"] = "swelling water", ["灃"] = "name of a river", ["灄"] = "name of a river", ["灉"] = "name of a river; sluice", ["灌"] = "irrigate; pour", ["灑"] = "spill; sprinkle", ["灒"] = "to spatter, to splash, to scatter", ["灕"] = "name of a river; seep through", ["灘"] = "beach; shoal", ["灝"] = "vast (of water)", ["灞"] = "name of a river", ["灠"] = "pickle fruits", ["灢"] = "muddy; thick, muddy water", ["灣"] = "bay; gulf", ["灤"] = "name of a river", ["灥"] = "a group of springs", ["灨"] = "the River Gan in Jiangxi", ["灩"] = "tossing of billows", ["火"] = "fire; angry; fierce; fiery; thriving", ["灰"] = "grey; ash", ["灴"] = "to bake, to roast; to dry at a fire", ["灶"] = "kitchen stove", ["灸"] = "cauterize; moxibustion", ["灺"] = "candle stub", ["灼"] = "brilliant; cauterize", ["災"] = "disaster; calamity", ["炅"] = "''surname''", ["炊"] = "dress food; to steam; to cook food", ["炎"] = "flame; inflammation; -itis", ["炒"] = "saute; pan-fry; to fry; fried", ["炔"] = "alkyne", ["炕"] = "kang (a heatable brick bed)", ["炖"] = "stew slowly", ["炘"] = "mid-day glare; heat", ["炙"] = "broil", ["炤"] = "''surname''; shine on", ["炫"] = "dazzle; to show off", ["炬"] = "torch", ["炭"] = "charcoal", ["炮"] = "cannon; gun; firecracker", ["炯"] = "bright; clear", ["炰"] = "to roast", ["炱"] = "soot", ["炳"] = "bright; brilliant; luminous", ["炷"] = "candlewick; incense stick", ["炸"] = "explode; fry", ["為"] = "because of; for; to; act as; take...to be; to be; to do; to serve as; to become", ["烈"] = "ardent; intense; split; crack; rend", ["烊"] = "molten; smelt", ["烋"] = "to boil or fumigate", ["烏"] = "a crow; black; not; empty; void", ["烓"] = "three-cornered stove", ["烔"] = "hot; heated", ["烘"] = "bake; heat by fire", ["烙"] = "bake; flat iron; large cake", ["烜"] = "brilliant", ["烝"] = "advance; many; steam", ["烤"] = "to roast; bake; to broil", ["烯"] = "alkene", ["烳"] = "to travel by the light of torch", ["烴"] = "hydrocarbon", ["烷"] = "alkane", ["烹"] = "cuisine; cooking", ["烺"] = "blaze; light", ["烽"] = "beacon fire", ["焄"] = "fumes from sacrifice", ["焉"] = "where; how", ["焊"] = "welding", ["焌"] = "set fire", ["焓"] = "enthalpy", ["焙"] = "to dry over a fire; to bake", ["焚"] = "burn", ["焜"] = "brilliant", ["焞"] = "dim", ["焠"] = "to temper (as steel)", ["無"] = "not have", ["焦"] = "burnt; scorched; worried; anxious", ["焮"] = "heat; flame; inflammation", ["焰"] = "flame", ["焱"] = "flames", ["然"] = "so; thus; like this; -ly; correct; right", ["煁"] = "brazier", ["煃"] = "fiery; blazing", ["煆"] = "raging fire", ["煇"] = "bright; glorious", ["煉"] = "refine; smelt", ["煌"] = "brilliant", ["煍"] = "to colour by smoke", ["煎"] = "pan-fry", ["煐"] = "(person)", ["煒"] = "glow; raging fire", ["煖"] = "warm", ["煙"] = "cigarette; tobacco; smoke", ["煚"] = "fire", ["煜"] = "brilliant; glorious", ["煝"] = "be radiant; flaming; drought", ["煞"] = "baleful; bring to a stop; very; decrease; tighten", ["煟"] = "radiance of fire", ["煠"] = "to fry in fat or oil; to scald", ["煢"] = "alone", ["煤"] = "coal", ["煥"] = "brilliant; lustrous", ["照"] = "according to; in accordance with; to shine; to illuminate; to reflect; photograph", ["煨"] = "simmer; to roast in ashes", ["煩"] = "feel vexed; to bother", ["煬"] = "molten; smelt", ["煮"] = "to cook; to boil", ["煲"] = "pot or saucepan; to boil; cook or heat", ["煻"] = "to warm; to toast", ["煽"] = "fan into a flame; incite", ["熀"] = "dazzle", ["熄"] = "(v) extinguish; quench; go out (of fire)", ["熅"] = "to iron", ["熇"] = "dry", ["熉"] = "(yellow colour)", ["熊"] = "bear; to scold; to rebuke", ["熏"] = "to smoke; scent; fumigate", ["熒"] = "glimmer; glimmering; dazzling; perplexed; {{taxfmt|Polygonatum odoratum|species}} (syn. ''P. officinale'')", ["熔"] = "to smelt; fuse", ["熗"] = "cook in soy", ["熙"] = "prosperous; splendid", ["熛"] = "blaze; flame flaring", ["熟"] = "familiar; skilled; ripe; done; cooked", ["熠"] = "to glow; flash", ["熤"] = "(person)", ["熨"] = "an iron; to iron; reconciled; smooth", ["熬"] = "endure; to boil; stew; to simmer", ["熯"] = "to dry with fire", ["熰"] = "great drought; heat", ["熱"] = "heat; to heat up; fervent; hot (of weather); warm up", ["熲"] = "blaze", ["熳"] = "to spread", ["熵"] = "entropy", ["熸"] = "extinguish (of fire)", ["熹"] = "bright; warm", ["熾"] = "flame; blaze", ["熿"] = "brilliant", ["燀"] = "make a fire", ["燁"] = "blaze of fire; glorious", ["燂"] = "to heat; to scorch", ["燃"] = "burn; combustion", ["燄"] = "flame", ["燈"] = "lamp; light", ["燉"] = "stew", ["燊"] = "brisk; vigorous (of fire)", ["燋"] = "cauterize; scorch", ["燎"] = "singe", ["燏"] = "radiance of fire", ["燐"] = "phosphorus", ["燒"] = "to burn; to cook; to stew; to bake; to roast; fever", ["燔"] = "burn; to roast meat for sacrifice", ["燕"] = "swallow (bird); ''surname''; place name", ["燖"] = "warm up (food)", ["燙"] = "to scald; to burn; to iron; hot", ["燜"] = "cook in a covered vessel", ["營"] = "army; to deal in; to trade; to operate; to run; camp; nourishment; to manage", ["燠"] = "warm", ["燡"] = "blazing; radiant", ["燥"] = "dry; parched; impatient", ["燦"] = "glorious; bright; brilliant; lustrous; resplendent", ["燧"] = "fire; speculum", ["燨"] = "fire", ["燬"] = "blaze; destroy by fire", ["燭"] = "candle", ["燮"] = "harmony; harmonize", ["燴"] = "cooked in soy and vinegar", ["燹"] = "conflagration", ["燻"] = "to smoke; scent; fumigate", ["燼"] = "ashes; embers", ["燾"] = "cover over; to envelope", ["燿"] = "brilliant; glorious", ["爆"] = "to crack; to explode or burst", ["爇"] = "burn; heat; to burn", ["爍"] = "bright; luminous", ["爐"] = "stove", ["爓"] = "flame, brilliant", ["爚"] = "bright; fiery", ["爛"] = "rotten; decayed; well-cooked; mushy; broken; bad; to decay; completely", ["爝"] = "torch", ["爟"] = "light a fire", ["爨"] = "cooking-stove; to cook", ["爪"] = "claw", ["爬"] = "crawl; climb", ["爭"] = "struggle; fight", ["爰"] = "therefore; to lead on to", ["爵"] = "nobility; (ancient wine holder with 3 legs and loop handle)", ["父"] = "father", ["爸"] = "father; dad; pa; papa", ["爹"] = "dad", ["爺"] = "grandpa; etc.; old gentleman", ["爻"] = "lines on a trigram", ["爽"] = "invigorating; straightforward; frank; open; bright; clear", ["爾"] = "thus; so; like that; you; thou", ["牁"] = "place name", ["牂"] = "female sheep; place name", ["牄"] = "to walk rapidly", ["牆"] = "wall", ["片"] = "a slice; piece; flake; thin; slice; disc; sheet", ["版"] = "a register; a block of printing; an edition; version; page", ["牋"] = "letter; note-paper", ["牌"] = "cards; game pieces; signboard; plate; tablet", ["牏"] = "short board; plank", ["牒"] = "(official) document; dispatch", ["牓"] = "tablet; register", ["牖"] = "enlighten; lattice window", ["牘"] = "documents", ["牙"] = "tooth; ivory", ["牛"] = "ox; cow; bull", ["牝"] = "female", ["牟"] = "barley; to moo; usurp", ["牠"] = "it (used for animals)", ["牡"] = "male", ["牢"] = "firm; fast", ["牣"] = "fill up; to stuff", ["牧"] = "shepherd", ["物"] = "thing; object; matter", ["牮"] = "prop up", ["牯"] = "bullock; cow", ["牲"] = "domestic animal", ["牳"] = "(bovine)", ["牴"] = "to butt; resist", ["牷"] = "one-colour bullock", ["牸"] = "female of domestic animals", ["特"] = "special; unusual; extraordinary; male animal", ["牼"] = "shank bone of ox", ["牽"] = "lead along", ["牾"] = "to oppose; to gore", ["牿"] = "shed or pen for cattle", ["犀"] = "rhinoceros", ["犁"] = "plough", ["犆"] = "male animal", ["犉"] = "ox", ["犍"] = "bullock", ["犒"] = "give a bonus to", ["犖"] = "brindled ox; clear; eminent", ["犛"] = "black ox; yak", ["犢"] = "calf; sacrificial victim", ["犧"] = "sacrifice", ["犨"] = "panting of cow; grunting of ox", ["犬"] = "dog", ["犯"] = "to violate; to offend", ["犴"] = "jail", ["犵"] = "name of a tribe", ["犺"] = "fierce dog", ["狀"] = "accusation; suit; state; condition; strong; great", ["狂"] = "conceited; mad", ["狃"] = "accustomed to", ["狄"] = "barbarians; name of a tribe", ["狆"] = "Pekingese", ["狉"] = "be teeming with wild animals; fox-cub", ["狋"] = "appearance of angry dogs; the appearance of dogs fighting", ["狍"] = "roe deer", ["狎"] = "get close to, become intimate with; to neglect; to tease", ["狐"] = "fox", ["狒"] = "hamadryad baboon", ["狗"] = "dog", ["狘"] = "jump", ["狙"] = "(ape); to spy; lie in ambush", ["狠"] = "ruthless; fierce; severe", ["狡"] = "crafty; cunning; sly", ["狨"] = "''[[Callithrix jacchus]]'' (syn. ''Hapale jacchus'')", ["狩"] = "to hunt; to embark on an imperial tour", ["狫"] = "(derogatory) name of a tribe", ["狴"] = "(tapir); mythical tiger-like beast", ["狷"] = "rash, impetuous, impulsive; reserved, overcautious", ["狸"] = "[[raccoon dog]]; [[leopard cat]]", ["狹"] = "narrow; limited; narrow-minded", ["狺"] = "snarling of dogs", ["狻"] = "(mythical animal)", ["狼"] = "wolf", ["狽"] = "a legendary wolf; distressed; wretched", ["猇"] = "the scream or roar of a tiger; to intimidate; to scare", ["猈"] = "dog with short shinbone", ["猊"] = "(mythical animal); lion", ["猋"] = "whirlwind", ["猓"] = "monkey", ["猖"] = "mad; wild", ["猗"] = "(interj.)", ["猘"] = "mad dog", ["猙"] = "hideous; fierce-looking", ["猛"] = "ferocious; suddenly; fierce; violent; abrupt", ["猜"] = "to guess", ["猝"] = "abrupt; hurried", ["猥"] = "humble; rustic; plentiful", ["猩"] = "ape", ["猭"] = "ape; ''[[Hylobates agilis]]''", ["猱"] = "(monkey); scratch", ["猲"] = "short-snout dog; frightened; terrified", ["猴"] = "monkey", ["猶"] = "as if; still", ["猷"] = "to plan; to scheme", ["猺"] = "Yao tribe", ["猾"] = "sly", ["猿"] = "ape", ["獀"] = "dog (dial.); to hunt", ["獃"] = "stay; stupid", ["獄"] = "prison", ["獅"] = "lion", ["獉"] = "jungle", ["獍"] = "an animal which eats its mother", ["獎"] = "prize; award; encouragement", ["獐"] = "river deer; roebuck", ["獒"] = "mastiff", ["獗"] = "unruly; rude", ["獘"] = "collapse", ["獙"] = "die violently", ["獚"] = "spaniel", ["獝"] = "devil", ["獞"] = "name of a variety of dog; wild tribes in South China", ["獠"] = "fierce; hunt; name of a tribe", ["獢"] = "dog", ["獧"] = "timid; cautious", ["獨"] = "alone; independent; single; sole; only", ["獪"] = "crafty; cunning", ["獫"] = "long-snout dog", ["獮"] = "to hunt; kill", ["獯"] = "name of a tribe", ["獰"] = "fierce-looking", ["獲"] = "to catch; to obtain; to capture", ["獳"] = "angry dog", ["獵"] = "hunting", ["獷"] = "fierce, rude, uncivilized", ["獸"] = "beast; quadruped", ["獺"] = "otter", ["獻"] = "to offer", ["獼"] = "macaque", ["獾"] = "badger", ["玀"] = "name of a tribe", ["玁"] = "long-snout dog", ["玃"] = "a large ape found in W. China", ["玄"] = "black; mysterious", ["玅"] = "clever; wonderful", ["玆"] = "now, here; this; time, year", ["率"] = "to lead; command; rate; frequency", ["玈"] = "black", ["玉"] = "jade", ["王"] = "king; Wang (proper name)", ["玎"] = "jingling; tinkling", ["玓"] = "pearly", ["玔"] = "jade ring", ["玖"] = "(black stone); nine (fraud-proof)", ["玗"] = "half pr stone", ["玟"] = "veins in jade; jade-like stone", ["玠"] = "jade tablet indicating rank", ["玢"] = "porphyrites", ["玤"] = "(gem)", ["玥"] = "pearl used in sacrifice", ["玦"] = "half-circle jade ring", ["玨"] = "gems mounted together", ["玩"] = "curios; antiques; to play; to amuse oneself", ["玫"] = "a kind of fine stone", ["玳"] = "tortoise shell; turtle", ["玶"] = "name of one kind of jade", ["玷"] = "blemish; disgrace; flaw in jade", ["玻"] = "glass", ["玼"] = "clear (as in a gem)", ["珀"] = "amber", ["珂"] = "jade-like stone", ["珇"] = "carving on jade", ["珈"] = "gamma; jewellery", ["珊"] = "coral", ["珌"] = "gem on scabbard", ["珍"] = "precious thing; treasure", ["珓"] = "(divination device)", ["珔"] = "(jade)", ["珖"] = "(jade)", ["珙"] = "(gem)", ["珛"] = "quickly-deteriorating jade", ["珞"] = "neck-ornament", ["珠"] = "pearl; bead", ["珣"] = "(gem)", ["珥"] = "pearl or jade earring", ["珧"] = "mother-of-pearl", ["珩"] = "top gem of pendant from girdle", ["珪"] = "jade tablet; silicon", ["班"] = "team; class; rank; squad; a work shift; a measure word; ''surname''", ["珮"] = "girdle ornaments", ["珶"] = "white jade worn on belt", ["珺"] = "beautiful jade", ["珽"] = "sceptre", ["現"] = "appear; present; now; existing; current", ["琀"] = "gems or pearls formerly put into the mouth of a corpse", ["琁"] = "beautiful jade; star", ["球"] = "ball; sphere", ["琅"] = "(gem); tinkling of pendants", ["理"] = "to manage; to heed; to put in order; reason; logic; science; inner principle or structure", ["琇"] = "(jade)", ["琖"] = "wine cup", ["琚"] = "ornamental gems for belt", ["琛"] = "precious stone; gem", ["琠"] = "gem used as ear plug; jade earrings", ["琢"] = "to cut (gems)", ["琤"] = "tinkling of gems", ["琥"] = "amber", ["琦"] = "curio; valuable stone", ["琨"] = "(jade)", ["琪"] = "(white gem); angel", ["琫"] = "gem ornament of scabbard", ["琬"] = "ensign of royalty", ["琭"] = "(jade)", ["琮"] = "''surname''; octagonal jade badge", ["琯"] = "mus. instr.; to polish jade or gold", ["琰"] = "gem; glitter of gems", ["琱"] = "engrave gems", ["琲"] = "necklace", ["琳"] = "gem", ["琴"] = "qin; general name for certain instruments", ["琿"] = "(fine jade)", ["瑀"] = "(chalcedony)", ["瑁"] = "(jade)", ["瑂"] = "(stone which resembles jade)", ["瑄"] = "ornamental piece of jade", ["瑋"] = "(reddish jade); precious; rare", ["瑑"] = "engraved lines", ["瑔"] = "(jade; shell)", ["瑕"] = "blemish; flaw in jade", ["瑗"] = "large jade ring", ["瑚"] = "coral", ["瑛"] = "(crystal); lustrous", ["瑜"] = "excellence; lustre of gems", ["瑞"] = "lucky; auspicious; propitious; rayl (acoustical unit)", ["瑟"] = "(mus. instr.)", ["瑢"] = "gem ornaments for belts", ["瑣"] = "fragmentary; trifling", ["瑤"] = "(jade); Yao; mother-of-pearl", ["瑩"] = "lustre of gems", ["瑭"] = "(jade)", ["瑯"] = "(gem); tinkling of pendants", ["瑰"] = "(semi-precious stone); extraordinary", ["瑱"] = "jade ear-plug", ["瑲"] = "tinkling of gems", ["瑳"] = "lustre of gems", ["瑽"] = "tinkling of jade pendants", ["瑾"] = "brilliancy (of gems)", ["瑿"] = "a black stone like jade; jet", ["璀"] = "lustre of gems", ["璁"] = "(gem)", ["璅"] = "fragmentary; trifling", ["璆"] = "(gem); to tinkle", ["璇"] = "(jade)", ["璈"] = "(mus. instr.)", ["璊"] = "(gem); rouge", ["璋"] = "ancient stone ornament", ["璐"] = "(jade)", ["璘"] = "lustre of gem", ["璚"] = "(red stone); half-circle jade ring", ["璜"] = "semi-circular jade ornament", ["璞"] = "unpolished gem", ["璟"] = "lustre of gem", ["璠"] = "(gem)", ["璡"] = "jade-like stone", ["璣"] = "irregular pearl", ["璥"] = "(gem)", ["璦"] = "jasper; precious stone", ["璧"] = "piece of jade with hole in centre", ["璨"] = "gem; lustre of gem", ["璩"] = "(jade ring); ''surname''", ["璪"] = "pendant of pearls on coronet", ["璫"] = "pendant ornaments", ["璯"] = "jade ornament in the seams of cap", ["環"] = "bracelet; ring (not for finger); to surround; to loop; loop", ["璲"] = "pendant girdle-ornaments", ["璵"] = "(gem)", ["璸"] = "(pearl)", ["璺"] = "a crack, as in porcelain", ["璽"] = "ruler's seal", ["璿"] = "(jade)", ["瓀"] = "opaque; white quartz", ["瓊"] = "(red stone); beautiful", ["瓏"] = "a kind of jade that is for requesting rain and has the figure of Chinese dragon on", ["瓔"] = "necklace", ["瓖"] = "ornaments", ["瓘"] = "jade used for making goblets", ["瓚"] = "libation cup", ["瓛"] = "sceptre", ["瓜"] = "melon; claw; gourd; squash", ["瓞"] = "young melon", ["瓠"] = "gourd", ["瓢"] = "dipper; ladle", ["瓣"] = "petal; section", ["瓤"] = "pulp of fruit", ["瓦"] = "tile", ["瓮"] = "earthen jar; urn", ["瓴"] = "concave channels of tiling", ["瓶"] = "bottle; (a measure word); vase; pitcher", ["瓷"] = "chinaware; porcelain", ["瓻"] = "large wine jar", ["瓿"] = "a kind of vase", ["甀"] = "vase with a small mouth", ["甃"] = "brickwork of well", ["甄"] = "to mould; discriminate", ["甇"] = "earthen jar with long neck", ["甋"] = "a jar without ears", ["甌"] = "bowl; cup", ["甍"] = "rafters supporting tiles", ["甏"] = "a squat jar for holding wine, sauces etc.", ["甑"] = "cauldron; rice pot", ["甒"] = "(vase; jar)", ["甓"] = "glazed tile", ["甔"] = "big jar", ["甕"] = "earthen jar; urn", ["甖"] = "earthen jar with small mouth", ["甗"] = "earthenware vessel", ["甘"] = "sweet; willingly; Gansu province (abbrev.)", ["甚"] = "very; extremely; more (than); what", ["甜"] = "sweet", ["生"] = "to be born; to give birth; life; to grow; student; raw", ["甡"] = "multitude; crowd", ["產"] = "to reproduce; to produce; give birth; products; produce; resources; estate; property", ["甥"] = "nephew", ["甦"] = "revive", ["用"] = "to use", ["甩"] = "fling", ["甪"] = "''surname''; place name", ["甫"] = "honorific for men; just; just now", ["甬"] = "5 pecks (M); Ningpo", ["甭"] = "need not", ["甯"] = "peaceful", ["田"] = "field; farm", ["由"] = "follow; from; it is for...to; reason; cause; because of; due to; by; to; to leave it (to someone)", ["甲"] = "1st [[heavenly stem]]; armour; shell", ["申"] = "9th [[earthly branch]]; 3–5 p.m.; to extend; to state; to explain", ["男"] = "male", ["甸"] = "imperial domain; suburb", ["町"] = "raised path between fields", ["甽"] = "drain between fields, irrigation", ["甾"] = "steroid", ["甿"] = "people", ["畀"] = "confer on; give to", ["畇"] = "reclaimed land", ["畈"] = "field; farm", ["畋"] = "cultivate (land); to hunt", ["界"] = "boundary; scope; extent; circles; group; kingdom (taxonomy)", ["畎"] = "field drains", ["畏"] = "to fear", ["畔"] = "bank; field-path", ["留"] = "leave (message); to retain; to stay; to remain; to keep; to preserve", ["畚"] = "a basket or pan used for earth; manure etc", ["畛"] = "border; boundary; field-path", ["畜"] = "to raise (animals); livestock; domesticated animal; domestic animal", ["畝"] = "about 1; 6 acre (M)", ["畟"] = "sharp", ["畢"] = "the whole of; to finish; to complete; complete; full; finished", ["畤"] = "ancient sacrifice", ["略"] = "plan; strategy; outline; summary; slightly; rather; to rob; to plunder; to summarize", ["畦"] = "furrow; small plot of farm land", ["番"] = "(measure word for acts); deeds; foreign; ''surname''; place name", ["畫"] = "draw; picture; painting", ["畬"] = "cultivated field", ["畯"] = "overseer; steppe", ["異"] = "different; unusual; strange", ["當"] = "to act as; represent; equal; should; fitting; suitable; adequate; proper; replace; to be; to hold a position; manage; withstand; when; during; ought; match equally; same; obstruct; just at (a time or place); on the spot; right; just at", ["畷"] = "raised path between fields", ["畸"] = "fractional remains; odd", ["畹"] = "a field of 20 or 30 mu", ["畽"] = "place trodden by animals", ["畾"] = "fields divided by dikes", ["畿"] = "territory around the capital", ["疆"] = "border; boundary", ["疇"] = "arable fields; cultivated field; class; category", ["疊"] = "fold up; repeat", ["疋"] = "a bolt (of cloth)", ["疏"] = "negligent; sparse; thin", ["疐"] = "prostrate", ["疑"] = "to doubt; to misbelieve; to suspect", ["疔"] = "boil; carbuncle", ["疕"] = "facial skin disease; mange", ["疘"] = "anus", ["疚"] = "chronic disease", ["疝"] = "hernia", ["疢"] = "(disease)", ["疣"] = "nodule; wart", ["疤"] = "scar", ["疥"] = "scabies", ["疧"] = "sick", ["疫"] = "epidemic; plague", ["疲"] = "weary", ["疳"] = "rickets", ["疵"] = "blemish; flaw; defect", ["疶"] = "dysentery", ["疸"] = "jaundice", ["疹"] = "measles; rash", ["疼"] = "(it) hurts; love fondly; ache; pain; sore", ["疽"] = "gangrene", ["疾"] = "sickness; disease; hate; envy", ["疿"] = "prickly heat", ["痁"] = "malarial fever", ["痂"] = "scab", ["痄"] = "mumps", ["病"] = "ailment; illness; disease; fall ill; sick; defect", ["症"] = "disease; illness; indication or sign of disease", ["痊"] = "recover (from illness)", ["痌"] = "moaning in pain", ["痍"] = "bruise; sores", ["痏"] = "a bruise or contusion", ["痐"] = "roundworm; ''[[Ascaris lumbricoides]]''", ["痒"] = "to itch; to tickle", ["痔"] = "piles; haemorrhoid", ["痕"] = "scar; traces; (''Cantonese'') itchy", ["痗"] = "disease caused by anxiety", ["痘"] = "small pox", ["痙"] = "spasm", ["痚"] = "asthma; difficulty in breathing", ["痛"] = "ache; pain; sorrow", ["痞"] = "scoundrel; swelling of the liver", ["痠"] = "aching of limbs", ["痡"] = "sick; disabled", ["痢"] = "dysentery", ["痣"] = "birthmark; mole", ["痤"] = "acne", ["痦"] = "(flat) mole", ["痧"] = "cholera", ["痭"] = "menorrhagia", ["痯"] = "ill-looking", ["痰"] = "phlegm; spittle", ["痱"] = "prickly heat", ["痲"] = "leprosy; numb", ["痴"] = "imbecile; sentimental; stupid; foolish; silly", ["痵"] = "nervous start in sleep", ["痹"] = "paralysis, numbness", ["痺"] = "numb; paralysis", ["痻"] = "to be ill", ["痼"] = "obstinate disease", ["痾"] = "malady", ["痿"] = "atrophy", ["瘀"] = "haematoma; contusion; extravasated", ["瘁"] = "care-worn; distressed; tired; overworked; sick; weary", ["瘃"] = "chilblain", ["瘈"] = "furious; hydrophobia; madness", ["瘉"] = "heal", ["瘊"] = "wart", ["瘋"] = "insane; mad; wild", ["瘌"] = "scabies; scald-head", ["瘍"] = "ulcers; sores", ["瘏"] = "be injured; ill (of animals)", ["瘐"] = "maltreat (as prisoners)", ["瘓"] = "illness; numbness of the limbs", ["瘕"] = "obstruction in the intestine", ["瘖"] = "dumb", ["瘙"] = "itch", ["瘚"] = "to hiccup; the humours of the body", ["瘜"] = "a polypus", ["瘝"] = "incapacitated; inefficient", ["瘞"] = "bury; sacrifice", ["瘟"] = "epidemic; pestilence; plague", ["瘠"] = "barren; lean", ["瘡"] = "sore; skin ulcer", ["瘢"] = "mark; scar on the skin", ["瘤"] = "tumour", ["瘥"] = "disease; recover from disease", ["瘦"] = "tight; thin; lean", ["瘧"] = "malaria", ["瘨"] = "convulsions; crazy", ["瘭"] = "whitlow", ["瘯"] = "(skin disease)", ["瘰"] = "scrofula; tuberculosis of glands", ["瘲"] = "spasms or convulsions in young children, caused by indigestion", ["瘳"] = "convalesce; recover; heal", ["瘴"] = "malaria; miasma", ["瘵"] = "foci of tubercular infection", ["瘸"] = "lame", ["瘺"] = "fistula; sinus", ["瘼"] = "distress; sickness", ["療"] = "to treat; to cure", ["癃"] = "infirmity; retention of urine", ["癆"] = "tuberculosis", ["癇"] = "epilepsy; insanity", ["癈"] = "abrogate, terminate, discard", ["癉"] = "to hate; (disease)", ["癌"] = "cancer; carcinoma", ["癒"] = "heal", ["癖"] = "habit; hobby", ["癘"] = "sore caused by varnish poisoning", ["癙"] = "hidden; secret; scrofula", ["癜"] = "erythema; leucoderm", ["癟"] = "deflated; shrivelled; sunken; empty", ["癠"] = "sick; diseased", ["癡"] = "imbecile; sentimental; stupid; foolish; silly", ["癢"] = "itch", ["癤"] = "pimple, sore, boil", ["癥"] = "obstruction of bowels", ["癩"] = "scabies; skin disease", ["癪"] = "spasms, convulsions, hysteria", ["癬"] = "ringworm", ["癭"] = "goitre; knob on tree", ["癮"] = "addiction; craving", ["癰"] = "carbuncle", ["癱"] = "paralysed", ["癲"] = "convulsions; crazy", ["癸"] = "10th [[heavenly stem]]", ["登"] = "to go up; to climb; ascend; mount; register; note; to publish; to issue; to record", ["發"] = "to send out; to show (one's feeling); to issue; to develop", ["白"] = "white; empty; blank; bright; clear; plain; pure; gratuitous", ["百"] = "hundred", ["皁"] = "black; police runners, from the black clothes formerly worn by them", ["皂"] = "soap; black", ["的"] = "really and truly; aim; clear; (possessive, modifying, or descriptive particle); of", ["皆"] = "all; each and every; in all cases", ["皇"] = "emperor; ''surname''", ["皈"] = "comply with; follow", ["皋"] = "bank; marsh", ["皎"] = "bright; white", ["皓"] = "bright; d (19th); white", ["皖"] = "Anhui", ["皙"] = "white", ["皚"] = "white (of snow, etc.)", ["皜"] = "clear; white", ["皝"] = "luminous; bright hoary, white", ["皞"] = "bright, brilliant", ["皤"] = "white", ["皦"] = "sparkling; bright", ["皪"] = "lustre (of pearls)", ["皫"] = "white", ["皭"] = "pure", ["皮"] = "leather; skin; fur", ["皰"] = "pimple", ["皴"] = "chapped; cracked", ["皸"] = "to chap", ["皺"] = "to wrinkle; wrinkled; to crease", ["皽"] = "scab", ["皿"] = "shallow container; rad. no. 108", ["盂"] = "container; cup", ["盃"] = "cup", ["盅"] = "cup", ["盆"] = "basin", ["盈"] = "full; filled; surplus", ["益"] = "benefit; increase", ["盍"] = "why not", ["盎"] = "abundant; bowl; dish; pot", ["盒"] = "small box; case", ["盔"] = "helmet", ["盚"] = "''surname''", ["盛"] = "flourishing; to hold; contain; to ladle; pick up with a utensil; ''surname''", ["盜"] = "steal; rob; plunder; a thief; bandit; robber", ["盝"] = "box case", ["盞"] = "''classifier for lamps or cups of drink''", ["盟"] = "oath; pledge; union; to ally", ["盡"] = "to use up; to exhaust; to end; to finish; to the utmost; exhausted; finished; to the limit (of something)", ["監"] = "supervisor; hard; strong; solid; firm; to supervise; to inspect; jail; prison", ["盤"] = "dish; tray; to build; to check; to examine; to transfer; (a measure word used for dishes of food or coils of wire); to coil", ["盥"] = "wash (especially hands)", ["盦"] = "container", ["盧"] = "''surname''", ["盩"] = "name of a district in Shaanxi", ["盪"] = "agitate; swing; sway", ["盬"] = "covered pot", ["盭"] = "unreasonable; violent", ["目"] = "eye; item; section; list; catalogue; table of contents; (taxonomy) order; goal; name; title", ["盯"] = "stare; gaze", ["盱"] = "''surname''; anxious; stare", ["盲"] = "blind", ["直"] = "straight; vertical; frank; directly; straightly; upright", ["盵"] = "''surname''", ["相"] = "each other; appearance; portrait; picture; one another; mutually", ["盹"] = "doze; nap", ["盻"] = "glare at", ["盼"] = "to hope for; to long for; to expect", ["盾"] = "shield", ["省"] = "comprehend; introspect; visit; frugal; save; to omit; to leave out; to save (money); province", ["眄"] = "ogle", ["眅"] = "show the whites of eyes", ["眇"] = "minute (small); subtle", ["眈"] = "gaze intently", ["眉"] = "eyebrow; upper margin", ["眊"] = "having poor eyesight", ["看"] = "to see; to look at; to look after; to take care of; to watch; to guard; it depends; think", ["眑"] = "sunken eyes; deep; abstruse", ["眕"] = "restrain anger", ["眙"] = "place name", ["眚"] = "cataract of the eye; error", ["眛"] = "blind; imperceptive", ["真"] = "real; true; genuine", ["眠"] = "sleep", ["眢"] = "inflamed eyelids; parched", ["眣"] = "prominent eyes", ["眥"] = "canthus", ["眨"] = "wink", ["眩"] = "dizzy; dazzled", ["眭"] = "evil look of deep-set eyes", ["眯"] = "blind (as with dust)", ["眴"] = "dazzled; dizzy", ["眵"] = "gritty secretion in eyes", ["眶"] = "eye socket", ["眷"] = "concern; wife and children", ["眸"] = "pupil of the eye", ["眹"] = "pupil", ["眺"] = "gaze afar", ["眼"] = "eye", ["眽"] = "to gaze; to ogle to look at", ["眾"] = "numerous; multitude; crowd", ["睅"] = "protuberant eyes", ["睆"] = "good-looking; cute", ["睇"] = "look down upon; (Cantonese) to look; to see; to look after; to think", ["睊"] = "look", ["睍"] = "goggle-eyed", ["睎"] = "to long for; to gaze at", ["睏"] = "sleepy; doze off", ["睒"] = "furtively glance; glittering", ["睖"] = "to stare straight ahead", ["睙"] = "to roll the eyeballs to look", ["睛"] = "eye", ["睜"] = "to open (eye)", ["睞"] = "gaze; stare", ["睟"] = "bright eye; clear", ["睠"] = "look fondly", ["睡"] = "to sleep", ["睢"] = "''surname''; stare", ["督"] = "supervise", ["睥"] = "look askance", ["睦"] = "friendly", ["睨"] = "look askance", ["睪"] = "testicle; to spy on", ["睫"] = "eyelashes", ["睬"] = "pay attention; take notice of; to care for", ["睯"] = "to be agonized; worried", ["睹"] = "observe; see", ["睽"] = "separated; stare", ["睿"] = "astute; perspicacious; farsighted", ["瞀"] = "indistinct vision; dim", ["瞄"] = "to aim", ["瞅"] = "to look", ["瞇"] = "to squint", ["瞋"] = "angry at", ["瞌"] = "doze off; sleepy", ["瞍"] = "blind", ["瞎"] = "blind", ["瞏"] = "gaze in terror; lonely", ["瞑"] = "close the eyes", ["瞕"] = "cataract in the eye", ["瞞"] = "conceal from", ["瞟"] = "cast a glance", ["瞠"] = "stare at something beyond reach", ["瞢"] = "eyesight obscured; to feel ashamed", ["瞥"] = "blink; glance", ["瞧"] = "look at", ["瞪"] = "stare at", ["瞫"] = "''surname''", ["瞬"] = "to wink", ["瞭"] = "look afar from a high place; clear", ["瞰"] = "bird's-eye view; glance", ["瞳"] = "pupil of the eye", ["瞵"] = "to stare at", ["瞷"] = "to spy", ["瞻"] = "gaze; view", ["瞼"] = "eyelid", ["瞽"] = "blind", ["瞿"] = "''surname''; startled", ["矇"] = "dim sighted; ignorant; deceive; cheat; hoodwink", ["矍"] = "''surname''; glance fearfully", ["矓"] = "hazy; unclear", ["矔"] = "brilliant (of eyes)", ["矗"] = "lofty; upright", ["矙"] = "bird's-eye view; glance", ["矚"] = "to gaze at; to stare at", ["矛"] = "spear; lance; pike", ["矜"] = "boast; esteem; sympathize", ["矞"] = "grand; elegant; propitious", ["矢"] = "arrow; dart", ["矣"] = "final particle", ["知"] = "to know; to be aware", ["矧"] = "(interrog.)", ["矩"] = "carpenter's square; rule", ["矬"] = "short", ["短"] = "lack; short", ["矮"] = "short (not tall)", ["矯"] = "dissemble; rectify", ["矰"] = "arrow with a streamer", ["矱"] = "standard; norm", ["石"] = "rock; stone; 10 pecks", ["矸"] = "a rock or cliff", ["矻"] = "to toil", ["矼"] = "stone bridge", ["矽"] = "silicon", ["砂"] = "sand; gravel; granule", ["砃"] = "white stone", ["砅"] = "cross stream by stepping on stones", ["砆"] = "agate; inferior gem", ["砌"] = "to build by laying bricks or stones", ["砍"] = "to chop", ["砑"] = "to calender", ["砒"] = "arsenic", ["研"] = "grind fine; study; research", ["砟"] = "fragments", ["砠"] = "rocky hill", ["砢"] = "a heap; pile (of rocks)", ["砣"] = "steelyard weight", ["砥"] = "baffle (pier); whetstone", ["砦"] = "stronghold; stockade", ["砧"] = "base for beating or chopping", ["砩"] = "name of a stone; dam up water with rocks", ["砫"] = "ancestral tablet", ["砭"] = "a stone probe; acupuncture", ["砮"] = "flint", ["砰"] = "sound of crashing; thunder", ["砲"] = "gun; cannon", ["砳"] = "rocky", ["破"] = "to break; to split; broken; damaged; worn out", ["砵"] = "alms bowl", ["砷"] = "arsenic", ["砸"] = "smash; smashed", ["硃"] = "vermilion", ["硅"] = "silicon", ["硍"] = "rumbling of rolling stones", ["硎"] = "whetstone", ["硒"] = "selenium", ["硜"] = "obstinate", ["硝"] = "saltpetre; to tan (leather)", ["硤"] = "place name", ["硫"] = "sulfur", ["硬"] = "hard; stiff; strong; firm", ["硭"] = "crude saltpetre", ["确"] = "authenticated; solid; firm", ["硯"] = "ink-stone", ["硻"] = "obstinate", ["硼"] = "boron", ["硾"] = "iodide; to weight", ["碃"] = "(stone)", ["碇"] = "anchor", ["碉"] = "Tibetan stone house", ["碌"] = "laborious; small stone; to record; to tape; to write down; to hire; to employ", ["碎"] = "to break down; to break into pieces; fragmentary", ["碏"] = "(gems)", ["碑"] = "a monument; an upright stone tablet; stele", ["碓"] = "pestle; pound with a pestle", ["碔"] = "inferior gem", ["碗"] = "bowl; cup", ["碘"] = "iodine", ["碚"] = "place name in Chongqing", ["碞"] = "cliff", ["碟"] = "dish; plate", ["碣"] = "stone tablet", ["碧"] = "green jade; bluish green; blue; jade", ["碩"] = "large; big", ["碪"] = "anvil", ["碫"] = "coarse stone (used for whetstone)", ["碬"] = "whetstone", ["碭"] = "stone with colour veins", ["碰"] = "to touch; to meet with; to bump", ["碲"] = "tellurium", ["碳"] = "carbon", ["碴"] = "fault; glass fragment; quarrel", ["確"] = "authenticated; solid; firm; real; true", ["碻"] = "solid; firm", ["碼"] = "a weight; number; yard; code; pile; stack", ["碾"] = "stone roller", ["磁"] = "magnetic; magnetism; porcelain", ["磅"] = "a measure word; pound (unit of measurement); scale; weigh", ["磈"] = "rocky; stony", ["磉"] = "stone plinth", ["磊"] = "lumpy; rock pile; uneven", ["磋"] = "deliberate; to polish", ["磎"] = "mountain stream, creek", ["磐"] = "firm; stable; rock", ["磑"] = "mill", ["磔"] = "tearing off limbs as punishment", ["磕"] = "to tap; knock", ["磚"] = "brick", ["磛"] = "cliff; peak", ["磠"] = "ammonium", ["磡"] = "dangerous sea-cliff", ["磣"] = "gritty", ["磥"] = "a heap of stones; boulders", ["磧"] = "moraine; rocks in shallow water", ["磨"] = "grindstone; to sharpen; to delay; hardship; to grind; to rub", ["磪"] = "a high mountain; precipitous", ["磬"] = "ancient percussion instrument made from stone or jade", ["磯"] = "breakwater; jetty", ["磴"] = "cliff-ledge; stone step", ["磷"] = "phosphorus", ["磹"] = "stone wedge", ["磺"] = "sulfur", ["磻"] = "name of a river in Shaanxi", ["磽"] = "stony soil", ["礁"] = "reef; shoal rock", ["礄"] = "bridge", ["礅"] = "stone block", ["礎"] = "foundation; base", ["礙"] = "to hinder; to obstruct; to block", ["礞"] = "(mineral)", ["礡"] = "fill; extend", ["礦"] = "ore; mine", ["礧"] = "roll stone down hill; stone pile", ["礪"] = "grind; sandstone", ["礫"] = "gravel; small stone", ["礬"] = "alum", ["礱"] = "grind; mill", ["礵"] = "arsenic", ["示"] = "to show; reveal", ["礽"] = "blessings", ["社"] = "society; group", ["礿"] = "spring imperial ancestral sacrifice", ["祀"] = "offer sacrifice to", ["祁"] = "''surname''", ["祂"] = "he, it (pronoun used for God)", ["祅"] = "calamity from terrestrial disorder", ["祆"] = "Ormazda, god of the Zoroastrians, extended to god of the Manicheans", ["祇"] = "but; only; earth-spirit; peace", ["祈"] = "implore; pray; please", ["祉"] = "felicity", ["祊"] = "side altar inside ancestral temple", ["祏"] = "stone shrine", ["祐"] = "protect", ["祓"] = "cleanse; remove evil", ["祔"] = "worship ancestors", ["祕"] = "secret", ["祖"] = "ancestor; forefather; grandparents", ["祗"] = "respectful(ly)", ["祚"] = "blessing; the throne", ["祛"] = "to exorcize", ["祜"] = "celestial blessing", ["祝"] = "invoke; pray to; wish; to express good wishes", ["神"] = "God; unusual; mysterious; soul; spirit; divine essence; lively; spiritual being", ["祟"] = "evil spirit", ["祠"] = "ancestral hall; temple", ["祥"] = "auspicious; propitious", ["祧"] = "ancestral hall", ["票"] = "bank note; ticket", ["祫"] = "triennial sacrifice to ancestors", ["祭"] = "offer sacrifice; hold memorial service", ["祲"] = "evil force", ["祺"] = "felicity", ["祼"] = "pour out libation", ["祿"] = "good fortune; official salary", ["禁"] = "to prohibit; to forbid; endure", ["禂"] = "to pray; prayer", ["禊"] = "purification ceremony", ["禋"] = "sacrifice", ["禍"] = "disaster", ["禎"] = "auspicious; lucky", ["福"] = "good fortune; happiness; luck; Fujian province (abbrev.); ''surname''", ["禔"] = "well-being", ["禕"] = "excellent; precious; rare", ["禖"] = "heir-requesting sacrifice", ["禘"] = "imperial ancestral sacrifice", ["禚"] = "place name", ["禜"] = "sacrifice", ["禠"] = "felicity; blessing", ["禡"] = "sacrifice to god of war", ["禢"] = "''surname''", ["禤"] = "''surname''", ["禦"] = "defend; resist", ["禧"] = "favourable luck; good fortune", ["禨"] = "omen; pray", ["禪"] = "abdicate; meditation; abstraction; (Zen) Buddhism", ["禫"] = "sacrifice at the end of mourning", ["禮"] = "gift; propriety; rite", ["禰"] = "temple of deceased father; ''surname''", ["禱"] = "prayer; pray; supplication", ["禳"] = "sacrifice for avoiding calamity", ["禴"] = "spring imperial ancestral sacrifice", ["禸"] = "trample", ["禹"] = "name of an emperor", ["禺"] = "(place); district", ["禽"] = "birds; fowl", ["禾"] = "cereal; grain", ["禿"] = "bald; blunt", ["秀"] = "to ear; beautiful; elegant; outstanding; to show; to display; show", ["私"] = "personal; private; selfish", ["秈"] = "common rice", ["秉"] = "to grasp; hold; maintain", ["秋"] = "autumn; fall; harvest time; a swing", ["秏"] = "to waste, to destroy, to diminish", ["科"] = "branch of study; administrative section; division; field; branch; stage directions; family (taxonomy); rules; laws; to mete out (punishment); to levy (taxes, etc.); to fine someone", ["秒"] = "(a measure word); second", ["秕"] = "grain not fully grown; husks; withered grain; unripe grain", ["秘"] = "secret", ["租"] = "rent; taxes", ["秠"] = "(millet)", ["秣"] = "feed a horse with grain; horse feed", ["秤"] = "steelyard; steel yard; scales", ["秦"] = "''surname''; name of a dynasty", ["秧"] = "shoots; sprouts", ["秩"] = "order; orderliness", ["秪"] = "only, merely", ["秫"] = "{{taxlink|Panicum italicum|species}}", ["秬"] = "black millet", ["秭"] = "billion", ["秷"] = "sound of reaping", ["秸"] = "stalks of millet, corn", ["移"] = "to move; to shift; to change; to alter; to remove", ["稀"] = "diluted; sparse", ["稂"] = "grass; weeds", ["稅"] = "taxes; duties", ["稈"] = "stalks of grain", ["稊"] = "grass; tares", ["程"] = "rule; order; regulations; formula; journey; procedure; sequence; ''surname''", ["稌"] = "glutinous rice", ["稍"] = "somewhat; a little", ["稑"] = "late-planted early-ripening grain", ["稔"] = "ripe grain", ["稗"] = "millet; {{taxlink|Panicum crus|species}}", ["稙"] = "early-planted crop", ["稚"] = "infantile; young", ["稛"] = "full", ["稜"] = "corner; square beam", ["稞"] = "(wheat)", ["稟"] = "natural property or endowment; report to (a superior)", ["稠"] = "dense; crowded; thick; many", ["種"] = "to plant; to cultivate; kind; type; race; breed; seed; species (taxonomy)", ["稱"] = "to call; to praise; to weigh; to estimate; to consider; to address; to name; to say; commend; steelyard; balanced; to fit; well-off; suitable", ["稷"] = "(millet)", ["稹"] = "accumulate; fine and close", ["稻"] = "paddy; rice", ["稼"] = "sow grain", ["稽"] = "bow to the ground; inspect; check", ["稿"] = "manuscript; draft; stalk of grain", ["穀"] = "grain; corn", ["穄"] = "(millet)", ["穆"] = "solemn", ["穇"] = "{{taxlink|Panicum frumentaceum|species}}", ["穈"] = "porridge; rice sprouts", ["穋"] = "late-planted early-ripening grain", ["穌"] = "revive", ["積"] = "to amass; to accumulate; to store; old; long-standing", ["穎"] = "clever; gifted", ["穗"] = "ear of grain", ["穜"] = "early-planted late-ripening grain", ["穟"] = "ear of grain", ["穠"] = "thickly clustered (as blossoms)", ["穡"] = "gather in harvest", ["穢"] = "dirt; filth", ["穧"] = "stack grain stalks evenly", ["穨"] = "become bald; decadent", ["穩"] = "settled; steady; stable", ["穫"] = "reap; harvest", ["穭"] = "wild grain", ["穮"] = "to weed", ["穰"] = "abundant; stalk of grain", ["穴"] = "hole; cave", ["穵"] = "dig; scoop out", ["究"] = "after all; to investigate; to study carefully", ["穸"] = "the gloom of the grave; a tomb or grave; death", ["穹"] = "arched; lofty; vast", ["空"] = "emptied; leisure; air; sky; empty; in vain", ["穿"] = "to bore through; pierce; perforate; penetrate; pass through; to dress; to wear; to put on; to thread", ["窀"] = "grave", ["突"] = "to dash; to move forward quickly", ["窄"] = "narrow", ["窅"] = "deep", ["窆"] = "put a coffin in grave", ["窈"] = "deep; quiet and elegant", ["窊"] = "lowland swamp", ["窋"] = "in a hole", ["窌"] = "cellar", ["窒"] = "obstruct; stop up", ["窔"] = "dark; deep; southeast corner of room", ["窕"] = "quiet and elegant", ["窖"] = "cellar", ["窗"] = "shutter; window", ["窘"] = "distressed; embarrassed", ["窞"] = "pit; cave", ["窟"] = "cave; hole", ["窠"] = "nest", ["窣"] = "rush out of a den; rustling", ["窨"] = "cellar; to scent tea with flowers", ["窩"] = "nest", ["窪"] = "depression; sunken; swamp", ["窬"] = "hole in a wall", ["窮"] = "exhausted; poor", ["窯"] = "kiln; oven", ["窳"] = "bad; useless; weak", ["窴"] = "fill in", ["窵"] = "deep; distant; profound", ["窶"] = "poor; rustic", ["窸"] = "disturbing noises", ["窺"] = "peep; pry into", ["窾"] = "hollow; ignorant", ["窿"] = "cavity; hole", ["竁"] = "dig a hole", ["竄"] = "flee; escape; run away; leap", ["竅"] = "intelligence; opening", ["竇"] = "hole; aperture; cavity; (anatomy) sinus", ["竊"] = "steal; secretly; personally", ["立"] = "set up; to stand", ["竑"] = "large; to estimate", ["站"] = "station; to stand; to halt; to stop", ["竟"] = "unexpectedly; actually; to go so far as to; indeed", ["章"] = "chapter; seal; section", ["竣"] = "complete; finish", ["童"] = "boy; child; children", ["竦"] = "horrified; incite; raise", ["竭"] = "exhaust", ["端"] = "end; extremity; item; port; to hold something level with both hands; to carry; regular", ["競"] = "to compete; to contend; to struggle", ["竹"] = "bamboo", ["竺"] = "''surname''", ["竽"] = "(mus. instr.)", ["竿"] = "pole", ["笄"] = "15 years old; hairpin for bun", ["笆"] = "an article made of bamboo strips; fence", ["笈"] = "trunks (for books)", ["笊"] = "", ["笎"] = "bamboo with black patches", ["笏"] = "tablet held at an audience", ["笐"] = "bamboos placed across wooden frames on which grain may be stored in damp climates", ["笑"] = "laugh; smile", ["笙"] = "(mus. instr.)", ["笛"] = "flute", ["笞"] = "to whip with bamboo strips", ["笠"] = "bamboo rain hat", ["笤"] = "", ["笥"] = "hamper; trunk", ["符"] = "mark; sign; talisman; to seal; to correspond (to); tally; symbol; written charm; to coincide", ["笨"] = "stupid; foolish; silly; slow-witted; clumsy", ["笪"] = "''surname''; rough bamboo mat", ["笫"] = "planks of bed; sleeping-mat", ["第"] = "(''ordinal prefix''); -th; rank", ["笭"] = "bamboo screen", ["笮"] = "board under tiles on roof; narrow", ["笰"] = "duster", ["笱"] = "basket for trapping fish", ["笲"] = "osier basket of brides", ["笳"] = "whistle made of reed", ["笵"] = "bamboo mould", ["笸"] = "flat basket-tray", ["笻"] = "note: song screen font is wrong. should be", ["筅"] = "bamboo brush for utensils", ["筆"] = "pen; pencil; writing brush; to write or compose; the strokes of Chinese characters", ["筇"] = "species of bamboo", ["筈"] = "arrow end", ["等"] = "class; rank; grade; equal to; same as; wait for; await; et cetera; and so on", ["筊"] = "bamboo rope", ["筋"] = "muscle", ["筌"] = "bamboo fish trap", ["筍"] = "bamboo shoot", ["筎"] = "thin outside skin of bamboo", ["筏"] = "raft (of logs)", ["筐"] = "basket", ["筑"] = "build; five-string lute", ["築"] = "build; five-string lute", ["筒"] = "tube; cylinder", ["答"] = "reply; answer; return; respond; echo; to answer; agree", ["策"] = "method; plan; policy; scheme", ["筘"] = "(a measure of width of cloth)", ["筠"] = "skin of bamboo", ["筤"] = "young bamboo", ["筥"] = "round bamboo basket", ["筦"] = "''surname''; to control; tube; pipe", ["筧"] = "bamboo water pipe", ["筩"] = "tube; cylinder", ["筭"] = "regard as; to figure", ["筮"] = "divine by stalk", ["筰"] = "cable", ["筱"] = "dwarf bamboo; thin bamboo", ["筲"] = "basket; bucket", ["筳"] = "bamboo pole; spindle", ["筴"] = "policy; scheme", ["筵"] = "bamboo mat for sitting", ["筷"] = "chopstick", ["筸"] = "name of a place in Henan", ["箂"] = "(bamboo)", ["箇"] = "general classifier", ["箊"] = "bamboo with thin; wide leaves", ["箋"] = "letter; note-paper", ["箍"] = "hoop; bind with hoops", ["箎"] = "bamboo flute with 8 holes", ["箏"] = "(mus. instr.)", ["箐"] = "to draw a bamboo bow or crossbow", ["箑"] = "fan", ["箔"] = "bamboo screen; door screen; metal foil; leaf; sheet; tinsel", ["箕"] = "winnow basket", ["算"] = "regard as; to figure; to calculate; to compute", ["箘"] = "bamboo shoots", ["箙"] = "quiver", ["箛"] = "(bamboo); trumpet for chariots", ["箜"] = "ancient string music instrument", ["箝"] = "pliers; pincers; to clamp", ["箠"] = "flog; whip", ["管"] = "to take care (of); to control; to manage; to be in charge of; to look after; to run; tube; pipe", ["箬"] = "(bamboo); skin of bamboo", ["箭"] = "arrow", ["箯"] = "bamboo sedan chair", ["箱"] = "box; trunk; chest", ["箴"] = "warn", ["箸"] = "chopsticks", ["箾"] = "hit with a pole; pole dance", ["節"] = "festival; section; segment; point; part; to economize; to save; temperate", ["篁"] = "(bamboo); bamboo grove", ["範"] = "model", ["篆"] = "seal characters", ["篇"] = "sheet; piece of writing; (a measure word); chapter; article", ["篋"] = "portfolio; trunk", ["篌"] = "(mus. instr.)", ["篔"] = "(bamboo)", ["篘"] = "basket for straining; to strain", ["篙"] = "pole for punting boats", ["篚"] = "round covered basket", ["篛"] = "cuticle of bamboo plant", ["篜"] = "bamboo", ["篝"] = "bamboo frame for drying clothes", ["篟"] = "luxuriant growth of bamboo", ["篠"] = "dwarf bamboo", ["篡"] = "to seize; to usurp", ["篢"] = "bamboo hat", ["篤"] = "serious (illness); sincere; true", ["篥"] = "bamboos good for poles; horn", ["篦"] = "fine-toothed comb; to comb", ["篧"] = "creel for trapping fish", ["篨"] = "crude bamboo mat", ["篩"] = "to filter; to sift; to sieve", ["篪"] = "bamboo flute with 8 holes", ["篰"] = "sieve-like utensil", ["篲"] = "broom", ["篳"] = "wicker", ["篴"] = "flute", ["篷"] = "sail", ["篹"] = "compose; compile; food; delicacies", ["篾"] = "bamboo splints for baskets", ["簁"] = "sieve; to sift, to strain", ["簃"] = "small house connected to large one", ["簆"] = "healds of a loom", ["簇"] = "crowded; frame work for silkworms; gather foliage; a measure word; bunch", ["簋"] = "round basket of bamboo", ["簌"] = "dense vegetation; sieve", ["簍"] = "deep basket", ["簏"] = "box; basket", ["簑"] = "raincape made of grass", ["簜"] = "(bamboo)", ["簞"] = "round basket for cooked rice", ["簟"] = "fine woven grass mat", ["簠"] = "basket used in state worship", ["簡"] = "simple", ["簣"] = "basket for carrying soil", ["簥"] = "large pipe", ["簦"] = "large umbrella for stalls", ["簧"] = "metallic reed; spring of lock", ["簨"] = "cross-beam for hanging bells", ["簪"] = "hairpin", ["簫"] = "(flute); pan pipes; xiao - a vertical bamboo flute", ["簬"] = "(bamboo)", ["簰"] = "bamboo raft", ["簷"] = "eaves", ["簸"] = "dust pan; toss (as waves); to winnow", ["簹"] = "(bamboo)", ["簻"] = "big; hunger", ["簽"] = "sign one's name", ["簾"] = "curtain", ["簿"] = "a book; a register; account-book", ["籀"] = "''surname''; (writing); develop", ["籃"] = "basket; goal", ["籊"] = "long bamboo (for fishing rod)", ["籌"] = "a tally; counter; ticket; plan; devise; manage", ["籍"] = "record; register; native place", ["籐"] = "rattan; cane", ["籓"] = "big winnow basket", ["籔"] = "basket for draining rice", ["籙"] = "chart; list; memorandum", ["籚"] = "basket made of rush; spear-shaft", ["籛"] = "''surname''", ["籜"] = "sheath around joints of bamboo", ["籟"] = "music; musical pipe with 3 reeds", ["籠"] = "basket; cage", ["籣"] = "bow case; quiver", ["籤"] = "a note; a stick; sign one's name", ["籥"] = "flute; key", ["籧"] = "crude bamboo mat", ["籩"] = "basket for fruits", ["籪"] = "bamboo fish trap", ["籫"] = "bamboo utensil", ["籬"] = "a fence", ["籮"] = "basket", ["籯"] = "slender basket for chopsticks", ["籲"] = "implore", ["米"] = "rice; metre", ["籵"] = "dm", ["籸"] = "residue from oil making", ["籹"] = "cakes of rice-flour and honey", ["籽"] = "seeds", ["粁"] = "kilometre", ["粉"] = "dust; powder", ["粑"] = "tsamba (food in Tibet)", ["粒"] = "a grain; a granule", ["粔"] = "cakes made from rice flour twisted into rings", ["粕"] = "grains in distilled liquor", ["粗"] = "coarse; rough; thick; unfinished; vulgar; rude; crude", ["粘"] = "to stick; paste; sticky", ["粞"] = "ground rice; thresh rice", ["粟"] = "grain; millet", ["粢"] = "common millet", ["粥"] = "congee; gruel; porridge", ["粨"] = "hectometre", ["粱"] = "millet", ["粲"] = "beautiful; bright; splendid; smilingly", ["粵"] = "Cantonese; Guangdong", ["粹"] = "pure; unmixed; essence", ["粺"] = "polished rice", ["粻"] = "food; white cooked rice", ["粼"] = "clear (as of water)", ["粽"] = "rice dumplings wrapped in leaves", ["精"] = "energy; perfect; excellent; refined; very; proficient", ["粿"] = "cooked rice for making cake", ["糅"] = "mix", ["糈"] = "official pay; sacrificial rice", ["糊"] = "paste; cream; muddled; scorched", ["糒"] = "food for a journey; cakes", ["糔"] = "to wash (rice; etc.)", ["糕"] = "cake", ["糖"] = "sugar; sweets; candy", ["糗"] = "''surname''; dry provisions", ["糙"] = "rough; coarse (in texture)", ["糜"] = "dissolved; rice-gruel; wasted", ["糝"] = "to mix (of powders)", ["糞"] = "manure; dung", ["糟"] = "alcohol dregs; to waste; decayed", ["糠"] = "husk", ["糢"] = "blurred", ["糧"] = "grain; provisions", ["糨"] = "starch; paste; to starch", ["糯"] = "glutinous rice", ["糰"] = "dumpling", ["糱"] = "fermenting grain; yeast", ["糲"] = "coarse (grain)", ["糴"] = "buy up (grain)", ["糶"] = "sell (grain from granary)", ["糸"] = "fine silk", ["系"] = "be; system; to tie; department; faculty", ["糾"] = "gather together; to investigate; to entangle; correct", ["紀"] = "discipline; age; era; period; order; record", ["紂"] = "name of an emperor; saddle crupper", ["紃"] = "bind; silk cords", ["約"] = "appointment; agreement; to arrange; to restrict; approximately; weigh", ["紅"] = "red; revolutionary; prosperity; bonus; popular", ["紆"] = "''surname''; cord; twist", ["紇"] = "tassels; knot", ["紈"] = "white; white silk", ["紉"] = "to string; to thread (needle)", ["紊"] = "involved; tangled; disorder", ["紋"] = "line; trace; mark", ["納"] = "to accept; to pay (taxes, etc.)", ["紐"] = "to turn; to wrench; button", ["紑"] = "bright; glossy (of silk)", ["紓"] = "slow; to free from", ["純"] = "pure; simple; unmixed; genuine", ["紕"] = "error; carelessness; spoiled silk", ["紗"] = "cotton yarn; muslin", ["紘"] = "cord for hat; vast", ["紙"] = "paper", ["級"] = "level; grade; rank; step", ["紛"] = "numerous; disorderly", ["紜"] = "numerous", ["紝"] = "thread used for weaving", ["紞"] = "silk fringe of a coronet", ["紟"] = "a sash; to tie", ["素"] = "plain; element", ["紡"] = "spin", ["索"] = "to search; to demand; to ask; to exact; large rope; isolated", ["紩"] = "to stitch; mend", ["紫"] = "purple; violet; imperial; palace", ["紬"] = "silk", ["紮"] = "tie with string or ribbon; bind with rope or cord; to stop", ["累"] = "accumulate; implicate; tired; cumbersome", ["細"] = "fine; minutely; thin; slender", ["紱"] = "ribbon for a seal; sash", ["紲"] = "leash; rein", ["紳"] = "member of gentry", ["紵"] = "Boehmeria nivea", ["紹"] = "connect; to introduce", ["紺"] = "violet or purple", ["紼"] = "heavy rope; rope of a bier", ["紽"] = "braid on a robe", ["紾"] = "crooked; obstinate; twist a cord", ["紿"] = "bind; pretend; to fool", ["絀"] = "crimson silk; deficiency; to stitch", ["絁"] = "rough, indelicate silk", ["終"] = "end; finish", ["絃"] = "string of mus. instr.", ["組"] = "to form; compose; make up; group; to organize; cord", ["絅"] = "monotone garment with no lining", ["絆"] = "to trip; stumble; hinder", ["絏"] = "leash; rein", ["結"] = "knot; sturdy; to bear (fruit); bond; to tie; to bind", ["絓"] = "anxious; coarse silk; fasten", ["絕"] = "cut short; extinct; to disappear; to vanish; absolutely; by no means", ["絖"] = "fine floss-silk or cotton", ["絛"] = "braid; cord; sash", ["絜"] = "marking line; pure; regulate; clean", ["絞"] = "hang (a criminal); to turn; to twist; to wind", ["絡"] = "net-like; small net", ["絢"] = "adorned; swift", ["給"] = "to supply; provide; to; for; for the benefit of; to give; to allow; to do something (for someone); (passive particle)", ["絨"] = "velvet; woolen", ["絪"] = "generative force; magic emanation", ["絮"] = "line with cotton wadding", ["絰"] = "hempen cloth worn by mourner", ["統"] = "to gather; to unite; to unify; whole", ["絲"] = "silk; thread; trace", ["絳"] = "purple-red", ["絹"] = "thick but loosely woven silk", ["絺"] = "fine fibres of hemp; linen", ["絻"] = "cap", ["絿"] = "urgent; pressing", ["綀"] = "a kind of sackcloth", ["綁"] = "to tie; bind or fasten together", ["綃"] = "raw silk", ["綅"] = "red silk crest of helmet", ["綆"] = "rope; well-rope", ["綈"] = "coarse greenish black pongee", ["綌"] = "coarse hempen fabric", ["綍"] = "heavy rope; ropes of a bier", ["綎"] = "silk braided cord", ["綏"] = "pacify", ["綑"] = "a bunch; tie together", ["經"] = "classics; sacred book; pass through; to undergo; scripture", ["綖"] = "cap tassels", ["綜"] = "to sum up", ["綠"] = "green", ["綢"] = "(light) silk", ["綣"] = "bound in a league", ["綦"] = "dark grey; superlative; variegated", ["綪"] = "dark red colour (of silk product)", ["綬"] = "cord on a seal", ["維"] = "to preserve; to maintain; to hold together; dimension", ["綮"] = "embroidered banner", ["綯"] = "bind; cord; twist", ["綰"] = "bind up; string together", ["綱"] = "head rope of a fishing net; guiding principle; key link; (taxonomy) class; outline; programme", ["網"] = "net; network", ["綴"] = "sew; stitch together; combine; link; connect", ["綵"] = "coloured; variegated", ["綸"] = "classify; silk thread; twist silk", ["綹"] = "skein; tuft; lock", ["綺"] = "beautiful; open-work silk", ["綻"] = "ripped seam", ["綽"] = "generous; ample; wide; spacious; well-off; cook by scalding (see 焯)", ["綾"] = "damask; thin silk", ["綿"] = "cotton; incessant; soft; downy", ["緁"] = "to join, to splice, to braid", ["緄"] = "cord; embroidered sash; sew", ["緅"] = "purple silk", ["緇"] = "Buddhists; black silk; dark", ["緊"] = "tight; nervous; strict", ["緋"] = "dark red; purple silk", ["緌"] = "strings of cap", ["緎"] = "seam", ["緒"] = "beginnings; clues; mental state; thread", ["緗"] = "light yellow colour", ["緘"] = "letters; to close; seal", ["緙"] = "to woof", ["線"] = "thread; string; wire; line", ["緝"] = "to stitch finely", ["緞"] = "satin", ["締"] = "closely joined; connection; knot", ["緡"] = "cord; fishing-line; string of coins", ["緣"] = "along; predestined affinity; reason; edge", ["緦"] = "fine linen", ["編"] = "weave; plait; organize; group; arrange; edit; compile; write; compose; fabricate", ["緩"] = "slow; sluggish; gradual; to postpone", ["緪"] = "a rope", ["緬"] = "Burma; distant", ["緯"] = "latitude", ["緰"] = "net", ["緱"] = "''surname''", ["緲"] = "indistinct", ["練"] = "to practise; to train; to perfect (one's skill); to drill", ["緶"] = "braid", ["緹"] = "orange red silk", ["緻"] = "fine and close", ["縃"] = "fine silk", ["縈"] = "wind around", ["縉"] = "red silk", ["縊"] = "hang; strangle oneself", ["縋"] = "let down with a rope", ["縏"] = "small bag; sack", ["縐"] = "crepe; wrinkle", ["縑"] = "thick waterproof silk", ["縕"] = "hemp; vague; mysterious; generative force; orange colour", ["縗"] = "mourning garments", ["縚"] = "braid; cord; sash", ["縛"] = "to bind; to tie", ["縝"] = "fine and close", ["縞"] = "plain white silk", ["縟"] = "adorned; beautiful", ["縠"] = "fine silk gauze", ["縡"] = "matter, affair", ["縢"] = "bind; cord; tie up", ["縣"] = "a district; county", ["縫"] = "crack; seam; to sew; to stitch", ["縭"] = "bridal veil or kerchief", ["縮"] = "to withdraw; to pull back; to contract; to shrink; to reduce", ["縯"] = "long", ["縰"] = "band for the hair", ["縱"] = "even if; release; vertical", ["縲"] = "bind; bond", ["縳"] = "tie up", ["縴"] = "boatman's tow-rope", ["縵"] = "plain thin silk; slow; unadorned", ["縶"] = "connect; tie up", ["縷"] = "state in detail; strand; thread", ["縹"] = "misty; indistinct", ["縻"] = "tie up", ["總"] = "always; to assemble; gather; total; overall; head; chief; general; in every case", ["績"] = "merit; accomplishment", ["縿"] = "fringe; ornament of banner", ["繁"] = "complicated; many; in great numbers", ["繃"] = "to have a taut face; to stretch; taut; to tie; to bind", ["繄"] = "interj.; sighing sound", ["繅"] = "reel silk from cocoons", ["繆"] = "to wind round; ''surname''", ["繇"] = "cause; means; interpretations of the trigrams; folk-song; forced labour", ["繈"] = "cloth for carrying baby on back", ["繐"] = "fine and loose cloth; tassel", ["繒"] = "to tie; to bind; ''surname''; silk fabrics", ["織"] = "weave", ["繕"] = "make a fair copy of", ["繖"] = "umbrella; parasol", ["繘"] = "a well-rope", ["繙"] = "translate", ["繚"] = "lines for a sail; wind round", ["繞"] = "go around; to wind (around)", ["繠"] = "dangle; hang loosely", ["繡"] = "to embroider", ["繢"] = "multi-colour; to draw", ["繣"] = "obstinate; perverse", ["繨"] = "a knot (of a rope)", ["繩"] = "rope", ["繪"] = "to draw; to paint", ["繫"] = "connect; to tie", ["繭"] = "cocoon", ["繯"] = "bind; tie; noose", ["繰"] = "to reel silk from cocoons", ["繳"] = "hand in; hand over", ["繸"] = "tassel", ["繹"] = "continuous; explain; unravel", ["繻"] = "fine silk", ["繼"] = "to continue; to follow after; then; afterwards; to go on with; to succeed; to inherit", ["繽"] = "helter-skelter; mixed colours; in confusion", ["繾"] = "attached to; loving", ["纁"] = "crimson", ["纂"] = "compile", ["纆"] = "bind; cord", ["纇"] = "flaw; knot", ["纈"] = "knot; tie a knot", ["纊"] = "fine floss-silk or cotton", ["續"] = "continue; replenish", ["纍"] = "bind; creep; dispirited", ["纏"] = "to bother; wind around; wrap round; coil; involve; annoy; tangle", ["纑"] = "hempen thread; to dress hemp", ["纓"] = "tassel of hat", ["纔"] = "just; not until", ["纕"] = "cord to hold up sleeves", ["纖"] = "fine; delicate; minute", ["纘"] = "carry on", ["纙"] = "string on which coins are strung", ["纚"] = "long; dangling; kerchief; rope", ["纛"] = "big banner; feather banner or fan", ["纜"] = "cable; hawser", ["缶"] = "pottery", ["缸"] = "jar; vat", ["缺"] = "lack; scarce; vacant post; to run short of", ["缽"] = "alms bowl; small earthenware basin", ["缾"] = "vase; bottle; pitcher", ["罃"] = "earthen jar with long neck", ["罄"] = "entirely; exhausted; stern", ["罅"] = "crack; grudge", ["罈"] = "earthen jar", ["罋"] = "earthen jar; urn", ["罌"] = "earthen jar with small mouth", ["罍"] = "jar; wooden drinking cup", ["罏"] = "pile of earth to keep wine jars", ["罐"] = "can; jar; pot", ["网"] = "a net", ["罔"] = "deceive; there is none", ["罕"] = "rare", ["罘"] = "net for catching the rabbit", ["罛"] = "large fishing net", ["罝"] = "net for catching rabbits", ["罟"] = "implicate; net for birds or fish", ["罠"] = "animal trap", ["罡"] = "(stars)", ["罣"] = "anxious about", ["罥"] = "impede", ["罦"] = "net for catching birds", ["罨"] = "foment; valve", ["罩"] = "cover; fish trap (basket); shade", ["罪"] = "guilt; crime; fault; blame; sin", ["罫"] = "squares of a chess board", ["罭"] = "drag-net", ["置"] = "to install; to place; to put", ["罰"] = "to punish; to penalize", ["署"] = "office; bureau", ["罵"] = "scold; abuse", ["罶"] = "creel; fish basket", ["罷"] = "(final part.); to stop; cease; dismiss; suspend; to quit; to finish", ["罹"] = "happen to; sorrow; suffer from", ["罻"] = "bird net", ["罽"] = "(fishing net); woolen rug", ["罾"] = "large square net", ["罿"] = "bird net", ["羃"] = "cover of cloth for food; veil", ["羅"] = "to collect; to gather; to catch; to shift; gauze", ["羆"] = "(bear)", ["羇"] = "inn; to lodge", ["羈"] = "halter; restrain", ["羊"] = "caprid", ["羋"] = "''surname''", ["羌"] = "educated; name of a tribe; strong", ["美"] = "beautiful; beauty; America", ["羑"] = "to lead", ["羔"] = "lamb", ["羖"] = "black ewe", ["羚"] = "antelope", ["羜"] = "five-month-old lamb", ["羝"] = "billy goat; ram", ["羞"] = "shy; ashamed; shame; bashful", ["羢"] = "wool of sheep", ["群"] = "crowd; flock; group", ["羥"] = "hydroxyl (radical)", ["羧"] = "(chem.) carboxyl (radical)", ["羨"] = "to envy", ["義"] = "justice; righteousness; meaning", ["羭"] = "black ram", ["羯"] = "castrated buck caprid", ["羰"] = "carbonyl (radical)", ["羱"] = "ovis ammon", ["羲"] = "''surname''; name of an emperor", ["羵"] = "spirit", ["羶"] = "rank odour (of sheep or goats)", ["羸"] = "entangled; lean", ["羹"] = "soup", ["羼"] = "confusion; sheep crowding", ["羽"] = "feather", ["羿"] = "name of a famous archer", ["翀"] = "soar", ["翁"] = "elderly person", ["翃"] = "to swarm (of insects)", ["翅"] = "wing", ["翊"] = "assist; ready to fly; respect", ["翌"] = "bright; tomorrow", ["翎"] = "tail feathers", ["翏"] = "the sound of the wind; to soar", ["習"] = "to practise; to study; habit", ["翔"] = "soar", ["翕"] = "agree", ["翛"] = "hastiness", ["翟"] = "''surname''; long-tail pheasant", ["翠"] = "bluish-green; green jade", ["翡"] = "green jade; kingfisher", ["翣"] = "wooden fan carried in procession", ["翥"] = "soar", ["翦"] = "cut with scissors; scissors", ["翩"] = "fly fast", ["翪"] = "uneven flight of a bird", ["翫"] = "play with", ["翬"] = "to fly; variegated pheasant", ["翮"] = "quill", ["翯"] = "glistening plumage of birds", ["翰"] = "pen", ["翱"] = "soar; hover", ["翳"] = "feather screen; to screen; to shade", ["翹"] = "outstanding; to raise", ["翻"] = "flit about; translate; turn over", ["翼"] = "wing", ["翽"] = "noise of bird's wings", ["翾"] = "flirtatious; short flight", ["翿"] = "feather banner or fan", ["耀"] = "brilliant; glorious", ["老"] = "old; aged; venerable; outdated; experienced; (affectionate prefix)", ["考"] = "to check; to verify; to test; to examine", ["耄"] = "aged", ["者"] = "-ist, -er (person); person (who does something)", ["耆"] = "man of sixty or seventy", ["耇"] = "wrinkled face of the elderly", ["耋"] = "aged; in one's eighties", ["而"] = "and; as well as; but (not); yet (not); (shows causal relation); (shows change of state); (shows contrast)", ["耍"] = "play with; to juggle", ["耎"] = "pliable", ["耏"] = "''surname''; beard", ["耐"] = "to withstand; to bear", ["耑"] = "concentrated; specialized", ["耒"] = "plough", ["耔"] = "hoe up soil around plants", ["耕"] = "to plough; to till", ["耗"] = "to waste; to spend; to consume; to squander; mouse; new", ["耘"] = "to weed", ["耙"] = "a rake; harrow", ["耜"] = "plough; ploughshare", ["耞"] = "flail", ["耡"] = "hoe", ["耤"] = "plough", ["耦"] = "pair; mate; ploughshare", ["耨"] = "hoe", ["耩"] = "to plough; to sow", ["耪"] = "to weed", ["耬"] = "drill for sowing grain", ["耰"] = "harrow", ["耳"] = "ear", ["耶"] = "(final part.); ''phonetic''", ["耷"] = "big ear; to droop", ["耽"] = "indulge; delay", ["耿"] = "bright", ["聃"] = "ears without rim", ["聆"] = "to listen", ["聊"] = "to chat; to have a chat; to kill time", ["聖"] = "holy; sacred; saint; sage", ["聘"] = "betrothed; engage (teacher); hire", ["聚"] = "form gathering; gather", ["聝"] = "cut off the left ear of the slain", ["聞"] = "hear; news; celebrated; sniff at", ["聯"] = "to ally; to unite; to join", ["聰"] = "quick at hearing; wise; clever; sharp-witted; intelligent; acute", ["聱"] = "difficult to pronounce", ["聲"] = "sound; voice; (a measure word, used for sounds); tone; noise", ["聳"] = "excite; raise up; to shrug; high; lofty; towering", ["聵"] = "born deaf; deaf", ["聶"] = "''surname''; whisper", ["職"] = "office; duty", ["聹"] = "earwax", ["聽"] = "let; allow; listen; hear; obey", ["聾"] = "deaf", ["聿"] = "introductory part.; pen", ["肄"] = "descendants; distress; practice", ["肅"] = "Gansu; respectful", ["肆"] = "four (fraud-proof); market", ["肇"] = "at first; devise; originate", ["肉"] = "meat; flesh", ["肋"] = "rib", ["肌"] = "flesh; muscle", ["肏"] = "to fuck", ["肐"] = "armpit, arms", ["肓"] = "region between heart and diaphragm", ["肕"] = "tough, strong, hard", ["肖"] = "similar; resembling; to resemble; to be like", ["肘"] = "elbow; pork shoulder", ["肙"] = "a small worm; to twist; to surround; empty", ["肚"] = "belly; tripe", ["肛"] = "anus", ["肜"] = "''surname''", ["肝"] = "liver", ["股"] = "share; portion; section; part; thigh; (a measure word, e.g., use with electric current); whiff", ["肢"] = "limb", ["肥"] = "fat; fertile; loose-fitting", ["肩"] = "shoulder", ["肪"] = "animal fat", ["肫"] = "gizzard", ["肮"] = "filthy", ["肯"] = "to agree; to consent; to be ready (to do something); willing", ["肱"] = "brachium; humerus", ["育"] = "nourish; to rear", ["肴"] = "meat dishes", ["肵"] = "table", ["肸"] = "giggle; scatter", ["肺"] = "lung", ["肼"] = "hydrazine", ["肽"] = "peptide", ["胂"] = "arsine", ["胃"] = "stomach", ["胄"] = "descendants", ["胊"] = "yoke", ["背"] = "learn by heart; the back of the body; to be burdened; to carry on the back or shoulder", ["胍"] = "guanidine", ["胎"] = "fetus; litter", ["胏"] = "dried meat with bone", ["胑"] = "wings of birds; legs of animals", ["胔"] = "rotten meat; bones of dead animal", ["胖"] = "fat; plump", ["胗"] = "gizzard", ["胙"] = "confer upon; sacrificial flesh", ["胚"] = "fetus", ["胛"] = "shoulder blade", ["胜"] = "peptide", ["胝"] = "callous", ["胞"] = "the placenta; womb", ["胠"] = "flank of animal; open", ["胡"] = "barbarian; recklessly; ''surname''", ["胤"] = "heir; inherit", ["胥"] = "all; assist; to store", ["胦"] = "the navel", ["胭"] = "rouge", ["胯"] = "thigh; leg", ["胰"] = "pancreas; soap", ["胱"] = "bladder", ["胲"] = "hydroxylamine", ["胳"] = "armpit", ["胴"] = "large intestine; torso", ["胸"] = "chest; bosom; heart; mind; thorax", ["胹"] = "to boil", ["胺"] = "amine", ["胼"] = "callous on hand or foot", ["能"] = "ability; can; may; capable; energy; able", ["胾"] = "cut meat into pieces; diced meat", ["脂"] = "fat", ["脅"] = "side of body; threaten", ["脆"] = "brittle; fragile; crisp; clear and loud voice; neat", ["脈"] = "mountain range; pulse", ["脊"] = "spine; back; ridge", ["脖"] = "neck", ["脘"] = "internal cavity of stomach", ["脛"] = "lower part of leg", ["脝"] = "fat; bloated", ["脞"] = "chopped meat; trifles", ["脡"] = "brisket meat; straight", ["脢"] = "meat on the back of an animal", ["脣"] = "lip", ["脤"] = "sacrificial meat (raw)", ["脥"] = "pelvic cavity; lower abdomen", ["脧"] = "fleece; extort; reduce", ["脩"] = "cultivate; repair; teacher's pay", ["脫"] = "to shed; to take off; to escape; to get away from", ["脬"] = "bladder", ["脯"] = "chest (thorax); candied fruit", ["脰"] = "neck; throat", ["脲"] = "urea", ["脹"] = "dropsical; swollen; to swell; to be bloated", ["脾"] = "spleen", ["腆"] = "make strong (as liquors); virtuous", ["腊"] = "preserved (meat)", ["腋"] = "armpit", ["腌"] = "to salt; pickle", ["腍"] = "be satiated; cooked; good-tasting", ["腎"] = "kidney", ["腐"] = "decay; rotten", ["腑"] = "internal organs", ["腒"] = "dried poultry", ["腓"] = "calf of leg; decay; protect", ["腔"] = "cavity of body; tune", ["腕"] = "wrist", ["腜"] = "quickening of the fetus", ["腠"] = "the tissue between the skin and the flesh", ["腥"] = "fishy (smell)", ["腦"] = "brain", ["腫"] = "swollen", ["腮"] = "gills; lower part of cheeks", ["腯"] = "fat (of pigs)", ["腰"] = "waist; lower back; pocket; middle", ["腱"] = "gristle", ["腳"] = "role; foot; base", ["腴"] = "fat on belly; fertile; rich", ["腶"] = "dried meat", ["腸"] = "intestines", ["腹"] = "abdomen; stomach; belly", ["腺"] = "gland", ["腿"] = "leg", ["膀"] = "to flirt; puffed (swollen); bladder; upper arm; wing", ["膂"] = "backbone; strength", ["膆"] = "crop of a bird; fat", ["膇"] = "swelling of foot", ["膈"] = "diaphragm", ["膊"] = "shoulder; upper arm", ["膋"] = "fat on intestines", ["膏"] = "ointment; paste", ["膕"] = "hollow", ["膗"] = "ugly and fat; too fat to move", ["膘"] = "fat of a stock animal", ["膙"] = "callous", ["膚"] = "skin", ["膛"] = "chest (of body); hollow space; throat", ["膜"] = "membrane; film; to prostrate", ["膝"] = "knee", ["膟"] = "sacrificial flesh", ["膠"] = "glue; gum", ["膣"] = "vagina", ["膦"] = "phosphine", ["膨"] = "swollen", ["膩"] = "greasy; tired of", ["膰"] = "cooked meat used in sacrifice", ["膲"] = "the three divisions of the viscera (med.)", ["膳"] = "meals", ["膴"] = "big piece of meat; dried meat", ["膵"] = "pancreas", ["膷"] = "hashed beef; soup", ["膺"] = "breast; receive", ["膻"] = "rank odour (of sheep or goats)", ["膽"] = "the gall; the nerve; courage; guts; gall bladder", ["膾"] = "minced fish or meat", ["膿"] = "pus", ["臀"] = "butt; buttocks", ["臂"] = "arm", ["臃"] = "swell up; swelling; fat", ["臄"] = "palate; sausage", ["臆"] = "feelings; opinion; thoughts", ["臇"] = "fat, rich; a stew of fish", ["臉"] = "face", ["臊"] = "bashfulness; smell of urine", ["臌"] = "dropsical; swollen", ["臍"] = "navel", ["臏"] = "kneecap; patella", ["臐"] = "lamb soup", ["臑"] = "soft", ["臕"] = "fat; gross, sleek", ["臘"] = "12th month of Chinese calendar; preserved (meat)", ["臙"] = "rouge", ["臚"] = "belly; skin; to state", ["臛"] = "meat broth", ["臝"] = "naked", ["臟"] = "viscera", ["臠"] = "skinny; sliced meat", ["臣"] = "statesman; vassal; courtier; minister; official", ["臥"] = "to lie; to crouch", ["臧"] = "''surname''; good; lucky", ["臨"] = "to face; to overlook; to arrive; to be (just) about to; just before", ["自"] = "from; self; oneself; since", ["臬"] = "provincial judge", ["臭"] = "sense of smell; smell bad; stench; stink; smelly; to smell (bad)", ["臲"] = "tottering; unsteady", ["至"] = "arrive; most; to; until", ["致"] = "to send; to devote; to deliver; to cause; to convey", ["臺"] = "(measure word); platform; stage; terrace; stand; support; desk; station; broadcasting station", ["臻"] = "to reach; utmost", ["臼"] = "mortar", ["臾"] = "''surname''; a moment; little while", ["臿"] = "to separate the grain from the husk", ["舀"] = "to scoop", ["舁"] = "to lift; raise", ["舂"] = "to pound (grain); beat", ["舄"] = "shoe; slipper", ["舅"] = "maternal uncle", ["與"] = "and; to give; together with; take part in; (interrog. part.)", ["興"] = "interest; flourish; it is the fashion to; to become popular", ["舉"] = "to lift; to hold up; to cite; to enumerate; to act; to raise; to choose; to elect", ["舊"] = "old (opposite of new); former", ["舋"] = "offer blood in sacrifice", ["舌"] = "tongue", ["舍"] = "residence", ["舐"] = "to lick; lap", ["舒"] = "relax; stretch; slow", ["舔"] = "to lick; to lap", ["舖"] = "a store", ["舛"] = "mistaken; erroneous; contradictory", ["舜"] = "name of an emperor", ["舞"] = "to dance; to wield; to brandish", ["舟"] = "boat", ["舠"] = "kayak", ["舡"] = "boat; ship", ["航"] = "boat; ship; vessel; craft; to navigate; to sail", ["舫"] = "2 boats lashed together; large boat", ["般"] = "sort; kind; class; way; manner", ["舲"] = "small boat with windows", ["舳"] = "poop deck; stern of boat", ["舵"] = "helm; rudder", ["舶"] = "sea-going vessels; ship", ["舷"] = "sides of boat", ["舸"] = "barge", ["船"] = "a boat; vessel; ship", ["舺"] = "(boat)", ["艄"] = "stern of boat", ["艅"] = "a dispatch boat", ["艇"] = "small boat", ["艎"] = "fast-sailing boat", ["艑"] = "skiff", ["艕"] = "two boats fastened side by side", ["艖"] = "raft; boat", ["艗"] = "bow of a Chinese boat", ["艘"] = "measure word for boats and ships (mainland pronunciation); measure word for warships (Taiwan pronunciation)", ["艙"] = "cabin; the hold of a ship or aeroplane", ["艚"] = "sea-going junk", ["艜"] = "a long narrow vessel with two masts", ["艣"] = "sculling oar", ["艤"] = "moor a boat to the bank", ["艦"] = "warship", ["艨"] = "war-boat", ["艩"] = "tholepin", ["艫"] = "bow of ship", ["艬"] = "large ship", ["艭"] = "boat", ["艮"] = "blunt; tough; chewy; one of the eight diagrams; ''surname''", ["良"] = "good; very; very much", ["艱"] = "difficult; hard; hardship", ["色"] = "colour; dice; look; appearance", ["艴"] = "angry", ["艷"] = "glamorous", ["艸"] = "grass", ["艾"] = "''[[Artemisia vulgaris]]''; [[Chinese mugwort]]", ["芃"] = "luxuriant growth", ["芄"] = "{{taxlink|Metaplexis stauntoni|species}}", ["芊"] = "green; luxuriant growth", ["芋"] = "''[[Colocasia antiquorum]]''", ["芍"] = "{{taxlink|Paeonia albiflora|species}}", ["芑"] = "''[[Panicum miliaceum]]''", ["芒"] = "''[[Miscanthus sinensis]]''", ["芔"] = "a general term for plants", ["芘"] = "''[[Malva sylvestris]]''", ["芚"] = "green sprout; foolish", ["芝"] = "{{taxlink|Zoysia pungens|species}}", ["芟"] = "cut down; mow; scythe", ["芡"] = "''[[Euryale ferox]]''; cornstarch", ["芣"] = "(plantain)", ["芤"] = "hollow; scallion stalk", ["芥"] = "''[[Brassica juncea]]''", ["芧"] = "{{taxlink|Scirpus maritimus|species}}; small chestnut", ["芨"] = "{{taxlink|Bletilla striata|species}} (mucilaginous); Acronym for the Chinese Elder tree 菫草", ["芩"] = "{{taxlink|Phragmites japonicus|species}}", ["芫"] = "''[[Daphne genkwa]]''", ["芬"] = "fragrant", ["芭"] = "a kind of fragrant grass", ["芮"] = "''surname''; small", ["芯"] = "lamp pith; core", ["芰"] = "{{taxlink|Trapa natans|species}}; [[water caltrop]]", ["花"] = "flower; blossom; to spend; fancy pattern", ["芳"] = "fragrant", ["芴"] = "fluorine", ["芷"] = "angelica (type of iris; plant root used for medicine)", ["芸"] = "''[[Ruta graveolens]]''", ["芹"] = "[[Chinese celery]]", ["芻"] = "''surname''; cut grass; hay; straw; fodder", ["芼"] = "select; vegetables", ["芽"] = "bud; sprout", ["芾"] = "luxuriance of vegetation; small", ["苑"] = "park", ["苒"] = "luxuriant growth; passing (of time)", ["苓"] = "fungus; tuber", ["苔"] = "moss; coating (of tongue)", ["苕"] = "{{vern|Chinese trumpet vine}}", ["苗"] = "sprout; seedling; descendant; symptom of a trend; young; vaccine; Miao tribe", ["苙"] = "(herb); pigsty", ["苛"] = "severe; exacting", ["苞"] = "flower calyx; luxuriant; profuse", ["苟"] = "if indeed; thoughtless", ["苠"] = "multitude; skin of bamboo", ["苡"] = "[[Job's tears]]", ["苣"] = "lettuce", ["若"] = "to seem; like; as; if", ["苦"] = "bitter; intensely; miserable; painful", ["苧"] = "[[ramie]] (''[[Boehmeria nivea]]'')", ["苪"] = "bright; shining, splendid", ["苫"] = "straw mat; thatch", ["苯"] = "benzene", ["英"] = "flower; hero; brave; outstanding; Britain (abbrev.); English", ["苳"] = "''[[Petasites japonicus]]''", ["苴"] = "(hemp); ''surname''; sack cloth", ["苶"] = "weary; tired", ["苹"] = "(artemisia); duckweed", ["苺"] = "(wild rose)", ["苻"] = "{{taxlink|Angelica anomala|species}}", ["苾"] = "''phonetic''; fragrant", ["茀"] = "luxuriant growth", ["茁"] = "increase; sprout", ["茂"] = "luxuriant", ["范"] = "pattern; model; example; ''surname''", ["茄"] = "eggplant", ["茅"] = "thatch", ["茇"] = "betel", ["茈"] = "{{taxlink|Lithospermum officinale|species}}; water chestnut", ["茌"] = "name of a district in Shandong", ["茍"] = "if indeed; thoughtless", ["茖"] = "{{taxlink|Allium victorialis|species}}", ["茗"] = "''[[Camellia sinensis]]''; young leaves of tea", ["茛"] = "[[wolfsbane]]", ["茜"] = "[[common madder]] (''[[Rubia cordifolia]]'')", ["茞"] = "fragrant plant; angelica", ["茠"] = "to weed; to eradicate", ["茢"] = "rushes; sedges", ["茥"] = "{{taxlink|Rubus coreanus|species}}", ["茦"] = "pointed grass blade; to prick", ["茨"] = "''[[Tribulus terrestris]]''; thatched hut", ["茫"] = "vague; vast", ["茬"] = "grain stumps; crop", ["茭"] = "wild rice ({{taxlink|Zizania aquatica|species}}; {{taxlink|Oenanthe javanica|species}}", ["茱"] = "Cornelian cherry", ["茲"] = "herewith", ["茳"] = "Shichito matgrass ({{taxlink|Cyperus malaccensis|species}})", ["茴"] = "fennel", ["茵"] = "{{taxlink|Skimmia japonica|species}}; cushion", ["茶"] = "tea; tea plant", ["茷"] = "denseness of grass-foliage", ["茸"] = "confused; fluffy; luxuriant growth", ["茹"] = "eat; [[rubicene]] (chemistry)", ["荀"] = "''surname''", ["荁"] = "(vegetable); {{taxlink|Viola vaginata|species}}", ["荃"] = "(fragrant plant)", ["荄"] = "roots of plant", ["荅"] = "to answer; agree", ["荇"] = "{{taxlink|Limnanthemum nymphoides|species}}", ["荈"] = "{{taxlink|Thea sinensis|species}}", ["草"] = "grass; straw; draft (of a document); careless; rough; manuscript; hasty", ["荊"] = "thorns; brambles", ["荍"] = "buckwheat; herbal medicine", ["荏"] = "''[[Perilla frutescens]]''; soft", ["荐"] = "recommend (a person)", ["荑"] = "to weed; (grass)", ["荒"] = "out of practice; uncultivated", ["荳"] = "bean; peas", ["荵"] = "[[polemonium]]", ["荷"] = "peppermint; to carry burden; lotus", ["荻"] = "''[[Miscanthus sacchariflorus]]''", ["荼"] = "''[[Sonchus oleraceus]]''", ["莆"] = "place name", ["莊"] = "farm; village", ["莎"] = "(grass); ''[[Cyperus rotundus]]''; (insect); ''phonetic''", ["莒"] = "(fibrous plant)", ["莓"] = "berry", ["莔"] = "{{taxlink|Fritillaria verticillata|species}}", ["莕"] = "{{taxlink|Nymphoides peltatum|species}}", ["莖"] = "stalk; stem", ["莘"] = "{{taxlink|Asarum sieboldi|species}}; long; numerous", ["莙"] = "species of water plant", ["莚"] = "bamboo mat; feast, banquet", ["莛"] = "stalk of grass", ["莝"] = "to chop straw fine for animals", ["莞"] = "(district); smile; tabernaemontanus [[bulrush]]; ''surname''", ["莠"] = "''[[Setaria viridis]]''; vicious", ["莢"] = "pod", ["莦"] = "jungle grass; lair", ["莧"] = "{{taxlink|Amarantus mangostanus|species}}", ["莨"] = "{{taxlink|Scopalia japonica|species}} maxin", ["莩"] = "die of starvation; [[pellicle]] of culms", ["莪"] = "[[zedoary]]", ["莫"] = "do not; there is none who", ["莰"] = "[[camphane]]", ["莽"] = "''[[Illicium anisatum]]''; rude", ["莿"] = "{{taxlink|Urtica thunbergiana|species}}", ["菀"] = "luxuriance of growth", ["菁"] = "flower of leek", ["菅"] = "(grass); {{taxlink|Themeda forsbali|species}}", ["菆"] = "arrow; weeds", ["菇"] = "mushroom", ["菉"] = "{{taxlink|Arthraxon|genus}} ciliare; green; rhodacene", ["菊"] = "chrysanthemum", ["菌"] = "bacteria; mould; mushroom; germ", ["菎"] = "beautiful jade; bamboo", ["菑"] = "''surname''; one-year-old field", ["菔"] = "turnip", ["菖"] = "calamus", ["菘"] = "(cabbage); {{taxlink|Brassica chinensis|species}}", ["菜"] = "dish (type of food); vegetables", ["菟"] = "dodder; cuscuta", ["菢"] = "hatch", ["菣"] = "{{taxlink|Artemisia carvifolia|species}}", ["菧"] = "stibene", ["菩"] = "Bodhisattva", ["菫"] = "the hidden violet ({{taxlink|Viola verecunda|species}})", ["華"] = "flowery; flourishing; magnificent; your; grey; corona; time; essence; China; Chinese; name of a mountain", ["菰"] = "[[Manchurian wild rice]] (''[[Zizania latifolia]]''); mushroom", ["菱"] = "{{taxlink|Trapa natans|species}}; water caltrop", ["菲"] = "rich; luxurious; phenanthrene (chemical); Philippines (abbrev.)", ["菴"] = "small Buddhist temple", ["菶"] = "expand; thick weeds", ["菸"] = "cigarette; tobacco", ["菺"] = "{{taxlink|Althaea rosea|species}}", ["菻"] = "ancient name for east Roman empire", ["菼"] = "''[[Miscanthus sacchariflorus]]''", ["菾"] = "sugar beet", ["萁"] = "stalks of pulse", ["萃"] = "collect; collection; dense; grassy; thick; assemble; gather", ["萆"] = "castor seed", ["萇"] = "carambola", ["萊"] = "''[[Chenopodium album]]''", ["萋"] = "luxuriant", ["萌"] = "(archaic) people; sprout; (neologism) moe, cute", ["萍"] = "duckweed", ["萎"] = "wither; spiritless; withered", ["萐"] = "(auspicious herb)", ["萑"] = "(reeds)", ["萘"] = "naphthalene", ["萩"] = "{{taxlink|Lespedeza bicolor|species}}", ["萬"] = "ten thousand; a great number; ''surname''", ["萱"] = "lemon [[daylily]] ({{taxlink|Hemerocallis lilioasphodelus|species}})", ["萴"] = "(medicinal herb)", ["萵"] = "(lettuce); ''[[Lactuca sativa]]''", ["萹"] = "''[[Polygonum aviculare]]''", ["萻"] = "small Buddhist temple", ["萼"] = "stem and calyx of flower", ["落"] = "to fall; to drop (behind); leave behind", ["葄"] = "straw cushion; pillow", ["葆"] = "dense foliage; to cover", ["葇"] = "{{taxlink|Elsholtzia ciliata|species}}", ["葉"] = "leaf; page", ["葍"] = "weeds", ["葎"] = "[[Japanese hop]] ({{taxlink|Humulus japonicus|species}})", ["葑"] = "turnip", ["葒"] = "herb", ["著"] = "''particle indicating the successful result of a verb''; to touch; to come in contact with; to feel; to be affected by; to catch fire; to fall asleep; to burn; particle attached after verb to indicate action in progress, like -ing ending; to make known; to show; to prove; to write; book; outstanding; to wear (clothes); to contact; to use; to apply; catch; receive; suffer", ["葙"] = "plumed or silver cockscomb ({{taxlink|Celosia argentea|species}})", ["葚"] = "fruit of mulberry", ["葛"] = "coarse grass linen", ["葠"] = "ginseng", ["葡"] = "Portugal", -- only sense if used alone ["董"] = "supervise; to direct; director", ["葥"] = "{{taxlink|Rubus palmatus|species}}", ["葦"] = "reed; rush; ''[[Phragmites communis]]''", ["葩"] = "corolla of flower", ["葫"] = "", ["葬"] = "bury (the dead)", ["葭"] = "reed; ''[[Phragmites communis]]''", ["葯"] = "medicine; drug", ["葳"] = "luxuriant", ["葴"] = "''[[Physalis alkekengi]]''", ["葵"] = "sunflower", ["葶"] = "{{taxlink|Draba nemerosa|species}} bebe carpa", ["葷"] = "meat dish", ["葸"] = "feel insecure; unhappy", ["葹"] = "{{taxlink|Xanthium strumarium|species}}", ["葺"] = "to repair", ["葽"] = "{{taxlink|Polygala japonica|species}}; lush (grass)", ["蒂"] = "stem (of fruit)", ["蒎"] = "pinane", ["蒐"] = "search out (as data)", ["蒔"] = "to transplant (to uproot and replant in a different location); to plant", ["蒗"] = "(herb); place name", ["蒙"] = "Mongolia; cover", ["蒜"] = "garlic", ["蒞"] = "attend (official functions)", ["蒟"] = "betel", ["蒢"] = "hedysarum", ["蒨"] = "luxuriant growth", ["蒯"] = "a rush; {{taxlink|Scirpus cyperinus|species}}", ["蒱"] = "gambling-game; sedges", ["蒲"] = "calamus", ["蒴"] = "pod; capsule", ["蒸"] = "to steam", ["蒹"] = "reed", ["蒺"] = "''[[Tribulus terrestris]]''", ["蒻"] = "", ["蒼"] = "dark blue; fly; musca; deep green", ["蒽"] = "anthracene", ["蒿"] = "wormwood", ["蓀"] = "fragrant grass", ["蓁"] = "abundant, luxuriant vegetation", ["蓂"] = "lucky place", ["蓄"] = "to store", ["蓆"] = "woven mat", ["蓉"] = "", ["蓊"] = "a plant in bloom; thick", ["蓋"] = "cover; lid; top; canopy; to build", ["蓌"] = "to squat (in salutation)", ["蓍"] = "{{taxlink|Achillea sibirica|species}}", ["蓏"] = "fruit of plants (not of trees)", ["蓐"] = "mat; rushes", ["蓑"] = "rain coat made of straw, etc.", ["蓓"] = "(flower) bud", ["蓖"] = "the castor-oil plant", ["蓧"] = "bamboo basket", ["蓪"] = "{{taxlink|Aralia papyrifera|species}}", ["蓫"] = "(weed); {{taxlink|Phytolacca acinosa|species}}", ["蓬"] = "(grass); disheveled", ["蓮"] = "lotus", ["蓰"] = "(grass); increase five fold", ["蓴"] = "{{taxlink|Brasenia purpurea|species}}", ["蓷"] = "{{taxlink|Leonurus macranthus|species}}", ["蓺"] = "skill; art", ["蓼"] = "luxuriant growth; polygonum; smartweed", ["蓽"] = "bean; pulse", ["蔀"] = "cycle of 76 years; shade", ["蔂"] = "basket for carrying earth", ["蔆"] = "{{taxlink|Trapa natans|species}}; water caltrop", ["蔇"] = "luxuriant growth; extreme; reach", ["蔉"] = "to bank up the roots of plants", ["蔊"] = "{{taxlink|Nasturtium montanum|species}}", ["蔋"] = "dry; scorched", ["蔌"] = "''surname''; vegetables", ["蔎"] = "{{taxlink|Thea sinensis|species}}", ["蔑"] = "belittle; nothing", ["蔓"] = "creeper; to spread; {{taxlink|Brassica campestris|species}}", ["蔔"] = "turnip", ["蔕"] = "stem (of fruit)", ["蔗"] = "sugar cane", ["蔘"] = "ginseng; huge", ["蔙"] = "(herb)", ["蔚"] = "''surname''; place name; {{taxlink|Artemisia japonica|species}}; luxuriant", ["蔞"] = "{{taxlink|Arthemisia vulgaris|species}}; ''[[Piper betle]]''", ["蔟"] = "collect; frame for silk worm; nest", ["蔡"] = "''surname''", ["蔣"] = "''surname''", ["蔥"] = "scallion; green onion", ["蔦"] = "[[Grossulariaceae]]", ["蔫"] = "fade; wither", ["蔬"] = "vegetables", ["蔭"] = "shade", ["蔯"] = "a variety of artemisia", ["蔽"] = "to cover; to shield; to screen; to conceal", ["蔾"] = "[[Chenopodiaceae]]", ["蕃"] = "flourishing; to reproduce", ["蕆"] = "complete; prepare", ["蕈"] = "mould; mushroom", ["蕉"] = "banana", ["蕊"] = "stamen; pistil", ["蕍"] = "{{taxlink|Alisma plantago|species}}", ["蕎"] = "buckwheat", ["蕑"] = "''surname''; {{taxlink|Eupatorium chinense|species}}", ["蕓"] = "celza", ["蕕"] = "{{taxlink|Caryopteris divaricata|species}}", ["蕖"] = "lotus", ["蕗"] = "leucacene", ["蕘"] = "fuel; grass", ["蕙"] = "''[[Dipteryx odorata]]''", ["蕝"] = "coarse grass used to show rank", ["蕞"] = "assemble; small", ["蕡"] = "hemp seeds; luxurious; abundant", ["蕢"] = "''surname''; {{taxlink|Amaranthus mangostanus|species}}", ["蕣"] = "''[[Hibiscus syriacus]]''", ["蕤"] = "fringe; overladen with flowers", ["蕨"] = "{{taxlink|Pteridium aquilinum|species}}", ["蕩"] = "a pond; pool; wash; squander; sweep away; move; shake; dissolute", ["蕪"] = "overgrown with weeds", ["蕭"] = "mournful", ["蕸"] = "water-lily leaves", ["蕺"] = "''[[Houttuynia cordata]]''", ["蕻"] = "budding; flourishing", ["蕾"] = "bud", ["薀"] = "hippuris or mare's tail", ["薁"] = "{{taxlink|Prunus japonica|species}}", ["薃"] = "{{taxlink|Cyperus amuricus|species}}", ["薄"] = "thin; slight; meagre; small; ungenerous; unkind; mean; frivolous; despise; belittle; to approach; to go near; peppermint", ["薅"] = "pull out (weed)", ["薆"] = "to cover; to hide; to conceal", ["薈"] = "flourish", ["薉"] = "weedy", ["薊"] = "''[[Cirsium]]''; thistle", ["薌"] = "(Fujian drama)", ["薏"] = "germ of the lotus seed", ["薑"] = "ginger", ["薔"] = "wild rose", ["薖"] = "big; hungry-looking", ["薘"] = "''[[Plantago major]]''", ["薙"] = "shave; to weed", ["薛"] = "''surname''; wormwood", ["薜"] = "{{taxlink|Ficus pumila|species}}", ["薢"] = "woody climbing plant", ["薤"] = "{{taxlink|Allium bakeri|species}}; shallot; scallion", ["薦"] = "to recommend; to offer sacrifice; straw (mat); repeatedly", ["薧"] = "dried food", ["薨"] = "death of a prince; swarming", ["薩"] = "''surname''; Bodhisattva", ["薪"] = "fuel; salary", ["薯"] = "potato; yam", ["薰"] = "''[[Dipteryx odorata]]''", ["薳"] = "(grass); ''surname''", ["薶"] = "to bury; to stop up; dirty, filthy", ["薷"] = "{{taxlink|Elshotria paltrini|species}}", ["薸"] = "[[duckweed]]", ["薹"] = "{{taxlink|Carex dispalatha|species}}", ["薺"] = "''[[Capsella bursa-pastoris]]''", ["薽"] = "(grass); (orchid)", ["薾"] = "luxuriant growth of flower", ["薿"] = "luxuriant (of plants)", ["藄"] = "(fern)", ["藇"] = "''surname''; beautiful", ["藉"] = "by means of; in disorder", ["藋"] = "[[Chinese elder]]", ["藍"] = "blue; [[w:true indigo|indigo plant]]; ''surname''", ["藎"] = "''[[Arthraxon hispidus]]''; loyal", ["藏"] = "storehouse; depository; Buddhist or Taoist scripture; Zang; Tibet; to hide away; to conceal; to harbor; store; accumulate", ["藐"] = "despise; small", ["藕"] = "root of lotus", ["藘"] = "madder", ["藙"] = "{{taxlink|Zanthoxylum ailanthoides|species}}", ["藚"] = "{{taxlink|Alisma plantago|species}}", ["藜"] = "''[[Chenopodium album]]''", ["藝"] = "skill; art", ["藟"] = "bud; creeper; bramble", ["藤"] = "rattan; cane", ["藥"] = "medicine; drug; cure", ["藦"] = "{{taxlink|Metaplexis stauntoni|species}}", ["藨"] = "kind of raspberry", ["藪"] = "marsh; place of concourse", ["藶"] = "{{taxlink|Draba nemerosa vsr. hebecarpa|variety}}", ["藷"] = "potato; yam", ["藹"] = "friendly", ["藺"] = "''[[Juncus effusus]]''", ["藻"] = "(aquatic grasses); elegant", ["藾"] = "(fragrant labiate plant)", ["藿"] = "{{taxlink|Lophanthus rugosus|species}}; beans", ["蘀"] = "fallen leaves and bark", ["蘄"] = "(herb); implore; pray; place name", ["蘅"] = "{{taxlink|Asarum blumei|species}}", ["蘆"] = "rush; reed; ''[[Phragmites communis]]''", ["蘇"] = "(plant); place name; revive; Soviet", ["蘊"] = "bring together; collect", ["蘋"] = "apple; {{taxlink|Marsiliaceae|family}}; {{vern|clover fern}}", ["蘑"] = "mushroom", ["蘗"] = "shoots from an old stump", ["蘘"] = "a kind of wild ginger", ["蘚"] = "mosses on damp walls", ["蘢"] = "{{taxlink|Polygonum posumbu|species}}", ["蘤"] = "flower, blossoms", ["蘧"] = "''surname''; {{taxlink|Dianthus superbus|species}}", ["蘩"] = "{{taxlink|Artemisia stellariana|species}}", ["蘭"] = "orchid", ["蘵"] = "{{taxlink|Physalis angulata|species}}", ["蘸"] = "to dip in (ink, sauce, etc.)", ["蘺"] = "{{taxlink|Gracilaria confervoides|species}}", ["蘼"] = "millet", ["蘿"] = "radish", ["虀"] = "fragment; salted vegetables; spices", ["虆"] = "creeper; bramble; dirt-basket", ["虍"] = "stripes of tiger", ["虎"] = "tiger", ["虐"] = "oppressive; tyrannical", ["虒"] = "amphibious animal with one horn", ["虓"] = "roar of a tiger", ["虔"] = "devout", ["處"] = "a place; location; spot; point; office; department; bureau; respect; to reside; to live; to dwell; to be in; to stay; get along with; to be in a position of; deal with", ["虖"] = "exhale; scream of tiger; to call", ["虛"] = "devoid of content; void; false; empty; vain", ["虜"] = "take captive", ["虞"] = "forewarned; peace; worry", ["號"] = "number; call; name; roar; cry", ["虡"] = "bell pendant stand", ["虢"] = "name of an ancient state", ["虣"] = "cruel; violent", ["虥"] = "striped wild cat", ["虧"] = "deficiency; deficit", ["虩"] = "terrified", ["虫"] = "insect; worm", ["虯"] = "young dragon with horns", ["虱"] = "louse", ["虷"] = "worm", ["虹"] = "rainbow", ["虺"] = "poisonous snakes; sick; with no ambition", ["虻"] = "{{taxlink|Tabanus trigonus|species}}; house fly", ["蚊"] = "mosquito", ["蚋"] = "(mosquito); {{taxlink|Simulia lugubris|species}}; blackfly", ["蚌"] = "oysters; mussels", ["蚓"] = "earthworm", ["蚔"] = "green-frog", ["蚘"] = "tapeworm", ["蚜"] = "aphis", ["蚝"] = "hairy and poisonous caterpillars", ["蚡"] = "(mole)", ["蚤"] = "flea", ["蚧"] = "horned toad", ["蚨"] = "(water-beetle); money", ["蚩"] = "''surname''; ignorant; worm", ["蚳"] = "ant eggs", ["蚴"] = "larva", ["蚵"] = "oyster", ["蚶"] = "small clam; {{taxlink|Arca inflata|species}}", ["蚹"] = "{{taxlink|Eulota peliomphala|species}}", ["蚺"] = "a boa constrictor", ["蚻"] = "{{taxlink|Aphrophora maritima|species}}", ["蚿"] = "millipede", ["蛀"] = "termite; to bore (of insects)", ["蛁"] = "{{taxlink|Pomponia maculatiocollis|species}}", ["蛄"] = "mole-cricket", ["蛅"] = "a caterpillar", ["蛆"] = "maggot", ["蛇"] = "snake; serpent", ["蛋"] = "egg; oval shaped", ["蛌"] = "cricket", ["蛑"] = "insect which eats roots of seedlings", ["蛓"] = "(larva)", ["蛔"] = "roundworm; ''[[Ascaris lumbricoides]]''", ["蛘"] = "a weevil found in rice, etc.", ["蛙"] = "frog", ["蛚"] = "{{taxlink|Cyrtoxiphus ritsemae|species}}", ["蛛"] = "spider", ["蛜"] = "wood-louse", ["蛟"] = "scaly dragon", ["蛣"] = "beetle", ["蛤"] = "clam", ["蛩"] = "anxious; grasshopper; a cricket", ["蛭"] = "fluke; leech; hirudinea", ["蛵"] = "dragonfly", ["蛸"] = "octopus", ["蛹"] = "chrysalis; pupa", ["蛻"] = "exuviae of insects or reptiles", ["蛾"] = "moth", ["蜀"] = "Sichuan", ["蜂"] = "bee; wasp", ["蜃"] = "(mythical animal); clam; sea-serpent", ["蜅"] = "crab", ["蜆"] = "{{taxlink|Cyclina orientalis|species}}", ["蜇"] = "jellyfish; to sting", ["蜈"] = "centipede", ["蜊"] = "clam", ["蜍"] = "toad", ["蜎"] = "''surname''; larva of mosquito", ["蜑"] = "name of an ethnic group", ["蜓"] = "dragonfly", ["蜚"] = "gad-fly", ["蜛"] = "{{taxlink|Hydrophilus cognatus|species}}", ["蜜"] = "honey", ["蜞"] = "grapsus", ["蜡"] = "candle; wax", ["蜣"] = "dung beetle", ["蜥"] = "chameleon; {{taxlink|Eumeces latiscutatus|species}}", ["蜨"] = "butterfly", ["蜩"] = "cicada", ["蜮"] = "mythical creature; toad; worm", ["蜱"] = "(insect); egg of mantis", ["蜷"] = "{{taxlink|Melania libertina|species}}; wriggle (as a worm)", ["蜺"] = "Japanese cicada; rainbow", ["蜻"] = "dragonfly", ["蜿"] = "to move (as snake)", ["蝀"] = "rainbow", ["蝍"] = "a centipede", ["蝎"] = "scorpion", ["蝏"] = "(insect); {{taxlink|Leptogaster basiralis|species}}", ["蝕"] = "eat up slowly; eclipse", ["蝗"] = "locust", ["蝘"] = "{{taxlink|Hemidactylus bowringii|species}}", ["蝝"] = "young locust without wings", ["蝟"] = "hedgehog", ["蝠"] = "bat", ["蝡"] = "wriggle", ["蝣"] = "{{taxlink|Ephemera strigata|species}}", ["蝥"] = "Spanish fly; grain-eating grub", ["蝦"] = "shrimp; prawn", ["蝨"] = "louse", ["蝮"] = "venomous snake", ["蝯"] = "ape", ["蝶"] = "butterfly", ["蝻"] = "immature locusts", ["螄"] = "snail", ["螉"] = "{{taxlink|Ammophila infesta|species}}", ["融"] = "harmonious; melt; mild", ["螒"] = "{{taxlink|Aulacophora femoralis|species}}", ["螓"] = "small cicada with a square head", ["螗"] = "(cicada)", ["螘"] = "ant", ["螚"] = "{{taxlink|Eristalis tenax|species}}", ["螞"] = "(insect prefix)", ["螟"] = "{{taxlink|Heliothus armigera|species}}", ["螢"] = "firefly", ["螣"] = "flying dragon", ["螫"] = "to sting", ["螬"] = "larva of {{taxlink|Mimela lucidula|species}}", ["螭"] = "hornless dragon", ["螮"] = "", ["螯"] = "nippers; claw (of crab); chela; pincers; {{taxlink|Astacus fluviatilis|species}}", ["螳"] = "praying mantis", ["螺"] = "aquatic snail", ["螻"] = "mole-cricket; {{taxlink|Gryllotalpa africona|species}}", ["螽"] = "(grasshopper); {{taxlink|Gompsocleis mikado|species}}", ["螾"] = "the earthworm", ["螿"] = "{{taxlink|Cosmopsaltria opalifera|species}}", ["蟀"] = "cricket", ["蟄"] = "hibernate", ["蟆"] = "frog or toad", ["蟈"] = "frog or toad", ["蟊"] = "Spanish fly; grain-eating grub", ["蟒"] = "{{taxfmt|Python molurus|species}}", ["蟛"] = "(land-crab); ''{{ll|mul|Grapsus}}'' spp.", ["蟜"] = "(insect); ''surname''", ["蟠"] = "{{taxlink|Trichina spiralis|species}}; to coil", ["蟢"] = "(spider)", ["蟣"] = "nymph of louse", ["蟨"] = "the Siberian jerboa", ["蟪"] = "(cicada); {{taxlink|Platypleura kaempferi|species}}", ["蟬"] = "cicada", ["蟭"] = "eggs of mantis", ["蟲"] = "animal; insect", ["蟳"] = "(hairy sea-crab)", ["蟶"] = "mussel; razor clam; {{taxlink|Solecurtus constricta|species}}", ["蟷"] = "mantis", ["蟹"] = "crab", ["蟺"] = "earthworm", ["蟻"] = "ant", ["蟾"] = "toad; moon", ["蟿"] = "(insect); {{taxlink|Tryxalis masuta|species}}", ["蠁"] = "larvae", ["蠂"] = "{{taxlink|Podisma mikado|species}}", ["蠅"] = "fly; musca", ["蠆"] = "(scorpion); an insect", ["蠋"] = "caterpillar", ["蠍"] = "scorpion", ["蠓"] = "grasshopper; midge; sandfly", ["蠔"] = "oyster", ["蠕"] = "to squirm; to wiggle; to wriggle", ["蠖"] = "looper caterpillar", ["蠗"] = "(ape); (shell)", ["蠙"] = "pearl-oyster", ["蠛"] = "minute flies", ["蠜"] = "{{taxlink|Cyrtophyllus|genus}} spp.", ["蠟"] = "candle; wax", ["蠡"] = "wood-boring insect; calabash", ["蠢"] = "blunt; stupid; to wiggle (of worms); sluggish", ["蠣"] = "oyster", ["蠨"] = "long-legged spider", ["蠩"] = "a toad", ["蠮"] = "{{taxlink|Ammophila infesta|species}}", ["蠰"] = "{{taxlink|Cerambyx rugicollis|species}}", ["蠱"] = "insanity; poison", ["蠲"] = "bright; glow-worm; remit taxes", ["蠵"] = "large turtles", ["蠶"] = "silkworm", ["蠸"] = "{{taxlink|Aulacophora femoralis|species}}", ["蠹"] = "bookworm; {{taxlink|Lepisma saccharina|species}}", ["蠻"] = "barbarian; bullying; very; quite; rough; reckless", ["血"] = "blood", ["衁"] = "blood", ["衄"] = "bleed at the nose; check in battle", ["衈"] = "the blood of a sacrificial fowl which was sprinkled on doors and vessels", ["衊"] = "defiled with blood", ["行"] = "to go; to do; capable; all right; competent; OK; to travel; temporary; to walk; will do; behaviour; conduct; a row; profession; professional", ["衍"] = "to spread out; to develop; to overflow; to amplify", ["衎"] = "pleased", ["衒"] = "to boast; to show off", ["術"] = "method; technique", ["衕"] = "lane", ["衖"] = "lane; alley", ["街"] = "street", ["衙"] = "office; yamen", ["衚"] = "lane", ["衛"] = "to guard; to protect; to defend; ''surname''", ["衝"] = "of great force; towards; dash against", ["衡"] = "to weigh; weight; measure", ["衢"] = "thoroughfare", ["衣"] = "gown; clothes; to dress; to wear", ["表"] = "surface; exterior; to watch; to show; express; an example; a list or table; a meter; a watch; chart; external", ["衩"] = "slit on either side of a garment; open seam of a garment", ["衫"] = "Chinese gown (unlined)", ["衭"] = "the lapel of a garment", ["衰"] = "weak; feeble; decline; wane; mourning garments", ["衲"] = "cassock; to line", ["衵"] = "women's undergarments", ["衷"] = "inner feelings", ["衽"] = "overlapping part of Chinese gown", ["衾"] = "coverlet; quilt", ["衿"] = "overlapping part of Chinese gown", ["袁"] = "''surname''", ["袂"] = "sleeve", ["袋"] = "a pouch; bag; sack; pocket", ["袍"] = "gown (lined)", ["袒"] = "to bare", ["袖"] = "sleeve", ["袗"] = "unlined garment", ["袚"] = "knee-pads; buskins", ["袞"] = "imperial robe", ["袟"] = "''surname''; book cover", ["袢"] = "robe", ["袤"] = "length; distance from north to south", ["袪"] = "sleeve opening", ["被"] = "by (marker for passive-voice sentences or clauses); quilt; blanket; to cover; to wear", ["袱"] = "bundle wrapped in cloth", ["袲"] = "place name", ["袷"] = "lined", ["袺"] = "lift up a dress", ["袽"] = "old rags", ["裀"] = "mat; underclothing", ["裁"] = "cut out (as a dress); cut; trim; reduce; diminish; decision; judgement", ["裂"] = "crack; split", ["裉"] = "s seam in a garment", ["裊"] = "delicate; graceful", ["裋"] = "coarse clothing of camel's hair", ["裌"] = "lined", ["裍"] = "a border or band on the edge of a dress", ["裎"] = "take off clothes", ["裏"] = "inside; internal; interior", ["裒"] = "collect", ["裔"] = "descendants; frontier", ["裕"] = "abundant", ["裘"] = "fur; fur coat", ["裙"] = "skirt", ["裛"] = "to wrap and bind; damp; dripping; wet; a book bag", ["補"] = "to repair; to patch; to mend; to make up for; to fill (a vacancy); to supplement", ["裝"] = "to dress up; costume; to pretend to be; to pack; to load; to install", ["裡"] = "inside; within; in; lining of clothing", ["裨"] = "to benefit; to aid; assistant; small; advantageous; profitable", ["裯"] = "bed curtain; coverlet", ["裱"] = "hang (paper); mount (painting)", ["裲"] = "waistcoat", ["裳"] = "lower garment; skirts; petticoats; garments", ["裴"] = "''surname''", ["裸"] = "naked", ["裹"] = "wrap around", ["製"] = "manufacture", ["裾"] = "garment", ["褂"] = "coat", ["複"] = "repeat, double, overlap", ["褉"] = "short garments", ["褊"] = "narrow; urgent", ["褌"] = "sacrificial robe of the empress", ["褎"] = "sleeve; ample flowing robes", ["褐"] = "brown", ["褒"] = "to praise", ["褓"] = "cloth for carrying baby on back", ["褔"] = "complex; double", ["褕"] = "loose garment", ["褘"] = "ceremonial gowns of a queen", ["褙"] = "paper or cloth pasted together", ["褚"] = "''surname''", ["褟"] = "inner shirt or singlet", ["褡"] = "cummerbund", ["褢"] = "to carry in the bosom or the sleeve; to wrap, to conceal", ["褥"] = "mattress", ["褦"] = "ignorant; sun hat", ["褧"] = "monotone garment with no lining", ["褪"] = "fade; take off (clothes)", ["褫"] = "strip; deprive of; to discharge; dismiss; undress", ["褯"] = "child's garment", ["褰"] = "lift up the skirts; lower garments", ["褱"] = "to carry in the bosom or the sleeve; to wrap, to conceal", ["褲"] = "drawers; trousers; pants", ["褵"] = "bride's veil or kerchief", ["褶"] = "pleat; crease; (archaic) court dress", ["褸"] = "soiled; tattered", ["褻"] = "licentious", ["褽"] = "collar", ["襁"] = "cloth for carrying baby on back", ["襄"] = "assist", ["襆"] = "hemless skirt; hood; turban", ["襋"] = "coat collar", ["襌"] = "garment without a lining", ["襏"] = "raincoat", ["襖"] = "coat; jacket; short and lined coat or robe", ["襚"] = "grave-clothes", ["襛"] = "bright light; warm dress", ["襜"] = "the front of clothes", ["襞"] = "creases; folds or pleats in a garment", ["襟"] = "overlapping part of Chinese gown", ["襠"] = "crotch; seat of a pair of trousers", ["襡"] = "short skirt or tunic", ["襢"] = "to bare", ["襤"] = "ragged garments", ["襦"] = "jacket; short coat", ["襪"] = "socks; stockings", ["襫"] = "raincoat", ["襬"] = "hem at the bottom of garment", ["襭"] = "carry with the front of a robe", ["襮"] = "embroidered collar; expose", ["襯"] = "give alms; underwear; to line; lining; contrast; assist", ["襲"] = "inherit; raid; suit of clothes", ["襴"] = "gown or robe", ["襶"] = "untidy (in dress)", ["襻"] = "a loop; a belt or band", ["襼"] = "sleeve of dress", ["襾"] = "cover; radical no. 146", ["西"] = "west", ["要"] = "important; vital; to want; to be going to; must; demand; ask; request; coerce", ["覂"] = "to throw a rider", ["覃"] = "''surname''; deep", ["覆"] = "to cover; to overflow; to reply to a letter; to overturn; to capsize", ["覈"] = "examine thoroughly", ["見"] = "to see; to meet; to appear; to interview", ["規"] = "compass; rule", ["覓"] = "seek", ["視"] = "to look at; to regard; to inspect", ["覗"] = "peek", ["覘"] = "keep at; to spy", ["覜"] = "have an audience", ["覡"] = "wizard", ["覦"] = "passionately desire", ["親"] = "dear; intimate; parent; relation; closely related; parents-in-law of one's offspring", ["覬"] = "covet; long for", ["覯"] = "complete; meet unexpectedly; see", ["覷"] = "to spy; watch for", ["覺"] = "feel; find that; thinking; awake; aware; a nap; a sleep", ["覽"] = "look over; to view", ["覿"] = "face to face", ["觀"] = "to look at; to watch; to observe; to behold; Taoist monastery", ["角"] = "horn; angle; role; actor; contend; horn-shaped; Chinese musical note", ["觔"] = "catty", ["觕"] = "coarse, rough, rude", ["觖"] = "dissatisfied", ["觚"] = "goblet; rule; law", ["觜"] = "mouth; (zodiacal sign)", ["觝"] = "to butt; resist", ["觡"] = "horns; antlers", ["解"] = "to loosen; to untie; to explain; to remove; to divide; to dissolve; to solve; solution; send under escort", ["觥"] = "big; cup made of horn; horn wine container", ["觩"] = "bent upwards; taut", ["觫"] = "tremble with fear", ["觭"] = "odd; one horn up and one horn down", ["觱"] = "fever; tartar horn", ["觳"] = "(measure); frightened", ["觴"] = "feast; goblet", ["觶"] = "goblet", ["觷"] = "to polish horn", ["觸"] = "knock against; touch; to feel", ["觼"] = "buckle; clasp; ring", ["觿"] = "ivory bodkin for undoing knots", ["言"] = "to speak; to say; talk; word", ["訂"] = "to agree; to conclude; to draw up; to subscribe to (a newspaper, etc.); to order", ["訃"] = "obituary notice", ["訇"] = "''surname''; sound of a crash", ["計"] = "to calculate; to compute; to count; reckon; ruse; to plan", ["訊"] = "to question; to ask; to interrogate; rapid; speedy; fast; news; information", ["討"] = "ask for; send punitive expedition; to demand; to marry", ["訏"] = "to boast; great; large", ["訐"] = "accuse; pry", ["訑"] = "arrogant; mean", ["訒"] = "slow in speech", ["訓"] = "example; pattern; to teach; to train; instruction", ["訕"] = "abuse; slander", ["訖"] = "finished", ["託"] = "entrust", ["記"] = "to remember; to note; mark; sign; to record", ["訛"] = "error; exhort; false", ["訝"] = "astounded", ["訟"] = "litigation", ["訢"] = "happy", ["訣"] = "farewell; secrets (of an art)", ["訥"] = "large; speak cautiously", ["訧"] = "fault; mistake", ["訪"] = "inquire; seek; visit", ["訬"] = "clamour, uproar, annoyance", ["設"] = "to set up; to arrange; to establish; to found; to display", ["許"] = "to allow; to permit; to praise; ''surname''", ["訴"] = "complain; sue; tell", ["訶"] = "to blame; ridicule in loud voice", ["訹"] = "to beguile with false stories", ["診"] = "examine or treat medically", ["註"] = "annotate", ["証"] = "prove, confirm, verify; proof", ["訾"] = "backbite; dislike; ''surname''; wealth", ["詀"] = "garrulous; to whisper; to joke", ["詁"] = "comment; explain", ["詅"] = "to sell", ["詆"] = "defame; to slander", ["詈"] = "curse; scold", ["詊"] = "pleasing; clever talk", ["詎"] = "how (interj. of surprise)", ["詐"] = "crafty; dishonest", ["詑"] = "cheat", ["詒"] = "a present in writing; bequeath", ["詔"] = "imperial order", ["評"] = "to discuss; to comment; to criticize; to judge; to choose (by public appraisal)", ["詖"] = "a half-truth; flatter", ["詗"] = "clever; to gossip; to spy", ["詘"] = "to bend; yield", ["詛"] = "curse; swear (oath)", ["詞"] = "word; phrase; classical Chinese poem", ["詠"] = "sing", ["詡"] = "brag; harmony; make known", ["詢"] = "inquire", ["詣"] = "go", ["試"] = "to test; to try; experiment; examination; test", ["詨"] = "kind of cicada, [[cosmopsaltria]]", ["詩"] = "poem; poetry; verse", ["詫"] = "surprised; to wander; to be astonished", ["詬"] = "sense of shame; to abuse", ["詭"] = "sly; crafty", ["詮"] = "explain; comment", ["詰"] = "investigate; restrain; scold", ["話"] = "spoken words; speech; dialect; language; talk; conversation; what someone said", ["該"] = "that; the above-mentioned; most likely; to deserve; should; ought to; owe", ["詳"] = "detailed; comprehensive", ["詵"] = "inform; inquire", ["詹"] = "excellent; verbose", ["詻"] = "harsh; forbidding", ["詼"] = "whimsical; humorous", ["詿"] = "deceive; disturb", ["誂"] = "tempt", ["誃"] = "to separate", ["誄"] = "eulogize the dead; eulogy", ["誅"] = "execute; punish", ["誆"] = "mislead; to swindle", ["誇"] = "to boast", ["誌"] = "sign; mark; to record; write a footnote", ["認"] = "to recognize; to know; to admit", ["誑"] = "deceive; lies", ["誓"] = "oath; vow; to swear; to pledge", ["誕"] = "birth; birthday; brag; boast; to increase", ["誘"] = "entice; tempt", ["誚"] = "ridicule; to blame", ["語"] = "speech; language; dialect; tell to", ["誠"] = "honest; sincere; true", ["誡"] = "commandment; prohibit", ["誣"] = "accuse falsely", ["誤"] = "mistake; error; to miss; to harm; to delay; to neglect", ["誥"] = "enjoin; grant (a title)", ["誦"] = "read aloud", ["誧"] = "huge; to admonish", ["誨"] = "admonish; instruct", ["說"] = "to speak; to say; persuade (politically)", ["誰"] = "who", ["課"] = "subject; class; lesson", ["誶"] = "abuse", ["誹"] = "slander", ["誼"] = "friendship", ["誾"] = "''surname''; respectful; speak gently", ["調"] = "harmonize; reconcile; blend; suit well; provoke; incite; mode (music); to move (troops); tune; tone; melody; to transfer", ["諂"] = "flatter; cajole", ["諄"] = "repeatedly (in giving advice)", ["諆"] = "deceive; contrive", ["談"] = "to speak; to talk; to converse; to chat; to discuss; ''surname''", ["諉"] = "shirk; give excuses", ["請"] = "to ask; to invite; please (do something); to treat (to a meal, etc.); to request", ["諍"] = "to admonish", ["諏"] = "choose; consult", ["諑"] = "complain", ["諒"] = "forgive", ["諕"] = "to intimidate", ["論"] = "to talk (about); to discuss; theory; by the; per; the Analects (of Confucius)", ["諗"] = "consult", ["諛"] = "flatter", ["諜"] = "to spy", ["諝"] = "deceit; knowledge", ["諞"] = "brag", ["諟"] = "examine; judge", ["諠"] = "clamour; noise; deceitful", ["諡"] = "confer such title; posthumous title", ["諢"] = "jest; nickname", ["諤"] = "honest speech", ["諦"] = "examine; truth (Buddhist)", ["諧"] = "harmonious", ["諫"] = "to admonish", ["諭"] = "order (from above)", ["諮"] = "consult", ["諱"] = "avoid mentioning; to taboo", ["諳"] = "be versed in; know well", ["諴"] = "bring into accord; sincerity", ["諵"] = "mumble in repetition", ["諶"] = "faithful; sincere", ["諷"] = "satirize", ["諸"] = "all; many; various", ["諺"] = "proverb", ["諼"] = "{{taxlink|Hemerocallis flava|species}}; false; forget", ["諾"] = "to promise; to yes", ["謀"] = "to plan; seek; scheme", ["謁"] = "to visit (a superior)", ["謂"] = "speak of", ["謄"] = "make a (clean) copy", ["謅"] = "make up (a story)", ["謆"] = "beguile; cajole", ["謇"] = "speak out boldly", ["謊"] = "lies; to lie", ["謍"] = "humming sound", ["謎"] = "riddle", ["謏"] = "small; induce", ["謐"] = "quiet", ["謑"] = "shame, disgrace", ["謖"] = "composed; rise; to begin", ["謗"] = "to slander; defame; speak ill of", ["謙"] = "modest", ["謚"] = "confer such title; posthumous title", ["講"] = "to talk; speech; to speak; to tell; to explain", ["謝"] = "to decline; to thank; gratitude", ["謠"] = "popular ballad; false rumour", ["謨"] = "plan; to practise", ["謪"] = "to consult; to deliberate; commerce", ["謫"] = "disgrace (an official); find fault", ["謬"] = "absurd; erroneous", ["謳"] = "sing ballads; songs", ["謷"] = "greatness; slander; sound of weeping", ["謹"] = "cautious", ["謼"] = "to shout; to mourn; to invoke", ["謾"] = "disrespect; neglect; slight; deceive", ["譁"] = "clamour; noise", ["譅"] = "talkative; loquacious", ["譆"] = "oh (denoting fright)", ["譈"] = "dislike; hate", ["證"] = "certificate; proof; to prove; to demonstrate; to confirm", ["譊"] = "wrangling, contention, to dispute", ["譎"] = "deceitful", ["譏"] = "ridicule", ["譒"] = "promulgate; to spread", ["譔"] = "compose; compile; discourse in praise", ["譖"] = "slander", ["識"] = "to record; write a footnote; to know; knowledge", ["譙"] = "ridicule; to blame; ''surname''; drum tower", ["譚"] = "talk; ''surname''", ["譜"] = "chart; list; score (music); spectrum (maths) (phys.)", ["譟"] = "disturbance; noise of crowd", ["警"] = "to alert; to warn; police", ["譫"] = "incoherent talk; talkative", ["譬"] = "give an example", ["譭"] = "defame; to slander", ["譯"] = "to translate; to interpret", ["議"] = "criticize; discuss", ["譴"] = "punishment; scold", ["護"] = "protect", ["譸"] = "deceive; to lie", ["譹"] = "to shout, roar, terrify; swiftly", ["譽"] = "reputation", ["譾"] = "shallow; stupid", ["讀"] = "to read; to study; comma; phrase marked by pause", ["讅"] = "investigate; try (in court)", ["讆"] = "to exaggerate; incredible", ["變"] = "to change; to become different; to transform; to vary; rebellion", ["讋"] = "be frightened", ["讌"] = "feast; repose", ["讎"] = "enmity; feud", ["讒"] = "slander; defame; misrepresent; to speak maliciously", ["讓"] = "to ask; to let; permit; have (someone do something); to yield; to allow", ["讕"] = "make a false charge", ["讖"] = "prophecy; omen", ["讙"] = "acclamation", ["讚"] = "to praise", ["讜"] = "advice; counsels", ["讞"] = "decide judicially", ["讟"] = "to murmur; to slander", ["谷"] = "valley", ["谽"] = "a mouth or opening", ["谿"] = "creek", ["豁"] = "opening; stake all; sacrifice; crack; slit; clear; open; exempt (from); liberal-minded; play Chinese finger game", ["豆"] = "bean; sacrificial vessel", ["豇"] = "cowpeas; black-eyed beans", ["豈"] = "how can it be that", ["豉"] = "salted fermented beans", ["豊"] = "abundant, lush, bountiful, plenty", ["豋"] = "ceremonial vessel", ["豌"] = "peas", ["豎"] = "(straight down character stroke); to erect; vertical", ["豏"] = "d (29th); half-grown beans", ["豐"] = "abundant; plentiful; great; ''surname''", ["豔"] = "glamorous", ["豕"] = "hog; swine", ["豖"] = "a shackled pig", ["豗"] = "clash; grunting of pigs", ["豚"] = "suckling pig", ["豜"] = "pig of 3 years", ["豝"] = "corned beef; female pig", ["象"] = "shape; form; appearance; elephant; image under a map (maths)", ["豢"] = "feed pigs and dogs; to rear", ["豦"] = "a wild boar; to fight", ["豨"] = "swine", ["豪"] = "grand; heroic; luxurious", ["豫"] = "beforehand; prepare; Henan Province (abbrev.)", ["豬"] = "hog; pig; swine", ["豭"] = "boar; male pig", ["豳"] = "name of an ancient city", ["豵"] = "litter of pigs; little pig", ["豶"] = "gelded pig", ["豷"] = "breathing of pigs", ["豸"] = "beast with long backbone; legless insect", ["豹"] = "leopard; panther", ["豺"] = "dhole", ["豻"] = "(canine); jail", ["貂"] = "sable; marten", ["貅"] = "(leopard)", ["貆"] = "badger", ["貉"] = "badger-like animal; name of a wild tribe; silent", ["貊"] = "name of a wild tribe; silent", ["貌"] = "appearance", ["貍"] = "wild cat", ["貓"] = "cat", ["貔"] = "(leopard)", ["貘"] = "tapir", ["貜"] = "(ape)", ["貝"] = "cowries; shell; valuables; shellfish", ["貞"] = "chaste", ["負"] = "lose; negative (maths, etc.); to bear; to carry (on one's back)", ["財"] = "money; wealth; riches; property; valuables", ["貢"] = "tribute; gifts", ["貤"] = "promote; reward", ["貧"] = "poor", ["貨"] = "goods; money; commodity", ["販"] = "deal in; trade in; to peddle; to sell", ["貪"] = "greedy", ["貫"] = "pierce; to string", ["責"] = "duty; responsibility; to reproach; to blame", ["貯"] = "to store; to save; stockpile", ["貰"] = "borrow; buy on credit; rent out", ["貲"] = "fine instead of punishment; property", ["貳"] = "two (fraud-proof)", ["貴"] = "expensive; noble; your (name); precious", ["貶"] = "to diminish; to demote; reduce or devaluate; disparage; censure; depreciate", ["買"] = "buy", ["貸"] = "lend on interest; borrow; loan; make excuses; pardon; forgive", ["貺"] = "bestow; confer", ["費"] = "to cost; to spend; fee; wasteful; expenses; ''surname''", ["貼"] = "to stick; to paste; to keep close to; to fit snugly; subsidize; allowance", ["貽"] = "bequeath", ["貿"] = "commerce; trade", ["賀"] = "congratulate", ["賁"] = "bright; energetic", ["賂"] = "bribe; bribery", ["賃"] = "to rent", ["賄"] = "bribe; bribery", ["賅"] = "''surname''; include in; prepare", ["資"] = "resources; capital; to provide; to supply; to support; money; expense", ["賈"] = "merchant; to buy", ["賊"] = "thief", ["賏"] = "pearls or shells strung together", ["賑"] = "to relieve (the distressed)", ["賒"] = "buy on credit", ["賓"] = "visitor; guest", ["賕"] = "to bribe", ["賙"] = "bestow alms", ["賚"] = "bestow; confer", ["賜"] = "confer; bestow; grant", ["賝"] = "(gem)", ["賞"] = "enjoy the beauty of; give; award", ["賠"] = "lose in trade; pay damage", ["賡"] = "continue (as a song)", ["賢"] = "worthy (person)", ["賣"] = "sell", ["賤"] = "inexpensive; lowly", ["賦"] = "poetic essay; taxation; bestow on; endow with", ["賧"] = "fine", ["賨"] = "tribute paid by Han dynasty tribes", ["質"] = "hostage; substance; nature; quality", ["賬"] = "account", ["賭"] = "bet; gamble", ["賮"] = "farewell presents", ["賴"] = "disclaim; rely; to blame", ["賵"] = "gift to the dead", ["賸"] = "have as remainder", ["賺"] = "cheat; swindle; earn; make a profit", ["賻"] = "contribute to funeral expenses", ["購"] = "to buy; to purchase", ["賽"] = "to compete; competition; match", ["賾"] = "mysterious", ["贄"] = "gifts to superiors", ["贅"] = "superfluous", ["贇"] = "good appearance", ["贈"] = "give present", ["贉"] = "pay an advance; silk book cover", ["贊"] = "to patronize; to support; to praise", ["贍"] = "to support; provide for", ["贏"] = "to beat; to win; to profit", ["贐"] = "farewell presents", ["贓"] = "booty; spoils", ["贔"] = "able to support great weight", ["贖"] = "redeem; to ransom", ["贗"] = "false", ["贛"] = "Jiangxi", ["赤"] = "red; scarlet; bare; naked", ["赦"] = "to pardon (a convict)", ["赧"] = "blush", ["赫"] = "distinguished; awe-inspiring", ["赬"] = "deep red", ["赭"] = "ochre", ["走"] = "to walk; to go; to move; to leave", ["赴"] = "go towards; go to; attend (a banquet, etc.); to go", ["起"] = "to rise; to raise; to get up", ["趁"] = "avail oneself of; take advantage of", ["趄"] = "recline; hesitate; mark time", ["超"] = "to exceed; overtake; surpass; transcend; ultra-; super-; to pass; to cross", ["越"] = "to exceed; to climb over; to surpass; the more ... the more", ["趑"] = "can't move; to falter", ["趒"] = "to jump, to climb over, to leap, to posture; a gangway", ["趔"] = "stumble", ["趕"] = "to catch up; to overtake; to hurry; to rush; to drive away", ["趙"] = "''surname''", ["趟"] = "a time; a trip", ["趡"] = "place name", ["趣"] = "interesting; to interest", ["趨"] = "to hasten; to hurry; walk fast", ["趫"] = "nimble; walk on stilts", ["趮"] = "easily provoked, hasty; fierce, cruel", ["趯"] = "to jump; way of stroke in calligraphy", ["趲"] = "hasten; urge", ["足"] = "foot; to be sufficient", ["趴"] = "to lie on one's stomach", ["趵"] = "jump; leap", ["趷"] = "to jolt", ["趹"] = "to gallop", ["趺"] = "instep; tarsus", ["趼"] = "callous", ["趾"] = "toe; foot", ["跁"] = "to squat; crouch", ["跂"] = "foot with six toes", ["跅"] = "careless", ["跆"] = "trample", ["跋"] = "travel; walk", ["跌"] = "to drop; to fall; to tumble", ["跏"] = "sit cross-legged", ["跐"] = "to trample, to step, to walk on the ball of the foot", ["跑"] = "to run; to escape", ["跕"] = "shuffle", ["跖"] = "sole of foot", ["跗"] = "instep; tarsus", ["跙"] = "weak, lame", ["跚"] = "limp", ["跛"] = "lame; crippled", ["距"] = "at a distance of; distance; to be apart", ["跟"] = "to follow; to go with; heel; with; and", ["跡"] = "footprint; mark; trace; vestige; sign; indication", ["跣"] = "barefooted", ["跤"] = "bones of leg; wrestle", ["跦"] = "pace back and forth; to walk", ["跧"] = "to curl up; crouch", ["跨"] = "step across; step astride", ["跩"] = "waddle; swagger", ["跪"] = "kneel", ["跫"] = "sound of trampling", ["跬"] = "brief; short step", ["跮"] = "hasty walking", ["路"] = "road; path; way", ["跱"] = "to squat; to stop", ["跲"] = "stumble", ["跳"] = "jump; hop; skip (a grade); to leap; to bounce; to beat", ["跴"] = "capture; step on", ["跺"] = "(v) stamp one's foot", ["跼"] = "cramped; narrow", ["跽"] = "kneel", ["踅"] = "to walk around; turn back midway; walk with one leg", ["踆"] = "squat", ["踉"] = "stagger; sway from side to side; jump", ["踊"] = "leap", ["踏"] = "step on", ["踐"] = "fulfil (a promise); tread; walk", ["踒"] = "to slip and sprain a limb", ["踔"] = "to get ahead; to stride; to excel", ["踖"] = "to step; walk reverently", ["踘"] = "leather ball", ["踜"] = "to stumble; to slip; to fall", ["踝"] = "ankle (bone)", ["踞"] = "be based upon; squat", ["踟"] = "hesitating; undecided; hesitant", ["踡"] = "to curl up", ["踢"] = "kick; play (football or soccer)", ["踣"] = "corpse; prostrate", ["踤"] = "butt against", ["踦"] = "shin", ["踧"] = "carefully; level; smooth", ["踩"] = "step upon; tread on; stamp", ["踫"] = "collide, bump into", ["踮"] = "tip toe", ["踰"] = "exceed; jump over", ["踱"] = "stroll, pace, walk slowly", ["踴"] = "leap", ["踵"] = "arrive; follow; heel", ["踶"] = "kick; tread on", ["踹"] = "kick; trample", ["踼"] = "to fall flat; to fall on the face", ["踽"] = "hunchbacked; walk alone", ["蹀"] = "tread on", ["蹁"] = "to limp", ["蹂"] = "trample", ["蹄"] = "hoof; pork shoulder", ["蹇"] = "difficulty; lame", ["蹈"] = "tread on; trample; stamp; fulfil", ["蹉"] = "error; slip; miss; err", ["蹊"] = "footpath", ["蹋"] = "step on", ["蹌"] = "stagger; sway from side to side; walk rapidly", ["蹐"] = "walk with short steps", ["蹓"] = "to stroll; walk a horse", ["蹔"] = "temporary; fleeting; ephemeral", ["蹕"] = "to clear streets when emperor tours", ["蹙"] = "urgent; wrinkled; contracted; to kick", ["蹚"] = "wade", ["蹜"] = "walk carefully", ["蹝"] = "slippers", ["蹟"] = "footprint; trace", ["蹠"] = "metatarsus; sole of foot; tread on", ["蹡"] = "(manner of walking)", ["蹢"] = "hoof", ["蹣"] = "limp", ["蹤"] = "footprint; trace; tracks", ["蹦"] = "to jump; bounce or hop", ["蹧"] = "to waste; spoil", ["蹩"] = "limp", ["蹬"] = "step into (as tight shoe)", ["蹭"] = "rub against; walk slowly; rub", ["蹯"] = "paws of animal", ["蹲"] = "crouch; squat", ["蹴"] = "carefully; kick; tread on; stamp", ["蹶"] = "stumble; trample; to kick (as a horse)", ["蹺"] = "raise one's foot", ["蹻"] = "raise one's foot", ["蹼"] = "web (of feet of ducks, frogs, etc.)", ["躁"] = "hot-tempered; impatient", ["躄"] = "both feet crippled; lame", ["躅"] = "to step on; footprint", ["躇"] = "hesitate", ["躉"] = "wholesale", ["躋"] = "go up", ["躍"] = "to jump; to leap", ["躐"] = "step across", ["躑"] = "to kick; to jump; foot filth", ["躒"] = "move; walk", ["躓"] = "stumble", ["躔"] = "course of stars; follow precedent", ["躕"] = "irresolute; undecided", ["躗"] = "exaggerate", ["躘"] = "to walk", ["躚"] = "manner of dancing; walk around", ["躝"] = "to pass; to step over; to creep; to twine round", ["躞"] = "to walk", ["躠"] = "to limp", ["躡"] = "chase; step; tread", ["躥"] = "jump up", ["躦"] = "to jump", ["躩"] = "bend; leap", ["躪"] = "trample down, oppress, overrun", ["身"] = "body; torso; person; life; status; pregnancy; (a measure word used for clothes) suit", ["躬"] = "body; oneself; personally; to bow", ["躲"] = "avoid; get out of way; to hide; to go into hiding", ["躺"] = "to recline; to lie down", ["軀"] = "human body", ["車"] = "vehicle on land; car; machine; to shape with a lathe", ["軋"] = "crush; in the first place", ["軌"] = "course; path; track; rail", ["軍"] = "army; military; arms", ["軏"] = "crossbar for yoking horses", ["軒"] = "covered carriage; pavilion", ["軔"] = "brake", ["軘"] = "war chariot", ["軛"] = "restrain; yoke", ["軜"] = "inner reins of a 4-horse team", ["軝"] = "end of axle", ["軟"] = "soft; flexible", ["軥"] = "ends of yoke", ["軨"] = "lattice work on front and sides", ["軫"] = "d (11th); strongly (as of emotion)", ["軱"] = "wheel", ["軷"] = "sacrifice", ["軸"] = "axis; axle", ["軹"] = "end of axle outside of hub", ["軺"] = "light carriage", ["軻"] = "given name of Mencius", ["軼"] = "disperse; put in order; surpass", ["軾"] = "crossbar in carriage front", ["軿"] = "curtained carriage used by women", ["輀"] = "hearse", ["較"] = "clear; distinct; compare; comparatively", ["輅"] = "chariot", ["輇"] = "small; wheel without spokes", ["輈"] = "beam; pole; shaft", ["載"] = "to carry; to convey; to load; to hold; and; also; as well as; simultaneously; year", ["輊"] = "back and lower of chariot; short; low", ["輒"] = "sides of chariot where weapons", ["輓"] = "draw; pull; send funeral ode", ["輔"] = "to assist; to complement; auxiliary", ["輕"] = "light; easy; gentle; soft; reckless; unimportant; frivolous; small in number; unstressed; neutral", ["輗"] = "clamps for crossbar of carriage", ["輛"] = "(a measure word for vehicles)", ["輜"] = "carriage that has curtain; carriage for military supply", ["輝"] = "bright; glorious", ["輞"] = "tire; wheel band", ["輟"] = "stop; cease; suspend", ["輠"] = "grease-pot under a cart", ["輤"] = "a pall to cover the hearse", ["輥"] = "revolve; stone roller", ["輦"] = "emperor's carriage", ["輩"] = "contemporaries; generation; lifetime", ["輪"] = "wheel; gear; (by) turn; rotate", ["輬"] = "a hearse; a carriage", ["輮"] = "wheel band", ["輯"] = "gather up; collect; edit; compile", ["輳"] = "converge; hub of wheel", ["輴"] = "hearse", ["輵"] = "great array of spears and chariots", ["輶"] = "light carriage; trifling", ["輸"] = "to transport; to lose", ["輹"] = "parts of cart holding the axle", ["輻"] = "spoke of a wheel", ["輾"] = "roll over on side; turn half over", ["輿"] = "carriage; sedan chair; world", ["轀"] = "hearse", ["轂"] = "hub of wheel; wheel", ["轄"] = "have jurisdiction over", ["轅"] = "shafts of cart; yamen", ["轆"] = "windlass", ["轇"] = "complicated, confused; dispute", ["轉"] = "to revolve; to turn; to circle about; to walk about; to convey; to forward (mail); to transfer; to shift", ["轍"] = "rut; track; to remove; to withdraw", ["轎"] = "sedan chair", ["轏"] = "chariot for sleeping and conveyance", ["轑"] = "spokes", ["轒"] = "war chariot", ["轔"] = "rumbling of wheels", ["轕"] = "confused; disorderly", ["轖"] = "leather top of a cart", ["轗"] = "unable to reach one's aim", ["轘"] = "to tear between chariots (punishment)", ["轙"] = "rings on the yokes", ["轝"] = "sedan chair", ["轞"] = "vehicle for transporting prisoners", ["轟"] = "explosion; bang; boom; rumble; strike (by thunder or a bomb)", ["轡"] = "bridle; reins", ["轢"] = "to bully; wheel-rut", ["轤"] = "windlass", ["辛"] = "8th [[heavenly stem]]; tired", ["辜"] = "crime; sin", ["辟"] = "law; king; emperor; monarch; royal; ward off", ["辣"] = "hot (spicy); pungent", ["辦"] = "to do; to manage; to handle; to go about; to run; to set up; to deal with", ["辨"] = "distinguish; recognize", ["辭"] = "bid farewell; diction; resign; say goodbye; take leave; decline", ["辮"] = "a braid or queue; to plait", ["辯"] = "dispute; debate; argue; discuss", ["辰"] = "5th [[earthly branch]]; 7–9 a.m.", ["辱"] = "disgrace; insult", ["農"] = "agriculture", ["辿"] = "follow, pursue", ["迂"] = "literal-minded", ["迄"] = "as yet; until", ["迅"] = "rapid", ["迋"] = "deceive; scare; to travel", ["迍"] = "falter, hesitate", ["迎"] = "to welcome", ["近"] = "near; close (to); approximately", ["迓"] = "receive (as a guest)", ["返"] = "to return (to)", ["迕"] = "obstinate, perverse", ["迢"] = "remote", ["迣"] = "to leap over", ["迤"] = "extending to; winding", ["迥"] = "distant", ["迨"] = "catch; seize; until", ["迪"] = "direct; follow", ["迫"] = "to force; to compel; pressing; urgent", ["迭"] = "alternately; repeatedly", ["迮"] = "haste; to press", ["述"] = "to state; to tell; to narrate; to relate", ["迴"] = "to curve; to return; to revolve", ["迷"] = "bewilder; crazy about; fan; enthusiast; lost; confused", ["迸"] = "to burst forth; to spurt; to crack; split", ["迺"] = "thereupon", ["迻"] = "to shift; to transfer", ["追"] = "pursue (a problem); to chase", ["迿"] = "to be the first to begin a quarrel", ["退"] = "retreat; to decline; to move back; to withdraw", ["送"] = "to deliver; to carry; to give (as a present); to present (with); to see off; to send", ["逃"] = "to escape; to run away; to flee", ["逄"] = "''surname''", ["逆"] = "contrary; opposite; backwards; to go against; to oppose; to betray; to rebel", ["逋"] = "flee; abscond; owe", ["逌"] = "distant; joyous; satisfied", ["透"] = "to penetrate; thorough; penetrating; to pass through; to pierce", ["逐"] = "to pursue; to chase; individually; one by one", ["逑"] = "collect; to match", ["途"] = "way; route; road", ["逕"] = "way; path; direct; diameter", ["逖"] = "far", ["逗"] = "stay; stop; to pause (while reading); to tease (play with)", ["這"] = "this; these; (sometimes used before a measure word, especially in Beijing)", ["通"] = "go through; know well; to connect; to communicate; open", ["逛"] = "to stroll; to visit", ["逝"] = "depart; die", ["逞"] = "please oneself; presume on; boast", ["速"] = "fast; rapid; quick", ["造"] = "to make; to build; to invent; to manufacture", ["逡"] = "shrink from", ["逢"] = "every time; meet by chance", ["連"] = "even; as; to join; to link; successively", ["逭"] = "escape from", ["逮"] = "catch; seize; until; arrest", ["逯"] = "go carefully", ["週"] = "cycle; week", ["進"] = "advance; enter; to come in", ["逴"] = "apparent; distant; highly", ["逵"] = "crossroads; thoroughfare", ["逶"] = "winding, curving; swagger", ["逸"] = "escape; leisurely; outstanding", ["逼"] = "force; compel; drive; press for; extort; press on towards; press up to; close in on; close", ["逾"] = "to exceed; to go beyond; to jump over", ["遁"] = "disappear; to escape", ["遂"] = "forthwith", ["遄"] = "hurry; go to and fro", ["遇"] = "meet with", ["遉"] = "spy, reconnoitre; detective", ["遊"] = "to roam; travel", ["運"] = "to move; to transport; to use; to apply; fortune; luck; fate", ["遍"] = "a time; everywhere; turn; all over; one time", ["過"] = "to cross; to go over; (experienced action marker); to pass; to celebrate; to live; to get along; excessively; too-", ["遏"] = "to stop; check", ["遐"] = "abandon; distant", ["遑"] = "leisure", ["遒"] = "consolidate; end; strong", ["道"] = "direction; way; method; road; path; principle; truth; reason; skill; Tao (of Taoism); a measure word; to say; to speak; to talk", ["達"] = "attain; pass through; achieve; reach; realize; clear; inform; notify; dignity", ["違"] = "to disobey; to violate; to separate; to go against", ["遘"] = "meet unexpectedly", ["遙"] = "distant; remote; far; far away", ["遛"] = "to stroll; walk a horse; to linger", ["遜"] = "to yield", ["遝"] = "abundant; mixed", ["遞"] = "to hand over; to pass; to give", ["遠"] = "far; distant; remote", ["遣"] = "dispatch", ["遨"] = "make excursion; ramble; travel", ["適"] = "to fit; to suit", ["遫"] = "alert; nimble; quick", ["遭"] = "a time; incident; meet by chance; turn", ["遮"] = "cover up (a shortcoming); screen off; to hide; to conceal", ["遯"] = "disappear; to escape", ["遰"] = "go away; migrate", ["遲"] = "late; delayed; slow", ["遴"] = "select for appointment", ["遵"] = "to observe; to obey; to follow", ["遶"] = "go around; to wind (around)", ["遷"] = "to move; to shift", ["選"] = "to choose; to pick; to select; to elect", ["遹"] = "follow; in accordance with", ["遺"] = "to lose; to leave behind", ["遻"] = "recalcitrant; to encounter", ["遼"] = "Liaoning; name of a dynasty", ["遽"] = "hurry; fast; suddenly", ["避"] = "avoid; shun; flee; escape; leave; to keep away; to leave; to hide", ["邀"] = "invite to come", ["邁"] = "take a step", ["邃"] = "deep; distant; mysterious", ["還"] = "pay back; return; also; in addition; more; still; else; yet; (not) yet", ["邅"] = "not making progress", ["邇"] = "near", ["邈"] = "profound; remote", ["邊"] = "side; edge; margin; border; boundary", ["邏"] = "to patrol", ["邐"] = "winding", ["邑"] = "city", ["邕"] = "harmonious", ["邗"] = "name of an ancient river", ["邘"] = "''surname''; place name", ["邙"] = "name of a hill", ["邛"] = "mound; place name", ["邠"] = "name of an ancient city", ["邢"] = "''surname''; place name", ["那"] = "that; those; which", ["邦"] = "a state; country or nation", ["邧"] = "place name", ["邪"] = "daemonical; iniquitous; nefarious", ["邰"] = "''surname''; name of a feudal state", ["邱"] = "''surname''; mound", ["邲"] = "''surname''; ancient place name", ["邴"] = "''surname''; ancient city name; happy", ["邵"] = "''surname''; place name", ["邶"] = "name of a feudal state", ["邸"] = "''surname''; lodging-house", ["邽"] = "''surname''; ancient place name", ["邾"] = "''surname''; name of a feudal state", ["邿"] = "place name", ["郁"] = "''surname''; elegant", ["郃"] = "name of a person", ["郅"] = "''surname''; extremely", ["郇"] = "name of a feudal state", ["郈"] = "''surname''; place name", ["郊"] = "suburb", ["郎"] = "youth", ["郔"] = "place name", ["郕"] = "name of a feudal state", ["郗"] = "''surname''; name of an ancient city", ["郙"] = "ancient place name", ["郚"] = "place name", ["郛"] = "suburbs", ["郜"] = "''surname''; name of a feudal state", ["郝"] = "''surname''; ancient place name", ["郟"] = "name of a district in Henan", ["郠"] = "place name", ["郡"] = "canton; county; region", ["郢"] = "name of an ancient city", ["郤"] = "''surname''; crack; occasion for dislike", ["部"] = "ministry; department; section; part; division; troops; board; (a measure word); (a measure word for works of literature, films, machines, etc.)", ["郪"] = "name of a river; place name", ["郫"] = "place name", ["郭"] = "''surname''; outer city wall", ["郯"] = "''surname''; name of an ancient city", ["郰"] = "birthplace of Confucius in Shandong", ["郳"] = "place name", ["郴"] = "name of a district in Hunan", ["郵"] = "post (office); mail", ["郹"] = "place name", ["都"] = "metropolis; capital city; all; both (if two things are involved); entirely; even; already", ["郾"] = "place name", ["郿"] = "ancient place name", ["鄀"] = "place name", ["鄂"] = "Hubei province (abbrev.)", ["鄄"] = "name of a district in Shandong", ["鄆"] = "place name", ["鄇"] = "place name", ["鄈"] = "place name", ["鄉"] = "country; village", ["鄋"] = "name of a tribe", ["鄍"] = "place name", ["鄎"] = "place name", ["鄏"] = "place name", ["鄐"] = "''surname''", ["鄑"] = "place name", ["鄒"] = "''surname''; name of district in Shandong", ["鄔"] = "''surname''; ancient place name", ["鄖"] = "name of a feudal state", ["鄗"] = "ancient place name", ["鄘"] = "''surname''; name of a feudal state", ["鄙"] = "rustic; low; base; mean", ["鄚"] = "''surname''", ["鄜"] = "name of a district in Shaanxi", ["鄞"] = "name of a district in Zhejiang", ["鄠"] = "name of a district in Shaanxi", ["鄢"] = "''surname''; name of a feudal state", ["鄣"] = "place name", ["鄤"] = "place name", ["鄧"] = "Deng (Xiaoping)", ["鄩"] = "''surname''; place name", ["鄫"] = "name of a feudal state", ["鄬"] = "place in Henan province", ["鄭"] = "''surname''", ["鄮"] = "ancient place name", ["鄯"] = "name of a district in Xinjiang", ["鄰"] = "neighbour; adjacent; close to", ["鄱"] = "name of a lake", ["鄴"] = "''surname''; name of ancient district", ["鄶"] = "''surname''; name of a feudal state", ["鄹"] = "name of a state; ''surname''", ["鄺"] = "''surname''", ["鄻"] = "place name", ["鄾"] = "place name", ["鄿"] = "(herb); place name", ["酃"] = "name of a district in Hunan", ["酅"] = "place name", ["酆"] = "''surname''; name of an ancient city", ["酇"] = "group of 100 families; place name", ["酈"] = "''surname''; ancient place name", ["酉"] = "10th [[earthly branch]]; 5–7 p.m.", ["酊"] = "tincture", ["酋"] = "tribal chief", ["酌"] = "to pour the alcoholic drink; to consider", ["配"] = "to join; to fit; to mate; to mix; to match; to deserve; to make up (a prescription)", ["酎"] = "rich alcoholic drink that is fermented multiple times", ["酏"] = "elixirs; sweet wine", ["酐"] = "anhydride", ["酒"] = "alcoholic drink", ["酖"] = "poisonous; to poison; addicted to liquor", ["酗"] = "drunk", ["酚"] = "phenol", ["酞"] = "phthalein", ["酡"] = "flushed (from drinking)", ["酢"] = "toast to host by guest", ["酣"] = "intoxicated", ["酤"] = "to deal in liquors", ["酥"] = "flaky", ["酪"] = "Chinese cream; cheese", ["酬"] = "entertain; repay; return; reward; compensate", ["酮"] = "[[ketone]]", ["酯"] = "[[ester]]", ["酰"] = "(chem.) [[-acyl]]; acid radical", ["酲"] = "alcoholic", ["酴"] = "yeast", ["酵"] = "yeast", ["酶"] = "enzyme", ["酷"] = "ruthless; strong (as of wine); (slang loan from English) cool, great", ["酸"] = "sour; sore; ache; acid", ["酹"] = "pour out libation; sprinkle", ["酺"] = "drink heavily; drink in company", ["醁"] = "name of a wine", ["醃"] = "to salt; pickle", ["醅"] = "unstrained spirits", ["醆"] = "wine cup", ["醇"] = "of alcoholic drink, rich, pure", ["醉"] = "intoxicated", ["醊"] = "pour libation on ground", ["醋"] = "vinegar", ["醑"] = "spiritus; strain spirits", ["醒"] = "to wake up; to awaken; to be awake", ["醓"] = "brine of pickled meat", ["醚"] = "[[ether]]", ["醛"] = "[[aldehyde]]", ["醜"] = "shameful; ugly; disgraceful", ["醝"] = "white wine", ["醞"] = "to brew", ["醡"] = "press for extracting wine", ["醢"] = "minced meat; pickled meat", ["醣"] = "carbohydrate", ["醨"] = "dregs of wine", ["醪"] = "alcoholic drink with dregs", ["醫"] = "medical; medicine; doctor; to cure; to treat", ["醬"] = "jam; thick sauce", ["醭"] = "mould on liquids", ["醮"] = "perform sacrifice", ["醯"] = "vinegar; acyl", ["醰"] = "bitter taste in wine; rich; full flavoured", ["醲"] = "concentrated; strong wine", ["醴"] = "sweet wine", ["醵"] = "contribute to a feast", ["醹"] = "strong (of wine)", ["醺"] = "to be drunk; to intoxicate with alcohol", ["醼"] = "strong (of tea)", ["醽"] = "name of a wine", ["醾"] = "unfiltered wine; wine brewed twice", ["釀"] = "ferment; brew", ["釁"] = "offer blood in sacrifice", ["釂"] = "drain a goblet", ["釃"] = "to filter alcohol; to pour alcohol or tea into drinkware; to branch off a river", ["釅"] = "strong (of tea)", ["釆"] = "to distinguish", ["采"] = "allotment to a feudal noble; affairs; gather", ["釉"] = "glaze (of porcelain)", ["釋"] = "explain; to release", ["里"] = "li, a Chinese unit of length", ["重"] = "heavy; serious; to double; to repeat; repetition; iteration; again; a layer", ["野"] = "field; plain; open space; limit; boundary; rude; wild", ["量"] = "capacity; quantity; amount; to estimate; to measure", ["釐"] = "centi-", ["金"] = "metal; gold; money", ["釓"] = "gadolinium", ["釔"] = "yttrium", ["釕"] = "ruthenium", ["釗"] = "encourage; to cut; to strain", ["釘"] = "nail", ["釙"] = "polonium", ["釜"] = "kettle; cauldron", ["針"] = "needle; pin; injection", ["釣"] = "to fish with a hook and bait", ["釤"] = "samarium", ["釦"] = "button", ["釧"] = "an armlet; bracelet", ["釩"] = "vanadium", ["釪"] = "an alms bowl; a small bell", ["釬"] = "to solder; weld by heat", ["釭"] = "hanging bowl for lamp or fish", ["釱"] = "fetters; to fetter", ["釵"] = "hairpin", ["釷"] = "thorium", ["釸"] = "silicon", ["釹"] = "neodymium", ["鈀"] = "palladium", ["鈁"] = "francium", ["鈃"] = "long-necked wine flask", ["鈄"] = "a wine flagon", ["鈆"] = "lead", ["鈇"] = "axe", ["鈉"] = "sodium", ["鈊"] = "cadolinium", ["鈌"] = "to pierce, to stab; to take", ["鈍"] = "blunt; stupid", ["鈐"] = "latch of door; seal", ["鈑"] = "metal plate; sheet of metal", ["鈒"] = "germanium", ["鈔"] = "money; paper money", ["鈕"] = "button", ["鈞"] = "30 catties or 15 kg; great; (honorific) your", ["鈣"] = "calcium", ["鈥"] = "holmium", ["鈦"] = "titanium", ["鈧"] = "scandium", ["鈮"] = "niobium", ["鈰"] = "cerium", ["鈳"] = "columbium", ["鈴"] = "(small) bell", ["鈷"] = "cobalt", ["鈸"] = "cymbals", ["鈹"] = "beryllium", ["鈺"] = "hard metals", ["鈽"] = "plutonium", ["鈾"] = "uranium", ["鈿"] = "gold inlaid work", ["鉀"] = "potassium", ["鉅"] = "great; hard iron", ["鉆"] = "treasure", ["鉈"] = "thallium", ["鉉"] = "stand for bronze tripod (archeol.); used in names, e.g. 盧武鉉 President Loh Roh Mu-hyun of South Korea", ["鉋"] = "a plane; to plane", ["鉌"] = "small bell", ["鉍"] = "bismuth", ["鉏"] = "hoe", ["鉑"] = "platinum", ["鉗"] = "pincers; pliers; tongs; claw (of animal); to grasp with pincers; to pinch; to clamp; to restrain; to restrict; to gag", ["鉚"] = "riveting", ["鉛"] = "lead (metal)", ["鉞"] = "battle-axe", ["鉤"] = "entice; hook", ["鉥"] = "acmite", ["鉦"] = "gong used to halt troops", ["鉬"] = "molybdenum", ["鉭"] = "tantalum", ["鉲"] = "cadmium", ["鉶"] = "cauldron for soup", ["鉸"] = "scissors; to cut (with scissors)", ["鉺"] = "erbium", ["鉻"] = "chromium", ["鉼"] = "plate", ["鉾"] = "spear", ["鉿"] = "hafnium", ["銀"] = "silver; money", ["銃"] = "a gun; a pistol", ["銅"] = "copper", ["銍"] = "sickle", ["銎"] = "eye of an axe", ["銑"] = "shining metal", ["銓"] = "estimate; select", ["銕"] = "iron; strong, solid, firm", ["銖"] = "twenty-fourth part of a tael", ["銘"] = "inscribed motto", ["銚"] = "weeding tool; pan with a long handle", ["銛"] = "fish-spear; sharp", ["銜"] = "hold in mouth; nominal office", ["銠"] = "rhodium", ["銣"] = "rubidium", ["銤"] = "americium", ["銥"] = "iridium", ["銦"] = "indium", ["銧"] = "point of a sword", ["銨"] = "ammonium", ["銩"] = "thulium", ["銪"] = "europium", ["銫"] = "caesium", ["銬"] = "shackles, manacle", ["銲"] = "to solder; weld by heat", ["銳"] = "acute", ["銶"] = "single-headed pick; stone chisel", ["銷"] = "to melt; to do away with; to sell", ["銻"] = "antimony", ["銼"] = "a file (tool for shaping metal); to file", ["鋁"] = "aluminium", ["鋂"] = "lock; metal dog collar", ["鋅"] = "zinc", ["鋆"] = "gold", ["鋇"] = "barium", ["鋈"] = "-plated; to plate", ["鋊"] = "a poker; brass filings; to file", ["鋌"] = "big arrow; walk fast; ingot", ["鋍"] = "beryllium", ["鋏"] = "pincers for use at a fire; sword", ["鋐"] = "utensil; implement", ["鋑"] = "to engrave or carve, as a block for printing", ["鋒"] = "point or edge of a tool", ["鋕"] = "engrave; to record", ["鋘"] = "to plaster; trowel", ["鋙"] = "hoe", ["鋝"] = "(ancient unit of weight)", ["鋟"] = "carve", ["鋤"] = "a hoe; to hoe or dig; to weed; get rid of", ["鋦"] = "curium; mend chinaware with staples", ["鋨"] = "osmium", ["鋩"] = "sharp point", ["鋪"] = "a bed; a store; to spread", ["鋮"] = "person's name", ["鋯"] = "zirconium", ["鋰"] = "lithium", ["鋱"] = "terbium", ["鋸"] = "a saw; to saw; to mend (china) with staples", ["鋹"] = "sharp; a keen edge; sharp point", ["鋼"] = "steel", ["錀"] = "(metal)", ["錁"] = "grease-pot for cart; ingot", ["錄"] = "to record; to hit; to copy", ["錆"] = "the colour of a mineral", ["錈"] = "to bend iron", ["錏"] = "ammonium", ["錐"] = "awl; to bore", ["錒"] = "actinium", ["錔"] = "encase the end with metal", ["錕"] = "steel sword", ["錘"] = "to hammer; weight of steel yard", ["錙"] = "ancient weight; one-fourth of a tael", ["錚"] = "clang of metals; small gong", ["錛"] = "adz; adze; [gen3]; blunt; tough; chewy", ["錞"] = "copper drum", ["錟"] = "long spear", ["錠"] = "ingot", ["錡"] = "cauldron; chisel", ["錢"] = "coin; money", ["錤"] = "hoe", ["錦"] = "brocade; embroidered work; bright", ["錨"] = "anchor", ["錩"] = "metal utensil; mounting; fitting", ["錫"] = "tin", ["錮"] = "obstinate disease; restrain; to stop", ["錯"] = "mistake; error; blunder; fault; cross; uneven; wrong", ["錳"] = "manganese", ["錶"] = "watch", ["錸"] = "rhenium", ["錼"] = "np", ["鍆"] = "mendelevium", ["鍇"] = "high quality iron", ["鍉"] = "spoon, key", ["鍊"] = "refine", ["鍋"] = "pot; pan; boiler", ["鍍"] = "-plated; to plate", ["鍏"] = "spade", ["鍐"] = "a headstall, ornament on a bride", ["鍔"] = "blade edge; sharp", ["鍘"] = "lever-knife", ["鍚"] = "ornaments on headstall of horse", ["鍛"] = "forge; wrought; to discipline", ["鍠"] = "sound of drums and bells; trident", ["鍥"] = "cut; to carve", ["鍩"] = "Nobelium", ["鍪"] = "iron pot; metal cap", ["鍬"] = "shovel; to dig", ["鍭"] = "metal arrowhead", ["鍰"] = "(ancient measure); money", ["鍱"] = "thin plates of metal", ["鍵"] = "(door lock) key", ["鍶"] = "strontium", ["鍹"] = "spade; hoe", ["鍺"] = "germanium", ["鍼"] = "needle", ["鍾"] = "(ancient measure); ''surname''", ["鎂"] = "magnesium", ["鎉"] = "thallium", ["鎊"] = "pound (unit of currency)", ["鎌"] = "scythe; sickle", ["鎍"] = "chain; wire", ["鎏"] = "bessemerizing of matte", ["鎒"] = "to hoe; to weed", ["鎓"] = "onium", ["鎔"] = "to smelt; fuse", ["鎖"] = "to lock up; to lock", ["鎗"] = "rifle; spear", ["鎘"] = "cadmium", ["鎚"] = "a hammer; to hammer", ["鎛"] = "large bell; hoe, spade", ["鎞"] = "ploughshare; barb, lancet", ["鎡"] = "hoe", ["鎢"] = "tungsten", ["鎤"] = "sound of a bell; small bell", ["鎦"] = "lutecium", ["鎧"] = "armour", ["鎩"] = "spear", ["鎪"] = "to engrave (metal of wood)", ["鎬"] = "bright; place name; stove; a pick", ["鎮"] = "composed; small town; to suppress; to press down; to post", ["鎰"] = "abrasion; gold-20 taels in weight", ["鎳"] = "nickel", ["鎵"] = "gallium", ["鏃"] = "arrowhead; sharp", ["鏇"] = "lathe; thread in screw", ["鏈"] = "chain; lead or tin ore", ["鏌"] = "sword", ["鏐"] = "pure gold", ["鏑"] = "dysprosium", ["鏖"] = "violent fighting", ["鏗"] = "jingling of metals; to strike", ["鏘"] = "tinkling of small bells", ["鏚"] = "battle-axe", ["鏜"] = "noise of drums", ["鏝"] = "side of coin without words; trowel", ["鏞"] = "large bell", ["鏟"] = "spade; shovel", ["鏡"] = "mirror; lens", ["鏢"] = "a throwing weapon; dart", ["鏤"] = "engrave; hard steel", ["鏦"] = "spear; to plunge (with spear)", ["鏨"] = "engrave", ["鏵"] = "ploughshare; spade", ["鏷"] = "protactinium", ["鏹"] = "money; string of coins; sulfuric acid", ["鏻"] = "phosphonium", ["鏽"] = "rust", ["鏾"] = "the trigger of a crossbow; crossbow", ["鐃"] = "big cymbals", ["鐇"] = "vanadium", ["鐏"] = "butt end of spear", ["鐒"] = "lawrencium", ["鐓"] = "upsetting (forged pieces)", ["鐔"] = "knob on a sword-handle", ["鐘"] = "clock; time as measured in hours and minutes; bell", ["鐙"] = "stirrup", ["鐠"] = "praseodymium", ["鐨"] = "Fermium; fermium", ["鐩"] = "speculum", ["鐫"] = "degrade; engrave (wood or stone)", ["鐮"] = "scythe; sickle", ["鐲"] = "bracelet", ["鐳"] = "radium", ["鐵"] = "iron", ["鐶"] = "(ancient weight); metal ring", ["鐸"] = "large ancient bell", ["鐺"] = "clank; clang; sound of metal; frying pan; griddle", ["鐻"] = "(mus. instr.)", ["鐿"] = "ytterbium", ["鑀"] = "ionium", ["鑄"] = "cast metals; to coin (money)", ["鑊"] = "boiler or cauldron", ["鑌"] = "fine steel", ["鑐"] = "bolt of a Chinese lock", ["鑑"] = "example; mirror; to view", ["鑒"] = "example; mirror; to view; reflection; to reflect; to inspect; to warn; (ancient bronze mirror)", ["鑕"] = "(executioner's) block", ["鑞"] = "solder", ["鑠"] = "bright; melt; fuse (metal)", ["鑢"] = "polishing tool", ["鑣"] = "darts; escort; horse bit", ["鑤"] = "a plane; to plane", ["鑥"] = "lutetium", ["鑪"] = "stove", ["鑫"] = "(used in names)", ["鑭"] = "lanthanum", ["鑯"] = "awl; sharp iron point", ["鑰"] = "key", ["鑱"] = "sharp instrument for digging", ["鑲"] = "to inlay; to embed; ridge; border", ["鑴"] = "to engrave or carve, as a block for printing", ["鑵"] = "a can; a jar", ["鑷"] = "forceps; to nip", ["鑼"] = "gong", ["鑽"] = "an auger; diamond; enter (a hole); probe", ["鑾"] = "imperial", ["鑿"] = "chisel", ["钁"] = "a mattock; a billhook", ["钃"] = "metal", ["镅"] = "Americium", ["镎"] = "Neptunium", ["長"] = "long; length; forever; always; constantly; chief; head; elder; to grow; to develop", ["門"] = "opening; door; gate; doorway; gateway; valve; switch; way to do something; knack; family; house; (religious) sect; school (of thought); class; category; (taxonomy) phylum or division", ["閂"] = "to bolt", ["閃"] = "flash; lightning", ["閆"] = "''surname''", ["閈"] = "gate of village; village", ["閉"] = "to close; stop up; shut; obstruct", ["開"] = "open; operate (vehicle); start", ["閌"] = "in 閌閬, open space in a structure", ["閎"] = "''surname''; big; gate", ["閏"] = "intercalary", ["閑"] = "to stay idle; to be unoccupied; not busy; leisure; enclosure", ["閒"] = "idle; interstice; separate", ["間"] = "interstice; separate; between; among; space; (measure word)", ["閔"] = "''surname''; feel compassion for", ["閘"] = "gear; watergate", ["閟"] = "hidden; hide", ["閡"] = "obstruct", ["閣"] = "council-chamber; shelf", ["閤"] = "council-chamber; shelf; side door", ["閥"] = "clique; valve", ["閨"] = "small arched door; women's apartment; women", ["閩"] = "Fujian Province (abbrev.); Min", ["閫"] = "door to women's room; threshold", ["閬"] = "閬中 place in Sichuan; 閬苑 palace, home of immortals; in 閌閬, open space in a structure", ["閭"] = "gate of a village; village", ["閱"] = "peruse; review; to read", ["閶"] = "gate of heaven; gate of palace", ["閹"] = "castrate", ["閺"] = "look down", ["閻"] = "gate of village", ["閼"] = "first wives of xiong-nu chiefs; shut; stop", ["閽"] = "door-keeper", ["閾"] = "threshold", ["閿"] = "wen xiang, Henan province", ["闃"] = "live alone; quiet", ["闇"] = "to shut the door; unilluminated", ["闈"] = "door to women's room; gate to palace", ["闉"] = "''surname''; inner gates", ["闊"] = "rich; wide; broad", ["闋"] = "section of a song; shut", ["闌"] = "door-screen; exhausted; late", ["闍"] = "used in Buddhist transliteration; tower over a city gate", ["闐"] = "fill up; rumbling sound", ["闑"] = "vertical divider of a door way", ["闒"] = "door or window in an upper story", ["闓"] = "loosen; open", ["闔"] = "entire (family)", ["闕"] = "imperial city; deficiency", ["闖"] = "to rush; break through", ["闚"] = "peep; pry into", ["關"] = "to close; to shut; to turn off; to concern; to involve; mountain pass", ["闞"] = "peep", ["闟"] = "peacefully; quietly", ["闠"] = "gate of market", ["闡"] = "to express; disclose; enlighten; open", ["闢"] = "dispel; open up; refute", ["闤"] = "wall around a market place", ["闥"] = "door of an inner room", ["阜"] = "abundant; mound", ["阞"] = "layer; vein", ["阡"] = "road leading north and south", ["阤"] = "bank; hillside", ["阨"] = "defile; pass; in distress", ["阪"] = "a slope; hillside", ["阬"] = "pit; to defraud", ["阮"] = "''surname''; a Chinese plucked stringed instrument", ["阯"] = "foundation", ["阱"] = "hole; pitfall", ["防"] = "to protect; to defend; to guard (against)", ["阹"] = "a pen; to surround", ["阻"] = "to hinder; to block; to obstruct", ["阼"] = "steps leading to the eastern door", ["阽"] = "dangerous", ["阿"] = "''phonetic''; (final part.); (interj.); flatter; an initial particle; prefix to names of people", ["陀"] = "''phonetic''; declivity; steep bank", ["陂"] = "rugged; uneven; reservoir", ["附"] = "to add; to attach; to be close to; to be attached", ["陋"] = "low; humble; plain; ugly; mean; vulgar", ["陌"] = "raised path; street", ["降"] = "to drop; to fall; to come down; to descend; to surrender", ["限"] = "limit; bound", ["陑"] = "place name", ["陔"] = "step; terrace", ["陘"] = "border the stove; defile; pass", ["陛"] = "the steps to the throne", ["陜"] = "Shaanxi", ["陝"] = "Shaanxi", ["陞"] = "promoted", ["陟"] = "advance; ascend", ["陡"] = "steep", ["院"] = "courtyard; institution", ["陣"] = "disposition of troops; short period; wave; spate; burst; spell", ["除"] = "remove; do away with; wipe out; divide; except", ["陪"] = "to accompany; to keep someone company", ["陬"] = "corner; foot of mountain", ["陰"] = "(of weather) overcast; Yin; feminine; moon; cloudy; negative (electric.); shady", ["陲"] = "frontier", ["陳"] = "arrange; exhibit; narrate; tell; old; stale; state; display; explain; ''surname''", ["陴"] = "parapet", ["陵"] = "mound; tomb; hill; mountain", ["陶"] = "pleased; pottery", ["陷"] = "to fall; trap", ["陸"] = "shore; land; continent; six (fraud-proof)", ["陼"] = "islet; bank", ["陽"] = "positive (electric.); sun; male", ["陾"] = "sound of stonemason's shovel", ["隃"] = "exceed; jump over", ["隄"] = "dike", ["隅"] = "corner", ["隆"] = "grand; intense; prosperous; start (a fire); sound of drums", ["隈"] = "bay; cove", ["隉"] = "dangerous", ["隊"] = "squadron; team; group", ["隋"] = "name of a dynasty", ["隍"] = "dry moat; god of city", ["階"] = "rank or step; stairs", ["隒"] = "the appearance of a mountain, as if two pots were standing one upon the other; the steep bank of a stream a rough mountain path", ["隔"] = "to separate; to stand or lie between; to divide; to cut off", ["隕"] = "fall; meteor; perish", ["隗"] = "''surname''; eminent; lofty", ["隘"] = "a pass or defile; narrow; confined; in distress", ["隙"] = "crack; occasion for dislike", ["際"] = "border; edge; boundary; between; among; interval; while", ["障"] = "to block; to hinder; to obstruct", ["隤"] = "fall in ruins; soft", ["隧"] = "subterranean; underground passage", ["隨"] = "to follow; to comply with; to allow; ''surname''", ["隩"] = "bay; cove", ["險"] = "danger(ous); rugged", ["隮"] = "go up; rainbow", ["隰"] = "''surname''; low; marshy land", ["隱"] = "secret; hidden; concealed", ["隳"] = "to destroy", ["隴"] = "Gansu", ["隸"] = "attached to; scribe", ["隹"] = "short-tailed bird", ["隻"] = "(a measure word, for birds and some animals, for one of a pair); single", ["雀"] = "bird; lentigo; sparrow", ["雁"] = "wild goose", ["雂"] = "(bird)", ["雄"] = "heroic; male", ["雅"] = "elegant", ["集"] = "to gather; to collect; collected works", ["雇"] = "hire", ["雉"] = "ringed pheasant", ["雊"] = "crowing of pheasant", ["雋"] = "smart; eminent; talented", ["雌"] = "female", ["雍"] = "''surname''; harmonious", ["雎"] = "(fish hawk); osprey", ["雒"] = "black horse with white mane; fearful", ["雕"] = "engrave; shrewd", ["雖"] = "although; even though", ["雗"] = "a white pheasant", ["雘"] = "red earth used for paints", ["雙"] = "two; double; pair; both", ["雚"] = "a heron; small cup", ["雛"] = "chick; young bird", ["雜"] = "mixed; miscellaneous; various; to mix", ["雝"] = "harmonious", ["雞"] = "fowl; chicken", ["雟"] = "sparrow; revolve; place name", ["離"] = "to leave; to depart; to go away; from", ["難"] = "disaster; distress; to scold; difficult (to...); problem; difficulty; difficult; not good", ["雨"] = "rain", ["雩"] = "summer sacrifice for rain", ["雪"] = "snow", ["雯"] = "multicoloured clouds", ["雰"] = "misty; foggy", ["雱"] = "heavy fall of rain or snow", ["雲"] = "cloud; Yunnan (abbrev.); ''surname''", ["零"] = "remnant; zero; to fall", ["雷"] = "thunder", ["雹"] = "hail", ["電"] = "electric; electricity; electrical", ["需"] = "to require; to need; to want; necessity; need", ["霂"] = "drizzle; fine rain", ["霄"] = "firmament; heaven", ["霅"] = "''surname''; rain", ["霆"] = "clap of thunder", ["震"] = "shake; shock; sign in trigram", ["霈"] = "torrent of rain", ["霉"] = "bacteria; fungi; mouldy", ["霍"] = "quickly", ["霎"] = "all of a sudden; drizzle", ["霏"] = "fall of snow", ["霑"] = "moisten", ["霓"] = "secondary rainbow", ["霖"] = "continued rain", ["霙"] = "sleet; snowflakes", ["霜"] = "frost", ["霝"] = "drops of rain; to fall in drops", ["霞"] = "red clouds", ["霢"] = "drizzling rain; showered with favours", ["霣"] = "rain storm; to fall", ["霤"] = "dripping of rain from eaves", ["霧"] = "fog; mist", ["霨"] = "rising of clouds", ["霪"] = "heavy rain", ["霫"] = "Sui-Tang (premodern ethnic group)", ["霮"] = "denseness of clouds", ["霰"] = "sleet", ["露"] = "to show; to reveal; to expose; dew", ["霸"] = "feudal chief; rule by force; tyrant; lord; master; hegemon; usurp", ["霹"] = "of thunder, to strike", ["霽"] = "sky clearing up", ["霾"] = "dust-storm", ["靄"] = "cloudy sky; friendly", ["靈"] = "alert; departed soul; efficacious; quick; effective; intelligence", ["靉"] = "cloudy; shady", ["青"] = "green (blue, black); Qinghai province (abbrev.)", ["靖"] = "pacify; quiet", ["靚"] = "make up (face)", ["靛"] = "indigo pigment", ["靜"] = "still; calm; quiet; not moving", ["非"] = "(be) not; wrong; blame; Africa", ["靠"] = "depend upon; lean on; near; by; against; to support", ["靡"] = "extravagant; go with fashion; not; wasted", ["面"] = "face; side; surface; aspect; top", ["靦"] = "bashful", ["靨"] = "dimple", ["革"] = "leather; remove", ["靪"] = "to cobble, to patch", ["靮"] = "reins; bridle", ["靰"] = "leg warmer", ["靳"] = "''surname''; martingale; stingy", ["靴"] = "boots", ["靶"] = "target; mark", ["靷"] = "traces (of a carriage)", ["靸"] = "labourers; shoes; slippers", ["靺"] = "name of a tribe; socks; stockings", ["靼"] = "''phonetic''; dressed leather", ["靿"] = "the leg of a boot", ["鞀"] = "hand drum used by peddlers", ["鞃"] = "a leaning board on carriage", ["鞄"] = "to work hides; leather bag", ["鞅"] = "martingale", ["鞋"] = "shoe", ["鞍"] = "saddle", ["鞏"] = "secure; solid", ["鞗"] = "reins of leather", ["鞘"] = "scabbard; sheath", ["鞙"] = "fine", ["鞚"] = "bridle; reins", ["鞝"] = "patch of leather", ["鞞"] = "scabbard", ["鞠"] = "to bring up; to rear; ''surname''", ["鞡"] = "leg warmer", ["鞣"] = "suede; chamois; tannin; to tan", ["鞨"] = "buskin; name of a tribe; turban", ["鞬"] = "a quiver on a horse; a store", ["鞭"] = "a whip or lash; to flog; slash or whip", ["鞮"] = "''surname''; leather shoes", ["鞶"] = "large belt", ["鞹"] = "leather", ["韁"] = "bridle; reins", ["韃"] = "Tartar; a tribe in China", ["韅"] = "leather girth on horse", ["韉"] = "saddle blanket", ["韋"] = "''surname''; soft leather", ["韌"] = "annealed; pliable but strong; tough; tenacious", ["韍"] = "knee pad", ["韎"] = "a grass that gives red dye", ["韓"] = "(South) Korea; ''surname''", ["韔"] = "bow bag", ["韖"] = "tan, soften", ["韘"] = "archer's thumb ring", ["韙"] = "correct; right", ["韜"] = "bow case; to cover", ["韝"] = "archer's arm guard", ["韞"] = "contain", ["韡"] = "gorgeous", ["韣"] = "bow case", ["韭"] = "leek", ["韱"] = "wild onions or leeks", ["音"] = "sound; noise; news", ["韶"] = "(music); excellent; harmonious", ["韹"] = "music of bell and drum", ["韺"] = "music of legendary emperor Gu", ["韻"] = "rhyme", ["響"] = "to make a sound; to sound; to ring; (a measure word for sound); loud", ["頀"] = "music", ["頁"] = "page; leaf", ["頂"] = "go against; most; peak; top; to replace; to substitute; a measure word (use with \"hat\")", ["頃"] = "100 mu; a short while ago; a 'ching' (unit of area); approx. (with dates); a short while", ["頄"] = "cheekbone", ["項"] = "back of neck; item; thing", ["順"] = "to obey; to follow; to arrange; to make reasonable; along; favourable", ["須"] = "necessary; must; need", ["頊"] = "grieved; anxious", ["頌"] = "to praise", ["頍"] = "raise one's head", ["頎"] = "tall", ["頏"] = "fly down", ["預"] = "to advance; in advance; beforehand; to prepare", ["頑"] = "mischievous; obstinate; to play; stupid; stubborn; naughty", ["頒"] = "promulgate; send out; issue; to grant or confer", ["頓"] = "a time; jerk; stop; meal; bout; spell; (measure for beating)", ["頖"] = "disperse", ["頗"] = "quite; rather; uneven; sloping", ["領"] = "neck; collar; to lead; to receive", ["頜"] = "maxilla and mandible", ["頞"] = "junction of nose and forehead", ["頠"] = "easeful carriage of one's head", ["頡"] = "''surname''; fly upwards; neck", ["頤"] = "cheeks; nourish", ["頦"] = "chin", ["頫"] = "look down; stoop", ["頭"] = "head; (''noun suffix'')", ["頯"] = "cheekbone; protrude", ["頰"] = "cheeks", ["頲"] = "narrow forehead", ["頷"] = "chin; nod assent", ["頸"] = "neck", ["頹"] = "become bald; decadent", ["頻"] = "frequency; frequently; repetitious", ["顆"] = "(measure word for small spheres)", ["題"] = "topic; subject; to inscribe; to superscribe", ["額"] = "volume; amount; quantity; forehead; quota", ["顎"] = "jaw; palate", ["顏"] = "colour; countenance; face", ["顑"] = "yellow", ["顒"] = "great; just; stern", ["顓"] = "''surname''; good; simple", ["顗"] = "pleasing; respectful manner", ["願"] = "hope; wish; desire; ready; willing", ["顙"] = "forehead; kowtow", ["顛"] = "inverted; jolt; top", ["顜"] = "honest; upright", ["類"] = "kind; type; class; category; similar; like; to resemble", ["顣"] = "frown", ["顥"] = "bright; white", ["顧"] = "look after; take into consideration; to attend to", ["顫"] = "to tremble; to shiver; to shake; to vibrate", ["顯"] = "prominent; conspicuous; to show", ["顰"] = "knit the brows", ["顱"] = "forehead; skull", ["顳"] = "temporal bones", ["顴"] = "cheek bones", ["風"] = "wind; news; style; custom; manner", ["颭"] = "sway", ["颮"] = "whirlwind", ["颯"] = "declining; sound of wind", ["颱"] = "typhoon", ["颳"] = "blow (of the wind)", ["颶"] = "hurricane", ["颸"] = "cool breeze of autumn", ["颺"] = "soar; tossed by wind or wave", ["颻"] = "floating in the air", ["颼"] = "blow (as of wind); sound of wind", ["颽"] = "balmy; genial as wind", ["颾"] = "blowing of the wind", ["颿"] = "sail", ["飀"] = "soughing of wind", ["飂"] = "wind in high places", ["飄"] = "to float", ["飆"] = "whirlwind", ["飌"] = "wind", ["飛"] = "to fly", ["食"] = "eat; food; to feed; animal feed", ["飢"] = "hungry", ["飣"] = "display food for show only; sacrifice", ["飥"] = "food made of dough", ["飧"] = "supper", ["飪"] = "cooked food; cook until well done", ["飫"] = "full (as of eating)", ["飭"] = "keep in order; stern; to order; direct", ["飯"] = "food; cuisine; cooked rice; meal", ["飲"] = "drink", ["飴"] = "syrup", ["飶"] = "fragrance of food", ["飼"] = "to raise; to rear; to feed", ["飽"] = "to eat till full; satisfied", ["飾"] = "adorn; ornaments", ["餀"] = "tainted food", ["餂"] = "lick; lap", ["餃"] = "dumplings with meat filling", ["餅"] = "round flat cake; cookie; cake; pastry", ["餇"] = "food", ["餈"] = "fried rice cake", ["餉"] = "soldier's pay", ["養"] = "give birth; keep (pets); to support; to bring someone up; to raise (pig, etc.)", ["餌"] = "bait", ["餐"] = "eat; meal", ["餑"] = "cake; biscuit", ["餒"] = "hungry", ["餓"] = "to be hungry; hungry", ["餔"] = "evening meal", ["餕"] = "remains of a sacrifice or a meal", ["餖"] = "set out food", ["餗"] = "pot of cooked rice", ["餘"] = "remainder", ["餚"] = "meat dishes", ["餞"] = "farewell dinner; preserves", ["餟"] = "circle shrines and make sacrifices", ["餡"] = "stuffing; forcemeat", ["餤"] = "to advance", ["餧"] = "steamed bread; to feed", ["館"] = "house; establishment", ["餩"] = "hiccup", ["餪"] = "send a present of a feast", ["餫"] = "Chinese ravioli", ["餬"] = "congee; making a living", ["餮"] = "gluttonous", ["餱"] = "dry provisions", ["餲"] = "spoiled, sour, mouldy", ["餳"] = "malt-sugar; molasses", ["餵"] = "to feed", ["餼"] = "grain ration; sacrificial victim", ["餽"] = "make a present", ["餾"] = "reheat by steaming", ["餿"] = "rancid; soured (as food)", ["饁"] = "carry food to labourers in the field", ["饃"] = "mantou", ["饇"] = "to eat too much; to confer", ["饈"] = "delicacies", ["饉"] = "time of famine or crop failure", ["饋"] = "food; make a present", ["饌"] = "food; delicacies", ["饎"] = "food; to cook", ["饐"] = "rancid", ["饑"] = "hungry", ["饒"] = "to spare", ["饔"] = "dressed food; first meal of the day", ["饕"] = "gluttonous", ["饗"] = "offer or enjoy sacrifice", ["饘"] = "thick congee", ["饜"] = "eat to the full", ["饞"] = "gluttonous; greedy", ["饟"] = "soldier's pay", ["馕"] = "naan", ["首"] = "head; chief; first (occasion); first (thing); measure word for poems", ["馗"] = "cheekbone; crossroads; high", ["馘"] = "cut off the left ear of the slain", ["香"] = "fragrant; incense; (of food) savoury; appetizing; sweet; scented; popular", ["馝"] = "fragrance", ["馡"] = "fragrant", ["馣"] = "fragrant odour", ["馥"] = "fragrance, scent, aroma", ["馨"] = "fragrant", ["馬"] = "horse; ''surname''", ["馭"] = "manage; to drive", ["馮"] = "Feng (Chinese surname)", ["馱"] = "carry on back", ["馳"] = "run fast; speed; spread; gallop", ["馴"] = "attain gradually; tame", ["馵"] = "(horse)", ["馹"] = "horse for relaying dispatches", ["駁"] = "argue; particoloured; tranship; dispute; contradict; refute", ["駃"] = "fast (horse)", ["駉"] = "in good condition (as a horse)", ["駋"] = "(horse)", ["駐"] = "resident in; stationed in; located at; to station (troops)", ["駑"] = "worn out old horses", ["駒"] = "colt", ["駓"] = "(horse)", ["駔"] = "powerful horse", ["駕"] = "to drive; to draw; to harness; to mount", ["駗"] = "chatter mark", ["駘"] = "tired; worn out horse", ["駙"] = "prince consort", ["駛"] = "hasten; proceed to; sail a vessel", ["駜"] = "strong horse", ["駝"] = "humpback", ["駟"] = "team of 4 horses", ["駢"] = "two adjacent horses; side by side; parallel; antithetical", ["駪"] = "large crowd", ["駬"] = "(horse)", ["駭"] = "astonish; startle", ["駮"] = "argue; particoloured; tranship", ["駰"] = "iron-grey (as a horse)", ["駱"] = "camel", ["駴"] = "thunderous beating of drums", ["駸"] = "fleet horse", ["駹"] = "black horse with a white face", ["駽"] = "grey", ["駾"] = "approach at swift gallop (on horses)", ["駿"] = "spirited horse", ["騁"] = "hasten; run; open up; gallop", ["騂"] = "bay horse", ["騃"] = "stupid; foolish", ["騄"] = "(horse)", ["騅"] = "''surname''; piebald", ["騆"] = "divine horse", ["騉"] = "fine horse", ["騋"] = "mare", ["騍"] = "mother horse", ["騎"] = "to ride (an animal or bike); to sit astride", ["騏"] = "piebald horse", ["騑"] = "horse with yellow back", ["騕"] = "name of a fabulous horse", ["騖"] = "fast; greedy; run rapidly", ["騙"] = "to cheat; to swindle; to deceive; to fool", ["騢"] = "(horse)", ["騣"] = "bristles; horse's mane", ["騤"] = "powerful; strong", ["騧"] = "piebald horse", ["騫"] = "defective; raise", ["騭"] = "determine; promote; stallion", ["騮"] = "bay horse with black mane", ["騰"] = "to soar; to gallop; to rise; to prance; to hover; to move out", ["騵"] = "chestnut horse with white belly", ["騶"] = "go; mythical animal", ["騷"] = "to bother; to annoy; to have sex appeal", ["騸"] = "to geld", ["騺"] = "heavy horse; horse unable to move because of twisted leg; plodding", ["騾"] = "mule", ["驀"] = "leap on or over; suddenly", ["驁"] = "a noble steed; untamed", ["驂"] = "outside horses of a team of 4", ["驃"] = "white horse", ["驄"] = "buckskin horse", ["驅"] = "to expel; to urge on; to drive; to run quickly", ["驆"] = "used in transliterating Buddhist books", ["驈"] = "black horse with white legs", ["驊"] = "chestnut horse", ["驌"] = "(horse)", ["驍"] = "brave; good horse; strong", ["驏"] = "horse without saddle", ["驒"] = "(horse)", ["驔"] = "black horse", ["驕"] = "proud; arrogant", ["驖"] = "dark brown horse", ["驗"] = "to examine; to test; to check", ["驙"] = "(horse)", ["驚"] = "to startle; to be frightened; to be scared; alarm", ["驛"] = "remount stations", ["驟"] = "sudden; suddenly", ["驢"] = "donkey", ["驤"] = "prance (as a horse)", ["驥"] = "thoroughbred horse; refined and virtuous", ["驦"] = "good horse", ["驩"] = "docile horse", ["驪"] = "black horse; good horse", ["驫"] = "a horde of horses", ["骨"] = "bone", ["骫"] = "be bent; crooked (of bones)", ["骭"] = "shinbone", ["骰"] = "cuboid bone; dice", ["骱"] = "joint of bones", ["骴"] = "a putrid carcass", ["骷"] = "skeleton", ["骸"] = "bones of the body", ["骼"] = "skeleton", ["骾"] = "blunt; fish bones; unyielding", ["髀"] = "thigh; thigh bone", ["髁"] = "condyles", ["髆"] = "shoulder blade", ["髏"] = "skull", ["髑"] = "skull", ["髒"] = "dirty; filthy", ["髓"] = "marrow", ["體"] = "body; form; style; system", ["髕"] = "kneecap", ["髖"] = "pelvis; pelvic", ["高"] = "high; tall", ["髟"] = "hair; shaggy", ["髡"] = "make the head bald", ["髣"] = "seemingly", ["髦"] = "bang (hair); fashionable; mane", ["髧"] = "long hair", ["髫"] = "tufts of hair on children", ["髭"] = "moustache", ["髮"] = "hair", ["髯"] = "beard; whiskers", ["髲"] = "a wig", ["髳"] = "bang (hair); fashionable; mane", ["髹"] = "red lacquer; to lacquer", ["髺"] = "dishevelled hair, as in mourning", ["髻"] = "hair rolled up in a bun, topknot", ["髽"] = "dress the hair", ["髾"] = "tail of a comet; long hair", ["鬁"] = "bald; scabby", ["鬃"] = "bristles; horse's mane", ["鬅"] = "dishevelled", ["鬆"] = "loose", ["鬈"] = "to curl; curled", ["鬋"] = "to hang down (hair)", ["鬍"] = "beard; moustache", ["鬎"] = "bald; scabby", ["鬐"] = "dorsal fins; horse's mane", ["鬑"] = "hanging temple hair", ["鬒"] = "bushy black hair", ["鬖"] = "wild hair", ["鬗"] = "head ornaments; pretty hair", ["鬘"] = "beautiful hair", ["鬙"] = "short hair; unkempt", ["鬚"] = "beard; moustache", ["鬟"] = "a knot of hair on top of head", ["鬠"] = "to make a top knot", ["鬢"] = "temples; hair on the temples", ["鬣"] = "bristles; mane", ["鬥"] = "fight; contend; incite; meet; encounter", ["鬧"] = "make noise or disturbance", ["鬨"] = "have a hilarious time; riot", ["鬩"] = "feud, fight, quarrel", ["鬮"] = "(draw) lots; lot (in a game of chance)", ["鬯"] = "sacrificial spirit", ["鬱"] = "dense (growth); melancholy", ["鬲"] = "''surname''; earthen pot; iron cauldron", ["鬵"] = "big iron pot, cauldron", ["鬷"] = "kettle on legs", ["鬻"] = "vend", ["鬼"] = "ghost; sly; crafty", ["魁"] = "chief; head", ["魂"] = "soul", ["魃"] = "drought demon", ["魄"] = "soul", ["魅"] = "demon; magic; to charm", ["魆"] = "beguile; suddenly", ["魈"] = "elf", ["魊"] = "ghost of a child", ["魋"] = "Japanese brown bear", ["魏"] = "''surname''; name of a dynasty", ["魑"] = "mountain elf", ["魔"] = "devil", ["魘"] = "nightmare", ["魚"] = "fish", ["魛"] = "the mullet", ["魟"] = "ray (fish)", ["魦"] = "shark family, including some rays and skates", ["魨"] = "leatherfish", ["魬"] = "sole or flounder", ["魯"] = "crass; place name", ["魴"] = "bream; {{taxlink|Zeus japonicus|species}}", ["魵"] = "shrimp", ["魷"] = "cuttlefish", ["鮀"] = "(fish)", ["鮆"] = "(fish)", ["鮐"] = "globefish", ["鮑"] = "abalone", ["鮒"] = "silver carp", ["鮓"] = "preserved fish", ["鮚"] = "oyster", ["鮞"] = "caviar; fish roe", ["鮠"] = "a kind of shad with a head like a sturgeon", ["鮦"] = "snakefish", ["鮨"] = "{{taxlink|Epinephelus septemfasciatus|species}}", ["鮪"] = "little tuna; {{taxlink|Euthynnus alletteratus|species}}", ["鮫"] = "shark", ["鮭"] = "blowfish; salmon", ["鮮"] = "few; rare; fresh", ["鮶"] = "{{taxlink|Sebastodes guntheri|species}}", ["鮸"] = "{{taxlink|Miichthys miiuy|species}}", ["鮿"] = "(fresh-water fish)", ["鯀"] = "[[w:Gun (Chinese mythology)|Gun]], father of Yu the Great", ["鯁"] = "blunt; fish bones; unyielding", ["鯄"] = "{{taxlink|Lepidotrigla microptera|species}}", ["鯆"] = "the skate or ray", ["鯇"] = "carp", ["鯈"] = "{{taxlink|Leuciscus macropus|species}}", ["鯉"] = "carp", ["鯊"] = "shark", ["鯔"] = "{{vern|flathead grey mullet}}", ["鯕"] = "[[bream]]; {{vern|white common carp}}; {{vern|redlip croaker}}", ["鯖"] = "mackerel; mullet", ["鯗"] = "wine-preserved pomfret", ["鯙"] = "[[moray eel]]", ["鯛"] = "{{taxlink|Pagrus major|species}}", ["鯠"] = "to confer; to bestow on an inferior; to reward", ["鯡"] = "herring", ["鯢"] = "''[[Cryptobranchus japonicus]]''; [[salamander]]", ["鯤"] = "sea-monster; young of fishes", ["鯥"] = "{{taxlink|Pomatomus saltatrix|species}}; bluefish", ["鯧"] = "a type of fish", ["鯨"] = "whale", ["鯪"] = "pangolin; {{taxlink|Manis pentadactylata|species}}", ["鯫"] = "''surname''; minnows; small fish", ["鯰"] = "sheat", ["鯸"] = "blowfish", ["鯽"] = "bastard carp; sand perch", ["鰆"] = "{{taxlink|Scomberomorus sinensis|species}}", ["鰈"] = "flatfish; flounder; sole", ["鰉"] = "sturgeon", ["鰋"] = "mudfish", ["鰍"] = "loach", ["鰒"] = "{{taxlink|Haliotis gigantea|species}}; {{vern|sea ear}}", ["鰓"] = "gills of fish", ["鰜"] = "a flounder; flatfish", ["鰣"] = "shad; {{taxlink|Ilisha elongata|species}}", ["鰤"] = "{{taxlink|Seriola qinqueradiata|species}}; yellow tail", ["鰥"] = "widower", ["鰩"] = "ray (fish)", ["鰭"] = "fins; supporting surfaces", ["鰱"] = "''[[Hypophthalmichthys molitrix]]''", ["鰲"] = "sea turtle", ["鰳"] = "(shad); spermary of fish", ["鰶"] = "''[[Konosirus punctatus]]''", ["鰷"] = "Chub ''[[Leucichthys]]''", ["鰹"] = "bonito", ["鰻"] = "eel; {{taxlink|Anguilla rostrata|species}}", ["鰼"] = "loach; mudfish", ["鰽"] = "herring", ["鰾"] = "air bladder of fish", ["鱄"] = "(fish); ''surname''", ["鱆"] = "poulpe", ["鱈"] = "codfish; {{taxlink|Gadus macrocephalus|species}}", ["鱉"] = "turtle", ["鱎"] = "(fish)", ["鱐"] = "dried fish", ["鱒"] = "barbel", ["鱔"] = "{{vern|Chinese yellow eel}}", ["鱖"] = "{{taxlink|Helicolenus|genus}}", ["鱗"] = "scales (of fish)", ["鱘"] = "''[[Acipenser]]'' spp.; sturgeon", ["鱟"] = "horseshoe crab", ["鱠"] = "chopped meat or fish", ["鱣"] = "{{taxlink|Acipenser micadoi|species}}; sturgeon", ["鱧"] = "snakefish", ["鱨"] = "(fish)", ["鱭"] = "{{taxlink|Coilia nasus|species}}", ["鱮"] = "{{taxlink|Hypophthalmichthys moritrix|species}}", ["鱵"] = "{{taxlink|Hyporhampus sajuri|species}}", ["鱷"] = "crocodile; alligator", ["鱸"] = "common perch", ["鳥"] = "bird", ["鳦"] = "a swallow (bird)", ["鳧"] = "wild duck; to swim", ["鳩"] = "turtle-dove; {{taxlink|Turtur orientalis|species}}", ["鳳"] = "male fenghuang", ["鳴"] = "to cry (of birds)", ["鳶"] = "kite", ["鳷"] = "{{taxlink|Garrulus lidthi|species}}", ["鳻"] = "the wild pigeon", ["鴃"] = "shrike", ["鴄"] = "wild duck", ["鴆"] = "[[w:zhenniao|a mythical bird]]; poisonous; to poison", ["鴇"] = "Chinese bustard; procuress", ["鴈"] = "wild goose", ["鴉"] = "crow", ["鴒"] = "wagtail; lark", ["鴕"] = "ostrich", ["鴗"] = "{{taxlink|Alcedo bengalensis|species}}", ["鴝"] = "(mynah)", ["鴞"] = "[[Ural owl]]", ["鴟"] = "[[scops owl]]", ["鴠"] = "a kind of nightingale", ["鴢"] = "(duck)", ["鴥"] = "to swoop, fly swiftly", ["鴨"] = "duck", ["鴳"] = "quail", ["鴷"] = "woodpecker", ["鴻"] = "{{vern|eastern bean goose}}; great; large", ["鴽"] = "quail-like bird", ["鴿"] = "pigeon; dove", ["鵀"] = "hoopoe", ["鵁"] = "{{taxlink|Mycticorax prasinosceles|species}}", ["鵂"] = "owl", ["鵑"] = "cuckoo", ["鵓"] = "woodpidgeon", ["鵙"] = "a shrike", ["鵝"] = "goose", ["鵠"] = "swan; white-haired", ["鵩"] = "owl", ["鵪"] = "quail", ["鵫"] = "pheasant", ["鵬"] = "peng (large mythical bird)", ["鵯"] = "bird", ["鵰"] = "golden eagle", ["鵲"] = "magpie", ["鵵"] = "{{taxlink|Scops semitorques|species}}", ["鵷"] = "firebird", ["鵻"] = "snipe; turtle-dove", ["鶂"] = "hawk", ["鶇"] = "thrush; {{taxlink|Tardus fuscatus|species}}", ["鶉"] = "quail", ["鶊"] = "oriole", ["鶖"] = "crane", ["鶚"] = "fish eagle; fish hawk; osprey", ["鶡"] = "crossbill; long-tailed pheasant", ["鶦"] = "pelican", ["鶩"] = "tame duck", ["鶬"] = "oriole", ["鶯"] = "oriole", ["鶱"] = "soar", ["鶲"] = "Siberian flycatcher", ["鶴"] = "crane", ["鶵"] = "chick; young bird", ["鶸"] = "siskin", ["鶻"] = "falcon; migratory bird", ["鶼"] = "mythical bird with one eye and one wing", ["鶿"] = "cormorant", ["鷁"] = "fishhawk bow or prow", ["鷂"] = "sparrow hawk; ''[[Accipiter nisus]]''", ["鷃"] = "quail-like bird", ["鷇"] = "fledglings", ["鷊"] = "pheasant", ["鷏"] = "bird name", ["鷕"] = "cry of hen pheasant", ["鷖"] = "widgeon", ["鷗"] = "common gull", ["鷙"] = "birds of prey", ["鷟"] = "phoenix; river gull", ["鷦"] = "eastern wren", ["鷩"] = "{{taxlink|Phasianus pictus|species}}", ["鷭"] = "water-hen; ''[[Gallinula]]''", ["鷲"] = "black eagle; condor; cruel", ["鷳"] = "{{taxlink|Phasianus nycthemerus|species}}", ["鷴"] = "silver pheasant badge worn by civil officials of the 5th grade", ["鷸"] = "[[common snipe]]", ["鷹"] = "eagle; falcon; hawk", ["鷺"] = "heron", ["鷽"] = "{{vern|oriental bullfinch}}", ["鸇"] = "sparrow hawk; swift", ["鸏"] = "tropic bird", ["鸒"] = "{{vern|eastern jackdaw}}", ["鸓"] = "flying squirrel", ["鸕"] = "fishing cormorant", ["鸛"] = "crane; stork", ["鸝"] = "{{vern|Chinese oriole}}", ["鸞"] = "(mythical bird); imperial", ["鹵"] = "crass; halogen; salt; brine", ["鹹"] = "salty", ["鹺"] = "brine; salt", ["鹼"] = "alkali; soda; base (chem.)", ["鹽"] = "salt", ["鹿"] = "deer", ["麀"] = "female deer", ["麂"] = "{{taxlink|Moschus chinensis|species}}", ["麃"] = "to weed", ["麇"] = "hornless deer", ["麈"] = "leader of herd; stag", ["麋"] = "moose; river bank", ["麌"] = "stag; herd", ["麑"] = "fawn", ["麒"] = "male unicorn", ["麓"] = "foot of a hill", ["麗"] = "beautiful; Korea", ["麚"] = "buck; stag", ["麛"] = "fawn; young of animals", ["麝"] = "musk deer", ["麟"] = "female unicorn", ["麤"] = "coarse; rough; rude", ["麥"] = "wheat; barley; oats", ["麩"] = "bran", ["麮"] = "porridge", ["麰"] = "barley", ["麵"] = "flour; noodles", ["麻"] = "(to have) pins and needles; tingling; hemp; numb; to bother", ["麼"] = "dimi.", ["麽"] = "(interrog. suff.)", ["麾"] = "signal flag; to signal", ["黃"] = "yellow", ["黈"] = "a yellow colour", ["黌"] = "school", ["黍"] = "[[broomcorn millet]]; [[glutinous millet]]", ["黎"] = "''surname''; black; Lebanon (abbrev.)", ["黏"] = "sticky", ["黑"] = "black; dark; Heilongjiang Province (abbrev.)", ["黓"] = "black", ["黔"] = "Guizhou; black", ["黕"] = "red", ["默"] = "silent; write from memory", ["黛"] = "umber-black dye for painting the eyebrow", ["黜"] = "dismiss; expel", ["黝"] = "black; dark green", ["點"] = "point; dot; (decimal) point; o'clock; (measure word)", ["黟"] = "black and shining ebony", ["黠"] = "''phonetic''; crafty", ["黥"] = "''surname''; tattoo criminals on face", ["黧"] = "yellowish black", ["黨"] = "party; association; club; society", ["黮"] = "black, dark; unclear; private", ["黯"] = "deep black; dark", ["黰"] = "bushy black hair", ["黲"] = "grey black", ["黴"] = "bacteria; fungi; mouldy", ["黶"] = "black spots on body", ["黷"] = "blacken; constantly; to insult", ["黹"] = "embroidery", ["黻"] = "(embroidery)", ["黼"] = "(embroidery)", ["黽"] = "toad", ["黿"] = "{{vern|Cantor's giant softshell turtle}}", ["鼇"] = "huge mythological sea turtle", ["鼉"] = "large water lizard", ["鼎"] = "ancient bronze cauldron; throne; (''Min'') wok", ["鼏"] = "cover of tripod kettle", ["鼐"] = "incense tripod", ["鼒"] = "tripod with a small opening on top", ["鼓"] = "convex; drum; to rouse; to beat", ["鼕"] = "boom (of a drum)", ["鼖"] = "large brass drum", ["鼙"] = "drum carried on horseback", ["鼚"] = "sound of drum", ["鼛"] = "large drum", ["鼠"] = "rat; mouse", ["鼢"] = "(mole)", ["鼪"] = "stoat; weasel", ["鼫"] = "long-tailed marmot", ["鼬"] = "weasel, {{taxlink|Mustela itatis|species}}", ["鼯"] = "{{taxlink|Petaurista leucogenys|species}}", ["鼴"] = "mole", ["鼷"] = "mouse", ["鼻"] = "nose", ["鼽"] = "congested nose", ["鼾"] = "snore", ["齁"] = "snore; thirsty from salty food", ["齆"] = "stuffed nose", ["齈"] = "cold in the head; catarrh of the nose", ["齉"] = "stoppage of the nose; to speak with a nasal twang; snuffling; snuffle (as in nose with a cold)", ["齊"] = "even; neat; identical; ready; to make even; simultaneously; place name", ["齋"] = "a fast; studio", ["齎"] = "send; to present in both hands", ["齏"] = "fragment; spices", ["齒"] = "tooth", ["齔"] = "replace the milk teeth", ["齕"] = "gnaw", ["齗"] = "gums (of the teeth); to dispute", ["齙"] = "projecting teeth", ["齜"] = "projecting teeth", ["齞"] = "to display the teeth", ["齟"] = "irregular; uneven teeth", ["齠"] = "shed the milk teeth; young", ["齡"] = "age; stage of one's life", ["齣"] = "''classifier for plays''; act, stanza", ["齦"] = "gums; gnaw; bite", ["齧"] = "''surname''; gnaw", ["齪"] = "dirty; small-minded", ["齬"] = "irregular teeth", ["齮"] = "''surname''; bite", ["齯"] = "teeth grown in old age", ["齰"] = "to bite", ["齲"] = "decayed teeth; dental caries", ["齵"] = "uneven (teeth)", ["齶"] = "palate", ["龍"] = "dragon; imperial; ''surname''", ["龐"] = "huge; enormous; tremendous", ["龑"] = "high and bright", ["龔"] = "to supply; to respect; to follow; ''surname''", ["龕"] = "niche; shrine", ["龘"] = "the appearance of a dragon walking", ["龜"] = "tortoise; turtle", ["龠"] = "(ancient measure); flute", ["龢"] = "harmonious", ["龤"] = "to harmonize; to accord with; to agree", ["𨭎"] = "seaborgium (Sg)", ["嘢"] = "(''Cantonese'') thing", ["鐧"] = "ancient weapon like a long solid metal truncheon; type of rapier", ["嗰"] = "(''Cantonese'') that", ["覲"] = "to have an audience with the Emperor", ["淑"] = "good; pure; virtuous; charming", ["軲"] = "wheel; to roll", ["𨅝"] = "(''Cantonese'') to kick; to tread on; to depart", ["椰"] = "coconut", ["閪"] = "(''Cantonese'') vagina", ["𨳊"] = "(''Cantonese'') penis", ["噏"] = "(''Cantonese'') to babble", ["麴"] = "yeast; alcoholic beverage", ["訌"] = "quarrel", ["煦"] = "warm; gentle; kind", ["蝸"] = "land snail", ["䴉"] = "ibis", ["藩"] = "fence; screen; vassal", ["擀"] = "to roll flat with a rod", ["癔"] = "hysteria", ["淆"] = "to mix; to confuse", ["爿"] = "piece; side", ["骶"] = "sacrum", ["聒"] = "to grate on one's ears", ["哋"] = "(''Cantonese'') plural particle", ["啲"] = "(''Cantonese'') a few; some; those", ["橇"] = "sledge", ["苷"] = "glycoside", ["嚟"] = "(''Cantonese'') to come", ["攞"] = "(''Cantonese'') to take; to get", ["鮃"] = "[[Bothidae]]", ["櫼"] = "wood wedge; thin wooden stick", ["㞎"] = "(''childish'') feces", ["芎"] = "[[Szechuan lovage]] (''{{ll|mul|Ligusticum striatum}}'')", ["柊"] = "[[holly osmanthus]]", ["戕"] = "to kill", ["腈"] = "nitrile", ["謔"] = "to joke", ["腩"] = "belly flesh", ["鐐"] = "fetters", ["碸"] = "sulfone", ["焗"] = "to wrap food in gauze", ["䓬"] = "tropylium", ["苄"] = "benzyl", ["蝰"] = "viper", ["粳"] = "Japonica rice", ["槭"] = "maple", ["掬"] = "to hold with both hands", ["蕹"] = "water spinach", ["乸"] = "(''Cantonese'') female", ["囧"] = "(''slang'') shocked; surprised; embarrassed; awkward", ["幺"] = "tiny; youngest; one; ace", ["喺"] = "(''Cantonese'') be ...-ing; in, at, within; to be (located)", ["璉"] = "vessel for holding grain offerings", ["倓"] = "quiet; peaceful", ["嶸"] = "''phonetic''", ["岢"] = "high; tall", ["𦧺"] = "(''Cantonese'') to lick", ["糍"] = "glutinous rice ball", ["瞓"] = "(''Cantonese'') to sleep", } export.nonlemma = "蜘蜉膃肭螵枇杷尷疙瘩虼鴯蟑蜋螂氆氌氍毹芪鮟鱇糬蝙遢垃圾蕁蟥蛞蝓螅蟋蛐栴蜢蚱蚯蜒蚰茼荸葧蚣仃苤冏仉餛飩琵琶邯鄲邡跎闆蝤蜾蠃鞦韆荔澎罳鷥蝴蛺螃茉莉嘧噶伽迦邂逅璃袈裟琉毾萄崁橄菠檎檳猞猁獁僳嫦苜蓿姮囫圇忐忑旖旎匍匐鸚鵡鵜鶘鳲鴛鴦鷓鴣鶺鸑鸂鶒鵒舴艋舢舨琺拮据荽蓯芙妯娌嬡獬廌醍醐骯臢萸剞劂齷碡茯菡萏菝葜菪硨磲佧岢嵋狁薐靆嗦磟猢猻鷯鶗騠倥顢彷徨徘徊徜徉彿玲氤樨蜴蠑螈蓇葖鷫鷞靂蝌蚪嶸鷾鶹蕷犰狳侏坷揶顬玕逍鱺鋃吽蠊餺躊蠐蛉蝃褳饅魍魎" return export a3w0uglg36u527osz66mx9si5qkqn1z 交声曲 0 153893 628871 549048 2024-11-06T14:48:48Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628871 wikitext text/x-wiki {{-ja-}} {{vikipediya|lang=ja}} {{ja-kanjitab|こう|せい|きょく|yomi=o}} ===Talaffuz=== {{ja-pron|yomi=kanon|こうせいきょく|acc=3|acc_ref=DJR}} {{ja-ism|kyu=交聲曲|こうせいきょく|hhira=かうせいきょく}} # {{sezgi|ja|musiqa|sort=こうせいきょく}} [[cantata]] ====Sinonimlari==== * [[カンタータ]] ===Manlalar=== <references/> 9gtuq7vsk8ekyxrou0l7rcxwzepfgc8 628878 628871 2024-11-06T14:56:58Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628878 wikitext text/x-wiki {{-ja-}} {{vikipediya|lang=ja}} {{ja-kanjitab|こう|せい|きょく|yomi=o}} {{ja-ism|kyu=交聲曲|こうせいきょく|hhira=かうせいきょく}} # {{sezgi|ja|musiqa|sort=こうせいきょく}} [[cantata]] ====Sinonimlari==== * [[カンタータ]] ===Manlalar=== <references/> npof3x3iv5i8hs4svfpepz1ka7coaob 悪魔 0 154131 628964 549345 2024-11-06T17:37:55Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628964 wikitext text/x-wiki {{-ja-}} {{ja-kanjitab|あく|ま|yomi=o}} {{ja-ism|あくま|kyu=惡魔}} # bir yovuz ruh; bir shayton; a jin; a shayton; sharpa, va hokazo # [[shayton]] # [[beloʻroqli]] oʻlim elchisi # shayton (kimdir biri boʻlgan boʻlsa) ====Shartlarini muvofiqlashtirish==== * [[タロット]] [[tarot]] ===Shuningdek qarang=== * [[デーモン]] ===Manlalar=== <references/> mp4x1jzq6f9q45kmlagpjsk9cmo7p85 ケイマン諸島 0 154612 629009 548918 2024-11-06T18:42:43Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629009 wikitext text/x-wiki {{-ja-}} {{DEFAULTSORT:けいまんしょとう}} {{ja-kanjitab|sort=けいまんしょとう|しょ|とう|yomi=o}} {{ja-mamlakat|proper|ケイマン しょとう}} # [[Kayman orollari]] ===Shuningdek qarang=== * [[グランド ケイマン]] * [[リトル ケイマン]] * [[ケイマン ブラック]] j3jaq5owsmyjy5swiiolwjyef5g9h6e リトルケイマン 0 154628 628977 548994 2024-11-06T18:01:41Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628977 wikitext text/x-wiki {{-ja-}} {{ja-mamlakat|proper|リトル ケイマン}} # {{w|Little Cayman}} ===Shuningdek qarang=== * [[ケイマン諸島]] [[ケイマン]] [[しょとう]] * [[グランド]] [[ケイマン]] * [[ケイマン]] [[ブラック]] hew04a85wc8m48r2fdofcfuie5xhgzd 628979 628977 2024-11-06T18:02:52Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628979 wikitext text/x-wiki {{-ja-}} {{ja-mamlakat|proper|リトル ケイマン}} # {{w|Little Cayman}} ===Shuningdek qarang=== * [[ケイマン諸島]] [[ケイマン しょとう]] * [[グランド ケイマン]] * [[ケイマン ブラック]] nhugr5htxkdudtn4ozpj6s26vod4hiq グランドケイマン 0 154629 629010 548914 2024-11-06T18:43:10Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629010 wikitext text/x-wiki {{-ja-}} {{DEFAULTSORT:くらんどけいまん'}} {{ja-mamlakat|proper|グランド ケイマン}} # {{w|Grand Cayman}} ===Shuningdek qarang=== * [[ケイマン諸島]] [[ケイマン しょとう]] * [[リトル ケイマン]] * [[ケイマン ブラック]] hzchn794o0zmq666plknls6epl83jqj ケイマンブラック 0 154630 628978 548917 2024-11-06T18:02:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628978 wikitext text/x-wiki {{-ja-}} {{ja-mamlakat|proper|ケイマン ブラック}} # {{w|Cayman Brac}} ===Shuningdek qarang=== * [[ケイマン諸島]] [[ケイマン しょとう]] * [[グランド ケイマン]] * [[リトル ケイマン]] lzjc5bbd7693l7aijvaw08by6druwog Modul:zh/data/ts 828 154789 628907 457477 2024-11-06T16:04:30Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628907 Scribunto text/plain return { ["「"]="“", ["」"]="”", ["『"]="‘", ["』"]="’", ["㑮"]="𫝈", ["㑯"]="㑔", ["㑳"]="㑇", ["㑶"]="㐹", ["㑺"]="俊", ["㒓"]="𠉂", ["㒖"]="𮯵", ["㒜"]="𠇐", ["㒥"]="仹", ["㒧"]="𠌯", ["㒯"]="𱏩", ["㒿"]="𰖩", ["㓄"]="𪠟", ["㓖"]="𰃻", ["㓨"]="刾", ["㔃"]="𫦌", ["㔅"]="𫦅", ["㔋"]="𪟎", ["㔝"]="𫦩", ["㔢"]="𫦳", ["㔤"]="𱐳", ["㔶"]="𱑉", ["㕒"]="𰆕", ["㕢"]="𰇀", ["㖦"]="𰇎", ["㖮"]="𪠵", ["㗙"]="𫩩", ["㗢"]="𰇖", ["㗣"]="𫪺", ["㗰"]="𫩛", ["㗲"]="𠵾", ["㗶"]="𭇜", ["㗻"]="𫪀", ["㗼"]="𫩤", ["㗿"]="𪡛", ["㘉"]="𠰱", ["㘓"]="𪢌", ["㘔"]="𫬐", ["㘖"]="𰉁", ["㘙"]="𫪂", ["㘚"]="㘎", ["㙔"]="𰉘", ["㙡"]="𭎂", ["㙢"]="𰊟", ["㙬"]="𫮜", ["㙺"]="𰊛", ["㙾"]="𰉽", ["㛍"]="𮰿", ["㛝"]="𫝦", ["㜄"]="㚯", ["㜏"]="㛣", ["㜐"]="𫝧", ["㜕"]="𮱇", ["㜗"]="𡞋", ["㜞"]="𰌆", ["㜢"]="𡞱", ["㜥"]="𫰨", ["㜭"]="𫰠", ["㜮"]="𫱕", ["㜰"]="𮰽", ["㜷"]="𡝠", ["㜺"]="𫲗", ["㝞"]="𫳃", ["㞞"]="𪨊", ["㟦"]="𮱩", ["㟺"]="𪩇", ["㠁"]="𫶅", ["㠆"]="𮱯", ["㠏"]="㟆", ["㠘"]="𱛇", ["㠠"]="𰎐", ["㠣"]="𫵷", ["㡓"]="𫷅", ["㡞"]="𰏜", ["㢗"]="𪪑", ["㢝"]="𢋈", ["㤲"]="𫺁", ["㥮"]="㤘", ["㥷"]="𰑸", ["㦊"]="𫺆", ["㦎"]="𢛯", ["㦖"]="𫺓", ["㦛"]="𢗓", ["㦞"]="𪫷", ["㦡"]="𮲃", ["㦦"]="𫻁", ["㦬"]="𰑫", ["㦭"]="𭝋", ["㨛"]="𰓔", ["㨟"]="𫼥", ["㨥"]="𫽀", ["㨻"]="𪮃", ["㩇"]="𫽇", ["㩋"]="𪮋", ["㩌"]="𫽧", ["㩜"]="㨫", ["㩣"]="𫾉", ["㩦"]="携", ["㩭"]="𫽊", ["㩳"]="㧐", ["㩵"]="擜", ["㩷"]="𰔲", ["㪎"]="𪯋", ["㪹"]="𬖠", ["㪻"]="𫿳", ["㬙"]="𱡼", ["㬢"]="𮲛", ["㬣"]="𬀮", ["㬮"]="𰖠", ["㮣"]="概", ["㮧"]="𱣂", ["㮲"]="𰗙", ["㮿"]="𮲰", ["㯂"]="𰘀", ["㯆"]="𰗡", ["㯗"]="𱣡", ["㯤"]="𣘐", ["㯸"]="𰗦", ["㯺"]="𰗘", ["㰂"]="𰗵", ["㰄"]="𮲶", ["㰍"]="𬺜", ["㰙"]="𣗙", ["㰚"]="樆", ["㰰"]="𬅢", ["㰳"]="𭭈", ["㲯"]="𰚪", ["㲰"]="𰚔", ["㴸"]="𰛛", ["㴿"]="𰛽", ["㵍"]="𬇰", ["㵑"]="𰜢", ["㵒"]="𬈕", ["㵗"]="𣳆", ["㵤"]="𬉇", ["㵾"]="𪷍", ["㶆"]="𫞛", ["㶍"]="𰝟", ["㶏"]="𰝋", ["㶒"]="𰛩", ["㶕"]="𰝗", ["㷃"]="𰝾", ["㷍"]="𤆢", ["㷲"]="𰞉", ["㷶"]="𰞲", ["㷻"]="𭴊", ["㷿"]="𤈷", ["㸄"]="𱫅", ["㸅"]="𰞍", ["㸇"]="𤎺", ["㸊"]="𬋍", ["㸐"]="𬊾", ["㹂"]="𬌛", ["㹓"]="𰠴", ["㹙"]="𪺴", ["㹚"]="𱭰", ["㹽"]="𫞣", ["㺏"]="𤠋", ["㺑"]="𬌷", ["㺜"]="𪺻", ["㻶"]="𪼋", ["㼀"]="𮴘", ["㼁"]="𮴂", ["㼆"]="𬎆", ["㼈"]="𭹜", ["㼻"]="𬎧", ["㾵"]="𬏟", ["㾺"]="𬏜", ["㿉"]="𰣶", ["㿎"]="𬏷", ["㿖"]="𪽮", ["㿗"]="𤻊", ["㿧"]="𤽯", ["㿹"]="𰤨", ["䀉"]="𥁢", ["䀍"]="𰥊", ["䀴"]="𬑏", ["䀹"]="𥅴", ["䁑"]="𱲥", ["䁝"]="𰥞", ["䁪"]="𥇢", ["䁱"]="𬑒", ["䁺"]="𱲮", ["䁻"]="䀥", ["䂎"]="𥎝", ["䂓"]="𰦔", ["䂻"]="𱳱", ["䂾"]="𱴄", ["䃁"]="𰦴", ["䃕"]="𰦷", ["䃖"]="𱳳", ["䃘"]="𬒎", ["䃢"]="𰧎", ["䃣"]="𰦨", ["䃤"]="𬒕", ["䃮"]="鿎", ["䃴"]="𰧘", ["䅐"]="𫀨", ["䅘"]="𥟂", ["䅳"]="𫀬", ["䆅"]="𰨳", ["䆉"]="𫁂", ["䇓"]="𰩧", ["䈟"]="𱷸", ["䉅"]="𱷷", ["䉆"]="𮵮", ["䉍"]="𬕊", ["䉐"]="𬕛", ["䉑"]="𫁲", ["䉔"]="𱸐", ["䉙"]="𥬀", ["䉩"]="𱸂", ["䉬"]="𫂈", ["䉱"]="𬕦", ["䉲"]="𥮜", ["䉶"]="𫁷", ["䊛"]="𰪻", ["䊜"]="𰪫", ["䊟"]="𰫋", ["䊪"]="𥸯", ["䊭"]="𥺅", ["䊯"]="𰪩", ["䊲"]="𬡻", ["䊵"]="𮉠", ["䊷"]="䌶", ["䊹"]="纤", ["䊺"]="𫄚", ["䋃"]="𫄜", ["䋄"]="纲", ["䋆"]="𰬁", ["䋋"]="𱺘", ["䋍"]="𰬂", ["䋎"]="𬘜", ["䋏"]="𮉣", ["䋐"]="𬘙", ["䋑"]="𰬃", ["䋓"]="绉", ["䋔"]="𫄞", ["䋘"]="𱺛", ["䋙"]="䌺", ["䋚"]="䌻", ["䋝"]="𰬕", ["䋞"]="𮉦", ["䋦"]="𫄩", ["䋫"]="𰬑", ["䋱"]="𱺜", ["䋲"]="绳", ["䋹"]="䌿", ["䋺"]="𬘴", ["䋻"]="䌾", ["䋼"]="𫄮", ["䋽"]="𰬭", ["䋾"]="𬘲", ["䋿"]="𦈓", ["䌁"]="𬘱", ["䌇"]="𰬱", ["䌈"]="𦈖", ["䌋"]="𦈘", ["䌌"]="𰬶", ["䌏"]="𱺫", ["䌐"]="𬘮", ["䌖"]="𦈜", ["䌝"]="𦈟", ["䌞"]="𬘪", ["䌟"]="𦈞", ["䌥"]="𦈠", ["䌨"]="𱺯", ["䌪"]="𬙁", ["䌬"]="𱺕", ["䌰"]="𦈙", ["䍤"]="𫅅", ["䍦"]="䍠", ["䍷"]="𬙭", ["䍽"]="𦍠", ["䎘"]="𬚄", ["䎙"]="𫅭", ["䎱"]="䎬", ["䏊"]="𰭹", ["䐢"]="𰮙", ["䐣"]="𬁽", ["䐷"]="𬂅", ["䐹"]="𰮲", ["䐽"]="𰯎", ["䑗"]="𬛹", ["䑺"]="𱼸", ["䑼"]="𰰌", ["䓣"]="𬜯", ["䔇"]="𰰴", ["䔈"]="𰱀", ["䔡"]="𬝁", ["䕏"]="𮶝", ["䕠"]="𱽱", ["䕡"]="𰱩", ["䕤"]="𫟕", ["䕳"]="𦰴", ["䕵"]="𱾎", ["䕼"]="𬝴", ["䖀"]="𰲖", ["䖅"]="𫟑", ["䖚"]="𰲟", ["䗃"]="𰲳", ["䗅"]="𫊪", ["䗥"]="𰲯", ["䗯"]="𱿩", ["䗻"]="𮔂", ["䗽"]="𰳚", ["䗿"]="𧉞", ["䘇"]="蚉", ["䘉"]="蚕", ["䙔"]="𫋲", ["䙝"]="亵", ["䙡"]="䙌", ["䙰"]="褵", ["䙱"]="𧜭", ["䙼"]="𰴖", ["䚀"]="舰", ["䚆"]="𬢑", ["䚉"]="𬢐", ["䚕"]="𰴗", ["䚞"]="𰴤", ["䚩"]="𫌯", ["䚳"]="𬣛", ["䚵"]="𬣟", ["䚽"]="𬣜", ["䛀"]="𰵐", ["䛄"]="𫍠", ["䛅"]="𲂆", ["䛊"]="识", ["䛌"]="𰵜", ["䛍"]="𬣧", ["䛔"]="𲂈", ["䛘"]="𬣯", ["䛛"]="𬣬", ["䛞"]="𬣸", ["䛟"]="𰵢", ["䛠"]="𰵫", ["䛤"]="𬣹", ["䛩"]="𲂉", ["䛬"]="𬤁", ["䛭"]="𰵰", ["䛳"]="𫍫", ["䛴"]="𮷈", ["䛽"]="𬤌", ["䛿"]="𬤑", ["䜀"]="䜧", ["䜄"]="𰶈", ["䜉"]="𬤘", ["䜊"]="𲂓", ["䜋"]="𬤉", ["䜍"]="𬤟", ["䜎"]="𬣿", ["䜏"]="𰶇", ["䜒"]="𬤡", ["䜖"]="𫟢", ["䜚"]="𬤪", ["䜝"]="𬤬", ["䝏"]="𰶬", ["䝕"]="𬥄", ["䝡"]="𬥊", ["䝨"]="贤", ["䝭"]="𫎧", ["䝯"]="𬥵", ["䝲"]="赆", ["䝻"]="𧹕", ["䝼"]="䞍", ["䞀"]="𬥽", ["䞁"]="𬥺", ["䞂"]="𬥻", ["䞈"]="𧹑", ["䞉"]="𰷩", ["䞋"]="𫎪", ["䞓"]="𫎭", ["䟃"]="𫎺", ["䟄"]="𲃏", ["䟆"]="𫎳", ["䟇"]="𧺋", ["䟏"]="𰷴", ["䟐"]="𫎱", ["䟺"]="𬦥", ["䠆"]="𫏃", ["䠟"]="𰸈", ["䠠"]="𰸛", ["䠩"]="𰸊", ["䠮"]="𬧃", ["䠱"]="𨅛", ["䡁"]="𬧢", ["䡄"]="𮷖", ["䡅"]="𰹳", ["䡇"]="𰹷", ["䡊"]="𰹺", ["䡐"]="𫟤", ["䡓"]="𲀝", ["䡗"]="𬨆", ["䡘"]="𬨉", ["䡝"]="𰺑", ["䡟"]="𬨌", ["䡦"]="𬨑", ["䡩"]="𫟥", ["䡰"]="𰺘", ["䡴"]="𰺝", ["䡵"]="𫟦", ["䡶"]="𬨔", ["䡷"]="𰺡", ["䡹"]="𬨕", ["䡻"]="𰺤", ["䡾"]="𰺠", ["䢈"]="𰺭", ["䢙"]="𲅑", ["䢨"]="𨑹", ["䤌"]="𮠞", ["䤍"]="𰼑", ["䤝"]="𲇳", ["䤠"]="𰽠", ["䤤"]="𫟺", ["䤥"]="𰽺", ["䤨"]="𰽸", ["䤩"]="𬭈", ["䤪"]="𬭆", ["䤬"]="𰾈", ["䤭"]="𮸌", ["䤵"]="𰾐", ["䤸"]="𰾦", ["䤻"]="𰾖", ["䤼"]="𬭣", ["䥄"]="𫠀", ["䥇"]="䦂", ["䥊"]="𲈄", ["䥑"]="鿏", ["䥓"]="𮸞", ["䥔"]="𲈙", ["䥕"]="𬭯", ["䥖"]="𰾻", ["䥗"]="𫔋", ["䥛"]="𬭴", ["䥝"]="𰿁", ["䥞"]="𬭻", ["䥥"]="镰", ["䥩"]="𨱖", ["䥯"]="𫔆", ["䥱"]="䥾", ["䥴"]="𰿅", ["䥶"]="𰽝", ["䥷"]="𰿇", ["䥸"]="𨧮", ["䦌"]="𮤬", ["䦎"]="𰿨", ["䦖"]="𮸥", ["䦘"]="𨸄", ["䦛"]="䦶", ["䦜"]="𲈽", ["䦝"]="𬮨", ["䦟"]="䦷", ["䦣"]="𮸦", ["䦧"]="阋", ["䦪"]="𰿴", ["䦯"]="𫔵", ["䦱"]="𰿫", ["䦳"]="𨷿", ["䧞"]="𬮺", ["䧢"]="𨸟", ["䨴"]="𱁒", ["䩤"]="𮸮", ["䩫"]="𬰥", ["䪊"]="𫖅", ["䪍"]="𱁽", ["䪏"]="𩏼", ["䪐"]="𱂅", ["䪓"]="𬰳", ["䪗"]="𩐀", ["䪘"]="𩏿", ["䪜"]="𬰷", ["䪝"]="𱂌", ["䪥"]="𱂎", ["䪴"]="𫖫", ["䪼"]="𱂢", ["䪾"]="𫖬", ["䫀"]="𫖱", ["䫂"]="𫖰", ["䫈"]="𬱣", ["䫉"]="𬥈", ["䫌"]="𱂮", ["䫏"]="𬱦", ["䫐"]="𬃲", ["䫖"]="𲊾", ["䫜"]="𬱮", ["䫟"]="𫖲", ["䫠"]="𬱰", ["䫥"]="𱆚", ["䫩"]="𬱬", ["䫫"]="𲋀", ["䫲"]="𲋃", ["䫴"]="𩖗", ["䫶"]="𫖺", ["䫺"]="𲋎", ["䫻"]="𫗇", ["䫼"]="𬱷", ["䫽"]="𲋏", ["䫾"]="𫠈", ["䬀"]="𱃖", ["䬂"]="𬱸", ["䬅"]="𱃚", ["䬍"]="𬲀", ["䬎"]="𬱿", ["䬐"]="𱃜", ["䬓"]="𫗊", ["䬔"]="𱃞", ["䬘"]="𩙮", ["䬝"]="𩙯", ["䬞"]="𩙧", ["䬟"]="𱃙", ["䬣"]="𱃱", ["䬧"]="𫗟", ["䬪"]="𱃳", ["䬫"]="𬲮", ["䬬"]="𱃵", ["䬯"]="𬲫", ["䬰"]="𲋤", ["䬲"]="𬲯", ["䬳"]="𱃷", ["䬶"]="𬲷", ["䬹"]="𱃸", ["䬾"]="𬲻", ["䭀"]="𩠇", ["䭃"]="𩠈", ["䭅"]="𬲾", ["䭇"]="𬳀", ["䭈"]="𱄃", ["䭉"]="𬳅", ["䭑"]="𫗱", ["䭒"]="𬳋", ["䭓"]="𱃹", ["䭔"]="𫗰", ["䭕"]="𬲕", ["䭘"]="𬳑", ["䭞"]="𬲳", ["䭡"]="𱄉", ["䭢"]="𬲲", ["䭣"]="𬲶", ["䭭"]="𬱯", ["䭿"]="𩧭", ["䮂"]="𱅄", ["䮄"]="𫠊", ["䮈"]="𬳾", ["䮗"]="𬴁", ["䮝"]="𩧰", ["䮞"]="𩨁", ["䮠"]="𩧿", ["䮧"]="𱅠", ["䮫"]="𩨇", ["䮰"]="𫘮", ["䮲"]="𱅦", ["䮳"]="𩨏", ["䮴"]="𲌋", ["䮸"]="𬳸", ["䮽"]="𬴍", ["䮾"]="𩧪", ["䮿"]="𬴏", ["䯀"]="䯅", ["䯤"]="𩩈", ["䰎"]="𱆃", ["䰐"]="𱆅", ["䰖"]="𱆈", ["䰫"]="𱆙", ["䰲"]="𱇍", ["䰶"]="𲍈", ["䰷"]="𬶆", ["䰻"]="𱇕", ["䰽"]="𱇑", ["䰾"]="鲃", ["䱀"]="𫚐", ["䱁"]="𫚏", ["䱂"]="𱇤", ["䱅"]="𱇚", ["䱇"]="𱇞", ["䱊"]="𲍐", ["䱋"]="𲍎", ["䱌"]="𱇬", ["䱍"]="𬶊", ["䱎"]="𱇥", ["䱐"]="𱇲", ["䱒"]="𱇰", ["䱓"]="𬶓", ["䱗"]="𮬞", ["䱙"]="𩾈", ["䱚"]="𮬠", ["䱛"]="𮬟", ["䱜"]="𱇷", ["䱝"]="𲍕", ["䱟"]="𱈀", ["䱡"]="𱇽", ["䱤"]="𱇻", ["䱥"]="𱇹", ["䱧"]="𫚠", ["䱬"]="𩾊", ["䱭"]="𱈇", ["䱰"]="𩾋", ["䱱"]="𬶤", ["䱴"]="𱈈", ["䱵"]="𮬢", ["䱷"]="䲣", ["䱸"]="𫠑", ["䱹"]="𬶣", ["䱻"]="𮬡", ["䱽"]="䲝", ["䱾"]="𱈆", ["䲁"]="鳚", ["䲅"]="𫚜", ["䲉"]="𱈒", ["䲎"]="𲍙", ["䲏"]="𬶗", ["䲑"]="𲍇", ["䲕"]="𬶴", ["䲖"]="𩾂", ["䲗"]="𮬣", ["䲘"]="鳤", ["䲙"]="𬶎", ["䲚"]="𱈖", ["䲛"]="𱈛", ["䲨"]="𬷾", ["䲰"]="𪉂", ["䲸"]="𮭡", ["䲹"]="𱉖", ["䲼"]="𬸆", ["䳂"]="𲍲", ["䳄"]="𲍵", ["䳅"]="𱉙", ["䳇"]="𱉞", ["䳍"]="𮭥", ["䳏"]="𱉤", ["䳑"]="𲍳", ["䳒"]="𱉧", ["䳓"]="𱉦", ["䳕"]="𱉺", ["䳚"]="𱉶", ["䳜"]="𫛬", ["䳟"]="𱊂", ["䳡"]="𲍾", ["䳢"]="𫛰", ["䳤"]="𫛮", ["䳥"]="𮹗", ["䳧"]="𫛺", ["䳨"]="𬸛", ["䳫"]="𫛼", ["䳭"]="𱉼", ["䳮"]="𱊓", ["䳲"]="𱊙", ["䳺"]="𱊣", ["䳽"]="𮹙", ["䴇"]="𱊪", ["䴈"]="𬸩", ["䴉"]="鹮", ["䴋"]="𫜅", ["䴌"]="𲎈", ["䴏"]="𮹜", ["䴚"]="𮭰", ["䴝"]="𱊼", ["䴬"]="𪎈", ["䴭"]="𬹅", ["䴮"]="𱋆", ["䴱"]="𫜒", ["䴲"]="𱋊", ["䴳"]="𱋎", ["䴴"]="𪎋", ["䴵"]="𱋔", ["䴷"]="𬹉", ["䴸"]="𱋗", ["䴹"]="𱋙", ["䴺"]="𱋝", ["䴽"]="𫜔", ["䴾"]="𱋧", ["䵂"]="𱋪", ["䵃"]="𱋫", ["䵆"]="𱋮", ["䵐"]="𱋴", ["䵖"]="𬹔", ["䵘"]="𬓸", ["䵳"]="𪑅", ["䵴"]="𫜙", ["䵶"]="𱌁", ["䵷"]="𱌃", ["䶕"]="𫜨", ["䶗"]="𮯙", ["䶢"]="𬺍", ["䶣"]="𬺃", ["䶦"]="𬺉", ["䶧"]="𱌰", ["䶨"]="𱌵", ["䶪"]="𬺕", ["䶱"]="𱍇", ["䶲"]="𫜳", ["丟"]="丢", ["並"]="并", ["乾"]="干", ["亂"]="乱", ["亙"]="亘", ["亞"]="亚", ["佇"]="伫", ["佈"]="布", ["佔"]="占", ["併"]="并", ["來"]="来", ["侖"]="仑", ["侶"]="侣", ["俁"]="俣", ["係"]="系", ["俓"]="𠇹", ["俔"]="伣", ["俛"]="俯", ["俠"]="侠", ["俥"]="伡", ["俴"]="𠈙", ["俹"]="𱎫", ["倀"]="伥", ["倃"]="咱", ["倆"]="俩", ["倈"]="俫", ["倉"]="仓", ["個"]="个", ["們"]="们", ["倖"]="幸", ["倣"]="仿", ["倫"]="伦", ["倲"]="㑈", ["偉"]="伟", ["偑"]="㐽", ["偒"]="𱎟", ["偩"]="𰁾", ["側"]="侧", ["偵"]="侦", ["偺"]="咱", ["偽"]="伪", ["傌"]="骂", ["傑"]="杰", ["傖"]="伧", ["傘"]="伞", ["備"]="备", ["傢"]="家", ["傪"]="𫢺", ["傭"]="佣", ["傯"]="偬", ["傱"]="𰁧", ["傳"]="传", ["傴"]="伛", ["債"]="债", ["傷"]="伤", ["傾"]="倾", ["僀"]="𰂗", ["僂"]="偻", ["僅"]="仅", ["僆"]="𫢪", ["僉"]="佥", ["僊"]="仙", ["働"]="动", ["僑"]="侨", ["僓"]="𰂜", ["僕"]="仆", ["僗"]="𫢬", ["僞"]="伪", ["僟"]="仉", ["僤"]="𫢸", ["僥"]="侥", ["僨"]="偾", ["僩"]="𰂎", ["僫"]="𱏀", ["僱"]="雇", ["僴"]="𰂋", ["僶"]="𠊟", ["價"]="价", ["僾"]="𫣊", ["儀"]="仪", ["儁"]="俊", ["儂"]="侬", ["億"]="亿", ["儅"]="𰁸", ["儈"]="侩", ["儉"]="俭", ["儌"]="侥", ["儎"]="傤", ["儐"]="傧", ["儔"]="俦", ["儕"]="侪", ["儖"]="𫣉", ["儗"]="拟", ["儘"]="尽", ["儜"]="佇", ["償"]="偿", ["儢"]="𰂦", ["儣"]="𠆲", ["儥"]="𰂏", ["儩"]="𰂭", ["優"]="优", ["儭"]="𠋆", ["儮"]="𮯸", ["儰"]="𫢭", ["儱"]="𫢒", ["儲"]="储", ["儵"]="倏", ["儷"]="俪", ["儸"]="㑩", ["儹"]="𰃆", ["儺"]="傩", ["儻"]="傥", ["儼"]="俨", ["兇"]="凶", ["兌"]="兑", ["兒"]="儿", ["兗"]="兖", ["兠"]="兜", ["內"]="内", ["兩"]="两", ["冊"]="册", ["冪"]="幂", ["凈"]="净", ["凍"]="冻", ["凔"]="𰃷", ["凙"]="𪞝", ["凜"]="凛", ["凟"]="𰃿", ["凱"]="凯", ["凴"]="凭", ["別"]="别", ["刪"]="删", ["刼"]="劫", ["剄"]="刭", ["則"]="则", ["剋"]="克", ["剎"]="刹", ["剏"]="创", ["剗"]="刬", ["剙"]="创", ["剛"]="刚", ["剝"]="剥", ["剮"]="剐", ["剳"]="札", ["剴"]="剀", ["創"]="创", ["剷"]="铲", ["剸"]="𰄞", ["剹"]="戮", ["剼"]="𱐠", ["剾"]="𠛅", ["劃"]="划", ["劇"]="剧", ["劉"]="刘", ["劊"]="刽", ["劌"]="刿", ["劍"]="剑", ["劏"]="㓥", ["劑"]="剂", ["劗"]="𭄛", ["劚"]="㔉", ["勁"]="劲", ["勌"]="倦", ["勑"]="敕", ["動"]="动", ["勗"]="勖", ["務"]="务", ["勛"]="勋", ["勝"]="胜", ["勞"]="劳", ["勢"]="势", ["勣"]="𪟝", ["勦"]="剿", ["勩"]="勚", ["勱"]="劢", ["勳"]="勋", ["勴"]="𰅔", ["勵"]="励", ["勸"]="劝", ["勻"]="匀", ["匭"]="匦", ["匯"]="汇", ["匰"]="𰅦", ["匱"]="匮", ["匳"]="奁", ["匵"]="𰅥", ["區"]="区", ["協"]="协", ["卨"]="𫧯", ["卻"]="却", ["厙"]="厍", ["厠"]="厕", ["厭"]="厌", ["厱"]="𰆚", ["厲"]="厉", ["厴"]="厣", ["參"]="参", ["叡"]="睿", ["叢"]="丛", ["吳"]="吴", ["吶"]="呐", ["呂"]="吕", ["咲"]="笑", ["咼"]="呙", ["員"]="员", ["哯"]="𠯟", ["哶"]="咩", ["唄"]="呗", ["唊"]="𰇕", ["唓"]="𪠳", ["唚"]="吣", ["唸"]="念", ["唻"]="𫪁", ["問"]="问", ["啓"]="启", ["啞"]="哑", ["啟"]="启", ["啢"]="唡", ["啣"]="衔", ["啺"]="𱒂", ["喎"]="㖞", ["喒"]="咱", ["喚"]="唤", ["喡"]="𮰔", ["喪"]="丧", ["喫"]="吃", ["喬"]="乔", ["單"]="单", ["喲"]="哟", ["嗁"]="啼", ["嗆"]="呛", ["嗇"]="啬", ["嗊"]="唝", ["嗎"]="吗", ["嗚"]="呜", ["嗧"]="𰇠", ["嗩"]="唢", ["嗶"]="哔", ["嗹"]="𪡏", ["嗿"]="𰇲", ["嘄"]="𫪧", ["嘆"]="叹", ["嘇"]="𰇼", ["嘍"]="喽", ["嘑"]="呼", ["嘓"]="啯", ["嘔"]="呕", ["嘖"]="啧", ["嘗"]="尝", ["嘜"]="唛", ["嘩"]="哗", ["嘪"]="𪡃", ["嘮"]="唠", ["嘯"]="啸", ["嘰"]="叽", ["嘳"]="𪡞", ["嘵"]="哓", ["嘸"]="呒", ["嘺"]="𪡀", ["嘽"]="啴", ["噁"]="𫫇", ["噅"]="𠯠", ["噓"]="嘘", ["噚"]="㖊", ["噝"]="咝", ["噞"]="𪡋", ["噠"]="哒", ["噥"]="哝", ["噦"]="哕", ["噧"]="𱒀", ["噯"]="嗳", ["噲"]="哙", ["噴"]="喷", ["噸"]="吨", ["噹"]="当", ["嚀"]="咛", ["嚂"]="𰈓", ["嚇"]="吓", ["嚈"]="𫩫", ["嚋"]="𱒦", ["嚌"]="哜", ["嚍"]="𫩺", ["嚐"]="尝", ["嚕"]="噜", ["嚙"]="啮", ["嚛"]="𪠸", ["嚝"]="𫩕", ["嚥"]="咽", ["嚦"]="呖", ["嚧"]="𠰷", ["嚨"]="咙", ["嚩"]="𰈶", ["嚪"]="𫫦", ["嚫"]="𰈍", ["嚬"]="𫫾", ["嚮"]="向", ["嚲"]="亸", ["嚳"]="喾", ["嚴"]="严", ["嚶"]="嘤", ["嚽"]="𪢕", ["囀"]="啭", ["囁"]="嗫", ["囂"]="嚣", ["囅"]="冁", ["囈"]="呓", ["囉"]="啰", ["囋"]="𰉄", ["囌"]="苏", ["囐"]="𰈯", ["囑"]="嘱", ["囒"]="𪢠", ["囓"]="啮", ["囕"]="𰈆", ["囖"]="𱕌", ["囪"]="囱", ["圇"]="囵", ["國"]="国", ["圍"]="围", ["園"]="园", ["圓"]="圆", ["圖"]="图", ["團"]="团", ["圞"]="𪢮", ["垷"]="𰉚", ["垻"]="坝", ["埉"]="𰉥", ["埡"]="垭", ["埨"]="𫭢", ["埬"]="𪣆", ["執"]="执", ["堅"]="坚", ["堈"]="𰉙", ["堊"]="垩", ["堖"]="垴", ["堚"]="𪣒", ["堝"]="埚", ["堦"]="阶", ["堯"]="尧", ["報"]="报", ["場"]="场", ["塊"]="块", ["塋"]="茔", ["塏"]="垲", ["塒"]="埘", ["塗"]="涂", ["塚"]="冢", ["塟"]="葬", ["塢"]="坞", ["塤"]="埙", ["塵"]="尘", ["塸"]="𫭟", ["塹"]="堑", ["塼"]="砖", ["塿"]="𪣻", ["墆"]="𰊂", ["墊"]="垫", ["墋"]="𫮅", ["墏"]="𰊈", ["墜"]="坠", ["墝"]="𫭪", ["墠"]="𫮃", ["墢"]="𫭨", ["墧"]="𰉩", ["墮"]="堕", ["墲"]="𪢸", ["墳"]="坟", ["墵"]="坛", ["墶"]="垯", ["墷"]="𰉪", ["墻"]="墙", ["墾"]="垦", ["墿"]="𰉣", ["壇"]="坛", ["壈"]="𡒄", ["壋"]="垱", ["壍"]="𰊢", ["壏"]="𰊑", ["壐"]="𱖚", ["壓"]="压", ["壔"]="𭎜", ["壘"]="垒", ["壙"]="圹", ["壚"]="垆", ["壛"]="𰊡", ["壜"]="坛", ["壝"]="𭏸", ["壞"]="坏", ["壟"]="垄", ["壠"]="垅", ["壢"]="坜", ["壧"]="𫭲", ["壩"]="坝", ["壪"]="塆", ["壯"]="壮", ["壺"]="壶", ["壼"]="壸", ["壽"]="寿", ["夠"]="够", ["夢"]="梦", ["夥"]="伙", ["夾"]="夹", ["奐"]="奂", ["奧"]="奥", ["奩"]="奁", ["奪"]="夺", ["奬"]="奖", ["奮"]="奋", ["奯"]="𫯥", ["奲"]="𫰂", ["奼"]="姹", ["妝"]="妆", ["妬"]="妒", ["妳"]="你", ["妷"]="侄", ["姉"]="姊", ["姍"]="姗", ["姙"]="妊", ["姦"]="奸", ["姪"]="侄", ["娙"]="𫰛", ["娛"]="娱", ["婁"]="娄", ["婜"]="𫰐", ["婡"]="𫝫", ["婣"]="姻", ["婦"]="妇", ["婨"]="𱙇", ["婬"]="淫", ["婭"]="娅", ["婸"]="𰋸", ["媁"]="𫰍", ["媈"]="𫝨", ["媜"]="𰌂", ["媧"]="娲", ["媮"]="偷", ["媯"]="妫", ["媰"]="㛀", ["媼"]="媪", ["媽"]="妈", ["媿"]="愧", ["嫈"]="𰌀", ["嫋"]="袅", ["嫗"]="妪", ["嫢"]="𫰹", ["嫥"]="𰋹", ["嫧"]="𰌇", ["嫰"]="嫩", ["嫵"]="妩", ["嫺"]="娴", ["嫻"]="娴", ["嫿"]="婳", ["嬀"]="妫", ["嬂"]="𡛰", ["嬃"]="媭", ["嬅"]="𫰡", ["嬇"]="𫝬", ["嬈"]="娆", ["嬋"]="婵", ["嬌"]="娇", ["嬐"]="𫰰", ["嬒"]="𫰢", ["嬙"]="嫱", ["嬝"]="袅", ["嬟"]="𮰸", ["嬡"]="嫒", ["嬣"]="𪥰", ["嬤"]="嬷", ["嬦"]="𫝩", ["嬧"]="𮱁", ["嬩"]="𱙄", ["嬪"]="嫔", ["嬭"]="奶", ["嬮"]="𰋽", ["嬰"]="婴", ["嬸"]="婶", ["嬻"]="𪥿", ["嬾"]="懒", ["孃"]="娘", ["孄"]="𫝮", ["孆"]="𫝭", ["孇"]="𪥫", ["孋"]="㛤", ["孌"]="娈", ["孍"]="𱙔", ["孎"]="𡠟", ["孫"]="孙", ["孭"]="𱙷", ["孲"]="𰌦", ["學"]="学", ["孻"]="𡥧", ["孾"]="𪧀", ["孿"]="孪", ["宂"]="冗", ["宮"]="宫", ["寀"]="采", ["寏"]="𡨡", ["寑"]="寝", ["寠"]="𪧘", ["寢"]="寝", ["實"]="实", ["寧"]="宁", ["審"]="审", ["寪"]="𰌷", ["寫"]="写", ["寬"]="宽", ["寳"]="宝", ["寴"]="𡩁", ["寵"]="宠", ["寶"]="宝", ["寷"]="𫲸", ["將"]="将", ["專"]="专", ["尋"]="寻", ["對"]="对", ["導"]="导", ["尠"]="鲜", ["尷"]="尴", ["屆"]="届", ["屍"]="尸", ["屓"]="屃", ["屜"]="屉", ["屢"]="屡", ["層"]="层", ["屨"]="屦", ["屩"]="𪨗", ["屬"]="属", ["屭"]="屃", ["岅"]="坂", ["岡"]="冈", ["峴"]="岘", ["島"]="岛", ["峽"]="峡", ["崍"]="崃", ["崐"]="昆", ["崑"]="昆", ["崗"]="岗", ["崘"]="仑", ["崙"]="仑", ["崠"]="𰎏", ["崢"]="峥", ["崬"]="岽", ["崱"]="𰎖", ["崵"]="𫵵", ["嵐"]="岚", ["嵒"]="岩", ["嵷"]="𰎌", ["嵸"]="𡵝", ["嵼"]="𡶴", ["嵽"]="𫶇", ["嵾"]="㟥", ["嶁"]="嵝", ["嶄"]="崭", ["嶇"]="岖", ["嶈"]="𡺃", ["嶔"]="嵚", ["嶗"]="崂", ["嶘"]="𡺄", ["嶠"]="峤", ["嶢"]="峣", ["嶤"]="𰎔", ["嶧"]="峄", ["嶨"]="峃", ["嶩"]="𰎞", ["嶪"]="𰎑", ["嶮"]="崄", ["嶴"]="岙", ["嶸"]="嵘", ["嶹"]="𫝵", ["嶺"]="岭", ["嶼"]="屿", ["嶽"]="岳", ["巃"]="𰎎", ["巄"]="𱛓", ["巆"]="𫶕", ["巊"]="𪩎", ["巋"]="岿", ["巑"]="𰏁", ["巒"]="峦", ["巔"]="巅", ["巖"]="岩", ["巗"]="岩", ["巘"]="𪩘", ["巠"]="𢀖", ["巰"]="巯", ["帥"]="帅", ["師"]="师", ["帳"]="帐", ["帴"]="𰏕", ["帶"]="带", ["幀"]="帧", ["幃"]="帏", ["幓"]="㡎", ["幗"]="帼", ["幘"]="帻", ["幝"]="𪩷", ["幟"]="帜", ["幠"]="𭘓", ["幣"]="币", ["幩"]="𪩸", ["幫"]="帮", ["幬"]="帱", ["幱"]="𰏟", ["幷"]="并", ["幹"]="干", ["幾"]="几", ["庫"]="库", ["庲"]="𫷬", ["庽"]="寓", ["廁"]="厕", ["廂"]="厢", ["廄"]="厩", ["廈"]="厦", ["廎"]="庼", ["廐"]="厩", ["廔"]="𫷹", ["廕"]="荫", ["廗"]="𰏼", ["廚"]="厨", ["廝"]="厮", ["廞"]="𫷷", ["廟"]="庙", ["廠"]="厂", ["廡"]="庑", ["廢"]="废", ["廣"]="广", ["廥"]="𰏶", ["廧"]="𪪞", ["廩"]="廪", ["廬"]="庐", ["廮"]="𫷾", ["廳"]="厅", ["弒"]="弑", ["弔"]="吊", ["弳"]="弪", ["張"]="张", ["強"]="强", ["彃"]="𪪼", ["彄"]="𫸩", ["彆"]="别", ["彈"]="弹", ["彊"]="强", ["彌"]="弥", ["彍"]="𭚦", ["彎"]="弯", ["彙"]="汇", ["彞"]="彝", ["彠"]="彟", ["彥"]="彦", ["彫"]="雕", ["彲"]="彨", ["彿"]="佛", ["後"]="后", ["徑"]="径", ["從"]="从", ["徠"]="徕", ["復"]="复", ["徵"]="征", ["徹"]="彻", ["徿"]="𪫌", ["恆"]="恒", ["恥"]="耻", ["悅"]="悦", ["悏"]="𫺂", ["悓"]="𮲁", ["悞"]="悮", ["悵"]="怅", ["悶"]="闷", ["悽"]="凄", ["惀"]="𰑄", ["惡"]="恶", ["惱"]="恼", ["惲"]="恽", ["惻"]="恻", ["愇"]="𫹴", ["愌"]="𢚾", ["愓"]="𰐿", ["愛"]="爱", ["愜"]="惬", ["愨"]="悫", ["愩"]="𫺌", ["愴"]="怆", ["愷"]="恺", ["愻"]="𢙏", ["愽"]="博", ["愾"]="忾", ["慄"]="栗", ["慇"]="殷", ["態"]="态", ["慍"]="愠", ["慐"]="𰑟", ["慖"]="𮲇", ["慘"]="惨", ["慙"]="惭", ["慚"]="惭", ["慟"]="恸", ["慣"]="惯", ["慤"]="悫", ["慪"]="怄", ["慫"]="怂", ["慮"]="虑", ["慯"]="𫹽", ["慱"]="𰑁", ["慲"]="𰒆", ["慳"]="悭", ["慴"]="慑", ["慶"]="庆", ["慸"]="𰑵", ["慹"]="𰑔", ["慺"]="㥪", ["慼"]="戚", ["慾"]="欲", ["憂"]="忧", ["憅"]="𮲄", ["憊"]="惫", ["憌"]="𱞲", ["憍"]="㤭", ["憐"]="怜", ["憑"]="凭", ["憒"]="愦", ["憖"]="慭", ["憚"]="惮", ["憢"]="𢙒", ["憤"]="愤", ["憦"]="𫺘", ["憪"]="𰑥", ["憫"]="悯", ["憮"]="怃", ["憲"]="宪", ["憳"]="𱞕", ["憴"]="𰑪", ["憶"]="忆", ["憸"]="𪫺", ["憹"]="𢙐", ["懀"]="𢙓", ["懃"]="勤", ["懇"]="恳", ["應"]="应", ["懌"]="怿", ["懍"]="懔", ["懓"]="𭞄", ["懕"]="𰑕", ["懘"]="𰒒", ["懙"]="𫹮", ["懞"]="蒙", ["懟"]="怼", ["懠"]="𫺊", ["懣"]="懑", ["懤"]="㤽", ["懧"]="㤖", ["懨"]="恹", ["懫"]="𰑬", ["懭"]="𰐾", ["懰"]="𰑙", ["懲"]="惩", ["懶"]="懒", ["懷"]="怀", ["懸"]="悬", ["懺"]="忏", ["懼"]="惧", ["懽"]="欢", ["懾"]="慑", ["戀"]="恋", ["戁"]="𫺷", ["戃"]="𰑿", ["戇"]="戆", ["戔"]="戋", ["戧"]="戗", ["戩"]="戬", ["戰"]="战", ["戲"]="戏", ["戶"]="户", ["拋"]="抛", ["拏"]="拿", ["拕"]="拖", ["挩"]="捝", ["挾"]="挟", ["捨"]="舍", ["捫"]="扪", ["捲"]="卷", ["掁"]="𰓄", ["掃"]="扫", ["掄"]="抡", ["掆"]="㧏", ["掗"]="挜", ["掙"]="挣", ["掚"]="𪭵", ["掛"]="挂", ["採"]="采", ["掽"]="碰", ["揀"]="拣", ["揁"]="𱟸", ["揚"]="扬", ["換"]="换", ["揫"]="揪", ["揮"]="挥", ["揹"]="背", ["搆"]="构", ["搇"]="揿", ["搊"]="𫼝", ["損"]="损", ["搎"]="𰓧", ["搖"]="摇", ["搗"]="捣", ["搥"]="捶", ["搨"]="拓", ["搵"]="揾", ["搶"]="抢", ["搾"]="榨", ["摀"]="𰓆", ["摃"]="𫼱", ["摋"]="𢫬", ["摌"]="𫼪", ["摐"]="𪭢", ["摑"]="掴", ["摕"]="𰔇", ["摙"]="𫽁", ["摜"]="掼", ["摟"]="搂", ["摥"]="𫼟", ["摪"]="𫽣", ["摫"]="𰓻", ["摯"]="挚", ["摲"]="𰓼", ["摳"]="抠", ["摶"]="抟", ["摺"]="折", ["摻"]="掺", ["摼"]="𰓱", ["撈"]="捞", ["撊"]="𪭾", ["撋"]="𰓷", ["撌"]="𰔋", ["撏"]="挦", ["撐"]="撑", ["撓"]="挠", ["撝"]="㧑", ["撟"]="挢", ["撡"]="操", ["撣"]="掸", ["撥"]="拨", ["撧"]="𪮖", ["撫"]="抚", ["撲"]="扑", ["撳"]="揿", ["撶"]="𫼧", ["撹"]="搅", ["撻"]="挞", ["撾"]="挝", ["撿"]="捡", ["擁"]="拥", ["擃"]="𫼮", ["擄"]="掳", ["擇"]="择", ["擊"]="击", ["擋"]="挡", ["擓"]="㧟", ["擔"]="担", ["據"]="据", ["擠"]="挤", ["擡"]="抬", ["擣"]="捣", ["擥"]="㧛", ["擧"]="举", ["擪"]="𰓙", ["擫"]="𢬍", ["擬"]="拟", ["擯"]="摈", ["擰"]="拧", ["擱"]="搁", ["擲"]="掷", ["擳"]="𰓜", ["擴"]="扩", ["擷"]="撷", ["擺"]="摆", ["擻"]="擞", ["擼"]="撸", ["擽"]="㧰", ["擾"]="扰", ["攄"]="摅", ["攆"]="撵", ["攋"]="𪮶", ["攎"]="𢫘", ["攏"]="拢", ["攑"]="𫽥", ["攔"]="拦", ["攖"]="撄", ["攙"]="搀", ["攛"]="撺", ["攜"]="携", ["攝"]="摄", ["攞"]="𫽋", ["攡"]="摛", ["攢"]="攒", ["攣"]="挛", ["攤"]="摊", ["攦"]="𰓬", ["攧"]="𭣇", ["攩"]="挡", ["攪"]="搅", ["攬"]="揽", ["攳"]="𰕁", ["敎"]="教", ["敗"]="败", ["敘"]="叙", ["敭"]="扬", ["敳"]="𮲔", ["敵"]="敌", ["數"]="数", ["敺"]="驱", ["敿"]="𰕈", ["斁"]="𭣧", ["斂"]="敛", ["斃"]="毙", ["斄"]="𭤎", ["斅"]="𢽾", ["斆"]="敩", ["斕"]="斓", ["斬"]="斩", ["斵"]="斫", ["斷"]="断", ["斸"]="𣃁", ["於"]="于", ["旂"]="旗", ["旝"]="𰕭", ["旟"]="𭤰", ["昇"]="升", ["昜"]="𠃓", ["時"]="时", ["晉"]="晋", ["晛"]="𬀪", ["晝"]="昼", ["晻"]="暗", ["暈"]="晕", ["暉"]="晖", ["暊"]="𮲟", ["暎"]="映", ["暐"]="𬀩", ["暘"]="旸", ["暟"]="𬀱", ["暢"]="畅", ["暣"]="𣅠", ["暫"]="暂", ["暱"]="昵", ["曄"]="晔", ["曆"]="历", ["曇"]="昙", ["曉"]="晓", ["曊"]="𪰶", ["曏"]="向", ["曖"]="暧", ["曠"]="旷", ["曥"]="𣆐", ["曨"]="昽", ["曫"]="𬁢", ["曬"]="晒", ["曭"]="𭧋", ["曮"]="𰖈", ["書"]="书", ["會"]="会", ["朢"]="望", ["朥"]="𦛨", ["朧"]="胧", ["朮"]="术", ["東"]="东", ["枒"]="丫", ["柵"]="栅", ["桱"]="𣐕", ["桿"]="杆", ["梔"]="栀", ["梖"]="𪱷", ["梘"]="枧", ["梜"]="𬂩", ["條"]="条", ["梟"]="枭", ["梲"]="棁", ["棄"]="弃", ["棆"]="𰗖", ["棖"]="枨", ["棗"]="枣", ["棟"]="栋", ["棡"]="㭎", ["棧"]="栈", ["棲"]="栖", ["棶"]="梾", ["椉"]="乘", ["椏"]="桠", ["椚"]="𭩛", ["椲"]="㭏", ["椶"]="棕", ["楇"]="𣒌", ["楊"]="杨", ["楎"]="𰗢", ["楓"]="枫", ["楨"]="桢", ["業"]="业", ["極"]="极", ["榝"]="𬂮", ["榦"]="干", ["榪"]="杩", ["榮"]="荣", ["榯"]="𰗨", ["榲"]="榅", ["榿"]="桤", ["構"]="构", ["槍"]="枪", ["槓"]="杠", ["槤"]="梿", ["槧"]="椠", ["槨"]="椁", ["槩"]="概", ["槫"]="𣏢", ["槮"]="椮", ["槳"]="桨", ["槶"]="椢", ["槻"]="𬃀", ["槼"]="规", ["樁"]="桩", ["樂"]="乐", ["樅"]="枞", ["樌"]="𱣱", ["樑"]="梁", ["樓"]="楼", ["標"]="标", ["樞"]="枢", ["樠"]="𣗊", ["樢"]="㭤", ["樣"]="样", ["樤"]="𣔌", ["樫"]="㭴", ["樲"]="𬃘", ["樳"]="桪", ["樴"]="枳", ["樸"]="朴", ["樹"]="树", ["樺"]="桦", ["樻"]="𭫀", ["樿"]="椫", ["橃"]="𭩰", ["橅"]="𬂠", ["橈"]="桡", ["橋"]="桥", ["橒"]="枟", ["橚"]="𰗹", ["機"]="机", ["橢"]="椭", ["橤"]="蕊", ["橨"]="𰗺", ["橫"]="横", ["橯"]="𣓿", ["橺"]="𱣤", ["檁"]="檩", ["檂"]="𬂰", ["檇"]="槜", ["檉"]="柽", ["檋"]="𰘈", ["檏"]="𱣇", ["檒"]="𮨴", ["檔"]="档", ["檛"]="𭪆", ["檜"]="桧", ["檝"]="楫", ["檟"]="槚", ["檡"]="𰗛", ["檢"]="检", ["檣"]="樯", ["檥"]="𭩚", ["檭"]="𣘴", ["檮"]="梼", ["檯"]="台", ["檰"]="𰘣", ["檳"]="槟", ["檷"]="𪱾", ["檸"]="柠", ["檻"]="槛", ["檾"]="𰘓", ["檿"]="𰗜", ["櫂"]="棹", ["櫃"]="柜", ["櫅"]="𪲎", ["櫍"]="𬃊", ["櫎"]="𰗓", ["櫏"]="𰗬", ["櫓"]="橹", ["櫚"]="榈", ["櫛"]="栉", ["櫝"]="椟", ["櫞"]="橼", ["櫟"]="栎", ["櫠"]="𪲮", ["櫢"]="𰘸", ["櫥"]="橱", ["櫧"]="槠", ["櫨"]="栌", ["櫩"]="𰘠", ["櫪"]="枥", ["櫫"]="橥", ["櫬"]="榇", ["櫯"]="𰘶", ["櫱"]="蘖", ["櫳"]="栊", ["櫴"]="𰘳", ["櫸"]="榉", ["櫹"]="𰘩", ["櫺"]="棂", ["櫻"]="樱", ["櫽"]="𬄩", ["欄"]="栏", ["欆"]="𮲮", ["欇"]="𪳍", ["權"]="权", ["欏"]="椤", ["欐"]="𪲔", ["欑"]="𪴙", ["欒"]="栾", ["欓"]="𣗋", ["欖"]="榄", ["欗"]="𬅉", ["欘"]="𣚚", ["欝"]="郁", ["欞"]="棂", ["欵"]="款", ["欽"]="钦", ["歄"]="𬅥", ["歍"]="𰙋", ["歎"]="叹", ["歐"]="欧", ["歕"]="𬅫", ["歗"]="𰙑", ["歛"]="敛", ["歟"]="欤", ["歡"]="欢", ["歲"]="岁", ["歴"]="历", ["歷"]="历", ["歸"]="归", ["歿"]="殁", ["殀"]="夭", ["殘"]="残", ["殞"]="殒", ["殢"]="𣨼", ["殤"]="殇", ["殨"]="㱮", ["殫"]="殚", ["殭"]="僵", ["殮"]="殓", ["殯"]="殡", ["殰"]="㱩", ["殲"]="歼", ["殺"]="杀", ["殻"]="壳", ["殼"]="壳", ["殽"]="淆", ["毀"]="毁", ["毄"]="𬆦", ["毆"]="殴", ["毊"]="𪵑", ["毘"]="毗", ["毬"]="球", ["毿"]="毵", ["氀"]="𰚦", ["氂"]="牦", ["氈"]="毡", ["氌"]="氇", ["氣"]="气", ["氫"]="氢", ["氬"]="氩", ["氭"]="𣱝", ["氳"]="氲", ["汎"]="泛", ["汙"]="污", ["決"]="决", ["沒"]="没", ["沖"]="冲", ["況"]="况", ["泝"]="溯", ["泞"]="𰛑", ["洩"]="泄", ["洶"]="汹", ["浹"]="浃", ["浿"]="𬇙", ["涇"]="泾", ["涷"]="𰛒", ["涼"]="凉", ["淒"]="凄", ["淚"]="泪", ["淥"]="渌", ["淨"]="净", ["淩"]="凌", ["淪"]="沦", ["淵"]="渊", ["淶"]="涞", ["淺"]="浅", ["渙"]="涣", ["減"]="减", ["渢"]="沨", ["渦"]="涡", ["測"]="测", ["渾"]="浑", ["湊"]="凑", ["湋"]="𣲗", ["湞"]="浈", ["湧"]="涌", ["湯"]="汤", ["溈"]="沩", ["準"]="准", ["溝"]="沟", ["溡"]="𪶄", ["溤"]="𰛊", ["溫"]="温", ["溮"]="浉", ["溰"]="𰛥", ["溳"]="涢", ["溼"]="湿", ["滄"]="沧", ["滅"]="灭", ["滌"]="涤", ["滎"]="荥", ["滬"]="沪", ["滭"]="𰛡", ["滯"]="滞", ["滲"]="渗", ["滷"]="卤", ["滸"]="浒", ["滻"]="浐", ["滾"]="滚", ["滿"]="满", ["漁"]="渔", ["漊"]="溇", ["漍"]="𬇹", ["漎"]="𰛏", ["漐"]="𰛣", ["漙"]="𬇘", ["漚"]="沤", ["漢"]="汉", ["漣"]="涟", ["漬"]="渍", ["漲"]="涨", ["漸"]="渐", ["漿"]="浆", ["潁"]="颍", ["潑"]="泼", ["潔"]="洁", ["潕"]="𣲘", ["潙"]="沩", ["潚"]="㴋", ["潛"]="潜", ["潣"]="𫞗", ["潤"]="润", ["潬"]="𬈁", ["潯"]="浔", ["潰"]="溃", ["潷"]="滗", ["潿"]="涠", ["澀"]="涩", ["澅"]="𣶩", ["澆"]="浇", ["澇"]="涝", ["澐"]="沄", ["澒"]="𭱊", ["澕"]="𮳆", ["澖"]="𰛵", ["澗"]="涧", ["澠"]="渑", ["澢"]="𭰎", ["澤"]="泽", ["澦"]="滪", ["澩"]="泶", ["澫"]="𬇕", ["澬"]="𫞚", ["澮"]="浍", ["澰"]="𰛲", ["澱"]="淀", ["澾"]="㳠", ["濁"]="浊", ["濃"]="浓", ["濄"]="㳡", ["濆"]="𣸣", ["濇"]="涩", ["濊"]="𰛦", ["濔"]="沵", ["濕"]="湿", ["濘"]="泞", ["濙"]="𣸨", ["濚"]="溁", ["濛"]="蒙", ["濜"]="浕", ["濟"]="济", ["濤"]="涛", ["濧"]="㳔", ["濫"]="滥", ["濰"]="潍", ["濱"]="滨", ["濴"]="𬈜", ["濺"]="溅", ["濼"]="泺", ["濾"]="滤", ["濿"]="𪵱", ["瀂"]="澛", ["瀃"]="𣽷", ["瀄"]="𰛤", ["瀅"]="滢", ["瀆"]="渎", ["瀇"]="㲿", ["瀈"]="𰝍", ["瀉"]="泻", ["瀋"]="沈", ["瀏"]="浏", ["瀕"]="濒", ["瀘"]="泸", ["瀙"]="𰜜", ["瀝"]="沥", ["瀟"]="潇", ["瀠"]="潆", ["瀢"]="𬉋", ["瀦"]="潴", ["瀧"]="泷", ["瀨"]="濑", ["瀩"]="𬉏", ["瀭"]="𮳗", ["瀯"]="𰝅", ["瀰"]="弥", ["瀲"]="潋", ["瀳"]="𰜨", ["瀴"]="𰜳", ["瀾"]="澜", ["灃"]="沣", ["灄"]="滠", ["灆"]="𱩪", ["灍"]="𫞝", ["灑"]="洒", ["灒"]="𪷽", ["灓"]="𰛪", ["灕"]="漓", ["灘"]="滩", ["灙"]="𣺼", ["灝"]="灏", ["灟"]="𭲫", ["灠"]="𰜐", ["灡"]="𬉠", ["灣"]="湾", ["灤"]="滦", ["灧"]="滟", ["灩"]="滟", ["災"]="灾", ["炤"]="照", ["為"]="为", ["烏"]="乌", ["烖"]="灾", ["烱"]="炯", ["烴"]="烃", ["焛"]="𬮟", ["無"]="无", ["煇"]="辉", ["煈"]="𮳠", ["煉"]="炼", ["煑"]="煮", ["煒"]="炜", ["煖"]="暖", ["煗"]="暖", ["煙"]="烟", ["煢"]="茕", ["煥"]="焕", ["煩"]="烦", ["煬"]="炀", ["煱"]="㶽", ["煼"]="𬊂", ["熂"]="𪸕", ["熅"]="煴", ["熈"]="熙", ["熉"]="𤈶", ["熌"]="𤇄", ["熒"]="荧", ["熕"]="𬊎", ["熗"]="炝", ["熚"]="𤇹", ["熞"]="𰞤", ["熡"]="𤋏", ["熰"]="𬉼", ["熱"]="热", ["熲"]="颎", ["熾"]="炽", ["燀"]="𬊤", ["燁"]="烨", ["燄"]="焰", ["燆"]="𮳧", ["燈"]="灯", ["燉"]="炖", ["燌"]="𰞻", ["燐"]="磷", ["燒"]="烧", ["燖"]="𬊈", ["燘"]="𬊖", ["燙"]="烫", ["燜"]="焖", ["營"]="营", ["燡"]="𰞇", ["燦"]="灿", ["燬"]="毁", ["燭"]="烛", ["燰"]="𬊺", ["燴"]="烩", ["燵"]="𬊉", ["燶"]="㶶", ["燻"]="熏", ["燼"]="烬", ["燽"]="𬊍", ["燾"]="焘", ["燿"]="耀", ["爁"]="𬊶", ["爃"]="𫞡", ["爄"]="𤇃", ["爌"]="𤆓", ["爍"]="烁", ["爏"]="𱪪", ["爐"]="炉", ["爓"]="𰟘", ["爕"]="燮", ["爖"]="𤇭", ["爗"]="烨", ["爛"]="烂", ["爣"]="𬊵", ["爥"]="𪹳", ["爧"]="𫞠", ["爭"]="争", ["爲"]="为", ["爺"]="爷", ["爾"]="尔", ["牆"]="墙", ["牋"]="笺", ["牐"]="闸", ["牓"]="榜", ["牘"]="牍", ["牠"]="它", ["牴"]="抵", ["牼"]="𰠲", ["牽"]="牵", ["犅"]="𰠫", ["犇"]="奔", ["犓"]="𬌝", ["犖"]="荦", ["犛"]="牦", ["犞"]="𪺭", ["犢"]="犊", ["犤"]="𰠹", ["犧"]="牺", ["狀"]="状", ["狹"]="狭", ["狽"]="狈", ["猌"]="𪺽", ["猍"]="𰡎", ["猙"]="狰", ["猧"]="𰡏", ["猶"]="犹", ["猻"]="狲", ["獁"]="犸", ["獄"]="狱", ["獅"]="狮", ["獃"]="呆", ["獊"]="𪺷", ["獎"]="奖", ["獑"]="𰡔", ["獖"]="𰡞", ["獘"]="毙", ["獟"]="𬌮", ["獢"]="𰡊", ["獨"]="独", ["獩"]="𤞃", ["獪"]="狯", ["獫"]="猃", ["獮"]="狝", ["獰"]="狞", ["獱"]="㺍", ["獲"]="获", ["獵"]="猎", ["獷"]="犷", ["獸"]="兽", ["獹"]="𰡄", ["獺"]="獭", ["獻"]="献", ["獼"]="猕", ["玀"]="猡", ["玁"]="𤞤", ["玂"]="𰡩", ["珮"]="佩", ["珼"]="𫞥", ["現"]="现", ["琖"]="盏", ["琜"]="𱮾", ["琱"]="雕", ["琺"]="珐", ["琿"]="珲", ["瑋"]="玮", ["瑍"]="𤥺", ["瑒"]="玚", ["瑣"]="琐", ["瑤"]="瑶", ["瑩"]="莹", ["瑪"]="玛", ["瑯"]="琅", ["瑲"]="玱", ["瑻"]="𪻲", ["瑽"]="𪻐", ["璉"]="琏", ["璊"]="𫞩", ["璍"]="𮴔", ["璕"]="𬍤", ["璗"]="𬍡", ["璛"]="𰢄", ["璝"]="𪻺", ["璡"]="琎", ["璣"]="玑", ["璦"]="瑷", ["璫"]="珰", ["璯"]="㻅", ["環"]="环", ["璵"]="玙", ["璸"]="瑸", ["璹"]="𰡽", ["璼"]="𫞨", ["璽"]="玺", ["璾"]="𫞦", ["璿"]="璇", ["瓄"]="𪻨", ["瓅"]="𬍛", ["瓈"]="璃", ["瓊"]="琼", ["瓏"]="珑", ["瓐"]="𰡵", ["瓓"]="𬎑", ["瓔"]="璎", ["瓕"]="𤦀", ["瓚"]="瓒", ["瓛"]="𤩽", ["甊"]="𰢦", ["甌"]="瓯", ["甎"]="砖", ["甒"]="𰢢", ["甕"]="瓮", ["甖"]="罂", ["產"]="产", ["産"]="产", ["甦"]="苏", ["畝"]="亩", ["畢"]="毕", ["畫"]="画", ["異"]="异", ["當"]="当", ["畼"]="𪽈", ["疇"]="畴", ["疊"]="叠", ["痙"]="痉", ["痮"]="𪽪", ["痲"]="痳", ["痺"]="痹", ["痾"]="疴", ["瘂"]="痖", ["瘉"]="愈", ["瘋"]="疯", ["瘍"]="疡", ["瘑"]="𬏮", ["瘓"]="痪", ["瘞"]="瘗", ["瘡"]="疮", ["瘧"]="疟", ["瘮"]="瘆", ["瘱"]="𪽷", ["瘲"]="疭", ["瘺"]="瘘", ["瘻"]="瘘", ["療"]="疗", ["癆"]="痨", ["癇"]="痫", ["癈"]="废", ["癉"]="瘅", ["癎"]="𰣯", ["癐"]="𤶊", ["癒"]="愈", ["癘"]="疠", ["癟"]="瘪", ["癠"]="𰣬", ["癡"]="痴", ["癢"]="痒", ["癤"]="疖", ["癥"]="症", ["癧"]="疬", ["癩"]="癞", ["癬"]="癣", ["癭"]="瘿", ["癮"]="瘾", ["癰"]="痈", ["癱"]="瘫", ["癲"]="癫", ["癴"]="𰣽", ["發"]="发", ["皁"]="皂", ["皚"]="皑", ["皟"]="𤾀", ["皪"]="𰤕", ["皰"]="疱", ["皸"]="皲", ["皺"]="皱", ["皾"]="𰤬", ["盃"]="杯", ["盋"]="钵", ["盜"]="盗", ["盞"]="盏", ["盡"]="尽", ["監"]="监", ["盤"]="盘", ["盧"]="卢", ["盨"]="𪾔", ["盪"]="荡", ["眝"]="𪾣", ["眞"]="真", ["眡"]="视", ["眥"]="眦", ["眾"]="众", ["睍"]="𪾢", ["睏"]="困", ["睔"]="𬑆", ["睜"]="睁", ["睞"]="睐", ["睪"]="睾", ["睴"]="𬑕", ["瞇"]="眯", ["瞓"]="𰥛", ["瞘"]="眍", ["瞛"]="𰥒", ["瞜"]="䁖", ["瞞"]="瞒", ["瞡"]="𰥪", ["瞤"]="𥆧", ["瞭"]="了", ["瞯"]="𰥨", ["瞱"]="𬑓", ["瞴"]="𱲦", ["瞶"]="瞆", ["瞷"]="𬑗", ["瞼"]="睑", ["矃"]="眝", ["矇"]="蒙", ["矉"]="𪾸", ["矊"]="𬑧", ["矑"]="𪾦", ["矓"]="眬", ["矕"]="𰥠", ["矖"]="𰥢", ["矘"]="𰥹", ["矙"]="瞰", ["矚"]="瞩", ["矯"]="矫", ["矲"]="𰦜", ["砦"]="寨", ["砲"]="炮", ["硃"]="朱", ["硜"]="硁", ["硤"]="硖", ["硨"]="砗", ["硯"]="砚", ["碊"]="𥒎", ["碖"]="𱳯", ["碙"]="𥐻", ["碢"]="𰦿", ["碩"]="硕", ["碪"]="砧", ["碭"]="砀", ["碸"]="砜", ["確"]="确", ["碼"]="码", ["碽"]="䂵", ["磑"]="硙", ["磒"]="𬒍", ["磚"]="砖", ["磟"]="碌", ["磠"]="硵", ["磣"]="碜", ["磧"]="碛", ["磯"]="矶", ["磱"]="𮀤", ["磵"]="𰧃", ["磽"]="硗", ["磾"]="䃅", ["礄"]="硚", ["礆"]="硷", ["礋"]="𰦰", ["礎"]="础", ["礏"]="𬒆", ["礐"]="𬒈", ["礑"]="𱳹", ["礒"]="𥐟", ["礙"]="碍", ["礛"]="𰧔", ["礥"]="𰧇", ["礦"]="矿", ["礩"]="𰧉", ["礪"]="砺", ["礫"]="砾", ["礬"]="矾", ["礮"]="炮", ["礰"]="𰦦", ["礱"]="砻", ["礲"]="𰦭", ["礹"]="𰦾", ["祕"]="秘", ["祿"]="禄", ["禍"]="祸", ["禎"]="祯", ["禓"]="𰧰", ["禕"]="祎", ["禜"]="𰱈", ["禡"]="祃", ["禦"]="御", ["禨"]="𥘌", ["禪"]="禅", ["禬"]="𰧻", ["禮"]="礼", ["禰"]="祢", ["禱"]="祷", ["禵"]="𰨖", ["禿"]="秃", ["秈"]="籼", ["秌"]="秋", ["稅"]="税", ["稈"]="秆", ["稏"]="䅉", ["稜"]="棱", ["稟"]="禀", ["稦"]="𮵠", ["稭"]="秸", ["種"]="种", ["稱"]="称", ["穀"]="谷", ["穅"]="糠", ["穇"]="䅟", ["穌"]="稣", ["積"]="积", ["穎"]="颖", ["穖"]="𬓠", ["穠"]="秾", ["穡"]="穑", ["穢"]="秽", ["穧"]="𰨦", ["穨"]="颓", ["穩"]="稳", ["穫"]="获", ["穬"]="𰨜", ["穭"]="稆", ["穽"]="阱", ["窓"]="窗", ["窩"]="窝", ["窪"]="洼", ["窮"]="穷", ["窯"]="窑", ["窰"]="窑", ["窱"]="𰩏", ["窵"]="窎", ["窶"]="窭", ["窺"]="窥", ["窻"]="窗", ["竀"]="𰩓", ["竄"]="窜", ["竅"]="窍", ["竇"]="窦", ["竈"]="灶", ["竉"]="𰩅", ["竊"]="窃", ["竢"]="俟", ["竪"]="竖", ["竱"]="𫁟", ["競"]="竞", ["筆"]="笔", ["筍"]="笋", ["筧"]="笕", ["筩"]="筒", ["筯"]="箸", ["筴"]="策", ["箂"]="𮵱", ["箇"]="个", ["箋"]="笺", ["箏"]="筝", ["箒"]="帚", ["箠"]="棰", ["箹"]="𰩺", ["節"]="节", ["範"]="范", ["築"]="筑", ["篋"]="箧", ["篔"]="筼", ["篘"]="𥬠", ["篛"]="箬", ["篠"]="筱", ["篢"]="𬕂", ["篤"]="笃", ["篩"]="筛", ["篳"]="筚", ["篸"]="𥮾", ["篿"]="𰩮", ["簀"]="箦", ["簂"]="𫂆", ["簍"]="篓", ["簑"]="蓑", ["簒"]="篡", ["簜"]="𰩹", ["簞"]="箪", ["簡"]="简", ["簢"]="𫂃", ["簣"]="篑", ["簥"]="𰩸", ["簩"]="𱸇", ["簫"]="箫", ["簵"]="𰪏", ["簷"]="檐", ["簹"]="筜", ["簻"]="𰩻", ["簽"]="签", ["簾"]="帘", ["籃"]="篮", ["籅"]="𥫣", ["籋"]="𥬞", ["籌"]="筹", ["籐"]="藤", ["籑"]="馔", ["籔"]="䉤", ["籙"]="箓", ["籚"]="𰩲", ["籛"]="篯", ["籜"]="箨", ["籟"]="籁", ["籠"]="笼", ["籣"]="𮆏", ["籤"]="签", ["籩"]="笾", ["籪"]="簖", ["籫"]="𬖃", ["籬"]="篱", ["籭"]="𬕄", ["籮"]="箩", ["籯"]="𰪣", ["籲"]="吁", ["粃"]="秕", ["粦"]="磷", ["粧"]="妆", ["粯"]="𬖑", ["粵"]="粤", ["粺"]="稗", ["粻"]="𰪭", ["糉"]="粽", ["糝"]="糁", ["糞"]="粪", ["糧"]="粮", ["糮"]="𬖮", ["糰"]="团", ["糲"]="粝", ["糴"]="籴", ["糶"]="粜", ["糷"]="𰫖", ["糹"]="纟", ["糺"]="纠", ["糽"]="𰫼", ["糾"]="纠", ["紀"]="纪", ["紁"]="𮵿", ["紂"]="纣", ["紃"]="𬘓", ["約"]="约", ["紅"]="红", ["紆"]="纡", ["紇"]="纥", ["紈"]="纨", ["紉"]="纫", ["紋"]="纹", ["紌"]="𬘕", ["納"]="纳", ["紐"]="纽", ["紑"]="𰫽", ["紒"]="𰬀", ["紓"]="纾", ["純"]="纯", ["紕"]="纰", ["紖"]="纼", ["紗"]="纱", ["紘"]="纮", ["紙"]="纸", ["級"]="级", ["紛"]="纷", ["紜"]="纭", ["紝"]="纴", ["紞"]="𬘘", ["紟"]="𫄛", ["紡"]="纺", ["紨"]="𰬅", ["紩"]="𮉢", ["紬"]="绸", ["紭"]="𰬋", ["紮"]="扎", ["細"]="细", ["紱"]="绂", ["紲"]="绁", ["紳"]="绅", ["紵"]="纻", ["紶"]="𬘛", ["紸"]="𰬇", ["紹"]="绍", ["紺"]="绀", ["紼"]="绋", ["紽"]="𰬉", ["紾"]="𬘝", ["紿"]="绐", ["絀"]="绌", ["絁"]="𫄟", ["終"]="终", ["絃"]="弦", ["組"]="组", ["絅"]="䌹", ["絆"]="绊", ["絇"]="𰬆", ["絍"]="𫟃", ["絎"]="绗", ["絏"]="绁", ["結"]="结", ["絑"]="𰬏", ["絓"]="𮉤", ["絕"]="绝", ["絖"]="𬘢", ["絘"]="𰬒", ["絙"]="𫄠", ["絚"]="𰬌", ["絛"]="绦", ["絝"]="绔", ["絞"]="绞", ["絟"]="𬘥", ["絠"]="𬘠", ["絡"]="络", ["絢"]="绚", ["絣"]="𰬔", ["絤"]="𬘟", ["絥"]="𫄢", ["給"]="给", ["絧"]="𫄡", ["絨"]="绒", ["絪"]="𬘡", ["絯"]="𰬓", ["絰"]="绖", ["統"]="统", ["絲"]="丝", ["絳"]="绛", ["絶"]="绝", ["絸"]="𬘖", ["絹"]="绢", ["絺"]="𫄨", ["絻"]="𰬜", ["絼"]="𰬛", ["絽"]="𬘤", ["絾"]="𰬖", ["絿"]="𰬗", ["綀"]="𦈌", ["綁"]="绑", ["綃"]="绡", ["綄"]="𬘫", ["綅"]="𰬞", ["綆"]="绠", ["綈"]="绨", ["綉"]="绣", ["綊"]="𰬍", ["綋"]="𫟄", ["綌"]="绤", ["綍"]="𰬘", ["綎"]="𬘩", ["綏"]="绥", ["綐"]="䌼", ["綑"]="捆", ["經"]="经", ["綕"]="𬘨", ["綖"]="𫄧", ["綘"]="𮶂", ["綜"]="综", ["綝"]="𬘭", ["綞"]="缍", ["綟"]="𫄫", ["綠"]="绿", ["綡"]="𫟅", ["綢"]="绸", ["綣"]="绻", ["綧"]="𬘯", ["綪"]="𬘬", ["綫"]="线", ["綬"]="绶", ["維"]="维", ["綯"]="绹", ["綰"]="绾", ["綱"]="纲", ["網"]="网", ["綳"]="绷", ["綴"]="缀", ["綵"]="彩", ["綷"]="𮉬", ["綸"]="纶", ["綹"]="绺", ["綺"]="绮", ["綻"]="绽", ["綼"]="𰬤", ["綽"]="绰", ["綾"]="绫", ["綿"]="绵", ["緀"]="𰬢", ["緁"]="𰬡", ["緂"]="𰬧", ["緄"]="绲", ["緅"]="𮉪", ["緆"]="𰬣", ["緇"]="缁", ["緉"]="𮉧", ["緊"]="紧", ["緋"]="绯", ["緌"]="𮉫", ["緍"]="𦈏", ["緎"]="𰬟", ["総"]="𰬥", ["緐"]="繁", ["緑"]="绿", ["緒"]="绪", ["緓"]="绬", ["緔"]="绱", ["緗"]="缃", ["緘"]="缄", ["緙"]="缂", ["線"]="线", ["緛"]="𬘰", ["緜"]="绵", ["緝"]="缉", ["緞"]="缎", ["緟"]="𫟆", ["締"]="缔", ["緡"]="缗", ["緢"]="𰬬", ["緣"]="缘", ["緤"]="𫄬", ["緥"]="褓", ["緦"]="缌", ["緧"]="𬘶", ["編"]="编", ["緩"]="缓", ["緬"]="缅", ["緮"]="𫄭", ["緯"]="纬", ["緰"]="𦈕", ["緱"]="缑", ["緲"]="缈", ["練"]="练", ["緵"]="𰬯", ["緶"]="缏", ["緷"]="𦈉", ["緸"]="𦈑", ["緹"]="缇", ["緺"]="𮉨", ["緻"]="致", ["緼"]="缊", ["緾"]="𱺦", ["縆"]="𬘵", ["縈"]="萦", ["縉"]="缙", ["縊"]="缢", ["縋"]="缒", ["縌"]="𰬳", ["縍"]="𫄰", ["縎"]="𦈔", ["縐"]="绉", ["縑"]="缣", ["縒"]="𬘷", ["縓"]="𰬲", ["縕"]="缊", ["縖"]="𬘻", ["縗"]="缞", ["縚"]="绦", ["縛"]="缚", ["縜"]="𰬚", ["縝"]="缜", ["縞"]="缟", ["縟"]="缛", ["縡"]="𰬴", ["縣"]="县", ["縧"]="绦", ["縩"]="𮉯", ["縪"]="𰬎", ["縫"]="缝", ["縬"]="𦈚", ["縭"]="缡", ["縮"]="缩", ["縯"]="𬙂", ["縰"]="𫄳", ["縱"]="纵", ["縲"]="缧", ["縳"]="䌸", ["縴"]="纤", ["縵"]="缦", ["縶"]="絷", ["縷"]="缕", ["縸"]="𫄲", ["縹"]="缥", ["縺"]="𦈐", ["縼"]="𰬵", ["總"]="总", ["績"]="绩", ["縿"]="𰬪", ["繀"]="𮉮", ["繂"]="𫄴", ["繃"]="绷", ["繅"]="缫", ["繆"]="缪", ["繈"]="襁", ["繎"]="𬙇", ["繏"]="𦈝", ["繐"]="𰬸", ["繑"]="𰬐", ["繒"]="缯", ["繓"]="𦈛", ["織"]="织", ["繕"]="缮", ["繖"]="伞", ["繗"]="𬙈", ["繘"]="𰬻", ["繙"]="𬙆", ["繚"]="缭", ["繜"]="𰬺", ["繞"]="绕", ["繟"]="𦈎", ["繡"]="绣", ["繢"]="缋", ["繣"]="𰬠", ["繦"]="襁", ["繧"]="纭", ["繨"]="𫄤", ["繩"]="绳", ["繪"]="绘", ["繫"]="系", ["繬"]="𫄱", ["繭"]="茧", ["繮"]="缰", ["繯"]="缳", ["繰"]="缲", ["繲"]="𰬽", ["繳"]="缴", ["繵"]="𬙉", ["繶"]="𫄷", ["繷"]="𫄣", ["繸"]="䍁", ["繹"]="绎", ["繻"]="𦈡", ["繼"]="继", ["繽"]="缤", ["繾"]="缱", ["繿"]="䍀", ["纀"]="𰬿", ["纁"]="𫄸", ["纆"]="𬙊", ["纇"]="颣", ["纈"]="缬", ["纊"]="纩", ["纋"]="𰭀", ["續"]="续", ["纍"]="累", ["纏"]="缠", ["纑"]="𮉡", ["纓"]="缨", ["纔"]="才", ["纕"]="𬙋", ["纖"]="纤", ["纗"]="𫄹", ["纘"]="缵", ["纚"]="𫄥", ["纜"]="缆", ["缽"]="钵", ["缾"]="瓶", ["罃"]="䓨", ["罆"]="𰭄", ["罇"]="樽", ["罈"]="坛", ["罌"]="罂", ["罎"]="坛", ["罏"]="𬙎", ["罰"]="罚", ["罵"]="骂", ["罷"]="罢", ["罼"]="𬙝", ["羂"]="𰭔", ["羅"]="罗", ["羆"]="罴", ["羈"]="羁", ["羋"]="芈", ["羗"]="羌", ["羜"]="𬙯", ["羥"]="羟", ["羨"]="羡", ["義"]="义", ["羵"]="𫅗", ["翄"]="翅", ["習"]="习", ["翜"]="𰭢", ["翫"]="玩", ["翬"]="翚", ["翸"]="𱻞", ["翹"]="翘", ["翺"]="翱", ["翽"]="翙", ["翿"]="𰭣", ["耡"]="锄", ["耫"]="𱻴", ["耬"]="耧", ["耮"]="耢", ["聖"]="圣", ["聞"]="闻", ["聯"]="联", ["聰"]="聪", ["聲"]="声", ["聳"]="耸", ["聵"]="聩", ["聶"]="聂", ["職"]="职", ["聹"]="聍", ["聻"]="𫆏", ["聽"]="听", ["聾"]="聋", ["肅"]="肃", ["肧"]="胚", ["脃"]="脆", ["脅"]="胁", ["脇"]="胁", ["脈"]="脉", ["脗"]="吻", ["脛"]="胫", ["脣"]="唇", ["脥"]="𣍰", ["脫"]="脱", ["脹"]="胀", ["腎"]="肾", ["腖"]="胨", ["腡"]="脶", ["腦"]="脑", ["腪"]="𣍯", ["腫"]="肿", ["腳"]="脚", ["腸"]="肠", ["膃"]="腽", ["膋"]="䒿", ["膒"]="𬁵", ["膓"]="肠", ["膕"]="腘", ["膚"]="肤", ["膞"]="䏝", ["膠"]="胶", ["膢"]="𦝼", ["膩"]="腻", ["膭"]="𱼏", ["膮"]="𰮝", ["膱"]="胑", ["膴"]="𰮇", ["膶"]="𬂀", ["膷"]="𰮅", ["膹"]="𪱥", ["膽"]="胆", ["膾"]="脍", ["膿"]="脓", ["臈"]="腊", ["臉"]="脸", ["臍"]="脐", ["臏"]="膑", ["臓"]="脏", ["臕"]="膘", ["臗"]="𣎑", ["臘"]="腊", ["臙"]="胭", ["臚"]="胪", ["臝"]="裸", ["臟"]="脏", ["臠"]="脔", ["臡"]="𰯋", ["臢"]="臜", ["臥"]="卧", ["臨"]="临", ["臺"]="台", ["與"]="与", ["興"]="兴", ["舉"]="举", ["舊"]="旧", ["舖"]="铺", ["舩"]="船", ["艙"]="舱", ["艛"]="𰰑", ["艜"]="𰰏", ["艢"]="樯", ["艣"]="橹", ["艤"]="舣", ["艦"]="舰", ["艫"]="舻", ["艭"]="𰰋", ["艱"]="艰", ["艷"]="艳", ["芻"]="刍", ["苧"]="苎", ["茘"]="荔", ["茲"]="兹", ["荊"]="荆", ["荍"]="荞", ["荳"]="豆", ["莊"]="庄", ["莖"]="茎", ["莢"]="荚", ["莧"]="苋", ["菓"]="果", ["菕"]="𰰨", ["菣"]="𬜤", ["菫"]="堇", ["華"]="华", ["菴"]="庵", ["菸"]="烟", ["萇"]="苌", ["萊"]="莱", ["萬"]="万", ["萯"]="𰰷", ["萲"]="萱", ["萴"]="荝", ["萵"]="莴", ["葉"]="叶", ["葒"]="荭", ["葝"]="𫈎", ["葠"]="参", ["葤"]="荮", ["葦"]="苇", ["葯"]="药", ["葷"]="荤", ["葻"]="𬜥", ["蒍"]="𫇭", ["蒒"]="𰰳", ["蒓"]="莼", ["蒔"]="莳", ["蒕"]="蒀", ["蒞"]="莅", ["蒭"]="𫇴", ["蒳"]="𰱌", ["蒶"]="𰱍", ["蒼"]="苍", ["蓀"]="荪", ["蓆"]="席", ["蓋"]="盖", ["蓡"]="参", ["蓧"]="𦰏", ["蓮"]="莲", ["蓯"]="苁", ["蓲"]="𰰤", ["蓳"]="堇", ["蓴"]="莼", ["蓻"]="𱽜", ["蓽"]="荜", ["蔄"]="𬜬", ["蔆"]="菱", ["蔎"]="𰰺", ["蔔"]="卜", ["蔕"]="蒂", ["蔘"]="𦲞", ["蔞"]="蒌", ["蔠"]="𰱛", ["蔣"]="蒋", ["蔥"]="葱", ["蔦"]="茑", ["蔪"]="𰱑", ["蔭"]="荫", ["蔮"]="𬜿", ["蔯"]="𫈟", ["蔱"]="𰰵", ["蔴"]="麻", ["蔾"]="藜", ["蔿"]="𫇭", ["蕁"]="荨", ["蕄"]="𰱉", ["蕆"]="蒇", ["蕋"]="蕊", ["蕎"]="荞", ["蕑"]="𰱇", ["蕒"]="荬", ["蕓"]="芸", ["蕕"]="莸", ["蕘"]="荛", ["蕚"]="萼", ["蕝"]="𫈵", ["蕟"]="𬜧", ["蕡"]="𰱟", ["蕢"]="蒉", ["蕩"]="荡", ["蕪"]="芜", ["蕭"]="萧", ["蕳"]="𫈉", ["蕷"]="蓣", ["薀"]="蕰", ["薆"]="𫉁", ["薈"]="荟", ["薉"]="𬜨", ["薊"]="蓟", ["薋"]="𰱱", ["薌"]="芗", ["薑"]="姜", ["薔"]="蔷", ["薖"]="𰰾", ["薘"]="荙", ["薙"]="剃", ["薟"]="莶", ["薠"]="𮐚", ["薦"]="荐", ["薩"]="萨", ["薱"]="𰰱", ["薲"]="𬝯", ["薴"]="苧", ["薵"]="䓓", ["薺"]="荠", ["薾"]="𦬼", ["藇"]="𰰠", ["藉"]="借", ["藍"]="蓝", ["藎"]="荩", ["藖"]="𬜾", ["藘"]="𰱮", ["藚"]="𰱐", ["藝"]="艺", ["藣"]="𰱯", ["藥"]="药", ["藪"]="薮", ["藬"]="𬞘", ["藭"]="䓖", ["藰"]="𰰹", ["藴"]="蕴", ["藶"]="苈", ["藷"]="薯", ["藹"]="蔼", ["藺"]="蔺", ["藼"]="萱", ["藾"]="𰱾", ["蘀"]="萚", ["蘂"]="蕊", ["蘄"]="蕲", ["蘆"]="芦", ["蘇"]="苏", ["蘈"]="𰲁", ["蘊"]="蕴", ["蘋"]="苹", ["蘐"]="萱", ["蘓"]="苏", ["蘚"]="藓", ["蘞"]="蔹", ["蘟"]="𦻕", ["蘡"]="𮐨", ["蘢"]="茏", ["蘤"]="花", ["蘫"]="𬞫", ["蘬"]="𰰮", ["蘭"]="兰", ["蘱"]="𰲒", ["蘴"]="䒠", ["蘵"]="𰱲", ["蘺"]="蓠", ["蘿"]="萝", ["虅"]="𰲂", ["虉"]="𬟁", ["處"]="处", ["虖"]="呼", ["虛"]="虚", ["虜"]="虏", ["號"]="号", ["虦"]="𰲠", ["虧"]="亏", ["虯"]="虬", ["蛵"]="𰲶", ["蛺"]="蛱", ["蛻"]="蜕", ["蛼"]="𰲬", ["蜆"]="蚬", ["蜦"]="𰲰", ["蜸"]="𰲮", ["蜽"]="𮔊", ["蝀"]="𬟽", ["蝁"]="𰲸", ["蝕"]="蚀", ["蝜"]="𮔅", ["蝟"]="猬", ["蝡"]="蠕", ["蝦"]="虾", ["蝨"]="虱", ["蝱"]="虻", ["蝸"]="蜗", ["螄"]="蛳", ["螘"]="𰲹", ["螞"]="蚂", ["螢"]="萤", ["螮"]="䗖", ["螴"]="𰳄", ["螹"]="𰳂", ["螻"]="蝼", ["螿"]="螀", ["蟂"]="𫋇", ["蟄"]="蛰", ["蟈"]="蝈", ["蟎"]="螨", ["蟘"]="𫋌", ["蟙"]="𧊄", ["蟜"]="𫊸", ["蟡"]="𰲲", ["蟣"]="虮", ["蟦"]="𰳊", ["蟧"]="𮔚", ["蟬"]="蝉", ["蟯"]="蛲", ["蟲"]="虫", ["蟳"]="𫊻", ["蟶"]="蛏", ["蟷"]="𬠅", ["蟻"]="蚁", ["蠀"]="𧏗", ["蠁"]="蚃", ["蠅"]="蝇", ["蠆"]="虿", ["蠈"]="𬠠", ["蠌"]="𰲵", ["蠍"]="蝎", ["蠏"]="蟹", ["蠐"]="蛴", ["蠑"]="蝾", ["蠔"]="蚝", ["蠙"]="𧏖", ["蠟"]="蜡", ["蠣"]="蛎", ["蠦"]="𫊮", ["蠨"]="蟏", ["蠪"]="𰲴", ["蠭"]="蜂", ["蠱"]="蛊", ["蠳"]="𰳗", ["蠶"]="蚕", ["蠻"]="蛮", ["蠾"]="𧑏", ["衂"]="衄", ["衆"]="众", ["衊"]="蔑", ["術"]="术", ["衕"]="同", ["衚"]="胡", ["衛"]="卫", ["衞"]="卫", ["衝"]="冲", ["衹"]="只", ["袞"]="衮", ["袵"]="衽", ["裊"]="袅", ["裌"]="夹", ["裏"]="里", ["補"]="补", ["裝"]="装", ["裡"]="里", ["裲"]="𮖁", ["製"]="制", ["複"]="复", ["褌"]="裈", ["褘"]="袆", ["褭"]="袅", ["褲"]="裤", ["褳"]="裢", ["褸"]="褛", ["褺"]="𬡓", ["褻"]="亵", ["襀"]="𫌀", ["襂"]="𰴂", ["襆"]="幞", ["襇"]="裥", ["襌"]="褝", ["襏"]="袯", ["襓"]="𫋹", ["襖"]="袄", ["襗"]="𫋷", ["襘"]="𫋻", ["襛"]="𰳺", ["襝"]="裣", ["襠"]="裆", ["襤"]="褴", ["襪"]="袜", ["襬"]="摆", ["襭"]="𮖱", ["襯"]="衬", ["襰"]="𧝝", ["襱"]="𰳲", ["襲"]="袭", ["襴"]="襕", ["襵"]="𫌇", ["襸"]="𬡷", ["襹"]="𰳼", ["襼"]="𰳵", ["覇"]="霸", ["見"]="见", ["覎"]="觃", ["規"]="规", ["覒"]="𬆾", ["覓"]="觅", ["覔"]="觅", ["覕"]="𰴕", ["視"]="视", ["覗"]="𬢊", ["覘"]="觇", ["覙"]="𫌨", ["覚"]="觉", ["覛"]="𫌪", ["覜"]="眺", ["覟"]="𬢌", ["覠"]="𰴙", ["覡"]="觋", ["覢"]="𬊦", ["覤"]="𬟪", ["覥"]="觍", ["覦"]="觎", ["覩"]="睹", ["親"]="亲", ["覫"]="𲁙", ["覬"]="觊", ["覭"]="𬢒", ["覮"]="𲁖", ["覯"]="觏", ["覰"]="𰴜", ["覲"]="觐", ["覴"]="𬢔", ["覶"]="𰴝", ["覷"]="觑", ["覸"]="𰴘", ["覹"]="𫌭", ["覺"]="觉", ["覻"]="𰴞", ["覼"]="𫌨", ["覽"]="览", ["覿"]="觌", ["觀"]="观", ["觔"]="斤", ["觕"]="粗", ["觝"]="抵", ["觴"]="觞", ["觶"]="觯", ["觷"]="𰴣", ["觸"]="触", ["觻"]="𰴢", ["訁"]="讠", ["訂"]="订", ["訃"]="讣", ["訆"]="𰵊", ["計"]="计", ["訉"]="𲂂", ["訊"]="讯", ["訌"]="讧", ["訍"]="𲂃", ["討"]="讨", ["訏"]="𬣙", ["訐"]="讦", ["訑"]="𫍙", ["訒"]="讱", ["訓"]="训", ["訕"]="讪", ["訖"]="讫", ["託"]="托", ["記"]="记", ["訛"]="讹", ["訜"]="𫍛", ["訝"]="讶", ["訞"]="𫍚", ["訟"]="讼", ["訢"]="䜣", ["訣"]="诀", ["訥"]="讷", ["訦"]="𰵒", ["訧"]="𰵎", ["訨"]="𫟞", ["訩"]="讻", ["訪"]="访", ["訬"]="𰵏", ["設"]="设", ["訰"]="𰵍", ["許"]="许", ["訴"]="诉", ["訶"]="诃", ["訸"]="𰵝", ["訹"]="𰵓", ["診"]="诊", ["註"]="注", ["訽"]="𰵛", ["詀"]="𧮪", ["詁"]="诂", ["詃"]="𬣤", ["詄"]="𰵙", ["詅"]="𰵚", ["詆"]="诋", ["詇"]="𰵗", ["詉"]="𰵠", ["詊"]="𫟟", ["詌"]="𬣠", ["詍"]="𰵔", ["詎"]="讵", ["詏"]="𬣦", ["詐"]="诈", ["詑"]="𫍡", ["詒"]="诒", ["詓"]="𫍜", ["詔"]="诏", ["評"]="评", ["詖"]="诐", ["詗"]="诇", ["詘"]="诎", ["詛"]="诅", ["詜"]="𬣥", ["詝"]="𬣞", ["詞"]="词", ["詠"]="咏", ["詡"]="诩", ["詢"]="询", ["詣"]="诣", ["詥"]="𰵣", ["試"]="试", ["詨"]="𰵦", ["詩"]="诗", ["詪"]="𬣳", ["詫"]="诧", ["詬"]="诟", ["詭"]="诡", ["詮"]="诠", ["詯"]="𬣰", ["詰"]="诘", ["話"]="话", ["該"]="该", ["詳"]="详", ["詴"]="𬣩", ["詵"]="诜", ["詶"]="酬", ["詷"]="𫍣", ["詺"]="𬣮", ["詻"]="𰵤", ["詼"]="诙", ["詿"]="诖", ["誁"]="𬣲", ["誂"]="𫍥", ["誃"]="𰵥", ["誄"]="诔", ["誅"]="诛", ["誆"]="诓", ["誇"]="夸", ["誋"]="𫍪", ["誌"]="志", ["認"]="认", ["誎"]="𬣷", ["誏"]="𬣼", ["誐"]="𰵮", ["誑"]="诳", ["誒"]="诶", ["誔"]="𬣻", ["誕"]="诞", ["誗"]="𰵭", ["誘"]="诱", ["誙"]="𰵡", ["誚"]="诮", ["誜"]="𰵯", ["語"]="语", ["誠"]="诚", ["誡"]="诫", ["誣"]="诬", ["誤"]="误", ["誥"]="诰", ["誦"]="诵", ["誧"]="𰵩", ["誨"]="诲", ["誩"]="𲂍", ["說"]="说", ["誫"]="𫍨", ["説"]="说", ["誰"]="谁", ["課"]="课", ["誳"]="𫍮", ["誴"]="𫟡", ["誶"]="谇", ["誷"]="𫍬", ["誹"]="诽", ["誺"]="𫍧", ["誻"]="𰵸", ["誼"]="谊", ["誽"]="𰵵", ["誾"]="訚", ["調"]="调", ["諁"]="𰵷", ["諂"]="谄", ["諃"]="𰵱", ["諄"]="谆", ["諆"]="𰵲", ["談"]="谈", ["諈"]="𰵶", ["諉"]="诿", ["請"]="请", ["諌"]="𮷅", ["諍"]="诤", ["諎"]="𬣾", ["諏"]="诹", ["諑"]="诼", ["諒"]="谅", ["諓"]="𬣡", ["諔"]="𰵴", ["諕"]="𬤀", ["論"]="论", ["諗"]="谂", ["諘"]="𲂏", ["諛"]="谀", ["諜"]="谍", ["諝"]="谞", ["諞"]="谝", ["諟"]="𬤊", ["諠"]="喧", ["諡"]="谥", ["諢"]="诨", ["諣"]="𫍩", ["諤"]="谔", ["諥"]="𫍳", ["諦"]="谛", ["諧"]="谐", ["諫"]="谏", ["諭"]="谕", ["諮"]="谘", ["諯"]="𫍱", ["諰"]="𫍰", ["諱"]="讳", ["諲"]="𬤇", ["諳"]="谙", ["諴"]="𫍯", ["諵"]="𲂐", ["諶"]="谌", ["諷"]="讽", ["諸"]="诸", ["諹"]="𰵌", ["諺"]="谚", ["諻"]="𬤍", ["諼"]="谖", ["諾"]="诺", ["謀"]="谋", ["謁"]="谒", ["謂"]="谓", ["謄"]="誊", ["謅"]="诌", ["謆"]="𫍸", ["謉"]="𫍷", ["謊"]="谎", ["謋"]="𰵼", ["謌"]="歌", ["謍"]="𰴯", ["謎"]="谜", ["謏"]="𫍲", ["謐"]="谧", ["謑"]="𰵾", ["謔"]="谑", ["謖"]="谡", ["謗"]="谤", ["謙"]="谦", ["謚"]="谥", ["講"]="讲", ["謜"]="𰵺", ["謝"]="谢", ["謞"]="𰵿", ["謟"]="𰵽", ["謠"]="谣", ["謡"]="谣", ["謣"]="𰶀", ["謥"]="𰶂", ["謨"]="谟", ["謫"]="谪", ["謬"]="谬", ["謭"]="谫", ["謯"]="𫍹", ["謰"]="𬣽", ["謱"]="𫍴", ["謲"]="𬤄", ["謳"]="讴", ["謵"]="𰶃", ["謶"]="𲂔", ["謸"]="𫍵", ["謹"]="谨", ["謻"]="𰶁", ["謼"]="呼", ["謾"]="谩", ["譀"]="𰶆", ["譁"]="哗", ["譂"]="𫟠", ["譄"]="𬤤", ["譅"]="𰶎", ["譆"]="嘻", ["譇"]="𰶄", ["譈"]="𬤣", ["證"]="证", ["譊"]="𫍢", ["譌"]="𰵑", ["譎"]="谲", ["譏"]="讥", ["譐"]="𬤢", ["譑"]="𫍤", ["譒"]="𮷊", ["譓"]="𬤝", ["譔"]="撰", ["譖"]="谮", ["識"]="识", ["譙"]="谯", ["譚"]="谭", ["譜"]="谱", ["譞"]="𫍽", ["譟"]="噪", ["譠"]="𰶉", ["譡"]="𬣭", ["譢"]="𲂖", ["譧"]="𲂕", ["譨"]="𫍦", ["譩"]="𰶊", ["譫"]="谵", ["譭"]="毁", ["譯"]="译", ["議"]="议", ["譳"]="𰶌", ["譴"]="谴", ["護"]="护", ["譸"]="诪", ["譹"]="𬤫", ["譺"]="𬤩", ["譻"]="𬢯", ["譼"]="䛓", ["譽"]="誉", ["譾"]="谫", ["譿"]="𬤭", ["讀"]="读", ["讁"]="谪", ["讂"]="𰶍", ["讅"]="谉", ["讆"]="𬣀", ["讇"]="𬤛", ["讉"]="𬤦", ["變"]="变", ["讋"]="詟", ["讌"]="宴", ["讎"]="雠", ["讑"]="𰶏", ["讒"]="谗", ["讓"]="让", ["讔"]="𮙊", ["讕"]="谰", ["讖"]="谶", ["讘"]="𰵹", ["讙"]="欢", ["讚"]="赞", ["讛"]="𰵖", ["讜"]="谠", ["讝"]="𰵨", ["讞"]="谳", ["讟"]="𮙋", ["豄"]="𰶔", ["豅"]="𰶑", ["豈"]="岂", ["豎"]="竖", ["豐"]="丰", ["豔"]="艳", ["豬"]="猪", ["豵"]="𫎆", ["豶"]="豮", ["貍"]="狸", ["貓"]="猫", ["貗"]="𫎌", ["貙"]="䝙", ["貛"]="獾", ["貝"]="贝", ["貞"]="贞", ["貟"]="贠", ["負"]="负", ["財"]="财", ["貢"]="贡", ["貣"]="𰷞", ["貤"]="𰷠", ["貦"]="𰷡", ["貧"]="贫", ["貨"]="货", ["販"]="贩", ["貪"]="贪", ["貫"]="贯", ["責"]="责", ["貯"]="贮", ["貰"]="贳", ["貱"]="𬥶", ["貲"]="赀", ["貳"]="贰", ["貴"]="贵", ["貶"]="贬", ["買"]="买", ["貸"]="贷", ["貺"]="贶", ["費"]="费", ["貼"]="贴", ["貽"]="贻", ["貾"]="𰷢", ["貿"]="贸", ["賀"]="贺", ["賁"]="贲", ["賂"]="赂", ["賃"]="赁", ["賄"]="贿", ["賅"]="赅", ["資"]="资", ["賈"]="贾", ["賊"]="贼", ["賍"]="赃", ["賏"]="𲂻", ["賑"]="赈", ["賒"]="赊", ["賓"]="宾", ["賕"]="赇", ["賗"]="𬥸", ["賙"]="赒", ["賚"]="赉", ["賛"]="赞", ["賜"]="赐", ["賝"]="𫎩", ["賞"]="赏", ["賟"]="𧹖", ["賠"]="赔", ["賡"]="赓", ["賢"]="贤", ["賣"]="卖", ["賤"]="贱", ["賥"]="𰷤", ["賦"]="赋", ["賧"]="赕", ["賨"]="𰷥", ["質"]="质", ["賫"]="赍", ["賬"]="账", ["賭"]="赌", ["賮"]="𰷧", ["賰"]="䞐", ["賲"]="𲃄", ["賴"]="赖", ["賵"]="赗", ["賷"]="赍", ["賸"]="剩", ["賹"]="𰷪", ["賺"]="赚", ["賻"]="赙", ["購"]="购", ["賽"]="赛", ["賾"]="赜", ["贃"]="𧹗", ["贄"]="贽", ["贅"]="赘", ["贆"]="𰷫", ["贇"]="赟", ["贈"]="赠", ["贉"]="𫎫", ["贊"]="赞", ["贋"]="赝", ["贍"]="赡", ["贏"]="赢", ["贐"]="赆", ["贑"]="赣", ["贓"]="赃", ["贔"]="赑", ["贕"]="𫧿", ["贖"]="赎", ["贗"]="赝", ["贙"]="𰷮", ["贚"]="𫎦", ["贛"]="赣", ["贜"]="赃", ["赬"]="赪", ["趕"]="赶", ["趙"]="赵", ["趨"]="趋", ["趫"]="𰷶", ["趬"]="𰷵", ["趰"]="趂", ["趲"]="趱", ["跡"]="迹", ["踁"]="胫", ["踐"]="践", ["踚"]="𬦧", ["踰"]="逾", ["踴"]="踊", ["踼"]="𰸄", ["蹌"]="跄", ["蹏"]="蹄", ["蹔"]="暂", ["蹕"]="跸", ["蹛"]="𰸚", ["蹟"]="迹", ["蹡"]="𬧀", ["蹣"]="蹒", ["蹤"]="踪", ["蹥"]="𰸔", ["蹪"]="𰸞", ["蹳"]="𫏆", ["蹺"]="跷", ["蹻"]="跷", ["躀"]="𬦻", ["躂"]="跶", ["躉"]="趸", ["躊"]="踌", ["躋"]="跻", ["躍"]="跃", ["躎"]="䟢", ["躑"]="踯", ["躒"]="跞", ["躓"]="踬", ["躕"]="蹰", ["躘"]="𨀁", ["躚"]="跹", ["躝"]="𨅬", ["躡"]="蹑", ["躥"]="蹿", ["躦"]="躜", ["躧"]="𰸐", ["躪"]="躏", ["躭"]="耽", ["躳"]="躬", ["躶"]="裸", ["躼"]="𲄚", ["軀"]="躯", ["軁"]="𲄧", ["軂"]="𬧤", ["軃"]="𰹀", ["軇"]="𮜶", ["車"]="车", ["軋"]="轧", ["軌"]="轨", ["軍"]="军", ["軎"]="𰹲", ["軏"]="𫐄", ["軑"]="轪", ["軒"]="轩", ["軓"]="𰹴", ["軔"]="轫", ["軖"]="𰹶", ["軗"]="𨐅", ["軘"]="𰹸", ["軚"]="𮷗", ["軛"]="轭", ["軜"]="𫐇", ["軝"]="𬨂", ["軞"]="𬨁", ["軟"]="软", ["軤"]="轷", ["軥"]="𰺁", ["軧"]="𰺀", ["軨"]="𫐉", ["軫"]="轸", ["軬"]="𫐊", ["軮"]="𬨄", ["軯"]="𰹽", ["軱"]="𮝴", ["軲"]="轱", ["軳"]="𰺂", ["軵"]="𰹿", ["軷"]="𫐈", ["軸"]="轴", ["軹"]="轵", ["軺"]="轺", ["軻"]="轲", ["軼"]="轶", ["軾"]="轼", ["軿"]="𫐌", ["輀"]="𮝵", ["輁"]="𰺄", ["輂"]="𰺅", ["較"]="较", ["輄"]="𨐈", ["輅"]="辂", ["輆"]="𬨇", ["輇"]="辁", ["輈"]="辀", ["載"]="载", ["輊"]="轾", ["輋"]="𪨶", ["輐"]="𰺇", ["輑"]="𰺈", ["輒"]="辄", ["輓"]="挽", ["輔"]="辅", ["輕"]="轻", ["輖"]="𫐏", ["輗"]="𫐐", ["輘"]="𰺊", ["輙"]="辄", ["輚"]="𰹼", ["輛"]="辆", ["輜"]="辎", ["輝"]="辉", ["輞"]="辋", ["輟"]="辍", ["輠"]="𰺍", ["輡"]="𰺐", ["輢"]="𫐎", ["輣"]="𰺏", ["輤"]="𰺉", ["輥"]="辊", ["輦"]="辇", ["輨"]="𫐑", ["輩"]="辈", ["輪"]="轮", ["輫"]="𰺎", ["輬"]="辌", ["輭"]="软", ["輮"]="𫐓", ["輯"]="辑", ["輲"]="𰺒", ["輳"]="辏", ["輴"]="𮝸", ["輵"]="𬨍", ["輶"]="𬨎", ["輷"]="𫐒", ["輸"]="输", ["輹"]="𰺓", ["輻"]="辐", ["輼"]="辒", ["輾"]="辗", ["輿"]="舆", ["轀"]="辒", ["轁"]="𮷝", ["轂"]="毂", ["轃"]="𰺖", ["轄"]="辖", ["轅"]="辕", ["轆"]="辘", ["轇"]="𫐖", ["轈"]="𬨓", ["轉"]="转", ["轊"]="𫐕", ["轍"]="辙", ["轎"]="轿", ["轏"]="𰺞", ["轐"]="𫐗", ["轑"]="𰺛", ["轒"]="𮝷", ["轓"]="𰺜", ["轔"]="辚", ["轕"]="𮝺", ["轖"]="𰺙", ["轗"]="𫐘", ["轘"]="𮝹", ["轙"]="𰹵", ["轚"]="𰺟", ["轛"]="𰺃", ["轞"]="𰺗", ["轟"]="轰", ["轠"]="𫐙", ["轡"]="辔", ["轢"]="轹", ["轣"]="𫐆", ["轤"]="轳", ["轥"]="𰺣", ["辦"]="办", ["辭"]="辞", ["辮"]="辫", ["辯"]="辩", ["農"]="农", ["辳"]="农", ["迴"]="回", ["迻"]="移", ["逈"]="迥", ["逕"]="迳", ["這"]="这", ["連"]="连", ["逩"]="奔", ["週"]="周", ["進"]="进", ["逿"]="𰺲", ["遉"]="侦", ["遊"]="游", ["運"]="运", ["過"]="过", ["達"]="达", ["違"]="违", ["遙"]="遥", ["遜"]="逊", ["遞"]="递", ["遠"]="远", ["遡"]="溯", ["遤"]="𲅎", ["適"]="适", ["遯"]="遁", ["遰"]="𰻆", ["遱"]="𫐷", ["遲"]="迟", ["遶"]="绕", ["遷"]="迁", ["選"]="选", ["遺"]="遗", ["遼"]="辽", ["邁"]="迈", ["還"]="还", ["邇"]="迩", ["邊"]="边", ["邏"]="逻", ["邐"]="逦", ["郟"]="郏", ["郲"]="𬩾", ["郵"]="邮", ["鄆"]="郓", ["鄉"]="乡", ["鄒"]="邹", ["鄔"]="邬", ["鄖"]="郧", ["鄟"]="𫑘", ["鄡"]="𰻮", ["鄦"]="𰻡", ["鄧"]="邓", ["鄩"]="𬩽", ["鄪"]="𰻳", ["鄬"]="𰻦", ["鄭"]="郑", ["鄮"]="𬪍", ["鄰"]="邻", ["鄲"]="郸", ["鄳"]="𫑡", ["鄴"]="邺", ["鄶"]="郐", ["鄺"]="邝", ["酇"]="酂", ["酈"]="郦", ["酖"]="鸩", ["酧"]="酬", ["醃"]="腌", ["醆"]="盏", ["醖"]="酝", ["醜"]="丑", ["醞"]="酝", ["醟"]="蒏", ["醣"]="糖", ["醦"]="𮠳", ["醧"]="𬪧", ["醫"]="医", ["醬"]="酱", ["醱"]="酦", ["醲"]="𬪩", ["醳"]="𰼅", ["醶"]="𫑷", ["醻"]="酬", ["醼"]="宴", ["釀"]="酿", ["釁"]="衅", ["釃"]="酾", ["釅"]="酽", ["釋"]="释", ["釒"]="钅", ["釓"]="钆", ["釔"]="钇", ["釕"]="钌", ["釗"]="钊", ["釘"]="钉", ["釙"]="钋", ["釚"]="𫟲", ["針"]="针", ["釟"]="𫓥", ["釣"]="钓", ["釤"]="钐", ["釥"]="𰽛", ["釦"]="扣", ["釧"]="钏", ["釨"]="𫓦", ["釩"]="钒", ["釪"]="𰽗", ["釫"]="𬬨", ["釬"]="焊", ["釭"]="𮣲", ["釮"]="𲇭", ["釰"]="𲇰", ["釱"]="𰽘", ["釲"]="𫟳", ["釳"]="𨰿", ["釴"]="𬬩", ["釵"]="钗", ["釷"]="钍", ["釹"]="钕", ["釺"]="钎", ["釽"]="𬬲", ["釾"]="䥺", ["釿"]="𬬱", ["鈀"]="钯", ["鈁"]="钫", ["鈂"]="𬬵", ["鈃"]="钘", ["鈄"]="钭", ["鈅"]="钥", ["鈆"]="铅", ["鈇"]="𫓧", ["鈈"]="钚", ["鈉"]="钠", ["鈊"]="𲇴", ["鈋"]="𨱂", ["鈌"]="𰽤", ["鈍"]="钝", ["鈎"]="钩", ["鈏"]="𰽣", ["鈐"]="钤", ["鈑"]="钣", ["鈒"]="钑", ["鈓"]="𬬯", ["鈔"]="钞", ["鈕"]="钮", ["鈖"]="𫟴", ["鈗"]="𫟵", ["鈘"]="𲇱", ["鈚"]="𬬫", ["鈜"]="𮣳", ["鈞"]="钧", ["鈠"]="𨱁", ["鈡"]="钟", ["鈣"]="钙", ["鈤"]="𰽡", ["鈥"]="钬", ["鈦"]="钛", ["鈧"]="钪", ["鈨"]="𮷸", ["鈪"]="𰽞", ["鈮"]="铌", ["鈯"]="𨱄", ["鈰"]="铈", ["鈱"]="𲇸", ["鈲"]="𨱃", ["鈳"]="钶", ["鈴"]="铃", ["鈵"]="𰽥", ["鈶"]="𬭀", ["鈷"]="钴", ["鈸"]="钹", ["鈹"]="铍", ["鈺"]="钰", ["鈼"]="𬬽", ["鈽"]="钸", ["鈾"]="铀", ["鈿"]="钿", ["鉀"]="钾", ["鉁"]="𨱅", ["鉅"]="巨", ["鉆"]="钻", ["鉈"]="铊", ["鉉"]="铉", ["鉊"]="𬬿", ["鉋"]="刨", ["鉌"]="𰽬", ["鉍"]="铋", ["鉎"]="𰽫", ["鉏"]="锄", ["鉐"]="𬬷", ["鉑"]="铂", ["鉒"]="𰽯", ["鉔"]="𫓬", ["鉕"]="钷", ["鉗"]="钳", ["鉘"]="𰽱", ["鉚"]="铆", ["鉛"]="铅", ["鉜"]="𰽮", ["鉝"]="𫟷", ["鉞"]="钺", ["鉟"]="𰽧", ["鉠"]="𫓭", ["鉡"]="𰽰", ["鉢"]="钵", ["鉤"]="钩", ["鉥"]="𬬸", ["鉦"]="钲", ["鉧"]="𬭁", ["鉨"]="鿭", ["鉬"]="钼", ["鉭"]="钽", ["鉮"]="𬬹", ["鉲"]="𰽩", ["鉵"]="𰽶", ["鉶"]="铏", ["鉷"]="𫟹", ["鉸"]="铰", ["鉹"]="𰽹", ["鉺"]="铒", ["鉻"]="铬", ["鉼"]="𰽼", ["鉽"]="𫟸", ["鉾"]="𫓴", ["鉿"]="铪", ["銀"]="银", ["銁"]="𫓲", ["銂"]="𫟻", ["銃"]="铳", ["銅"]="铜", ["銈"]="𫓯", ["銊"]="𫓰", ["銋"]="𰽻", ["銌"]="𲇻", ["銍"]="铚", ["銏"]="𫟶", ["銑"]="铣", ["銓"]="铨", ["銔"]="𬭃", ["銖"]="铢", ["銗"]="𬭅", ["銘"]="铭", ["銙"]="𰽴", ["銚"]="铫", ["銛"]="铦", ["銜"]="衔", ["銠"]="铑", ["銡"]="𰽲", ["銣"]="铷", ["銥"]="铱", ["銦"]="铟", ["銧"]="𰽵", ["銨"]="铵", ["銩"]="铥", ["銪"]="铕", ["銫"]="铯", ["銬"]="铐", ["銱"]="铞", ["銲"]="焊", ["銳"]="锐", ["銶"]="𨱇", ["銷"]="销", ["銸"]="𰽿", ["銹"]="锈", ["銻"]="锑", ["銼"]="锉", ["銾"]="𰾁", ["鋁"]="铝", ["鋂"]="𰾄", ["鋃"]="锒", ["鋅"]="锌", ["鋇"]="钡", ["鋉"]="𨱈", ["鋊"]="𰾆", ["鋋"]="𮣴", ["鋌"]="铤", ["鋍"]="𰾀", ["鋏"]="铗", ["鋐"]="𬭎", ["鋑"]="𮸏", ["鋒"]="锋", ["鋓"]="𮸊", ["鋕"]="𲇽", ["鋗"]="𫓶", ["鋘"]="𬭌", ["鋙"]="铻", ["鋜"]="𰾃", ["鋝"]="锊", ["鋟"]="锓", ["鋠"]="𫓵", ["鋡"]="𰾅", ["鋣"]="铘", ["鋤"]="锄", ["鋥"]="锃", ["鋦"]="锔", ["鋧"]="𰽢", ["鋨"]="锇", ["鋩"]="铓", ["鋪"]="铺", ["鋭"]="锐", ["鋮"]="铖", ["鋯"]="锆", ["鋰"]="锂", ["鋱"]="铽", ["鋲"]="𲇿", ["鋶"]="锍", ["鋸"]="锯", ["鋹"]="𬬮", ["鋼"]="钢", ["鋾"]="𰾏", ["鋿"]="𲈆", ["錀"]="𬬭", ["錁"]="锞", ["錂"]="𨱋", ["錄"]="录", ["錆"]="锖", ["錇"]="锫", ["錈"]="锩", ["錋"]="𬭖", ["錍"]="𰾎", ["錏"]="铔", ["錐"]="锥", ["錑"]="𬭜", ["錒"]="锕", ["錔"]="𰾓", ["錕"]="锟", ["錗"]="𬭗", ["錘"]="锤", ["錙"]="锱", ["錚"]="铮", ["錛"]="锛", ["錜"]="𫓻", ["錝"]="𫓽", ["錞"]="𬭚", ["錟"]="锬", ["錠"]="锭", ["錡"]="锜", ["錢"]="钱", ["錣"]="𮣵", ["錤"]="𫓹", ["錥"]="𫓾", ["錦"]="锦", ["錧"]="𰾒", ["錨"]="锚", ["錩"]="锠", ["錪"]="𬭓", ["錫"]="锡", ["錬"]="𲇷", ["錭"]="𬭕", ["錮"]="锢", ["錯"]="错", ["録"]="录", ["錳"]="锰", ["錴"]="𲈁", ["錶"]="表", ["錸"]="铼", ["錺"]="𮸐", ["錽"]="𫓸", ["鍀"]="锝", ["鍁"]="锨", ["鍂"]="𰾑", ["鍃"]="锪", ["鍄"]="𨱉", ["鍆"]="钔", ["鍇"]="锴", ["鍈"]="锳", ["鍉"]="𫔂", ["鍊"]="炼", ["鍋"]="锅", ["鍍"]="镀", ["鍏"]="𬬬", ["鍐"]="𰾞", ["鍑"]="𰾟", ["鍒"]="𫔄", ["鍔"]="锷", ["鍕"]="𮸈", ["鍖"]="𰾘", ["鍘"]="铡", ["鍚"]="钖", ["鍛"]="锻", ["鍜"]="𰾤", ["鍝"]="𰾙", ["鍟"]="𰾝", ["鍠"]="锽", ["鍡"]="𰾚", ["鍢"]="𮸕", ["鍣"]="𬭡", ["鍤"]="锸", ["鍥"]="锲", ["鍦"]="𰾢", ["鍧"]="𰾡", ["鍨"]="𰾥", ["鍩"]="锘", ["鍫"]="锹", ["鍬"]="锹", ["鍭"]="𬭤", ["鍮"]="𨱎", ["鍰"]="锾", ["鍱"]="𰾕", ["鍳"]="鉴", ["鍴"]="𰾜", ["鍵"]="键", ["鍶"]="锶", ["鍷"]="𲈌", ["鍸"]="𲈋", ["鍹"]="𲈎", ["鍺"]="锗", ["鍼"]="针", ["鍾"]="钟", ["鎁"]="𲈍", ["鎂"]="镁", ["鎄"]="锿", ["鎅"]="𰾛", ["鎇"]="镅", ["鎈"]="𫟿", ["鎉"]="𰾬", ["鎊"]="镑", ["鎋"]="𬭪", ["鎌"]="镰", ["鎍"]="𫔅", ["鎑"]="𰾩", ["鎒"]="𬭦", ["鎓"]="𬭩", ["鎔"]="镕", ["鎕"]="𰾯", ["鎖"]="锁", ["鎗"]="枪", ["鎘"]="镉", ["鎙"]="𫔈", ["鎚"]="锤", ["鎛"]="镈", ["鎝"]="𨱏", ["鎞"]="𫔇", ["鎡"]="镃", ["鎢"]="钨", ["鎣"]="蓥", ["鎤"]="𲈒", ["鎦"]="镏", ["鎧"]="铠", ["鎩"]="铩", ["鎪"]="锼", ["鎬"]="镐", ["鎭"]="镇", ["鎮"]="镇", ["鎯"]="𨱍", ["鎰"]="镒", ["鎲"]="镋", ["鎳"]="镍", ["鎵"]="镓", ["鎶"]="鿔", ["鎷"]="𨰾", ["鎸"]="镌", ["鎻"]="锁", ["鎿"]="镎", ["鏁"]="𬭲", ["鏂"]="𰽜", ["鏃"]="镞", ["鏄"]="𲇲", ["鏆"]="𨱌", ["鏇"]="旋", ["鏈"]="链", ["鏉"]="𨱒", ["鏋"]="𬭮", ["鏌"]="镆", ["鏍"]="镙", ["鏏"]="𬭬", ["鏐"]="镠", ["鏑"]="镝", ["鏒"]="𬭝", ["鏓"]="𰾱", ["鏔"]="𬭰", ["鏕"]="𰾲", ["鏗"]="铿", ["鏘"]="锵", ["鏙"]="𰾰", ["鏚"]="𬭭", ["鏛"]="𮸟", ["鏜"]="镗", ["鏝"]="镘", ["鏞"]="镛", ["鏟"]="铲", ["鏡"]="镜", ["鏢"]="镖", ["鏤"]="镂", ["鏦"]="𫓩", ["鏨"]="錾", ["鏩"]="𰾌", ["鏰"]="镚", ["鏱"]="𲈗", ["鏳"]="𲈜", ["鏴"]="𲈝", ["鏵"]="铧", ["鏷"]="镤", ["鏸"]="𰾶", ["鏹"]="镪", ["鏺"]="䥽", ["鏻"]="𬭸", ["鏽"]="锈", ["鏾"]="𫔌", ["鐀"]="𬭢", ["鐁"]="𰾴", ["鐃"]="铙", ["鐄"]="𨱑", ["鐇"]="𫔍", ["鐈"]="𫓱", ["鐉"]="𰾼", ["鐋"]="铴", ["鐍"]="𫔎", ["鐎"]="𨱓", ["鐏"]="𨱔", ["鐐"]="镣", ["鐒"]="铹", ["鐓"]="镦", ["鐔"]="镡", ["鐕"]="𰾷", ["鐖"]="𰽕", ["鐘"]="钟", ["鐙"]="镫", ["鐛"]="𲈚", ["鐝"]="镢", ["鐠"]="镨", ["鐤"]="𰾸", ["鐥"]="䦅", ["鐦"]="锎", ["鐧"]="锏", ["鐨"]="镄", ["鐩"]="𬭼", ["鐪"]="𫓺", ["鐫"]="镌", ["鐬"]="𰽷", ["鐮"]="镰", ["鐯"]="䦃", ["鐰"]="𲈞", ["鐱"]="𲈀", ["鐲"]="镯", ["鐳"]="镭", ["鐴"]="𬭽", ["鐵"]="铁", ["鐶"]="镮", ["鐸"]="铎", ["鐹"]="𰽾", ["鐺"]="铛", ["鐻"]="𮣷", ["鐼"]="𫔁", ["鐽"]="𫟼", ["鐿"]="镱", ["鑀"]="𰾭", ["鑄"]="铸", ["鑇"]="𬭉", ["鑈"]="鿭", ["鑉"]="𫠁", ["鑊"]="镬", ["鑋"]="𰼻", ["鑌"]="镔", ["鑍"]="𲇑", ["鑏"]="𬬾", ["鑐"]="𰿂", ["鑑"]="鉴", ["鑒"]="鉴", ["鑔"]="镲", ["鑕"]="锧", ["鑖"]="𰿃", ["鑘"]="𰿄", ["鑛"]="矿", ["鑞"]="镴", ["鑠"]="铄", ["鑡"]="𬭔", ["鑢"]="𮣶", ["鑣"]="镳", ["鑤"]="刨", ["鑥"]="镥", ["鑧"]="𮸠", ["鑨"]="𰽦", ["鑪"]="𬬻", ["鑭"]="镧", ["鑮"]="𬮁", ["鑯"]="𰿈", ["鑰"]="钥", ["鑱"]="镵", ["鑲"]="镶", ["鑴"]="𫔔", ["鑵"]="罐", ["鑷"]="镊", ["鑸"]="𰿉", ["鑹"]="镩", ["鑼"]="锣", ["鑽"]="钻", ["鑾"]="銮", ["鑿"]="凿", ["钀"]="𰾾", ["钁"]="䦆", ["钂"]="镋", ["钃"]="𰾽", ["長"]="长", ["門"]="门", ["閂"]="闩", ["閃"]="闪", ["閅"]="𮤫", ["閆"]="闫", ["閈"]="闬", ["閉"]="闭", ["開"]="开", ["閌"]="闶", ["閍"]="𨸂", ["閎"]="闳", ["閏"]="闰", ["閐"]="𨸃", ["閑"]="闲", ["閒"]="闲", ["間"]="间", ["閔"]="闵", ["閕"]="𰿩", ["閖"]="𲈵", ["閗"]="𫔯", ["閘"]="闸", ["閙"]="闹", ["閛"]="𰿬", ["閜"]="𬮠", ["閝"]="𫠂", ["閞"]="𫔰", ["閟"]="𮤲", ["閡"]="阂", ["閣"]="阁", ["閤"]="合", ["閥"]="阀", ["閦"]="𬮥", ["閧"]="哄", ["閨"]="闺", ["閩"]="闽", ["閪"]="𲈹", ["閫"]="阃", ["閬"]="阆", ["閭"]="闾", ["閱"]="阅", ["閲"]="阅", ["閵"]="𫔴", ["閶"]="阊", ["閷"]="𰿳", ["閹"]="阉", ["閻"]="阎", ["閼"]="阏", ["閽"]="阍", ["閾"]="阈", ["閿"]="阌", ["闀"]="𲉁", ["闃"]="阒", ["闄"]="𬮲", ["闆"]="板", ["闇"]="暗", ["闈"]="闱", ["闉"]="𬮱", ["闊"]="阔", ["闋"]="阕", ["闌"]="阑", ["闍"]="阇", ["闐"]="阗", ["闑"]="𫔶", ["闒"]="阘", ["闓"]="闿", ["闔"]="阖", ["闕"]="阙", ["闖"]="闯", ["闚"]="窥", ["闛"]="𰿺", ["關"]="关", ["闞"]="阚", ["闟"]="𰿻", ["闠"]="阓", ["闡"]="阐", ["闢"]="辟", ["闤"]="阛", ["闥"]="闼", ["阬"]="坑", ["陘"]="陉", ["陝"]="陕", ["陞"]="升", ["陣"]="阵", ["陯"]="𲉉", ["陰"]="阴", ["陳"]="陈", ["陸"]="陆", ["陻"]="堙", ["陽"]="阳", ["隉"]="陧", ["隊"]="队", ["階"]="阶", ["隑"]="𬮿", ["隕"]="陨", ["隖"]="坞", ["際"]="际", ["隣"]="邻", ["隤"]="𬯎", ["隨"]="随", ["險"]="险", ["隫"]="𱀡", ["隮"]="𬯀", ["隯"]="陦", ["隱"]="隐", ["隴"]="陇", ["隷"]="隶", ["隸"]="隶", ["隻"]="只", ["雋"]="隽", ["雖"]="虽", ["雙"]="双", ["雛"]="雏", ["雜"]="杂", ["雝"]="雍", ["雞"]="鸡", ["離"]="离", ["難"]="难", ["雰"]="氛", ["雲"]="云", ["電"]="电", ["霑"]="沾", ["霢"]="霡", ["霣"]="𫕥", ["霧"]="雾", ["霼"]="𪵣", ["霽"]="霁", ["靂"]="雳", ["靄"]="霭", ["靅"]="𰷦", ["靆"]="叇", ["靈"]="灵", ["靉"]="叆", ["靚"]="靓", ["靜"]="静", ["靝"]="靔", ["靦"]="䩄", ["靧"]="𫖃", ["靨"]="靥", ["靭"]="韧", ["鞀"]="鼗", ["鞏"]="巩", ["鞝"]="绱", ["鞦"]="秋", ["鞸"]="𱁴", ["鞻"]="𱁺", ["鞼"]="𱁹", ["鞽"]="鞒", ["鞾"]="靴", ["鞿"]="𩉜", ["韁"]="缰", ["韃"]="鞑", ["韆"]="千", ["韇"]="𱁷", ["韈"]="袜", ["韉"]="鞯", ["韊"]="𱁾", ["韋"]="韦", ["韌"]="韧", ["韍"]="韨", ["韏"]="𱂇", ["韐"]="𱂆", ["韒"]="𱂉", ["韓"]="韩", ["韔"]="𮧴", ["韗"]="𱂈", ["韘"]="𱂊", ["韙"]="韪", ["韚"]="𫠅", ["韛"]="𫖔", ["韜"]="韬", ["韝"]="𫖕", ["韞"]="韫", ["韠"]="𫖒", ["韡"]="𮧵", ["韢"]="𬰶", ["韣"]="𱂋", ["韮"]="韭", ["韻"]="韵", ["響"]="响", ["頁"]="页", ["頂"]="顶", ["頃"]="顷", ["頄"]="𬱓", ["項"]="项", ["順"]="顺", ["頇"]="顸", ["須"]="须", ["頊"]="顼", ["頌"]="颂", ["頍"]="𫠆", ["頎"]="颀", ["頏"]="颃", ["預"]="预", ["頑"]="顽", ["頒"]="颁", ["頓"]="顿", ["頔"]="𬱖", ["頕"]="𬱗", ["頖"]="𬱙", ["頗"]="颇", ["領"]="领", ["頙"]="𲊺", ["頛"]="𬱜", ["頜"]="颌", ["頞"]="𱂨", ["頟"]="额", ["頠"]="𬱟", ["頡"]="颉", ["頢"]="𬱠", ["頤"]="颐", ["頦"]="颏", ["頩"]="𱂦", ["頪"]="𱂧", ["頫"]="𫖯", ["頭"]="头", ["頮"]="颒", ["頯"]="𱂬", ["頰"]="颊", ["頲"]="颋", ["頳"]="𲊼", ["頴"]="颖", ["頵"]="𫖳", ["頷"]="颔", ["頸"]="颈", ["頹"]="颓", ["頻"]="频", ["頽"]="颓", ["顀"]="𱂭", ["顁"]="𬱫", ["顃"]="𩖖", ["顄"]="𱂰", ["顅"]="𫖶", ["顆"]="颗", ["顇"]="悴", ["顉"]="𰽳", ["顊"]="𬱪", ["顋"]="腮", ["題"]="题", ["額"]="额", ["顎"]="颚", ["顏"]="颜", ["顐"]="𬱢", ["顑"]="𱂱", ["顒"]="颙", ["顓"]="颛", ["顔"]="颜", ["顖"]="𱂶", ["顗"]="𫖮", ["願"]="愿", ["顙"]="颡", ["顛"]="颠", ["顜"]="𱂴", ["顝"]="𱂵", ["類"]="类", ["顠"]="𱂺", ["顢"]="颟", ["顣"]="𫖹", ["顤"]="𱂣", ["顥"]="颢", ["顦"]="憔", ["顧"]="顾", ["顩"]="𱂫", ["顪"]="𱂤", ["顫"]="颤", ["顬"]="颥", ["顮"]="𱂸", ["顯"]="显", ["顰"]="颦", ["顱"]="颅", ["顳"]="颞", ["顴"]="颧", ["風"]="风", ["颩"]="𱃔", ["颬"]="𱃕", ["颭"]="飐", ["颮"]="飑", ["颯"]="飒", ["颰"]="𩙥", ["颱"]="台", ["颲"]="𱃘", ["颳"]="刮", ["颴"]="𬱽", ["颶"]="飓", ["颷"]="𩙪", ["颸"]="飔", ["颹"]="𬱵", ["颺"]="飏", ["颻"]="飖", ["颼"]="飕", ["颽"]="𬱼", ["颾"]="𩙫", ["颿"]="帆", ["飀"]="飗", ["飁"]="𱃟", ["飂"]="𮨵", ["飃"]="飘", ["飄"]="飘", ["飆"]="飙", ["飇"]="𱃠", ["飈"]="飚", ["飉"]="𬲅", ["飊"]="𮸼", ["飋"]="𫗋", ["飍"]="𱃝", ["飛"]="飞", ["飠"]="饣", ["飢"]="饥", ["飣"]="饤", ["飥"]="饦", ["飦"]="𫗞", ["飩"]="饨", ["飪"]="饪", ["飫"]="饫", ["飭"]="饬", ["飯"]="饭", ["飱"]="飧", ["飲"]="饮", ["飴"]="饴", ["飵"]="𫗢", ["飶"]="𫗣", ["飷"]="𬲭", ["飼"]="饲", ["飽"]="饱", ["飾"]="饰", ["飿"]="饳", ["餀"]="𮩜", ["餂"]="𱃺", ["餃"]="饺", ["餄"]="饸", ["餅"]="饼", ["餈"]="糍", ["餉"]="饷", ["養"]="养", ["餌"]="饵", ["餎"]="饹", ["餏"]="饻", ["餑"]="饽", ["餒"]="馁", ["餓"]="饿", ["餔"]="𫗦", ["餕"]="馂", ["餖"]="饾", ["餗"]="𫗧", ["餘"]="余", ["餚"]="肴", ["餛"]="馄", ["餜"]="馃", ["餞"]="饯", ["餟"]="𬳂", ["餡"]="馅", ["餣"]="𬲼", ["餤"]="𱃿", ["餦"]="𫗠", ["餧"]="喂", ["館"]="馆", ["餩"]="𱃽", ["餪"]="𫗬", ["餫"]="𫗥", ["餬"]="糊", ["餭"]="𫗮", ["餯"]="𱄄", ["餰"]="𬳆", ["餱"]="糇", ["餲"]="𮩝", ["餳"]="饧", ["餴"]="𱃼", ["餵"]="喂", ["餶"]="馉", ["餷"]="馇", ["餸"]="𩠌", ["餹"]="糖", ["餺"]="馎", ["餻"]="糕", ["餼"]="饩", ["餽"]="馈", ["餾"]="馏", ["餿"]="馊", ["饀"]="𬳊", ["饁"]="馌", ["饃"]="馍", ["饅"]="馒", ["饆"]="𮩛", ["饇"]="𱃲", ["饈"]="馐", ["饉"]="馑", ["饊"]="馓", ["饋"]="馈", ["饌"]="馔", ["饍"]="膳", ["饎"]="𱄆", ["饐"]="𮩞", ["饑"]="饥", ["饒"]="饶", ["饗"]="飨", ["饘"]="𫗴", ["饙"]="𱄀", ["饛"]="𱄈", ["饜"]="餍", ["饝"]="馍", ["饞"]="馋", ["饟"]="饷", ["饠"]="𫗩", ["饡"]="𱄊", ["饢"]="馕", ["馩"]="𬳟", ["馪"]="𮹀", ["馬"]="马", ["馭"]="驭", ["馮"]="冯", ["馯"]="𫘛", ["馱"]="驮", ["馲"]="𱄽", ["馳"]="驰", ["馴"]="驯", ["馵"]="𱄼", ["馹"]="驲", ["馺"]="𱅂", ["馼"]="𫘜", ["馽"]="𱅁", ["駁"]="驳", ["駂"]="𱅀", ["駃"]="𫘝", ["駉"]="𬳶", ["駊"]="𫘟", ["駍"]="𬳴", ["駎"]="𩧨", ["駏"]="𱅃", ["駐"]="驻", ["駑"]="驽", ["駒"]="驹", ["駓"]="𬳵", ["駔"]="驵", ["駕"]="驾", ["駖"]="𲌅", ["駗"]="𱅇", ["駘"]="骀", ["駙"]="驸", ["駚"]="𩧫", ["駛"]="驶", ["駜"]="𱅈", ["駝"]="驼", ["駞"]="驼", ["駟"]="驷", ["駡"]="骂", ["駢"]="骈", ["駣"]="𱅏", ["駤"]="𫘠", ["駥"]="𱅉", ["駦"]="𱅑", ["駧"]="𩧲", ["駩"]="𩧴", ["駪"]="𬳽", ["駫"]="𫘡", ["駬"]="𱅋", ["駭"]="骇", ["駮"]="驳", ["駰"]="骃", ["駱"]="骆", ["駴"]="𮪢", ["駶"]="𩧺", ["駷"]="𱅔", ["駸"]="骎", ["駹"]="𮪡", ["駺"]="𬴀", ["駻"]="𫘣", ["駼"]="𬳿", ["駽"]="𱅖", ["駾"]="𱅙", ["駿"]="骏", ["騀"]="𱅗", ["騁"]="骋", ["騂"]="骍", ["騃"]="𫘤", ["騄"]="𫘧", ["騅"]="骓", ["騆"]="𮹋", ["騇"]="𱅚", ["騉"]="𫘥", ["騊"]="𫘦", ["騋"]="𱅕", ["騌"]="鬃", ["騍"]="骒", ["騎"]="骑", ["騏"]="骐", ["騐"]="验", ["騑"]="𬴂", ["騔"]="𩨀", ["騕"]="𱅜", ["騖"]="骛", ["騗"]="𱅝", ["騙"]="骗", ["騚"]="𩨊", ["騜"]="𫘩", ["騝"]="𩨃", ["騞"]="𬴃", ["騟"]="𩨈", ["騠"]="𫘨", ["騢"]="𱅞", ["騣"]="鬃", ["騤"]="骙", ["騥"]="𱅟", ["騧"]="䯄", ["騩"]="𱅡", ["騪"]="𩨄", ["騫"]="骞", ["騬"]="𱅢", ["騭"]="骘", ["騮"]="骝", ["騯"]="𬴅", ["騰"]="腾", ["騱"]="𫘬", ["騲"]="𮪤", ["騳"]="𱄿", ["騴"]="𫘫", ["騵"]="𫘪", ["騶"]="驺", ["騷"]="骚", ["騸"]="骟", ["騹"]="𬴆", ["騺"]="𱅊", ["騻"]="𫘭", ["騼"]="𫠋", ["騽"]="𱅩", ["騾"]="骡", ["驀"]="蓦", ["驁"]="骜", ["驂"]="骖", ["驃"]="骠", ["驄"]="骢", ["驅"]="驱", ["驈"]="𱅫", ["驉"]="𱅧", ["驊"]="骅", ["驋"]="𩧯", ["驌"]="骕", ["驍"]="骁", ["驎"]="𬴊", ["驏"]="骣", ["驐"]="𮪥", ["驒"]="𱅛", ["驓"]="𫘯", ["驔"]="𱅪", ["驕"]="骄", ["驖"]="𬴋", ["驗"]="验", ["驘"]="骡", ["驙"]="𫘰", ["驚"]="惊", ["驛"]="驿", ["驞"]="𱅤", ["驟"]="骤", ["驠"]="𱅬", ["驡"]="𱅅", ["驢"]="驴", ["驤"]="骧", ["驥"]="骥", ["驦"]="骦", ["驨"]="𫘱", ["驩"]="欢", ["驪"]="骊", ["驫"]="骉", ["骯"]="肮", ["骽"]="腿", ["骾"]="鲠", ["髈"]="膀", ["髏"]="髅", ["髐"]="𱅮", ["髒"]="脏", ["體"]="体", ["髕"]="髌", ["髖"]="髋", ["髪"]="发", ["髮"]="发", ["鬆"]="松", ["鬉"]="鬃", ["鬍"]="胡", ["鬖"]="𩭹", ["鬗"]="𱆆", ["鬚"]="须", ["鬜"]="𱆁", ["鬞"]="𬴩", ["鬠"]="𫘽", ["鬡"]="𮫂", ["鬢"]="鬓", ["鬥"]="斗", ["鬧"]="闹", ["鬨"]="哄", ["鬩"]="阋", ["鬭"]="斗", ["鬮"]="阄", ["鬱"]="郁", ["鬹"]="鬶", ["鬺"]="𱆌", ["魎"]="魉", ["魗"]="𱆛", ["魘"]="魇", ["魚"]="鱼", ["魛"]="鱽", ["魜"]="𬶁", ["魝"]="𬶀", ["魟"]="𫚉", ["魠"]="𱇏", ["魡"]="𬶄", ["魢"]="鱾", ["魣"]="𮬛", ["魥"]="𩽹", ["魦"]="𫚌", ["魧"]="𱇘", ["魨"]="鲀", ["魪"]="𬶇", ["魫"]="𱇙", ["魬"]="𱇖", ["魭"]="𱇐", ["魮"]="𱇒", ["魯"]="鲁", ["魱"]="𱇓", ["魴"]="鲂", ["魵"]="𫚍", ["魶"]="𱇔", ["魷"]="鱿", ["魺"]="鲄", ["魻"]="𱇟", ["魼"]="𱇜", ["魽"]="𫠐", ["魾"]="𱇝", ["鮀"]="𬶍", ["鮁"]="鲅", ["鮂"]="𱇠", ["鮃"]="鲆", ["鮄"]="𫚒", ["鮅"]="𫚑", ["鮆"]="𫚖", ["鮇"]="𱇛", ["鮈"]="𬶋", ["鮊"]="鲌", ["鮋"]="鲉", ["鮌"]="𱇢", ["鮍"]="鲏", ["鮎"]="鲇", ["鮏"]="𱇡", ["鮐"]="鲐", ["鮑"]="鲍", ["鮒"]="鲋", ["鮓"]="鲊", ["鮕"]="𲍌", ["鮗"]="鿴", ["鮘"]="𬶌", ["鮚"]="鲒", ["鮛"]="𱇨", ["鮜"]="鲘", ["鮝"]="鲞", ["鮞"]="鲕", ["鮟"]="𩽾", ["鮠"]="𬶏", ["鮡"]="𬶐", ["鮣"]="䲟", ["鮤"]="𫚓", ["鮥"]="𱇪", ["鮦"]="鲖", ["鮧"]="𱇧", ["鮨"]="𮬜", ["鮪"]="鲔", ["鮫"]="鲛", ["鮬"]="𱇦", ["鮭"]="鲑", ["鮮"]="鲜", ["鮯"]="𫚗", ["鮰"]="𫚔", ["鮳"]="鲓", ["鮵"]="𫚛", ["鮶"]="鲪", ["鮷"]="𬶕", ["鮸"]="𩾃", ["鮹"]="𱇯", ["鮺"]="鲝", ["鮿"]="𫚚", ["鯀"]="鲧", ["鯁"]="鲠", ["鯄"]="𩾁", ["鯅"]="𱈁", ["鯆"]="𫚙", ["鯇"]="鲩", ["鯈"]="𱇱", ["鯉"]="鲤", ["鯊"]="鲨", ["鯒"]="鲬", ["鯔"]="鲻", ["鯕"]="鲯", ["鯖"]="鲭", ["鯗"]="鲞", ["鯚"]="𱇺", ["鯛"]="鲷", ["鯝"]="鲴", ["鯞"]="𫚡", ["鯠"]="𱇭", ["鯡"]="鲱", ["鯢"]="鲵", ["鯤"]="鲲", ["鯥"]="𱇶", ["鯦"]="𱇼", ["鯧"]="鲳", ["鯨"]="鲸", ["鯩"]="𱇗", ["鯪"]="鲮", ["鯫"]="鲰", ["鯬"]="𫚞", ["鯮"]="𱇾", ["鯰"]="鲶", ["鯱"]="𩾇", ["鯴"]="鲺", ["鯶"]="𩽼", ["鯷"]="鳀", ["鯸"]="𱈄", ["鯻"]="𬶟", ["鯼"]="𱈅", ["鯽"]="鲫", ["鯾"]="𫚣", ["鯿"]="鳊", ["鰁"]="鳈", ["鰂"]="鲗", ["鰃"]="鳂", ["鰅"]="𱈂", ["鰆"]="䲠", ["鰇"]="𬶧", ["鰈"]="鲽", ["鰉"]="鳇", ["鰊"]="𬶠", ["鰋"]="𫚢", ["鰌"]="鳅", ["鰍"]="鳅", ["鰏"]="鲾", ["鰐"]="鳄", ["鰑"]="𫚊", ["鰒"]="鳆", ["鰓"]="鳃", ["鰕"]="𫚥", ["鰗"]="𬶞", ["鰛"]="鳁", ["鰜"]="鳒", ["鰝"]="𱈋", ["鰟"]="鳑", ["鰠"]="鳋", ["鰡"]="𱈊", ["鰣"]="鲥", ["鰤"]="𫚕", ["鰥"]="鳏", ["鰦"]="𫚤", ["鰧"]="䲢", ["鰨"]="鳎", ["鰩"]="鳐", ["鰫"]="𫚦", ["鰬"]="𱈉", ["鰭"]="鳍", ["鰮"]="鳁", ["鰯"]="𱈍", ["鰱"]="鲢", ["鰲"]="鳌", ["鰳"]="鳓", ["鰴"]="𱈑", ["鰵"]="鳘", ["鰶"]="𬶭", ["鰷"]="鲦", ["鰹"]="鲣", ["鰺"]="鲹", ["鰻"]="鳗", ["鰼"]="鳛", ["鰽"]="𫚧", ["鰾"]="鳔", ["鰿"]="𱇵", ["鱀"]="𬶨", ["鱁"]="𱈏", ["鱂"]="鳉", ["鱃"]="𱈌", ["鱄"]="𫚋", ["鱅"]="鳙", ["鱆"]="𫠒", ["鱇"]="𩾌", ["鱈"]="鳕", ["鱉"]="鳖", ["鱊"]="𫚪", ["鱋"]="𬶬", ["鱌"]="𬶲", ["鱍"]="𱇣", ["鱎"]="𱇩", ["鱏"]="𱈓", ["鱐"]="𱇿", ["鱑"]="𬶫", ["鱒"]="鳟", ["鱓"]="鳝", ["鱔"]="鳝", ["鱕"]="𱈕", ["鱖"]="鳜", ["鱗"]="鳞", ["鱘"]="鲟", ["鱙"]="𲍑", ["鱚"]="𬶮", ["鱝"]="鲼", ["鱞"]="𬶵", ["鱟"]="鲎", ["鱠"]="鲙", ["鱢"]="𫚫", ["鱣"]="鳣", ["鱤"]="鳡", ["鱥"]="𮬝", ["鱦"]="𱇸", ["鱧"]="鳢", ["鱨"]="鲿", ["鱬"]="𱈗", ["鱭"]="鲚", ["鱮"]="𫚈", ["鱯"]="鳠", ["鱲"]="𫚭", ["鱴"]="𱈙", ["鱵"]="𮬤", ["鱷"]="鳄", ["鱸"]="鲈", ["鱹"]="𬶺", ["鱺"]="鲡", ["鱻"]="鲜", ["鳥"]="鸟", ["鳦"]="𱉇", ["鳧"]="凫", ["鳩"]="鸠", ["鳬"]="凫", ["鳭"]="𱉈", ["鳱"]="𱉊", ["鳲"]="鸤", ["鳳"]="凤", ["鳴"]="鸣", ["鳶"]="鸢", ["鳷"]="𫛛", ["鳸"]="𱉓", ["鳺"]="𱉎", ["鳻"]="𱉑", ["鳼"]="𪉃", ["鳽"]="𫛚", ["鳾"]="䴓", ["鳿"]="𱉍", ["鴀"]="𫛜", ["鴁"]="𮭢", ["鴂"]="𱉔", ["鴃"]="𫛞", ["鴅"]="𫛝", ["鴆"]="鸩", ["鴇"]="鸨", ["鴉"]="鸦", ["鴋"]="𲍮", ["鴍"]="𬸀", ["鴐"]="𫛤", ["鴒"]="鸰", ["鴓"]="𮭤", ["鴔"]="𫛡", ["鴕"]="鸵", ["鴗"]="𫁡", ["鴘"]="𱉡", ["鴙"]="𱉛", ["鴚"]="𱉕", ["鴛"]="鸳", ["鴝"]="鸲", ["鴞"]="鸮", ["鴟"]="鸱", ["鴠"]="𱉗", ["鴡"]="𱉘", ["鴢"]="𱉢", ["鴣"]="鸪", ["鴥"]="𫛣", ["鴦"]="鸯", ["鴨"]="鸭", ["鴩"]="𱉚", ["鴫"]="𮴿", ["鴬"]="鸴", ["鴮"]="𫛦", ["鴯"]="鸸", ["鴰"]="鸹", ["鴱"]="𱉪", ["鴲"]="𪉆", ["鴳"]="𫛩", ["鴴"]="鸻", ["鴶"]="𱉥", ["鴷"]="䴕", ["鴸"]="𱉫", ["鴹"]="𱉯", ["鴺"]="𱉩", ["鴻"]="鸿", ["鴽"]="𫛪", ["鴾"]="𱉲", ["鴿"]="鸽", ["鵀"]="𬸊", ["鵁"]="䴔", ["鵂"]="鸺", ["鵃"]="鸼", ["鵄"]="𬸈", ["鵅"]="𱉮", ["鵉"]="鸾", ["鵊"]="𫛥", ["鵋"]="𱉽", ["鵌"]="𱉸", ["鵎"]="𱉻", ["鵏"]="𬷕", ["鵐"]="鹀", ["鵑"]="鹃", ["鵒"]="鹆", ["鵓"]="鹁", ["鵔"]="𱉿", ["鵕"]="𱉾", ["鵖"]="𱉝", ["鵗"]="𱉹", ["鵙"]="𱉐", ["鵚"]="𪉍", ["鵛"]="𱉠", ["鵜"]="鹈", ["鵝"]="鹅", ["鵞"]="鹅", ["鵟"]="𫛭", ["鵠"]="鹄", ["鵡"]="鹉", ["鵧"]="𫛨", ["鵩"]="𫛳", ["鵪"]="鹌", ["鵫"]="𫛱", ["鵬"]="鹏", ["鵮"]="鹐", ["鵯"]="鹎", ["鵰"]="雕", ["鵱"]="𱊀", ["鵲"]="鹊", ["鵳"]="𱊋", ["鵴"]="𱊇", ["鵵"]="𱊆", ["鵶"]="鸦", ["鵷"]="鹓", ["鵸"]="𱊁", ["鵹"]="𱊃", ["鵻"]="𱊅", ["鵼"]="𱊊", ["鵽"]="𱊍", ["鵾"]="鹍", ["鶀"]="𬸒", ["鶂"]="𱊈", ["鶃"]="𱊄", ["鶄"]="䴖", ["鶅"]="𱊎", ["鶆"]="𱉵", ["鶇"]="鸫", ["鶉"]="鹑", ["鶊"]="鹒", ["鶋"]="𱊌", ["鶌"]="𫛵", ["鶒"]="𫛶", ["鶓"]="鹋", ["鶔"]="𱊗", ["鶖"]="鹙", ["鶗"]="𫛸", ["鶘"]="鹕", ["鶙"]="𱊕", ["鶚"]="鹗", ["鶛"]="𱊐", ["鶝"]="𱊏", ["鶞"]="𱊑", ["鶟"]="𱊖", ["鶠"]="𬸘", ["鶡"]="鹖", ["鶢"]="𱊒", ["鶣"]="𬸜", ["鶤"]="𱉱", ["鶥"]="鹛", ["鶦"]="𫛷", ["鶧"]="𲎀", ["鶨"]="𱊘", ["鶩"]="鹜", ["鶪"]="䴗", ["鶬"]="鸧", ["鶭"]="𫛯", ["鶯"]="莺", ["鶰"]="𫛫", ["鶱"]="𬸣", ["鶲"]="鹟", ["鶴"]="鹤", ["鶵"]="𬸅", ["鶶"]="𱊝", ["鶷"]="𱊟", ["鶹"]="鹠", ["鶺"]="鹡", ["鶻"]="鹘", ["鶼"]="鹣", ["鶽"]="𱊛", ["鶿"]="鹚", ["鷀"]="鹚", ["鷁"]="鹢", ["鷂"]="鹞", ["鷃"]="𮭨", ["鷄"]="鸡", ["鷅"]="𫛽", ["鷇"]="𬆮", ["鷉"]="䴘", ["鷊"]="鹝", ["鷋"]="𱊠", ["鷌"]="𲍬", ["鷎"]="𬸢", ["鷏"]="𱊚", ["鷐"]="𫜀", ["鷑"]="𱊢", ["鷒"]="𱉏", ["鷓"]="鹧", ["鷔"]="𪉑", ["鷕"]="𱊡", ["鷖"]="鹥", ["鷗"]="鸥", ["鷙"]="鸷", ["鷚"]="鹨", ["鷛"]="𱊤", ["鷜"]="𬸞", ["鷝"]="𲍴", ["鷞"]="𮭪", ["鷟"]="𬸦", ["鷢"]="𱊧", ["鷣"]="𫜃", ["鷤"]="𫛴", ["鷥"]="鸶", ["鷦"]="鹪", ["鷨"]="𪉊", ["鷩"]="𫜁", ["鷫"]="鹔", ["鷭"]="𬸪", ["鷮"]="𱉬", ["鷯"]="鹩", ["鷰"]="燕", ["鷲"]="鹫", ["鷳"]="鹇", ["鷴"]="鹇", ["鷵"]="𱊩", ["鷶"]="𱉳", ["鷷"]="𫜄", ["鷸"]="鹬", ["鷹"]="鹰", ["鷺"]="鹭", ["鷼"]="𲍻", ["鷽"]="鸴", ["鷾"]="𱊰", ["鷿"]="䴙", ["鸀"]="𱊬", ["鸁"]="𱊮", ["鸂"]="㶉", ["鸃"]="𱉌", ["鸄"]="𱊯", ["鸅"]="𱉟", ["鸆"]="𱊫", ["鸇"]="鹯", ["鸉"]="𱉴", ["鸊"]="䴙", ["鸋"]="𫛢", ["鸌"]="鹱", ["鸍"]="𲍰", ["鸎"]="莺", ["鸏"]="鹲", ["鸐"]="𱊱", ["鸑"]="𬸚", ["鸓"]="𱊳", ["鸕"]="鸬", ["鸗"]="𫛟", ["鸘"]="鹴", ["鸙"]="𱊵", ["鸚"]="鹦", ["鸛"]="鹳", ["鸜"]="𬸱", ["鸝"]="鹂", ["鸞"]="鸾", ["鹵"]="卤", ["鹹"]="咸", ["鹺"]="鹾", ["鹼"]="碱", ["鹽"]="盐", ["麐"]="麟", ["麗"]="丽", ["麞"]="獐", ["麡"]="𬸾", ["麤"]="粗", ["麥"]="麦", ["麧"]="𱋇", ["麨"]="𪎊", ["麩"]="麸", ["麪"]="面", ["麫"]="面", ["麬"]="𤿲", ["麭"]="𮮆", ["麮"]="𱋋", ["麯"]="曲", ["麰"]="𮮇", ["麱"]="𱋖", ["麳"]="𪎌", ["麴"]="曲", ["麵"]="面", ["麷"]="𫜑", ["麼"]="么", ["麽"]="么", ["黂"]="𱋱", ["黃"]="黄", ["黌"]="黉", ["點"]="点", ["黨"]="党", ["黲"]="黪", ["黴"]="霉", ["黶"]="黡", ["黷"]="黩", ["黸"]="𱋶", ["黽"]="黾", ["黿"]="鼋", ["鼀"]="𱋾", ["鼁"]="𱋿", ["鼂"]="鼌", ["鼄"]="𬹣", ["鼅"]="𱌄", ["鼆"]="𱌆", ["鼇"]="鳌", ["鼈"]="鳖", ["鼉"]="鼍", ["鼊"]="𱌉", ["鼕"]="冬", ["鼚"]="𱌊", ["鼲"]="𱌏", ["鼴"]="鼹", ["齈"]="𱌖", ["齊"]="齐", ["齋"]="斋", ["齌"]="𱌗", ["齍"]="𱌘", ["齎"]="赍", ["齏"]="齑", ["齒"]="齿", ["齔"]="龀", ["齕"]="龁", ["齖"]="𬹺", ["齗"]="龂", ["齘"]="𬹼", ["齙"]="龅", ["齚"]="𱌬", ["齜"]="龇", ["齝"]="𱌯", ["齞"]="𱌫", ["齟"]="龃", ["齠"]="龆", ["齡"]="龄", ["齣"]="出", ["齤"]="𱌲", ["齥"]="𱌱", ["齦"]="龈", ["齧"]="啮", ["齩"]="咬", ["齪"]="龊", ["齬"]="龉", ["齭"]="𫜭", ["齮"]="𬺈", ["齯"]="𫠜", ["齰"]="𫜬", ["齱"]="𱌶", ["齲"]="龋", ["齳"]="𱌳", ["齴"]="𫜮", ["齵"]="𱌹", ["齶"]="腭", ["齷"]="龌", ["齸"]="𱌽", ["齹"]="𬺎", ["齺"]="𱌭", ["齻"]="𱌺", ["齼"]="𬺓", ["齽"]="𬺔", ["齾"]="𫜰", ["龍"]="龙", ["龎"]="厐", ["龏"]="𱍁", ["龐"]="庞", ["龑"]="䶮", ["龓"]="𫜲", ["龔"]="龚", ["龕"]="龛", ["龖"]="𱍂", ["龘"]="𮹝", ["龜"]="龟", ["龝"]="秋", ["龞"]="𱍈", ["龥"]="𬱳", ["龭"]="𩨎", ["龯"]="𨱆", ["龲"]="𰾋", ["龻"]="𰁜", ["龽"]="𰞳", ["鿁"]="䜤", ["鿂"]="𮷙", ["鿐"]="䲤", ["鿓"]="鿒", ["鿠"]="鿟", ["鿳"]="鿸", ["𠁞"]="𠀾", ["𠅀"]="𮲐", ["𠌥"]="𠆿", ["𠏄"]="𮯻", ["𠐊"]="𫝋", ["𠐮"]="𬾣", ["𠖥"]="𮰄", ["𠙦"]="䒮", ["𠠜"]="𫦕", ["𠠫"]="𰄭", ["𠼤"]="𫪄", ["𠼮"]="𫩳", ["𡂿"]="𫪘", ["𡃈"]="𰈮", ["𡃤"]="𪢐", ["𡑍"]="𫭼", ["𡑑"]="𮰠", ["𡔖"]="𡍣", ["𡞵"]="㛟", ["𡟫"]="𫝪", ["𡠪"]="𮱔", ["𡠹"]="㛿", ["𡡤"]="𡚫", ["𡢃"]="㛠", ["𡢄"]="𮱆", ["𡢅"]="妘", ["𡢿"]="𭑸", ["𡣙"]="𱙑", ["𡤅"]="媇", ["𡤢"]="𮱊", ["𡤶"]="𮱐", ["𡷨"]="𫵸", ["𡷹"]="𱛊", ["𡺨"]="𫵶", ["𡽳"]="𫶊", ["𢄋"]="𦭬", ["𢅡"]="𫷌", ["𢍰"]="𪪴", ["𢐟"]="𮱵", ["𢜟"]="𰑂", ["𢞁"]="𮲂", ["𢡠"]="怾", ["𢯩"]="𫼤", ["𢰸"]="𱟽", ["𢲩"]="𫼾", ["𢲸"]="𫼵", ["𢳂"]="𫼣", ["𢷮"]="𢫊", ["𢺳"]="𪮳", ["𣂈"]="𦮜", ["𣋪"]="𮲨", ["𣍐"]="𫧃", ["𣎟"]="𫞅", ["𣞁"]="㮠", ["𣠩"]="𣞎", ["𣫒"]="𫶲", ["𣯩"]="𣯣", ["𣵾"]="𮳅", ["𣷣"]="𱥵", ["𣼼"]="𮳈", ["𣾷"]="㳢", ["𣿭"]="𮳃", ["𤁐"]="𮳍", ["𤃡"]="𱩂", ["𤄙"]="𰝞", ["𤅊"]="𮳖", ["𤅶"]="𣷷", ["𤅷"]="𰛻", ["𤆼"]="𮳢", ["𤇾"]="𫇦", ["𤋮"]="熙", ["𤎤"]="𬝃", ["𤎽"]="𱫜", ["𤏩"]="𮳯", ["𤏪"]="𱫊", ["𤏳"]="𮳱", ["𤑚"]="𮳶", ["𤑳"]="𤎻", ["𤒎"]="𤊀", ["𤒨"]="𮳸", ["𤓓"]="𬊜", ["𤓩"]="𤊰", ["𤚴"]="𮳺", ["𤛮"]="𤙯", ["𤛱"]="𫞢", ["𤜆"]="𪺪", ["𤢟"]="𤝢", ["𤥵"]="𮴑", ["𤦎"]="𮴅", ["𤦩"]="𮴏", ["𤦹"]="𱮺", ["𤧑"]="𮴆", ["𤧸"]="𮴒", ["𤩂"]="𫞧", ["𤩊"]="𮴗", ["𤩑"]="𮴥", ["𤩝"]="𮴓", ["𤪤"]="𪛞", ["𤪥"]="𬍜", ["𤪺"]="㻘", ["𤫎"]="𮴶", ["𤫟"]="𮴠", ["𤫩"]="㻏", ["𤬏"]="𱰆", ["𤸫"]="𤶧", ["𤾉"]="𰤓", ["𥀬"]="𪠏", ["𥂸"]="𬐠", ["𥉸"]="𰥣", ["𥋟"]="𮵅", ["𥔬"]="𮵊", ["𥕥"]="𥐰", ["𥖏"]="𮀪", ["𥗽"]="𬒗", ["𥚗"]="𮵙", ["𥢶"]="𫞷", ["𥣻"]="𦼖", ["𥯤"]="𫁳", ["𥲻"]="纂", ["𥵃"]="𥱔", ["𥺼"]="𮇔", ["𥼶"]="𬖘", ["𥼽"]="𥹥", ["𥿑"]="𮶁", ["𥿡"]="𱺙", ["𦆭"]="𱺖", ["𦆲"]="𫟇", ["𦜖"]="𬁺", ["𦝛"]="𮶔", ["𦠅"]="𫞅", ["𦠜"]="𱼇", ["𦡶"]="𰯂", ["𦢈"]="𣍨", ["𦣇"]="𬂂", ["𦥯"]="𰃮", ["𦦗"]="栄", ["𦧺"]="𫇘", ["𦳝"]="𰰢", ["𦻖"]="𱽾", ["𦾉"]="莺", ["𦾵"]="𦴇", ["𦿭"]="𮶷", ["𧀀"]="𮶩", ["𧂂"]="𮶬", ["𧐱"]="𬟺", ["𧒄"]="𱿧", ["𧖦"]="𬠱", ["𧜘"]="𮷁", ["𧜵"]="䙊", ["𧜶"]="𮖃", ["𧝞"]="䘛", ["𧞅"]="𰳻", ["𧞫"]="𫌋", ["𧟌"]="𬡠", ["𧠳"]="𮷄", ["𧢝"]="𲁔", ["𧥺"]="𬣝", ["𧦵"]="𮷆", ["𧧝"]="𬣨", ["𧧸"]="𰵬", ["𧨊"]="𬣶", ["𧨾"]="𬤂", ["𧩎"]="𮷉", ["𧩙"]="䜥", ["𧭈"]="𲂇", ["𧭥"]="𮷇", ["𧰎"]="鿲", ["𧵳"]="䞌", ["𧶄"]="𬥷", ["𧶽"]="𰷟", ["𧸦"]="𬥾", ["𧼮"]="𬦅", ["𨂐"]="𫏌", ["𨆅"]="𬦫", ["𨆉"]="𮛗", ["𨆪"]="𫏕", ["𨈆"]="𬧛", ["𨈇"]="𬦾", ["𨈊"]="𨂺", ["𨈌"]="𨄄", ["𨉖"]="𰿰", ["𨊛"]="𲄙", ["𨊸"]="䢁", ["𨋢"]="䢂", ["𨌄"]="𬨋", ["𨍶"]="荤", ["𨏊"]="𰹾", ["𨘀"]="𮷥", ["𨞪"]="𫜷", ["𨞺"]="𫟫", ["𨟊"]="𫟬", ["𨟑"]="𮷨", ["𨣃"]="𰼋", ["𨣨"]="𰼏", ["𨤋"]="𬪯", ["𨤡"]="𬪺", ["𨥈"]="𮷵", ["𨥉"]="𲇯", ["𨥕"]="𮷹", ["𨥤"]="𮷽", ["𨥭"]="𮸃", ["𨥮"]="𮷿", ["𨦍"]="𮸅", ["𨦡"]="𰽽", ["𨦫"]="䦀", ["𨧀"]="𬭊", ["𨧜"]="䦁", ["𨧰"]="𫟽", ["𨨏"]="𬭛", ["𨨩"]="𲈅", ["𨩃"]="𮸔", ["𨩎"]="𮸘", ["𨩰"]="𫟾", ["𨪃"]="𲈏", ["𨪜"]="𮸚", ["𨪦"]="𮸙", ["𨫀"]="𬭫", ["𨫋"]="𮸉", ["𨫼"]="𰾧", ["𨬫"]="𮸢", ["𨭆"]="𬭶", ["𨭌"]="𬭵", ["𨭎"]="𬭳", ["𨭐"]="𬭙", ["𨭥"]="𬬼", ["𨮪"]="𮷯", ["𨯂"]="𮸣", ["𨯅"]="䥿", ["𨯗"]="𮸝", ["𨯵"]="𬮀", ["𨰃"]="𫔉", ["𨰘"]="𮷷", ["𨰲"]="𫔃", ["𨰹"]="𰿀", ["𨳒"]="𮤭", ["𨽻"]="隶", ["𩉍"]="𬰣", ["𩋬"]="𱁱", ["𩍜"]="𱁳", ["𩏪"]="𩏽", ["𩐳"]="𮸷", ["𩓐"]="脖", ["𩓥"]="𫖵", ["𩔐"]="𮸶", ["𩖰"]="𫠇", ["𩗗"]="飓", ["𩗩"]="𮷻", ["𩗴"]="𫗉", ["𩗺"]="𮸻", ["𩛩"]="𩠃", ["𩛲"]="𬲹", ["𩜠"]="𬲿", ["𩞃"]="𬲰", ["𩞘"]="𬳏", ["𩟗"]="𫗚", ["𩢀"]="𮹄", ["𩢖"]="𮹅", ["𩣑"]="䯃", ["𩣺"]="𩧼", ["𩤅"]="𲌉", ["𩥅"]="𱅣", ["𩥇"]="𩨍", ["𩥈"]="𮹌", ["𩥉"]="𩧱", ["𩦠"]="𫠌", ["𩧉"]="𱄾", ["𩭙"]="𩬣", ["𩰹"]="𩰰", ["𩴵"]="𩴌", ["𩵚"]="𬶂", ["𩵦"]="𫠏", ["𩵩"]="𩽺", ["𩵳"]="𮹓", ["𩶘"]="䲞", ["𩷓"]="鿵", ["𩷕"]="鿶", ["𩷶"]="𱇮", ["𩸆"]="𬶖", ["𩹎"]="鿷", ["𩿅"]="𫠖", ["𩿞"]="𲍱", ["𪀦"]="𪉅", ["𪁎"]="𲍸", ["𪁜"]="𬸏", ["𪂇"]="𲍽", ["𪄳"]="鿺", ["𪆫"]="𱊨", ["𪆰"]="𬸭", ["𪆴"]="𬸮", ["𪇖"]="𬸡", ["𪈔"]="𱊉", ["𪋿"]="𫧮", ["𪍑"]="𱋢", ["𪕣"]="𬹭", ["𪗋"]="𱌙", ["𪗪"]="𬹿", ["𪗳"]="𬹾", ["𪗽"]="𬺄", ["𪘁"]="𲎨", ["𪘥"]="𱌸", ["𪘨"]="𱌴", ["𪘬"]="𱌷", ["𪘯"]="𪚐", ["𪘲"]="𬺌", ["𪙉"]="𱌼", ["𪚅"]="𬺖", ["𪝼"]="𱏆", ["𪣷"]="𮰥", ["𪦯"]="𮱕", ["𪳷"]="𬂱", ["𪼑"]="𮴚", ["𪼞"]="𮴉", ["𪾳"]="𮵆", ["𫃑"]="𰪿", ["𫃻"]="𮶅", ["𫒊"]="𮷷", ["𫒋"]="𮷺", ["𫒟"]="𮸋", ["𫓔"]="𮷶", ["𫘋"]="𮹉", ["𫝑"]="势", ["𫟰"]="铛", ["𫣴"]="𫢲", ["𫦸"]="𫦰", ["𫶦"]="𫶄", ["𫺤"]="𮲅", ["𬅁"]="𮲺", ["𬉧"]="鿰", ["𬊿"]="𮳬", ["𬎟"]="𮴹", ["𬕜"]="𮵭", ["𬗈"]="𮶀", ["𬞼"]="𮶳", ["𬠰"]="蛍", ["𬣘"]="𬤗", ["𬫉"]="𮸂", ["𬫍"]="𮸄", ["𬮍"]="𮤷", ["𬵨"]="鿹", ["𬷈"]="𮹕", ["𭃶"]="𰄝", ["𭜼"]="𮲀", ["𭶙"]="𤇻", ["𮌲"]="𭨶", ["𮚫"]="𮷍", ["𮢅"]="𮸑", ["𮢆"]="𮸒", ["𮢽"]="𮸝", ["𮰮"]="𪣑", ["𮱚"]="𱙋", ["𮱣"]="𪨇", ["𮸾"]="𲋢", ["𰯲"]="𰀢", ["𰻞"]="𰻝", ["𱆥"]="鿕", ["𱇋"]="𬶥", ["𱵭"]="𮵚", ["吿"]="告", ["𩒺"]="𱂩", ["𥍉"]="𱳅", } dakvk7tpipye2yyqjnsk0h3i6i5lck3 Modul:zh/data/st 828 154790 628908 457479 2024-11-06T16:05:19Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628908 Scribunto text/plain return { ["㐷"]="傌", ["㐽"]="偑", ["㑇"]="㑳", ["㑈"]="倲", ["㑔"]="㑯", ["㑩"]="儸", ["㓥"]="劏", ["㔉"]="劚", ["㖊"]="噚", ["㖞"]="喎", ["㘎"]="㘚", ["㚯"]="㜄", ["㛀"]="媰", ["㛟"]="𡞵", ["㛠"]="𡢃", ["㛣"]="㜏", ["㛤"]="孋", ["㛿"]="𡠹", ["㟆"]="㠏", ["㟥"]="嵾", ["㡎"]="幓", ["㤖"]="懧", ["㤘"]="㥮", ["㤭"]="憍", ["㤽"]="懤", ["㥪"]="慺", ["㧏"]="掆", ["㧐"]="㩳", ["㧑"]="撝", ["㧛"]="擥", ["㧟"]="擓", ["㧰"]="擽", ["㨫"]="㩜", ["㭎"]="棡", ["㭏"]="椲", ["㭤"]="樢", ["㭴"]="樫", ["㮠"]="𣞁", ["㱩"]="殰", ["㱮"]="殨", ["㲿"]="瀇", ["㳔"]="濧", ["㳠"]="澾", ["㳡"]="濄", ["㳢"]="𣾷", ["㴋"]="潚", ["㶉"]="鸂", ["㶶"]="燶", ["㶽"]="煱", ["㺍"]="獱", ["㻅"]="璯", ["㻏"]="𤫩", ["㻘"]="𤪺", ["䀥"]="䁻", ["䁖"]="瞜", ["䂵"]="碽", ["䃅"]="磾", ["䅉"]="稏", ["䅟"]="穇", ["䇲"]="筴", ["䉤"]="籔", ["䌶"]="䊷", ["䌷"]="紬", ["䌸"]="縳", ["䌹"]="絅", ["䌺"]="䋙", ["䌻"]="䋚", ["䌼"]="綐", ["䌽"]="綵", ["䌾"]="䋻", ["䌿"]="䋹", ["䍀"]="繿", ["䍁"]="繸", ["䎬"]="䎱", ["䏝"]="膞", ["䒠"]="蘴", ["䒮"]="𠙦", ["䒿"]="膋", ["䓓"]="薵", ["䓖"]="藭", ["䓨"]="罃", ["䗖"]="螮", ["䘛"]="𧝞", ["䙊"]="𧜵", ["䙌"]="䙡", ["䙓"]="襬", ["䛓"]="譼", ["䜣"]="訢", ["䜤"]="鿁", ["䜥"]="𧩙", ["䜧"]="䜀", ["䜩"]="讌", ["䝙"]="貙", ["䞌"]="𧵳", ["䞍"]="䝼", ["䞐"]="賰", ["䟢"]="躎", ["䢁"]="𨊸", ["䢂"]="𨋢", ["䥺"]="釾", ["䥽"]="鏺", ["䥾"]="䥱", ["䥿"]="𨯅", ["䦀"]="𨦫", ["䦁"]="𨧜", ["䦂"]="䥇", ["䦃"]="鐯", ["䦅"]="鐥", ["䦆"]="钁", ["䦶"]="䦛", ["䦷"]="䦟", ["䯃"]="𩣑", ["䯄"]="騧", ["䯅"]="䯀", ["䲝"]="䱽", ["䲞"]="𩶘", ["䲟"]="鮣", ["䲠"]="鰆", ["䲡"]="鰌", ["䲢"]="鰧", ["䲣"]="䱷", ["䲤"]="鿐", ["䴓"]="鳾", ["䴔"]="鵁", ["䴕"]="鴷", ["䴖"]="鶄", ["䴗"]="鶪", ["䴘"]="鷉", ["䴙"]="鷿", ["䶮"]="龑", ["万"]="萬", ["与"]="與", ["专"]="專", ["业"]="業", ["丛"]="叢", ["东"]="東", ["丝"]="絲", ["丢"]="丟", ["两"]="兩", ["严"]="嚴", ["丧"]="喪", ["个"]="個", ["丰"]="豐", ["临"]="臨", ["为"]="為", ["丽"]="麗", ["举"]="舉", ["么"]="麼", ["义"]="義", ["乌"]="烏", ["乐"]="樂", ["乔"]="喬", ["习"]="習", ["乡"]="鄉", ["书"]="書", ["买"]="買", ["乱"]="亂", ["争"]="爭", ["于"]="於", ["亏"]="虧", ["云"]="雲", ["亘"]="亙", ["亚"]="亞", ["产"]="產", ["亩"]="畝", ["亲"]="親", ["亵"]="褻", ["亸"]="嚲", ["亿"]="億", ["仅"]="僅", ["仆"]="僕", ["仉"]="僟", ["从"]="從", ["仑"]="侖", ["仓"]="倉", ["仪"]="儀", ["们"]="們", ["价"]="價", ["众"]="眾", ["优"]="優", ["伙"]="夥", ["会"]="會", ["伛"]="傴", ["伞"]="傘", ["伟"]="偉", ["传"]="傳", ["伡"]="俥", ["伣"]="俔", ["伤"]="傷", ["伥"]="倀", ["伦"]="倫", ["伧"]="傖", ["伪"]="偽", ["伫"]="佇", ["佇"]="儜", ["体"]="體", ["余"]="餘", ["佣"]="傭", ["佥"]="僉", ["侄"]="姪", ["侠"]="俠", ["侣"]="侶", ["侥"]="僥", ["侦"]="偵", ["侧"]="側", ["侨"]="僑", ["侩"]="儈", ["侪"]="儕", ["侬"]="儂", ["侭"]="儘", ["俣"]="俁", ["俦"]="儔", ["俨"]="儼", ["俩"]="倆", ["俪"]="儷", ["俫"]="倈", ["俭"]="儉", ["债"]="債", ["倾"]="傾", ["偬"]="傯", ["偻"]="僂", ["偾"]="僨", ["偿"]="償", ["傤"]="儎", ["傥"]="儻", ["傧"]="儐", ["储"]="儲", ["傩"]="儺", ["儿"]="兒", ["兑"]="兌", ["兖"]="兗", ["党"]="黨", ["兰"]="蘭", ["关"]="關", ["兴"]="興", ["兹"]="茲", ["养"]="養", ["兽"]="獸", ["冁"]="囅", ["内"]="內", ["冈"]="岡", ["册"]="冊", ["写"]="寫", ["军"]="軍", ["农"]="農", ["冯"]="馮", ["冲"]="沖", ["决"]="決", ["况"]="況", ["冻"]="凍", ["净"]="淨", ["凄"]="淒", ["准"]="準", ["凉"]="涼", ["凌"]="淩", ["减"]="減", ["凑"]="湊", ["凛"]="凜", ["几"]="幾", ["凤"]="鳳", ["凫"]="鳧", ["凭"]="憑", ["凯"]="凱", ["凶"]="兇", ["击"]="擊", ["凿"]="鑿", ["刍"]="芻", ["划"]="劃", ["刘"]="劉", ["则"]="則", ["刚"]="剛", ["创"]="創", ["删"]="刪", ["别"]="別", ["刬"]="剗", ["刭"]="剄", ["刹"]="剎", ["刽"]="劊", ["刾"]="㓨", ["刿"]="劌", ["剀"]="剴", ["剂"]="劑", ["剐"]="剮", ["剑"]="劍", ["剥"]="剝", ["剧"]="劇", ["剿"]="勦", ["劝"]="勸", ["办"]="辦", ["务"]="務", ["劢"]="勱", ["动"]="動", ["励"]="勵", ["劲"]="勁", ["劳"]="勞", ["势"]="勢", ["勋"]="勛", ["勚"]="勩", ["匀"]="勻", ["匦"]="匭", ["匮"]="匱", ["区"]="區", ["医"]="醫", ["升"]="昇", ["华"]="華", ["协"]="協", ["单"]="單", ["卖"]="賣", ["占"]="佔", ["卢"]="盧", ["卤"]="鹵", ["卧"]="臥", ["卫"]="衛", ["却"]="卻", ["厂"]="廠", ["厅"]="廳", ["历"]="歷", ["厉"]="厲", ["压"]="壓", ["厌"]="厭", ["厍"]="厙", ["厐"]="龎", ["厕"]="廁", ["厢"]="廂", ["厣"]="厴", ["厦"]="廈", ["厨"]="廚", ["厩"]="廄", ["厮"]="廝", ["县"]="縣", ["参"]="參", ["叆"]="靉", ["叇"]="靆", ["双"]="雙", ["发"]="發", ["变"]="變", ["叙"]="敘", ["叠"]="疊", ["台"]="臺", ["叶"]="葉", ["号"]="號", ["叹"]="嘆", ["叽"]="嘰", ["吁"]="籲", ["后"]="後", ["吓"]="嚇", ["吕"]="呂", ["吗"]="嗎", ["吣"]="唚", ["吨"]="噸", ["听"]="聽", ["启"]="啟", ["吴"]="吳", ["呐"]="吶", ["呒"]="嘸", ["呓"]="囈", ["呕"]="嘔", ["呖"]="嚦", ["呗"]="唄", ["员"]="員", ["呙"]="咼", ["呛"]="嗆", ["呜"]="嗚", ["咏"]="詠", ["咙"]="嚨", ["咛"]="嚀", ["咝"]="噝", ["咸"]="鹹", ["响"]="響", ["哑"]="啞", ["哒"]="噠", ["哓"]="嘵", ["哔"]="嗶", ["哕"]="噦", ["哗"]="嘩", ["哙"]="噲", ["哜"]="嚌", ["哝"]="噥", ["哟"]="喲", ["唛"]="嘜", ["唝"]="嗊", ["唠"]="嘮", ["唡"]="啢", ["唢"]="嗩", ["唤"]="喚", ["啧"]="嘖", ["啬"]="嗇", ["啭"]="囀", ["啮"]="嚙", ["啯"]="嘓", ["啰"]="囉", ["啴"]="嘽", ["啸"]="嘯", ["喂"]="餵", ["喧"]="諠", ["喷"]="噴", ["喽"]="嘍", ["喾"]="嚳", ["嗫"]="囁", ["嗳"]="噯", ["嘘"]="噓", ["嘤"]="嚶", ["嘱"]="囑", ["嘻"]="譆", ["噜"]="嚕", ["嚣"]="囂", ["团"]="團", ["园"]="園", ["囱"]="囪", ["围"]="圍", ["囵"]="圇", ["国"]="國", ["图"]="圖", ["圆"]="圓", ["圣"]="聖", ["圹"]="壙", ["场"]="場", ["坏"]="壞", ["块"]="塊", ["坚"]="堅", ["坛"]="壇", ["坜"]="壢", ["坝"]="壩", ["坞"]="塢", ["坟"]="墳", ["坠"]="墜", ["垄"]="壟", ["垅"]="壠", ["垆"]="壚", ["垒"]="壘", ["垦"]="墾", ["垩"]="堊", ["垫"]="墊", ["垭"]="埡", ["垯"]="墶", ["垱"]="壋", ["垲"]="塏", ["垴"]="堖", ["埘"]="塒", ["埙"]="塤", ["埚"]="堝", ["堑"]="塹", ["堕"]="墮", ["塆"]="壪", ["墙"]="牆", ["壮"]="壯", ["声"]="聲", ["壳"]="殼", ["壶"]="壺", ["壸"]="壼", ["处"]="處", ["备"]="備", ["复"]="復", ["够"]="夠", ["头"]="頭", ["夸"]="誇", ["夹"]="夾", ["夺"]="奪", ["奁"]="奩", ["奂"]="奐", ["奋"]="奮", ["奖"]="獎", ["奥"]="奧", ["奸"]="姦", ["妆"]="妝", ["妇"]="婦", ["妈"]="媽", ["妩"]="嫵", ["妪"]="嫗", ["妫"]="媯", ["姗"]="姍", ["姹"]="奼", ["娄"]="婁", ["娅"]="婭", ["娆"]="嬈", ["娇"]="嬌", ["娈"]="孌", ["娱"]="娛", ["娲"]="媧", ["娴"]="嫻", ["婳"]="嫿", ["婴"]="嬰", ["婵"]="嬋", ["婶"]="嬸", ["媪"]="媼", ["媭"]="嬃", ["嫒"]="嬡", ["嫔"]="嬪", ["嫱"]="嬙", ["嬷"]="嬤", ["孙"]="孫", ["学"]="學", ["孪"]="孿", ["宁"]="寧", ["宝"]="寶", ["实"]="實", ["宠"]="寵", ["审"]="審", ["宪"]="憲", ["宫"]="宮", ["宽"]="寬", ["宾"]="賓", ["寝"]="寢", ["对"]="對", ["寻"]="尋", ["导"]="導", ["寿"]="壽", ["将"]="將", ["尔"]="爾", ["尘"]="塵", ["尝"]="嘗", ["尧"]="堯", ["尴"]="尷", ["尸"]="屍", ["尽"]="盡", ["层"]="層", ["屃"]="屭", ["屉"]="屜", ["届"]="屆", ["属"]="屬", ["屡"]="屢", ["屦"]="屨", ["屿"]="嶼", ["岁"]="歲", ["岂"]="豈", ["岖"]="嶇", ["岗"]="崗", ["岘"]="峴", ["岙"]="嶴", ["岚"]="嵐", ["岛"]="島", ["岭"]="嶺", ["岽"]="崬", ["岿"]="巋", ["峃"]="嶨", ["峄"]="嶧", ["峡"]="峽", ["峣"]="嶢", ["峤"]="嶠", ["峥"]="崢", ["峦"]="巒", ["崂"]="嶗", ["崃"]="崍", ["崄"]="嶮", ["崭"]="嶄", ["嵘"]="嶸", ["嵚"]="嶔", ["嵝"]="嶁", ["巅"]="巔", ["巩"]="鞏", ["巯"]="巰", ["币"]="幣", ["帅"]="帥", ["师"]="師", ["帏"]="幃", ["帐"]="帳", ["帘"]="簾", ["帜"]="幟", ["带"]="帶", ["帧"]="幀", ["帮"]="幫", ["帱"]="幬", ["帻"]="幘", ["帼"]="幗", ["幂"]="冪", ["幞"]="襆", ["干"]="乾", ["并"]="並", ["广"]="廣", ["庄"]="莊", ["庆"]="慶", ["庐"]="廬", ["庑"]="廡", ["库"]="庫", ["应"]="應", ["庙"]="廟", ["庞"]="龐", ["废"]="廢", ["庼"]="廎", ["廪"]="廩", ["开"]="開", ["异"]="異", ["弃"]="棄", ["弑"]="弒", ["张"]="張", ["弥"]="彌", ["弪"]="弳", ["弯"]="彎", ["弹"]="彈", ["强"]="強", ["归"]="歸", ["当"]="當", ["录"]="錄", ["彝"]="彞", ["彟"]="彠", ["彦"]="彥", ["彨"]="彲", ["彻"]="徹", ["征"]="徵", ["径"]="徑", ["徕"]="徠", ["忆"]="憶", ["忏"]="懺", ["忧"]="憂", ["忾"]="愾", ["怀"]="懷", ["态"]="態", ["怂"]="慫", ["怃"]="憮", ["怄"]="慪", ["怅"]="悵", ["怆"]="愴", ["怜"]="憐", ["总"]="總", ["怼"]="懟", ["怿"]="懌", ["恋"]="戀", ["恒"]="恆", ["恳"]="懇", ["恶"]="惡", ["恸"]="慟", ["恹"]="懨", ["恺"]="愷", ["恻"]="惻", ["恼"]="惱", ["恽"]="惲", ["悦"]="悅", ["悫"]="愨", ["悬"]="懸", ["悭"]="慳", ["悮"]="悞", ["悯"]="憫", ["惊"]="驚", ["惧"]="懼", ["惨"]="慘", ["惩"]="懲", ["惫"]="憊", ["惬"]="愜", ["惭"]="慚", ["惮"]="憚", ["惯"]="慣", ["愠"]="慍", ["愤"]="憤", ["愦"]="憒", ["愿"]="願", ["慑"]="懾", ["慭"]="憖", ["懑"]="懣", ["懒"]="懶", ["懔"]="懍", ["戆"]="戇", ["戋"]="戔", ["戏"]="戲", ["戗"]="戧", ["战"]="戰", ["戬"]="戩", ["户"]="戶", ["扎"]="紮", ["扑"]="撲", ["执"]="執", ["扩"]="擴", ["扪"]="捫", ["扫"]="掃", ["扬"]="揚", ["扰"]="擾", ["抚"]="撫", ["抛"]="拋", ["抟"]="摶", ["抠"]="摳", ["抡"]="掄", ["抢"]="搶", ["护"]="護", ["报"]="報", ["担"]="擔", ["拟"]="擬", ["拢"]="攏", ["拣"]="揀", ["拥"]="擁", ["拦"]="攔", ["拧"]="擰", ["拨"]="撥", ["择"]="擇", ["挂"]="掛", ["挚"]="摯", ["挛"]="攣", ["挜"]="掗", ["挝"]="撾", ["挞"]="撻", ["挟"]="挾", ["挠"]="撓", ["挡"]="擋", ["挢"]="撟", ["挣"]="掙", ["挤"]="擠", ["挥"]="揮", ["挦"]="撏", ["捆"]="綑", ["捝"]="挩", ["捞"]="撈", ["损"]="損", ["捡"]="撿", ["换"]="換", ["捣"]="搗", ["据"]="據", ["掳"]="擄", ["掴"]="摑", ["掷"]="擲", ["掸"]="撣", ["掺"]="摻", ["掼"]="摜", ["揽"]="攬", ["揾"]="搵", ["揿"]="撳", ["搀"]="攙", ["搁"]="擱", ["搂"]="摟", ["搅"]="攪", ["携"]="攜", ["摄"]="攝", ["摅"]="攄", ["摆"]="擺", ["摇"]="搖", ["摈"]="擯", ["摊"]="攤", ["撄"]="攖", ["撑"]="撐", ["撰"]="譔", ["撵"]="攆", ["撷"]="擷", ["撸"]="擼", ["撺"]="攛", ["擜"]="㩵", ["擞"]="擻", ["攒"]="攢", ["敌"]="敵", ["敛"]="斂", ["敩"]="斆", ["数"]="數", ["斋"]="齋", ["斓"]="斕", ["斗"]="鬥", ["斩"]="斬", ["断"]="斷", ["无"]="無", ["旧"]="舊", ["时"]="時", ["旷"]="曠", ["旸"]="暘", ["昙"]="曇", ["昵"]="暱", ["昼"]="晝", ["昽"]="曨", ["显"]="顯", ["晋"]="晉", ["晒"]="曬", ["晓"]="曉", ["晔"]="曄", ["晕"]="暈", ["晖"]="暉", ["暂"]="暫", ["暧"]="曖", ["术"]="術", ["朴"]="樸", ["机"]="機", ["杀"]="殺", ["杂"]="雜", ["权"]="權", ["杆"]="桿", ["杠"]="槓", ["条"]="條", ["来"]="來", ["杨"]="楊", ["杩"]="榪", ["杰"]="傑", ["极"]="極", ["构"]="構", ["枞"]="樅", ["枢"]="樞", ["枣"]="棗", ["枥"]="櫪", ["枧"]="梘", ["枨"]="棖", ["枪"]="槍", ["枫"]="楓", ["枭"]="梟", ["柜"]="櫃", ["柠"]="檸", ["柽"]="檉", ["栀"]="梔", ["栄"]="𦦗", ["栅"]="柵", ["标"]="標", ["栈"]="棧", ["栉"]="櫛", ["栊"]="櫳", ["栋"]="棟", ["栌"]="櫨", ["栎"]="櫟", ["栏"]="欄", ["树"]="樹", ["栖"]="棲", ["样"]="樣", ["栾"]="欒", ["桠"]="椏", ["桡"]="橈", ["桢"]="楨", ["档"]="檔", ["桤"]="榿", ["桥"]="橋", ["桦"]="樺", ["桧"]="檜", ["桨"]="槳", ["桩"]="樁", ["桪"]="樳", ["梁"]="樑", ["梦"]="夢", ["梼"]="檮", ["梾"]="棶", ["梿"]="槤", ["检"]="檢", ["棁"]="梲", ["棂"]="櫺", ["棹"]="櫂", ["椁"]="槨", ["椝"]="槼", ["椟"]="櫝", ["椠"]="槧", ["椢"]="槶", ["椤"]="欏", ["椫"]="樿", ["椭"]="橢", ["椮"]="槮", ["楼"]="樓", ["榄"]="欖", ["榅"]="榲", ["榇"]="櫬", ["榈"]="櫚", ["榉"]="櫸", ["榨"]="搾", ["槚"]="檟", ["槛"]="檻", ["槜"]="檇", ["槟"]="檳", ["槠"]="櫧", ["横"]="橫", ["樯"]="檣", ["樱"]="櫻", ["橥"]="櫫", ["橱"]="櫥", ["橹"]="櫓", ["橼"]="櫞", ["檩"]="檁", ["欢"]="歡", ["欤"]="歟", ["欧"]="歐", ["歼"]="殲", ["殁"]="歿", ["殇"]="殤", ["残"]="殘", ["殒"]="殞", ["殓"]="殮", ["殚"]="殫", ["殡"]="殯", ["殴"]="毆", ["殷"]="慇", ["毁"]="毀", ["毂"]="轂", ["毕"]="畢", ["毙"]="斃", ["毡"]="氈", ["毵"]="毿", ["氇"]="氌", ["气"]="氣", ["氢"]="氫", ["氩"]="氬", ["氲"]="氳", ["汇"]="匯", ["汉"]="漢", ["汤"]="湯", ["汹"]="洶", ["沄"]="澐", ["沈"]="瀋", ["沟"]="溝", ["没"]="沒", ["沣"]="灃", ["沤"]="漚", ["沥"]="瀝", ["沦"]="淪", ["沧"]="滄", ["沨"]="渢", ["沩"]="溈", ["沪"]="滬", ["沵"]="濔", ["泄"]="洩", ["泞"]="濘", ["注"]="註", ["泪"]="淚", ["泶"]="澩", ["泷"]="瀧", ["泸"]="瀘", ["泺"]="濼", ["泻"]="瀉", ["泼"]="潑", ["泽"]="澤", ["泾"]="涇", ["洁"]="潔", ["洒"]="灑", ["洼"]="窪", ["浃"]="浹", ["浄"]="淨", ["浅"]="淺", ["浆"]="漿", ["浇"]="澆", ["浈"]="湞", ["浉"]="溮", ["浊"]="濁", ["测"]="測", ["浍"]="澮", ["济"]="濟", ["浏"]="瀏", ["浐"]="滻", ["浑"]="渾", ["浒"]="滸", ["浓"]="濃", ["浔"]="潯", ["浕"]="濜", ["涂"]="塗", ["涌"]="湧", ["涛"]="濤", ["涝"]="澇", ["涞"]="淶", ["涟"]="漣", ["涠"]="潿", ["涡"]="渦", ["涢"]="溳", ["涣"]="渙", ["涤"]="滌", ["润"]="潤", ["涧"]="澗", ["涨"]="漲", ["涩"]="澀", ["淀"]="澱", ["渊"]="淵", ["渌"]="淥", ["渍"]="漬", ["渎"]="瀆", ["渐"]="漸", ["渑"]="澠", ["渔"]="漁", ["渖"]="瀋", ["渗"]="滲", ["温"]="溫", ["湾"]="灣", ["湿"]="濕", ["溁"]="濚", ["溃"]="潰", ["溅"]="濺", ["溇"]="漊", ["滗"]="潷", ["滚"]="滾", ["滞"]="滯", ["滟"]="灩", ["滠"]="灄", ["满"]="滿", ["滢"]="瀅", ["滤"]="濾", ["滥"]="濫", ["滦"]="灤", ["滨"]="濱", ["滩"]="灘", ["滪"]="澦", ["潆"]="瀠", ["潇"]="瀟", ["潋"]="瀲", ["潍"]="濰", ["潜"]="潛", ["潴"]="瀦", ["澛"]="瀂", ["澜"]="瀾", ["濑"]="瀨", ["濒"]="瀕", ["灏"]="灝", ["灭"]="滅", ["灯"]="燈", ["灵"]="靈", ["灾"]="災", ["灿"]="燦", ["炀"]="煬", ["炉"]="爐", ["炖"]="燉", ["炜"]="煒", ["炝"]="熗", ["点"]="點", ["炼"]="煉", ["炽"]="熾", ["烁"]="爍", ["烂"]="爛", ["烃"]="烴", ["烛"]="燭", ["烟"]="煙", ["烦"]="煩", ["烧"]="燒", ["烨"]="燁", ["烩"]="燴", ["烫"]="燙", ["烬"]="燼", ["热"]="熱", ["焕"]="煥", ["焖"]="燜", ["焘"]="燾", ["煴"]="熅", ["熏"]="燻", ["爱"]="愛", ["爷"]="爺", ["牍"]="牘", ["牦"]="氂", ["牵"]="牽", ["牺"]="犧", ["犊"]="犢", ["状"]="狀", ["犷"]="獷", ["犸"]="獁", ["犹"]="猶", ["狈"]="狽", ["狝"]="獮", ["狞"]="獰", ["独"]="獨", ["狭"]="狹", ["狮"]="獅", ["狯"]="獪", ["狰"]="猙", ["狱"]="獄", ["狲"]="猻", ["猃"]="獫", ["猎"]="獵", ["猕"]="獼", ["猡"]="玀", ["猪"]="豬", ["猫"]="貓", ["猬"]="蝟", ["献"]="獻", ["獭"]="獺", ["玑"]="璣", ["玙"]="璵", ["玚"]="瑒", ["玛"]="瑪", ["玮"]="瑋", ["环"]="環", ["现"]="現", ["玱"]="瑲", ["玺"]="璽", ["珐"]="琺", ["珑"]="瓏", ["珰"]="璫", ["珲"]="琿", ["琎"]="璡", ["琏"]="璉", ["琐"]="瑣", ["琼"]="瓊", ["瑶"]="瑤", ["瑷"]="璦", ["瑸"]="璸", ["璎"]="瓔", ["瓒"]="瓚", ["瓮"]="甕", ["瓯"]="甌", ["电"]="電", ["画"]="畫", ["畅"]="暢", ["畴"]="疇", ["疖"]="癤", ["疗"]="療", ["疟"]="瘧", ["疠"]="癘", ["疡"]="瘍", ["疬"]="癧", ["疭"]="瘲", ["疮"]="瘡", ["疯"]="瘋", ["疱"]="皰", ["痈"]="癰", ["痉"]="痙", ["痒"]="癢", ["痖"]="瘂", ["痨"]="癆", ["痪"]="瘓", ["痫"]="癇", ["痹"]="痺", ["瘅"]="癉", ["瘆"]="瘮", ["瘗"]="瘞", ["瘘"]="瘺", ["瘪"]="癟", ["瘫"]="癱", ["瘾"]="癮", ["瘿"]="癭", ["癞"]="癩", ["癣"]="癬", ["癫"]="癲", ["皑"]="皚", ["皱"]="皺", ["皲"]="皸", ["盏"]="盞", ["盐"]="鹽", ["监"]="監", ["盖"]="蓋", ["盗"]="盜", ["盘"]="盤", ["眍"]="瞘", ["眝"]="矃", ["眦"]="眥", ["眬"]="矓", ["眯"]="瞇", ["着"]="著", ["睁"]="睜", ["睐"]="睞", ["睑"]="瞼", ["睾"]="睪", ["睿"]="叡", ["瞆"]="瞶", ["瞒"]="瞞", ["瞩"]="矚", ["矫"]="矯", ["矶"]="磯", ["矾"]="礬", ["矿"]="礦", ["砀"]="碭", ["码"]="碼", ["砖"]="磚", ["砗"]="硨", ["砚"]="硯", ["砜"]="碸", ["砺"]="礪", ["砻"]="礱", ["砾"]="礫", ["础"]="礎", ["硁"]="硜", ["硕"]="碩", ["硖"]="硤", ["硗"]="磽", ["硙"]="磑", ["硚"]="礄", ["确"]="確", ["硵"]="磠", ["硷"]="鹼", ["碍"]="礙", ["碛"]="磧", ["碜"]="磣", ["碱"]="鹼", ["礼"]="禮", ["祃"]="禡", ["祎"]="禕", ["祢"]="禰", ["祯"]="禎", ["祷"]="禱", ["祸"]="禍", ["禀"]="稟", ["禄"]="祿", ["禅"]="禪", ["离"]="離", ["秃"]="禿", ["秆"]="稈", ["种"]="種", ["积"]="積", ["称"]="稱", ["秽"]="穢", ["秾"]="穠", ["稆"]="穭", ["税"]="稅", ["稣"]="穌", ["稳"]="穩", ["穑"]="穡", ["穞"]="穭", ["穷"]="窮", ["窃"]="竊", ["窍"]="竅", ["窎"]="窵", ["窑"]="窯", ["窜"]="竄", ["窝"]="窩", ["窥"]="窺", ["窦"]="竇", ["窭"]="窶", ["竖"]="豎", ["竞"]="競", ["笃"]="篤", ["笋"]="筍", ["笔"]="筆", ["笕"]="筧", ["笺"]="箋", ["笼"]="籠", ["笾"]="籩", ["筚"]="篳", ["筛"]="篩", ["筜"]="簹", ["筝"]="箏", ["筹"]="籌", ["筼"]="篔", ["签"]="簽", ["筿"]="篠", ["简"]="簡", ["箓"]="籙", ["箦"]="簀", ["箧"]="篋", ["箨"]="籜", ["箩"]="籮", ["箪"]="簞", ["箫"]="簫", ["篑"]="簣", ["篓"]="簍", ["篮"]="籃", ["篯"]="籛", ["篱"]="籬", ["簖"]="籪", ["籁"]="籟", ["籴"]="糴", ["类"]="類", ["籼"]="秈", ["粜"]="糶", ["粝"]="糲", ["粤"]="粵", ["粪"]="糞", ["粮"]="糧", ["糁"]="糝", ["糇"]="餱", ["紧"]="緊", ["絷"]="縶", ["纟"]="糹", ["纠"]="糾", ["纡"]="紆", ["红"]="紅", ["纣"]="紂", ["纤"]="纖", ["纥"]="紇", ["约"]="約", ["级"]="級", ["纨"]="紈", ["纩"]="纊", ["纪"]="紀", ["纫"]="紉", ["纬"]="緯", ["纭"]="紜", ["纮"]="紘", ["纯"]="純", ["纰"]="紕", ["纱"]="紗", ["纲"]="綱", ["纳"]="納", ["纴"]="紝", ["纵"]="縱", ["纶"]="綸", ["纷"]="紛", ["纸"]="紙", ["纹"]="紋", ["纺"]="紡", ["纻"]="紵", ["纼"]="紖", ["纽"]="紐", ["纾"]="紓", ["线"]="線", ["绀"]="紺", ["绁"]="紲", ["绂"]="紱", ["练"]="練", ["组"]="組", ["绅"]="紳", ["细"]="細", ["织"]="織", ["终"]="終", ["绉"]="縐", ["绊"]="絆", ["绋"]="紼", ["绌"]="絀", ["绍"]="紹", ["绎"]="繹", ["经"]="經", ["绐"]="紿", ["绑"]="綁", ["绒"]="絨", ["结"]="結", ["绔"]="絝", ["绕"]="繞", ["绖"]="絰", ["绗"]="絎", ["绘"]="繪", ["给"]="給", ["绚"]="絢", ["绛"]="絳", ["络"]="絡", ["绝"]="絕", ["绞"]="絞", ["统"]="統", ["绠"]="綆", ["绡"]="綃", ["绢"]="絹", ["绣"]="繡", ["绤"]="綌", ["绥"]="綏", ["绦"]="絛", ["继"]="繼", ["绨"]="綈", ["绩"]="績", ["绪"]="緒", ["绫"]="綾", ["绬"]="緓", ["续"]="續", ["绮"]="綺", ["绯"]="緋", ["绰"]="綽", ["绱"]="鞝", ["绲"]="緄", ["绳"]="繩", ["维"]="維", ["绵"]="綿", ["绶"]="綬", ["绷"]="繃", ["绸"]="綢", ["绹"]="綯", ["绺"]="綹", ["绻"]="綣", ["综"]="綜", ["绽"]="綻", ["绾"]="綰", ["绿"]="綠", ["缀"]="綴", ["缁"]="緇", ["缂"]="緙", ["缃"]="緗", ["缄"]="緘", ["缅"]="緬", ["缆"]="纜", ["缇"]="緹", ["缈"]="緲", ["缉"]="緝", ["缊"]="縕", ["缋"]="繢", ["缌"]="緦", ["缍"]="綞", ["缎"]="緞", ["缏"]="緶", ["缐"]="線", ["缑"]="緱", ["缒"]="縋", ["缓"]="緩", ["缔"]="締", ["缕"]="縷", ["编"]="編", ["缗"]="緡", ["缘"]="緣", ["缙"]="縉", ["缚"]="縛", ["缛"]="縟", ["缜"]="縝", ["缝"]="縫", ["缞"]="縗", ["缟"]="縞", ["缠"]="纏", ["缡"]="縭", ["缢"]="縊", ["缣"]="縑", ["缤"]="繽", ["缥"]="縹", ["缦"]="縵", ["缧"]="縲", ["缨"]="纓", ["缩"]="縮", ["缪"]="繆", ["缫"]="繅", ["缬"]="纈", ["缭"]="繚", ["缮"]="繕", ["缯"]="繒", ["缰"]="韁", ["缱"]="繾", ["缲"]="繰", ["缳"]="繯", ["缴"]="繳", ["缵"]="纘", ["罂"]="罌", ["网"]="網", ["罗"]="羅", ["罚"]="罰", ["罢"]="罷", ["罴"]="羆", ["羁"]="羈", ["羟"]="羥", ["羡"]="羨", ["翘"]="翹", ["翙"]="翽", ["翚"]="翬", ["耢"]="耮", ["耧"]="耬", ["耸"]="聳", ["耻"]="恥", ["聂"]="聶", ["聋"]="聾", ["职"]="職", ["聍"]="聹", ["联"]="聯", ["聩"]="聵", ["聪"]="聰", ["肃"]="肅", ["肠"]="腸", ["肤"]="膚", ["肮"]="骯", ["肴"]="餚", ["肾"]="腎", ["肿"]="腫", ["胀"]="脹", ["胁"]="脅", ["胆"]="膽", ["胑"]="膱", ["胜"]="勝", ["胧"]="朧", ["胨"]="腖", ["胪"]="臚", ["胫"]="脛", ["胶"]="膠", ["脉"]="脈", ["脍"]="膾", ["脏"]="髒", ["脐"]="臍", ["脑"]="腦", ["脓"]="膿", ["脔"]="臠", ["脚"]="腳", ["脱"]="脫", ["脶"]="腡", ["脸"]="臉", ["腊"]="臘", ["腌"]="醃", ["腘"]="膕", ["腭"]="齶", ["腻"]="膩", ["腼"]="靦", ["腽"]="膃", ["腾"]="騰", ["膑"]="臏", ["臜"]="臢", ["舆"]="輿", ["舣"]="艤", ["舰"]="艦", ["舱"]="艙", ["舻"]="艫", ["艰"]="艱", ["艳"]="豔", ["艺"]="藝", ["节"]="節", ["芈"]="羋", ["芗"]="薌", ["芜"]="蕪", ["芦"]="蘆", ["苁"]="蓯", ["苇"]="葦", ["苈"]="藶", ["苋"]="莧", ["苌"]="萇", ["苍"]="蒼", ["苎"]="苧", ["苏"]="蘇", ["苧"]="薴", ["苹"]="蘋", ["范"]="範", ["茎"]="莖", ["茏"]="蘢", ["茑"]="蔦", ["茔"]="塋", ["茕"]="煢", ["茧"]="繭", ["荆"]="荊", ["荐"]="薦", ["荙"]="薘", ["荚"]="莢", ["荛"]="蕘", ["荜"]="蓽", ["荝"]="萴", ["荞"]="蕎", ["荟"]="薈", ["荠"]="薺", ["荡"]="蕩", ["荣"]="榮", ["荤"]="葷", ["荥"]="滎", ["荦"]="犖", ["荧"]="熒", ["荨"]="蕁", ["荩"]="藎", ["荪"]="蓀", ["荫"]="蔭", ["荬"]="蕒", ["荭"]="葒", ["荮"]="葤", ["药"]="藥", ["莅"]="蒞", ["莱"]="萊", ["莲"]="蓮", ["莳"]="蒔", ["莴"]="萵", ["莶"]="薟", ["获"]="獲", ["莸"]="蕕", ["莹"]="瑩", ["莺"]="鶯", ["莼"]="蓴", ["萚"]="蘀", ["萝"]="蘿", ["萤"]="螢", ["营"]="營", ["萦"]="縈", ["萧"]="蕭", ["萨"]="薩", ["葱"]="蔥", ["蒀"]="蒕", ["蒇"]="蕆", ["蒉"]="蕢", ["蒋"]="蔣", ["蒌"]="蔞", ["蒏"]="醟", ["蓝"]="藍", ["蓟"]="薊", ["蓠"]="蘺", ["蓣"]="蕷", ["蓥"]="鎣", ["蓦"]="驀", ["蔷"]="薔", ["蔹"]="蘞", ["蔺"]="藺", ["蔼"]="藹", ["蕰"]="薀", ["蕲"]="蘄", ["蕴"]="蘊", ["薮"]="藪", ["藓"]="蘚", ["蘖"]="櫱", ["虏"]="虜", ["虑"]="慮", ["虚"]="虛", ["虫"]="蟲", ["虬"]="虯", ["虮"]="蟣", ["虱"]="蝨", ["虽"]="雖", ["虾"]="蝦", ["虿"]="蠆", ["蚀"]="蝕", ["蚁"]="蟻", ["蚂"]="螞", ["蚃"]="蠁", ["蚕"]="蠶", ["蚝"]="蠔", ["蚬"]="蜆", ["蛊"]="蠱", ["蛍"]="𬠰", ["蛎"]="蠣", ["蛏"]="蟶", ["蛮"]="蠻", ["蛰"]="蟄", ["蛱"]="蛺", ["蛲"]="蟯", ["蛳"]="螄", ["蛴"]="蠐", ["蜕"]="蛻", ["蜗"]="蝸", ["蜡"]="蠟", ["蝇"]="蠅", ["蝈"]="蟈", ["蝉"]="蟬", ["蝎"]="蠍", ["蝼"]="螻", ["蝾"]="蠑", ["螀"]="螿", ["螨"]="蟎", ["蟏"]="蠨", ["衅"]="釁", ["衔"]="銜", ["补"]="補", ["衬"]="襯", ["衮"]="袞", ["袄"]="襖", ["袅"]="裊", ["袆"]="褘", ["袜"]="襪", ["袭"]="襲", ["袯"]="襏", ["装"]="裝", ["裆"]="襠", ["裈"]="褌", ["裢"]="褳", ["裣"]="襝", ["裤"]="褲", ["裥"]="襇", ["褛"]="褸", ["褝"]="襌", ["褴"]="襤", ["襕"]="襴", ["见"]="見", ["观"]="觀", ["觃"]="覎", ["规"]="規", ["觅"]="覓", ["视"]="視", ["觇"]="覘", ["览"]="覽", ["觉"]="覺", ["觊"]="覬", ["觋"]="覡", ["觌"]="覿", ["觍"]="覥", ["觎"]="覦", ["觏"]="覯", ["觐"]="覲", ["觑"]="覷", ["觞"]="觴", ["触"]="觸", ["觯"]="觶", ["訚"]="誾", ["詟"]="讋", ["誉"]="譽", ["誊"]="謄", ["讠"]="訁", ["计"]="計", ["订"]="訂", ["讣"]="訃", ["认"]="認", ["讥"]="譏", ["讦"]="訐", ["讧"]="訌", ["讨"]="討", ["让"]="讓", ["讪"]="訕", ["讫"]="訖", ["讬"]="託", ["训"]="訓", ["议"]="議", ["讯"]="訊", ["记"]="記", ["讱"]="訒", ["讲"]="講", ["讳"]="諱", ["讴"]="謳", ["讵"]="詎", ["讶"]="訝", ["讷"]="訥", ["许"]="許", ["讹"]="訛", ["论"]="論", ["讻"]="訩", ["讼"]="訟", ["讽"]="諷", ["设"]="設", ["访"]="訪", ["诀"]="訣", ["证"]="證", ["诂"]="詁", ["诃"]="訶", ["评"]="評", ["诅"]="詛", ["识"]="識", ["诇"]="詗", ["诈"]="詐", ["诉"]="訴", ["诊"]="診", ["诋"]="詆", ["诌"]="謅", ["词"]="詞", ["诎"]="詘", ["诏"]="詔", ["诐"]="詖", ["译"]="譯", ["诒"]="詒", ["诓"]="誆", ["诔"]="誄", ["试"]="試", ["诖"]="詿", ["诗"]="詩", ["诘"]="詰", ["诙"]="詼", ["诚"]="誠", ["诛"]="誅", ["诜"]="詵", ["话"]="話", ["诞"]="誕", ["诟"]="詬", ["诠"]="詮", ["诡"]="詭", ["询"]="詢", ["诣"]="詣", ["诤"]="諍", ["该"]="該", ["详"]="詳", ["诧"]="詫", ["诨"]="諢", ["诩"]="詡", ["诪"]="譸", ["诫"]="誡", ["诬"]="誣", ["语"]="語", ["诮"]="誚", ["误"]="誤", ["诰"]="誥", ["诱"]="誘", ["诲"]="誨", ["诳"]="誑", ["说"]="說", ["诵"]="誦", ["诶"]="誒", ["请"]="請", ["诸"]="諸", ["诹"]="諏", ["诺"]="諾", ["读"]="讀", ["诼"]="諑", ["诽"]="誹", ["课"]="課", ["诿"]="諉", ["谀"]="諛", ["谁"]="誰", ["谂"]="諗", ["调"]="調", ["谄"]="諂", ["谅"]="諒", ["谆"]="諄", ["谇"]="誶", ["谈"]="談", ["谉"]="讅", ["谊"]="誼", ["谋"]="謀", ["谌"]="諶", ["谍"]="諜", ["谎"]="謊", ["谏"]="諫", ["谐"]="諧", ["谑"]="謔", ["谒"]="謁", ["谓"]="謂", ["谔"]="諤", ["谕"]="諭", ["谖"]="諼", ["谗"]="讒", ["谘"]="諮", ["谙"]="諳", ["谚"]="諺", ["谛"]="諦", ["谜"]="謎", ["谝"]="諞", ["谞"]="諝", ["谟"]="謨", ["谠"]="讜", ["谡"]="謖", ["谢"]="謝", ["谣"]="謠", ["谤"]="謗", ["谥"]="謚", ["谦"]="謙", ["谧"]="謐", ["谨"]="謹", ["谩"]="謾", ["谪"]="謫", ["谫"]="譾", ["谬"]="謬", ["谭"]="譚", ["谮"]="譖", ["谯"]="譙", ["谰"]="讕", ["谱"]="譜", ["谲"]="譎", ["谳"]="讞", ["谴"]="譴", ["谵"]="譫", ["谶"]="讖", ["豮"]="豶", ["贝"]="貝", ["贞"]="貞", ["负"]="負", ["贠"]="貟", ["贡"]="貢", ["财"]="財", ["责"]="責", ["贤"]="賢", ["败"]="敗", ["账"]="賬", ["货"]="貨", ["质"]="質", ["贩"]="販", ["贪"]="貪", ["贫"]="貧", ["贬"]="貶", ["购"]="購", ["贮"]="貯", ["贯"]="貫", ["贰"]="貳", ["贱"]="賤", ["贲"]="賁", ["贳"]="貰", ["贴"]="貼", ["贵"]="貴", ["贶"]="貺", ["贷"]="貸", ["贸"]="貿", ["费"]="費", ["贺"]="賀", ["贻"]="貽", ["贼"]="賊", ["贽"]="贄", ["贾"]="賈", ["贿"]="賄", ["赀"]="貲", ["赁"]="賃", ["赂"]="賂", ["赃"]="贓", ["资"]="資", ["赅"]="賅", ["赆"]="贐", ["赇"]="賕", ["赈"]="賑", ["赉"]="賚", ["赊"]="賒", ["赋"]="賦", ["赌"]="賭", ["赍"]="齎", ["赎"]="贖", ["赏"]="賞", ["赐"]="賜", ["赑"]="贔", ["赒"]="賙", ["赓"]="賡", ["赔"]="賠", ["赕"]="賧", ["赖"]="賴", ["赗"]="賵", ["赘"]="贅", ["赙"]="賻", ["赚"]="賺", ["赛"]="賽", ["赜"]="賾", ["赝"]="贗", ["赞"]="贊", ["赟"]="贇", ["赠"]="贈", ["赡"]="贍", ["赢"]="贏", ["赣"]="贛", ["赪"]="赬", ["赵"]="趙", ["赶"]="趕", ["趋"]="趨", ["趱"]="趲", ["趸"]="躉", ["跃"]="躍", ["跄"]="蹌", ["跞"]="躒", ["践"]="踐", ["跶"]="躂", ["跷"]="蹺", ["跸"]="蹕", ["跹"]="躚", ["跻"]="躋", ["踊"]="踴", ["踌"]="躊", ["踪"]="蹤", ["踬"]="躓", ["踯"]="躑", ["蹑"]="躡", ["蹒"]="蹣", ["蹰"]="躕", ["蹿"]="躥", ["躏"]="躪", ["躜"]="躦", ["躯"]="軀", ["车"]="車", ["轧"]="軋", ["轨"]="軌", ["轩"]="軒", ["轪"]="軑", ["轫"]="軔", ["转"]="轉", ["轭"]="軛", ["轮"]="輪", ["软"]="軟", ["轰"]="轟", ["轱"]="軲", ["轲"]="軻", ["轳"]="轤", ["轴"]="軸", ["轵"]="軹", ["轶"]="軼", ["轷"]="軤", ["轸"]="軫", ["轹"]="轢", ["轺"]="軺", ["轻"]="輕", ["轼"]="軾", ["载"]="載", ["轾"]="輊", ["轿"]="轎", ["辀"]="輈", ["辁"]="輇", ["辂"]="輅", ["较"]="較", ["辄"]="輒", ["辅"]="輔", ["辆"]="輛", ["辇"]="輦", ["辈"]="輩", ["辉"]="輝", ["辊"]="輥", ["辋"]="輞", ["辌"]="輬", ["辍"]="輟", ["辎"]="輜", ["辏"]="輳", ["辐"]="輻", ["辑"]="輯", ["辒"]="轀", ["输"]="輸", ["辔"]="轡", ["辕"]="轅", ["辖"]="轄", ["辗"]="輾", ["辘"]="轆", ["辙"]="轍", ["辚"]="轔", ["辞"]="辭", ["辟"]="闢", ["辩"]="辯", ["辫"]="辮", ["边"]="邊", ["辽"]="遼", ["达"]="達", ["迁"]="遷", ["过"]="過", ["迈"]="邁", ["运"]="運", ["还"]="還", ["这"]="這", ["进"]="進", ["远"]="遠", ["违"]="違", ["连"]="連", ["迟"]="遲", ["迩"]="邇", ["迳"]="逕", ["迹"]="跡", ["适"]="適", ["选"]="選", ["逊"]="遜", ["递"]="遞", ["逦"]="邐", ["逻"]="邏", ["遗"]="遺", ["遥"]="遙", ["邓"]="鄧", ["邝"]="鄺", ["邬"]="鄔", ["邮"]="郵", ["邹"]="鄒", ["邺"]="鄴", ["邻"]="鄰", ["郁"]="鬱", ["郏"]="郟", ["郐"]="鄶", ["郑"]="鄭", ["郓"]="鄆", ["郦"]="酈", ["郧"]="鄖", ["郸"]="鄲", ["酂"]="酇", ["酝"]="醞", ["酦"]="醱", ["酱"]="醬", ["酽"]="釅", ["酾"]="釃", ["酿"]="釀", ["采"]="採", ["释"]="釋", ["里"]="裡", ["鉴"]="鑒", ["銮"]="鑾", ["錾"]="鏨", ["钅"]="釒", ["钆"]="釓", ["钇"]="釔", ["针"]="針", ["钉"]="釘", ["钊"]="釗", ["钋"]="釙", ["钌"]="釕", ["钍"]="釷", ["钎"]="釺", ["钏"]="釧", ["钐"]="釤", ["钑"]="鈒", ["钒"]="釩", ["钓"]="釣", ["钔"]="鍆", ["钕"]="釹", ["钖"]="鍚", ["钗"]="釵", ["钘"]="鈃", ["钙"]="鈣", ["钚"]="鈈", ["钛"]="鈦", ["钜"]="鉅", ["钝"]="鈍", ["钞"]="鈔", ["钟"]="鐘", ["钠"]="鈉", ["钡"]="鋇", ["钢"]="鋼", ["钣"]="鈑", ["钤"]="鈐", ["钥"]="鑰", ["钦"]="欽", ["钧"]="鈞", ["钨"]="鎢", ["钩"]="鉤", ["钪"]="鈧", ["钫"]="鈁", ["钬"]="鈥", ["钭"]="鈄", ["钮"]="鈕", ["钯"]="鈀", ["钰"]="鈺", ["钱"]="錢", ["钲"]="鉦", ["钳"]="鉗", ["钴"]="鈷", ["钵"]="缽", ["钶"]="鈳", ["钷"]="鉕", ["钸"]="鈽", ["钹"]="鈸", ["钺"]="鉞", ["钻"]="鑽", ["钼"]="鉬", ["钽"]="鉭", ["钾"]="鉀", ["钿"]="鈿", ["铀"]="鈾", ["铁"]="鐵", ["铂"]="鉑", ["铃"]="鈴", ["铄"]="鑠", ["铅"]="鉛", ["铆"]="鉚", ["铇"]="鉋", ["铈"]="鈰", ["铉"]="鉉", ["铊"]="鉈", ["铋"]="鉍", ["铌"]="鈮", ["铍"]="鈹", ["铎"]="鐸", ["铏"]="鉶", ["铐"]="銬", ["铑"]="銠", ["铒"]="鉺", ["铓"]="鋩", ["铔"]="錏", ["铕"]="銪", ["铖"]="鋮", ["铗"]="鋏", ["铘"]="鋣", ["铙"]="鐃", ["铚"]="銍", ["铛"]="鐺", ["铜"]="銅", ["铝"]="鋁", ["铞"]="銱", ["铟"]="銦", ["铠"]="鎧", ["铡"]="鍘", ["铢"]="銖", ["铣"]="銑", ["铤"]="鋌", ["铥"]="銩", ["铦"]="銛", ["铧"]="鏵", ["铨"]="銓", ["铩"]="鎩", ["铪"]="鉿", ["铫"]="銚", ["铬"]="鉻", ["铭"]="銘", ["铮"]="錚", ["铯"]="銫", ["铰"]="鉸", ["铱"]="銥", ["铲"]="鏟", ["铳"]="銃", ["铴"]="鐋", ["铵"]="銨", ["银"]="銀", ["铷"]="銣", ["铸"]="鑄", ["铹"]="鐒", ["铺"]="鋪", ["铻"]="鋙", ["铼"]="錸", ["铽"]="鋱", ["链"]="鏈", ["铿"]="鏗", ["销"]="銷", ["锁"]="鎖", ["锂"]="鋰", ["锃"]="鋥", ["锄"]="鋤", ["锅"]="鍋", ["锆"]="鋯", ["锇"]="鋨", ["锈"]="鏽", ["锉"]="銼", ["锊"]="鋝", ["锋"]="鋒", ["锌"]="鋅", ["锍"]="鋶", ["锎"]="鐦", ["锏"]="鐧", ["锐"]="銳", ["锑"]="銻", ["锒"]="鋃", ["锓"]="鋟", ["锔"]="鋦", ["锕"]="錒", ["锖"]="錆", ["锗"]="鍺", ["锘"]="鍩", ["错"]="錯", ["锚"]="錨", ["锛"]="錛", ["锜"]="錡", ["锝"]="鍀", ["锞"]="錁", ["锟"]="錕", ["锠"]="錩", ["锡"]="錫", ["锢"]="錮", ["锣"]="鑼", ["锤"]="錘", ["锥"]="錐", ["锦"]="錦", ["锧"]="鑕", ["锨"]="鍁", ["锩"]="錈", ["锪"]="鍃", ["锫"]="錇", ["锬"]="錟", ["锭"]="錠", ["键"]="鍵", ["锯"]="鋸", ["锰"]="錳", ["锱"]="錙", ["锲"]="鍥", ["锳"]="鍈", ["锴"]="鍇", ["锵"]="鏘", ["锶"]="鍶", ["锷"]="鍔", ["锸"]="鍤", ["锹"]="鍬", ["锺"]="鍾", ["锻"]="鍛", ["锼"]="鎪", ["锽"]="鍠", ["锾"]="鍰", ["锿"]="鎄", ["镀"]="鍍", ["镁"]="鎂", ["镂"]="鏤", ["镃"]="鎡", ["镄"]="鐨", ["镅"]="鎇", ["镆"]="鏌", ["镇"]="鎮", ["镈"]="鎛", ["镉"]="鎘", ["镊"]="鑷", ["镋"]="钂", ["镌"]="鐫", ["镍"]="鎳", ["镎"]="鎿", ["镏"]="鎦", ["镐"]="鎬", ["镑"]="鎊", ["镒"]="鎰", ["镓"]="鎵", ["镔"]="鑌", ["镕"]="鎔", ["镖"]="鏢", ["镗"]="鏜", ["镘"]="鏝", ["镙"]="鏍", ["镚"]="鏰", ["镛"]="鏞", ["镜"]="鏡", ["镝"]="鏑", ["镞"]="鏃", ["镟"]="鏇", ["镠"]="鏐", ["镡"]="鐔", ["镢"]="鐝", ["镣"]="鐐", ["镤"]="鏷", ["镥"]="鑥", ["镦"]="鐓", ["镧"]="鑭", ["镨"]="鐠", ["镩"]="鑹", ["镪"]="鏹", ["镫"]="鐙", ["镬"]="鑊", ["镭"]="鐳", ["镮"]="鐶", ["镯"]="鐲", ["镰"]="鐮", ["镱"]="鐿", ["镲"]="鑔", ["镳"]="鑣", ["镴"]="鑞", ["镵"]="鑱", ["镶"]="鑲", ["长"]="長", ["门"]="門", ["闩"]="閂", ["闪"]="閃", ["闫"]="閆", ["闬"]="閈", ["闭"]="閉", ["问"]="問", ["闯"]="闖", ["闰"]="閏", ["闱"]="闈", ["闲"]="閒", ["闳"]="閎", ["间"]="間", ["闵"]="閔", ["闶"]="閌", ["闷"]="悶", ["闸"]="閘", ["闹"]="鬧", ["闺"]="閨", ["闻"]="聞", ["闼"]="闥", ["闽"]="閩", ["闾"]="閭", ["闿"]="闓", ["阀"]="閥", ["阁"]="閣", ["阂"]="閡", ["阃"]="閫", ["阄"]="鬮", ["阅"]="閱", ["阆"]="閬", ["阇"]="闍", ["阈"]="閾", ["阉"]="閹", ["阊"]="閶", ["阋"]="鬩", ["阌"]="閿", ["阍"]="閽", ["阎"]="閻", ["阏"]="閼", ["阐"]="闡", ["阑"]="闌", ["阒"]="闃", ["阓"]="闠", ["阔"]="闊", ["阕"]="闋", ["阖"]="闔", ["阗"]="闐", ["阘"]="闒", ["阙"]="闕", ["阚"]="闞", ["阛"]="闤", ["队"]="隊", ["阳"]="陽", ["阴"]="陰", ["阵"]="陣", ["阶"]="階", ["际"]="際", ["陆"]="陸", ["陇"]="隴", ["陈"]="陳", ["陉"]="陘", ["陕"]="陝", ["陦"]="隯", ["陧"]="隉", ["陨"]="隕", ["险"]="險", ["随"]="隨", ["隐"]="隱", ["隶"]="隸", ["隽"]="雋", ["难"]="難", ["雇"]="僱", ["雍"]="雝", ["雏"]="雛", ["雠"]="讎", ["雳"]="靂", ["雾"]="霧", ["霁"]="霽", ["霉"]="黴", ["霡"]="霢", ["霭"]="靄", ["靓"]="靚", ["靔"]="靝", ["静"]="靜", ["靥"]="靨", ["鞑"]="韃", ["鞒"]="鞽", ["鞯"]="韉", ["韦"]="韋", ["韧"]="韌", ["韨"]="韍", ["韩"]="韓", ["韪"]="韙", ["韫"]="韞", ["韬"]="韜", ["韵"]="韻", ["页"]="頁", ["顶"]="頂", ["顷"]="頃", ["顸"]="頇", ["项"]="項", ["顺"]="順", ["须"]="須", ["顼"]="頊", ["顽"]="頑", ["顾"]="顧", ["顿"]="頓", ["颀"]="頎", ["颁"]="頒", ["颂"]="頌", ["颃"]="頏", ["预"]="預", ["颅"]="顱", ["领"]="領", ["颇"]="頗", ["颈"]="頸", ["颉"]="頡", ["颊"]="頰", ["颋"]="頲", ["颌"]="頜", ["颍"]="潁", ["颎"]="熲", ["颏"]="頦", ["颐"]="頤", ["频"]="頻", ["颒"]="頮", ["颓"]="頹", ["颔"]="頷", ["颕"]="頴", ["颖"]="穎", ["颗"]="顆", ["题"]="題", ["颙"]="顒", ["颚"]="顎", ["颛"]="顓", ["颜"]="顏", ["额"]="額", ["颞"]="顳", ["颟"]="顢", ["颠"]="顛", ["颡"]="顙", ["颢"]="顥", ["颣"]="纇", ["颤"]="顫", ["颥"]="顬", ["颦"]="顰", ["颧"]="顴", ["风"]="風", ["飏"]="颺", ["飐"]="颭", ["飑"]="颮", ["飒"]="颯", ["飓"]="颶", ["飔"]="颸", ["飕"]="颼", ["飖"]="颻", ["飗"]="飀", ["飘"]="飄", ["飙"]="飆", ["飚"]="飈", ["飞"]="飛", ["飨"]="饗", ["餍"]="饜", ["饣"]="飠", ["饤"]="飣", ["饥"]="飢", ["饦"]="飥", ["饧"]="餳", ["饨"]="飩", ["饩"]="餼", ["饪"]="飪", ["饫"]="飫", ["饬"]="飭", ["饭"]="飯", ["饮"]="飲", ["饯"]="餞", ["饰"]="飾", ["饱"]="飽", ["饲"]="飼", ["饳"]="飿", ["饴"]="飴", ["饵"]="餌", ["饶"]="饒", ["饷"]="餉", ["饸"]="餄", ["饹"]="餎", ["饺"]="餃", ["饻"]="餏", ["饼"]="餅", ["饽"]="餑", ["饾"]="餖", ["饿"]="餓", ["馁"]="餒", ["馂"]="餕", ["馃"]="餜", ["馄"]="餛", ["馅"]="餡", ["馆"]="館", ["馇"]="餷", ["馈"]="饋", ["馉"]="餶", ["馊"]="餿", ["馋"]="饞", ["馌"]="饁", ["馍"]="饃", ["馎"]="餺", ["馏"]="餾", ["馐"]="饈", ["馑"]="饉", ["馒"]="饅", ["馓"]="饊", ["馔"]="饌", ["馕"]="饢", ["马"]="馬", ["驭"]="馭", ["驮"]="馱", ["驯"]="馴", ["驰"]="馳", ["驱"]="驅", ["驲"]="馹", ["驳"]="駁", ["驴"]="驢", ["驵"]="駔", ["驶"]="駛", ["驷"]="駟", ["驸"]="駙", ["驹"]="駒", ["驺"]="騶", ["驻"]="駐", ["驼"]="駝", ["驽"]="駑", ["驾"]="駕", ["驿"]="驛", ["骀"]="駘", ["骁"]="驍", ["骂"]="罵", ["骃"]="駰", ["骄"]="驕", ["骅"]="驊", ["骆"]="駱", ["骇"]="駭", ["骈"]="駢", ["骉"]="驫", ["骊"]="驪", ["骋"]="騁", ["验"]="驗", ["骍"]="騂", ["骎"]="駸", ["骏"]="駿", ["骐"]="騏", ["骑"]="騎", ["骒"]="騍", ["骓"]="騅", ["骔"]="騌", ["骕"]="驌", ["骖"]="驂", ["骗"]="騙", ["骘"]="騭", ["骙"]="騤", ["骚"]="騷", ["骛"]="騖", ["骜"]="驁", ["骝"]="騮", ["骞"]="騫", ["骟"]="騸", ["骠"]="驃", ["骡"]="騾", ["骢"]="驄", ["骣"]="驏", ["骤"]="驟", ["骥"]="驥", ["骦"]="驦", ["骧"]="驤", ["髅"]="髏", ["髋"]="髖", ["髌"]="髕", ["鬓"]="鬢", ["鬶"]="鬹", ["魇"]="魘", ["魉"]="魎", ["鱼"]="魚", ["鱽"]="魛", ["鱾"]="魢", ["鱿"]="魷", ["鲀"]="魨", ["鲁"]="魯", ["鲂"]="魴", ["鲃"]="䰾", ["鲄"]="魺", ["鲅"]="鮁", ["鲆"]="鮃", ["鲇"]="鮎", ["鲈"]="鱸", ["鲉"]="鮋", ["鲊"]="鮓", ["鲋"]="鮒", ["鲌"]="鮊", ["鲍"]="鮑", ["鲎"]="鱟", ["鲏"]="鮍", ["鲐"]="鮐", ["鲑"]="鮭", ["鲒"]="鮚", ["鲓"]="鮳", ["鲔"]="鮪", ["鲕"]="鮞", ["鲖"]="鮦", ["鲗"]="鰂", ["鲘"]="鮜", ["鲙"]="鱠", ["鲚"]="鱭", ["鲛"]="鮫", ["鲜"]="鮮", ["鲝"]="鮺", ["鲞"]="鯗", ["鲟"]="鱘", ["鲠"]="鯁", ["鲡"]="鱺", ["鲢"]="鰱", ["鲣"]="鰹", ["鲤"]="鯉", ["鲥"]="鰣", ["鲦"]="鰷", ["鲧"]="鯀", ["鲨"]="鯊", ["鲩"]="鯇", ["鲪"]="鮶", ["鲫"]="鯽", ["鲬"]="鯒", ["鲭"]="鯖", ["鲮"]="鯪", ["鲯"]="鯕", ["鲰"]="鯫", ["鲱"]="鯡", ["鲲"]="鯤", ["鲳"]="鯧", ["鲴"]="鯝", ["鲵"]="鯢", ["鲶"]="鯰", ["鲷"]="鯛", ["鲸"]="鯨", ["鲹"]="鰺", ["鲺"]="鯴", ["鲻"]="鯔", ["鲼"]="鱝", ["鲽"]="鰈", ["鲾"]="鰏", ["鲿"]="鱨", ["鳀"]="鯷", ["鳁"]="鰮", ["鳂"]="鰃", ["鳃"]="鰓", ["鳄"]="鱷", ["鳅"]="鰍", ["鳆"]="鰒", ["鳇"]="鰉", ["鳈"]="鰁", ["鳉"]="鱂", ["鳊"]="鯿", ["鳋"]="鰠", ["鳌"]="鰲", ["鳍"]="鰭", ["鳎"]="鰨", ["鳏"]="鰥", ["鳐"]="鰩", ["鳑"]="鰟", ["鳒"]="鰜", ["鳓"]="鰳", ["鳔"]="鰾", ["鳕"]="鱈", ["鳖"]="鱉", ["鳗"]="鰻", ["鳘"]="鰵", ["鳙"]="鱅", ["鳚"]="䲁", ["鳛"]="鰼", ["鳜"]="鱖", ["鳝"]="鱔", ["鳞"]="鱗", ["鳟"]="鱒", ["鳠"]="鱯", ["鳡"]="鱤", ["鳢"]="鱧", ["鳣"]="鱣", ["鳤"]="䲘", ["鸟"]="鳥", ["鸠"]="鳩", ["鸡"]="雞", ["鸢"]="鳶", ["鸣"]="鳴", ["鸤"]="鳲", ["鸥"]="鷗", ["鸦"]="鴉", ["鸧"]="鶬", ["鸨"]="鴇", ["鸩"]="鴆", ["鸪"]="鴣", ["鸫"]="鶇", ["鸬"]="鸕", ["鸭"]="鴨", ["鸮"]="鴞", ["鸯"]="鴦", ["鸰"]="鴒", ["鸱"]="鴟", ["鸲"]="鴝", ["鸳"]="鴛", ["鸴"]="鷽", ["鸵"]="鴕", ["鸶"]="鷥", ["鸷"]="鷙", ["鸸"]="鴯", ["鸹"]="鴰", ["鸺"]="鵂", ["鸻"]="鴴", ["鸼"]="鵃", ["鸽"]="鴿", ["鸾"]="鸞", ["鸿"]="鴻", ["鹀"]="鵐", ["鹁"]="鵓", ["鹂"]="鸝", ["鹃"]="鵑", ["鹄"]="鵠", ["鹅"]="鵝", ["鹆"]="鵒", ["鹇"]="鷳", ["鹈"]="鵜", ["鹉"]="鵡", ["鹊"]="鵲", ["鹋"]="鶓", ["鹌"]="鵪", ["鹍"]="鵾", ["鹎"]="鵯", ["鹏"]="鵬", ["鹐"]="鵮", ["鹑"]="鶉", ["鹒"]="鶊", ["鹓"]="鵷", ["鹔"]="鷫", ["鹕"]="鶘", ["鹖"]="鶡", ["鹗"]="鶚", ["鹘"]="鶻", ["鹙"]="鶖", ["鹚"]="鶿", ["鹛"]="鶥", ["鹜"]="鶩", ["鹝"]="鷊", ["鹞"]="鷂", ["鹟"]="鶲", ["鹠"]="鶹", ["鹡"]="鶺", ["鹢"]="鷁", ["鹣"]="鶼", ["鹤"]="鶴", ["鹥"]="鷖", ["鹦"]="鸚", ["鹧"]="鷓", ["鹨"]="鷚", ["鹩"]="鷯", ["鹪"]="鷦", ["鹫"]="鷲", ["鹬"]="鷸", ["鹭"]="鷺", ["鹮"]="䴉", ["鹯"]="鸇", ["鹰"]="鷹", ["鹱"]="鸌", ["鹲"]="鸏", ["鹳"]="鸛", ["鹴"]="鸘", ["鹾"]="鹺", ["麦"]="麥", ["麸"]="麩", ["麹"]="麴", ["黄"]="黃", ["黉"]="黌", ["黡"]="黶", ["黩"]="黷", ["黪"]="黲", ["黾"]="黽", ["鼋"]="黿", ["鼌"]="鼂", ["鼍"]="鼉", ["鼗"]="鞀", ["鼹"]="鼴", ["齐"]="齊", ["齑"]="齏", ["齿"]="齒", ["龀"]="齔", ["龁"]="齕", ["龂"]="齗", ["龃"]="齟", ["龄"]="齡", ["龅"]="齙", ["龆"]="齠", ["龇"]="齜", ["龈"]="齦", ["龉"]="齬", ["龊"]="齪", ["龋"]="齲", ["龌"]="齷", ["龙"]="龍", ["龚"]="龔", ["龛"]="龕", ["龟"]="龜", ["鿎"]="䃮", ["鿏"]="䥑", ["鿒"]="鿓", ["鿔"]="鎶", ["鿕"]="𱆥", ["鿟"]="鿠", ["鿭"]="鉨", ["鿰"]="𬉧", ["鿲"]="𧰎", ["鿴"]="鮗", ["鿵"]="𩷓", ["鿶"]="𩷕", ["鿷"]="𩹎", ["鿸"]="鿳", ["鿹"]="𬵨", ["鿺"]="𪄳", ["𠀾"]="𠁞", ["𠃓"]="昜", ["𠆲"]="儣", ["𠆿"]="𠌥", ["𠇐"]="㒜", ["𠇹"]="俓", ["𠈙"]="俴", ["𠉂"]="㒓", ["𠊟"]="僶", ["𠋆"]="儭", ["𠛅"]="剾", ["𠡠"]="勑", ["𠬤"]="睪", ["𠯟"]="哯", ["𠯠"]="噅", ["𠰱"]="㘉", ["𠰷"]="嚧", ["𠵾"]="㗲", ["𡍣"]="𡔖", ["𡒄"]="壈", ["𡛰"]="嬂", ["𡝠"]="㜷", ["𡞋"]="㜗", ["𡞱"]="㜢", ["𡠟"]="孎", ["𡥧"]="孻", ["𡨡"]="寏", ["𡩁"]="寴", ["𡵝"]="嵸", ["𡶴"]="嵼", ["𡺃"]="嶈", ["𡺄"]="嶘", ["𢀖"]="巠", ["𢋈"]="㢝", ["𢗓"]="㦛", ["𢙏"]="愻", ["𢙐"]="憹", ["𢙒"]="憢", ["𢙓"]="懀", ["𢚾"]="愌", ["𢛯"]="㦎", ["𢧐"]="戰", ["𢪓"]="擧", ["𢫊"]="𢷮", ["𢫘"]="攎", ["𢫬"]="摋", ["𢬍"]="擫", ["𢭏"]="擣", ["𢽾"]="斅", ["𣃁"]="斸", ["𣆐"]="曥", ["𣍨"]="𦢈", ["𣍯"]="腪", ["𣍰"]="脥", ["𣎑"]="臗", ["𣏢"]="槫", ["𣐕"]="桱", ["𣒌"]="楇", ["𣓿"]="橯", ["𣔌"]="樤", ["𣗊"]="樠", ["𣗋"]="欓", ["𣗙"]="㰙", ["𣘐"]="㯤", ["𣘴"]="檭", ["𣚚"]="欘", ["𣞎"]="𣠩", ["𣨼"]="殢", ["𣯣"]="𣯩", ["𣱝"]="氭", ["𣲗"]="湋", ["𣲘"]="潕", ["𣳆"]="㵗", ["𣶇"]="灑", ["𣶩"]="澅", ["𣷷"]="𤅶", ["𣸣"]="濆", ["𣸨"]="濙", ["𣺼"]="灙", ["𣽷"]="瀃", ["𤆓"]="爌", ["𤆢"]="㷍", ["𤇃"]="爄", ["𤇄"]="熌", ["𤇭"]="爖", ["𤇹"]="熚", ["𤇻"]="𭶙", ["𤈶"]="熉", ["𤈷"]="㷿", ["𤊀"]="𤒎", ["𤊰"]="𤓩", ["𤋏"]="熡", ["𤎺"]="㸇", ["𤎻"]="𤑳", ["𤙯"]="𤛮", ["𤝢"]="𤢟", ["𤞃"]="獩", ["𤞤"]="玁", ["𤠋"]="㺏", ["𤥺"]="瑍", ["𤦀"]="瓕", ["𤩽"]="瓛", ["𤶊"]="癐", ["𤶧"]="𤸫", ["𤻊"]="㿗", ["𤽯"]="㿧", ["𤾀"]="皟", ["𤿲"]="麬", ["𥁢"]="䀉", ["𥅴"]="䀹", ["𥆧"]="瞤", ["𥇢"]="䁪", ["𥎝"]="䂎", ["𥐟"]="礒", ["𥐰"]="𥕥", ["𥐻"]="碙", ["𥒎"]="碊", ["𥘌"]="禨", ["𥟂"]="䅘", ["𥫣"]="籅", ["𥬞"]="籋", ["𥬠"]="篘", ["𥮜"]="䉲", ["𥮾"]="篸", ["𥱔"]="𥵃", ["𥸯"]="䊪", ["𥹥"]="𥼽", ["𥺅"]="䊭", ["𦈉"]="緷", ["𦈌"]="綀", ["𦈎"]="繟", ["𦈏"]="緍", ["𦈐"]="縺", ["𦈑"]="緸", ["𦈓"]="䋿", ["𦈔"]="縎", ["𦈕"]="緰", ["𦈖"]="䌈", ["𦈘"]="䌋", ["𦈙"]="䌰", ["𦈚"]="縬", ["𦈛"]="繓", ["𦈜"]="䌖", ["𦈝"]="繏", ["𦈞"]="䌟", ["𦈟"]="䌝", ["𦈠"]="䌥", ["𦈡"]="繻", ["𦍠"]="䍽", ["𦛨"]="朥", ["𦝼"]="膢", ["𦬼"]="薾", ["𦭬"]="𢄋", ["𦮜"]="𣂈", ["𦰏"]="蓧", ["𦰴"]="䕳", ["𦲞"]="蔘", ["𦴇"]="𦾵", ["𦻕"]="蘟", ["𦼖"]="𥣻", ["𧉞"]="䗿", ["𧊄"]="蟙", ["𧏖"]="蠙", ["𧏗"]="蠀", ["𧑏"]="蠾", ["𧜭"]="䙱", ["𧝝"]="襰", ["𧮪"]="詀", ["𧹑"]="䞈", ["𧹒"]="買", ["𧹕"]="䝻", ["𧹖"]="賟", ["𧹗"]="贃", ["𨀁"]="躘", ["𨂺"]="𨈊", ["𨄄"]="𨈌", ["𨅛"]="䠱", ["𨅬"]="躝", ["𨐅"]="軗", ["𨐈"]="輄", ["𨑹"]="䢨", ["𨧮"]="䥸", ["𨰾"]="鎷", ["𨰿"]="釳", ["𨱁"]="鈠", ["𨱂"]="鈋", ["𨱃"]="鈲", ["𨱄"]="鈯", ["𨱅"]="鉁", ["𨱆"]="龯", ["𨱇"]="銶", ["𨱈"]="鋉", ["𨱉"]="鍄", ["𨱋"]="錂", ["𨱌"]="鏆", ["𨱍"]="鎯", ["𨱎"]="鍮", ["𨱏"]="鎝", ["𨱑"]="鐄", ["𨱒"]="鏉", ["𨱓"]="鐎", ["𨱔"]="鐏", ["𨱖"]="䥩", ["𨷿"]="䦳", ["𨸂"]="閍", ["𨸃"]="閐", ["𨸄"]="䦘", ["𨸟"]="䧢", ["𩉜"]="鞿", ["𩏼"]="䪏", ["𩏽"]="𩏪", ["𩏿"]="䪘", ["𩐀"]="䪗", ["𩖖"]="顃", ["𩖗"]="䫴", ["𩙥"]="颰", ["𩙧"]="䬞", ["𩙪"]="颷", ["𩙫"]="颾", ["𩙮"]="䬘", ["𩙯"]="䬝", ["𩠃"]="𩛩", ["𩠇"]="䭀", ["𩠈"]="䭃", ["𩠌"]="餸", ["𩧨"]="駎", ["𩧪"]="䮾", ["𩧫"]="駚", ["𩧭"]="䭿", ["𩧯"]="驋", ["𩧰"]="䮝", ["𩧱"]="𩥉", ["𩧲"]="駧", ["𩧴"]="駩", ["𩧺"]="駶", ["𩧼"]="𩣺", ["𩧿"]="䮠", ["𩨀"]="騔", ["𩨁"]="䮞", ["𩨃"]="騝", ["𩨄"]="騪", ["𩨇"]="䮫", ["𩨈"]="騟", ["𩨊"]="騚", ["𩨍"]="𩥇", ["𩨎"]="龭", ["𩨏"]="䮳", ["𩩈"]="䯤", ["𩬣"]="𩭙", ["𩭹"]="鬖", ["𩰰"]="𩰹", ["𩴌"]="𩴵", ["𩽹"]="魥", ["𩽺"]="𩵩", ["𩽼"]="鯶", ["𩽾"]="鮟", ["𩾁"]="鯄", ["𩾂"]="䲖", ["𩾃"]="鮸", ["𩾇"]="鯱", ["𩾈"]="䱙", ["𩾊"]="䱬", ["𩾋"]="䱰", ["𩾌"]="鱇", ["𪉂"]="䲰", ["𪉃"]="鳼", ["𪉅"]="𪀦", ["𪉆"]="鴲", ["𪉊"]="鷨", ["𪉍"]="鵚", ["𪉑"]="鷔", ["𪎈"]="䴬", ["𪎊"]="麨", ["𪎋"]="䴴", ["𪎌"]="麳", ["𪑅"]="䵳", ["𪚐"]="𪘯", ["𪛞"]="𤪤", ["𪞝"]="凙", ["𪟎"]="㔋", ["𪟝"]="勣", ["𪠏"]="𥀬", ["𪠟"]="㓄", ["𪠳"]="唓", ["𪠵"]="㖮", ["𪠸"]="嚛", ["𪠽"]="噹", ["𪡀"]="嘺", ["𪡃"]="嘪", ["𪡋"]="噞", ["𪡏"]="嗹", ["𪡛"]="㗿", ["𪡞"]="嘳", ["𪢌"]="㘓", ["𪢐"]="𡃤", ["𪢕"]="嚽", ["𪢠"]="囒", ["𪢮"]="圞", ["𪢸"]="墲", ["𪣆"]="埬", ["𪣑"]="𮰮", ["𪣒"]="堚", ["𪣻"]="塿", ["𪥫"]="孇", ["𪥰"]="嬣", ["𪥿"]="嬻", ["𪧀"]="孾", ["𪧘"]="寠", ["𪨇"]="𮱣", ["𪨊"]="㞞", ["𪨗"]="屩", ["𪨧"]="崙", ["𪨶"]="輋", ["𪨷"]="巗", ["𪩇"]="㟺", ["𪩎"]="巊", ["𪩘"]="巘", ["𪩷"]="幝", ["𪩸"]="幩", ["𪪏"]="廬", ["𪪑"]="㢗", ["𪪞"]="廧", ["𪪴"]="𢍰", ["𪪼"]="彃", ["𪫌"]="徿", ["𪫷"]="㦞", ["𪫺"]="憸", ["𪭢"]="摐", ["𪭵"]="掚", ["𪭾"]="撊", ["𪮃"]="㨻", ["𪮋"]="㩋", ["𪮖"]="撧", ["𪮳"]="𢺳", ["𪮶"]="攋", ["𪯋"]="㪎", ["𪰶"]="曊", ["𪱥"]="膹", ["𪱷"]="梖", ["𪱾"]="檷", ["𪲎"]="櫅", ["𪲔"]="欐", ["𪲮"]="櫠", ["𪳍"]="欇", ["𪵑"]="毊", ["𪵣"]="霼", ["𪵱"]="濿", ["𪶄"]="溡", ["𪷍"]="㵾", ["𪷽"]="灒", ["𪸕"]="熂", ["𪸩"]="煇", ["𪹳"]="爥", ["𪺪"]="𤜆", ["𪺭"]="犞", ["𪺴"]="㹙", ["𪺷"]="獊", ["𪺻"]="㺜", ["𪺽"]="猌", ["𪻐"]="瑽", ["𪻨"]="瓄", ["𪻲"]="瑻", ["𪻺"]="璝", ["𪼋"]="㻶", ["𪽈"]="畼", ["𪽪"]="痮", ["𪽮"]="㿖", ["𪽷"]="瘱", ["𪾔"]="盨", ["𪾢"]="睍", ["𪾣"]="眝", ["𪾦"]="矑", ["𪾸"]="矉", ["𪿫"]="礮", ["𫀨"]="䅐", ["𫀬"]="䅳", ["𫁂"]="䆉", ["𫁟"]="竱", ["𫁡"]="鴗", ["𫁲"]="䉑", ["𫁳"]="𥯤", ["𫁷"]="䉶", ["𫂃"]="簢", ["𫂆"]="簂", ["𫂈"]="䉬", ["𫄚"]="䊺", ["𫄛"]="紟", ["𫄜"]="䋃", ["𫄞"]="䋔", ["𫄟"]="絁", ["𫄠"]="絙", ["𫄡"]="絧", ["𫄢"]="絥", ["𫄣"]="繷", ["𫄤"]="繨", ["𫄥"]="纚", ["𫄧"]="綖", ["𫄨"]="絺", ["𫄩"]="䋦", ["𫄫"]="綟", ["𫄬"]="緤", ["𫄭"]="緮", ["𫄮"]="䋼", ["𫄰"]="縍", ["𫄱"]="繬", ["𫄲"]="縸", ["𫄳"]="縰", ["𫄴"]="繂", ["𫄶"]="繈", ["𫄷"]="繶", ["𫄸"]="纁", ["𫄹"]="纗", ["𫅅"]="䍤", ["𫅗"]="羵", ["𫅭"]="䎙", ["𫆏"]="聻", ["𫇘"]="𦧺", ["𫇦"]="𤇾", ["𫇭"]="蒍", ["𫇴"]="蒭", ["𫈉"]="蕳", ["𫈎"]="葝", ["𫈟"]="蔯", ["𫈵"]="蕝", ["𫉁"]="薆", ["𫉄"]="藷", ["𫊪"]="䗅", ["𫊮"]="蠦", ["𫊸"]="蟜", ["𫊻"]="蟳", ["𫋇"]="蟂", ["𫋌"]="蟘", ["𫋲"]="䙔", ["𫋷"]="襗", ["𫋹"]="襓", ["𫋻"]="襘", ["𫌀"]="襀", ["𫌇"]="襵", ["𫌋"]="𧞫", ["𫌨"]="覼", ["𫌪"]="覛", ["𫌭"]="覹", ["𫌯"]="䚩", ["𫍙"]="訑", ["𫍚"]="訞", ["𫍛"]="訜", ["𫍜"]="詓", ["𫍠"]="䛄", ["𫍡"]="詑", ["𫍢"]="譊", ["𫍣"]="詷", ["𫍤"]="譑", ["𫍥"]="誂", ["𫍦"]="譨", ["𫍧"]="誺", ["𫍨"]="誫", ["𫍩"]="諣", ["𫍪"]="誋", ["𫍫"]="䛳", ["𫍬"]="誷", ["𫍮"]="誳", ["𫍯"]="諴", ["𫍰"]="諰", ["𫍱"]="諯", ["𫍲"]="謏", ["𫍳"]="諥", ["𫍴"]="謱", ["𫍵"]="謸", ["𫍷"]="謉", ["𫍸"]="謆", ["𫍹"]="謯", ["𫍻"]="譆", ["𫍽"]="譞", ["𫍿"]="譾", ["𫎆"]="豵", ["𫎌"]="貗", ["𫎦"]="贚", ["𫎧"]="䝭", ["𫎩"]="賝", ["𫎪"]="䞋", ["𫎫"]="贉", ["𫎬"]="贑", ["𫎭"]="䞓", ["𫎱"]="䟐", ["𫎳"]="䟆", ["𫎺"]="䟃", ["𫏃"]="䠆", ["𫏆"]="蹳", ["𫏋"]="蹻", ["𫏌"]="𨂐", ["𫏐"]="蹔", ["𫏕"]="𨆪", ["𫐄"]="軏", ["𫐆"]="轣", ["𫐇"]="軜", ["𫐈"]="軷", ["𫐉"]="軨", ["𫐊"]="軬", ["𫐌"]="軿", ["𫐎"]="輢", ["𫐏"]="輖", ["𫐐"]="輗", ["𫐑"]="輨", ["𫐒"]="輷", ["𫐓"]="輮", ["𫐕"]="轊", ["𫐖"]="轇", ["𫐗"]="轐", ["𫐘"]="轗", ["𫐙"]="轠", ["𫐷"]="遱", ["𫑘"]="鄟", ["𫑡"]="鄳", ["𫑷"]="醶", ["𫓥"]="釟", ["𫓦"]="釨", ["𫓧"]="鈇", ["𫓩"]="鏦", ["𫓪"]="鈆", ["𫓬"]="鉔", ["𫓭"]="鉠", ["𫓯"]="銈", ["𫓰"]="銊", ["𫓱"]="鐈", ["𫓲"]="銁", ["𫓴"]="鉾", ["𫓵"]="鋠", ["𫓶"]="鋗", ["𫓸"]="錽", ["𫓹"]="錤", ["𫓺"]="鐪", ["𫓻"]="錜", ["𫓽"]="錝", ["𫓾"]="錥", ["𫔁"]="鐼", ["𫔂"]="鍉", ["𫔃"]="𨰲", ["𫔄"]="鍒", ["𫔅"]="鎍", ["𫔆"]="䥯", ["𫔇"]="鎞", ["𫔈"]="鎙", ["𫔉"]="𨰃", ["𫔋"]="䥗", ["𫔌"]="鏾", ["𫔍"]="鐇", ["𫔎"]="鐍", ["𫔔"]="鑴", ["𫔭"]="開", ["𫔯"]="閗", ["𫔰"]="閞", ["𫔴"]="閵", ["𫔵"]="䦯", ["𫔶"]="闑", ["𫕥"]="霣", ["𫖃"]="靧", ["𫖅"]="䪊", ["𫖇"]="鞾", ["𫖒"]="韠", ["𫖔"]="韛", ["𫖕"]="韝", ["𫖫"]="䪴", ["𫖬"]="䪾", ["𫖮"]="顗", ["𫖯"]="頫", ["𫖰"]="䫂", ["𫖱"]="䫀", ["𫖲"]="䫟", ["𫖳"]="頵", ["𫖵"]="𩓥", ["𫖶"]="顅", ["𫖸"]="願", ["𫖹"]="顣", ["𫖺"]="䫶", ["𫗇"]="䫻", ["𫗉"]="𩗴", ["𫗊"]="䬓", ["𫗋"]="飋", ["𫗚"]="𩟗", ["𫗞"]="飦", ["𫗟"]="䬧", ["𫗠"]="餦", ["𫗢"]="飵", ["𫗣"]="飶", ["𫗥"]="餫", ["𫗦"]="餔", ["𫗧"]="餗", ["𫗩"]="饠", ["𫗪"]="餧", ["𫗫"]="餬", ["𫗬"]="餪", ["𫗮"]="餭", ["𫗰"]="䭔", ["𫗱"]="䭑", ["𫗴"]="饘", ["𫗵"]="饟", ["𫘛"]="馯", ["𫘜"]="馼", ["𫘝"]="駃", ["𫘞"]="駞", ["𫘟"]="駊", ["𫘠"]="駤", ["𫘡"]="駫", ["𫘣"]="駻", ["𫘤"]="騃", ["𫘥"]="騉", ["𫘦"]="騊", ["𫘧"]="騄", ["𫘨"]="騠", ["𫘩"]="騜", ["𫘪"]="騵", ["𫘫"]="騴", ["𫘬"]="騱", ["𫘭"]="騻", ["𫘮"]="䮰", ["𫘯"]="驓", ["𫘰"]="驙", ["𫘱"]="驨", ["𫘽"]="鬠", ["𫚈"]="鱮", ["𫚉"]="魟", ["𫚊"]="鰑", ["𫚋"]="鱄", ["𫚌"]="魦", ["𫚍"]="魵", ["𫚏"]="䱁", ["𫚐"]="䱀", ["𫚑"]="鮅", ["𫚒"]="鮄", ["𫚓"]="鮤", ["𫚔"]="鮰", ["𫚕"]="鰤", ["𫚖"]="鮆", ["𫚗"]="鮯", ["𫚙"]="鯆", ["𫚚"]="鮿", ["𫚛"]="鮵", ["𫚜"]="䲅", ["𫚞"]="鯬", ["𫚠"]="䱧", ["𫚡"]="鯞", ["𫚢"]="鰋", ["𫚣"]="鯾", ["𫚤"]="鰦", ["𫚥"]="鰕", ["𫚦"]="鰫", ["𫚧"]="鰽", ["𫚪"]="鱊", ["𫚫"]="鱢", ["𫚭"]="鱲", ["𫛚"]="鳽", ["𫛛"]="鳷", ["𫛜"]="鴀", ["𫛝"]="鴅", ["𫛞"]="鴃", ["𫛟"]="鸗", ["𫛡"]="鴔", ["𫛢"]="鸋", ["𫛣"]="鴥", ["𫛤"]="鴐", ["𫛥"]="鵊", ["𫛦"]="鴮", ["𫛨"]="鵧", ["𫛩"]="鴳", ["𫛪"]="鴽", ["𫛫"]="鶰", ["𫛬"]="䳜", ["𫛭"]="鵟", ["𫛮"]="䳤", ["𫛯"]="鶭", ["𫛰"]="䳢", ["𫛱"]="鵫", ["𫛳"]="鵩", ["𫛴"]="鷤", ["𫛵"]="鶌", ["𫛶"]="鶒", ["𫛷"]="鶦", ["𫛸"]="鶗", ["𫛺"]="䳧", ["𫛼"]="䳫", ["𫛽"]="鷅", ["𫜀"]="鷐", ["𫜁"]="鷩", ["𫜃"]="鷣", ["𫜄"]="鷷", ["𫜅"]="䴋", ["𫜑"]="麷", ["𫜒"]="䴱", ["𫜔"]="䴽", ["𫜙"]="䵴", ["𫜨"]="䶕", ["𫜪"]="齩", ["𫜬"]="齰", ["𫜭"]="齭", ["𫜮"]="齴", ["𫜰"]="齾", ["𫜲"]="龓", ["𫜳"]="䶲", ["𫜷"]="𨞪", ["𫝈"]="㑮", ["𫝋"]="𠐊", ["𫝦"]="㛝", ["𫝧"]="㜐", ["𫝨"]="媈", ["𫝩"]="嬦", ["𫝪"]="𡟫", ["𫝫"]="婡", ["𫝬"]="嬇", ["𫝭"]="孆", ["𫝮"]="孄", ["𫝵"]="嶹", ["𫞅"]="𣎟", ["𫞗"]="潣", ["𫞚"]="澬", ["𫞛"]="㶆", ["𫞝"]="灍", ["𫞠"]="爧", ["𫞡"]="爃", ["𫞢"]="𤛱", ["𫞣"]="㹽", ["𫞥"]="珼", ["𫞦"]="璾", ["𫞧"]="𤩂", ["𫞨"]="璼", ["𫞩"]="璊", ["𫞷"]="𥢶", ["𫟃"]="絍", ["𫟄"]="綋", ["𫟅"]="綡", ["𫟆"]="緟", ["𫟇"]="𦆲", ["𫟑"]="䖅", ["𫟕"]="䕤", ["𫟞"]="訨", ["𫟟"]="詊", ["𫟠"]="譂", ["𫟡"]="誴", ["𫟢"]="䜖", ["𫟤"]="䡐", ["𫟥"]="䡩", ["𫟦"]="䡵", ["𫟫"]="𨞺", ["𫟬"]="𨟊", ["𫟲"]="釚", ["𫟳"]="釲", ["𫟴"]="鈖", ["𫟵"]="鈗", ["𫟶"]="銏", ["𫟷"]="鉝", ["𫟸"]="鉽", ["𫟹"]="鉷", ["𫟺"]="䤤", ["𫟻"]="銂", ["𫟼"]="鐽", ["𫟽"]="𨧰", ["𫟾"]="𨩰", ["𫟿"]="鎈", ["𫠀"]="䥄", ["𫠁"]="鑉", ["𫠂"]="閝", ["𫠅"]="韚", ["𫠆"]="頍", ["𫠇"]="𩖰", ["𫠈"]="䫾", ["𫠊"]="䮄", ["𫠋"]="騼", ["𫠌"]="𩦠", ["𫠏"]="𩵦", ["𫠐"]="魽", ["𫠑"]="䱸", ["𫠒"]="鱆", ["𫠖"]="𩿅", ["𫠜"]="齯", ["𫢒"]="儱", ["𫢙"]="働", ["𫢪"]="僆", ["𫢬"]="僗", ["𫢭"]="儰", ["𫢲"]="𫣴", ["𫢸"]="僤", ["𫢺"]="傪", ["𫣉"]="儖", ["𫣊"]="僾", ["𫦅"]="㔅", ["𫦌"]="㔃", ["𫦕"]="𠠜", ["𫦩"]="㔝", ["𫦰"]="𫦸", ["𫦳"]="㔢", ["𫧃"]="𣍐", ["𫧮"]="𪋿", ["𫧯"]="卨", ["𫧿"]="贕", ["𫩕"]="嚝", ["𫩛"]="㗰", ["𫩤"]="㗼", ["𫩩"]="㗙", ["𫩫"]="嚈", ["𫩳"]="𠼮", ["𫩺"]="嚍", ["𫪀"]="㗻", ["𫪁"]="唻", ["𫪂"]="㘙", ["𫪄"]="𠼤", ["𫪘"]="𡂿", ["𫪧"]="嘄", ["𫪺"]="㗣", ["𫫇"]="噁", ["𫫦"]="嚪", ["𫫾"]="嚬", ["𫬐"]="㘔", ["𫭞"]="塼", ["𫭟"]="塸", ["𫭢"]="埨", ["𫭨"]="墢", ["𫭪"]="墝", ["𫭲"]="壧", ["𫭼"]="𡑍", ["𫮃"]="墠", ["𫮅"]="墋", ["𫮜"]="㙬", ["𫯥"]="奯", ["𫰂"]="奲", ["𫰍"]="媁", ["𫰐"]="婜", ["𫰛"]="娙", ["𫰠"]="㜭", ["𫰡"]="嬅", ["𫰢"]="嬒", ["𫰨"]="㜥", ["𫰰"]="嬐", ["𫰹"]="嫢", ["𫱕"]="㜮", ["𫲗"]="㜺", ["𫳃"]="㝞", ["𫵵"]="崵", ["𫵶"]="𡺨", ["𫵷"]="㠣", ["𫵸"]="𡷨", ["𫶄"]="𫶦", ["𫶅"]="㠁", ["𫶇"]="嵽", ["𫶊"]="𡽳", ["𫶕"]="巆", ["𫶲"]="𣫒", ["𫷅"]="㡓", ["𫷌"]="𢅡", ["𫷬"]="庲", ["𫷮"]="廕", ["𫷷"]="廞", ["𫷹"]="廔", ["𫷾"]="廮", ["𫸩"]="彄", ["𫹮"]="懙", ["𫹴"]="愇", ["𫹽"]="慯", ["𫺁"]="㤲", ["𫺂"]="悏", ["𫺆"]="㦊", ["𫺊"]="懠", ["𫺌"]="愩", ["𫺓"]="㦖", ["𫺘"]="憦", ["𫺷"]="戁", ["𫻁"]="㦦", ["𫼝"]="搊", ["𫼟"]="摥", ["𫼣"]="𢳂", ["𫼤"]="𢯩", ["𫼥"]="㨟", ["𫼧"]="撶", ["𫼪"]="摌", ["𫼮"]="擃", ["𫼱"]="摃", ["𫼵"]="𢲸", ["𫼾"]="𢲩", ["𫽀"]="㨥", ["𫽁"]="摙", ["𫽇"]="㩇", ["𫽊"]="㩭", ["𫽋"]="攞", ["𫽣"]="摪", ["𫽥"]="攑", ["𫽧"]="㩌", ["𫽮"]="攩", ["𫾉"]="㩣", ["𫿳"]="㪻", ["𬀩"]="暐", ["𬀪"]="晛", ["𬀮"]="㬣", ["𬀱"]="暟", ["𬁢"]="曫", ["𬁵"]="膒", ["𬁺"]="𦜖", ["𬁽"]="䐣", ["𬂀"]="膶", ["𬂂"]="𦣇", ["𬂅"]="䐷", ["𬂉"]="賸", ["𬂠"]="橅", ["𬂩"]="梜", ["𬂮"]="榝", ["𬂰"]="檂", ["𬂱"]="𪳷", ["𬃀"]="槻", ["𬃊"]="櫍", ["𬃘"]="樲", ["𬃲"]="䫐", ["𬄩"]="櫽", ["𬅉"]="欗", ["𬅢"]="㰰", ["𬅥"]="歄", ["𬅫"]="歕", ["𬆦"]="毄", ["𬆮"]="鷇", ["𬆾"]="覒", ["𬇕"]="澫", ["𬇘"]="漙", ["𬇙"]="浿", ["𬇰"]="㵍", ["𬇹"]="漍", ["𬈁"]="潬", ["𬈕"]="㵒", ["𬈜"]="濴", ["𬈧"]="濇", ["𬉇"]="㵤", ["𬉋"]="瀢", ["𬉏"]="瀩", ["𬉠"]="灡", ["𬉼"]="熰", ["𬊂"]="煼", ["𬊈"]="燖", ["𬊉"]="燵", ["𬊍"]="燽", ["𬊎"]="熕", ["𬊖"]="燘", ["𬊜"]="𤓓", ["𬊤"]="燀", ["𬊦"]="覢", ["𬊵"]="爣", ["𬊶"]="爁", ["𬊺"]="燰", ["𬊾"]="㸐", ["𬋍"]="㸊", ["𬌛"]="㹂", ["𬌝"]="犓", ["𬌮"]="獟", ["𬌷"]="㺑", ["𬍙"]="琖", ["𬍛"]="瓅", ["𬍜"]="𤪥", ["𬍡"]="璗", ["𬍤"]="璕", ["𬎆"]="㼆", ["𬎑"]="瓓", ["𬎧"]="㼻", ["𬏜"]="㾺", ["𬏟"]="㾵", ["𬏦"]="癈", ["𬏮"]="瘑", ["𬏷"]="㿎", ["𬐠"]="𥂸", ["𬑆"]="睔", ["𬑏"]="䀴", ["𬑒"]="䁱", ["𬑓"]="瞱", ["𬑕"]="睴", ["𬑗"]="瞷", ["𬑧"]="矊", ["𬒆"]="礏", ["𬒈"]="礐", ["𬒍"]="磒", ["𬒎"]="䃘", ["𬒕"]="䃤", ["𬒗"]="𥗽", ["𬓠"]="穖", ["𬓸"]="䵘", ["𬓼"]="穨", ["𬕂"]="篢", ["𬕄"]="籭", ["𬕊"]="䉍", ["𬕛"]="䉐", ["𬕦"]="䉱", ["𬖃"]="籫", ["𬖑"]="粯", ["𬖘"]="𥼶", ["𬖠"]="㪹", ["𬖮"]="糮", ["𬘓"]="紃", ["𬘕"]="紌", ["𬘖"]="絸", ["𬘘"]="紞", ["𬘙"]="䋐", ["𬘛"]="紶", ["𬘜"]="䋎", ["𬘝"]="紾", ["𬘟"]="絤", ["𬘠"]="絠", ["𬘡"]="絪", ["𬘢"]="絖", ["𬘤"]="絽", ["𬘥"]="絟", ["𬘨"]="綕", ["𬘩"]="綎", ["𬘪"]="䌞", ["𬘫"]="綄", ["𬘬"]="綪", ["𬘭"]="綝", ["𬘮"]="䌐", ["𬘯"]="綧", ["𬘰"]="緛", ["𬘱"]="䌁", ["𬘲"]="䋾", ["𬘴"]="䋺", ["𬘵"]="縆", ["𬘶"]="緧", ["𬘷"]="縒", ["𬘺"]="縚", ["𬘻"]="縖", ["𬙁"]="䌪", ["𬙂"]="縯", ["𬙆"]="繙", ["𬙇"]="繎", ["𬙈"]="繗", ["𬙉"]="繵", ["𬙊"]="纆", ["𬙋"]="纕", ["𬙎"]="罏", ["𬙝"]="罼", ["𬙭"]="䍷", ["𬙯"]="羜", ["𬚄"]="䎘", ["𬛹"]="䑗", ["𬛼"]="轝", ["𬜤"]="菣", ["𬜥"]="葻", ["𬜧"]="蕟", ["𬜨"]="薉", ["𬜬"]="蔄", ["𬜯"]="䓣", ["𬜾"]="藖", ["𬜿"]="蔮", ["𬝁"]="䔡", ["𬝃"]="𤎤", ["𬝯"]="薲", ["𬝴"]="䕼", ["𬞕"]="蘭", ["𬞘"]="藬", ["𬞟"]="蘋", ["𬞫"]="蘫", ["𬟁"]="虉", ["𬟪"]="覤", ["𬟺"]="𧐱", ["𬟽"]="蝀", ["𬠅"]="蟷", ["𬠠"]="蠈", ["𬠱"]="𧖦", ["𬡇"]="褭", ["𬡒"]="裌", ["𬡓"]="褺", ["𬡠"]="𧟌", ["𬡷"]="襸", ["𬡻"]="䊲", ["𬢊"]="覗", ["𬢋"]="覜", ["𬢌"]="覟", ["𬢎"]="覩", ["𬢐"]="䚉", ["𬢑"]="䚆", ["𬢒"]="覭", ["𬢔"]="覴", ["𬢯"]="譻", ["𬣀"]="讆", ["𬣙"]="訏", ["𬣛"]="䚳", ["𬣜"]="䚽", ["𬣝"]="𧥺", ["𬣞"]="詝", ["𬣟"]="䚵", ["𬣠"]="詌", ["𬣡"]="諓", ["𬣤"]="詃", ["𬣥"]="詜", ["𬣦"]="詏", ["𬣧"]="䛍", ["𬣨"]="𧧝", ["𬣩"]="詴", ["𬣬"]="䛛", ["𬣭"]="譡", ["𬣮"]="詺", ["𬣯"]="䛘", ["𬣰"]="詯", ["𬣱"]="詶", ["𬣲"]="誁", ["𬣳"]="詪", ["𬣶"]="𧨊", ["𬣷"]="誎", ["𬣸"]="䛞", ["𬣹"]="䛤", ["𬣻"]="誔", ["𬣼"]="誏", ["𬣽"]="謰", ["𬣾"]="諎", ["𬣿"]="䜎", ["𬤀"]="諕", ["𬤁"]="䛬", ["𬤂"]="𧨾", ["𬤄"]="謲", ["𬤇"]="諲", ["𬤉"]="䜋", ["𬤊"]="諟", ["𬤌"]="䛽", ["𬤍"]="諻", ["𬤎"]="諠", ["𬤐"]="謌", ["𬤑"]="䛿", ["𬤗"]="𬣘", ["𬤘"]="䜉", ["𬤙"]="謼", ["𬤛"]="讇", ["𬤝"]="譓", ["𬤟"]="䜍", ["𬤡"]="䜒", ["𬤢"]="譐", ["𬤣"]="譈", ["𬤤"]="譄", ["𬤥"]="譔", ["𬤦"]="讉", ["𬤨"]="譟", ["𬤩"]="譺", ["𬤪"]="䜚", ["𬤫"]="譹", ["𬤬"]="䜝", ["𬤭"]="譿", ["𬤰"]="讙", ["𬥄"]="䝕", ["𬥈"]="䫉", ["𬥊"]="䝡", ["𬥵"]="䝯", ["𬥶"]="貱", ["𬥷"]="𧶄", ["𬥸"]="賗", ["𬥺"]="䞁", ["𬥻"]="䞂", ["𬥽"]="䞀", ["𬥾"]="𧸦", ["𬦅"]="𧼮", ["𬦥"]="䟺", ["𬦧"]="踚", ["𬦫"]="𨆅", ["𬦻"]="躀", ["𬦾"]="𨈇", ["𬧀"]="蹡", ["𬧃"]="䠮", ["𬧛"]="𨈆", ["𬧢"]="䡁", ["𬧤"]="軂", ["𬨁"]="軞", ["𬨂"]="軝", ["𬨄"]="軮", ["𬨆"]="䡗", ["𬨇"]="輆", ["𬨈"]="輓", ["𬨉"]="䡘", ["𬨋"]="𨌄", ["𬨌"]="䡟", ["𬨍"]="輵", ["𬨎"]="輶", ["𬨑"]="䡦", ["𬨓"]="轈", ["𬨔"]="䡶", ["𬨕"]="䡹", ["𬨨"]="過", ["𬩽"]="鄩", ["𬩾"]="郲", ["𬪍"]="鄮", ["𬪧"]="醧", ["𬪨"]="醆", ["𬪩"]="醲", ["𬪯"]="𨤋", ["𬪺"]="𨤡", ["𬬧"]="釬", ["𬬨"]="釫", ["𬬩"]="釴", ["𬬫"]="鈚", ["𬬬"]="鍏", ["𬬭"]="錀", ["𬬮"]="鋹", ["𬬯"]="鈓", ["𬬰"]="鎗", ["𬬱"]="釿", ["𬬲"]="釽", ["𬬵"]="鈂", ["𬬷"]="鉐", ["𬬸"]="鉥", ["𬬹"]="鉮", ["𬬺"]="鉏", ["𬬻"]="鑪", ["𬬼"]="𨭥", ["𬬽"]="鈼", ["𬬾"]="鑏", ["𬬿"]="鉊", ["𬭀"]="鈶", ["𬭁"]="鉧", ["𬭃"]="銔", ["𬭅"]="銗", ["𬭆"]="䤪", ["𬭈"]="䤩", ["𬭉"]="鑇", ["𬭊"]="𨧀", ["𬭌"]="鋘", ["𬭍"]="銲", ["𬭎"]="鋐", ["𬭓"]="錪", ["𬭔"]="鑡", ["𬭕"]="錭", ["𬭖"]="錋", ["𬭗"]="錗", ["𬭙"]="𨭐", ["𬭚"]="錞", ["𬭛"]="𨨏", ["𬭜"]="錑", ["𬭝"]="鏒", ["𬭡"]="鍣", ["𬭢"]="鐀", ["𬭣"]="䤼", ["𬭤"]="鍭", ["𬭦"]="鎒", ["𬭨"]="鎚", ["𬭩"]="鎓", ["𬭪"]="鎋", ["𬭫"]="𨫀", ["𬭬"]="鏏", ["𬭭"]="鏚", ["𬭮"]="鏋", ["𬭯"]="䥕", ["𬭰"]="鏔", ["𬭲"]="鏁", ["𬭳"]="𨭎", ["𬭴"]="䥛", ["𬭵"]="𨭌", ["𬭶"]="𨭆", ["𬭸"]="鏻", ["𬭻"]="䥞", ["𬭼"]="鐩", ["𬭽"]="鐴", ["𬮀"]="𨯵", ["𬮁"]="鑮", ["𬮟"]="焛", ["𬮠"]="閜", ["𬮢"]="閧", ["𬮥"]="閦", ["𬮨"]="䦝", ["𬮭"]="闚", ["𬮱"]="闉", ["𬮲"]="闄", ["𬮳"]="闆", ["𬮴"]="闇", ["𬮺"]="䧞", ["𬮻"]="隖", ["𬮿"]="隑", ["𬯀"]="隮", ["𬯎"]="隤", ["𬰣"]="𩉍", ["𬰥"]="䩫", ["𬰳"]="䪓", ["𬰶"]="韢", ["𬰷"]="䪜", ["𬱓"]="頄", ["𬱖"]="頔", ["𬱗"]="頕", ["𬱙"]="頖", ["𬱜"]="頛", ["𬱟"]="頠", ["𬱠"]="頢", ["𬱢"]="顐", ["𬱣"]="䫈", ["𬱦"]="䫏", ["𬱪"]="顊", ["𬱫"]="顁", ["𬱬"]="䫩", ["𬱮"]="䫜", ["𬱯"]="䭭", ["𬱰"]="䫠", ["𬱳"]="龥", ["𬱵"]="颹", ["𬱷"]="䫼", ["𬱸"]="䬂", ["𬱼"]="颽", ["𬱽"]="颴", ["𬱿"]="䬎", ["𬲀"]="䬍", ["𬲅"]="飉", ["𬲕"]="䭕", ["𬲫"]="䬯", ["𬲭"]="飷", ["𬲮"]="䬫", ["𬲯"]="䬲", ["𬲰"]="𩞃", ["𬲲"]="䭢", ["𬲳"]="䭞", ["𬲶"]="䭣", ["𬲷"]="䬶", ["𬲹"]="𩛲", ["𬲻"]="䬾", ["𬲼"]="餣", ["𬲾"]="䭅", ["𬲿"]="𩜠", ["𬳀"]="䭇", ["𬳂"]="餟", ["𬳅"]="䭉", ["𬳆"]="餰", ["𬳊"]="饀", ["𬳋"]="䭒", ["𬳍"]="餹", ["𬳏"]="𩞘", ["𬳑"]="䭘", ["𬳟"]="馩", ["𬳳"]="颿", ["𬳴"]="駍", ["𬳵"]="駓", ["𬳶"]="駉", ["𬳸"]="䮸", ["𬳽"]="駪", ["𬳾"]="䮈", ["𬳿"]="駼", ["𬴀"]="駺", ["𬴁"]="䮗", ["𬴂"]="騑", ["𬴃"]="騞", ["𬴅"]="騯", ["𬴆"]="騹", ["𬴊"]="驎", ["𬴋"]="驖", ["𬴍"]="䮽", ["𬴏"]="䮿", ["𬴐"]="驩", ["𬴩"]="鬞", ["𬶀"]="魝", ["𬶁"]="魜", ["𬶂"]="𩵚", ["𬶄"]="魡", ["𬶆"]="䰷", ["𬶇"]="魪", ["𬶊"]="䱍", ["𬶋"]="鮈", ["𬶌"]="鮘", ["𬶍"]="鮀", ["𬶎"]="䲙", ["𬶏"]="鮠", ["𬶐"]="鮡", ["𬶓"]="䱓", ["𬶕"]="鮷", ["𬶖"]="𩸆", ["𬶗"]="䲏", ["𬶛"]="鱓", ["𬶞"]="鰗", ["𬶟"]="鯻", ["𬶠"]="鰊", ["𬶣"]="䱹", ["𬶤"]="䱱", ["𬶥"]="𱇋", ["𬶧"]="鰇", ["𬶨"]="鱀", ["𬶫"]="鱑", ["𬶬"]="鱋", ["𬶭"]="鰶", ["𬶮"]="鱚", ["𬶲"]="鱌", ["𬶴"]="䲕", ["𬶵"]="鱞", ["𬶺"]="鱹", ["𬷕"]="鵏", ["𬷾"]="䲨", ["𬸀"]="鴍", ["𬸅"]="鶵", ["𬸆"]="䲼", ["𬸈"]="鵄", ["𬸊"]="鵀", ["𬸏"]="𪁜", ["𬸒"]="鶀", ["𬸕"]="鸎", ["𬸘"]="鶠", ["𬸚"]="鸑", ["𬸛"]="䳨", ["𬸜"]="鶣", ["𬸞"]="鷜", ["𬸡"]="𪇖", ["𬸢"]="鷎", ["𬸣"]="鶱", ["𬸦"]="鷟", ["𬸧"]="鷰", ["𬸩"]="䴈", ["𬸪"]="鷭", ["𬸭"]="𪆰", ["𬸮"]="𪆴", ["𬸯"]="鷿", ["𬸱"]="鸜", ["𬸾"]="麡", ["𬹅"]="䴭", ["𬹉"]="䴷", ["𬹔"]="䵖", ["𬹣"]="鼄", ["𬹭"]="𪕣", ["𬹺"]="齖", ["𬹼"]="齘", ["𬹾"]="𪗳", ["𬹿"]="𪗪", ["𬺃"]="䶣", ["𬺄"]="𪗽", ["𬺈"]="齮", ["𬺉"]="䶦", ["𬺌"]="𪘲", ["𬺍"]="䶢", ["𬺎"]="齹", ["𬺓"]="齼", ["𬺔"]="齽", ["𬺕"]="䶪", ["𬺖"]="𪚅", ["𬺜"]="㰍", ["𬾣"]="𠐮", ["𭄛"]="劗", ["𭇜"]="㗶", ["𭎂"]="㙡", ["𭎜"]="壔", ["𭏸"]="壝", ["𭑸"]="𡢿", ["𭘓"]="幠", ["𭚦"]="彍", ["𭝋"]="㦭", ["𭞄"]="懓", ["𭣇"]="攧", ["𭣧"]="斁", ["𭤎"]="斄", ["𭤰"]="旟", ["𭧋"]="曭", ["𭨶"]="𮌲", ["𭩚"]="檥", ["𭩛"]="椚", ["𭩰"]="橃", ["𭪆"]="檛", ["𭫀"]="樻", ["𭭈"]="㰳", ["𭰎"]="澢", ["𭱊"]="澒", ["𭲫"]="灟", ["𭴊"]="㷻", ["𭹜"]="㼈", ["𮀤"]="磱", ["𮀪"]="𥖏", ["𮆏"]="籣", ["𮇔"]="𥺼", ["𮉠"]="䊵", ["𮉡"]="纑", ["𮉢"]="紩", ["𮉣"]="䋏", ["𮉤"]="絓", ["𮉦"]="䋞", ["𮉧"]="緉", ["𮉨"]="緺", ["𮉪"]="緅", ["𮉫"]="緌", ["𮉬"]="綷", ["𮉮"]="繀", ["𮉯"]="縩", ["𮐚"]="薠", ["𮐨"]="蘡", ["𮔂"]="䗻", ["𮔅"]="蝜", ["𮔊"]="蜽", ["𮔚"]="蟧", ["𮖁"]="裲", ["𮖃"]="𧜶", ["𮖱"]="襭", ["𮙊"]="讔", ["𮙋"]="讟", ["𮛗"]="𨆉", ["𮜶"]="軇", ["𮝴"]="軱", ["𮝵"]="輀", ["𮝷"]="轒", ["𮝸"]="輴", ["𮝹"]="轘", ["𮝺"]="轕", ["𮠞"]="䤌", ["𮠳"]="醦", ["𮣲"]="釭", ["𮣳"]="鈜", ["𮣴"]="鋋", ["𮣵"]="錣", ["𮣶"]="鑢", ["𮣷"]="鐻", ["𮤫"]="閅", ["𮤬"]="䦌", ["𮤭"]="𨳒", ["𮤲"]="閟", ["𮤷"]="𬮍", ["𮧴"]="韔", ["𮧵"]="韡", ["𮨴"]="檒", ["𮨵"]="飂", ["𮩛"]="饆", ["𮩜"]="餀", ["𮩝"]="餲", ["𮩞"]="饐", ["𮪡"]="駹", ["𮪢"]="駴", ["𮪣"]="騣", ["𮪤"]="騲", ["𮪥"]="驐", ["𮫂"]="鬡", ["𮬛"]="魣", ["𮬜"]="鮨", ["𮬝"]="鱥", ["𮬞"]="䱗", ["𮬟"]="䱛", ["𮬠"]="䱚", ["𮬡"]="䱻", ["𮬢"]="䱵", ["𮬣"]="䲗", ["𮬤"]="鱵", ["𮭡"]="䲸", ["𮭢"]="鴁", ["𮭤"]="鴓", ["𮭥"]="䳍", ["𮭨"]="鷃", ["𮭪"]="鷞", ["𮭰"]="䴚", ["𮮆"]="麭", ["𮮇"]="麰", ["𮯙"]="䶗", ["𮯵"]="㒖", ["𮯸"]="儮", ["𮯻"]="𠏄", ["𮰄"]="𠖥", ["𮰉"]="凴", ["𮰔"]="喡", ["𮰠"]="𡑑", ["𮰥"]="𪣷", ["𮰸"]="嬟", ["𮰽"]="㜰", ["𮰿"]="㛍", ["𮱁"]="嬧", ["𮱆"]="𡢄", ["𮱇"]="㜕", ["𮱊"]="𡤢", ["𮱐"]="𡤶", ["𮱒"]="嬝", ["𮱔"]="𡠪", ["𮱕"]="𪦯", ["𮱩"]="㟦", ["𮱯"]="㠆", ["𮱵"]="𢐟", ["𮲀"]="𭜼", ["𮲁"]="悓", ["𮲂"]="𢞁", ["𮲃"]="㦡", ["𮲄"]="憅", ["𮲅"]="𫺤", ["𮲇"]="慖", ["𮲐"]="𠅀", ["𮲔"]="敳", ["𮲛"]="㬢", ["𮲟"]="暊", ["𮲨"]="𣋪", ["𮲮"]="欆", ["𮲰"]="㮿", ["𮲶"]="㰄", ["𮲺"]="𬅁", ["𮳃"]="𣿭", ["𮳅"]="𣵾", ["𮳆"]="澕", ["𮳈"]="𣼼", ["𮳍"]="𤁐", ["𮳖"]="𤅊", ["𮳗"]="瀭", ["𮳠"]="煈", ["𮳢"]="𤆼", ["𮳧"]="燆", ["𮳬"]="𬊿", ["𮳯"]="𤏩", ["𮳱"]="𤏳", ["𮳴"]="爗", ["𮳶"]="𤑚", ["𮳸"]="𤒨", ["𮳺"]="𤚴", ["𮴂"]="㼁", ["𮴅"]="𤦎", ["𮴆"]="𤧑", ["𮴏"]="𤦩", ["𮴑"]="𤥵", ["𮴒"]="𤧸", ["𮴓"]="𤩝", ["𮴔"]="璍", ["𮴗"]="𤩊", ["𮴘"]="㼀", ["𮴚"]="𪼑", ["𮴠"]="𤫟", ["𮴥"]="𤩑", ["𮴶"]="𤫎", ["𮴹"]="𬎟", ["𮴿"]="鴫", ["𮵅"]="𥋟", ["𮵆"]="𪾳", ["𮵊"]="𥔬", ["𮵙"]="𥚗", ["𮵚"]="𱵭", ["𮵠"]="稦", ["𮵭"]="𬕜", ["𮵮"]="䉆", ["𮵱"]="箂", ["𮵿"]="紁", ["𮶀"]="𬗈", ["𮶁"]="𥿑", ["𮶂"]="綘", ["𮶃"]="縧", ["𮶅"]="𫃻", ["𮶔"]="𦝛", ["𮶙"]="艦", ["𮶝"]="䕏", ["𮶩"]="𧀀", ["𮶬"]="𧂂", ["𮶳"]="𬞼", ["𮶷"]="𦿭", ["𮷁"]="𧜘", ["𮷄"]="𧠳", ["𮷅"]="諌", ["𮷆"]="𧦵", ["𮷇"]="𧭥", ["𮷈"]="䛴", ["𮷉"]="𧩎", ["𮷊"]="譒", ["𮷍"]="𮚫", ["𮷖"]="䡄", ["𮷗"]="軚", ["𮷙"]="鿂", ["𮷛"]="轟", ["𮷝"]="轁", ["𮷥"]="𨘀", ["𮷨"]="𨟑", ["𮷯"]="𨮪", ["𮷵"]="𨥈", ["𮷶"]="𫓔", ["𮷸"]="鈨", ["𮷺"]="𫒋", ["𮷻"]="𩗩", ["𮷽"]="𨥤", ["𮷿"]="𨥮", ["𮸂"]="𬫉", ["𮸃"]="𨥭", ["𮸄"]="𬫍", ["𮸅"]="𨦍", ["𮸈"]="鍕", ["𮸉"]="𨫋", ["𮸊"]="鋓", ["𮸋"]="𫒟", ["𮸌"]="䤭", ["𮸏"]="鋑", ["𮸐"]="錺", ["𮸑"]="𮢅", ["𮸒"]="𮢆", ["𮸔"]="𨩃", ["𮸕"]="鍢", ["𮸘"]="𨩎", ["𮸙"]="𨪦", ["𮸚"]="𨪜", ["𮸛"]="鎧", ["𮸝"]="𨯗", ["𮸞"]="䥓", ["𮸟"]="鏛", ["𮸠"]="鑧", ["𮸢"]="𨬫", ["𮸣"]="𨯂", ["𮸥"]="䦖", ["𮸦"]="䦣", ["𮸮"]="䩤", ["𮸶"]="𩔐", ["𮸷"]="𩐳", ["𮸹"]="顧", ["𮸻"]="𩗺", ["𮸼"]="飊", ["𮹀"]="馪", ["𮹄"]="𩢀", ["𮹅"]="𩢖", ["𮹉"]="𫘋", ["𮹋"]="騆", ["𮹌"]="𩥈", ["𮹓"]="𩵳", ["𮹕"]="𬷈", ["𮹗"]="䳥", ["𮹘"]="鶯", ["𮹙"]="䳽", ["𮹜"]="䴏", ["𮹝"]="龘", ["𰀡"]="臤", ["𰀢"]="𰯲", ["𰁜"]="龻", ["𰁧"]="傱", ["𰁸"]="儅", ["𰁾"]="偩", ["𰂋"]="僴", ["𰂎"]="僩", ["𰂏"]="儥", ["𰂗"]="僀", ["𰂜"]="僓", ["𰂦"]="儢", ["𰂭"]="儩", ["𰃆"]="儹", ["𰃮"]="𦥯", ["𰃷"]="凔", ["𰃻"]="㓖", ["𰃿"]="凟", ["𰄝"]="𭃶", ["𰄞"]="剸", ["𰄭"]="𠠫", ["𰅔"]="勴", ["𰅥"]="匵", ["𰅦"]="匰", ["𰆕"]="㕒", ["𰆚"]="厱", ["𰇀"]="㕢", ["𰇎"]="㖦", ["𰇕"]="唊", ["𰇖"]="㗢", ["𰇠"]="嗧", ["𰇲"]="嗿", ["𰇼"]="嘇", ["𰈆"]="囕", ["𰈇"]="嚐", ["𰈍"]="嚫", ["𰈓"]="嚂", ["𰈮"]="𡃈", ["𰈯"]="囐", ["𰈶"]="嚩", ["𰉁"]="㘖", ["𰉄"]="囋", ["𰉘"]="㙔", ["𰉙"]="堈", ["𰉚"]="垷", ["𰉣"]="墿", ["𰉥"]="埉", ["𰉩"]="墧", ["𰉪"]="墷", ["𰉽"]="㙾", ["𰊂"]="墆", ["𰊈"]="墏", ["𰊑"]="壏", ["𰊛"]="㙺", ["𰊟"]="㙢", ["𰊡"]="壛", ["𰊢"]="壍", ["𰋸"]="婸", ["𰋹"]="嫥", ["𰋽"]="嬮", ["𰌀"]="嫈", ["𰌂"]="媜", ["𰌆"]="㜞", ["𰌇"]="嫧", ["𰌙"]="嬾", ["𰌦"]="孲", ["𰌷"]="寪", ["𰎌"]="嵷", ["𰎎"]="巃", ["𰎏"]="崠", ["𰎐"]="㠠", ["𰎑"]="嶪", ["𰎔"]="嶤", ["𰎖"]="崱", ["𰎞"]="嶩", ["𰏁"]="巑", ["𰏕"]="帴", ["𰏜"]="㡞", ["𰏟"]="幱", ["𰏶"]="廥", ["𰏼"]="廗", ["𰐾"]="懭", ["𰐿"]="愓", ["𰑁"]="慱", ["𰑂"]="𢜟", ["𰑄"]="惀", ["𰑔"]="慹", ["𰑕"]="懕", ["𰑙"]="懰", ["𰑟"]="慐", ["𰑥"]="憪", ["𰑧"]="慙", ["𰑪"]="憴", ["𰑫"]="㦬", ["𰑬"]="懫", ["𰑵"]="慸", ["𰑸"]="㥷", ["𰑿"]="戃", ["𰒆"]="慲", ["𰒒"]="懘", ["𰓄"]="掁", ["𰓆"]="摀", ["𰓔"]="㨛", ["𰓙"]="擪", ["𰓜"]="擳", ["𰓧"]="搎", ["𰓬"]="攦", ["𰓱"]="摼", ["𰓷"]="撋", ["𰓻"]="摫", ["𰓼"]="摲", ["𰔇"]="摕", ["𰔋"]="撌", ["𰔲"]="㩷", ["𰕁"]="攳", ["𰕅"]="敺", ["𰕈"]="敿", ["𰕭"]="旝", ["𰖈"]="曮", ["𰖠"]="㬮", ["𰗓"]="櫎", ["𰗖"]="棆", ["𰗘"]="㯺", ["𰗙"]="㮲", ["𰗛"]="檡", ["𰗜"]="檿", ["𰗡"]="㯆", ["𰗢"]="楎", ["𰗦"]="㯸", ["𰗨"]="榯", ["𰗬"]="櫏", ["𰗵"]="㰂", ["𰗹"]="橚", ["𰗺"]="橨", ["𰘀"]="㯂", ["𰘈"]="檋", ["𰘓"]="檾", ["𰘠"]="櫩", ["𰘣"]="檰", ["𰘩"]="櫹", ["𰘳"]="櫴", ["𰘶"]="櫯", ["𰘸"]="櫢", ["𰙋"]="歍", ["𰙎"]="歛", ["𰙑"]="歗", ["𰚔"]="㲰", ["𰚦"]="氀", ["𰚪"]="㲯", ["𰛊"]="溤", ["𰛏"]="漎", ["𰛑"]="泞", ["𰛒"]="涷", ["𰛛"]="㴸", ["𰛡"]="滭", ["𰛣"]="漐", ["𰛤"]="瀄", ["𰛥"]="溰", ["𰛦"]="濊", ["𰛩"]="㶒", ["𰛪"]="灓", ["𰛮"]="滷", ["𰛲"]="澰", ["𰛵"]="澖", ["𰛻"]="𤅷", ["𰛽"]="㴿", ["𰜐"]="灠", ["𰜜"]="瀙", ["𰜢"]="㵑", ["𰜨"]="瀳", ["𰜳"]="瀴", ["𰝅"]="瀯", ["𰝋"]="㶏", ["𰝍"]="瀈", ["𰝗"]="㶕", ["𰝞"]="𤄙", ["𰝟"]="㶍", ["𰝾"]="㷃", ["𰞇"]="燡", ["𰞉"]="㷲", ["𰞍"]="㸅", ["𰞤"]="熞", ["𰞲"]="㷶", ["𰞳"]="龽", ["𰞻"]="燌", ["𰟘"]="爓", ["𰠛"]="牋", ["𰠫"]="犅", ["𰠲"]="牼", ["𰠴"]="㹓", ["𰠹"]="犤", ["𰡄"]="獹", ["𰡊"]="獢", ["𰡎"]="猍", ["𰡏"]="猧", ["𰡔"]="獑", ["𰡞"]="獖", ["𰡩"]="玂", ["𰡵"]="瓐", ["𰡽"]="璹", ["𰢄"]="璛", ["𰢢"]="甒", ["𰢤"]="甖", ["𰢦"]="甊", ["𰣬"]="癠", ["𰣯"]="癎", ["𰣶"]="㿉", ["𰣽"]="癴", ["𰤓"]="𤾉", ["𰤕"]="皪", ["𰤨"]="㿹", ["𰤬"]="皾", ["𰥊"]="䀍", ["𰥒"]="瞛", ["𰥛"]="瞓", ["𰥞"]="䁝", ["𰥠"]="矕", ["𰥢"]="矖", ["𰥣"]="𥉸", ["𰥨"]="瞯", ["𰥪"]="瞡", ["𰥹"]="矘", ["𰦔"]="䂓", ["𰦜"]="矲", ["𰦦"]="礰", ["𰦨"]="䃣", ["𰦭"]="礲", ["𰦰"]="礋", ["𰦴"]="䃁", ["𰦷"]="䃕", ["𰦾"]="礹", ["𰦿"]="碢", ["𰧃"]="磵", ["𰧇"]="礥", ["𰧉"]="礩", ["𰧎"]="䃢", ["𰧔"]="礛", ["𰧘"]="䃴", ["𰧰"]="禓", ["𰧻"]="禬", ["𰨖"]="禵", ["𰨜"]="穬", ["𰨦"]="穧", ["𰨳"]="䆅", ["𰩅"]="竉", ["𰩏"]="窱", ["𰩓"]="竀", ["𰩧"]="䇓", ["𰩮"]="篿", ["𰩲"]="籚", ["𰩸"]="簥", ["𰩹"]="簜", ["𰩺"]="箹", ["𰩻"]="簻", ["𰪏"]="簵", ["𰪣"]="籯", ["𰪩"]="䊯", ["𰪫"]="䊜", ["𰪭"]="粻", ["𰪻"]="䊛", ["𰪿"]="𫃑", ["𰫋"]="䊟", ["𰫖"]="糷", ["𰫼"]="糽", ["𰫽"]="紑", ["𰬀"]="紒", ["𰬁"]="䋆", ["𰬂"]="䋍", ["𰬃"]="䋑", ["𰬅"]="紨", ["𰬆"]="絇", ["𰬇"]="紸", ["𰬈"]="絃", ["𰬉"]="紽", ["𰬋"]="紭", ["𰬌"]="絚", ["𰬍"]="綊", ["𰬎"]="縪", ["𰬏"]="絑", ["𰬐"]="繑", ["𰬑"]="䋫", ["𰬒"]="絘", ["𰬓"]="絯", ["𰬔"]="絣", ["𰬕"]="䋝", ["𰬖"]="絾", ["𰬗"]="絿", ["𰬘"]="綍", ["𰬚"]="縜", ["𰬛"]="絼", ["𰬜"]="絻", ["𰬞"]="綅", ["𰬟"]="緎", ["𰬠"]="繣", ["𰬡"]="緁", ["𰬢"]="緀", ["𰬣"]="緆", ["𰬤"]="綼", ["𰬥"]="総", ["𰬧"]="緂", ["𰬪"]="縿", ["𰬫"]="緻", ["𰬬"]="緢", ["𰬭"]="䋽", ["𰬯"]="緵", ["𰬱"]="䌇", ["𰬲"]="縓", ["𰬳"]="縌", ["𰬴"]="縡", ["𰬵"]="縼", ["𰬶"]="䌌", ["𰬷"]="繖", ["𰬸"]="繐", ["𰬺"]="繜", ["𰬻"]="繘", ["𰬽"]="繲", ["𰬿"]="纀", ["𰭀"]="纋", ["𰭄"]="罆", ["𰭔"]="羂", ["𰭢"]="翜", ["𰭣"]="翿", ["𰭹"]="䏊", ["𰮅"]="膷", ["𰮇"]="膴", ["𰮙"]="䐢", ["𰮝"]="膮", ["𰮲"]="䐹", ["𰯂"]="𦡶", ["𰯋"]="臡", ["𰯎"]="䐽", ["𰰋"]="艭", ["𰰌"]="䑼", ["𰰏"]="艜", ["𰰑"]="艛", ["𰰠"]="藇", ["𰰢"]="𦳝", ["𰰤"]="蓲", ["𰰨"]="菕", ["𰰮"]="蘬", ["𰰱"]="薱", ["𰰳"]="蒒", ["𰰴"]="䔇", ["𰰵"]="蔱", ["𰰷"]="萯", ["𰰹"]="藰", ["𰰺"]="蔎", ["𰰾"]="薖", ["𰱀"]="䔈", ["𰱇"]="蕑", ["𰱈"]="禜", ["𰱉"]="蕄", ["𰱌"]="蒳", ["𰱍"]="蒶", ["𰱐"]="藚", ["𰱑"]="蔪", ["𰱛"]="蔠", ["𰱟"]="蕡", ["𰱩"]="䕡", ["𰱮"]="藘", ["𰱯"]="藣", ["𰱱"]="薋", ["𰱲"]="蘵", ["𰱾"]="藾", ["𰲁"]="蘈", ["𰲂"]="虅", ["𰲒"]="蘱", ["𰲖"]="䖀", ["𰲟"]="䖚", ["𰲠"]="虦", ["𰲬"]="蛼", ["𰲮"]="蜸", ["𰲯"]="䗥", ["𰲰"]="蜦", ["𰲲"]="蟡", ["𰲳"]="䗃", ["𰲴"]="蠪", ["𰲵"]="蠌", ["𰲶"]="蛵", ["𰲸"]="蝁", ["𰲹"]="螘", ["𰳂"]="螹", ["𰳄"]="螴", ["𰳊"]="蟦", ["𰳗"]="蠳", ["𰳚"]="䗽", ["𰳲"]="襱", ["𰳵"]="襼", ["𰳺"]="襛", ["𰳻"]="𧞅", ["𰳼"]="襹", ["𰴂"]="襂", ["𰴕"]="覕", ["𰴖"]="䙼", ["𰴗"]="䚕", ["𰴘"]="覸", ["𰴙"]="覠", ["𰴜"]="覰", ["𰴝"]="覶", ["𰴞"]="覻", ["𰴢"]="觻", ["𰴣"]="觷", ["𰴤"]="䚞", ["𰴯"]="謍", ["𰵊"]="訆", ["𰵌"]="諹", ["𰵍"]="訰", ["𰵎"]="訧", ["𰵏"]="訬", ["𰵐"]="䛀", ["𰵑"]="譌", ["𰵒"]="訦", ["𰵓"]="訹", ["𰵔"]="詍", ["𰵖"]="讛", ["𰵗"]="詇", ["𰵙"]="詄", ["𰵚"]="詅", ["𰵛"]="訽", ["𰵜"]="䛌", ["𰵝"]="訸", ["𰵠"]="詉", ["𰵡"]="誙", ["𰵢"]="䛟", ["𰵣"]="詥", ["𰵤"]="詻", ["𰵥"]="誃", ["𰵦"]="詨", ["𰵨"]="讝", ["𰵩"]="誧", ["𰵫"]="䛠", ["𰵬"]="𧧸", ["𰵭"]="誗", ["𰵮"]="誐", ["𰵯"]="誜", ["𰵰"]="䛭", ["𰵱"]="諃", ["𰵲"]="諆", ["𰵴"]="諔", ["𰵵"]="誽", ["𰵶"]="諈", ["𰵷"]="諁", ["𰵸"]="誻", ["𰵹"]="讘", ["𰵺"]="謜", ["𰵼"]="謋", ["𰵽"]="謟", ["𰵾"]="謑", ["𰵿"]="謞", ["𰶀"]="謣", ["𰶁"]="謻", ["𰶂"]="謥", ["𰶃"]="謵", ["𰶄"]="譇", ["𰶆"]="譀", ["𰶇"]="䜏", ["𰶈"]="䜄", ["𰶉"]="譠", ["𰶊"]="譩", ["𰶌"]="譳", ["𰶍"]="讂", ["𰶎"]="譅", ["𰶏"]="讑", ["𰶑"]="豅", ["𰶔"]="豄", ["𰶬"]="䝏", ["𰷞"]="貣", ["𰷟"]="𧶽", ["𰷠"]="貤", ["𰷡"]="貦", ["𰷢"]="貾", ["𰷤"]="賥", ["𰷥"]="賨", ["𰷦"]="靅", ["𰷧"]="賮", ["𰷩"]="䞉", ["𰷪"]="賹", ["𰷫"]="贆", ["𰷮"]="贙", ["𰷴"]="䟏", ["𰷵"]="趬", ["𰷶"]="趫", ["𰸄"]="踼", ["𰸈"]="䠟", ["𰸊"]="䠩", ["𰸐"]="躧", ["𰸔"]="蹥", ["𰸚"]="蹛", ["𰸛"]="䠠", ["𰸞"]="蹪", ["𰹀"]="軃", ["𰹲"]="軎", ["𰹳"]="䡅", ["𰹴"]="軓", ["𰹵"]="轙", ["𰹶"]="軖", ["𰹷"]="䡇", ["𰹸"]="軘", ["𰹺"]="䡊", ["𰹼"]="輚", ["𰹽"]="軯", ["𰹾"]="𨏊", ["𰹿"]="軵", ["𰺀"]="軧", ["𰺁"]="軥", ["𰺂"]="軳", ["𰺃"]="轛", ["𰺄"]="輁", ["𰺅"]="輂", ["𰺇"]="輐", ["𰺈"]="輑", ["𰺉"]="輤", ["𰺊"]="輘", ["𰺋"]="輙", ["𰺍"]="輠", ["𰺎"]="輫", ["𰺏"]="輣", ["𰺐"]="輡", ["𰺑"]="䡝", ["𰺒"]="輲", ["𰺓"]="輹", ["𰺖"]="轃", ["𰺗"]="轞", ["𰺘"]="䡰", ["𰺙"]="轖", ["𰺛"]="轑", ["𰺜"]="轓", ["𰺝"]="䡴", ["𰺞"]="轏", ["𰺟"]="轚", ["𰺠"]="䡾", ["𰺡"]="䡷", ["𰺣"]="轥", ["𰺤"]="䡻", ["𰺭"]="䢈", ["𰺲"]="逿", ["𰺷"]="遶", ["𰻆"]="遰", ["𰻝"]="𰻞", ["𰻡"]="鄦", ["𰻦"]="鄬", ["𰻮"]="鄡", ["𰻳"]="鄪", ["𰼅"]="醳", ["𰼋"]="𨣃", ["𰼏"]="𨣨", ["𰼑"]="䤍", ["𰼻"]="鑋", ["𰽕"]="鐖", ["𰽗"]="釪", ["𰽘"]="釱", ["𰽚"]="鑛", ["𰽛"]="釥", ["𰽜"]="鏂", ["𰽝"]="䥶", ["𰽞"]="鈪", ["𰽠"]="䤠", ["𰽡"]="鈤", ["𰽢"]="鋧", ["𰽣"]="鈏", ["𰽤"]="鈌", ["𰽥"]="鈵", ["𰽦"]="鑨", ["𰽧"]="鉟", ["𰽩"]="鉲", ["𰽫"]="鉎", ["𰽬"]="鉌", ["𰽮"]="鉜", ["𰽯"]="鉒", ["𰽰"]="鉡", ["𰽱"]="鉘", ["𰽲"]="銡", ["𰽳"]="顉", ["𰽴"]="銙", ["𰽵"]="銧", ["𰽶"]="鉵", ["𰽷"]="鐬", ["𰽸"]="䤨", ["𰽹"]="鉹", ["𰽺"]="䤥", ["𰽻"]="銋", ["𰽼"]="鉼", ["𰽽"]="𨦡", ["𰽾"]="鐹", ["𰽿"]="銸", ["𰾀"]="鋍", ["𰾁"]="銾", ["𰾃"]="鋜", ["𰾄"]="鋂", ["𰾅"]="鋡", ["𰾆"]="鋊", ["𰾈"]="䤬", ["𰾋"]="龲", ["𰾌"]="鏩", ["𰾍"]="錶", ["𰾎"]="錍", ["𰾏"]="鋾", ["𰾐"]="䤵", ["𰾑"]="鍂", ["𰾒"]="錧", ["𰾓"]="錔", ["𰾕"]="鍱", ["𰾖"]="䤻", ["𰾗"]="鍼", ["𰾘"]="鍖", ["𰾙"]="鍝", ["𰾚"]="鍡", ["𰾛"]="鎅", ["𰾜"]="鍴", ["𰾝"]="鍟", ["𰾞"]="鍐", ["𰾟"]="鍑", ["𰾡"]="鍧", ["𰾢"]="鍦", ["𰾤"]="鍜", ["𰾥"]="鍨", ["𰾦"]="䤸", ["𰾧"]="𨫼", ["𰾩"]="鎑", ["𰾫"]="鑑", ["𰾬"]="鎉", ["𰾭"]="鑀", ["𰾮"]="鎌", ["𰾯"]="鎕", ["𰾰"]="鏙", ["𰾱"]="鏓", ["𰾲"]="鏕", ["𰾴"]="鐁", ["𰾶"]="鏸", ["𰾷"]="鐕", ["𰾸"]="鐤", ["𰾻"]="䥖", ["𰾼"]="鐉", ["𰾽"]="钃", ["𰾾"]="钀", ["𰿀"]="𨰹", ["𰿁"]="䥝", ["𰿂"]="鑐", ["𰿃"]="鑖", ["𰿄"]="鑘", ["𰿅"]="䥴", ["𰿆"]="鑽", ["𰿇"]="䥷", ["𰿈"]="鑯", ["𰿉"]="鑸", ["𰿨"]="䦎", ["𰿩"]="閕", ["𰿫"]="䦱", ["𰿬"]="閛", ["𰿰"]="𨉖", ["𰿳"]="閷", ["𰿴"]="䦪", ["𰿺"]="闛", ["𰿻"]="闟", ["𰿾"]="闢", ["𱀡"]="隫", ["𱁒"]="䨴", ["𱁱"]="𩋬", ["𱁳"]="𩍜", ["𱁴"]="鞸", ["𱁶"]="韆", ["𱁷"]="韇", ["𱁹"]="鞼", ["𱁺"]="鞻", ["𱁽"]="䪍", ["𱁾"]="韊", ["𱂅"]="䪐", ["𱂆"]="韐", ["𱂇"]="韏", ["𱂈"]="韗", ["𱂉"]="韒", ["𱂊"]="韘", ["𱂋"]="韣", ["𱂌"]="䪝", ["𱂎"]="䪥", ["𱂢"]="䪼", ["𱂣"]="顤", ["𱂤"]="顪", ["𱂥"]="頟", ["𱂦"]="頩", ["𱂧"]="頪", ["𱂨"]="頞", ["𱂫"]="顩", ["𱂬"]="頯", ["𱂭"]="顀", ["𱂮"]="䫌", ["𱂯"]="顇", ["𱂰"]="顄", ["𱂱"]="顑", ["𱂲"]="顋", ["𱂴"]="顜", ["𱂵"]="顝", ["𱂶"]="顖", ["𱂸"]="顮", ["𱂺"]="顠", ["𱂻"]="顦", ["𱃔"]="颩", ["𱃕"]="颬", ["𱃖"]="䬀", ["𱃗"]="颱", ["𱃘"]="颲", ["𱃙"]="䬟", ["𱃚"]="䬅", ["𱃜"]="䬐", ["𱃝"]="飍", ["𱃞"]="䬔", ["𱃟"]="飁", ["𱃠"]="飇", ["𱃱"]="䬣", ["𱃲"]="饇", ["𱃳"]="䬪", ["𱃵"]="䬬", ["𱃷"]="䬳", ["𱃸"]="䬹", ["𱃹"]="䭓", ["𱃺"]="餂", ["𱃼"]="餴", ["𱃽"]="餩", ["𱃿"]="餤", ["𱄀"]="饙", ["𱄃"]="䭈", ["𱄄"]="餯", ["𱄆"]="饎", ["𱄈"]="饛", ["𱄉"]="䭡", ["𱄊"]="饡", ["𱄼"]="馵", ["𱄽"]="馲", ["𱄾"]="𩧉", ["𱄿"]="騳", ["𱅀"]="駂", ["𱅁"]="馽", ["𱅂"]="馺", ["𱅃"]="駏", ["𱅄"]="䮂", ["𱅅"]="驡", ["𱅇"]="駗", ["𱅈"]="駜", ["𱅉"]="駥", ["𱅊"]="騺", ["𱅋"]="駬", ["𱅏"]="駣", ["𱅐"]="駮", ["𱅑"]="駦", ["𱅔"]="駷", ["𱅕"]="騋", ["𱅖"]="駽", ["𱅗"]="騀", ["𱅙"]="駾", ["𱅚"]="騇", ["𱅛"]="驒", ["𱅜"]="騕", ["𱅝"]="騗", ["𱅞"]="騢", ["𱅟"]="騥", ["𱅠"]="䮧", ["𱅡"]="騩", ["𱅢"]="騬", ["𱅣"]="𩥅", ["𱅤"]="驞", ["𱅦"]="䮲", ["𱅧"]="驉", ["𱅩"]="騽", ["𱅪"]="驔", ["𱅫"]="驈", ["𱅬"]="驠", ["𱅮"]="髐", ["𱆁"]="鬜", ["𱆃"]="䰎", ["𱆅"]="䰐", ["𱆆"]="鬗", ["𱆈"]="䰖", ["𱆌"]="鬺", ["𱆙"]="䰫", ["𱆚"]="䫥", ["𱆛"]="魗", ["𱇍"]="䰲", ["𱇏"]="魠", ["𱇐"]="魭", ["𱇑"]="䰽", ["𱇒"]="魮", ["𱇓"]="魱", ["𱇔"]="魶", ["𱇕"]="䰻", ["𱇖"]="魬", ["𱇗"]="鯩", ["𱇘"]="魧", ["𱇙"]="魫", ["𱇚"]="䱅", ["𱇛"]="鮇", ["𱇜"]="魼", ["𱇝"]="魾", ["𱇞"]="䱇", ["𱇟"]="魻", ["𱇠"]="鮂", ["𱇡"]="鮏", ["𱇢"]="鮌", ["𱇣"]="鱍", ["𱇤"]="䱂", ["𱇥"]="䱎", ["𱇦"]="鮬", ["𱇧"]="鮧", ["𱇨"]="鮛", ["𱇩"]="鱎", ["𱇪"]="鮥", ["𱇬"]="䱌", ["𱇭"]="鯠", ["𱇮"]="𩷶", ["𱇯"]="鮹", ["𱇰"]="䱒", ["𱇱"]="鯈", ["𱇲"]="䱐", ["𱇵"]="鰿", ["𱇶"]="鯥", ["𱇷"]="䱜", ["𱇸"]="鱦", ["𱇹"]="䱥", ["𱇺"]="鯚", ["𱇻"]="䱤", ["𱇼"]="鯦", ["𱇽"]="䱡", ["𱇾"]="鯮", ["𱇿"]="鱐", ["𱈀"]="䱟", ["𱈁"]="鯅", ["𱈂"]="鰅", ["𱈄"]="鯸", ["𱈅"]="鯼", ["𱈆"]="䱾", ["𱈇"]="䱭", ["𱈈"]="䱴", ["𱈉"]="鰬", ["𱈊"]="鰡", ["𱈋"]="鰝", ["𱈌"]="鱃", ["𱈍"]="鰯", ["𱈏"]="鱁", ["𱈐"]="鱄", ["𱈑"]="鰴", ["𱈒"]="䲉", ["𱈓"]="鱏", ["𱈕"]="鱕", ["𱈖"]="䲚", ["𱈗"]="鱬", ["𱈙"]="鱴", ["𱈛"]="䲛", ["𱈜"]="鱻", ["𱉇"]="鳦", ["𱉈"]="鳭", ["𱉊"]="鳱", ["𱉌"]="鸃", ["𱉍"]="鳿", ["𱉎"]="鳺", ["𱉏"]="鷒", ["𱉐"]="鵙", ["𱉑"]="鳻", ["𱉓"]="鳸", ["𱉔"]="鴂", ["𱉕"]="鴚", ["𱉖"]="䲹", ["𱉗"]="鴠", ["𱉘"]="鴡", ["𱉙"]="䳅", ["𱉚"]="鴩", ["𱉛"]="鴙", ["𱉝"]="鵖", ["𱉞"]="䳇", ["𱉟"]="鸅", ["𱉠"]="鵛", ["𱉡"]="鴘", ["𱉢"]="鴢", ["𱉤"]="䳏", ["𱉥"]="鴶", ["𱉦"]="䳓", ["𱉧"]="䳒", ["𱉨"]="鵶", ["𱉩"]="鴺", ["𱉪"]="鴱", ["𱉫"]="鴸", ["𱉬"]="鷮", ["𱉮"]="鵅", ["𱉯"]="鴹", ["𱉱"]="鶤", ["𱉲"]="鴾", ["𱉳"]="鷶", ["𱉴"]="鸉", ["𱉵"]="鶆", ["𱉶"]="䳚", ["𱉸"]="鵌", ["𱉹"]="鵗", ["𱉺"]="䳕", ["𱉻"]="鵎", ["𱉼"]="䳭", ["𱉽"]="鵋", ["𱉾"]="鵕", ["𱉿"]="鵔", ["𱊀"]="鵱", ["𱊁"]="鵸", ["𱊂"]="䳟", ["𱊃"]="鵹", ["𱊄"]="鶃", ["𱊅"]="鵻", ["𱊆"]="鵵", ["𱊇"]="鵴", ["𱊈"]="鶂", ["𱊉"]="𪈔", ["𱊊"]="鵼", ["𱊋"]="鵳", ["𱊌"]="鶋", ["𱊍"]="鵽", ["𱊎"]="鶅", ["𱊏"]="鶝", ["𱊐"]="鶛", ["𱊑"]="鶞", ["𱊒"]="鶢", ["𱊓"]="䳮", ["𱊕"]="鶙", ["𱊖"]="鶟", ["𱊗"]="鶔", ["𱊘"]="鶨", ["𱊙"]="䳲", ["𱊚"]="鷏", ["𱊛"]="鶽", ["𱊝"]="鶶", ["𱊟"]="鶷", ["𱊠"]="鷋", ["𱊡"]="鷕", ["𱊢"]="鷑", ["𱊣"]="䳺", ["𱊤"]="鷛", ["𱊧"]="鷢", ["𱊨"]="𪆫", ["𱊩"]="鷵", ["𱊪"]="䴇", ["𱊫"]="鸆", ["𱊬"]="鸀", ["𱊭"]="鸒", ["𱊮"]="鸁", ["𱊯"]="鸄", ["𱊰"]="鷾", ["𱊱"]="鸐", ["𱊳"]="鸓", ["𱊵"]="鸙", ["𱊼"]="䴝", ["𱋆"]="䴮", ["𱋇"]="麧", ["𱋊"]="䴲", ["𱋋"]="麮", ["𱋎"]="䴳", ["𱋐"]="麴", ["𱋔"]="䴵", ["𱋖"]="麱", ["𱋗"]="䴸", ["𱋙"]="䴹", ["𱋝"]="䴺", ["𱋢"]="𪍑", ["𱋧"]="䴾", ["𱋪"]="䵂", ["𱋫"]="䵃", ["𱋮"]="䵆", ["𱋱"]="黂", ["𱋴"]="䵐", ["𱋶"]="黸", ["𱋾"]="鼀", ["𱋿"]="鼁", ["𱌁"]="䵶", ["𱌃"]="䵷", ["𱌄"]="鼅", ["𱌆"]="鼆", ["𱌇"]="鼈", ["𱌉"]="鼊", ["𱌊"]="鼚", ["𱌏"]="鼲", ["𱌖"]="齈", ["𱌗"]="齌", ["𱌘"]="齍", ["𱌙"]="𪗋", ["𱌫"]="齞", ["𱌬"]="齚", ["𱌭"]="齺", ["𱌮"]="齣", ["𱌯"]="齝", ["𱌰"]="䶧", ["𱌱"]="齥", ["𱌲"]="齤", ["𱌳"]="齳", ["𱌴"]="𪘨", ["𱌵"]="䶨", ["𱌶"]="齱", ["𱌷"]="𪘬", ["𱌸"]="𪘥", ["𱌹"]="齵", ["𱌺"]="齻", ["𱌼"]="𪙉", ["𱌽"]="齸", ["𱍁"]="龏", ["𱍂"]="龖", ["𱍇"]="䶱", ["𱍈"]="龞", ["𱎟"]="偒", ["𱎫"]="俹", ["𱏀"]="僫", ["𱏆"]="𪝼", ["𱏩"]="㒯", ["𱐠"]="剼", ["𱐳"]="㔤", ["𱑉"]="㔶", ["𱒀"]="噧", ["𱒂"]="啺", ["𱒦"]="嚋", ["𱕌"]="囖", ["𱖚"]="壐", ["𱙄"]="嬩", ["𱙇"]="婨", ["𱙋"]="𮱚", ["𱙑"]="𡣙", ["𱙔"]="孍", ["𱙷"]="孭", ["𱛇"]="㠘", ["𱛊"]="𡷹", ["𱛓"]="巄", ["𱞕"]="憳", ["𱞲"]="憌", ["𱟸"]="揁", ["𱟽"]="𢰸", ["𱡼"]="㬙", ["𱣂"]="㮧", ["𱣇"]="檏", ["𱣡"]="㯗", ["𱣤"]="橺", ["𱣱"]="樌", ["𱥵"]="𣷣", ["𱩂"]="𤃡", ["𱩪"]="灆", ["𱪪"]="爏", ["𱫅"]="㸄", ["𱫊"]="𤏪", ["𱫜"]="𤎽", ["𱭰"]="㹚", ["𱮺"]="𤦹", ["𱮾"]="琜", ["𱰆"]="𤬏", ["𱲥"]="䁑", ["𱲦"]="瞴", ["𱲮"]="䁺", ["𱳯"]="碖", ["𱳱"]="䂻", ["𱳳"]="䃖", ["𱳹"]="礑", ["𱴄"]="䂾", ["𱷷"]="䉅", ["𱷸"]="䈟", ["𱸂"]="䉩", ["𱸇"]="簩", ["𱸐"]="䉔", ["𱺕"]="䌬", ["𱺖"]="𦆭", ["𱺘"]="䋋", ["𱺙"]="𥿡", ["𱺛"]="䋘", ["𱺜"]="䋱", ["𱺦"]="緾", ["𱺫"]="䌏", ["𱺯"]="䌨", ["𱻞"]="翸", ["𱻴"]="耫", ["𱼇"]="𦠜", ["𱼏"]="膭", ["𱼸"]="䑺", ["𱽜"]="蓻", ["𱽱"]="䕠", ["𱽾"]="𦻖", ["𱾎"]="䕵", ["𱿧"]="𧒄", ["𱿩"]="䗯", ["𲀝"]="䡓", ["𲁑"]="覔", ["𲁔"]="𧢝", ["𲁖"]="覮", ["𲁙"]="覫", ["𲂂"]="訉", ["𲂃"]="訍", ["𲂆"]="䛅", ["𲂇"]="𧭈", ["𲂈"]="䛔", ["𲂉"]="䛩", ["𲂍"]="誩", ["𲂏"]="諘", ["𲂐"]="諵", ["𲂓"]="䜊", ["𲂔"]="謶", ["𲂕"]="譧", ["𲂖"]="譢", ["𲂻"]="賏", ["𲃄"]="賲", ["𲃏"]="䟄", ["𲄙"]="𨊛", ["𲄚"]="躼", ["𲄧"]="軁", ["𲅎"]="遤", ["𲅑"]="䢙", ["𲇑"]="鑍", ["𲇭"]="釮", ["𲇯"]="𨥉", ["𲇰"]="釰", ["𲇱"]="鈘", ["𲇲"]="鏄", ["𲇳"]="䤝", ["𲇴"]="鈊", ["𲇷"]="錬", ["𲇸"]="鈱", ["𲇻"]="銌", ["𲇽"]="鋕", ["𲇿"]="鋲", ["𲈀"]="鐱", ["𲈁"]="錴", ["𲈄"]="䥊", ["𲈅"]="𨨩", ["𲈆"]="鋿", ["𲈋"]="鍸", ["𲈌"]="鍷", ["𲈍"]="鎁", ["𲈎"]="鍹", ["𲈏"]="𨪃", ["𲈒"]="鎤", ["𲈗"]="鏱", ["𲈙"]="䥔", ["𲈚"]="鐛", ["𲈜"]="鏳", ["𲈝"]="鏴", ["𲈞"]="鐰", ["𲈵"]="閖", ["𲈹"]="閪", ["𲈽"]="䦜", ["𲉁"]="闀", ["𲉉"]="陯", ["𲊺"]="頙", ["𲊼"]="頳", ["𲊾"]="䫖", ["𲋀"]="䫫", ["𲋃"]="䫲", ["𲋎"]="䫺", ["𲋏"]="䫽", ["𲋢"]="𮸾", ["𲋤"]="䬰", ["𲌅"]="駖", ["𲌉"]="𩤅", ["𲌋"]="䮴", ["𲍇"]="䲑", ["𲍈"]="䰶", ["𲍌"]="鮕", ["𲍎"]="䱋", ["𲍐"]="䱊", ["𲍑"]="鱙", ["𲍕"]="䱝", ["𲍙"]="䲎", ["𲍬"]="鷌", ["𲍮"]="鴋", ["𲍰"]="鸍", ["𲍱"]="𩿞", ["𲍲"]="䳂", ["𲍳"]="䳑", ["𲍴"]="鷝", ["𲍵"]="䳄", ["𲍸"]="𪁎", ["𲍻"]="鷼", ["𲍽"]="𪂇", ["𲍾"]="䳡", ["𲎀"]="鶧", ["𲎈"]="䴌", ["𲎨"]="𪘁", ["𱂩"]="𩒺", ["𱳅"]="𥍉", } hh7svm1v3dq8ezsvk31y9dpxwv7vfuo Modul:zh/data/cmn-pron 828 154791 628944 457480 2024-11-06T17:16:16Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628944 Scribunto text/plain local export = {} export.py = { ["吖"]="ā", ["锕"]="ā", ["阿"]="ā", ["啊"]="a", ["哀"]="āi", ["哎"]="āi", ["唉"]="āi", ["埃"]="āi", ["锿"]="āi", ["挨"]="ái", ["捱"]="ái", ["癌"]="ái", ["皑"]="ái", ["騃"]="ái", ["嗳"]="ǎi", ["毐"]="ǎi", ["矮"]="ǎi", ["蔼"]="ǎi", ["霭"]="ǎi", ["靄"]="ǎi", ["叆"]="ài", ["嗌"]="ài", ["嫒"]="ài", ["暧"]="ài", ["爱"]="ài", ["瑷"]="ài", ["砹"]="ài", ["碍"]="ài", ["礙"]="ài", ["艾"]="ài", ["薆"]="ài", ["賹"]="ài", ["鑀"]="ài", ["隘"]="ài", ["靉"]="ài", ["鴱"]="ài", ["垵"]="ān", ["安"]="ān", ["庵"]="ān", ["桉"]="ān", ["氨"]="ān", ["盦"]="ān", ["盫"]="ān", ["裺"]="ān", ["谙"]="ān", ["闇"]="ān", ["鞍"]="ān", ["韽"]="ān", ["鮟"]="ān", ["鴳"]="ān", ["鵪"]="ān", ["鶕"]="ān", ["鹌"]="ān", ["𩽾"]="ān", ["俺"]="ǎn", ["唵"]="ǎn", ["埯"]="ǎn", ["揞"]="ǎn", ["罯"]="ǎn", ["铵"]="ǎn", ["岸"]="àn", ["按"]="àn", ["暗"]="àn", ["案"]="àn", ["犴"]="àn", ["胺"]="àn", ["貋"]="àn", ["黯"]="àn", ["肮"]="āng", ["骯"]="āng", ["卬"]="áng", ["昂"]="áng", ["盎"]="àng", ["凹"]="āo", ["鴢"]="āo", ["嗷"]="áo", ["嶅"]="áo", ["廒"]="áo", ["敖"]="áo", ["熬"]="áo", ["獒"]="áo", ["璈"]="áo", ["翱"]="áo", ["聱"]="áo", ["螯"]="áo", ["遨"]="áo", ["鏕"]="áo", ["鏖"]="áo", ["鰲"]="áo", ["鳌"]="áo", ["鼇"]="áo", ["媪"]="ǎo", ["蝹"]="ǎo", ["袄"]="ǎo", ["襖"]="ǎo", ["傲"]="ào", ["坳"]="ào", ["奡"]="ào", ["奥"]="ào", ["岙"]="ào", ["懊"]="ào", ["澳"]="ào", ["謸"]="ào", ["鏊"]="ào", ["驁"]="ào", ["骜"]="ào", ["鿫"]="ào", ["八"]="bā", ["叭"]="bā", ["岜"]="bā", ["巴"]="bā", ["捌"]="bā", ["朳"]="bā", ["疤"]="bā", ["笆"]="bā", ["粑"]="bā", ["羓"]="bā", ["芭"]="bā", ["蚆"]="bā", ["釟"]="bā", ["鲃"]="bā", ["妭"]="bá", ["拔"]="bá", ["胈"]="bá", ["茇"]="bá", ["菝"]="bá", ["跋"]="bá", ["軷"]="bá", ["釛"]="bá", ["魃"]="bá", ["鼥"]="bá", ["把"]="bǎ", ["钯"]="bǎ", ["靶"]="bǎ", ["坝"]="bà", ["灞"]="bà", ["爸"]="bà", ["罢"]="bà", ["罷"]="bà", ["覇"]="bà", ["跁"]="bà", ["霸"]="bà", ["鮁"]="bà", ["鮊"]="bà", ["鲅"]="bà", ["鲌"]="bà", ["吧"]="ba", ["掰"]="bāi", ["白"]="bái", ["佰"]="bǎi", ["捭"]="bǎi", ["摆"]="bǎi", ["柏"]="bǎi", ["百"]="bǎi", ["襬"]="bǎi", ["拜"]="bài", ["稗"]="bài", ["粺"]="bài", ["薭"]="bài", ["贁"]="bài", ["败"]="bài", ["扳"]="bān", ["搬"]="bān", ["攽"]="bān", ["斑"]="bān", ["班"]="bān", ["瘢"]="bān", ["癍"]="bān", ["籓"]="bān", ["般"]="bān", ["螁"]="bān", ["頒"]="bān", ["颁"]="bān", ["𨭉"]="bān", ["坂"]="bǎn", ["昄"]="bǎn", ["板"]="bǎn", ["版"]="bǎn", ["舨"]="bǎn", ["蝂"]="bǎn", ["覂"]="bǎn", ["钣"]="bǎn", ["闆"]="bǎn", ["阪"]="bǎn", ["伴"]="bàn", ["办"]="bàn", ["半"]="bàn", ["扮"]="bàn", ["拌"]="bàn", ["柈"]="bàn", ["湴"]="bàn", ["瓣"]="bàn", ["絆"]="bàn", ["绊"]="bàn", ["跘"]="bàn", ["辦"]="bàn", ["靽"]="bàn", ["帮"]="bāng", ["梆"]="bāng", ["浜"]="bāng", ["邦"]="bāng", ["邫"]="bāng", ["𠳐"]="bāng", ["榜"]="bǎng", ["绑"]="bǎng", ["膀"]="bǎng", ["傍"]="bàng", ["塝"]="bàng", ["棒"]="bàng", ["玤"]="bàng", ["磅"]="bàng", ["稖"]="bàng", ["艕"]="bàng", ["蒡"]="bàng", ["蚌"]="bàng", ["蛖"]="bàng", ["谤"]="bàng", ["镑"]="bàng", ["包"]="bāo", ["孢"]="bāo", ["枹"]="bāo", ["煲"]="bāo", ["笣"]="bāo", ["胞"]="bāo", ["苞"]="bāo", ["褒"]="bāo", ["龅"]="bāo", ["窇"]="báo", ["雹"]="báo", ["保"]="bǎo", ["堡"]="bǎo", ["宝"]="bǎo", ["葆"]="bǎo", ["藵"]="bǎo", ["褓"]="bǎo", ["賲"]="bǎo", ["飽"]="bǎo", ["饱"]="bǎo", ["鸨"]="bǎo", ["刨"]="bào", ["报"]="bào", ["抱"]="bào", ["暴"]="bào", ["爆"]="bào", ["菢"]="bào", ["袌"]="bào", ["豹"]="bào", ["趵"]="bào", ["鲍"]="bào", ["卑"]="bēi", ["悲"]="bēi", ["杯"]="bēi", ["椑"]="bēi", ["碑"]="bēi", ["藣"]="bēi", ["陂"]="bēi", ["鹎"]="bēi", ["北"]="běi", ["倍"]="bèi", ["备"]="bèi", ["孛"]="bèi", ["悖"]="bèi", ["惫"]="bèi", ["棓"]="bèi", ["焙"]="bèi", ["狈"]="bèi", ["琲"]="bèi", ["碚"]="bèi", ["糒"]="bèi", ["背"]="bèi", ["蓓"]="bèi", ["被"]="bèi", ["褙"]="bèi", ["誖"]="bèi", ["貝"]="bèi", ["贝"]="bèi", ["輩"]="bèi", ["辈"]="bèi", ["邶"]="bèi", ["鋇"]="bèi", ["鐴"]="bèi", ["鐾"]="bèi", ["钡"]="bèi", ["鞁"]="bèi", ["鞴"]="bèi", ["骳"]="bèi", ["𬇙"]="bèi", ["呗"]="bei", ["奔"]="bēn", ["栟"]="bēn", ["犇"]="bēn", ["賁"]="bēn", ["贲"]="bēn", ["锛"]="bēn", ["本"]="běn", ["畚"]="běn", ["翉"]="běn", ["苯"]="běn", ["倴"]="bèn", ["坌"]="bèn", ["笨"]="bèn", ["輽"]="bèn", ["嘣"]="bēng", ["崩"]="bēng", ["祊"]="bēng", ["絣"]="bēng", ["繃"]="bēng", ["绷"]="bēng", ["甭"]="béng", ["琫"]="běng", ["鞛"]="běng", ["泵"]="bèng", ["甏"]="bèng", ["跰"]="bèng", ["蹦"]="bèng", ["迸"]="bèng", ["錋"]="bèng", ["鏰"]="bèng", ["镚"]="bèng", ["屄"]="bī", ["螕"]="bī", ["逼"]="bī", ["鲾"]="bī", ["荸"]="bí", ["鼻"]="bí", ["俾"]="bǐ", ["匕"]="bǐ", ["吡"]="bǐ", ["妣"]="bǐ", ["彼"]="bǐ", ["比"]="bǐ", ["沘"]="bǐ", ["秕"]="bǐ", ["笔"]="bǐ", ["筆"]="bǐ", ["粃"]="bǐ", ["粊"]="bǐ", ["聛"]="bǐ", ["舭"]="bǐ", ["貏"]="bǐ", ["鄙"]="bǐ", ["佖"]="bì", ["咇"]="bì", ["哔"]="bì", ["坒"]="bì", ["壁"]="bì", ["婢"]="bì", ["嬖"]="bì", ["币"]="bì", ["庇"]="bì", ["庳"]="bì", ["弊"]="bì", ["弼"]="bì", ["必"]="bì", ["愎"]="bì", ["敝"]="bì", ["毕"]="bì", ["毖"]="bì", ["毙"]="bì", ["滗"]="bì", ["濞"]="bì", ["狴"]="bì", ["珌"]="bì", ["璧"]="bì", ["畀"]="bì", ["痹"]="bì", ["皕"]="bì", ["碧"]="bì", ["祕"]="bì", ["禆"]="bì", ["筚"]="bì", ["箅"]="bì", ["篦"]="bì", ["篳"]="bì", ["綼"]="bì", ["縪"]="bì", ["繴"]="bì", ["罼"]="bì", ["肸"]="bì", ["臂"]="bì", ["苾"]="bì", ["荜"]="bì", ["萆"]="bì", ["蓖"]="bì", ["蔽"]="bì", ["薜"]="bì", ["蜌"]="bì", ["袐"]="bì", ["裨"]="bì", ["襞"]="bì", ["觱"]="bì", ["詖"]="bì", ["诐"]="bì", ["赑"]="bì", ["跸"]="bì", ["躄"]="bì", ["避"]="bì", ["邲"]="bì", ["鉍"]="bì", ["铋"]="bì", ["閉"]="bì", ["閟"]="bì", ["闭"]="bì", ["陛"]="bì", ["饆"]="bì", ["馝"]="bì", ["駜"]="bì", ["驆"]="bì", ["髀"]="bì", ["髲"]="bì", ["鮅"]="bì", ["鴓"]="bì", ["鶝"]="bì", ["鷩"]="bì", ["鼊"]="bì", ["煸"]="biān", ["砭"]="biān", ["笾"]="biān", ["箯"]="biān", ["編"]="biān", ["编"]="biān", ["萹"]="biān", ["蝙"]="biān", ["边"]="biān", ["邉"]="biān", ["邊"]="biān", ["鞭"]="biān", ["鳊"]="biān", ["匾"]="biǎn", ["扁"]="biǎn", ["碥"]="biǎn", ["窆"]="biǎn", ["褊"]="biǎn", ["覵"]="biǎn", ["贬"]="biǎn", ["釆"]="biǎn", ["便"]="biàn", ["卞"]="biàn", ["变"]="biàn", ["弁"]="biàn", ["忭"]="biàn", ["抃"]="biàn", ["昪"]="biàn", ["汴"]="biàn", ["緶"]="biàn", ["缏"]="biàn", ["艑"]="biàn", ["苄"]="biàn", ["覍"]="biàn", ["變"]="biàn", ["辨"]="biàn", ["辩"]="biàn", ["辫"]="biàn", ["辯"]="biàn", ["遍"]="biàn", ["𨚕"]="biàn", ["儦"]="biāo", ["幖"]="biāo", ["彪"]="biāo", ["杓"]="biāo", ["标"]="biāo", ["瀌"]="biāo", ["熛"]="biāo", ["瘭"]="biāo", ["脿"]="biāo", ["膘"]="biāo", ["臕"]="biāo", ["藨"]="biāo", ["贆"]="biāo", ["鏢"]="biāo", ["鑣"]="biāo", ["镖"]="biāo", ["镳"]="biāo", ["飆"]="biāo", ["飑"]="biāo", ["飙"]="biāo", ["飚"]="biāo", ["骉"]="biāo", ["骠"]="biāo", ["髟"]="biāo", ["麃"]="biāo", ["婊"]="biǎo", ["表"]="biǎo", ["裱"]="biǎo", ["諘"]="biǎo", ["俵"]="biào", ["摽"]="biào", ["鳔"]="biào", ["憋"]="biē", ["鱉"]="biē", ["鳖"]="biē", ["鼈"]="biē", ["别"]="bié", ["癿"]="bié", ["穪"]="bié", ["莂"]="bié", ["蹩"]="bié", ["瘪"]="biě", ["彆"]="biè", ["傧"]="bīn", ["宾"]="bīn", ["彬"]="bīn", ["斌"]="bīn", ["槟"]="bīn", ["滨"]="bīn", ["濒"]="bīn", ["砏"]="bīn", ["缤"]="bīn", ["蠙"]="bīn", ["訜"]="bīn", ["豳"]="bīn", ["賓"]="bīn", ["邠"]="bīn", ["镔"]="bīn", ["摈"]="bìn", ["殡"]="bìn", ["膑"]="bìn", ["臏"]="bìn", ["髌"]="bìn", ["髕"]="bìn", ["鬂"]="bìn", ["鬓"]="bìn", ["鬢"]="bìn", ["兵"]="bīng", ["冰"]="bīng", ["丙"]="bǐng", ["昺"]="bǐng", ["柄"]="bǐng", ["炳"]="bǐng", ["禀"]="bǐng", ["秉"]="bǐng", ["稟"]="bǐng", ["蛃"]="bǐng", ["邴"]="bǐng", ["鈵"]="bǐng", ["鉼"]="bǐng", ["餅"]="bǐng", ["饼"]="bǐng", ["并"]="bìng", ["幷"]="bìng", ["摒"]="bìng", ["病"]="bìng", ["竝"]="bìng", ["剥"]="bō", ["哱"]="bō", ["嶓"]="bō", ["拨"]="bō", ["播"]="bō", ["波"]="bō", ["玻"]="bō", ["砵"]="bō", ["磻"]="bō", ["缽"]="bō", ["菠"]="bō", ["袚"]="bō", ["蹳"]="bō", ["钵"]="bō", ["饽"]="bō", ["𬭛"]="bō", ["亳"]="bó", ["伯"]="bó", ["僰"]="bó", ["勃"]="bó", ["博"]="bó", ["帛"]="bó", ["搏"]="bó", ["欂"]="bó", ["泊"]="bó", ["浡"]="bó", ["渤"]="bó", ["礡"]="bó", ["礴"]="bó", ["穛"]="bó", ["箔"]="bó", ["脖"]="bó", ["膊"]="bó", ["舶"]="bó", ["艊"]="bó", ["茀"]="bó", ["薄"]="bó", ["袯"]="bó", ["豰"]="bó", ["踣"]="bó", ["鈸"]="bó", ["鑮"]="bó", ["钹"]="bó", ["铂"]="bó", ["镈"]="bó", ["馞"]="bó", ["駮"]="bó", ["驳"]="bó", ["髆"]="bó", ["髉"]="bó", ["鹁"]="bó", ["箥"]="bǒ", ["蚾"]="bǒ", ["跛"]="bǒ", ["擘"]="bò", ["檗"]="bò", ["簸"]="bò", ["啵"]="bo", ["蔔"]="bo", ["晡"]="bū", ["逋"]="bū", ["鈽"]="bū", ["钸"]="bū", ["陠"]="bū", ["餔"]="bū", ["鯆"]="bū", ["醭"]="bú", ["卜"]="bǔ", ["卟"]="bǔ", ["哺"]="bǔ", ["捕"]="bǔ", ["补"]="bǔ", ["補"]="bǔ", ["鳪"]="bǔ", ["鵏"]="bǔ", ["𬷕"]="bǔ", ["不"]="bù", ["埗"]="bù", ["埠"]="bù", ["布"]="bù", ["怖"]="bù", ["步"]="bù", ["瓿"]="bù", ["篰"]="bù", ["簿"]="bù", ["蔀"]="bù", ["踄"]="bù", ["部"]="bù", ["钚"]="bù", ["擦"]="cā", ["礤"]="cǎ", ["猜"]="cāi", ["才"]="cái", ["材"]="cái", ["纔"]="cái", ["裁"]="cái", ["財"]="cái", ["财"]="cái", ["彩"]="cǎi", ["睬"]="cǎi", ["綵"]="cǎi", ["踩"]="cǎi", ["采"]="cǎi", ["縩"]="cài", ["菜"]="cài", ["蔡"]="cài", ["参"]="cān", ["餐"]="cān", ["驂"]="cān", ["骖"]="cān", ["惭"]="cán", ["残"]="cán", ["蚕"]="cán", ["蠶"]="cán", ["䅟"]="cǎn", ["惨"]="cǎn", ["黪"]="cǎn", ["灿"]="càn", ["璨"]="càn", ["粲"]="càn", ["仓"]="cāng", ["伧"]="cāng", ["沧"]="cāng", ["舱"]="cāng", ["艙"]="cāng", ["苍"]="cāng", ["蒼"]="cāng", ["螥"]="cāng", ["藏"]="cáng", ["操"]="cāo", ["糙"]="cāo", ["嘈"]="cáo", ["曹"]="cáo", ["槽"]="cáo", ["漕"]="cáo", ["艚"]="cáo", ["蓸"]="cáo", ["螬"]="cáo", ["𥕢"]="cáo", ["艸"]="cǎo", ["草"]="cǎo", ["肏"]="cào", ["侧"]="cè", ["册"]="cè", ["厕"]="cè", ["恻"]="cè", ["测"]="cè", ["策"]="cè", ["箣"]="cè", ["粣"]="cè", ["萗"]="cè", ["蓛"]="cè", ["膥"]="cēn", ["岑"]="cén", ["涔"]="cén", ["噌"]="cēng", ["层"]="céng", ["嶒"]="céng", ["曾"]="céng", ["蹭"]="cèng", ["叉"]="chā", ["嚓"]="chā", ["差"]="chā", ["插"]="chā", ["肞"]="chā", ["臿"]="chā", ["艖"]="chā", ["鍤"]="chā", ["锸"]="chā", ["馇"]="chā", ["垞"]="chá", ["察"]="chá", ["嵖"]="chá", ["搽"]="chá", ["查"]="chá", ["槎"]="chá", ["檫"]="chá", ["猹"]="chá", ["碴"]="chá", ["茬"]="chá", ["茶"]="chá", ["褨"]="chá", ["𥻗"]="chá", ["衩"]="chǎ", ["镲"]="chǎ", ["侘"]="chà", ["刹"]="chà", ["姹"]="chà", ["岔"]="chà", ["杈"]="chà", ["汊"]="chà", ["詫"]="chà", ["诧"]="chà", ["拆"]="chāi", ["钗"]="chāi", ["侪"]="chái", ["柴"]="chái", ["豺"]="chái", ["瘥"]="chài", ["虿"]="chài", ["蠆"]="chài", ["袃"]="chài", ["掺"]="chān", ["搀"]="chān", ["梴"]="chān", ["襜"]="chān", ["觇"]="chān", ["辿"]="chān", ["儳"]="chán", ["婵"]="chán", ["孱"]="chán", ["巉"]="chán", ["廛"]="chán", ["潺"]="chán", ["澶"]="chán", ["瀍"]="chán", ["獑"]="chán", ["禅"]="chán", ["禪"]="chán", ["繟"]="chán", ["纏"]="chán", ["纒"]="chán", ["缠"]="chán", ["蝉"]="chán", ["蟬"]="chán", ["蟾"]="chán", ["谗"]="chán", ["躔"]="chán", ["鄽"]="chán", ["酁"]="chán", ["鋋"]="chán", ["鑱"]="chán", ["镵"]="chán", ["馋"]="chán", ["产"]="chǎn", ["冁"]="chǎn", ["啴"]="chǎn", ["旵"]="chǎn", ["浐"]="chǎn", ["蒇"]="chǎn", ["諂"]="chǎn", ["谄"]="chǎn", ["鏟"]="chǎn", ["铲"]="chǎn", ["閳"]="chǎn", ["闡"]="chǎn", ["阐"]="chǎn", ["骣"]="chǎn", ["𬊤"]="chǎn", ["刬"]="chàn", ["忏"]="chàn", ["硟"]="chàn", ["羼"]="chàn", ["韂"]="chàn", ["顫"]="chàn", ["颤"]="chàn", ["伥"]="chāng", ["娼"]="chāng", ["昌"]="chāng", ["猖"]="chāng", ["菖"]="chāng", ["閶"]="chāng", ["阊"]="chāng", ["鲳"]="chāng", ["偿"]="cháng", ["嫦"]="cháng", ["尝"]="cháng", ["常"]="cháng", ["徜"]="cháng", ["肠"]="cháng", ["腸"]="cháng", ["苌"]="cháng", ["長"]="cháng", ["长"]="cháng", ["鲿"]="cháng", ["厂"]="chǎng", ["场"]="chǎng", ["惝"]="chǎng", ["敞"]="chǎng", ["昶"]="chǎng", ["氅"]="chǎng", ["鋹"]="chǎng", ["𬬮"]="chǎng", ["倡"]="chàng", ["唱"]="chàng", ["怅"]="chàng", ["畅"]="chàng", ["鬯"]="chàng", ["弨"]="chāo", ["怊"]="chāo", ["抄"]="chāo", ["焯"]="chāo", ["超"]="chāo", ["钞"]="chāo", ["嘲"]="cháo", ["巢"]="cháo", ["晁"]="cháo", ["朝"]="cháo", ["潮"]="cháo", ["鄛"]="cháo", ["吵"]="chǎo", ["炒"]="chǎo", ["麨"]="chǎo", ["耖"]="chào", ["砗"]="chē", ["車"]="chē", ["车"]="chē", ["扯"]="chě", ["㬚"]="chè", ["坼"]="chè", ["彻"]="chè", ["掣"]="chè", ["撤"]="chè", ["澈"]="chè", ["嗔"]="chēn", ["抻"]="chēn", ["琛"]="chēn", ["綝"]="chēn", ["郴"]="chēn", ["𬘭"]="chēn", ["宸"]="chén", ["尘"]="chén", ["忱"]="chén", ["晨"]="chén", ["沉"]="chén", ["煁"]="chén", ["臣"]="chén", ["茞"]="chén", ["蔯"]="chén", ["谌"]="chén", ["辰"]="chén", ["陈"]="chén", ["陳"]="chén", ["麎"]="chén", ["碜"]="chěn", ["磣"]="chěn", ["贂"]="chěn", ["踸"]="chěn", ["榇"]="chèn", ["疢"]="chèn", ["衬"]="chèn", ["谶"]="chèn", ["趁"]="chèn", ["龀"]="chèn", ["偁"]="chēng", ["撑"]="chēng", ["柽"]="chēng", ["琤"]="chēng", ["瞠"]="chēng", ["称"]="chēng", ["稱"]="chēng", ["蛏"]="chēng", ["赪"]="chēng", ["鏿"]="chēng", ["頳"]="chēng", ["丞"]="chéng", ["乘"]="chéng", ["呈"]="chéng", ["城"]="chéng", ["埕"]="chéng", ["塍"]="chéng", ["宬"]="chéng", ["惩"]="chéng", ["憕"]="chéng", ["成"]="chéng", ["承"]="chéng", ["枨"]="chéng", ["橙"]="chéng", ["澂"]="chéng", ["澄"]="chéng", ["珵"]="chéng", ["珹"]="chéng", ["碀"]="chéng", ["程"]="chéng", ["絾"]="chéng", ["脭"]="chéng", ["裎"]="chéng", ["誠"]="chéng", ["诚"]="chéng", ["郕"]="chéng", ["酲"]="chéng", ["铖"]="chéng", ["庱"]="chěng", ["逞"]="chěng", ["騁"]="chěng", ["骋"]="chěng", ["牚"]="chèng", ["秤"]="chèng", ["吃"]="chī", ["哧"]="chī", ["嗤"]="chī", ["媸"]="chī", ["摛"]="chī", ["瓻"]="chī", ["痴"]="chī", ["眵"]="chī", ["笞"]="chī", ["絺"]="chī", ["蚩"]="chī", ["螭"]="chī", ["郗"]="chī", ["魑"]="chī", ["鴟"]="chī", ["鵄"]="chī", ["鸱"]="chī", ["𫄨"]="chī", ["匙"]="chí", ["墀"]="chí", ["弛"]="chí", ["持"]="chí", ["池"]="chí", ["漦"]="chí", ["竾"]="chí", ["筂"]="chí", ["篪"]="chí", ["茌"]="chí", ["踟"]="chí", ["迟"]="chí", ["遲"]="chí", ["馳"]="chí", ["驰"]="chí", ["侈"]="chǐ", ["尺"]="chǐ", ["耻"]="chǐ", ["胣"]="chǐ", ["褫"]="chǐ", ["豉"]="chǐ", ["齒"]="chǐ", ["齿"]="chǐ", ["傺"]="chì", ["叱"]="chì", ["啻"]="chì", ["彳"]="chì", ["敕"]="chì", ["斥"]="chì", ["炽"]="chì", ["痓"]="chì", ["瘛"]="chì", ["翅"]="chì", ["赤"]="chì", ["趩"]="chì", ["飭"]="chì", ["饬"]="chì", ["鶒"]="chì", ["鷘"]="chì", ["㳘"]="chōng", ["充"]="chōng", ["冲"]="chōng", ["忡"]="chōng", ["憧"]="chōng", ["摏"]="chōng", ["珫"]="chōng", ["翀"]="chōng", ["舂"]="chōng", ["艟"]="chōng", ["茺"]="chōng", ["衝"]="chōng", ["蹖"]="chōng", ["崇"]="chóng", ["虫"]="chóng", ["蟲"]="chóng", ["宠"]="chǒng", ["铳"]="chòng", ["抽"]="chōu", ["犨"]="chōu", ["瘳"]="chōu", ["紬"]="chōu", ["跾"]="chōu", ["仇"]="chóu", ["俦"]="chóu", ["帱"]="chóu", ["惆"]="chóu", ["愁"]="chóu", ["椆"]="chóu", ["畴"]="chóu", ["稠"]="chóu", ["筹"]="chóu", ["籌"]="chóu", ["絒"]="chóu", ["绸"]="chóu", ["踌"]="chóu", ["酬"]="chóu", ["雔"]="chóu", ["雠"]="chóu", ["丑"]="chǒu", ["侴"]="chǒu", ["瞅"]="chǒu", ["醜"]="chǒu", ["臭"]="chòu", ["䝙"]="chū", ["䢺"]="chū", ["出"]="chū", ["初"]="chū", ["摴"]="chū", ["樗"]="chū", ["貙"]="chū", ["齣"]="chū", ["刍"]="chú", ["厨"]="chú", ["橱"]="chú", ["滁"]="chú", ["篨"]="chú", ["耡"]="chú", ["芻"]="chú", ["蒭"]="chú", ["蜍"]="chú", ["豠"]="chú", ["蹰"]="chú", ["躇"]="chú", ["鉏"]="chú", ["鋤"]="chú", ["锄"]="chú", ["除"]="chú", ["雏"]="chú", ["储"]="chǔ", ["杵"]="chǔ", ["楚"]="chǔ", ["楮"]="chǔ", ["濋"]="chǔ", ["础"]="chǔ", ["礎"]="chǔ", ["禇"]="chǔ", ["褚"]="chǔ", ["齼"]="chǔ", ["𬺓"]="chǔ", ["亍"]="chù", ["俶"]="chù", ["处"]="chù", ["怵"]="chù", ["憷"]="chù", ["搐"]="chù", ["斶"]="chù", ["琡"]="chù", ["矗"]="chù", ["竌"]="chù", ["绌"]="chù", ["臅"]="chù", ["處"]="chù", ["触"]="chù", ["觸"]="chù", ["踀"]="chù", ["黜"]="chù", ["揣"]="chuāi", ["搋"]="chuāi", ["膗"]="chuái", ["膪"]="chuài", ["踹"]="chuài", ["巛"]="chuān", ["川"]="chuān", ["氚"]="chuān", ["穿"]="chuān", ["传"]="chuán", ["椽"]="chuán", ["舡"]="chuán", ["船"]="chuán", ["遄"]="chuán", ["喘"]="chuǎn", ["舛"]="chuǎn", ["荈"]="chuǎn", ["串"]="chuàn", ["钏"]="chuàn", ["疮"]="chuāng", ["窗"]="chuāng", ["噇"]="chuáng", ["床"]="chuáng", ["闯"]="chuǎng", ["创"]="chuàng", ["怆"]="chuàng", ["吹"]="chuī", ["炊"]="chuī", ["倕"]="chuí", ["圌"]="chuí", ["垂"]="chuí", ["捶"]="chuí", ["棰"]="chuí", ["槌"]="chuí", ["箠"]="chuí", ["菙"]="chuí", ["锤"]="chuí", ["陲"]="chuí", ["顀"]="chuí", ["䲠"]="chūn", ["堾"]="chūn", ["春"]="chūn", ["椿"]="chūn", ["瑃"]="chūn", ["蝽"]="chūn", ["輴"]="chūn", ["唇"]="chún", ["淳"]="chún", ["純"]="chún", ["纯"]="chún", ["脣"]="chún", ["莼"]="chún", ["醇"]="chún", ["醕"]="chún", ["錞"]="chún", ["陙"]="chún", ["鯙"]="chún", ["鹑"]="chún", ["𬭚"]="chún", ["蠢"]="chǔn", ["賰"]="chǔn", ["戳"]="chuō", ["踔"]="chuō", ["逴"]="chuō", ["啜"]="chuò", ["娖"]="chuò", ["惙"]="chuò", ["磭"]="chuò", ["绰"]="chuò", ["辍"]="chuò", ["辵"]="chuò", ["龊"]="chuò", ["偨"]="cī", ["呲"]="cī", ["疵"]="cī", ["跐"]="cī", ["慈"]="cí", ["瓷"]="cí", ["磁"]="cí", ["祠"]="cí", ["糍"]="cí", ["茈"]="cí", ["茨"]="cí", ["詞"]="cí", ["词"]="cí", ["辞"]="cí", ["辭"]="cí", ["鈶"]="cí", ["雌"]="cí", ["飺"]="cí", ["餈"]="cí", ["鴜"]="cí", ["鹚"]="cí", ["此"]="cǐ", ["泚"]="cǐ", ["玼"]="cǐ", ["𫚖"]="cǐ", ["佽"]="cì", ["刺"]="cì", ["次"]="cì", ["莿"]="cì", ["賜"]="cì", ["赐"]="cì", ["匆"]="cōng", ["囱"]="cōng", ["枞"]="cōng", ["熜"]="cōng", ["璁"]="cōng", ["聡"]="cōng", ["聦"]="cōng", ["聪"]="cōng", ["聰"]="cōng", ["苁"]="cōng", ["茐"]="cōng", ["葱"]="cōng", ["蓯"]="cōng", ["蔥"]="cōng", ["鏦"]="cōng", ["驄"]="cōng", ["骢"]="cōng", ["丛"]="cóng", ["从"]="cóng", ["悰"]="cóng", ["淙"]="cóng", ["琮"]="cóng", ["誴"]="cóng", ["賨"]="cóng", ["謥"]="còng", ["凑"]="còu", ["楱"]="còu", ["腠"]="còu", ["輳"]="còu", ["辏"]="còu", ["粗"]="cū", ["麄"]="cū", ["麤"]="cū", ["徂"]="cú", ["殂"]="cú", ["促"]="cù", ["猝"]="cù", ["簇"]="cù", ["蔟"]="cù", ["蹙"]="cù", ["蹴"]="cù", ["醋"]="cù", ["顣"]="cù", ["撺"]="cuān", ["氽"]="cuān", ["汆"]="cuān", ["蹿"]="cuān", ["镩"]="cuān", ["爨"]="cuàn", ["窜"]="cuàn", ["竄"]="cuàn", ["篡"]="cuàn", ["催"]="cuī", ["崔"]="cuī", ["摧"]="cuī", ["榱"]="cuī", ["磪"]="cuī", ["漼"]="cuǐ", ["璀"]="cuǐ", ["繀"]="cuǐ", ["啐"]="cuì", ["悴"]="cuì", ["毳"]="cuì", ["淬"]="cuì", ["瘁"]="cuì", ["粋"]="cuì", ["粹"]="cuì", ["翆"]="cuì", ["翠"]="cuì", ["脆"]="cuì", ["脺"]="cuì", ["膬"]="cuì", ["膵"]="cuì", ["臎"]="cuì", ["萃"]="cuì", ["村"]="cūn", ["皴"]="cūn", ["邨"]="cūn", ["存"]="cún", ["忖"]="cǔn", ["寸"]="cùn", ["搓"]="cuō", ["撮"]="cuō", ["瑳"]="cuō", ["磋"]="cuō", ["蹉"]="cuō", ["嵯"]="cuó", ["痤"]="cuó", ["矬"]="cuó", ["虘"]="cuó", ["鹾"]="cuó", ["脞"]="cuǒ", ["厝"]="cuò", ["挫"]="cuò", ["措"]="cuò", ["棤"]="cuò", ["莝"]="cuò", ["錯"]="cuò", ["锉"]="cuò", ["错"]="cuò", ["哒"]="dā", ["搭"]="dā", ["矺"]="dā", ["耷"]="dā", ["褡"]="dā", ["鎝"]="dā", ["𨱏"]="dā", ["妲"]="dá", ["怛"]="dá", ["溚"]="dá", ["炟"]="dá", ["瘩"]="dá", ["笪"]="dá", ["答"]="dá", ["繨"]="dá", ["荅"]="dá", ["荙"]="dá", ["跶"]="dá", ["达"]="dá", ["迏"]="dá", ["達"]="dá", ["靼"]="dá", ["鞑"]="dá", ["𫟼"]="dá", ["打"]="dǎ", ["大"]="dà", ["垯"]="da", ["呆"]="dāi", ["呔"]="dāi", ["傣"]="dǎi", ["歹"]="dǎi", ["代"]="dài", ["叇"]="dài", ["垈"]="dài", ["埭"]="dài", ["岱"]="dài", ["带"]="dài", ["待"]="dài", ["怠"]="dài", ["戴"]="dài", ["殆"]="dài", ["玳"]="dài", ["甙"]="dài", ["簤"]="dài", ["绐"]="dài", ["艜"]="dài", ["袋"]="dài", ["襶"]="dài", ["貸"]="dài", ["贷"]="dài", ["轪"]="dài", ["迨"]="dài", ["逮"]="dài", ["靆"]="dài", ["鮘"]="dài", ["黛"]="dài", ["丹"]="dān", ["儋"]="dān", ["单"]="dān", ["担"]="dān", ["殚"]="dān", ["眈"]="dān", ["箪"]="dān", ["簞"]="dān", ["耽"]="dān", ["聃"]="dān", ["聸"]="dān", ["襌"]="dān", ["躭"]="dān", ["郸"]="dān", ["酖"]="dān", ["亶"]="dǎn", ["掸"]="dǎn", ["疸"]="dǎn", ["胆"]="dǎn", ["膽"]="dǎn", ["赕"]="dǎn", ["黮"]="dǎn", ["𬘘"]="dǎn", ["但"]="dàn", ["啖"]="dàn", ["弹"]="dàn", ["惮"]="dàn", ["憺"]="dàn", ["旦"]="dàn", ["氮"]="dàn", ["淡"]="dàn", ["澹"]="dàn", ["疍"]="dàn", ["瘅"]="dàn", ["禫"]="dàn", ["萏"]="dàn", ["蛋"]="dàn", ["蜑"]="dàn", ["誕"]="dàn", ["诞"]="dàn", ["贉"]="dàn", ["霮"]="dàn", ["饏"]="dàn", ["駳"]="dàn", ["髧"]="dàn", ["𫢸"]="dàn", ["儅"]="dāng", ["当"]="dāng", ["珰"]="dāng", ["筜"]="dāng", ["簹"]="dāng", ["裆"]="dāng", ["铛"]="dāng", ["党"]="dǎng", ["挡"]="dǎng", ["讜"]="dǎng", ["谠"]="dǎng", ["黨"]="dǎng", ["𣗋"]="dǎng", ["凼"]="dàng", ["垱"]="dàng", ["宕"]="dàng", ["档"]="dàng", ["盪"]="dàng", ["砀"]="dàng", ["碭"]="dàng", ["礑"]="dàng", ["簜"]="dàng", ["荡"]="dàng", ["菪"]="dàng", ["趤"]="dàng", ["逿"]="dàng", ["𬍡"]="dàng", ["刀"]="dāo", ["叨"]="dāo", ["忉"]="dāo", ["氘"]="dāo", ["舠"]="dāo", ["裯"]="dāo", ["魛"]="dāo", ["鱽"]="dāo", ["捯"]="dáo", ["倒"]="dǎo", ["导"]="dǎo", ["岛"]="dǎo", ["捣"]="dǎo", ["祷"]="dǎo", ["禱"]="dǎo", ["蹈"]="dǎo", ["隝"]="dǎo", ["到"]="dào", ["悼"]="dào", ["盗"]="dào", ["盜"]="dào", ["稲"]="dào", ["稻"]="dào", ["纛"]="dào", ["翢"]="dào", ["衟"]="dào", ["軇"]="dào", ["道"]="dào", ["得"]="dé", ["德"]="dé", ["锝"]="dé", ["的"]="de", ["扽"]="dèn", ["噔"]="dēng", ["灯"]="dēng", ["璒"]="dēng", ["登"]="dēng", ["簦"]="dēng", ["戥"]="děng", ["等"]="děng", ["凳"]="dèng", ["嶝"]="dèng", ["瞪"]="dèng", ["磴"]="dèng", ["蹬"]="dèng", ["邓"]="dèng", ["鄧"]="dèng", ["镫"]="dèng", ["隥"]="dèng", ["䃅"]="dī", ["低"]="dī", ["堤"]="dī", ["滴"]="dī", ["磾"]="dī", ["羝"]="dī", ["袛"]="dī", ["隄"]="dī", ["鞮"]="dī", ["嘀"]="dí", ["嫡"]="dí", ["敌"]="dí", ["涤"]="dí", ["狄"]="dí", ["笛"]="dí", ["篴"]="dí", ["籴"]="dí", ["糴"]="dí", ["荻"]="dí", ["觌"]="dí", ["踧"]="dí", ["蹢"]="dí", ["迪"]="dí", ["镝"]="dí", ["靮"]="dí", ["髢"]="dí", ["鬄"]="dí", ["𬱖"]="dí", ["坻"]="dǐ", ["底"]="dǐ", ["抵"]="dǐ", ["柢"]="dǐ", ["氐"]="dǐ", ["砥"]="dǐ", ["聜"]="dǐ", ["茋"]="dǐ", ["菧"]="dǐ", ["诋"]="dǐ", ["軧"]="dǐ", ["邸"]="dǐ", ["骶"]="dǐ", ["䗖"]="dì", ["哋"]="dì", ["地"]="dì", ["娣"]="dì", ["媂"]="dì", ["帝"]="dì", ["弟"]="dì", ["杕"]="dì", ["棣"]="dì", ["玓"]="dì", ["睇"]="dì", ["碲"]="dì", ["祶"]="dì", ["禘"]="dì", ["第"]="dì", ["締"]="dì", ["缔"]="dì", ["腣"]="dì", ["菂"]="dì", ["蒂"]="dì", ["諦"]="dì", ["谛"]="dì", ["踶"]="dì", ["递"]="dì", ["逓"]="dì", ["遞"]="dì", ["釱"]="dì", ["𤧛"]="dì", ["嗲"]="diǎ", ["巅"]="diān", ["掂"]="diān", ["滇"]="diān", ["癫"]="diān", ["蹎"]="diān", ["顛"]="diān", ["颠"]="diān", ["齻"]="diān", ["典"]="diǎn", ["点"]="diǎn", ["碘"]="diǎn", ["蒧"]="diǎn", ["踮"]="diǎn", ["點"]="diǎn", ["佃"]="diàn", ["坫"]="diàn", ["垫"]="diàn", ["奠"]="diàn", ["店"]="diàn", ["惦"]="diàn", ["扂"]="diàn", ["殿"]="diàn", ["淀"]="diàn", ["玷"]="diàn", ["琔"]="diàn", ["电"]="diàn", ["甸"]="diàn", ["癜"]="diàn", ["磹"]="diàn", ["簟"]="diàn", ["蜔"]="diàn", ["鈿"]="diàn", ["钿"]="diàn", ["阽"]="diàn", ["電"]="diàn", ["靛"]="diàn", ["凋"]="diāo", ["刁"]="diāo", ["叼"]="diāo", ["汈"]="diāo", ["矵"]="diāo", ["碉"]="diāo", ["貂"]="diāo", ["雕"]="diāo", ["颩"]="diāo", ["鯛"]="diāo", ["鲷"]="diāo", ["鵰"]="diāo", ["屌"]="diǎo", ["吊"]="diào", ["弔"]="diào", ["掉"]="diào", ["窎"]="diào", ["訋"]="diào", ["調"]="diào", ["调"]="diào", ["釣"]="diào", ["钓"]="diào", ["铞"]="diào", ["铫"]="diào", ["爹"]="diē", ["跌"]="diē", ["叠"]="dié", ["喋"]="dié", ["垤"]="dié", ["堞"]="dié", ["昳"]="dié", ["楪"]="dié", ["牒"]="dié", ["瓞"]="dié", ["眣"]="dié", ["眰"]="dié", ["碟"]="dié", ["绖"]="dié", ["耊"]="dié", ["耋"]="dié", ["蜨"]="dié", ["蝶"]="dié", ["褋"]="dié", ["詄"]="dié", ["谍"]="dié", ["蹀"]="dié", ["迭"]="dié", ["镻"]="dié", ["鲽"]="dié", ["𫶇"]="dié", ["丁"]="dīng", ["仃"]="dīng", ["叮"]="dīng", ["玎"]="dīng", ["疔"]="dīng", ["盯"]="dīng", ["耵"]="dīng", ["虰"]="dīng", ["艼"]="dǐng", ["酊"]="dǐng", ["鐤"]="dǐng", ["頂"]="dǐng", ["顶"]="dǐng", ["鼎"]="dǐng", ["鼑"]="dǐng", ["啶"]="dìng", ["定"]="dìng", ["碇"]="dìng", ["碠"]="dìng", ["磸"]="dìng", ["腚"]="dìng", ["萣"]="dìng", ["訂"]="dìng", ["订"]="dìng", ["釘"]="dìng", ["錠"]="dìng", ["钉"]="dìng", ["铤"]="dìng", ["锭"]="dìng", ["饤"]="dìng", ["丢"]="diū", ["铥"]="diū", ["东"]="dōng", ["冬"]="dōng", ["咚"]="dōng", ["岽"]="dōng", ["氡"]="dōng", ["笗"]="dōng", ["菄"]="dōng", ["蝀"]="dōng", ["鶇"]="dōng", ["鶫"]="dōng", ["鸫"]="dōng", ["𬟽"]="dōng", ["懂"]="dǒng", ["箽"]="dǒng", ["董"]="dǒng", ["侗"]="dòng", ["冻"]="dòng", ["动"]="dòng", ["垌"]="dòng", ["峒"]="dòng", ["恫"]="dòng", ["栋"]="dòng", ["洞"]="dòng", ["硐"]="dòng", ["胨"]="dòng", ["胴"]="dòng", ["衕"]="dòng", ["霘"]="dòng", ["兜"]="dōu", ["篼"]="dōu", ["蔸"]="dōu", ["都"]="dōu", ["抖"]="dǒu", ["斗"]="dǒu", ["蚪"]="dǒu", ["陡"]="dǒu", ["痘"]="dòu", ["窦"]="dòu", ["竇"]="dòu", ["脰"]="dòu", ["荳"]="dòu", ["豆"]="dòu", ["逗"]="dòu", ["閗"]="dòu", ["餖"]="dòu", ["饾"]="dòu", ["鬥"]="dòu", ["厾"]="dū", ["嘟"]="dū", ["督"]="dū", ["闍"]="dū", ["阇"]="dū", ["椟"]="dú", ["毒"]="dú", ["渎"]="dú", ["牍"]="dú", ["犊"]="dú", ["独"]="dú", ["蝳"]="dú", ["讀"]="dú", ["讟"]="dú", ["读"]="dú", ["鑟"]="dú", ["韥"]="dú", ["髑"]="dú", ["黩"]="dú", ["堵"]="dǔ", ["睹"]="dǔ", ["笃"]="dǔ", ["篤"]="dǔ", ["覩"]="dǔ", ["赌"]="dǔ", ["陼"]="dǔ", ["妒"]="dù", ["度"]="dù", ["杜"]="dù", ["渡"]="dù", ["秺"]="dù", ["肚"]="dù", ["芏"]="dù", ["蠹"]="dù", ["鍍"]="dù", ["镀"]="dù", ["𬭊"]="dù", ["端"]="duān", ["短"]="duǎn", ["塅"]="duàn", ["断"]="duàn", ["椴"]="duàn", ["段"]="duàn", ["煅"]="duàn", ["瑖"]="duàn", ["簖"]="duàn", ["緞"]="duàn", ["缎"]="duàn", ["葮"]="duàn", ["鍛"]="duàn", ["锻"]="duàn", ["堆"]="duī", ["鎚"]="duī", ["鴭"]="duī", ["兑"]="duì", ["对"]="duì", ["怼"]="duì", ["憝"]="duì", ["碓"]="duì", ["祋"]="duì", ["队"]="duì", ["陮"]="duì", ["隊"]="duì", ["吨"]="dūn", ["墩"]="dūn", ["惇"]="dūn", ["敦"]="dūn", ["礅"]="dūn", ["蹲"]="dūn", ["蹾"]="dūn", ["鐓"]="dūn", ["镦"]="dūn", ["盹"]="dǔn", ["趸"]="dǔn", ["躉"]="dǔn", ["沌"]="dùn", ["炖"]="dùn", ["盾"]="dùn", ["砘"]="dùn", ["逇"]="dùn", ["遁"]="dùn", ["遯"]="dùn", ["鈍"]="dùn", ["钝"]="dùn", ["頓"]="dùn", ["顿"]="dùn", ["㙍"]="duō", ["剟"]="duō", ["咄"]="duō", ["哆"]="duō", ["多"]="duō", ["掇"]="duō", ["裰"]="duō", ["夺"]="duó", ["踱"]="duó", ["铎"]="duó", ["亸"]="duǒ", ["哚"]="duǒ", ["埵"]="duǒ", ["朵"]="duǒ", ["缍"]="duǒ", ["躱"]="duǒ", ["躲"]="duǒ", ["剁"]="duò", ["垛"]="duò", ["堕"]="duò", ["惰"]="duò", ["沲"]="duò", ["舵"]="duò", ["跺"]="duò", ["饳"]="duò", ["婀"]="ē", ["屙"]="ē", ["俄"]="é", ["娥"]="é", ["峨"]="é", ["涐"]="é", ["睋"]="é", ["莪"]="é", ["蛾"]="é", ["訛"]="é", ["譌"]="é", ["讹"]="é", ["锇"]="é", ["額"]="é", ["额"]="é", ["鰪"]="é", ["鵝"]="é", ["鹅"]="é", ["厄"]="è", ["噁"]="è", ["噩"]="è", ["垩"]="è", ["堨"]="è", ["姶"]="è", ["崿"]="è", ["恶"]="è", ["愕"]="è", ["扼"]="è", ["礘"]="è", ["腭"]="è", ["苊"]="è", ["萼"]="è", ["蕚"]="è", ["蘁"]="è", ["詻"]="è", ["讍"]="è", ["谔"]="è", ["軛"]="è", ["轭"]="è", ["遏"]="è", ["鄂"]="è", ["鍔"]="è", ["锷"]="è", ["阏"]="è", ["阨"]="è", ["阸"]="è", ["頞"]="è", ["顎"]="è", ["颚"]="è", ["餓"]="è", ["饿"]="è", ["鳄"]="è", ["鶚"]="è", ["鹗"]="è", ["齾"]="è", ["𥔲"]="è", ["𫫇"]="è", ["呃"]="e", ["诶"]="ēi", ["恩"]="ēn", ["蒽"]="ēn", ["摁"]="èn", ["儿"]="ér", ["粫"]="ér", ["而"]="ér", ["胹"]="ér", ["輀"]="ér", ["陑"]="ér", ["鲕"]="ér", ["鸸"]="ér", ["尔"]="ěr", ["洱"]="ěr", ["珥"]="ěr", ["耳"]="ěr", ["薾"]="ěr", ["趰"]="ěr", ["迩"]="ěr", ["邇"]="ěr", ["铒"]="ěr", ["餌"]="ěr", ["饵"]="ěr", ["二"]="èr", ["佴"]="èr", ["咡"]="èr", ["貮"]="èr", ["贰"]="èr", ["发"]="fā", ["乏"]="fá", ["伐"]="fá", ["垡"]="fá", ["瞂"]="fá", ["筏"]="fá", ["罚"]="fá", ["罰"]="fá", ["阀"]="fá", ["法"]="fǎ", ["砝"]="fǎ", ["珐"]="fà", ["蕟"]="fà", ["髪"]="fà", ["髮"]="fà", ["帆"]="fān", ["幡"]="fān", ["番"]="fān", ["翻"]="fān", ["藩"]="fān", ["轓"]="fān", ["凡"]="fán", ["墦"]="fán", ["樊"]="fán", ["氾"]="fán", ["烦"]="fán", ["燔"]="fán", ["璠"]="fán", ["矾"]="fán", ["笲"]="fán", ["緐"]="fán", ["繁"]="fán", ["繙"]="fán", ["蕃"]="fán", ["薠"]="fán", ["蘩"]="fán", ["蠜"]="fán", ["蹯"]="fán", ["鐇"]="fán", ["钒"]="fán", ["鷭"]="fán", ["𫔍"]="fán", ["𬸪"]="fán", ["反"]="fǎn", ["攵"]="fǎn", ["返"]="fǎn", ["梵"]="fàn", ["泛"]="fàn", ["犯"]="fàn", ["畈"]="fàn", ["盕"]="fàn", ["範"]="fàn", ["范"]="fàn", ["訉"]="fàn", ["販"]="fàn", ["贩"]="fàn", ["軓"]="fàn", ["軬"]="fàn", ["飯"]="fàn", ["飰"]="fàn", ["饭"]="fàn", ["匚"]="fāng", ["坊"]="fāng", ["方"]="fāng", ["枋"]="fāng", ["牥"]="fāng", ["芳"]="fāng", ["蚄"]="fāng", ["邡"]="fāng", ["钫"]="fāng", ["妨"]="fáng", ["房"]="fáng", ["肪"]="fáng", ["防"]="fáng", ["鲂"]="fáng", ["仿"]="fǎng", ["昉"]="fǎng", ["眆"]="fǎng", ["纺"]="fǎng", ["舫"]="fǎng", ["訪"]="fǎng", ["访"]="fǎng", ["髣"]="fǎng", ["放"]="fàng", ["啡"]="fēi", ["妃"]="fēi", ["扉"]="fēi", ["緋"]="fēi", ["绯"]="fēi", ["菲"]="fēi", ["裶"]="fēi", ["霏"]="fēi", ["非"]="fēi", ["飛"]="fēi", ["飞"]="fēi", ["騛"]="fēi", ["鯡"]="fēi", ["鲱"]="fēi", ["𬴂"]="fēi", ["淝"]="féi", ["肥"]="féi", ["腓"]="féi", ["匪"]="fěi", ["悱"]="fěi", ["斐"]="fěi", ["朏"]="fěi", ["棐"]="fěi", ["榧"]="fěi", ["篚"]="fěi", ["翡"]="fěi", ["蕜"]="fěi", ["蜚"]="fěi", ["诽"]="fěi", ["剕"]="fèi", ["吠"]="fèi", ["废"]="fèi", ["沸"]="fèi", ["狒"]="fèi", ["痱"]="fèi", ["笰"]="fèi", ["肺"]="fèi", ["蕡"]="fèi", ["費"]="fèi", ["费"]="fèi", ["鐨"]="fèi", ["镄"]="fèi", ["髴"]="fèi", ["分"]="fēn", ["吩"]="fēn", ["棻"]="fēn", ["氛"]="fēn", ["玢"]="fēn", ["紛"]="fēn", ["纷"]="fēn", ["翂"]="fēn", ["芬"]="fēn", ["酚"]="fēn", ["鈖"]="fēn", ["雰"]="fēn", ["坟"]="fén", ["棼"]="fén", ["汾"]="fén", ["焚"]="fén", ["羵"]="fén", ["蚡"]="fén", ["豮"]="fén", ["魵"]="fén", ["鼖"]="fén", ["鼢"]="fén", ["𣸣"]="fén", ["瞓"]="fěn", ["粉"]="fěn", ["黺"]="fěn", ["份"]="fèn", ["偾"]="fèn", ["坋"]="fèn", ["奋"]="fèn", ["忿"]="fèn", ["愤"]="fèn", ["瀵"]="fèn", ["粪"]="fèn", ["糞"]="fèn", ["膹"]="fèn", ["鲼"]="fèn", ["丰"]="fēng", ["封"]="fēng", ["峰"]="fēng", ["崶"]="fēng", ["枫"]="fēng", ["沣"]="fēng", ["沨"]="fēng", ["烽"]="fēng", ["疯"]="fēng", ["盽"]="fēng", ["砜"]="fēng", ["碸"]="fēng", ["葑"]="fēng", ["蜂"]="fēng", ["豊"]="fēng", ["豐"]="fēng", ["鄷"]="fēng", ["酆"]="fēng", ["鋒"]="fēng", ["锋"]="fēng", ["風"]="fēng", ["风"]="fēng", ["麷"]="fēng", ["冯"]="féng", ["浲"]="féng", ["縫"]="féng", ["缝"]="féng", ["艂"]="féng", ["逢"]="féng", ["馮"]="féng", ["唪"]="fěng", ["讽"]="fěng", ["俸"]="fèng", ["凤"]="fèng", ["奉"]="fèng", ["赗"]="fèng", ["鳳"]="fèng", ["覅"]="fiào", ["佛"]="fó", ["否"]="fǒu", ["缶"]="fǒu", ["缻"]="fǒu", ["呋"]="fū", ["夫"]="fū", ["孵"]="fū", ["敷"]="fū", ["玞"]="fū", ["砆"]="fū", ["稃"]="fū", ["綒"]="fū", ["肤"]="fū", ["膚"]="fū", ["豧"]="fū", ["趺"]="fū", ["跗"]="fū", ["鄜"]="fū", ["鈇"]="fū", ["麩"]="fū", ["麸"]="fū", ["𫓧"]="fū", ["伏"]="fú", ["俘"]="fú", ["凫"]="fú", ["匐"]="fú", ["垺"]="fú", ["孚"]="fú", ["幅"]="fú", ["幞"]="fú", ["弗"]="fú", ["怫"]="fú", ["扶"]="fú", ["拂"]="fú", ["服"]="fú", ["桴"]="fú", ["榑"]="fú", ["氟"]="fú", ["洑"]="fú", ["浮"]="fú", ["涪"]="fú", ["琈"]="fú", ["砩"]="fú", ["祓"]="fú", ["福"]="fú", ["符"]="fú", ["綍"]="fú", ["绂"]="fú", ["绋"]="fú", ["罘"]="fú", ["艴"]="fú", ["芙"]="fú", ["芣"]="fú", ["芾"]="fú", ["苻"]="fú", ["茯"]="fú", ["莩"]="fú", ["菔"]="fú", ["葍"]="fú", ["虙"]="fú", ["蚨"]="fú", ["蜉"]="fú", ["蝠"]="fú", ["袱"]="fú", ["輻"]="fú", ["辐"]="fú", ["郛"]="fú", ["韍"]="fú", ["韨"]="fú", ["鮄"]="fú", ["黻"]="fú", ["㕮"]="fǔ", ["俯"]="fǔ", ["呒"]="fǔ", ["府"]="fǔ", ["抚"]="fǔ", ["拊"]="fǔ", ["斧"]="fǔ", ["滏"]="fǔ", ["甫"]="fǔ", ["簠"]="fǔ", ["腐"]="fǔ", ["腑"]="fǔ", ["輔"]="fǔ", ["辅"]="fǔ", ["郙"]="fǔ", ["釜"]="fǔ", ["釡"]="fǔ", ["頫"]="fǔ", ["黼"]="fǔ", ["𫖯"]="fǔ", ["㳇"]="fù", ["付"]="fù", ["傅"]="fù", ["副"]="fù", ["咐"]="fù", ["复"]="fù", ["妇"]="fù", ["富"]="fù", ["父"]="fù", ["祔"]="fù", ["禣"]="fù", ["縛"]="fù", ["缚"]="fù", ["腹"]="fù", ["蕧"]="fù", ["蝜"]="fù", ["蝮"]="fù", ["袝"]="fù", ["複"]="fù", ["褔"]="fù", ["覆"]="fù", ["訃"]="fù", ["讣"]="fù", ["負"]="fù", ["賦"]="fù", ["负"]="fù", ["赋"]="fù", ["赙"]="fù", ["赴"]="fù", ["鍑"]="fù", ["阜"]="fù", ["附"]="fù", ["馥"]="fù", ["驸"]="fù", ["鲋"]="fù", ["鳆"]="fù", ["伽"]="gā", ["旮"]="gā", ["嘎"]="gá", ["噶"]="gá", ["尜"]="gá", ["钆"]="gá", ["尕"]="gǎ", ["尬"]="gà", ["垓"]="gāi", ["晐"]="gāi", ["荄"]="gāi", ["該"]="gāi", ["该"]="gāi", ["賅"]="gāi", ["赅"]="gāi", ["陔"]="gāi", ["改"]="gǎi", ["丐"]="gài", ["戤"]="gài", ["概"]="gài", ["溉"]="gài", ["盖"]="gài", ["葢"]="gài", ["蓋"]="gài", ["鈣"]="gài", ["钙"]="gài", ["𬮿"]="gài", ["坩"]="gān", ["尴"]="gān", ["干"]="gān", ["杆"]="gān", ["柑"]="gān", ["泔"]="gān", ["玕"]="gān", ["甘"]="gān", ["疳"]="gān", ["矸"]="gān", ["竿"]="gān", ["筸"]="gān", ["粓"]="gān", ["肝"]="gān", ["苷"]="gān", ["酐"]="gān", ["飦"]="gān", ["感"]="gǎn", ["擀"]="gǎn", ["敢"]="gǎn", ["橄"]="gǎn", ["澉"]="gǎn", ["秆"]="gǎn", ["稈"]="gǎn", ["笴"]="gǎn", ["簳"]="gǎn", ["赶"]="gǎn", ["趕"]="gǎn", ["鱤"]="gǎn", ["鳡"]="gǎn", ["㽏"]="gàn", ["幹"]="gàn", ["旰"]="gàn", ["淦"]="gàn", ["紺"]="gàn", ["绀"]="gàn", ["赣"]="gàn", ["㭎"]="gāng", ["冈"]="gāng", ["冮"]="gāng", ["刚"]="gāng", ["堽"]="gāng", ["矼"]="gāng", ["綱"]="gāng", ["纲"]="gāng", ["缸"]="gāng", ["罁"]="gāng", ["罡"]="gāng", ["肛"]="gāng", ["釭"]="gāng", ["鋼"]="gāng", ["钢"]="gāng", ["岗"]="gǎng", ["港"]="gǎng", ["杠"]="gàng", ["筻"]="gàng", ["鿍"]="gàng", ["槔"]="gāo", ["皋"]="gāo", ["睾"]="gāo", ["篙"]="gāo", ["糕"]="gāo", ["羔"]="gāo", ["膏"]="gāo", ["臯"]="gāo", ["韟"]="gāo", ["高"]="gāo", ["鷱"]="gāo", ["鼛"]="gāo", ["搞"]="gǎo", ["杲"]="gǎo", ["槁"]="gǎo", ["稿"]="gǎo", ["筶"]="gǎo", ["縞"]="gǎo", ["缟"]="gǎo", ["菒"]="gǎo", ["藁"]="gǎo", ["藳"]="gǎo", ["镐"]="gǎo", ["告"]="gào", ["祮"]="gào", ["祰"]="gào", ["禞"]="gào", ["誥"]="gào", ["诰"]="gào", ["郜"]="gào", ["锆"]="gào", ["割"]="gē", ["咯"]="gē", ["哥"]="gē", ["圪"]="gē", ["戈"]="gē", ["搁"]="gē", ["歌"]="gē", ["疙"]="gē", ["胳"]="gē", ["袼"]="gē", ["饹"]="gē", ["鴐"]="gē", ["鴿"]="gē", ["鸽"]="gē", ["鿔"]="gē", ["嗝"]="gé", ["塥"]="gé", ["搿"]="gé", ["格"]="gé", ["滆"]="gé", ["膈"]="gé", ["蛤"]="gé", ["裓"]="gé", ["詥"]="gé", ["轕"]="gé", ["鎘"]="gé", ["镉"]="gé", ["閣"]="gé", ["閤"]="gé", ["阁"]="gé", ["隔"]="gé", ["革"]="gé", ["騔"]="gé", ["骼"]="gé", ["鬲"]="gé", ["哿"]="gě", ["舸"]="gě", ["葛"]="gě", ["魺"]="gě", ["鲄"]="gě", ["各"]="gè", ["硌"]="gè", ["箇"]="gè", ["虼"]="gè", ["铬"]="gè", ["个"]="ge", ["個"]="ge", ["給"]="gěi", ["给"]="gěi", ["根"]="gēn", ["跟"]="gēn", ["哏"]="gén", ["亘"]="gèn", ["艮"]="gèn", ["茛"]="gèn", ["庚"]="gēng", ["浭"]="gēng", ["絙"]="gēng", ["縆"]="gēng", ["羮"]="gēng", ["羹"]="gēng", ["耕"]="gēng", ["賡"]="gēng", ["赓"]="gēng", ["鶊"]="gēng", ["鹒"]="gēng", ["哽"]="gěng", ["埂"]="gěng", ["梗"]="gěng", ["绠"]="gěng", ["耿"]="gěng", ["骾"]="gěng", ["鯁"]="gěng", ["鲠"]="gěng", ["𬒔"]="gěng", ["暅"]="gèng", ["更"]="gèng", ["䢼"]="gōng", ["供"]="gōng", ["公"]="gōng", ["功"]="gōng", ["宫"]="gōng", ["工"]="gōng", ["弓"]="gōng", ["恭"]="gōng", ["攻"]="gōng", ["碽"]="gōng", ["肱"]="gōng", ["蚣"]="gōng", ["觥"]="gōng", ["躬"]="gōng", ["魟"]="gōng", ["龔"]="gōng", ["龚"]="gōng", ["巩"]="gǒng", ["拱"]="gǒng", ["汞"]="gǒng", ["珙"]="gǒng", ["硔"]="gǒng", ["鞏"]="gǒng", ["共"]="gòng", ["貢"]="gòng", ["贡"]="gòng", ["佝"]="gōu", ["勾"]="gōu", ["沟"]="gōu", ["篝"]="gōu", ["簼"]="gōu", ["緱"]="gōu", ["缑"]="gōu", ["袧"]="gōu", ["褠"]="gōu", ["鉤"]="gōu", ["钩"]="gōu", ["鞲"]="gōu", ["岣"]="gǒu", ["枸"]="gǒu", ["狗"]="gǒu", ["笱"]="gǒu", ["耇"]="gǒu", ["耈"]="gǒu", ["苟"]="gǒu", ["垢"]="gòu", ["够"]="gòu", ["姤"]="gòu", ["媾"]="gòu", ["彀"]="gòu", ["构"]="gòu", ["覯"]="gòu", ["觏"]="gòu", ["訽"]="gòu", ["詬"]="gòu", ["诟"]="gòu", ["購"]="gòu", ["购"]="gòu", ["遘"]="gòu", ["雊"]="gòu", ["估"]="gū", ["咕"]="gū", ["姑"]="gū", ["孤"]="gū", ["沽"]="gū", ["笟"]="gū", ["箍"]="gū", ["箛"]="gū", ["苽"]="gū", ["菇"]="gū", ["菰"]="gū", ["蓇"]="gū", ["蛄"]="gū", ["觚"]="gū", ["轱"]="gū", ["辜"]="gū", ["酤"]="gū", ["鴣"]="gū", ["鸪"]="gū", ["古"]="gǔ", ["嘏"]="gǔ", ["榖"]="gǔ", ["毂"]="gǔ", ["汩"]="gǔ", ["瀔"]="gǔ", ["牯"]="gǔ", ["盬"]="gǔ", ["瞽"]="gǔ", ["穀"]="gǔ", ["糓"]="gǔ", ["罟"]="gǔ", ["羖"]="gǔ", ["股"]="gǔ", ["脵"]="gǔ", ["臌"]="gǔ", ["蛊"]="gǔ", ["诂"]="gǔ", ["谷"]="gǔ", ["賈"]="gǔ", ["贾"]="gǔ", ["轂"]="gǔ", ["钴"]="gǔ", ["馉"]="gǔ", ["骨"]="gǔ", ["鼓"]="gǔ", ["𦙶"]="gǔ", ["固"]="gù", ["堌"]="gù", ["崮"]="gù", ["故"]="gù", ["梏"]="gù", ["牿"]="gù", ["痼"]="gù", ["祻"]="gù", ["锢"]="gù", ["雇"]="gù", ["頋"]="gù", ["顧"]="gù", ["顾"]="gù", ["鯝"]="gù", ["鲴"]="gù", ["刮"]="guā", ["呱"]="guā", ["栝"]="guā", ["瓜"]="guā", ["緺"]="guā", ["胍"]="guā", ["騧"]="guā", ["鴰"]="guā", ["鸹"]="guā", ["剐"]="guǎ", ["寡"]="guǎ", ["卦"]="guà", ["挂"]="guà", ["絓"]="guà", ["罣"]="guà", ["褂"]="guà", ["詿"]="guà", ["诖"]="guà", ["乖"]="guāi", ["拐"]="guǎi", ["夬"]="guài", ["怪"]="guài", ["倌"]="guān", ["关"]="guān", ["官"]="guān", ["棺"]="guān", ["窤"]="guān", ["蒄"]="guān", ["觀"]="guān", ["观"]="guān", ["関"]="guān", ["關"]="guān", ["鳏"]="guān", ["琯"]="guǎn", ["筦"]="guǎn", ["管"]="guǎn", ["輨"]="guǎn", ["錧"]="guǎn", ["館"]="guǎn", ["馆"]="guǎn", ["鳤"]="guǎn", ["冠"]="guàn", ["惯"]="guàn", ["掼"]="guàn", ["毌"]="guàn", ["涫"]="guàn", ["灌"]="guàn", ["爟"]="guàn", ["瓘"]="guàn", ["盥"]="guàn", ["矔"]="guàn", ["祼"]="guàn", ["罆"]="guàn", ["罐"]="guàn", ["貫"]="guàn", ["贯"]="guàn", ["鏆"]="guàn", ["鑵"]="guàn", ["雚"]="guàn", ["鹳"]="guàn", ["光"]="guāng", ["咣"]="guāng", ["垙"]="guāng", ["洸"]="guāng", ["珖"]="guāng", ["硄"]="guāng", ["胱"]="guāng", ["趪"]="guāng", ["銧"]="guāng", ["𨐈"]="guāng", ["广"]="guǎng", ["犷"]="guǎng", ["桄"]="guàng", ["逛"]="guàng", ["圭"]="guī", ["妫"]="guī", ["归"]="guī", ["珪"]="guī", ["瑰"]="guī", ["皈"]="guī", ["瞡"]="guī", ["硅"]="guī", ["膭"]="guī", ["螝"]="guī", ["袿"]="guī", ["規"]="guī", ["规"]="guī", ["邽"]="guī", ["闺"]="guī", ["雟"]="guī", ["鬶"]="guī", ["鮭"]="guī", ["鲑"]="guī", ["鴂"]="guī", ["鴃"]="guī", ["龜"]="guī", ["龟"]="guī", ["匦"]="guǐ", ["姽"]="guǐ", ["宄"]="guǐ", ["庋"]="guǐ", ["晷"]="guǐ", ["癸"]="guǐ", ["祪"]="guǐ", ["簋"]="guǐ", ["詭"]="guǐ", ["诡"]="guǐ", ["軌"]="guǐ", ["轨"]="guǐ", ["鬼"]="guǐ", ["刽"]="guì", ["刿"]="guì", ["柜"]="guì", ["桂"]="guì", ["桧"]="guì", ["炅"]="guì", ["瞆"]="guì", ["禬"]="guì", ["筀"]="guì", ["蓕"]="guì", ["襘"]="guì", ["貴"]="guì", ["贵"]="guì", ["赽"]="guì", ["趹"]="guì", ["跪"]="guì", ["鱖"]="guì", ["鱥"]="guì", ["鳜"]="guì", ["滚"]="gǔn", ["磙"]="gǔn", ["緄"]="gǔn", ["绲"]="gǔn", ["衮"]="gǔn", ["袞"]="gǔn", ["輥"]="gǔn", ["辊"]="gǔn", ["鮌"]="gǔn", ["鯀"]="gǔn", ["鲧"]="gǔn", ["棍"]="gùn", ["睴"]="gùn", ["謴"]="gùn", ["呙"]="guō", ["埚"]="guō", ["崞"]="guō", ["聒"]="guō", ["蝈"]="guō", ["郭"]="guō", ["鍋"]="guō", ["锅"]="guō", ["国"]="guó", ["帼"]="guó", ["掴"]="guó", ["聝"]="guó", ["腘"]="guó", ["膕"]="guó", ["虢"]="guó", ["馘"]="guó", ["𬇹"]="guó", ["果"]="guǒ", ["椁"]="guǒ", ["猓"]="guǒ", ["粿"]="guǒ", ["綶"]="guǒ", ["菓"]="guǒ", ["蜾"]="guǒ", ["裹"]="guǒ", ["馃"]="guǒ", ["过"]="guò", ["過"]="guò", ["哈"]="hā", ["铪"]="hā", ["咍"]="hāi", ["嗨"]="hāi", ["孩"]="hái", ["还"]="hái", ["還"]="hái", ["骸"]="hái", ["海"]="hǎi", ["胲"]="hǎi", ["酼"]="hǎi", ["醢"]="hǎi", ["亥"]="hài", ["嗐"]="hài", ["害"]="hài", ["氦"]="hài", ["餀"]="hài", ["骇"]="hài", ["憨"]="hān", ["蚶"]="hān", ["谽"]="hān", ["酣"]="hān", ["顸"]="hān", ["魽"]="hān", ["鼾"]="hān", ["函"]="hán", ["含"]="hán", ["寒"]="hán", ["崡"]="hán", ["嵅"]="hán", ["晗"]="hán", ["浛"]="hán", ["涵"]="hán", ["焓"]="hán", ["琀"]="hán", ["肣"]="hán", ["邗"]="hán", ["邯"]="hán", ["韓"]="hán", ["韩"]="hán", ["㘎"]="hǎn", ["㘚"]="hǎn", ["喊"]="hǎn", ["糮"]="hǎn", ["罕"]="hǎn", ["蔊"]="hǎn", ["垾"]="hàn", ["悍"]="hàn", ["憾"]="hàn", ["扞"]="hàn", ["捍"]="hàn", ["撖"]="hàn", ["撼"]="hàn", ["旱"]="hàn", ["暵"]="hàn", ["汉"]="hàn", ["汗"]="hàn", ["瀚"]="hàn", ["焊"]="hàn", ["睅"]="hàn", ["翰"]="hàn", ["菡"]="hàn", ["銲"]="hàn", ["鋎"]="hàn", ["頷"]="hàn", ["颔"]="hàn", ["夯"]="hāng", ["杭"]="háng", ["笐"]="háng", ["绗"]="háng", ["航"]="háng", ["蚢"]="háng", ["迒"]="háng", ["颃"]="háng", ["沆"]="hàng", ["嚆"]="hāo", ["蒿"]="hāo", ["薅"]="hāo", ["嗥"]="háo", ["嚎"]="háo", ["壕"]="háo", ["毫"]="háo", ["濠"]="háo", ["籇"]="háo", ["蚝"]="háo", ["蠔"]="háo", ["豪"]="háo", ["好"]="hǎo", ["郝"]="hǎo", ["号"]="hào", ["昊"]="hào", ["浩"]="hào", ["淏"]="hào", ["灏"]="hào", ["皓"]="hào", ["皞"]="hào", ["耗"]="hào", ["薃"]="hào", ["號"]="hào", ["鄗"]="hào", ["颢"]="hào", ["呵"]="hē", ["喝"]="hē", ["嗬"]="hē", ["蠚"]="hē", ["诃"]="hē", ["何"]="hé", ["劾"]="hé", ["合"]="hé", ["和"]="hé", ["曷"]="hé", ["核"]="hé", ["河"]="hé", ["涸"]="hé", ["盇"]="hé", ["盉"]="hé", ["盍"]="hé", ["盒"]="hé", ["礉"]="hé", ["禾"]="hé", ["粭"]="hé", ["紇"]="hé", ["纥"]="hé", ["翮"]="hé", ["荷"]="hé", ["菏"]="hé", ["蚵"]="hé", ["覈"]="hé", ["貉"]="hé", ["阂"]="hé", ["阖"]="hé", ["鞨"]="hé", ["頜"]="hé", ["颌"]="hé", ["饸"]="hé", ["鶡"]="hé", ["鹖"]="hé", ["麧"]="hé", ["龁"]="hé", ["龢"]="hé", ["𬌗"]="hé", ["垎"]="hè", ["壑"]="hè", ["熇"]="hè", ["翯"]="hè", ["褐"]="hè", ["賀"]="hè", ["贺"]="hè", ["赫"]="hè", ["隺"]="hè", ["鶴"]="hè", ["鸖"]="hè", ["鹤"]="hè", ["嘿"]="hēi", ["黑"]="hēi", ["黒"]="hēi", ["𬭶"]="hēi", ["痕"]="hén", ["鞎"]="hén", ["很"]="hěn", ["狠"]="hěn", ["詪"]="hěn", ["𬣳"]="hěn", ["恨"]="hèn", ["亨"]="hēng", ["哼"]="hēng", ["脝"]="hēng", ["姮"]="héng", ["恒"]="héng", ["桁"]="héng", ["横"]="héng", ["珩"]="héng", ["蘅"]="héng", ["衡"]="héng", ["鴴"]="héng", ["鸻"]="héng", ["堼"]="hèng", ["吽"]="hōng", ["烘"]="hōng", ["薨"]="hōng", ["訇"]="hōng", ["軣"]="hōng", ["轟"]="hōng", ["轰"]="hōng", ["鍧"]="hōng", ["宏"]="hóng", ["弘"]="hóng", ["泓"]="hóng", ["洪"]="hóng", ["玒"]="hóng", ["竑"]="hóng", ["竤"]="hóng", ["紅"]="hóng", ["紘"]="hóng", ["紭"]="hóng", ["红"]="hóng", ["纮"]="hóng", ["翃"]="hóng", ["荭"]="hóng", ["蕻"]="hóng", ["虹"]="hóng", ["谼"]="hóng", ["鋐"]="hóng", ["闳"]="hóng", ["鴻"]="hóng", ["鸿"]="hóng", ["黉"]="hóng", ["𫟹"]="hóng", ["𬭎"]="hóng", ["哄"]="hǒng", ["唝"]="hǒng", ["訌"]="hòng", ["讧"]="hòng", ["閧"]="hòng", ["闀"]="hòng", ["侯"]="hóu", ["喉"]="hóu", ["猴"]="hóu", ["瘊"]="hóu", ["睺"]="hóu", ["篌"]="hóu", ["糇"]="hóu", ["翭"]="hóu", ["腄"]="hóu", ["葔"]="hóu", ["餱"]="hóu", ["骺"]="hóu", ["𬭤"]="hóu", ["吼"]="hǒu", ["候"]="hòu", ["厚"]="hòu", ["后"]="hòu", ["垕"]="hòu", ["堠"]="hòu", ["後"]="hòu", ["逅"]="hòu", ["郈"]="hòu", ["鲎"]="hòu", ["鲘"]="hòu", ["乎"]="hū", ["呼"]="hū", ["唿"]="hū", ["忽"]="hū", ["惚"]="hū", ["昒"]="hū", ["淴"]="hū", ["滹"]="hū", ["烀"]="hū", ["虖"]="hū", ["轷"]="hū", ["囫"]="hú", ["壶"]="hú", ["弧"]="hú", ["斛"]="hú", ["槲"]="hú", ["湖"]="hú", ["煳"]="hú", ["狐"]="hú", ["猢"]="hú", ["瑚"]="hú", ["糊"]="hú", ["縠"]="hú", ["胡"]="hú", ["葫"]="hú", ["蝴"]="hú", ["觳"]="hú", ["醐"]="hú", ["鍸"]="hú", ["餬"]="hú", ["魱"]="hú", ["鹄"]="hú", ["鹕"]="hú", ["鹘"]="hú", ["唬"]="hǔ", ["浒"]="hǔ", ["琥"]="hǔ", ["虎"]="hǔ", ["虝"]="hǔ", ["互"]="hù", ["冱"]="hù", ["嫭"]="hù", ["岵"]="hù", ["怙"]="hù", ["户"]="hù", ["戽"]="hù", ["扈"]="hù", ["护"]="hù", ["昈"]="hù", ["沪"]="hù", ["瓠"]="hù", ["祜"]="hù", ["笏"]="hù", ["粐"]="hù", ["綔"]="hù", ["護"]="hù", ["鄠"]="hù", ["鱯"]="hù", ["鳠"]="hù", ["鹱"]="hù", ["砉"]="huā", ["糀"]="huā", ["花"]="huā", ["华"]="huá", ["哗"]="huá", ["滑"]="huá", ["猾"]="huá", ["華"]="huá", ["螖"]="huá", ["铧"]="huá", ["驊"]="huá", ["骅"]="huá", ["划"]="huà", ["化"]="huà", ["婳"]="huà", ["嫿"]="huà", ["桦"]="huà", ["画"]="huà", ["繣"]="huà", ["觟"]="huà", ["話"]="huà", ["话"]="huà", ["徊"]="huái", ["怀"]="huái", ["槐"]="huái", ["淮"]="huái", ["褱"]="huái", ["踝"]="huái", ["坏"]="huài", ["欢"]="huān", ["獾"]="huān", ["讙"]="huān", ["貛"]="huān", ["驩"]="huān", ["寰"]="huán", ["峘"]="huán", ["桓"]="huán", ["洹"]="huán", ["澴"]="huán", ["环"]="huán", ["瞏"]="huán", ["綄"]="huán", ["繯"]="huán", ["缳"]="huán", ["荁"]="huán", ["萈"]="huán", ["萑"]="huán", ["貆"]="huán", ["轘"]="huán", ["锾"]="huán", ["镮"]="huán", ["阛"]="huán", ["鬟"]="huán", ["鹮"]="huán", ["𤩽"]="huán", ["𬘫"]="huán", ["㬊"]="huǎn", ["睆"]="huǎn", ["緩"]="huǎn", ["缓"]="huǎn", ["唤"]="huàn", ["奂"]="huàn", ["宦"]="huàn", ["幻"]="huàn", ["患"]="huàn", ["换"]="huàn", ["擐"]="huàn", ["浣"]="huàn", ["涣"]="huàn", ["漶"]="huàn", ["焕"]="huàn", ["痪"]="huàn", ["瞣"]="huàn", ["藧"]="huàn", ["豢"]="huàn", ["逭"]="huàn", ["鯶"]="huàn", ["鲩"]="huàn", ["慌"]="huāng", ["肓"]="huāng", ["荒"]="huāng", ["凰"]="huáng", ["喤"]="huáng", ["媓"]="huáng", ["徨"]="huáng", ["惶"]="huáng", ["湟"]="huáng", ["潢"]="huáng", ["煌"]="huáng", ["瑝"]="huáng", ["璜"]="huáng", ["癀"]="huáng", ["皇"]="huáng", ["磺"]="huáng", ["篁"]="huáng", ["簧"]="huáng", ["艎"]="huáng", ["葟"]="huáng", ["蝗"]="huáng", ["蟥"]="huáng", ["遑"]="huáng", ["鐄"]="huáng", ["锽"]="huáng", ["隍"]="huáng", ["鰉"]="huáng", ["鳇"]="huáng", ["黃"]="huáng", ["黄"]="huáng", ["𨱑"]="huáng", ["幌"]="huǎng", ["恍"]="huǎng", ["詤"]="huǎng", ["谎"]="huǎng", ["㿠"]="huàng", ["晃"]="huàng", ["滉"]="huàng", ["㧑"]="huī", ["咴"]="huī", ["徽"]="huī", ["恢"]="huī", ["挥"]="huī", ["晖"]="huī", ["灰"]="huī", ["珲"]="huī", ["翚"]="huī", ["翬"]="huī", ["詼"]="huī", ["诙"]="huī", ["豗"]="huī", ["輝"]="huī", ["辉"]="huī", ["隳"]="huī", ["麾"]="huī", ["回"]="huí", ["洄"]="huí", ["烠"]="huí", ["茴"]="huí", ["蛔"]="huí", ["迴"]="huí", ["鮰"]="huí", ["悔"]="huǐ", ["毁"]="huǐ", ["虺"]="huǐ", ["会"]="huì", ["卉"]="huì", ["喙"]="huì", ["彗"]="huì", ["恚"]="huì", ["惠"]="huì", ["慧"]="huì", ["晦"]="huì", ["橞"]="huì", ["汇"]="huì", ["烩"]="huì", ["秽"]="huì", ["穢"]="huì", ["篲"]="huì", ["绘"]="huì", ["缋"]="huì", ["翙"]="huì", ["荟"]="huì", ["蕙"]="huì", ["蟪"]="huì", ["詯"]="huì", ["諱"]="huì", ["譓"]="huì", ["讳"]="huì", ["诲"]="huì", ["賄"]="huì", ["贿"]="huì", ["銊"]="huì", ["鏏"]="huì", ["鏸"]="huì", ["鐬"]="huì", ["阓"]="huì", ["顪"]="huì", ["𬤝"]="huì", ["𬭬"]="huì", ["婚"]="hūn", ["惛"]="hūn", ["昏"]="hūn", ["睧"]="hūn", ["碈"]="hūn", ["荤"]="hūn", ["葷"]="hūn", ["閽"]="hūn", ["阍"]="hūn", ["浑"]="hún", ["繉"]="hún", ["轋"]="hún", ["馄"]="hún", ["魂"]="hún", ["混"]="hùn", ["溷"]="hùn", ["诨"]="hùn", ["劐"]="huō", ["嚄"]="huō", ["攉"]="huō", ["耠"]="huō", ["锪"]="huō", ["𬴃"]="huō", ["佸"]="huó", ["活"]="huó", ["伙"]="huǒ", ["夥"]="huǒ", ["漷"]="huǒ", ["火"]="huǒ", ["钬"]="huǒ", ["㸌"]="huò", ["嚯"]="huò", ["惑"]="huò", ["或"]="huò", ["濩"]="huò", ["祸"]="huò", ["禍"]="huò", ["穫"]="huò", ["臛"]="huò", ["获"]="huò", ["藿"]="huò", ["蠖"]="huò", ["豁"]="huò", ["貨"]="huò", ["货"]="huò", ["鑊"]="huò", ["镬"]="huò", ["霍"]="huò", ["靃"]="huò", ["乩"]="jī", ["几"]="jī", ["击"]="jī", ["剞"]="jī", ["叽"]="jī", ["咭"]="jī", ["唧"]="jī", ["圾"]="jī", ["基"]="jī", ["墼"]="jī", ["姬"]="jī", ["屐"]="jī", ["嵇"]="jī", ["机"]="jī", ["枅"]="jī", ["激"]="jī", ["犄"]="jī", ["玑"]="jī", ["畸"]="jī", ["畿"]="jī", ["矶"]="jī", ["磯"]="jī", ["禨"]="jī", ["积"]="jī", ["稘"]="jī", ["稽"]="jī", ["積"]="jī", ["笄"]="jī", ["箕"]="jī", ["緝"]="jī", ["缉"]="jī", ["羁"]="jī", ["羇"]="jī", ["羈"]="jī", ["肌"]="jī", ["芨"]="jī", ["虀"]="jī", ["覊"]="jī", ["觭"]="jī", ["讥"]="jī", ["谿"]="jī", ["賷"]="jī", ["赍"]="jī", ["跻"]="jī", ["踦"]="jī", ["鄿"]="jī", ["鐖"]="jī", ["雞"]="jī", ["鞿"]="jī", ["韲"]="jī", ["飢"]="jī", ["饑"]="jī", ["饥"]="jī", ["鸡"]="jī", ["齏"]="jī", ["齑"]="jī", ["𫌀"]="jī", ["𫓯"]="jī", ["𫓹"]="jī", ["𬯀"]="jī", ["㴔"]="jí", ["亟"]="jí", ["伋"]="jí", ["佶"]="jí", ["即"]="jí", ["及"]="jí", ["吉"]="jí", ["堲"]="jí", ["姞"]="jí", ["嫉"]="jí", ["岌"]="jí", ["嵴"]="jí", ["急"]="jí", ["戢"]="jí", ["极"]="jí", ["棘"]="jí", ["楫"]="jí", ["殛"]="jí", ["汲"]="jí", ["疾"]="jí", ["瘠"]="jí", ["笈"]="jí", ["箿"]="jí", ["籍"]="jí", ["級"]="jí", ["级"]="jí", ["耤"]="jí", ["脨"]="jí", ["蒺"]="jí", ["蕺"]="jí", ["蝍"]="jí", ["谻"]="jí", ["趌"]="jí", ["踖"]="jí", ["蹐"]="jí", ["辑"]="jí", ["鍓"]="jí", ["集"]="jí", ["鞊"]="jí", ["鶺"]="jí", ["鹡"]="jí", ["己"]="jǐ", ["幾"]="jǐ", ["戟"]="jǐ", ["挤"]="jǐ", ["掎"]="jǐ", ["脊"]="jǐ", ["虮"]="jǐ", ["鱾"]="jǐ", ["麂"]="jǐ", ["伎"]="jì", ["偈"]="jì", ["冀"]="jì", ["剂"]="jì", ["哜"]="jì", ["垍"]="jì", ["妓"]="jì", ["季"]="jì", ["寂"]="jì", ["寄"]="jì", ["徛"]="jì", ["忌"]="jì", ["悸"]="jì", ["惎"]="jì", ["技"]="jì", ["既"]="jì", ["暨"]="jì", ["洎"]="jì", ["济"]="jì", ["漈"]="jì", ["瀱"]="jì", ["祭"]="jì", ["稷"]="jì", ["穄"]="jì", ["穊"]="jì", ["紀"]="jì", ["績"]="jì", ["繋"]="jì", ["繫"]="jì", ["繼"]="jì", ["纪"]="jì", ["继"]="jì", ["绩"]="jì", ["罽"]="jì", ["臮"]="jì", ["芰"]="jì", ["茍"]="jì", ["荠"]="jì", ["蓟"]="jì", ["蟿"]="jì", ["觊"]="jì", ["計"]="jì", ["記"]="jì", ["计"]="jì", ["记"]="jì", ["跡"]="jì", ["跽"]="jì", ["蹟"]="jì", ["迹"]="jì", ["际"]="jì", ["際"]="jì", ["霁"]="jì", ["驥"]="jì", ["骥"]="jì", ["髻"]="jì", ["鯚"]="jì", ["鯽"]="jì", ["鰿"]="jì", ["鱀"]="jì", ["鲚"]="jì", ["鲫"]="jì", ["鵋"]="jì", ["𪟝"]="jì", ["𬶨"]="jì", ["𬶭"]="jì", ["佳"]="jiā", ["加"]="jiā", ["嘉"]="jiā", ["夹"]="jiā", ["家"]="jiā", ["枷"]="jiā", ["泇"]="jiā", ["浃"]="jiā", ["珈"]="jiā", ["痂"]="jiā", ["笳"]="jiā", ["筴"]="jiā", ["腵"]="jiā", ["葭"]="jiā", ["袈"]="jiā", ["豭"]="jiā", ["貑"]="jiā", ["跏"]="jiā", ["迦"]="jiā", ["镓"]="jiā", ["麚"]="jiā", ["𬂩"]="jiā", ["恝"]="jiá", ["戛"]="jiá", ["荚"]="jiá", ["莢"]="jiá", ["蛱"]="jiá", ["袷"]="jiá", ["郏"]="jiá", ["郟"]="jiá", ["铗"]="jiá", ["頰"]="jiá", ["颊"]="jiá", ["假"]="jiǎ", ["岬"]="jiǎ", ["斝"]="jiǎ", ["槚"]="jiǎ", ["甲"]="jiǎ", ["瘕"]="jiǎ", ["胛"]="jiǎ", ["鉀"]="jiǎ", ["钾"]="jiǎ", ["价"]="jià", ["嫁"]="jià", ["架"]="jià", ["稼"]="jià", ["駕"]="jià", ["驾"]="jià", ["兼"]="jiān", ["坚"]="jiān", ["奸"]="jiān", ["尖"]="jiān", ["戋"]="jiān", ["搛"]="jiān", ["歼"]="jiān", ["湔"]="jiān", ["煎"]="jiān", ["犍"]="jiān", ["监"]="jiān", ["監"]="jiān", ["笺"]="jiān", ["箋"]="jiān", ["篯"]="jiān", ["缄"]="jiān", ["缣"]="jiān", ["肩"]="jiān", ["艰"]="jiān", ["菅"]="jiān", ["葌"]="jiān", ["葏"]="jiān", ["蒹"]="jiān", ["蕳"]="jiān", ["虃"]="jiān", ["銒"]="jiān", ["鋻"]="jiān", ["钘"]="jiān", ["間"]="jiān", ["间"]="jiān", ["鞬"]="jiān", ["鞯"]="jiān", ["鰜"]="jiān", ["鰹"]="jiān", ["鲣"]="jiān", ["鳒"]="jiān", ["鳽"]="jiān", ["鵳"]="jiān", ["鹣"]="jiān", ["麉"]="jiān", ["𫛚"]="jiān", ["俭"]="jiǎn", ["减"]="jiǎn", ["剪"]="jiǎn", ["囝"]="jiǎn", ["戬"]="jiǎn", ["拣"]="jiǎn", ["捡"]="jiǎn", ["暕"]="jiǎn", ["枧"]="jiǎn", ["柬"]="jiǎn", ["检"]="jiǎn", ["睑"]="jiǎn", ["瞼"]="jiǎn", ["硷"]="jiǎn", ["碱"]="jiǎn", ["笕"]="jiǎn", ["简"]="jiǎn", ["簡"]="jiǎn", ["翦"]="jiǎn", ["茧"]="jiǎn", ["蠒"]="jiǎn", ["裥"]="jiǎn", ["謇"]="jiǎn", ["谫"]="jiǎn", ["趼"]="jiǎn", ["蹇"]="jiǎn", ["醎"]="jiǎn", ["鐧"]="jiǎn", ["锏"]="jiǎn", ["鬋"]="jiǎn", ["鹼"]="jiǎn", ["件"]="jiàn", ["健"]="jiàn", ["僭"]="jiàn", ["剑"]="jiàn", ["建"]="jiàn", ["楗"]="jiàn", ["毽"]="jiàn", ["涧"]="jiàn", ["渐"]="jiàn", ["溅"]="jiàn", ["牮"]="jiàn", ["瞷"]="jiàn", ["礀"]="jiàn", ["箭"]="jiàn", ["繝"]="jiàn", ["腱"]="jiàn", ["臶"]="jiàn", ["舰"]="jiàn", ["艦"]="jiàn", ["荐"]="jiàn", ["薦"]="jiàn", ["見"]="jiàn", ["见"]="jiàn", ["諓"]="jiàn", ["谏"]="jiàn", ["贱"]="jiàn", ["趝"]="jiàn", ["践"]="jiàn", ["踐"]="jiàn", ["踺"]="jiàn", ["鉴"]="jiàn", ["鍳"]="jiàn", ["鍵"]="jiàn", ["鑑"]="jiàn", ["键"]="jiàn", ["饯"]="jiàn", ["𬣡"]="jiàn", ["僵"]="jiāng", ["姜"]="jiāng", ["将"]="jiāng", ["將"]="jiāng", ["橿"]="jiāng", ["江"]="jiāng", ["浆"]="jiāng", ["疆"]="jiāng", ["礓"]="jiāng", ["缰"]="jiāng", ["茳"]="jiāng", ["薑"]="jiāng", ["螀"]="jiāng", ["豇"]="jiāng", ["鱂"]="jiāng", ["鳉"]="jiāng", ["奖"]="jiǎng", ["桨"]="jiǎng", ["耩"]="jiǎng", ["膙"]="jiǎng", ["蒋"]="jiǎng", ["蔣"]="jiǎng", ["講"]="jiǎng", ["讲"]="jiǎng", ["匠"]="jiàng", ["弶"]="jiàng", ["洚"]="jiàng", ["犟"]="jiàng", ["糨"]="jiàng", ["絳"]="jiàng", ["绛"]="jiàng", ["謽"]="jiàng", ["酱"]="jiàng", ["降"]="jiàng", ["㤭"]="jiāo", ["䴔"]="jiāo", ["交"]="jiāo", ["僬"]="jiāo", ["姣"]="jiāo", ["娇"]="jiāo", ["峧"]="jiāo", ["憍"]="jiāo", ["椒"]="jiāo", ["浇"]="jiāo", ["焦"]="jiāo", ["燋"]="jiāo", ["礁"]="jiāo", ["簥"]="jiāo", ["胶"]="jiāo", ["膠"]="jiāo", ["膲"]="jiāo", ["艽"]="jiāo", ["茭"]="jiāo", ["萩"]="jiāo", ["蕉"]="jiāo", ["蛟"]="jiāo", ["蟭"]="jiāo", ["跤"]="jiāo", ["轇"]="jiāo", ["郊"]="jiāo", ["鐎"]="jiāo", ["驕"]="jiāo", ["骄"]="jiāo", ["骹"]="jiāo", ["鲛"]="jiāo", ["鵁"]="jiāo", ["鷦"]="jiāo", ["鹪"]="jiāo", ["佼"]="jiǎo", ["侥"]="jiǎo", ["剿"]="jiǎo", ["恔"]="jiǎo", ["挢"]="jiǎo", ["搅"]="jiǎo", ["敫"]="jiǎo", ["狡"]="jiǎo", ["璬"]="jiǎo", ["皎"]="jiǎo", ["皦"]="jiǎo", ["矫"]="jiǎo", ["矯"]="jiǎo", ["筊"]="jiǎo", ["絞"]="jiǎo", ["繳"]="jiǎo", ["绞"]="jiǎo", ["缴"]="jiǎo", ["脚"]="jiǎo", ["腳"]="jiǎo", ["蟜"]="jiǎo", ["角"]="jiǎo", ["蹻"]="jiǎo", ["釥"]="jiǎo", ["铰"]="jiǎo", ["餃"]="jiǎo", ["饺"]="jiǎo", ["叫"]="jiào", ["噍"]="jiào", ["徼"]="jiào", ["教"]="jiào", ["斠"]="jiào", ["滘"]="jiào", ["漖"]="jiào", ["皭"]="jiào", ["窖"]="jiào", ["藠"]="jiào", ["覐"]="jiào", ["覚"]="jiào", ["覺"]="jiào", ["觉"]="jiào", ["訆"]="jiào", ["較"]="jiào", ["轎"]="jiào", ["轿"]="jiào", ["较"]="jiào", ["酵"]="jiào", ["醮"]="jiào", ["喈"]="jiē", ["嗟"]="jiē", ["接"]="jiē", ["揭"]="jiē", ["湝"]="jiē", ["疖"]="jiē", ["皆"]="jiē", ["秸"]="jiē", ["稭"]="jiē", ["脻"]="jiē", ["菨"]="jiē", ["街"]="jiē", ["袓"]="jiē", ["阶"]="jiē", ["階"]="jiē", ["㛃"]="jié", ["劫"]="jié", ["劼"]="jié", ["婕"]="jié", ["孑"]="jié", ["岊"]="jié", ["截"]="jié", ["拮"]="jié", ["捷"]="jié", ["杰"]="jié", ["桀"]="jié", ["洁"]="jié", ["睫"]="jié", ["碣"]="jié", ["竭"]="jié", ["節"]="jié", ["結"]="jié", ["絜"]="jié", ["结"]="jié", ["羯"]="jié", ["节"]="jié", ["蓵"]="jié", ["蛣"]="jié", ["蜐"]="jié", ["訐"]="jié", ["詰"]="jié", ["讦"]="jié", ["诘"]="jié", ["鲒"]="jié", ["姐"]="jiě", ["檞"]="jiě", ["解"]="jiě", ["飷"]="jiě", ["介"]="jiè", ["借"]="jiè", ["届"]="jiè", ["悈"]="jiè", ["戒"]="jiè", ["玠"]="jiè", ["界"]="jiè", ["疥"]="jiè", ["芥"]="jiè", ["藉"]="jiè", ["蚧"]="jiè", ["蛶"]="jiè", ["衸"]="jiè", ["褯"]="jiè", ["誡"]="jiè", ["诫"]="jiè", ["骱"]="jiè", ["今"]="jīn", ["巾"]="jīn", ["斤"]="jīn", ["津"]="jīn", ["珒"]="jīn", ["矜"]="jīn", ["砛"]="jīn", ["筋"]="jīn", ["衿"]="jīn", ["襟"]="jīn", ["觔"]="jīn", ["金"]="jīn", ["釿"]="jīn", ["钅"]="jīn", ["𬬱"]="jīn", ["仅"]="jǐn", ["儘"]="jǐn", ["卺"]="jǐn", ["堇"]="jǐn", ["廑"]="jǐn", ["槿"]="jǐn", ["瑾"]="jǐn", ["紧"]="jǐn", ["緊"]="jǐn", ["菫"]="jǐn", ["蓳"]="jǐn", ["謹"]="jǐn", ["谨"]="jǐn", ["錦"]="jǐn", ["锦"]="jǐn", ["馑"]="jǐn", ["劲"]="jìn", ["噤"]="jìn", ["墐"]="jìn", ["妗"]="jìn", ["尽"]="jìn", ["晋"]="jìn", ["殣"]="jìn", ["浕"]="jìn", ["浸"]="jìn", ["溍"]="jìn", ["烬"]="jìn", ["琎"]="jìn", ["瑨"]="jìn", ["盡"]="jìn", ["祲"]="jìn", ["禁"]="jìn", ["缙"]="jìn", ["荩"]="jìn", ["觐"]="jìn", ["賮"]="jìn", ["赆"]="jìn", ["近"]="jìn", ["进"]="jìn", ["進"]="jìn", ["靳"]="jìn", ["齽"]="jìn", ["䴖"]="jīng", ["京"]="jīng", ["兢"]="jīng", ["惊"]="jīng", ["旌"]="jīng", ["晶"]="jīng", ["泾"]="jīng", ["猄"]="jīng", ["睛"]="jīng", ["秔"]="jīng", ["粳"]="jīng", ["精"]="jīng", ["經"]="jīng", ["经"]="jīng", ["腈"]="jīng", ["茎"]="jīng", ["荆"]="jīng", ["荊"]="jīng", ["莖"]="jīng", ["菁"]="jīng", ["驚"]="jīng", ["鯨"]="jīng", ["鲸"]="jīng", ["鶄"]="jīng", ["麖"]="jīng", ["鼱"]="jīng", ["井"]="jǐng", ["儆"]="jǐng", ["刭"]="jǐng", ["憬"]="jǐng", ["景"]="jǐng", ["汫"]="jǐng", ["璟"]="jǐng", ["璥"]="jǐng", ["穽"]="jǐng", ["肼"]="jǐng", ["蟼"]="jǐng", ["警"]="jǐng", ["阱"]="jǐng", ["頸"]="jǐng", ["颈"]="jǐng", ["倞"]="jìng", ["净"]="jìng", ["境"]="jìng", ["婧"]="jìng", ["径"]="jìng", ["敬"]="jìng", ["獍"]="jìng", ["痉"]="jìng", ["竞"]="jìng", ["竟"]="jìng", ["竫"]="jìng", ["競"]="jìng", ["竸"]="jìng", ["胫"]="jìng", ["脛"]="jìng", ["迳"]="jìng", ["逕"]="jìng", ["鏡"]="jìng", ["镜"]="jìng", ["靖"]="jìng", ["静"]="jìng", ["靜"]="jìng", ["坰"]="jiōng", ["扃"]="jiōng", ["駉"]="jiōng", ["𬳶"]="jiōng", ["䌹"]="jiǒng", ["冏"]="jiǒng", ["囧"]="jiǒng", ["泂"]="jiǒng", ["炯"]="jiǒng", ["窘"]="jiǒng", ["絅"]="jiǒng", ["綗"]="jiǒng", ["蘔"]="jiǒng", ["褧"]="jiǒng", ["迥"]="jiǒng", ["颎"]="jiǒng", ["啾"]="jiū", ["揪"]="jiū", ["究"]="jiū", ["糺"]="jiū", ["纠"]="jiū", ["赳"]="jiū", ["阄"]="jiū", ["鬏"]="jiū", ["鳩"]="jiū", ["鸠"]="jiū", ["久"]="jiǔ", ["九"]="jiǔ", ["氿"]="jiǔ", ["灸"]="jiǔ", ["玖"]="jiǔ", ["紤"]="jiǔ", ["酒"]="jiǔ", ["韭"]="jiǔ", ["韮"]="jiǔ", ["㠇"]="jiù", ["僦"]="jiù", ["厩"]="jiù", ["咎"]="jiù", ["就"]="jiù", ["救"]="jiù", ["旧"]="jiù", ["柩"]="jiù", ["桕"]="jiù", ["疚"]="jiù", ["臼"]="jiù", ["舅"]="jiù", ["舊"]="jiù", ["鷲"]="jiù", ["鹫"]="jiù", ["娵"]="jū", ["居"]="jū", ["崌"]="jū", ["拘"]="jū", ["掬"]="jū", ["椐"]="jū", ["泃"]="jū", ["狙"]="jū", ["琚"]="jū", ["疽"]="jū", ["砠"]="jū", ["罝"]="jū", ["腒"]="jū", ["臄"]="jū", ["艍"]="jū", ["苴"]="jū", ["裾"]="jū", ["跔"]="jū", ["踘"]="jū", ["锔"]="jū", ["雎"]="jū", ["鞠"]="jū", ["鞫"]="jū", ["驹"]="jū", ["鮈"]="jū", ["𬶋"]="jū", ["䴗"]="jú", ["局"]="jú", ["桔"]="jú", ["橘"]="jú", ["焗"]="jú", ["粷"]="jú", ["菊"]="jú", ["輂"]="jú", ["閰"]="jú", ["駶"]="jú", ["鼰"]="jú", ["举"]="jǔ", ["咀"]="jǔ", ["弆"]="jǔ", ["榉"]="jǔ", ["榘"]="jǔ", ["沮"]="jǔ", ["矩"]="jǔ", ["筥"]="jǔ", ["舉"]="jǔ", ["莒"]="jǔ", ["蒟"]="jǔ", ["踽"]="jǔ", ["龃"]="jǔ", ["俱"]="jù", ["倨"]="jù", ["具"]="jù", ["剧"]="jù", ["句"]="jù", ["屦"]="jù", ["岠"]="jù", ["巨"]="jù", ["惧"]="jù", ["拒"]="jù", ["据"]="jù", ["澽"]="jù", ["炬"]="jù", ["犋"]="jù", ["秬"]="jù", ["窭"]="jù", ["簴"]="jù", ["粔"]="jù", ["聚"]="jù", ["苣"]="jù", ["虡"]="jù", ["讵"]="jù", ["距"]="jù", ["踞"]="jù", ["遽"]="jù", ["醵"]="jù", ["鉅"]="jù", ["鋸"]="jù", ["鐻"]="jù", ["钜"]="jù", ["锯"]="jù", ["飓"]="jù", ["娟"]="juān", ["捐"]="juān", ["涓"]="juān", ["焆"]="juān", ["脧"]="juān", ["蠲"]="juān", ["鎸"]="juān", ["镌"]="juān", ["鹃"]="juān", ["卷"]="juǎn", ["臇"]="juǎn", ["蕋"]="juǎn", ["踡"]="juǎn", ["錈"]="juǎn", ["锩"]="juǎn", ["倦"]="juàn", ["桊"]="juàn", ["狷"]="juàn", ["眷"]="juàn", ["睊"]="juàn", ["睠"]="juàn", ["絭"]="juàn", ["絹"]="juàn", ["绢"]="juàn", ["罥"]="juàn", ["鄄"]="juàn", ["噘"]="juē", ["撅"]="juē", ["繑"]="juē", ["㵐"]="jué", ["倔"]="jué", ["傕"]="jué", ["决"]="jué", ["劂"]="jué", ["厥"]="jué", ["噱"]="jué", ["嚼"]="jué", ["孓"]="jué", ["崛"]="jué", ["抉"]="jué", ["掘"]="jué", ["攫"]="jué", ["桷"]="jué", ["橛"]="jué", ["爝"]="jué", ["爵"]="jué", ["獗"]="jué", ["玃"]="jué", ["玦"]="jué", ["珏"]="jué", ["矍"]="jué", ["矡"]="jué", ["砄"]="jué", ["穱"]="jué", ["絕"]="jué", ["絶"]="jué", ["绝"]="jué", ["芵"]="jué", ["蕝"]="jué", ["蕨"]="jué", ["蟨"]="jué", ["觖"]="jué", ["觼"]="jué", ["訣"]="jué", ["诀"]="jué", ["谲"]="jué", ["蹶"]="jué", ["蹷"]="jué", ["躩"]="jué", ["鐍"]="jué", ["钁"]="jué", ["镢"]="jué", ["駃"]="jué", ["𫔎"]="jué", ["𫘝"]="jué", ["誳"]="juè", ["军"]="jūn", ["君"]="jūn", ["均"]="jūn", ["皲"]="jūn", ["碅"]="jūn", ["莙"]="jūn", ["菌"]="jūn", ["袀"]="jūn", ["覠"]="jūn", ["軍"]="jūn", ["钧"]="jūn", ["鲪"]="jūn", ["麇"]="jūn", ["麏"]="jūn", ["麕"]="jūn", ["䐃"]="jùn", ["俊"]="jùn", ["峻"]="jùn", ["捃"]="jùn", ["晙"]="jùn", ["浚"]="jùn", ["珺"]="jùn", ["畯"]="jùn", ["竣"]="jùn", ["箘"]="jùn", ["葰"]="jùn", ["蜠"]="jùn", ["郡"]="jùn", ["隽"]="jùn", ["雋"]="jùn", ["馂"]="jùn", ["骏"]="jùn", ["咔"]="kā", ["咖"]="kā", ["喀"]="kā", ["佧"]="kǎ", ["卡"]="kǎ", ["胩"]="kǎ", ["开"]="kāi", ["揩"]="kāi", ["锎"]="kāi", ["開"]="kāi", ["凯"]="kǎi", ["剀"]="kǎi", ["嘅"]="kǎi", ["垲"]="kǎi", ["恺"]="kǎi", ["慨"]="kǎi", ["楷"]="kǎi", ["蒈"]="kǎi", ["铠"]="kǎi", ["锴"]="kǎi", ["闿"]="kǎi", ["忾"]="kài", ["炌"]="kài", ["刊"]="kān", ["勘"]="kān", ["堪"]="kān", ["嵁"]="kān", ["戡"]="kān", ["龛"]="kān", ["侃"]="kǎn", ["坎"]="kǎn", ["槛"]="kǎn", ["砍"]="kǎn", ["竷"]="kǎn", ["莰"]="kǎn", ["轗"]="kǎn", ["墈"]="kàn", ["崁"]="kàn", ["看"]="kàn", ["瞰"]="kàn", ["矙"]="kàn", ["磡"]="kàn", ["衎"]="kàn", ["阚"]="kàn", ["康"]="kāng", ["慷"]="kāng", ["糠"]="kāng", ["躿"]="kāng", ["闶"]="kāng", ["鱇"]="kāng", ["𡐓"]="kāng", ["𩾌"]="kāng", ["扛"]="káng", ["亢"]="kàng", ["伉"]="kàng", ["抗"]="kàng", ["炕"]="kàng", ["鈧"]="kàng", ["钪"]="kàng", ["尻"]="kāo", ["訄"]="kāo", ["拷"]="kǎo", ["栲"]="kǎo", ["洘"]="kǎo", ["烤"]="kǎo", ["考"]="kǎo", ["㸆"]="kào", ["犒"]="kào", ["铐"]="kào", ["靠"]="kào", ["鲓"]="kào", ["匼"]="kē", ["柯"]="kē", ["棵"]="kē", ["牁"]="kē", ["珂"]="kē", ["疴"]="kē", ["痾"]="kē", ["瞌"]="kē", ["磕"]="kē", ["科"]="kē", ["稞"]="kē", ["窠"]="kē", ["窼"]="kē", ["簻"]="kē", ["苛"]="kē", ["薖"]="kē", ["蝌"]="kē", ["趷"]="kē", ["軻"]="kē", ["轲"]="kē", ["钶"]="kē", ["頦"]="kē", ["顆"]="kē", ["颏"]="kē", ["颗"]="kē", ["髁"]="kē", ["咳"]="ké", ["壳"]="ké", ["可"]="kě", ["坷"]="kě", ["岢"]="kě", ["渴"]="kě", ["炣"]="kě", ["克"]="kè", ["刻"]="kè", ["嗑"]="kè", ["客"]="kè", ["恪"]="kè", ["氪"]="kè", ["溘"]="kè", ["碦"]="kè", ["礊"]="kè", ["缂"]="kè", ["艐"]="kè", ["袔"]="kè", ["課"]="kè", ["课"]="kè", ["锞"]="kè", ["騍"]="kè", ["骒"]="kè", ["剋"]="kēi", ["啃"]="kěn", ["垦"]="kěn", ["恳"]="kěn", ["肯"]="kěn", ["肻"]="kěn", ["裉"]="kèn", ["吭"]="kēng", ["坑"]="kēng", ["硁"]="kēng", ["铿"]="kēng", ["埪"]="kōng", ["崆"]="kōng", ["空"]="kōng", ["箜"]="kōng", ["躻"]="kōng", ["鵼"]="kōng", ["倥"]="kǒng", ["孔"]="kǒng", ["恐"]="kǒng", ["控"]="kòng", ["硿"]="kòng", ["鞚"]="kòng", ["抠"]="kōu", ["眍"]="kōu", ["芤"]="kōu", ["𫸩"]="kōu", ["口"]="kǒu", ["叩"]="kòu", ["寇"]="kòu", ["扣"]="kòu", ["筘"]="kòu", ["蔲"]="kòu", ["蔻"]="kòu", ["釦"]="kòu", ["鷇"]="kòu", ["刳"]="kū", ["哭"]="kū", ["圐"]="kū", ["堀"]="kū", ["枯"]="kū", ["矻"]="kū", ["窋"]="kū", ["窟"]="kū", ["跍"]="kū", ["郀"]="kū", ["骷"]="kū", ["苦"]="kǔ", ["喾"]="kù", ["库"]="kù", ["秙"]="kù", ["绔"]="kù", ["袴"]="kù", ["裤"]="kù", ["褲"]="kù", ["酷"]="kù", ["齁"]="kù", ["夸"]="kuā", ["姱"]="kuā", ["誇"]="kuā", ["侉"]="kuǎ", ["垮"]="kuǎ", ["銙"]="kuǎ", ["顝"]="kuǎ", ["挎"]="kuà", ["胯"]="kuà", ["跨"]="kuà", ["骻"]="kuà", ["㧟"]="kuǎi", ["蒯"]="kuǎi", ["侩"]="kuài", ["哙"]="kuài", ["块"]="kuài", ["快"]="kuài", ["浍"]="kuài", ["狯"]="kuài", ["筷"]="kuài", ["脍"]="kuài", ["郐"]="kuài", ["鄶"]="kuài", ["鲙"]="kuài", ["宽"]="kuān", ["髋"]="kuān", ["款"]="kuǎn", ["窾"]="kuǎn", ["匡"]="kuāng", ["哐"]="kuāng", ["洭"]="kuāng", ["筐"]="kuāng", ["诓"]="kuāng", ["邼"]="kuāng", ["狂"]="kuáng", ["诳"]="kuáng", ["軠"]="kuáng", ["鵟"]="kuáng", ["𫛭"]="kuáng", ["夼"]="kuǎng", ["况"]="kuàng", ["圹"]="kuàng", ["旷"]="kuàng", ["框"]="kuàng", ["眖"]="kuàng", ["眶"]="kuàng", ["矿"]="kuàng", ["礦"]="kuàng", ["纩"]="kuàng", ["贶"]="kuàng", ["邝"]="kuàng", ["鄺"]="kuàng", ["鑛"]="kuàng", ["黋"]="kuàng", ["亏"]="kuī", ["岿"]="kuī", ["悝"]="kuī", ["盔"]="kuī", ["窥"]="kuī", ["聧"]="kuī", ["虧"]="kuī", ["闚"]="kuī", ["喹"]="kuí", ["夔"]="kuí", ["奎"]="kuí", ["戣"]="kuí", ["揆"]="kuí", ["暌"]="kuí", ["櫆"]="kuí", ["睽"]="kuí", ["葵"]="kuí", ["蝰"]="kuí", ["逵"]="kuí", ["馗"]="kuí", ["骙"]="kuí", ["魁"]="kuí", ["傀"]="kuǐ", ["煃"]="kuǐ", ["跬"]="kuǐ", ["蹞"]="kuǐ", ["頍"]="kuǐ", ["𫠆"]="kuǐ", ["匮"]="kuì", ["喟"]="kuì", ["愦"]="kuì", ["愧"]="kuì", ["溃"]="kuì", ["篑"]="kuì", ["籄"]="kuì", ["聩"]="kuì", ["聭"]="kuì", ["聵"]="kuì", ["蒉"]="kuì", ["餽"]="kuì", ["饋"]="kuì", ["馈"]="kuì", ["坤"]="kūn", ["堃"]="kūn", ["婫"]="kūn", ["昆"]="kūn", ["焜"]="kūn", ["琨"]="kūn", ["臗"]="kūn", ["蜫"]="kūn", ["裈"]="kūn", ["裩"]="kūn", ["褌"]="kūn", ["醌"]="kūn", ["锟"]="kūn", ["髠"]="kūn", ["髡"]="kūn", ["鲲"]="kūn", ["鹍"]="kūn", ["壸"]="kǔn", ["悃"]="kǔn", ["捆"]="kǔn", ["硱"]="kǔn", ["稇"]="kǔn", ["稛"]="kǔn", ["綑"]="kǔn", ["阃"]="kǔn", ["困"]="kùn", ["睏"]="kùn", ["廓"]="kuò", ["扩"]="kuò", ["括"]="kuò", ["秳"]="kuò", ["筈"]="kuò", ["蛞"]="kuò", ["闊"]="kuò", ["阔"]="kuò", ["霩"]="kuò", ["鞟"]="kuò", ["垃"]="lā", ["拉"]="lā", ["邋"]="lā", ["旯"]="lá", ["砬"]="lá", ["喇"]="lǎ", ["藞"]="lǎ", ["剌"]="là", ["瘌"]="là", ["腊"]="là", ["臈"]="là", ["臘"]="là", ["蜡"]="là", ["蝲"]="là", ["蠟"]="là", ["辢"]="là", ["辣"]="là", ["镴"]="là", ["𬶟"]="là", ["啦"]="la", ["鞡"]="la", ["俫"]="lái", ["崃"]="lái", ["徕"]="lái", ["来"]="lái", ["梾"]="lái", ["涞"]="lái", ["莱"]="lái", ["萊"]="lái", ["铼"]="lái", ["鶆"]="lái", ["濑"]="lài", ["癞"]="lài", ["睐"]="lài", ["睞"]="lài", ["籁"]="lài", ["賚"]="lài", ["賴"]="lài", ["赉"]="lài", ["赖"]="lài", ["鵣"]="lài", ["兰"]="lán", ["婪"]="lán", ["岚"]="lán", ["拦"]="lán", ["斓"]="lán", ["栏"]="lán", ["澜"]="lán", ["篮"]="lán", ["籣"]="lán", ["繿"]="lán", ["葻"]="lán", ["蓝"]="lán", ["藍"]="lán", ["蘭"]="lán", ["褴"]="lán", ["襕"]="lán", ["襽"]="lán", ["讕"]="lán", ["谰"]="lán", ["镧"]="lán", ["闌"]="lán", ["阑"]="lán", ["𬒗"]="lán", ["懒"]="lǎn", ["揽"]="lǎn", ["榄"]="lǎn", ["漤"]="lǎn", ["缆"]="lǎn", ["罱"]="lǎn", ["览"]="lǎn", ["滥"]="làn", ["烂"]="làn", ["糷"]="làn", ["啷"]="lāng", ["廊"]="láng", ["桹"]="láng", ["榔"]="láng", ["狼"]="láng", ["琅"]="láng", ["稂"]="láng", ["筤"]="láng", ["艆"]="láng", ["螂"]="láng", ["郎"]="láng", ["郞"]="láng", ["鎯"]="láng", ["锒"]="láng", ["閬"]="láng", ["阆"]="láng", ["㮾"]="lǎng", ["塱"]="lǎng", ["朗"]="lǎng", ["烺"]="lǎng", ["脼"]="lǎng", ["蓢"]="lǎng", ["㫰"]="làng", ["埌"]="làng", ["崀"]="làng", ["浪"]="làng", ["莨"]="làng", ["蒗"]="làng", ["捞"]="lāo", ["粩"]="lāo", ["劳"]="láo", ["唠"]="láo", ["崂"]="láo", ["牢"]="láo", ["痨"]="láo", ["蟧"]="láo", ["醪"]="láo", ["铹"]="láo", ["顟"]="láo", ["𫭼"]="láo", ["佬"]="lǎo", ["姥"]="lǎo", ["栳"]="lǎo", ["老"]="lǎo", ["荖"]="lǎo", ["蛯"]="lǎo", ["铑"]="lǎo", ["嫪"]="lào", ["涝"]="lào", ["烙"]="lào", ["耢"]="lào", ["耮"]="lào", ["酪"]="lào", ["仂"]="lè", ["勒"]="lè", ["叻"]="lè", ["泐"]="lè", ["簕"]="lè", ["韷"]="lè", ["鳓"]="lè", ["了"]="le", ["嫘"]="léi", ["檑"]="léi", ["磥"]="léi", ["纍"]="léi", ["缧"]="léi", ["罍"]="léi", ["羸"]="léi", ["蔂"]="léi", ["鐳"]="léi", ["鑘"]="léi", ["镭"]="léi", ["雷"]="léi", ["儡"]="lěi", ["垒"]="lěi", ["癗"]="lěi", ["磊"]="lěi", ["礌"]="lěi", ["礨"]="lěi", ["累"]="lěi", ["絫"]="lěi", ["耒"]="lěi", ["腂"]="lěi", ["蕌"]="lěi", ["蕾"]="lěi", ["藟"]="lěi", ["蠝"]="lěi", ["诔"]="lěi", ["鸓"]="lěi", ["擂"]="lèi", ["泪"]="lèi", ["类"]="lèi", ["肋"]="lèi", ["酹"]="lèi", ["類"]="lèi", ["嘞"]="lei", ["塄"]="léng", ["崚"]="léng", ["棱"]="léng", ["楞"]="léng", ["稜"]="léng", ["薐"]="léng", ["輘"]="léng", ["冷"]="lěng", ["堎"]="lèng", ["愣"]="lèng", ["睖"]="lèng", ["㰀"]="lí", ["厘"]="lí", ["喱"]="lí", ["嫠"]="lí", ["梨"]="lí", ["漓"]="lí", ["犁"]="lí", ["狸"]="lí", ["璃"]="lí", ["盠"]="lí", ["离"]="lí", ["筣"]="lí", ["篱"]="lí", ["籬"]="lí", ["粚"]="lí", ["缡"]="lí", ["罹"]="lí", ["菞"]="lí", ["蓠"]="lí", ["藜"]="lí", ["蜊"]="lí", ["褵"]="lí", ["謧"]="lí", ["邌"]="lí", ["醨"]="lí", ["釐"]="lí", ["鋫"]="lí", ["離"]="lí", ["骊"]="lí", ["鯏"]="lí", ["鯬"]="lí", ["鱺"]="lí", ["鲡"]="lí", ["鹂"]="lí", ["黎"]="lí", ["黧"]="lí", ["俚"]="lǐ", ["娌"]="lǐ", ["李"]="lǐ", ["浬"]="lǐ", ["澧"]="lǐ", ["理"]="lǐ", ["礼"]="lǐ", ["禮"]="lǐ", ["粴"]="lǐ", ["蠡"]="lǐ", ["裏"]="lǐ", ["裡"]="lǐ", ["逦"]="lǐ", ["醴"]="lǐ", ["里"]="lǐ", ["鋰"]="lǐ", ["锂"]="lǐ", ["鱧"]="lǐ", ["鲤"]="lǐ", ["鳢"]="lǐ", ["丽"]="lì", ["例"]="lì", ["俐"]="lì", ["俪"]="lì", ["傈"]="lì", ["凓"]="lì", ["利"]="lì", ["力"]="lì", ["励"]="lì", ["历"]="lì", ["厉"]="lì", ["吏"]="lì", ["呖"]="lì", ["唳"]="lì", ["坜"]="lì", ["戾"]="lì", ["朸"]="lì", ["枥"]="lì", ["栎"]="lì", ["栗"]="lì", ["沥"]="lì", ["溧"]="lì", ["猁"]="lì", ["珕"]="lì", ["疠"]="lì", ["疬"]="lì", ["痢"]="lì", ["癧"]="lì", ["砺"]="lì", ["砾"]="lì", ["磿"]="lì", ["立"]="lì", ["笠"]="lì", ["篥"]="lì", ["粒"]="lì", ["粝"]="lì", ["綟"]="lì", ["脷"]="lì", ["苈"]="lì", ["苙"]="lì", ["荔"]="lì", ["莅"]="lì", ["莉"]="lì", ["蒞"]="lì", ["藶"]="lì", ["蛎"]="lì", ["蠣"]="lì", ["詈"]="lì", ["讈"]="lì", ["赲"]="lì", ["跞"]="lì", ["躒"]="lì", ["轹"]="lì", ["郦"]="lì", ["隶"]="lì", ["隸"]="lì", ["雳"]="lì", ["麗"]="lì", ["麜"]="lì", ["𫟷"]="lì", ["𫵷"]="lì", ["𬍛"]="lì", ["哩"]="li", ["俩"]="liǎ", ["奁"]="lián", ["帘"]="lián", ["廉"]="lián", ["怜"]="lián", ["梿"]="lián", ["槤"]="lián", ["涟"]="lián", ["濂"]="lián", ["簾"]="lián", ["联"]="lián", ["聫"]="lián", ["聯"]="lián", ["臁"]="lián", ["莲"]="lián", ["蓮"]="lián", ["蠊"]="lián", ["裢"]="lián", ["连"]="lián", ["連"]="lián", ["鎌"]="lián", ["鐮"]="lián", ["镰"]="lián", ["鬑"]="lián", ["鲢"]="lián", ["敛"]="liǎn", ["琏"]="liǎn", ["羷"]="liǎn", ["脸"]="liǎn", ["臉"]="liǎn", ["蔹"]="liǎn", ["裣"]="liǎn", ["恋"]="liàn", ["楝"]="liàn", ["殓"]="liàn", ["潋"]="liàn", ["炼"]="liàn", ["瑓"]="liàn", ["稴"]="liàn", ["練"]="liàn", ["练"]="liàn", ["鍊"]="liàn", ["鏈"]="liàn", ["链"]="liàn", ["𬶠"]="liàn", ["俍"]="liáng", ["凉"]="liáng", ["墚"]="liáng", ["梁"]="liáng", ["椋"]="liáng", ["粮"]="liáng", ["粱"]="liáng", ["糧"]="liáng", ["綡"]="liáng", ["良"]="liáng", ["辌"]="liáng", ["𫟅"]="liáng", ["两"]="liǎng", ["蜽"]="liǎng", ["裲"]="liǎng", ["魉"]="liǎng", ["𬜯"]="liǎng", ["亮"]="liàng", ["悢"]="liàng", ["晾"]="liàng", ["諒"]="liàng", ["谅"]="liàng", ["踉"]="liàng", ["辆"]="liàng", ["量"]="liàng", ["靓"]="liàng", ["蹽"]="liāo", ["僚"]="liáo", ["嘹"]="liáo", ["嫽"]="liáo", ["寥"]="liáo", ["寮"]="liáo", ["撩"]="liáo", ["橑"]="liáo", ["漻"]="liáo", ["潦"]="liáo", ["燎"]="liáo", ["獠"]="liáo", ["疗"]="liáo", ["竂"]="liáo", ["簝"]="liáo", ["繚"]="liáo", ["缭"]="liáo", ["聊"]="liáo", ["膋"]="liáo", ["膫"]="liáo", ["豂"]="liáo", ["辽"]="liáo", ["鏐"]="liáo", ["镠"]="liáo", ["髎"]="liáo", ["鹩"]="liáo", ["憭"]="liǎo", ["瞭"]="liǎo", ["蓼"]="liǎo", ["钌"]="liǎo", ["尥"]="liào", ["廖"]="liào", ["撂"]="liào", ["料"]="liào", ["鐐"]="liào", ["镣"]="liào", ["𪤗"]="liào", ["咧"]="liē", ["䴕"]="liè", ["冽"]="liè", ["列"]="liè", ["劣"]="liè", ["埒"]="liè", ["峛"]="liè", ["捩"]="liè", ["洌"]="liè", ["烈"]="liè", ["猎"]="liè", ["睙"]="liè", ["脟"]="liè", ["茢"]="liè", ["蛚"]="liè", ["裂"]="liè", ["趔"]="liè", ["躐"]="liè", ["鬛"]="liè", ["鬣"]="liè", ["鱲"]="liè", ["鴷"]="liè", ["𫚭"]="liè", ["拎"]="līn", ["临"]="lín", ["啉"]="lín", ["嶙"]="lín", ["林"]="lín", ["潾"]="lín", ["琳"]="lín", ["璘"]="lín", ["瞵"]="lín", ["磷"]="lín", ["箖"]="lín", ["粦"]="lín", ["粼"]="lín", ["翷"]="lín", ["臨"]="lín", ["辚"]="lín", ["遴"]="lín", ["邻"]="lín", ["鄰"]="lín", ["鏻"]="lín", ["隣"]="lín", ["霖"]="lín", ["驎"]="lín", ["魿"]="lín", ["鱗"]="lín", ["鳞"]="lín", ["麐"]="lín", ["麟"]="lín", ["𬭸"]="lín", ["𬴊"]="lín", ["凛"]="lǐn", ["廪"]="lǐn", ["懔"]="lǐn", ["檩"]="lǐn", ["吝"]="lìn", ["淋"]="lìn", ["膦"]="lìn", ["蔺"]="lìn", ["藺"]="lìn", ["赁"]="lìn", ["躏"]="lìn", ["轥"]="lìn", ["〇"]="líng", ["㥄"]="líng", ["伶"]="líng", ["凌"]="líng", ["囹"]="líng", ["坽"]="líng", ["姈"]="líng", ["昤"]="líng", ["柃"]="líng", ["棂"]="líng", ["泠"]="líng", ["澪"]="líng", ["灵"]="líng", ["玲"]="líng", ["瓴"]="líng", ["祾"]="líng", ["秢"]="líng", ["笭"]="líng", ["绫"]="líng", ["羚"]="líng", ["翎"]="líng", ["聆"]="líng", ["舲"]="líng", ["苓"]="líng", ["菱"]="líng", ["蛉"]="líng", ["袊"]="líng", ["詅"]="líng", ["跉"]="líng", ["酃"]="líng", ["醽"]="líng", ["鈴"]="líng", ["铃"]="líng", ["陵"]="líng", ["零"]="líng", ["霝"]="líng", ["靈"]="líng", ["鲮"]="líng", ["鴒"]="líng", ["鸰"]="líng", ["齡"]="líng", ["齢"]="líng", ["龄"]="líng", ["岭"]="lǐng", ["領"]="lǐng", ["领"]="lǐng", ["令"]="lìng", ["另"]="lìng", ["呤"]="lìng", ["溜"]="liū", ["熘"]="liū", ["蹓"]="liū", ["刘"]="liú", ["旒"]="liú", ["榴"]="liú", ["流"]="liú", ["浏"]="liú", ["琉"]="liú", ["瑬"]="liú", ["留"]="liú", ["疁"]="liú", ["瘤"]="liú", ["硫"]="liú", ["藰"]="liú", ["鎏"]="liú", ["镏"]="liú", ["飀"]="liú", ["飗"]="liú", ["馏"]="liú", ["駵"]="liú", ["驑"]="liú", ["骝"]="liú", ["鰡"]="liú", ["鹠"]="liú", ["柳"]="liǔ", ["珋"]="liǔ", ["綹"]="liǔ", ["绺"]="liǔ", ["罶"]="liǔ", ["羀"]="liǔ", ["锍"]="liǔ", ["六"]="liù", ["遛"]="liù", ["霤"]="liù", ["鬸"]="liù", ["鹨"]="liù", ["咙"]="lóng", ["昽"]="lóng", ["栊"]="lóng", ["泷"]="lóng", ["漋"]="lóng", ["珑"]="lóng", ["癃"]="lóng", ["眬"]="lóng", ["砻"]="lóng", ["礱"]="lóng", ["窿"]="lóng", ["笼"]="lóng", ["篭"]="lóng", ["籠"]="lóng", ["聋"]="lóng", ["聾"]="lóng", ["胧"]="lóng", ["茏"]="lóng", ["蠪"]="lóng", ["襱"]="lóng", ["躘"]="lóng", ["鑨"]="lóng", ["隆"]="lóng", ["霳"]="lóng", ["驡"]="lóng", ["龍"]="lóng", ["龓"]="lóng", ["龙"]="lóng", ["垄"]="lǒng", ["垅"]="lǒng", ["拢"]="lǒng", ["陇"]="lǒng", ["𬕂"]="lǒng", ["哢"]="lòng", ["衖"]="lòng", ["䁖"]="lōu", ["搂"]="lōu", ["瞜"]="lōu", ["剅"]="lóu", ["娄"]="lóu", ["楼"]="lóu", ["溇"]="lóu", ["耧"]="lóu", ["膢"]="lóu", ["蒌"]="lóu", ["蔞"]="lóu", ["蝼"]="lóu", ["謱"]="lóu", ["鞻"]="lóu", ["髅"]="lóu", ["髏"]="lóu", ["𦝼"]="lóu", ["𪣻"]="lóu", ["嵝"]="lǒu", ["篓"]="lǒu", ["簍"]="lǒu", ["漏"]="lòu", ["瘘"]="lòu", ["鏤"]="lòu", ["镂"]="lòu", ["陋"]="lòu", ["喽"]="lou", ["噜"]="lū", ["撸"]="lū", ["卢"]="lú", ["垆"]="lú", ["庐"]="lú", ["栌"]="lú", ["泸"]="lú", ["炉"]="lú", ["纑"]="lú", ["胪"]="lú", ["臚"]="lú", ["舻"]="lú", ["艫"]="lú", ["芦"]="lú", ["蘆"]="lú", ["轳"]="lú", ["鈩"]="lú", ["鑪"]="lú", ["顱"]="lú", ["颅"]="lú", ["鲈"]="lú", ["鸬"]="lú", ["𬬻"]="lú", ["卤"]="lǔ", ["掳"]="lǔ", ["橹"]="lǔ", ["澛"]="lǔ", ["磠"]="lǔ", ["艣"]="lǔ", ["蓾"]="lǔ", ["虏"]="lǔ", ["虜"]="lǔ", ["镥"]="lǔ", ["鲁"]="lǔ", ["䩮"]="lù", ["僇"]="lù", ["勠"]="lù", ["录"]="lù", ["戮"]="lù", ["渌"]="lù", ["漉"]="lù", ["潞"]="lù", ["琭"]="lù", ["璐"]="lù", ["甪"]="lù", ["盝"]="lù", ["睩"]="lù", ["碌"]="lù", ["祿"]="lù", ["禄"]="lù", ["稑"]="lù", ["箓"]="lù", ["簏"]="lù", ["簬"]="lù", ["籙"]="lù", ["粶"]="lù", ["膟"]="lù", ["菉"]="lù", ["蕗"]="lù", ["賂"]="lù", ["赂"]="lù", ["路"]="lù", ["辂"]="lù", ["辘"]="lù", ["逯"]="lù", ["醁"]="lù", ["錄"]="lù", ["録"]="lù", ["陆"]="lù", ["陸"]="lù", ["露"]="lù", ["騄"]="lù", ["騼"]="lù", ["鴼"]="lù", ["鷺"]="lù", ["鹭"]="lù", ["鹿"]="lù", ["麓"]="lù", ["𫘧"]="lù", ["氇"]="lu", ["榈"]="lǘ", ["藘"]="lǘ", ["閭"]="lǘ", ["闾"]="lǘ", ["馿"]="lǘ", ["驢"]="lǘ", ["驴"]="lǘ", ["侣"]="lǚ", ["偻"]="lǚ", ["吕"]="lǚ", ["屡"]="lǚ", ["履"]="lǚ", ["捋"]="lǚ", ["旅"]="lǚ", ["梠"]="lǚ", ["稆"]="lǚ", ["絽"]="lǚ", ["縷"]="lǚ", ["缕"]="lǚ", ["膂"]="lǚ", ["褛"]="lǚ", ["褸"]="lǚ", ["郘"]="lǚ", ["铝"]="lǚ", ["垏"]="lǜ", ["律"]="lǜ", ["氯"]="lǜ", ["滤"]="lǜ", ["率"]="lǜ", ["綠"]="lǜ", ["繂"]="lǜ", ["绿"]="lǜ", ["葎"]="lǜ", ["虑"]="lǜ", ["鑢"]="lǜ", ["娈"]="luán", ["孪"]="luán", ["峦"]="luán", ["挛"]="luán", ["栾"]="luán", ["滦"]="luán", ["羉"]="luán", ["脔"]="luán", ["銮"]="luán", ["鑾"]="luán", ["鸾"]="luán", ["卵"]="luǎn", ["乱"]="luàn", ["釠"]="luàn", ["䂮"]="lüè", ["圙"]="lüè", ["掠"]="lüè", ["略"]="lüè", ["锊"]="lüè", ["仑"]="lún", ["伦"]="lún", ["囵"]="lún", ["抡"]="lún", ["沦"]="lún", ["纶"]="lún", ["腀"]="lún", ["菕"]="lún", ["輪"]="lún", ["轮"]="lún", ["鯩"]="lún", ["𬬭"]="lún", ["𫭢"]="lǔn", ["論"]="lùn", ["论"]="lùn", ["椤"]="luó", ["猡"]="luó", ["箩"]="luó", ["罗"]="luó", ["羅"]="luó", ["脶"]="luó", ["萝"]="luó", ["蘿"]="luó", ["螺"]="luó", ["逻"]="luó", ["邏"]="luó", ["鏍"]="luó", ["锣"]="luó", ["镙"]="luó", ["騾"]="luó", ["驘"]="luó", ["骡"]="luó", ["鸁"]="luó", ["倮"]="luǒ", ["瘰"]="luǒ", ["砢"]="luǒ", ["蓏"]="luǒ", ["蠃"]="luǒ", ["裸"]="luǒ", ["躶"]="luǒ", ["摞"]="luò", ["泺"]="luò", ["洛"]="luò", ["漯"]="luò", ["珞"]="luò", ["笿"]="luò", ["絡"]="luò", ["络"]="luò", ["茖"]="luò", ["荦"]="luò", ["落"]="luò", ["雒"]="luò", ["骆"]="luò", ["妈"]="mā", ["蔴"]="má", ["蟆"]="má", ["麻"]="má", ["犸"]="mǎ", ["玛"]="mǎ", ["码"]="mǎ", ["碼"]="mǎ", ["蚂"]="mǎ", ["螞"]="mǎ", ["馬"]="mǎ", ["马"]="mǎ", ["唛"]="mà", ["杩"]="mà", ["祃"]="mà", ["禡"]="mà", ["罵"]="mà", ["駡"]="mà", ["骂"]="mà", ["吗"]="ma", ["嘛"]="ma", ["埋"]="mái", ["貍"]="mái", ["霾"]="mái", ["买"]="mǎi", ["荬"]="mǎi", ["蕒"]="mǎi", ["買"]="mǎi", ["劢"]="mài", ["卖"]="mài", ["脈"]="mài", ["脉"]="mài", ["賣"]="mài", ["迈"]="mài", ["邁"]="mài", ["麥"]="mài", ["麦"]="mài", ["鿏"]="mài", ["颟"]="mān", ["瞒"]="mán", ["瞞"]="mán", ["蛮"]="mán", ["蠻"]="mán", ["鞔"]="mán", ["饅"]="mán", ["馒"]="mán", ["鬘"]="mán", ["鰻"]="mán", ["鳗"]="mán", ["满"]="mǎn", ["螨"]="mǎn", ["蟎"]="mǎn", ["墁"]="màn", ["幔"]="màn", ["慢"]="màn", ["曼"]="màn", ["漫"]="màn", ["熳"]="màn", ["缦"]="màn", ["蔄"]="màn", ["蔓"]="màn", ["谩"]="màn", ["镘"]="màn", ["𬜬"]="màn", ["牤"]="māng", ["厖"]="máng", ["尨"]="máng", ["忙"]="máng", ["杧"]="máng", ["氓"]="máng", ["牻"]="máng", ["盲"]="máng", ["硭"]="máng", ["笀"]="máng", ["芒"]="máng", ["茫"]="máng", ["邙"]="máng", ["铓"]="máng", ["駹"]="máng", ["龒"]="máng", ["漭"]="mǎng", ["茻"]="mǎng", ["莽"]="mǎng", ["莾"]="mǎng", ["蟒"]="mǎng", ["蠎"]="mǎng", ["猫"]="māo", ["貓"]="māo", ["旄"]="máo", ["毛"]="máo", ["牦"]="máo", ["矛"]="máo", ["茅"]="máo", ["茆"]="máo", ["蝥"]="máo", ["蟊"]="máo", ["錨"]="máo", ["锚"]="máo", ["髦"]="máo", ["髳"]="máo", ["鶜"]="máo", ["卯"]="mǎo", ["峁"]="mǎo", ["昴"]="mǎo", ["泖"]="mǎo", ["铆"]="mǎo", ["冒"]="mào", ["帽"]="mào", ["懋"]="mào", ["楙"]="mào", ["瑁"]="mào", ["瞀"]="mào", ["耄"]="mào", ["芼"]="mào", ["茂"]="mào", ["袤"]="mào", ["貌"]="mào", ["貿"]="mào", ["贸"]="mào", ["鄚"]="mào", ["鄮"]="mào", ["么"]="me", ["麼"]="me", ["麽"]="me", ["媒"]="méi", ["嵋"]="méi", ["枚"]="méi", ["梅"]="méi", ["楣"]="méi", ["沒"]="méi", ["没"]="méi", ["湄"]="méi", ["煤"]="méi", ["猸"]="méi", ["玫"]="méi", ["瑂"]="méi", ["眉"]="méi", ["矀"]="méi", ["禖"]="méi", ["莓"]="méi", ["蘪"]="méi", ["郿"]="méi", ["酶"]="méi", ["鋂"]="méi", ["鎇"]="méi", ["镅"]="méi", ["霉"]="méi", ["鹛"]="méi", ["黴"]="méi", ["媄"]="měi", ["每"]="měi", ["浼"]="měi", ["渼"]="měi", ["美"]="měi", ["羙"]="měi", ["镁"]="měi", ["妹"]="mèi", ["媚"]="mèi", ["寐"]="mèi", ["昧"]="mèi", ["眊"]="mèi", ["祙"]="mèi", ["篃"]="mèi", ["袂"]="mèi", ["跊"]="mèi", ["鬽"]="mèi", ["魅"]="mèi", ["闷"]="mēn", ["扪"]="mén", ["穈"]="mén", ["虋"]="mén", ["钔"]="mén", ["門"]="mén", ["门"]="mén", ["𫞩"]="mén", ["呇"]="mèn", ["懑"]="mèn", ["焖"]="mèn", ["们"]="men", ["㠓"]="méng", ["幪"]="méng", ["朦"]="méng", ["檬"]="méng", ["甍"]="méng", ["盟"]="méng", ["瞢"]="méng", ["矇"]="méng", ["矒"]="méng", ["礞"]="méng", ["艨"]="méng", ["萌"]="méng", ["蒙"]="méng", ["虻"]="méng", ["鄳"]="méng", ["饛"]="méng", ["鹲"]="méng", ["𫑡"]="méng", ["勐"]="měng", ["懵"]="měng", ["猛"]="měng", ["獴"]="měng", ["艋"]="měng", ["蜢"]="měng", ["蠓"]="měng", ["锰"]="měng", ["孟"]="mèng", ["梦"]="mèng", ["咪"]="mī", ["眯"]="mī", ["瞇"]="mī", ["弥"]="mí", ["猕"]="mí", ["祢"]="mí", ["禰"]="mí", ["籋"]="mí", ["糜"]="mí", ["縻"]="mí", ["罙"]="mí", ["蒾"]="mí", ["蘼"]="mí", ["詸"]="mí", ["谜"]="mí", ["迷"]="mí", ["醚"]="mí", ["醾"]="mí", ["醿"]="mí", ["鸍"]="mí", ["麊"]="mí", ["麋"]="mí", ["弭"]="mǐ", ["敉"]="mǐ", ["洣"]="mǐ", ["米"]="mǐ", ["粎"]="mǐ", ["脒"]="mǐ", ["芈"]="mǐ", ["葞"]="mǐ", ["靡"]="mǐ", ["嘧"]="mì", ["宓"]="mì", ["密"]="mì", ["幂"]="mì", ["汨"]="mì", ["泌"]="mì", ["秘"]="mì", ["蓂"]="mì", ["蜜"]="mì", ["覓"]="mì", ["覛"]="mì", ["觅"]="mì", ["谧"]="mì", ["鼏"]="mì", ["棉"]="mián", ["眠"]="mián", ["矊"]="mián", ["綿"]="mián", ["緜"]="mián", ["绵"]="mián", ["丏"]="miǎn", ["偭"]="miǎn", ["免"]="miǎn", ["冕"]="miǎn", ["勉"]="miǎn", ["勔"]="miǎn", ["娩"]="miǎn", ["愐"]="miǎn", ["沔"]="miǎn", ["渑"]="miǎn", ["湎"]="miǎn", ["眄"]="miǎn", ["缅"]="miǎn", ["腼"]="miǎn", ["靦"]="miǎn", ["𩾃"]="miǎn", ["面"]="miàn", ["靣"]="miàn", ["麵"]="miàn", ["喵"]="miāo", ["描"]="miáo", ["瞄"]="miáo", ["苗"]="miáo", ["鶓"]="miáo", ["鹋"]="miáo", ["杪"]="miǎo", ["淼"]="miǎo", ["渺"]="miǎo", ["眇"]="miǎo", ["秒"]="miǎo", ["緲"]="miǎo", ["缈"]="miǎo", ["藐"]="miǎo", ["邈"]="miǎo", ["妙"]="miào", ["庙"]="miào", ["乜"]="miē", ["咩"]="miē", ["灭"]="miè", ["烕"]="miè", ["篾"]="miè", ["蔑"]="miè", ["蠛"]="miè", ["岷"]="mín", ["忞"]="mín", ["旻"]="mín", ["民"]="mín", ["玟"]="mín", ["珉"]="mín", ["盿"]="mín", ["緡"]="mín", ["缗"]="mín", ["苠"]="mín", ["賯"]="mín", ["鈱"]="mín", ["悯"]="mǐn", ["愍"]="mǐn", ["抿"]="mǐn", ["敏"]="mǐn", ["泯"]="mǐn", ["湣"]="mǐn", ["皿"]="mǐn", ["簢"]="mǐn", ["緍"]="mǐn", ["閔"]="mǐn", ["闵"]="mǐn", ["闽"]="mǐn", ["鰵"]="mǐn", ["鳘"]="mǐn", ["黾"]="mǐn", ["冥"]="míng", ["名"]="míng", ["明"]="míng", ["暝"]="míng", ["洺"]="míng", ["溟"]="míng", ["眀"]="míng", ["眳"]="míng", ["瞑"]="míng", ["茗"]="míng", ["螟"]="míng", ["鄍"]="míng", ["銘"]="míng", ["铭"]="míng", ["鳴"]="míng", ["鸣"]="míng", ["酩"]="mǐng", ["命"]="mìng", ["詺"]="mìng", ["謬"]="miù", ["谬"]="miù", ["摸"]="mō", ["嫫"]="mó", ["嬷"]="mó", ["摩"]="mó", ["摹"]="mó", ["模"]="mó", ["磨"]="mó", ["糢"]="mó", ["膜"]="mó", ["蘑"]="mó", ["謨"]="mó", ["謩"]="mó", ["谟"]="mó", ["饝"]="mó", ["馍"]="mó", ["魔"]="mó", ["抹"]="mǒ", ["麿"]="mǒ", ["墨"]="mò", ["寞"]="mò", ["末"]="mò", ["殁"]="mò", ["沫"]="mò", ["漠"]="mò", ["瘼"]="mò", ["眜"]="mò", ["瞐"]="mò", ["秣"]="mò", ["粖"]="mò", ["耱"]="mò", ["艒"]="mò", ["茉"]="mò", ["莫"]="mò", ["蓦"]="mò", ["藦"]="mò", ["貊"]="mò", ["貘"]="mò", ["镆"]="mò", ["陌"]="mò", ["驀"]="mò", ["默"]="mò", ["𬙊"]="mò", ["哞"]="mōu", ["侔"]="móu", ["牟"]="móu", ["眸"]="móu", ["繆"]="móu", ["缪"]="móu", ["蛑"]="móu", ["謀"]="móu", ["谋"]="móu", ["鍪"]="móu", ["鞪"]="móu", ["鴾"]="móu", ["麰"]="móu", ["某"]="mǒu", ["毪"]="mú", ["亩"]="mǔ", ["坶"]="mǔ", ["姆"]="mǔ", ["拇"]="mǔ", ["母"]="mǔ", ["牡"]="mǔ", ["砪"]="mǔ", ["𧿹"]="mǔ", ["𬭁"]="mǔ", ["仫"]="mù", ["募"]="mù", ["墓"]="mù", ["幕"]="mù", ["慕"]="mù", ["暮"]="mù", ["木"]="mù", ["沐"]="mù", ["牧"]="mù", ["目"]="mù", ["睦"]="mù", ["穆"]="mù", ["苜"]="mù", ["钼"]="mù", ["雮"]="mù", ["霂"]="mù", ["拿"]="ná", ["秅"]="ná", ["蒘"]="ná", ["誽"]="ná", ["镎"]="ná", ["乸"]="nǎ", ["哪"]="nǎ", ["呐"]="nà", ["捺"]="nà", ["篛"]="nà", ["納"]="nà", ["纳"]="nà", ["肭"]="nà", ["衲"]="nà", ["袦"]="nà", ["那"]="nà", ["鈉"]="nà", ["钠"]="nà", ["靹"]="nà", ["乃"]="nǎi", ["奶"]="nǎi", ["氖"]="nǎi", ["艿"]="nǎi", ["迺"]="nǎi", ["釢"]="nǎi", ["奈"]="nài", ["柰"]="nài", ["耐"]="nài", ["萘"]="nài", ["螚"]="nài", ["褦"]="nài", ["鼐"]="nài", ["囡"]="nān", ["南"]="nán", ["喃"]="nán", ["楠"]="nán", ["男"]="nán", ["萳"]="nán", ["难"]="nán", ["難"]="nán", ["腩"]="nǎn", ["蝻"]="nǎn", ["赧"]="nǎn", ["婻"]="nàn", ["囔"]="nāng", ["囊"]="náng", ["馕"]="náng", ["攮"]="nǎng", ["曩"]="nǎng", ["齉"]="nàng", ["孬"]="nāo", ["呶"]="náo", ["峱"]="náo", ["挠"]="náo", ["猱"]="náo", ["硇"]="náo", ["蛲"]="náo", ["蟯"]="náo", ["铙"]="náo", ["垴"]="nǎo", ["恼"]="nǎo", ["瑙"]="nǎo", ["脑"]="nǎo", ["脳"]="nǎo", ["腦"]="nǎo", ["淖"]="nào", ["臑"]="nào", ["闹"]="nào", ["鬧"]="nào", ["眲"]="nè", ["讷"]="nè", ["呢"]="ne", ["餒"]="něi", ["馁"]="něi", ["鮾"]="něi", ["鯘"]="něi", ["内"]="nèi", ["嫩"]="nèn", ["能"]="néng", ["唔"]="ńg", ["嗯"]="ńg", ["妮"]="nī", ["倪"]="ní", ["坭"]="ní", ["尼"]="ní", ["怩"]="ní", ["泥"]="ní", ["猊"]="ní", ["蜺"]="ní", ["貎"]="ní", ["輗"]="ní", ["铌"]="ní", ["霓"]="ní", ["鲵"]="ní", ["麑"]="ní", ["齯"]="ní", ["𫐐"]="ní", ["𫠜"]="ní", ["你"]="nǐ", ["妳"]="nǐ", ["拟"]="nǐ", ["旎"]="nǐ", ["聻"]="nǐ", ["薿"]="nǐ", ["鿭"]="nǐ", ["伲"]="nì", ["匿"]="nì", ["昵"]="nì", ["溺"]="nì", ["睨"]="nì", ["腻"]="nì", ["膩"]="nì", ["逆"]="nì", ["𨺙"]="nì", ["拈"]="niān", ["蔫"]="niān", ["年"]="nián", ["粘"]="nián", ["鮎"]="nián", ["鲇"]="nián", ["鲶"]="nián", ["黏"]="nián", ["捻"]="niǎn", ["撚"]="niǎn", ["撵"]="niǎn", ["碾"]="niǎn", ["跈"]="niǎn", ["蹨"]="niǎn", ["輦"]="niǎn", ["辇"]="niǎn", ["埝"]="niàn", ["廿"]="niàn", ["念"]="niàn", ["娘"]="niáng", ["孃"]="niáng", ["酿"]="niàng", ["釀"]="niàng", ["嬲"]="niǎo", ["茑"]="niǎo", ["蔦"]="niǎo", ["袅"]="niǎo", ["鸟"]="niǎo", ["尿"]="niào", ["脲"]="niào", ["捏"]="niē", ["啮"]="niè", ["嗫"]="niè", ["孽"]="niè", ["嵲"]="niè", ["涅"]="niè", ["糱"]="niè", ["糵"]="niè", ["聂"]="niè", ["聶"]="niè", ["臬"]="niè", ["苶"]="niè", ["菍"]="niè", ["蘖"]="niè", ["蠥"]="niè", ["蹑"]="niè", ["鋷"]="niè", ["鑷"]="niè", ["镊"]="niè", ["镍"]="niè", ["闑"]="niè", ["陧"]="niè", ["顳"]="niè", ["颞"]="niè", ["齧"]="niè", ["𫔶"]="niè", ["您"]="nín", ["凝"]="níng", ["咛"]="níng", ["宁"]="níng", ["柠"]="níng", ["狞"]="níng", ["甯"]="níng", ["聍"]="níng", ["聹"]="níng", ["拧"]="nǐng", ["矃"]="nǐng", ["佞"]="nìng", ["泞"]="nìng", ["妞"]="niū", ["牛"]="niú", ["忸"]="niǔ", ["扭"]="niǔ", ["狃"]="niǔ", ["紐"]="niǔ", ["纽"]="niǔ", ["鈕"]="niǔ", ["钮"]="niǔ", ["靵"]="niǔ", ["拗"]="niù", ["侬"]="nóng", ["农"]="nóng", ["哝"]="nóng", ["浓"]="nóng", ["秾"]="nóng", ["脓"]="nóng", ["膿"]="nóng", ["襛"]="nóng", ["農"]="nóng", ["醲"]="nóng", ["𬪩"]="nóng", ["弄"]="nòng", ["羺"]="nóu", ["耨"]="nòu", ["奴"]="nú", ["孥"]="nú", ["砮"]="nú", ["笯"]="nú", ["驽"]="nú", ["努"]="nǔ", ["弩"]="nǔ", ["胬"]="nǔ", ["傉"]="nù", ["怒"]="nù", ["女"]="nǚ", ["钕"]="nǚ", ["恧"]="nǜ", ["衂"]="nǜ", ["衄"]="nǜ", ["暖"]="nuǎn", ["疟"]="nüè", ["虐"]="nüè", ["傩"]="nuó", ["娜"]="nuó", ["挪"]="nuó", ["懦"]="nuò", ["搦"]="nuò", ["稬"]="nuò", ["糯"]="nuò", ["耎"]="nuò", ["诺"]="nuò", ["鍩"]="nuò", ["锘"]="nuò", ["喔"]="ō", ["噢"]="ō", ["哦"]="ò", ["欧"]="ōu", ["殴"]="ōu", ["瓯"]="ōu", ["讴"]="ōu", ["鏂"]="ōu", ["鸥"]="ōu", ["偶"]="ǒu", ["呕"]="ǒu", ["耦"]="ǒu", ["蕅"]="ǒu", ["藕"]="ǒu", ["𠙶"]="ǒu", ["𬉼"]="ǒu", ["怄"]="òu", ["沤"]="òu", ["啪"]="pā", ["舥"]="pā", ["葩"]="pā", ["趴"]="pā", ["扒"]="pá", ["杷"]="pá", ["潖"]="pá", ["爬"]="pá", ["琶"]="pá", ["筢"]="pá", ["耙"]="pá", ["帕"]="pà", ["怕"]="pà", ["拍"]="pāi", ["俳"]="pái", ["徘"]="pái", ["排"]="pái", ["牌"]="pái", ["簰"]="pái", ["哌"]="pài", ["派"]="pài", ["湃"]="pài", ["蒎"]="pài", ["攀"]="pān", ["潘"]="pān", ["眅"]="pān", ["槃"]="pán", ["爿"]="pán", ["盘"]="pán", ["盤"]="pán", ["磐"]="pán", ["膰"]="pán", ["蟠"]="pán", ["踫"]="pán", ["蹒"]="pán", ["蹣"]="pán", ["判"]="pàn", ["叛"]="pàn", ["泮"]="pàn", ["畔"]="pàn", ["盼"]="pàn", ["眫"]="pàn", ["袢"]="pàn", ["襻"]="pàn", ["鋬"]="pàn", ["乓"]="pāng", ["滂"]="pāng", ["雱"]="pāng", ["庞"]="páng", ["彷"]="páng", ["旁"]="páng", ["螃"]="páng", ["蠭"]="páng", ["趽"]="páng", ["逄"]="páng", ["鰟"]="páng", ["鳑"]="páng", ["龎"]="páng", ["耪"]="pǎng", ["胖"]="pàng", ["抛"]="pāo", ["脬"]="pāo", ["匏"]="páo", ["咆"]="páo", ["庖"]="páo", ["狍"]="páo", ["袍"]="páo", ["褜"]="páo", ["鞄"]="páo", ["麅"]="páo", ["跑"]="pǎo", ["泡"]="pào", ["炮"]="pào", ["疱"]="pào", ["砲"]="pào", ["礮"]="pào", ["窌"]="pào", ["萢"]="pào", ["呸"]="pēi", ["肧"]="pēi", ["胚"]="pēi", ["衃"]="pēi", ["醅"]="pēi", ["培"]="péi", ["裴"]="péi", ["赔"]="péi", ["锫"]="péi", ["陪"]="péi", ["佩"]="pèi", ["帔"]="pèi", ["旆"]="pèi", ["沛"]="pèi", ["茷"]="pèi", ["辔"]="pèi", ["配"]="pèi", ["霈"]="pèi", ["喷"]="pēn", ["湓"]="pén", ["盆"]="pén", ["翸"]="pěn", ["嘭"]="pēng", ["怦"]="pēng", ["抨"]="pēng", ["烹"]="pēng", ["砰"]="pēng", ["磞"]="pēng", ["軿"]="pēng", ["輧"]="pēng", ["閛"]="pēng", ["堋"]="péng", ["弸"]="péng", ["彭"]="péng", ["朋"]="péng", ["棚"]="péng", ["淜"]="péng", ["澎"]="péng", ["硼"]="péng", ["篷"]="péng", ["纄"]="péng", ["膨"]="péng", ["芃"]="péng", ["蓬"]="péng", ["蟛"]="péng", ["韼"]="péng", ["髼"]="péng", ["鬅"]="péng", ["鵬"]="péng", ["鹏"]="péng", ["捧"]="pěng", ["椪"]="pèng", ["碰"]="pèng", ["丕"]="pī", ["伾"]="pī", ["劈"]="pī", ["噼"]="pī", ["坯"]="pī", ["批"]="pī", ["披"]="pī", ["狉"]="pī", ["砒"]="pī", ["秠"]="pī", ["纰"]="pī", ["邳"]="pī", ["錃"]="pī", ["霹"]="pī", ["魾"]="pī", ["鮍"]="pī", ["鲏"]="pī", ["𬳵"]="pī", ["啤"]="pí", ["埤"]="pí", ["枇"]="pí", ["毗"]="pí", ["琵"]="pí", ["疲"]="pí", ["皮"]="pí", ["篺"]="pí", ["罴"]="pí", ["脾"]="pí", ["腗"]="pí", ["芘"]="pí", ["蚍"]="pí", ["蜱"]="pí", ["貔"]="pí", ["郫"]="pí", ["铍"]="pí", ["陴"]="pí", ["隦"]="pí", ["鼙"]="pí", ["仳"]="pǐ", ["匹"]="pǐ", ["嚭"]="pǐ", ["圮"]="pǐ", ["庀"]="pǐ", ["擗"]="pǐ", ["痞"]="pǐ", ["癖"]="pǐ", ["苉"]="pǐ", ["䴙"]="pì", ["僻"]="pì", ["媲"]="pì", ["屁"]="pì", ["淠"]="pì", ["澼"]="pì", ["甓"]="pì", ["睥"]="pì", ["譬"]="pì", ["辟"]="pì", ["闢"]="pì", ["鷿"]="pì", ["鸊"]="pì", ["偏"]="piān", ["犏"]="piān", ["篇"]="piān", ["翩"]="piān", ["㛹"]="pián", ["楩"]="pián", ["胼"]="pián", ["蹁"]="pián", ["骈"]="pián", ["骿"]="pián", ["谝"]="piǎn", ["𡎚"]="piǎn", ["片"]="piàn", ["騙"]="piàn", ["骗"]="piàn", ["魸"]="piàn", ["剽"]="piāo", ["磦"]="piāo", ["縹"]="piāo", ["缥"]="piāo", ["螵"]="piāo", ["飘"]="piāo", ["魒"]="piāo", ["嫖"]="piáo", ["瓢"]="piáo", ["薸"]="piáo", ["殍"]="piǎo", ["瞟"]="piǎo", ["醥"]="piǎo", ["嘌"]="piào", ["漂"]="piào", ["票"]="piào", ["蔈"]="piào", ["氕"]="piē", ["瞥"]="piē", ["撇"]="piě", ["苤"]="piě", ["𬭯"]="piě", ["姘"]="pīn", ["拚"]="pīn", ["拼"]="pīn", ["嫔"]="pín", ["玭"]="pín", ["貧"]="pín", ["贫"]="pín", ["頻"]="pín", ["频"]="pín", ["颦"]="pín", ["𬞟"]="pín", ["品"]="pǐn", ["榀"]="pǐn", ["牝"]="pìn", ["聘"]="pìn", ["乒"]="pīng", ["俜"]="pīng", ["娉"]="pīng", ["涄"]="pīng", ["凭"]="píng", ["坪"]="píng", ["屏"]="píng", ["帡"]="píng", ["平"]="píng", ["枰"]="píng", ["泙"]="píng", ["洴"]="píng", ["玶"]="píng", ["瓶"]="píng", ["缾"]="píng", ["聠"]="píng", ["苹"]="píng", ["荓"]="píng", ["萍"]="píng", ["蓱"]="píng", ["蘋"]="píng", ["蚲"]="píng", ["蛢"]="píng", ["評"]="píng", ["评"]="píng", ["鲆"]="píng", ["䥽"]="pō", ["坡"]="pō", ["攴"]="pō", ["泼"]="pō", ["酦"]="pō", ["醱"]="pō", ["釙"]="pō", ["钋"]="pō", ["頗"]="pō", ["颇"]="pō", ["婆"]="pó", ["皤"]="pó", ["鄱"]="pó", ["叵"]="pǒ", ["笸"]="pǒ", ["钷"]="pǒ", ["珀"]="pò", ["破"]="pò", ["粕"]="pò", ["蒪"]="pò", ["迫"]="pò", ["魄"]="pò", ["剖"]="pōu", ["抔"]="póu", ["掊"]="póu", ["裒"]="póu", ["噗"]="pū", ["扑"]="pū", ["潽"]="pū", ["鋪"]="pū", ["铺"]="pū", ["仆"]="pú", ["僕"]="pú", ["匍"]="pú", ["墣"]="pú", ["濮"]="pú", ["璞"]="pú", ["穙"]="pú", ["纀"]="pú", ["脯"]="pú", ["莆"]="pú", ["菐"]="pú", ["菩"]="pú", ["葡"]="pú", ["蒱"]="pú", ["蒲"]="pú", ["襆"]="pú", ["贌"]="pú", ["酺"]="pú", ["镤"]="pú", ["圃"]="pǔ", ["埔"]="pǔ", ["普"]="pǔ", ["朴"]="pǔ", ["氆"]="pǔ", ["浦"]="pǔ", ["溥"]="pǔ", ["譜"]="pǔ", ["谱"]="pǔ", ["蹼"]="pǔ", ["镨"]="pǔ", ["曝"]="pù", ["瀑"]="pù", ["舖"]="pù", ["七"]="qī", ["凄"]="qī", ["嘁"]="qī", ["妻"]="qī", ["戚"]="qī", ["期"]="qī", ["柒"]="qī", ["栖"]="qī", ["桤"]="qī", ["欺"]="qī", ["沏"]="qī", ["漆"]="qī", ["碕"]="qī", ["萋"]="qī", ["諆"]="qī", ["蹊"]="qī", ["郪"]="qī", ["鶈"]="qī", ["䓫"]="qí", ["亓"]="qí", ["其"]="qí", ["圻"]="qí", ["埼"]="qí", ["奇"]="qí", ["岐"]="qí", ["崎"]="qí", ["愭"]="qí", ["旗"]="qí", ["棋"]="qí", ["歧"]="qí", ["淇"]="qí", ["琦"]="qí", ["琪"]="qí", ["畦"]="qí", ["碁"]="qí", ["祁"]="qí", ["祇"]="qí", ["祈"]="qí", ["祺"]="qí", ["禥"]="qí", ["竒"]="qí", ["粸"]="qí", ["綦"]="qí", ["纃"]="qí", ["耆"]="qí", ["脐"]="qí", ["臍"]="qí", ["艩"]="qí", ["芪"]="qí", ["萁"]="qí", ["蕲"]="qí", ["蚑"]="qí", ["蛴"]="qí", ["蜞"]="qí", ["螧"]="qí", ["跂"]="qí", ["軙"]="qí", ["頎"]="qí", ["颀"]="qí", ["騎"]="qí", ["骐"]="qí", ["骑"]="qí", ["鬐"]="qí", ["鬿"]="qí", ["鯕"]="qí", ["鲯"]="qí", ["鳍"]="qí", ["麒"]="qí", ["麡"]="qí", ["齊"]="qí", ["齐"]="qí", ["𨙸"]="qí", ["𬨂"]="qí", ["乞"]="qǐ", ["企"]="qǐ", ["启"]="qǐ", ["婍"]="qǐ", ["屺"]="qǐ", ["岂"]="qǐ", ["杞"]="qǐ", ["棨"]="qǐ", ["玘"]="qǐ", ["簯"]="qǐ", ["綮"]="qǐ", ["绮"]="qǐ", ["芑"]="qǐ", ["豈"]="qǐ", ["起"]="qǐ", ["邔"]="qǐ", ["器"]="qì", ["契"]="qì", ["弃"]="qì", ["憩"]="qì", ["槭"]="qì", ["气"]="qì", ["汔"]="qì", ["汽"]="qì", ["泣"]="qì", ["洓"]="qì", ["砌"]="qì", ["碛"]="qì", ["碶"]="qì", ["磜"]="qì", ["磩"]="qì", ["葺"]="qì", ["讫"]="qì", ["迄"]="qì", ["鼜"]="qì", ["掐"]="qiā", ["葜"]="qiā", ["拤"]="qiá", ["跒"]="qiǎ", ["恰"]="qià", ["洽"]="qià", ["硈"]="qià", ["髂"]="qià", ["仟"]="qiān", ["佥"]="qiān", ["千"]="qiān", ["圲"]="qiān", ["岍"]="qiān", ["悭"]="qiān", ["愆"]="qiān", ["扦"]="qiān", ["搴"]="qiān", ["杄"]="qiān", ["汧"]="qiān", ["牵"]="qiān", ["磏"]="qiān", ["竏"]="qiān", ["签"]="qiān", ["箞"]="qiān", ["簽"]="qiān", ["籤"]="qiān", ["芊"]="qiān", ["藖"]="qiān", ["蚈"]="qiān", ["褰"]="qiān", ["谦"]="qiān", ["迁"]="qiān", ["遷"]="qiān", ["鈆"]="qiān", ["鉛"]="qiān", ["钎"]="qiān", ["铅"]="qiān", ["阡"]="qiān", ["韆"]="qiān", ["騫"]="qiān", ["骞"]="qiān", ["鹐"]="qiān", ["乾"]="qián", ["前"]="qián", ["墘"]="qián", ["掮"]="qián", ["潜"]="qián", ["箝"]="qián", ["荨"]="qián", ["葴"]="qián", ["蕁"]="qián", ["虔"]="qián", ["軡"]="qián", ["錢"]="qián", ["鍼"]="qián", ["钤"]="qián", ["钱"]="qián", ["钳"]="qián", ["靬"]="qián", ["鰬"]="qián", ["黔"]="qián", ["浅"]="qiǎn", ["缱"]="qiǎn", ["肷"]="qiǎn", ["蜸"]="qiǎn", ["谴"]="qiǎn", ["遣"]="qiǎn", ["伣"]="qiàn", ["倩"]="qiàn", ["堑"]="qiàn", ["嵌"]="qiàn", ["慊"]="qiàn", ["椠"]="qiàn", ["欠"]="qiàn", ["歉"]="qiàn", ["篟"]="qiàn", ["縴"]="qiàn", ["芡"]="qiàn", ["茜"]="qiàn", ["蒨"]="qiàn", ["𬘬"]="qiàn", ["戕"]="qiāng", ["戗"]="qiāng", ["枪"]="qiāng", ["玱"]="qiāng", ["篬"]="qiāng", ["羌"]="qiāng", ["腔"]="qiāng", ["蜣"]="qiāng", ["蹡"]="qiāng", ["錆"]="qiāng", ["鎗"]="qiāng", ["鏘"]="qiāng", ["锖"]="qiāng", ["锵"]="qiāng", ["鸧"]="qiāng", ["墙"]="qiáng", ["嫱"]="qiáng", ["强"]="qiáng", ["樯"]="qiáng", ["艢"]="qiáng", ["蔃"]="qiáng", ["蔷"]="qiáng", ["薔"]="qiáng", ["抢"]="qiǎng", ["羟"]="qiǎng", ["襁"]="qiǎng", ["镪"]="qiǎng", ["呛"]="qiàng", ["炝"]="qiàng", ["跄"]="qiàng", ["蹌"]="qiàng", ["劁"]="qiāo", ["悄"]="qiāo", ["敲"]="qiāo", ["橇"]="qiāo", ["硗"]="qiāo", ["碻"]="qiāo", ["磽"]="qiāo", ["缲"]="qiāo", ["趬"]="qiāo", ["跷"]="qiāo", ["鄡"]="qiāo", ["鍬"]="qiāo", ["鐰"]="qiāo", ["锹"]="qiāo", ["乔"]="qiáo", ["侨"]="qiáo", ["峤"]="qiáo", ["憔"]="qiáo", ["桥"]="qiáo", ["樵"]="qiáo", ["睄"]="qiáo", ["瞧"]="qiáo", ["硚"]="qiáo", ["礄"]="qiáo", ["荍"]="qiáo", ["荞"]="qiáo", ["菬"]="qiáo", ["藮"]="qiáo", ["谯"]="qiáo", ["鞒"]="qiáo", ["巧"]="qiǎo", ["愀"]="qiǎo", ["俏"]="qiào", ["峭"]="qiào", ["撬"]="qiào", ["窍"]="qiào", ["竅"]="qiào", ["翘"]="qiào", ["翹"]="qiào", ["诮"]="qiào", ["踃"]="qiào", ["陗"]="qiào", ["鞘"]="qiào", ["聺"]="qié", ["茄"]="qié", ["且"]="qiě", ["切"]="qiè", ["妾"]="qiè", ["怯"]="qiè", ["惬"]="qiè", ["挈"]="qiè", ["稧"]="qiè", ["窃"]="qiè", ["箧"]="qiè", ["詧"]="qiè", ["趄"]="qiè", ["踥"]="qiè", ["郄"]="qiè", ["鍥"]="qiè", ["鐑"]="qiè", ["锲"]="qiè", ["亲"]="qīn", ["侵"]="qīn", ["嵚"]="qīn", ["綅"]="qīn", ["菳"]="qīn", ["衾"]="qīn", ["親"]="qīn", ["钦"]="qīn", ["駸"]="qīn", ["骎"]="qīn", ["鮼"]="qīn", ["勤"]="qín", ["嗪"]="qín", ["噙"]="qín", ["慬"]="qín", ["擒"]="qín", ["檎"]="qín", ["琴"]="qín", ["矝"]="qín", ["禽"]="qín", ["秦"]="qín", ["芩"]="qín", ["芹"]="qín", ["菦"]="qín", ["螓"]="qín", ["蠄"]="qín", ["鈂"]="qín", ["鈙"]="qín", ["寝"]="qǐn", ["笉"]="qǐn", ["锓"]="qǐn", ["吣"]="qìn", ["揿"]="qìn", ["沁"]="qìn", ["菣"]="qìn", ["倾"]="qīng", ["卿"]="qīng", ["圊"]="qīng", ["氢"]="qīng", ["清"]="qīng", ["蜻"]="qīng", ["輕"]="qīng", ["轻"]="qīng", ["青"]="qīng", ["鯖"]="qīng", ["鲭"]="qīng", ["勍"]="qíng", ["情"]="qíng", ["擎"]="qíng", ["晴"]="qíng", ["檠"]="qíng", ["氰"]="qíng", ["黥"]="qíng", ["庼"]="qǐng", ["苘"]="qǐng", ["請"]="qǐng", ["謦"]="qǐng", ["请"]="qǐng", ["頃"]="qǐng", ["顷"]="qǐng", ["庆"]="qìng", ["碃"]="qìng", ["磬"]="qìng", ["箐"]="qìng", ["罄"]="qìng", ["䓖"]="qióng", ["琼"]="qióng", ["睘"]="qióng", ["穷"]="qióng", ["穹"]="qióng", ["窮"]="qióng", ["筇"]="qióng", ["茕"]="qióng", ["藑"]="qióng", ["藭"]="qióng", ["蛩"]="qióng", ["蛬"]="qióng", ["赹"]="qióng", ["跫"]="qióng", ["邛"]="qióng", ["銎"]="qióng", ["丘"]="qiū", ["楸"]="qiū", ["湫"]="qiū", ["秋"]="qiū", ["秌"]="qiū", ["穐"]="qiū", ["蚯"]="qiū", ["趥"]="qiū", ["邱"]="qiū", ["鞦"]="qiū", ["鞧"]="qiū", ["鰌"]="qiū", ["鳅"]="qiū", ["鹙"]="qiū", ["龝"]="qiū", ["俅"]="qiú", ["囚"]="qiú", ["巯"]="qiú", ["求"]="qiú", ["泅"]="qiú", ["犰"]="qiú", ["球"]="qiú", ["璆"]="qiú", ["絿"]="qiú", ["肍"]="qiú", ["虬"]="qiú", ["虯"]="qiú", ["蛷"]="qiú", ["蝤"]="qiú", ["裘"]="qiú", ["觓"]="qiú", ["訅"]="qiú", ["赇"]="qiú", ["逑"]="qiú", ["遒"]="qiú", ["酋"]="qiú", ["銶"]="qiú", ["鰽"]="qiú", ["鼽"]="qiú", ["𨱇"]="qiú", ["糗"]="qiǔ", ["㭕"]="qū", ["䓛"]="qū", ["佉"]="qū", ["区"]="qū", ["坥"]="qū", ["屈"]="qū", ["岖"]="qū", ["曲"]="qū", ["祛"]="qū", ["胠"]="qū", ["蛆"]="qū", ["蛐"]="qū", ["袪"]="qū", ["诎"]="qū", ["趋"]="qū", ["趨"]="qū", ["躯"]="qū", ["軀"]="qū", ["驅"]="qū", ["驱"]="qū", ["鰸"]="qū", ["麯"]="qū", ["麴"]="qū", ["麹"]="qū", ["黢"]="qū", ["𪨰"]="qū", ["佢"]="qú", ["劬"]="qú", ["朐"]="qú", ["氍"]="qú", ["渠"]="qú", ["灈"]="qú", ["璩"]="qú", ["癯"]="qú", ["瞿"]="qú", ["磲"]="qú", ["胊"]="qú", ["臒"]="qú", ["臞"]="qú", ["菃"]="qú", ["葋"]="qú", ["蕖"]="qú", ["蘧"]="qú", ["蠷"]="qú", ["蠼"]="qú", ["衢"]="qú", ["跼"]="qú", ["鸲"]="qú", ["鼩"]="qú", ["取"]="qǔ", ["娶"]="qǔ", ["竘"]="qǔ", ["齲"]="qǔ", ["龋"]="qǔ", ["去"]="qù", ["觑"]="qù", ["趣"]="qù", ["閴"]="qù", ["闃"]="qù", ["阒"]="qù", ["圈"]="quān", ["悛"]="quān", ["棬"]="quān", ["腃"]="quān", ["𨟠"]="quān", ["佺"]="quán", ["全"]="quán", ["婘"]="quán", ["拳"]="quán", ["权"]="quán", ["泉"]="quán", ["瑔"]="quán", ["痊"]="quán", ["硂"]="quán", ["筌"]="quán", ["絟"]="quán", ["荃"]="quán", ["葲"]="quán", ["蜷"]="quán", ["詮"]="quán", ["譔"]="quán", ["诠"]="quán", ["辁"]="quán", ["醛"]="quán", ["銓"]="quán", ["铨"]="quán", ["顴"]="quán", ["颧"]="quán", ["鬈"]="quán", ["鰁"]="quán", ["鳈"]="quán", ["犬"]="quǎn", ["畎"]="quǎn", ["绻"]="quǎn", ["券"]="quàn", ["劝"]="quàn", ["炔"]="quē", ["缺"]="quē", ["瘸"]="qué", ["却"]="què", ["埆"]="què", ["悫"]="què", ["榷"]="què", ["确"]="què", ["碏"]="què", ["確"]="què", ["礐"]="què", ["闕"]="què", ["阕"]="què", ["阙"]="què", ["雀"]="què", ["鵲"]="què", ["鹊"]="què", ["𬒈"]="què", ["囷"]="qūn", ["踆"]="qūn", ["逡"]="qūn", ["群"]="qún", ["裙"]="qún", ["然"]="rán", ["燃"]="rán", ["肰"]="rán", ["蚺"]="rán", ["袇"]="rán", ["髥"]="rán", ["髯"]="rán", ["䎃"]="rǎn", ["冉"]="rǎn", ["染"]="rǎn", ["苒"]="rǎn", ["儴"]="ráng", ["瓤"]="ráng", ["禳"]="ráng", ["穰"]="ráng", ["嚷"]="rǎng", ["壤"]="rǎng", ["攘"]="rǎng", ["讓"]="ràng", ["让"]="ràng", ["娆"]="ráo", ["桡"]="ráo", ["荛"]="ráo", ["蕘"]="ráo", ["饒"]="ráo", ["饶"]="ráo", ["扰"]="rǎo", ["遶"]="rǎo", ["繞"]="rào", ["绕"]="rào", ["喏"]="rě", ["惹"]="rě", ["热"]="rè", ["人"]="rén", ["仁"]="rén", ["壬"]="rén", ["魜"]="rén", ["鵀"]="rén", ["忍"]="rěn", ["秹"]="rěn", ["稔"]="rěn", ["荏"]="rěn", ["仞"]="rèn", ["任"]="rèn", ["刃"]="rèn", ["妊"]="rèn", ["恁"]="rèn", ["紝"]="rèn", ["絍"]="rèn", ["纫"]="rèn", ["纴"]="rèn", ["衽"]="rèn", ["袵"]="rèn", ["訒"]="rèn", ["認"]="rèn", ["认"]="rèn", ["讱"]="rèn", ["軔"]="rèn", ["轫"]="rèn", ["靭"]="rèn", ["靱"]="rèn", ["韌"]="rèn", ["韧"]="rèn", ["飪"]="rèn", ["餁"]="rèn", ["饪"]="rèn", ["扔"]="rēng", ["仍"]="réng", ["礽"]="réng", ["陾"]="réng", ["日"]="rì", ["鈤"]="rì", ["驲"]="rì", ["容"]="róng", ["嵘"]="róng", ["戎"]="róng", ["榕"]="róng", ["溶"]="róng", ["熔"]="róng", ["狨"]="róng", ["瑢"]="róng", ["絨"]="róng", ["绒"]="róng", ["肜"]="róng", ["茸"]="róng", ["荣"]="róng", ["蓉"]="róng", ["蝾"]="róng", ["融"]="róng", ["褣"]="róng", ["鎔"]="róng", ["镕"]="róng", ["駥"]="róng", ["冗"]="rǒng", ["揉"]="róu", ["柔"]="róu", ["糅"]="róu", ["腬"]="róu", ["葇"]="róu", ["蹂"]="róu", ["鞣"]="róu", ["𫐓"]="róu", ["肉"]="ròu", ["儒"]="rú", ["嚅"]="rú", ["如"]="rú", ["嬬"]="rú", ["孺"]="rú", ["濡"]="rú", ["茹"]="rú", ["薷"]="rú", ["蠕"]="rú", ["袽"]="rú", ["襦"]="rú", ["铷"]="rú", ["顬"]="rú", ["颥"]="rú", ["鴽"]="rú", ["乳"]="rǔ", ["汝"]="rǔ", ["辱"]="rǔ", ["入"]="rù", ["洳"]="rù", ["溽"]="rù", ["缛"]="rù", ["蓐"]="rù", ["褥"]="rù", ["込"]="rù", ["鳰"]="rù", ["堧"]="ruán", ["媆"]="ruǎn", ["朊"]="ruǎn", ["瓀"]="ruǎn", ["緛"]="ruǎn", ["軟"]="ruǎn", ["软"]="ruǎn", ["阮"]="ruǎn", ["緌"]="ruí", ["蕤"]="ruí", ["蕊"]="ruǐ", ["蘂"]="ruǐ", ["枘"]="ruì", ["汭"]="ruì", ["瑞"]="ruì", ["睿"]="ruì", ["芮"]="ruì", ["蚋"]="ruì", ["銳"]="ruì", ["鋭"]="ruì", ["锐"]="ruì", ["润"]="rùn", ["閏"]="rùn", ["闰"]="rùn", ["偌"]="ruò", ["婼"]="ruò", ["弱"]="ruò", ["爇"]="ruò", ["箬"]="ruò", ["若"]="ruò", ["蒻"]="ruò", ["鄀"]="ruò", ["鶸"]="ruò", ["仨"]="sā", ["撒"]="sǎ", ["洒"]="sǎ", ["潵"]="sǎ", ["靸"]="sǎ", ["卅"]="sà", ["脎"]="sà", ["萨"]="sà", ["飒"]="sà", ["噻"]="sāi", ["腮"]="sāi", ["鳃"]="sāi", ["塞"]="sài", ["簺"]="sài", ["赛"]="sài", ["三"]="sān", ["叁"]="sān", ["彡"]="sān", ["毵"]="sān", ["糂"]="sān", ["鬖"]="sān", ["伞"]="sǎn", ["糁"]="sǎn", ["繖"]="sǎn", ["馓"]="sǎn", ["散"]="sàn", ["桑"]="sāng", ["嗓"]="sǎng", ["搡"]="sǎng", ["磉"]="sǎng", ["颡"]="sǎng", ["丧"]="sàng", ["搔"]="sāo", ["溞"]="sāo", ["缫"]="sāo", ["騷"]="sāo", ["骚"]="sāo", ["鰠"]="sāo", ["鳋"]="sāo", ["嫂"]="sǎo", ["扫"]="sǎo", ["埽"]="sào", ["瘙"]="sào", ["矂"]="sào", ["臊"]="sào", ["髞"]="sào", ["啬"]="sè", ["涩"]="sè", ["瑟"]="sè", ["璱"]="sè", ["穑"]="sè", ["穯"]="sè", ["繬"]="sè", ["色"]="sè", ["譅"]="sè", ["銫"]="sè", ["鎍"]="sè", ["铯"]="sè", ["森"]="sēn", ["僧"]="sēng", ["鬙"]="sēng", ["杀"]="shā", ["沙"]="shā", ["痧"]="shā", ["砂"]="shā", ["紗"]="shā", ["繺"]="shā", ["纱"]="shā", ["莎"]="shā", ["蔱"]="shā", ["裟"]="shā", ["铩"]="shā", ["閷"]="shā", ["鯊"]="shā", ["鯋"]="shā", ["鲨"]="shā", ["啥"]="shá", ["傻"]="shǎ", ["繌"]="shǎ", ["厦"]="shà", ["唼"]="shà", ["嗄"]="shà", ["歃"]="shà", ["煞"]="shà", ["翜"]="shà", ["翣"]="shà", ["閯"]="shà", ["霎"]="shà", ["筛"]="shāi", ["篩"]="shāi", ["酾"]="shāi", ["晒"]="shài", ["删"]="shān", ["姗"]="shān", ["山"]="shān", ["杉"]="shān", ["潸"]="shān", ["烻"]="shān", ["煽"]="shān", ["珊"]="shān", ["羴"]="shān", ["羶"]="shān", ["膻"]="shān", ["舢"]="shān", ["芟"]="shān", ["苫"]="shān", ["衫"]="shān", ["跚"]="shān", ["釤"]="shān", ["钐"]="shān", ["鯅"]="shān", ["晱"]="shǎn", ["睒"]="shǎn", ["閃"]="shǎn", ["闪"]="shǎn", ["陕"]="shǎn", ["陝"]="shǎn", ["善"]="shàn", ["墡"]="shàn", ["嬗"]="shàn", ["嶦"]="shàn", ["扇"]="shàn", ["擅"]="shàn", ["汕"]="shàn", ["疝"]="shàn", ["笧"]="shàn", ["繕"]="shàn", ["缮"]="shàn", ["膳"]="shàn", ["蟮"]="shàn", ["訕"]="shàn", ["讪"]="shàn", ["赡"]="shàn", ["鄯"]="shàn", ["骟"]="shàn", ["鳝"]="shàn", ["𫮃"]="shàn", ["伤"]="shāng", ["商"]="shāng", ["墒"]="shāng", ["殇"]="shāng", ["熵"]="shāng", ["觞"]="shāng", ["謪"]="shāng", ["垧"]="shǎng", ["晌"]="shǎng", ["賞"]="shǎng", ["赏"]="shǎng", ["上"]="shàng", ["尚"]="shàng", ["绱"]="shàng", ["裳"]="shang", ["捎"]="shāo", ["梢"]="shāo", ["烧"]="shāo", ["稍"]="shāo", ["筲"]="shāo", ["艄"]="shāo", ["勺"]="sháo", ["柖"]="sháo", ["玿"]="sháo", ["芍"]="sháo", ["韶"]="sháo", ["劭"]="shào", ["哨"]="shào", ["少"]="shào", ["潲"]="shào", ["紹"]="shào", ["绍"]="shào", ["袑"]="shào", ["邵"]="shào", ["奢"]="shē", ["猞"]="shē", ["畲"]="shē", ["赊"]="shē", ["輋"]="shē", ["𪨶"]="shē", ["佘"]="shé", ["揲"]="shé", ["舌"]="shé", ["蛇"]="shé", ["蛥"]="shé", ["捨"]="shě", ["厍"]="shè", ["射"]="shè", ["慑"]="shè", ["摄"]="shè", ["涉"]="shè", ["滠"]="shè", ["社"]="shè", ["舍"]="shè", ["蔎"]="shè", ["設"]="shè", ["设"]="shè", ["赦"]="shè", ["騇"]="shè", ["麝"]="shè", ["誰"]="shéi", ["谁"]="shéi", ["伸"]="shēn", ["侁"]="shēn", ["呻"]="shēn", ["娠"]="shēn", ["屾"]="shēn", ["深"]="shēn", ["燊"]="shēn", ["珅"]="shēn", ["甡"]="shēn", ["申"]="shēn", ["砷"]="shēn", ["籶"]="shēn", ["紳"]="shēn", ["绅"]="shēn", ["莘"]="shēn", ["葠"]="shēn", ["蓡"]="shēn", ["蔘"]="shēn", ["詵"]="shēn", ["诜"]="shēn", ["身"]="shēn", ["鯓"]="shēn", ["鯵"]="shēn", ["鲹"]="shēn", ["𬳽"]="shēn", ["什"]="shén", ["神"]="shén", ["鰰"]="shén", ["𬬹"]="shén", ["哂"]="shěn", ["婶"]="shěn", ["审"]="shěn", ["沈"]="shěn", ["渖"]="shěn", ["瞫"]="shěn", ["矧"]="shěn", ["谂"]="shěn", ["谉"]="shěn", ["邥"]="shěn", ["魫"]="shěn", ["慎"]="shèn", ["椹"]="shèn", ["渗"]="shèn", ["甚"]="shèn", ["瘆"]="shèn", ["眘"]="shèn", ["祳"]="shèn", ["肾"]="shèn", ["胂"]="shèn", ["腎"]="shèn", ["葚"]="shèn", ["蜃"]="shèn", ["升"]="shēng", ["声"]="shēng", ["昇"]="shēng", ["牲"]="shēng", ["生"]="shēng", ["甥"]="shēng", ["笙"]="shēng", ["聲"]="shēng", ["苼"]="shēng", ["鍟"]="shēng", ["陞"]="shēng", ["鼪"]="shēng", ["繩"]="shéng", ["绳"]="shéng", ["眚"]="shěng", ["剩"]="shèng", ["圣"]="shèng", ["嵊"]="shèng", ["晟"]="shèng", ["盛"]="shèng", ["聖"]="shèng", ["胜"]="shèng", ["蕂"]="shèng", ["賸"]="shèng", ["䴓"]="shī", ["失"]="shī", ["尸"]="shī", ["师"]="shī", ["施"]="shī", ["浉"]="shī", ["湿"]="shī", ["狮"]="shī", ["絁"]="shī", ["葹"]="shī", ["蓍"]="shī", ["虱"]="shī", ["蝨"]="shī", ["詩"]="shī", ["诗"]="shī", ["邿"]="shī", ["鍦"]="shī", ["魳"]="shī", ["鰤"]="shī", ["鲺"]="shī", ["鳲"]="shī", ["鳾"]="shī", ["鶳"]="shī", ["鸤"]="shī", ["𫚕"]="shī", ["十"]="shí", ["埘"]="shí", ["实"]="shí", ["拾"]="shí", ["时"]="shí", ["湜"]="shí", ["炻"]="shí", ["石"]="shí", ["祏"]="shí", ["莳"]="shí", ["蚀"]="shí", ["蝕"]="shí", ["識"]="shí", ["识"]="shí", ["辻"]="shí", ["遈"]="shí", ["鉐"]="shí", ["鉽"]="shí", ["食"]="shí", ["鲥"]="shí", ["鼫"]="shí", ["使"]="shǐ", ["史"]="shǐ", ["始"]="shǐ", ["屎"]="shǐ", ["矢"]="shǐ", ["豕"]="shǐ", ["鉂"]="shǐ", ["駛"]="shǐ", ["驶"]="shǐ", ["䏡"]="shì", ["世"]="shì", ["事"]="shì", ["仕"]="shì", ["侍"]="shì", ["势"]="shì", ["嗜"]="shì", ["噬"]="shì", ["士"]="shì", ["奭"]="shì", ["媞"]="shì", ["室"]="shì", ["市"]="shì", ["式"]="shì", ["弑"]="shì", ["恃"]="shì", ["拭"]="shì", ["是"]="shì", ["柿"]="shì", ["栻"]="shì", ["氏"]="shì", ["眎"]="shì", ["示"]="shì", ["筮"]="shì", ["籂"]="shì", ["舐"]="shì", ["螫"]="shì", ["襫"]="shì", ["視"]="shì", ["视"]="shì", ["試"]="shì", ["誓"]="shì", ["諡"]="shì", ["謚"]="shì", ["试"]="shì", ["谥"]="shì", ["贳"]="shì", ["轼"]="shì", ["适"]="shì", ["逝"]="shì", ["適"]="shì", ["释"]="shì", ["釋"]="shì", ["鈰"]="shì", ["鉃"]="shì", ["铈"]="shì", ["飾"]="shì", ["饰"]="shì", ["𬤊"]="shì", ["收"]="shōu", ["守"]="shǒu", ["手"]="shǒu", ["艏"]="shǒu", ["首"]="shǒu", ["兽"]="shòu", ["受"]="shòu", ["售"]="shòu", ["寿"]="shòu", ["授"]="shòu", ["狩"]="shòu", ["瘦"]="shòu", ["绶"]="shòu", ["膄"]="shòu", ["醻"]="shòu", ["鏉"]="shòu", ["书"]="shū", ["倏"]="shū", ["叔"]="shū", ["姝"]="shū", ["抒"]="shū", ["摅"]="shū", ["枢"]="shū", ["梳"]="shū", ["殊"]="shū", ["殳"]="shū", ["毹"]="shū", ["淑"]="shū", ["疏"]="shū", ["紓"]="shū", ["綀"]="shū", ["纾"]="shū", ["舒"]="shū", ["菽"]="shū", ["蔬"]="shū", ["輸"]="shū", ["输"]="shū", ["鄃"]="shū", ["陎"]="shū", ["鵨"]="shū", ["塾"]="shú", ["婌"]="shú", ["孰"]="shú", ["熟"]="shú", ["秫"]="shú", ["赎"]="shú", ["属"]="shǔ", ["暑"]="shǔ", ["曙"]="shǔ", ["籔"]="shǔ", ["署"]="shǔ", ["薯"]="shǔ", ["蜀"]="shǔ", ["黍"]="shǔ", ["鼠"]="shǔ", ["墅"]="shù", ["庶"]="shù", ["恕"]="shù", ["戍"]="shù", ["数"]="shù", ["术"]="shù", ["束"]="shù", ["树"]="shù", ["沭"]="shù", ["漱"]="shù", ["澍"]="shù", ["竖"]="shù", ["腧"]="shù", ["蒁"]="shù", ["術"]="shù", ["裋"]="shù", ["豎"]="shù", ["述"]="shù", ["鶐"]="shù", ["𬬸"]="shù", ["刷"]="shuā", ["唰"]="shuā", ["耍"]="shuǎ", ["摔"]="shuāi", ["缞"]="shuāi", ["衰"]="shuāi", ["甩"]="shuǎi", ["帅"]="shuài", ["蟀"]="shuài", ["拴"]="shuān", ["栓"]="shuān", ["闩"]="shuān", ["涮"]="shuàn", ["腨"]="shuàn", ["双"]="shuāng", ["孀"]="shuāng", ["礵"]="shuāng", ["艭"]="shuāng", ["雙"]="shuāng", ["霜"]="shuāng", ["騻"]="shuāng", ["驦"]="shuāng", ["骦"]="shuāng", ["鸘"]="shuāng", ["鹴"]="shuāng", ["爽"]="shuǎng", ["脽"]="shuí", ["水"]="shuǐ", ["帨"]="shuì", ["睡"]="shuì", ["稅"]="shuì", ["税"]="shuì", ["吮"]="shǔn", ["楯"]="shǔn", ["瞬"]="shùn", ["舜"]="shùn", ["蕣"]="shùn", ["順"]="shùn", ["顺"]="shùn", ["說"]="shuō", ["説"]="shuō", ["说"]="shuō", ["妁"]="shuò", ["搠"]="shuò", ["朔"]="shuò", ["槊"]="shuò", ["烁"]="shuò", ["矟"]="shuò", ["硕"]="shuò", ["碩"]="shuò", ["蒴"]="shuò", ["铄"]="shuò", ["㟃"]="sī", ["丝"]="sī", ["偲"]="sī", ["凘"]="sī", ["厮"]="sī", ["司"]="sī", ["咝"]="sī", ["嘶"]="sī", ["思"]="sī", ["撕"]="sī", ["斯"]="sī", ["楒"]="sī", ["澌"]="sī", ["禗"]="sī", ["禠"]="sī", ["私"]="sī", ["絲"]="sī", ["緦"]="sī", ["缌"]="sī", ["蛳"]="sī", ["锶"]="sī", ["飔"]="sī", ["鷥"]="sī", ["鸶"]="sī", ["鼶"]="sī", ["死"]="sǐ", ["伺"]="sì", ["似"]="sì", ["俟"]="sì", ["兕"]="sì", ["嗣"]="sì", ["四"]="sì", ["姒"]="sì", ["寺"]="sì", ["巳"]="sì", ["汜"]="sì", ["泗"]="sì", ["涘"]="sì", ["祀"]="sì", ["禩"]="sì", ["竢"]="sì", ["笥"]="sì", ["耜"]="sì", ["肆"]="sì", ["蕼"]="sì", ["覗"]="sì", ["飼"]="sì", ["饲"]="sì", ["驷"]="sì", ["凇"]="sōng", ["娀"]="sōng", ["崧"]="sōng", ["嵩"]="sōng", ["忪"]="sōng", ["松"]="sōng", ["淞"]="sōng", ["菘"]="sōng", ["鬆"]="sōng", ["㧐"]="sǒng", ["怂"]="sǒng", ["悚"]="sǒng", ["竦"]="sǒng", ["耸"]="sǒng", ["駷"]="sǒng", ["宋"]="sòng", ["訟"]="sòng", ["讼"]="sòng", ["诵"]="sòng", ["送"]="sòng", ["頌"]="sòng", ["颂"]="sòng", ["嗖"]="sōu", ["廋"]="sōu", ["搜"]="sōu", ["溲"]="sōu", ["艘"]="sōu", ["蒐"]="sōu", ["蓃"]="sōu", ["螋"]="sōu", ["鎪"]="sōu", ["锼"]="sōu", ["颼"]="sōu", ["飕"]="sōu", ["馊"]="sōu", ["叟"]="sǒu", ["嗾"]="sǒu", ["擞"]="sǒu", ["瞍"]="sǒu", ["薮"]="sǒu", ["嗽"]="sòu", ["甦"]="sū", ["稣"]="sū", ["窣"]="sū", ["苏"]="sū", ["蘇"]="sū", ["蘓"]="sū", ["酥"]="sū", ["鯂"]="sū", ["俗"]="sú", ["傃"]="sù", ["僳"]="sù", ["嗉"]="sù", ["塑"]="sù", ["夙"]="sù", ["宿"]="sù", ["愫"]="sù", ["涑"]="sù", ["溯"]="sù", ["簌"]="sù", ["粛"]="sù", ["粟"]="sù", ["素"]="sù", ["肃"]="sù", ["肅"]="sù", ["膆"]="sù", ["蔌"]="sù", ["藗"]="sù", ["觫"]="sù", ["訴"]="sù", ["诉"]="sù", ["谡"]="sù", ["蹜"]="sù", ["速"]="sù", ["遡"]="sù", ["餗"]="sù", ["驌"]="sù", ["骕"]="sù", ["鷫"]="sù", ["鹔"]="sù", ["𫗧"]="sù", ["狻"]="suān", ["酸"]="suān", ["祘"]="suàn", ["笇"]="suàn", ["筭"]="suàn", ["算"]="suàn", ["蒜"]="suàn", ["濉"]="suī", ["眭"]="suī", ["睢"]="suī", ["簑"]="suī", ["荽"]="suī", ["虽"]="suī", ["雖"]="suī", ["鞖"]="suī", ["綏"]="suí", ["绥"]="suí", ["隋"]="suí", ["随"]="suí", ["隨"]="suí", ["髓"]="suǐ", ["岁"]="suì", ["旞"]="suì", ["燧"]="suì", ["璲"]="suì", ["碎"]="suì", ["祟"]="suì", ["禭"]="suì", ["穗"]="suì", ["穟"]="suì", ["繐"]="suì", ["繸"]="suì", ["襚"]="suì", ["譢"]="suì", ["谇"]="suì", ["遂"]="suì", ["邃"]="suì", ["鐩"]="suì", ["隧"]="suì", ["𫟦"]="suì", ["𬭼"]="suì", ["孙"]="sūn", ["狲"]="sūn", ["荪"]="sūn", ["蕵"]="sūn", ["飧"]="sūn", ["损"]="sǔn", ["榫"]="sǔn", ["笋"]="sǔn", ["筍"]="sǔn", ["隼"]="sǔn", ["唆"]="suō", ["嗍"]="suō", ["嗦"]="suō", ["娑"]="suō", ["挲"]="suō", ["桫"]="suō", ["梭"]="suō", ["睃"]="suō", ["縮"]="suō", ["缩"]="suō", ["羧"]="suō", ["蓑"]="suō", ["髿"]="suō", ["鮻"]="suō", ["唢"]="suǒ", ["所"]="suǒ", ["溹"]="suǒ", ["琐"]="suǒ", ["索"]="suǒ", ["鎖"]="suǒ", ["鏁"]="suǒ", ["锁"]="suǒ", ["逤"]="suò", ["他"]="tā", ["塌"]="tā", ["她"]="tā", ["它"]="tā", ["溻"]="tā", ["祂"]="tā", ["褟"]="tā", ["趿"]="tā", ["遢"]="tā", ["铊"]="tā", ["塔"]="tǎ", ["獭"]="tǎ", ["鰨"]="tǎ", ["鳎"]="tǎ", ["嗒"]="tà", ["挞"]="tà", ["榻"]="tà", ["沓"]="tà", ["禢"]="tà", ["誻"]="tà", ["踏"]="tà", ["蹋"]="tà", ["蹹"]="tà", ["遝"]="tà", ["闒"]="tà", ["闼"]="tà", ["阘"]="tà", ["鞳"]="tà", ["胎"]="tāi", ["台"]="tái", ["抬"]="tái", ["炱"]="tái", ["臺"]="tái", ["苔"]="tái", ["菭"]="tái", ["薹"]="tái", ["跆"]="tái", ["邰"]="tái", ["颱"]="tái", ["骀"]="tái", ["鲐"]="tái", ["太"]="tài", ["态"]="tài", ["汰"]="tài", ["泰"]="tài", ["粏"]="tài", ["肽"]="tài", ["舦"]="tài", ["酞"]="tài", ["鈦"]="tài", ["钛"]="tài", ["坍"]="tān", ["摊"]="tān", ["滩"]="tān", ["瘫"]="tān", ["貪"]="tān", ["贪"]="tān", ["倓"]="tán", ["坛"]="tán", ["惔"]="tán", ["昙"]="tán", ["榃"]="tán", ["檀"]="tán", ["潭"]="tán", ["痰"]="tán", ["罈"]="tán", ["藫"]="tán", ["覃"]="tán", ["談"]="tán", ["谈"]="tán", ["谭"]="tán", ["郯"]="tán", ["醰"]="tán", ["锬"]="tán", ["镡"]="tán", ["坦"]="tǎn", ["忐"]="tǎn", ["毯"]="tǎn", ["璮"]="tǎn", ["菼"]="tǎn", ["袒"]="tǎn", ["襢"]="tǎn", ["钽"]="tǎn", ["叹"]="tàn", ["探"]="tàn", ["炭"]="tàn", ["碳"]="tàn", ["嘡"]="tāng", ["汤"]="tāng", ["羰"]="tāng", ["耥"]="tāng", ["蹚"]="tāng", ["铴"]="tāng", ["镗"]="tāng", ["闛"]="tāng", ["鞺"]="tāng", ["鼞"]="tāng", ["䣘"]="táng", ["唐"]="táng", ["堂"]="táng", ["塘"]="táng", ["搪"]="táng", ["棠"]="táng", ["樘"]="táng", ["溏"]="táng", ["瑭"]="táng", ["磄"]="táng", ["糖"]="táng", ["膛"]="táng", ["螗"]="táng", ["螳"]="táng", ["鄌"]="táng", ["醣"]="táng", ["倘"]="tǎng", ["傥"]="tǎng", ["埫"]="tǎng", ["帑"]="tǎng", ["淌"]="tǎng", ["矘"]="tǎng", ["躺"]="tǎng", ["鎲"]="tǎng", ["镋"]="tǎng", ["烫"]="tàng", ["趟"]="tàng", ["弢"]="tāo", ["慆"]="tāo", ["掏"]="tāo", ["涛"]="tāo", ["滔"]="tāo", ["焘"]="tāo", ["絛"]="tāo", ["縚"]="tāo", ["縧"]="tāo", ["绦"]="tāo", ["謟"]="tāo", ["韬"]="tāo", ["飸"]="tāo", ["饕"]="tāo", ["啕"]="táo", ["桃"]="táo", ["梼"]="táo", ["洮"]="táo", ["淘"]="táo", ["祹"]="táo", ["绹"]="táo", ["萄"]="táo", ["蜪"]="táo", ["迯"]="táo", ["逃"]="táo", ["醄"]="táo", ["鋾"]="táo", ["陶"]="táo", ["駣"]="táo", ["騊"]="táo", ["鼗"]="táo", ["𫘦"]="táo", ["討"]="tǎo", ["讨"]="tǎo", ["套"]="tào", ["忑"]="tè", ["忒"]="tè", ["慝"]="tè", ["特"]="tè", ["脦"]="tè", ["螣"]="tè", ["貣"]="tè", ["铽"]="tè", ["熥"]="tēng", ["膯"]="tēng", ["䲢"]="téng", ["滕"]="téng", ["疼"]="téng", ["籐"]="téng", ["縢"]="téng", ["腾"]="téng", ["藤"]="téng", ["誊"]="téng", ["謄"]="téng", ["邆"]="téng", ["騰"]="téng", ["鰧"]="téng", ["䏲"]="tī", ["䴘"]="tī", ["剔"]="tī", ["擿"]="tī", ["梯"]="tī", ["踢"]="tī", ["軆"]="tī", ["锑"]="tī", ["鷉"]="tī", ["啼"]="tí", ["提"]="tí", ["瑅"]="tí", ["磃"]="tí", ["穉"]="tí", ["綈"]="tí", ["緹"]="tí", ["绨"]="tí", ["缇"]="tí", ["荑"]="tí", ["蕛"]="tí", ["虒"]="tí", ["趧"]="tí", ["蹄"]="tí", ["遆"]="tí", ["醍"]="tí", ["題"]="tí", ["题"]="tí", ["騠"]="tí", ["鳀"]="tí", ["鶗"]="tí", ["鹈"]="tí", ["𫘨"]="tí", ["体"]="tǐ", ["體"]="tǐ", ["倜"]="tì", ["剃"]="tì", ["嚏"]="tì", ["屉"]="tì", ["悌"]="tì", ["惕"]="tì", ["替"]="tì", ["涕"]="tì", ["薙"]="tì", ["裼"]="tì", ["逖"]="tì", ["逷"]="tì", ["鬀"]="tì", ["天"]="tiān", ["添"]="tiān", ["黇"]="tiān", ["填"]="tián", ["恬"]="tián", ["沺"]="tián", ["湉"]="tián", ["甜"]="tián", ["田"]="tián", ["畋"]="tián", ["盷"]="tián", ["瞋"]="tián", ["碵"]="tián", ["阗"]="tián", ["餂"]="tián", ["鴫"]="tián", ["鿬"]="tián", ["忝"]="tiǎn", ["晪"]="tiǎn", ["殄"]="tiǎn", ["淟"]="tiǎn", ["紾"]="tiǎn", ["腆"]="tiǎn", ["舔"]="tiǎn", ["覥"]="tiǎn", ["觍"]="tiǎn", ["铦"]="tiǎn", ["掭"]="tiàn", ["瑱"]="tiàn", ["佻"]="tiāo", ["祧"]="tiāo", ["条"]="tiáo", ["笤"]="tiáo", ["苕"]="tiáo", ["蓚"]="tiáo", ["蓨"]="tiáo", ["蜩"]="tiáo", ["迢"]="tiáo", ["鞗"]="tiáo", ["髫"]="tiáo", ["鯈"]="tiáo", ["鰷"]="tiáo", ["鲦"]="tiáo", ["龆"]="tiáo", ["嬥"]="tiǎo", ["挑"]="tiǎo", ["朓"]="tiǎo", ["窕"]="tiǎo", ["眺"]="tiào", ["粜"]="tiào", ["跳"]="tiào", ["萜"]="tiē", ["貼"]="tiē", ["贴"]="tiē", ["帖"]="tiě", ["鉄"]="tiě", ["鐵"]="tiě", ["铁"]="tiě", ["驖"]="tiě", ["餮"]="tiè", ["厅"]="tīng", ["听"]="tīng", ["桯"]="tīng", ["汀"]="tīng", ["烃"]="tīng", ["綎"]="tīng", ["聴"]="tīng", ["聽"]="tīng", ["鞓"]="tīng", ["𬘩"]="tīng", ["䗴"]="tíng", ["亭"]="tíng", ["停"]="tíng", ["婷"]="tíng", ["庭"]="tíng", ["廷"]="tíng", ["渟"]="tíng", ["莛"]="tíng", ["葶"]="tíng", ["蜓"]="tíng", ["閮"]="tíng", ["霆"]="tíng", ["鼮"]="tíng", ["侹"]="tǐng", ["圢"]="tǐng", ["挺"]="tǐng", ["梃"]="tǐng", ["烶"]="tǐng", ["珽"]="tǐng", ["町"]="tǐng", ["艇"]="tǐng", ["颋"]="tǐng", ["嗵"]="tōng", ["通"]="tōng", ["仝"]="tóng", ["佟"]="tóng", ["僮"]="tóng", ["同"]="tóng", ["哃"]="tóng", ["峂"]="tóng", ["彤"]="tóng", ["曈"]="tóng", ["桐"]="tóng", ["橦"]="tóng", ["潼"]="tóng", ["烔"]="tóng", ["眮"]="tóng", ["瞳"]="tóng", ["砼"]="tóng", ["秱"]="tóng", ["穜"]="tóng", ["童"]="tóng", ["粡"]="tóng", ["茼"]="tóng", ["蚒"]="tóng", ["詷"]="tóng", ["酮"]="tóng", ["銅"]="tóng", ["铜"]="tóng", ["餇"]="tóng", ["鲖"]="tóng", ["𦒍"]="tóng", ["𫍣"]="tóng", ["㛚"]="tǒng", ["捅"]="tǒng", ["桶"]="tǒng", ["筒"]="tǒng", ["統"]="tǒng", ["綂"]="tǒng", ["统"]="tǒng", ["恸"]="tòng", ["痛"]="tòng", ["偷"]="tōu", ["鍮"]="tōu", ["头"]="tóu", ["投"]="tóu", ["緰"]="tóu", ["頭"]="tóu", ["骰"]="tóu", ["紏"]="tǒu", ["钭"]="tǒu", ["飳"]="tǒu", ["透"]="tòu", ["㻬"]="tū", ["凸"]="tū", ["禿"]="tū", ["秃"]="tū", ["突"]="tū", ["葖"]="tū", ["鋵"]="tū", ["图"]="tú", ["屠"]="tú", ["徒"]="tú", ["梌"]="tú", ["涂"]="tú", ["稌"]="tú", ["腯"]="tú", ["荼"]="tú", ["途"]="tú", ["酴"]="tú", ["鍎"]="tú", ["鶟"]="tú", ["鷵"]="tú", ["𬳿"]="tú", ["土"]="tǔ", ["钍"]="tǔ", ["兔"]="tù", ["吐"]="tù", ["堍"]="tù", ["莵"]="tù", ["菟"]="tù", ["湍"]="tuān", ["煓"]="tuān", ["猯"]="tuān", ["貒"]="tuān", ["团"]="tuán", ["抟"]="tuán", ["糰"]="tuán", ["蓴"]="tuán", ["鱄"]="tuán", ["疃"]="tuǎn", ["彖"]="tuàn", ["推"]="tuī", ["蓷"]="tuī", ["藬"]="tuī", ["隤"]="tuí", ["頹"]="tuí", ["頺"]="tuí", ["颓"]="tuí", ["魋"]="tuí", ["𬯎"]="tuí", ["脮"]="tuǐ", ["腿"]="tuǐ", ["蹆"]="tuǐ", ["煺"]="tuì", ["蛻"]="tuì", ["蜕"]="tuì", ["褪"]="tuì", ["退"]="tuì", ["吞"]="tūn", ["暾"]="tūn", ["焞"]="tūn", ["囤"]="tún", ["坉"]="tún", ["屯"]="tún", ["忳"]="tún", ["臀"]="tún", ["臋"]="tún", ["豚"]="tún", ["軘"]="tún", ["飩"]="tún", ["饨"]="tún", ["鲀"]="tún", ["㖔"]="tǔn", ["乇"]="tuō", ["侂"]="tuō", ["圫"]="tuō", ["托"]="tuō", ["拖"]="tuō", ["脫"]="tuō", ["脱"]="tuō", ["袥"]="tuō", ["託"]="tuō", ["讬"]="tuō", ["飥"]="tuō", ["佗"]="tuó", ["坨"]="tuó", ["柁"]="tuó", ["橐"]="tuó", ["沱"]="tuó", ["砣"]="tuó", ["砤"]="tuó", ["袉"]="tuó", ["跎"]="tuó", ["迆"]="tuó", ["酡"]="tuó", ["陀"]="tuó", ["陁"]="tuó", ["駝"]="tuó", ["駞"]="tuó", ["驮"]="tuó", ["驼"]="tuó", ["鮀"]="tuó", ["鱓"]="tuó", ["鸵"]="tuó", ["鼉"]="tuó", ["鼍"]="tuó", ["𬶍"]="tuó", ["妥"]="tuǒ", ["庹"]="tuǒ", ["椭"]="tuǒ", ["軃"]="tuǒ", ["唾"]="tuò", ["拓"]="tuò", ["柝"]="tuò", ["箨"]="tuò", ["籜"]="tuò", ["萚"]="tuò", ["跅"]="tuò", ["娲"]="wā", ["挖"]="wā", ["洼"]="wā", ["畖"]="wā", ["窊"]="wā", ["窪"]="wā", ["蛙"]="wā", ["鼃"]="wā", ["娃"]="wá", ["譁"]="wá", ["佤"]="wǎ", ["瓦"]="wǎ", ["腽"]="wà", ["膃"]="wà", ["袜"]="wà", ["襪"]="wà", ["靺"]="wà", ["韈"]="wà", ["哇"]="wa", ["歪"]="wāi", ["𢱉"]="wǎi", ["𨂿"]="wǎi", ["外"]="wài", ["剜"]="wān", ["塆"]="wān", ["婠"]="wān", ["弯"]="wān", ["湾"]="wān", ["睕"]="wān", ["蜿"]="wān", ["豌"]="wān", ["丸"]="wán", ["完"]="wán", ["烷"]="wán", ["玩"]="wán", ["纨"]="wán", ["芄"]="wán", ["蚖"]="wán", ["貦"]="wán", ["顽"]="wán", ["婉"]="wǎn", ["宛"]="wǎn", ["惋"]="wǎn", ["挽"]="wǎn", ["晚"]="wǎn", ["椀"]="wǎn", ["琬"]="wǎn", ["畹"]="wǎn", ["皖"]="wǎn", ["盌"]="wǎn", ["碗"]="wǎn", ["绾"]="wǎn", ["脘"]="wǎn", ["莞"]="wǎn", ["菀"]="wǎn", ["輓"]="wǎn", ["鍐"]="wǎn", ["万"]="wàn", ["翫"]="wàn", ["脕"]="wàn", ["腕"]="wàn", ["萬"]="wàn", ["輐"]="wàn", ["鄤"]="wàn", ["𬇕"]="wàn", ["尢"]="wāng", ["尪"]="wāng", ["汪"]="wāng", ["亡"]="wáng", ["王"]="wáng", ["往"]="wǎng", ["惘"]="wǎng", ["枉"]="wǎng", ["網"]="wǎng", ["网"]="wǎng", ["罔"]="wǎng", ["菵"]="wǎng", ["蝄"]="wǎng", ["辋"]="wǎng", ["魍"]="wǎng", ["妄"]="wàng", ["忘"]="wàng", ["旺"]="wàng", ["望"]="wàng", ["盳"]="wàng", ["迋"]="wàng", ["偎"]="wēi", ["危"]="wēi", ["威"]="wēi", ["崴"]="wēi", ["巍"]="wēi", ["微"]="wēi", ["溦"]="wēi", ["煨"]="wēi", ["葨"]="wēi", ["葳"]="wēi", ["薇"]="wēi", ["逶"]="wēi", ["隈"]="wēi", ["鳂"]="wēi", ["唯"]="wéi", ["围"]="wéi", ["圩"]="wéi", ["峗"]="wéi", ["嵬"]="wéi", ["帏"]="wéi", ["帷"]="wéi", ["惟"]="wéi", ["桅"]="wéi", ["沩"]="wéi", ["洈"]="wéi", ["涠"]="wéi", ["潍"]="wéi", ["琟"]="wéi", ["維"]="wéi", ["维"]="wéi", ["觽"]="wéi", ["觿"]="wéi", ["违"]="wéi", ["違"]="wéi", ["鄬"]="wéi", ["鍏"]="wéi", ["闱"]="wéi", ["韦"]="wéi", ["鮠"]="wéi", ["𣲗"]="wéi", ["𬶏"]="wéi", ["亹"]="wěi", ["伟"]="wěi", ["伪"]="wěi", ["委"]="wěi", ["娓"]="wěi", ["尾"]="wěi", ["廆"]="wěi", ["洧"]="wěi", ["炜"]="wěi", ["猥"]="wěi", ["玮"]="wěi", ["痿"]="wěi", ["硊"]="wěi", ["磈"]="wěi", ["緯"]="wěi", ["纬"]="wěi", ["艉"]="wěi", ["苇"]="wěi", ["萎"]="wěi", ["葦"]="wěi", ["蔿"]="wěi", ["薳"]="wěi", ["蜼"]="wěi", ["諉"]="wěi", ["诿"]="wěi", ["趡"]="wěi", ["隗"]="wěi", ["韪"]="wěi", ["頠"]="wěi", ["骩"]="wěi", ["骫"]="wěi", ["鮪"]="wěi", ["鲔"]="wěi", ["𫇭"]="wěi", ["𬀩"]="wěi", ["𬱟"]="wěi", ["为"]="wèi", ["位"]="wèi", ["卫"]="wèi", ["味"]="wèi", ["喂"]="wèi", ["尉"]="wèi", ["慰"]="wèi", ["未"]="wèi", ["渭"]="wèi", ["為"]="wèi", ["煟"]="wèi", ["爲"]="wèi", ["猬"]="wèi", ["畏"]="wèi", ["硙"]="wèi", ["碨"]="wèi", ["磑"]="wèi", ["胃"]="wèi", ["苿"]="wèi", ["蔚"]="wèi", ["藯"]="wèi", ["蝟"]="wèi", ["螱"]="wèi", ["衛"]="wèi", ["謂"]="wèi", ["讏"]="wèi", ["谓"]="wèi", ["躛"]="wèi", ["軎"]="wèi", ["錗"]="wèi", ["霨"]="wèi", ["餵"]="wèi", ["魏"]="wèi", ["鮇"]="wèi", ["鳚"]="wèi", ["榅"]="wēn", ["温"]="wēn", ["瘟"]="wēn", ["緼"]="wēn", ["縕"]="wēn", ["缊"]="wēn", ["蕰"]="wēn", ["薀"]="wēn", ["辒"]="wēn", ["鳁"]="wēn", ["文"]="wén", ["炆"]="wén", ["紋"]="wén", ["纹"]="wén", ["聞"]="wén", ["芠"]="wén", ["蚊"]="wén", ["螡"]="wén", ["閺"]="wén", ["閿"]="wén", ["闅"]="wén", ["闻"]="wén", ["阌"]="wén", ["雯"]="wén", ["魰"]="wén", ["鼤"]="wén", ["𫘜"]="wén", ["刎"]="wěn", ["吻"]="wěn", ["稳"]="wěn", ["穩"]="wěn", ["紊"]="wěn", ["脗"]="wěn", ["汶"]="wèn", ["璺"]="wèn", ["问"]="wèn", ["顐"]="wèn", ["嗡"]="wēng", ["滃"]="wēng", ["翁"]="wēng", ["鎓"]="wēng", ["鶲"]="wēng", ["鹟"]="wēng", ["𬭩"]="wēng", ["聬"]="wěng", ["蓊"]="wěng", ["瓮"]="wèng", ["罋"]="wèng", ["蕹"]="wèng", ["齆"]="wèng", ["倭"]="wō", ["挝"]="wō", ["涡"]="wō", ["窝"]="wō", ["窩"]="wō", ["莴"]="wō", ["萵"]="wō", ["蜗"]="wō", ["蝸"]="wō", ["踒"]="wō", ["我"]="wǒ", ["偓"]="wò", ["卧"]="wò", ["幄"]="wò", ["握"]="wò", ["斡"]="wò", ["沃"]="wò", ["渥"]="wò", ["硪"]="wò", ["肟"]="wò", ["臥"]="wò", ["艧"]="wò", ["雘"]="wò", ["馧"]="wò", ["龌"]="wò", ["乌"]="wū", ["呜"]="wū", ["圬"]="wū", ["屋"]="wū", ["巫"]="wū", ["污"]="wū", ["洿"]="wū", ["螐"]="wū", ["诬"]="wū", ["趶"]="wū", ["邬"]="wū", ["钨"]="wū", ["鰞"]="wū", ["鴮"]="wū", ["吴"]="wú", ["吾"]="wú", ["峿"]="wú", ["无"]="wú", ["梧"]="wú", ["毋"]="wú", ["浯"]="wú", ["珸"]="wú", ["祦"]="wú", ["禑"]="wú", ["芜"]="wú", ["茣"]="wú", ["莁"]="wú", ["蜈"]="wú", ["郚"]="wú", ["铻"]="wú", ["鹀"]="wú", ["鼯"]="wú", ["五"]="wǔ", ["仵"]="wǔ", ["伍"]="wǔ", ["侮"]="wǔ", ["午"]="wǔ", ["妩"]="wǔ", ["庑"]="wǔ", ["忤"]="wǔ", ["怃"]="wǔ", ["捂"]="wǔ", ["旿"]="wǔ", ["武"]="wǔ", ["牾"]="wǔ", ["珷"]="wǔ", ["碔"]="wǔ", ["膴"]="wǔ", ["舞"]="wǔ", ["迕"]="wǔ", ["鹉"]="wǔ", ["𣲘"]="wǔ", ["兀"]="wù", ["务"]="wù", ["勿"]="wù", ["坞"]="wù", ["婺"]="wù", ["寤"]="wù", ["屼"]="wù", ["悟"]="wù", ["戊"]="wù", ["晤"]="wù", ["杌"]="wù", ["焐"]="wù", ["物"]="wù", ["痦"]="wù", ["芴"]="wù", ["誤"]="wù", ["误"]="wù", ["鋈"]="wù", ["阢"]="wù", ["雾"]="wù", ["霚"]="wù", ["霧"]="wù", ["靰"]="wù", ["骛"]="wù", ["鶩"]="wù", ["鹜"]="wù", ["俙"]="xī", ["傒"]="xī", ["僖"]="xī", ["兮"]="xī", ["吸"]="xī", ["唏"]="xī", ["嘻"]="xī", ["夕"]="xī", ["奚"]="xī", ["嬉"]="xī", ["嶲"]="xī", ["巇"]="xī", ["希"]="xī", ["恓"]="xī", ["息"]="xī", ["悉"]="xī", ["惜"]="xī", ["昔"]="xī", ["晞"]="xī", ["晰"]="xī", ["暿"]="xī", ["曦"]="xī", ["析"]="xī", ["樨"]="xī", ["欷"]="xī", ["歙"]="xī", ["汐"]="xī", ["浠"]="xī", ["淅"]="xī", ["溪"]="xī", ["烯"]="xī", ["熄"]="xī", ["熙"]="xī", ["熹"]="xī", ["熻"]="xī", ["爔"]="xī", ["牺"]="xī", ["犀"]="xī", ["皙"]="xī", ["睎"]="xī", ["矽"]="xī", ["硒"]="xī", ["礂"]="xī", ["稀"]="xī", ["穸"]="xī", ["窸"]="xī", ["粞"]="xī", ["糦"]="xī", ["羲"]="xī", ["翕"]="xī", ["翖"]="xī", ["膝"]="xī", ["舾"]="xī", ["菥"]="xī", ["蜥"]="xī", ["螅"]="xī", ["蟋"]="xī", ["西"]="xī", ["豀"]="xī", ["豨"]="xī", ["酅"]="xī", ["醯"]="xī", ["錫"]="xī", ["鏭"]="xī", ["鑴"]="xī", ["锡"]="xī", ["饻"]="xī", ["鸂"]="xī", ["鼷"]="xī", ["习"]="xí", ["媳"]="xí", ["嶍"]="xí", ["席"]="xí", ["檄"]="xí", ["習"]="xí", ["蓆"]="xí", ["薂"]="xí", ["袭"]="xí", ["襲"]="xí", ["觋"]="xí", ["郋"]="xí", ["鎴"]="xí", ["隰"]="xí", ["霫"]="xí", ["騽"]="xí", ["鳛"]="xí", ["𠅤"]="xí", ["𫘬"]="xí", ["喜"]="xǐ", ["屣"]="xǐ", ["徙"]="xǐ", ["憙"]="xǐ", ["枲"]="xǐ", ["洗"]="xǐ", ["玺"]="xǐ", ["禧"]="xǐ", ["葸"]="xǐ", ["蓰"]="xǐ", ["蟢"]="xǐ", ["銑"]="xǐ", ["铣"]="xǐ", ["𬭳"]="xǐ", ["𬶮"]="xǐ", ["咥"]="xì", ["屃"]="xì", ["戏"]="xì", ["潟"]="xì", ["盻"]="xì", ["禊"]="xì", ["系"]="xì", ["細"]="xì", ["细"]="xì", ["绤"]="xì", ["舃"]="xì", ["舄"]="xì", ["衋"]="xì", ["郤"]="xì", ["钑"]="xì", ["闟"]="xì", ["阋"]="xì", ["隙"]="xì", ["餼"]="xì", ["饩"]="xì", ["呷"]="xiā", ["瞎"]="xiā", ["虾"]="xiā", ["蝦"]="xiā", ["鰕"]="xiā", ["侠"]="xiá", ["匣"]="xiá", ["叚"]="xiá", ["峡"]="xiá", ["暇"]="xiá", ["柙"]="xiá", ["狎"]="xiá", ["狭"]="xiá", ["瑕"]="xiá", ["睱"]="xiá", ["硖"]="xiá", ["祫"]="xiá", ["縀"]="xiá", ["翈"]="xiá", ["辖"]="xiá", ["遐"]="xiá", ["郃"]="xiá", ["鎋"]="xiá", ["陜"]="xiá", ["霞"]="xiá", ["黠"]="xiá", ["下"]="xià", ["吓"]="xià", ["夏"]="xià", ["罅"]="xià", ["仙"]="xiān", ["先"]="xiān", ["孅"]="xiān", ["忺"]="xiān", ["掀"]="xiān", ["暹"]="xiān", ["氙"]="xiān", ["祆"]="xiān", ["籼"]="xiān", ["縿"]="xiān", ["纖"]="xiān", ["纤"]="xiān", ["莶"]="xiān", ["跹"]="xiān", ["酰"]="xiān", ["鍁"]="xiān", ["锨"]="xiān", ["韱"]="xiān", ["鮮"]="xiān", ["鱻"]="xiān", ["鲜"]="xiān", ["𬸣"]="xiān", ["伭"]="xián", ["咸"]="xián", ["娴"]="xián", ["嫌"]="xián", ["弦"]="xián", ["挦"]="xián", ["涎"]="xián", ["痫"]="xián", ["舷"]="xián", ["蚿"]="xián", ["衔"]="xián", ["賢"]="xián", ["贤"]="xián", ["銜"]="xián", ["閑"]="xián", ["閒"]="xián", ["闲"]="xián", ["鷳"]="xián", ["鷴"]="xián", ["鷼"]="xián", ["鹇"]="xián", ["鹹"]="xián", ["𫍯"]="xián", ["㬎"]="xiǎn", ["冼"]="xiǎn", ["崄"]="xiǎn", ["显"]="xiǎn", ["燹"]="xiǎn", ["狝"]="xiǎn", ["猃"]="xiǎn", ["禒"]="xiǎn", ["筅"]="xiǎn", ["藓"]="xiǎn", ["蚬"]="xiǎn", ["蜆"]="xiǎn", ["跣"]="xiǎn", ["险"]="xiǎn", ["險"]="xiǎn", ["顕"]="xiǎn", ["顯"]="xiǎn", ["县"]="xiàn", ["宪"]="xiàn", ["岘"]="xiàn", ["献"]="xiàn", ["现"]="xiàn", ["県"]="xiàn", ["睍"]="xiàn", ["粯"]="xiàn", ["線"]="xiàn", ["縣"]="xiàn", ["线"]="xiàn", ["缐"]="xiàn", ["羡"]="xiàn", ["腺"]="xiàn", ["苋"]="xiàn", ["軐"]="xiàn", ["限"]="xiàn", ["陷"]="xiàn", ["霰"]="xiàn", ["馅"]="xiàn", ["𪾢"]="xiàn", ["𬀪"]="xiàn", ["乡"]="xiāng", ["厢"]="xiāng", ["湘"]="xiāng", ["瓖"]="xiāng", ["箱"]="xiāng", ["緗"]="xiāng", ["纕"]="xiāng", ["缃"]="xiāng", ["芗"]="xiāng", ["葙"]="xiāng", ["蘘"]="xiāng", ["襄"]="xiāng", ["鄉"]="xiāng", ["鑲"]="xiāng", ["镶"]="xiāng", ["香"]="xiāng", ["骧"]="xiāng", ["𬙋"]="xiāng", ["庠"]="xiáng", ["祥"]="xiáng", ["翔"]="xiáng", ["詳"]="xiáng", ["详"]="xiáng", ["享"]="xiǎng", ["响"]="xiǎng", ["想"]="xiǎng", ["響"]="xiǎng", ["飨"]="xiǎng", ["餉"]="xiǎng", ["饟"]="xiǎng", ["饷"]="xiǎng", ["鯗"]="xiǎng", ["鲞"]="xiǎng", ["像"]="xiàng", ["向"]="xiàng", ["嚮"]="xiàng", ["巷"]="xiàng", ["橡"]="xiàng", ["珦"]="xiàng", ["相"]="xiàng", ["蟓"]="xiàng", ["象"]="xiàng", ["項"]="xiàng", ["项"]="xiàng", ["鱌"]="xiàng", ["哓"]="xiāo", ["哮"]="xiāo", ["嚣"]="xiāo", ["宵"]="xiāo", ["枭"]="xiāo", ["枵"]="xiāo", ["消"]="xiāo", ["潇"]="xiāo", ["猇"]="xiāo", ["硝"]="xiāo", ["硣"]="xiāo", ["箫"]="xiāo", ["箾"]="xiāo", ["簘"]="xiāo", ["簫"]="xiāo", ["绡"]="xiāo", ["翛"]="xiāo", ["膮"]="xiāo", ["萧"]="xiāo", ["虈"]="xiāo", ["虓"]="xiāo", ["蛸"]="xiāo", ["蟂"]="xiāo", ["蟏"]="xiāo", ["蠨"]="xiāo", ["逍"]="xiāo", ["銷"]="xiāo", ["销"]="xiāo", ["霄"]="xiāo", ["颵"]="xiāo", ["骁"]="xiāo", ["魈"]="xiāo", ["鴞"]="xiāo", ["鴵"]="xiāo", ["鸮"]="xiāo", ["崤"]="xiáo", ["洨"]="xiáo", ["淆"]="xiáo", ["小"]="xiǎo", ["晓"]="xiǎo", ["皛"]="xiǎo", ["笹"]="xiǎo", ["筱"]="xiǎo", ["篠"]="xiǎo", ["謏"]="xiǎo", ["𫍲"]="xiǎo", ["啸"]="xiào", ["孝"]="xiào", ["效"]="xiào", ["敩"]="xiào", ["校"]="xiào", ["涍"]="xiào", ["滧"]="xiào", ["笑"]="xiào", ["肖"]="xiào", ["詨"]="xiào", ["些"]="xiē", ["揳"]="xiē", ["楔"]="xiē", ["歇"]="xiē", ["蝎"]="xiē", ["蠍"]="xiē", ["㙦"]="xié", ["偕"]="xié", ["勰"]="xié", ["协"]="xié", ["挟"]="xié", ["携"]="xié", ["撷"]="xié", ["斜"]="xié", ["綊"]="xié", ["缬"]="xié", ["胁"]="xié", ["脅"]="xié", ["諧"]="xié", ["谐"]="xié", ["邪"]="xié", ["鞋"]="xié", ["颉"]="xié", ["龤"]="xié", ["写"]="xiě", ["藛"]="xiě", ["亵"]="xiè", ["偰"]="xiè", ["卸"]="xiè", ["屑"]="xiè", ["廨"]="xiè", ["懈"]="xiè", ["械"]="xiè", ["榍"]="xiè", ["榭"]="xiè", ["泄"]="xiè", ["泻"]="xiè", ["渫"]="xiè", ["澥"]="xiè", ["瀣"]="xiè", ["燮"]="xiè", ["獬"]="xiè", ["绁"]="xiè", ["缷"]="xiè", ["薢"]="xiè", ["薤"]="xiè", ["蝑"]="xiè", ["蟹"]="xiè", ["蠏"]="xiè", ["謝"]="xiè", ["谢"]="xiè", ["躞"]="xiè", ["邂"]="xiè", ["韰"]="xiè", ["齛"]="xiè", ["𤫉"]="xiè", ["𬹼"]="xiè", ["䜣"]="xīn", ["心"]="xīn", ["忻"]="xīn", ["新"]="xīn", ["昕"]="xīn", ["欣"]="xīn", ["歆"]="xīn", ["炘"]="xīn", ["芯"]="xīn", ["薪"]="xīn", ["訢"]="xīn", ["辛"]="xīn", ["鋅"]="xīn", ["鑫"]="xīn", ["锌"]="xīn", ["馨"]="xīn", ["𫷷"]="xīn", ["伈"]="xǐn", ["信"]="xìn", ["囟"]="xìn", ["舋"]="xìn", ["衅"]="xìn", ["惺"]="xīng", ["星"]="xīng", ["煋"]="xīng", ["猩"]="xīng", ["瑆"]="xīng", ["篂"]="xīng", ["腥"]="xīng", ["骍"]="xīng", ["刑"]="xíng", ["型"]="xíng", ["形"]="xíng", ["硎"]="xíng", ["荥"]="xíng", ["行"]="xíng", ["邢"]="xíng", ["铏"]="xíng", ["陉"]="xíng", ["饧"]="xíng", ["𫰛"]="xíng", ["擤"]="xǐng", ["省"]="xǐng", ["醒"]="xǐng", ["兴"]="xìng", ["姓"]="xìng", ["婞"]="xìng", ["幸"]="xìng", ["性"]="xìng", ["悻"]="xìng", ["杏"]="xìng", ["臖"]="xìng", ["興"]="xìng", ["荇"]="xìng", ["莕"]="xìng", ["兄"]="xiōng", ["凶"]="xiōng", ["匈"]="xiōng", ["汹"]="xiōng", ["胸"]="xiōng", ["芎"]="xiōng", ["詾"]="xiōng", ["讻"]="xiōng", ["熊"]="xióng", ["雄"]="xióng", ["夐"]="xiòng", ["詗"]="xiòng", ["诇"]="xiòng", ["䗛"]="xiū", ["休"]="xiū", ["修"]="xiū", ["咻"]="xiū", ["庥"]="xiū", ["羞"]="xiū", ["脙"]="xiū", ["脩"]="xiū", ["貅"]="xiū", ["銝"]="xiū", ["饈"]="xiū", ["馐"]="xiū", ["髤"]="xiū", ["髹"]="xiū", ["鵂"]="xiū", ["鸺"]="xiū", ["朽"]="xiǔ", ["滫"]="xiǔ", ["嗅"]="xiù", ["岫"]="xiù", ["溴"]="xiù", ["珛"]="xiù", ["琇"]="xiù", ["秀"]="xiù", ["绣"]="xiù", ["螑"]="xiù", ["袖"]="xiù", ["鏽"]="xiù", ["锈"]="xiù", ["吁"]="xū", ["嘘"]="xū", ["墟"]="xū", ["媭"]="xū", ["戌"]="xū", ["旴"]="xū", ["欻"]="xū", ["盱"]="xū", ["繻"]="xū", ["胥"]="xū", ["蕦"]="xū", ["虗"]="xū", ["虚"]="xū", ["虛"]="xū", ["訏"]="xū", ["諝"]="xū", ["譃"]="xū", ["谞"]="xū", ["需"]="xū", ["須"]="xū", ["頊"]="xū", ["须"]="xū", ["顼"]="xū", ["鬚"]="xū", ["魆"]="xū", ["魖"]="xū", ["𦈡"]="xū", ["𬣙"]="xū", ["徐"]="xú", ["冔"]="xǔ", ["呴"]="xǔ", ["栩"]="xǔ", ["珝"]="xǔ", ["盨"]="xǔ", ["糈"]="xǔ", ["許"]="xǔ", ["许"]="xǔ", ["诩"]="xǔ", ["鄦"]="xǔ", ["湑"]="xǔ", ["醑"]="xǔ", ["㳚"]="xù", ["勖"]="xù", ["叙"]="xù", ["垿"]="xù", ["婿"]="xù", ["序"]="xù", ["恤"]="xù", ["旭"]="xù", ["昫"]="xù", ["洫"]="xù", ["溆"]="xù", ["煦"]="xù", ["畜"]="xù", ["盢"]="xù", ["稸"]="xù", ["絮"]="xù", ["緒"]="xù", ["續"]="xù", ["绪"]="xù", ["续"]="xù", ["聟"]="xù", ["蓄"]="xù", ["藚"]="xù", ["訹"]="xù", ["酗"]="xù", ["蓿"]="xu", ["儇"]="xuān", ["咺"]="xuān", ["喧"]="xuān", ["嬛"]="xuān", ["宣"]="xuān", ["愃"]="xuān", ["揎"]="xuān", ["暄"]="xuān", ["煊"]="xuān", ["瑄"]="xuān", ["睻"]="xuān", ["矎"]="xuān", ["禤"]="xuān", ["翧"]="xuān", ["翾"]="xuān", ["萱"]="xuān", ["蕿"]="xuān", ["諠"]="xuān", ["譞"]="xuān", ["谖"]="xuān", ["軒"]="xuān", ["轩"]="xuān", ["𫍽"]="xuān", ["𫓶"]="xuān", ["悬"]="xuán", ["旋"]="xuán", ["暶"]="xuán", ["漩"]="xuán", ["玄"]="xuán", ["玹"]="xuán", ["璇"]="xuán", ["痃"]="xuán", ["蜁"]="xuán", ["𫠊"]="xuán", ["晅"]="xuǎn", ["烜"]="xuǎn", ["癣"]="xuǎn", ["癬"]="xuǎn", ["选"]="xuǎn", ["選"]="xuǎn", ["昡"]="xuàn", ["楦"]="xuàn", ["泫"]="xuàn", ["渲"]="xuàn", ["炫"]="xuàn", ["琄"]="xuàn", ["眩"]="xuàn", ["碹"]="xuàn", ["絃"]="xuàn", ["縼"]="xuàn", ["绚"]="xuàn", ["蔙"]="xuàn", ["衒"]="xuàn", ["袨"]="xuàn", ["鏇"]="xuàn", ["铉"]="xuàn", ["镟"]="xuàn", ["駨"]="xuàn", ["削"]="xuē", ["薛"]="xuē", ["靴"]="xuē", ["学"]="xué", ["峃"]="xué", ["泶"]="xué", ["穴"]="xué", ["茓"]="xué", ["袕"]="xué", ["踅"]="xué", ["鷽"]="xué", ["鸴"]="xué", ["雪"]="xuě", ["鳕"]="xuě", ["血"]="xuè", ["谑"]="xuè", ["勋"]="xūn", ["埙"]="xūn", ["曛"]="xūn", ["熏"]="xūn", ["獯"]="xūn", ["矄"]="xūn", ["纁"]="xūn", ["臐"]="xūn", ["薰"]="xūn", ["醺"]="xūn", ["𫄸"]="xūn", ["寻"]="xún", ["峋"]="xún", ["巡"]="xún", ["循"]="xún", ["恂"]="xún", ["旬"]="xún", ["栒"]="xún", ["洵"]="xún", ["浔"]="xún", ["珣"]="xún", ["紃"]="xún", ["荀"]="xún", ["蟳"]="xún", ["詢"]="xún", ["询"]="xún", ["郇"]="xún", ["鄩"]="xún", ["鲟"]="xún", ["𬊈"]="xún", ["𬍤"]="xún", ["𬘓"]="xún", ["𬩽"]="xún", ["噀"]="xùn", ["巽"]="xùn", ["徇"]="xùn", ["殉"]="xùn", ["汛"]="xùn", ["稄"]="xùn", ["蕈"]="xùn", ["訊"]="xùn", ["訓"]="xùn", ["訙"]="xùn", ["训"]="xùn", ["讯"]="xùn", ["迅"]="xùn", ["逊"]="xùn", ["遜"]="xùn", ["顨"]="xùn", ["馴"]="xùn", ["驯"]="xùn", ["丫"]="yā", ["压"]="yā", ["押"]="yā", ["桠"]="yā", ["錏"]="yā", ["铔"]="yā", ["鴉"]="yā", ["鴨"]="yā", ["鸦"]="yā", ["鸭"]="yā", ["伢"]="yá", ["堐"]="yá", ["岈"]="yá", ["崖"]="yá", ["涯"]="yá", ["牙"]="yá", ["玡"]="yá", ["琊"]="yá", ["睚"]="yá", ["芽"]="yá", ["蚜"]="yá", ["衙"]="yá", ["哑"]="yǎ", ["痖"]="yǎ", ["雅"]="yǎ", ["亚"]="yà", ["垭"]="yà", ["娅"]="yà", ["揠"]="yà", ["氩"]="yà", ["猰"]="yà", ["砑"]="yà", ["穵"]="yà", ["窫"]="yà", ["襾"]="yà", ["訝"]="yà", ["讶"]="yà", ["輵"]="yà", ["轧"]="yà", ["迓"]="yà", ["呀"]="ya", ["咽"]="yān", ["墕"]="yān", ["嫣"]="yān", ["崦"]="yān", ["恹"]="yān", ["淹"]="yān", ["湮"]="yān", ["漹"]="yān", ["烟"]="yān", ["焉"]="yān", ["硽"]="yān", ["胭"]="yān", ["腌"]="yān", ["菸"]="yān", ["鄢"]="yān", ["醃"]="yān", ["閹"]="yān", ["阉"]="yān", ["严"]="yán", ["埏"]="yán", ["妍"]="yán", ["岩"]="yán", ["延"]="yán", ["檐"]="yán", ["沿"]="yán", ["炎"]="yán", ["盐"]="yán", ["研"]="yán", ["硏"]="yán", ["筵"]="yán", ["簷"]="yán", ["綖"]="yán", ["莚"]="yán", ["虤"]="yán", ["蜒"]="yán", ["言"]="yán", ["訮"]="yán", ["閻"]="yán", ["闫"]="yán", ["阎"]="yán", ["顏"]="yán", ["顔"]="yán", ["颜"]="yán", ["鹽"]="yán", ["麣"]="yán", ["𫄧"]="yán", ["䶮"]="yǎn", ["俨"]="yǎn", ["偃"]="yǎn", ["兖"]="yǎn", ["剡"]="yǎn", ["厣"]="yǎn", ["奄"]="yǎn", ["弇"]="yǎn", ["戭"]="yǎn", ["扊"]="yǎn", ["掩"]="yǎn", ["棪"]="yǎn", ["沇"]="yǎn", ["渰"]="yǎn", ["演"]="yǎn", ["琰"]="yǎn", ["甗"]="yǎn", ["眼"]="yǎn", ["縯"]="yǎn", ["罨"]="yǎn", ["菴"]="yǎn", ["蝘"]="yǎn", ["衍"]="yǎn", ["郾"]="yǎn", ["酀"]="yǎn", ["顩"]="yǎn", ["魇"]="yǎn", ["鶠"]="yǎn", ["黡"]="yǎn", ["黶"]="yǎn", ["鼹"]="yǎn", ["齗"]="yǎn", ["龂"]="yǎn", ["龑"]="yǎn", ["𪩘"]="yǎn", ["𬙂"]="yǎn", ["𬸘"]="yǎn", ["厌"]="yàn", ["唁"]="yàn", ["堰"]="yàn", ["嬿"]="yàn", ["宴"]="yàn", ["彦"]="yàn", ["掞"]="yàn", ["晏"]="yàn", ["滟"]="yàn", ["焰"]="yàn", ["焱"]="yàn", ["燕"]="yàn", ["砚"]="yàn", ["艳"]="yàn", ["艶"]="yàn", ["艷"]="yàn", ["觃"]="yàn", ["諺"]="yàn", ["讌"]="yàn", ["讞"]="yàn", ["谚"]="yàn", ["谳"]="yàn", ["贋"]="yàn", ["赝"]="yàn", ["軅"]="yàn", ["酽"]="yàn", ["醼"]="yàn", ["雁"]="yàn", ["顑"]="yàn", ["餍"]="yàn", ["饜"]="yàn", ["驗"]="yàn", ["验"]="yàn", ["鬳"]="yàn", ["鷃"]="yàn", ["咉"]="yāng", ["央"]="yāng", ["殃"]="yāng", ["泱"]="yāng", ["眏"]="yāng", ["秧"]="yāng", ["鞅"]="yāng", ["鴦"]="yāng", ["鸯"]="yāng", ["佯"]="yáng", ["垟"]="yáng", ["徉"]="yáng", ["扬"]="yáng", ["旸"]="yáng", ["暘"]="yáng", ["杨"]="yáng", ["洋"]="yáng", ["炀"]="yáng", ["烊"]="yáng", ["玚"]="yáng", ["疡"]="yáng", ["羊"]="yáng", ["蛘"]="yáng", ["諹"]="yáng", ["輰"]="yáng", ["鍚"]="yáng", ["钖"]="yáng", ["阳"]="yáng", ["陽"]="yáng", ["颺"]="yáng", ["飏"]="yáng", ["鴹"]="yáng", ["仰"]="yǎng", ["养"]="yǎng", ["氧"]="yǎng", ["痒"]="yǎng", ["紻"]="yǎng", ["養"]="yǎng", ["駚"]="yǎng", ["怏"]="yàng", ["恙"]="yàng", ["样"]="yàng", ["漾"]="yàng", ["羕"]="yàng", ["詇"]="yàng", ["㙘"]="yāo", ["吆"]="yāo", ["夭"]="yāo", ["妖"]="yāo", ["幺"]="yāo", ["祅"]="yāo", ["腰"]="yāo", ["訞"]="yāo", ["邀"]="yāo", ["垚"]="yáo", ["姚"]="yáo", ["媱"]="yáo", ["尧"]="yáo", ["峣"]="yáo", ["徭"]="yáo", ["摇"]="yáo", ["爻"]="yáo", ["猺"]="yáo", ["珧"]="yáo", ["瑶"]="yáo", ["窑"]="yáo", ["窯"]="yáo", ["繇"]="yáo", ["肴"]="yáo", ["謠"]="yáo", ["謡"]="yáo", ["谣"]="yáo", ["轺"]="yáo", ["遙"]="yáo", ["遥"]="yáo", ["颻"]="yáo", ["飖"]="yáo", ["餆"]="yáo", ["餚"]="yáo", ["鳐"]="yáo", ["咬"]="yǎo", ["崾"]="yǎo", ["杳"]="yǎo", ["窅"]="yǎo", ["窈"]="yǎo", ["舀"]="yǎo", ["蓔"]="yǎo", ["闄"]="yǎo", ["曜"]="yào", ["矅"]="yào", ["窔"]="yào", ["箹"]="yào", ["籥"]="yào", ["耀"]="yào", ["艞"]="yào", ["药"]="yào", ["葯"]="yào", ["藥"]="yào", ["要"]="yào", ["鑰"]="yào", ["钥"]="yào", ["靿"]="yào", ["鹞"]="yào", ["倻"]="yē", ["噎"]="yē", ["掖"]="yē", ["椰"]="yē", ["耶"]="yē", ["揶"]="yé", ["爷"]="yé", ["铘"]="yé", ["也"]="yě", ["冶"]="yě", ["虵"]="yě", ["野"]="yě", ["业"]="yè", ["叶"]="yè", ["夜"]="yè", ["晔"]="yè", ["曳"]="yè", ["液"]="yè", ["烨"]="yè", ["緤"]="yè", ["腋"]="yè", ["葉"]="yè", ["谒"]="yè", ["邺"]="yè", ["鍱"]="yè", ["鐷"]="yè", ["靥"]="yè", ["頁"]="yè", ["页"]="yè", ["馌"]="yè", ["一"]="yī", ["伊"]="yī", ["依"]="yī", ["医"]="yī", ["咿"]="yī", ["噫"]="yī", ["壹"]="yī", ["揖"]="yī", ["欹"]="yī", ["洢"]="yī", ["漪"]="yī", ["猗"]="yī", ["祎"]="yī", ["繄"]="yī", ["蛜"]="yī", ["衣"]="yī", ["袆"]="yī", ["醫"]="yī", ["铱"]="yī", ["鷖"]="yī", ["黟"]="yī", ["仪"]="yí", ["匜"]="yí", ["咦"]="yí", ["圯"]="yí", ["夷"]="yí", ["姨"]="yí", ["宜"]="yí", ["宧"]="yí", ["嶷"]="yí", ["彝"]="yí", ["怡"]="yí", ["扅"]="yí", ["椸"]="yí", ["沂"]="yí", ["疑"]="yí", ["痍"]="yí", ["眙"]="yí", ["移"]="yí", ["箷"]="yí", ["簃"]="yí", ["羠"]="yí", ["胰"]="yí", ["袘"]="yí", ["訑"]="yí", ["詒"]="yí", ["讉"]="yí", ["诒"]="yí", ["貤"]="yí", ["貽"]="yí", ["贻"]="yí", ["迤"]="yí", ["迻"]="yí", ["遗"]="yí", ["遺"]="yí", ["頉"]="yí", ["頤"]="yí", ["颐"]="yí", ["饴"]="yí", ["鴺"]="yí", ["乙"]="yǐ", ["以"]="yǐ", ["佁"]="yǐ", ["倚"]="yǐ", ["已"]="yǐ", ["扆"]="yǐ", ["旖"]="yǐ", ["椅"]="yǐ", ["矣"]="yǐ", ["礒"]="yǐ", ["笖"]="yǐ", ["肊"]="yǐ", ["舣"]="yǐ", ["艤"]="yǐ", ["苡"]="yǐ", ["苢"]="yǐ", ["蚁"]="yǐ", ["螘"]="yǐ", ["蟻"]="yǐ", ["酏"]="yǐ", ["釔"]="yǐ", ["钇"]="yǐ", ["锜"]="yǐ", ["阤"]="yǐ", ["顗"]="yǐ", ["齮"]="yǐ", ["𫖮"]="yǐ", ["𬺈"]="yǐ", ["㑊"]="yì", ["乂"]="yì", ["义"]="yì", ["亦"]="yì", ["亿"]="yì", ["仡"]="yì", ["佚"]="yì", ["佾"]="yì", ["刈"]="yì", ["劓"]="yì", ["勚"]="yì", ["呓"]="yì", ["埸"]="yì", ["奕"]="yì", ["嫕"]="yì", ["屹"]="yì", ["峄"]="yì", ["廙"]="yì", ["异"]="yì", ["弈"]="yì", ["弋"]="yì", ["役"]="yì", ["忆"]="yì", ["怿"]="yì", ["悒"]="yì", ["意"]="yì", ["懿"]="yì", ["抑"]="yì", ["挹"]="yì", ["易"]="yì", ["杙"]="yì", ["枍"]="yì", ["殪"]="yì", ["毅"]="yì", ["浥"]="yì", ["溢"]="yì", ["潩"]="yì", ["熠"]="yì", ["燚"]="yì", ["疫"]="yì", ["瘗"]="yì", ["癔"]="yì", ["益"]="yì", ["睪"]="yì", ["絏"]="yì", ["绎"]="yì", ["缢"]="yì", ["義"]="yì", ["羿"]="yì", ["翊"]="yì", ["翌"]="yì", ["翳"]="yì", ["翼"]="yì", ["耴"]="yì", ["肄"]="yì", ["臆"]="yì", ["艺"]="yì", ["苅"]="yì", ["蓺"]="yì", ["薏"]="yì", ["藙"]="yì", ["藝"]="yì", ["蛡"]="yì", ["蜴"]="yì", ["螠"]="yì", ["袣"]="yì", ["裔"]="yì", ["裛"]="yì", ["褹"]="yì", ["詣"]="yì", ["譯"]="yì", ["議"]="yì", ["讛"]="yì", ["议"]="yì", ["译"]="yì", ["诣"]="yì", ["谊"]="yì", ["豷"]="yì", ["贀"]="yì", ["轶"]="yì", ["逸"]="yì", ["邑"]="yì", ["鎰"]="yì", ["鐿"]="yì", ["镒"]="yì", ["镱"]="yì", ["饐"]="yì", ["驛"]="yì", ["驿"]="yì", ["鮨"]="yì", ["鶃"]="yì", ["鶍"]="yì", ["鷁"]="yì", ["鷧"]="yì", ["鹝"]="yì", ["鹢"]="yì", ["齸"]="yì", ["𫄷"]="yì", ["𬟁"]="yì", ["𬬩"]="yì", ["喑"]="yīn", ["因"]="yīn", ["堙"]="yīn", ["姻"]="yīn", ["愔"]="yīn", ["歅"]="yīn", ["殷"]="yīn", ["氤"]="yīn", ["洇"]="yīn", ["溵"]="yīn", ["禋"]="yīn", ["秵"]="yīn", ["絪"]="yīn", ["茵"]="yīn", ["荫"]="yīn", ["蒑"]="yīn", ["裀"]="yīn", ["銦"]="yīn", ["铟"]="yīn", ["闉"]="yīn", ["阴"]="yīn", ["陰"]="yīn", ["陻"]="yīn", ["霠"]="yīn", ["音"]="yīn", ["駰"]="yīn", ["骃"]="yīn", ["𬘡"]="yīn", ["𬤇"]="yīn", ["𬮱"]="yīn", ["吟"]="yín", ["嚚"]="yín", ["垠"]="yín", ["夤"]="yín", ["寅"]="yín", ["崟"]="yín", ["淫"]="yín", ["狺"]="yín", ["珢"]="yín", ["硍"]="yín", ["碒"]="yín", ["粌"]="yín", ["蟫"]="yín", ["訔"]="yín", ["訚"]="yín", ["訡"]="yín", ["誾"]="yín", ["鄞"]="yín", ["銀"]="yín", ["银"]="yín", ["霪"]="yín", ["鷣"]="yín", ["齦"]="yín", ["龈"]="yín", ["吲"]="yǐn", ["尹"]="yǐn", ["引"]="yǐn", ["檃"]="yǐn", ["瘾"]="yǐn", ["蚓"]="yǐn", ["螾"]="yǐn", ["隐"]="yǐn", ["隱"]="yǐn", ["靷"]="yǐn", ["飮"]="yǐn", ["飲"]="yǐn", ["饮"]="yǐn", ["䲟"]="yìn", ["印"]="yìn", ["慭"]="yìn", ["窨"]="yìn", ["胤"]="yìn", ["茚"]="yìn", ["酳"]="yìn", ["隂"]="yìn", ["鮣"]="yìn", ["䓨"]="yīng", ["嘤"]="yīng", ["婴"]="yīng", ["媖"]="yīng", ["撄"]="yīng", ["樱"]="yīng", ["瑛"]="yīng", ["璎"]="yīng", ["缨"]="yīng", ["罂"]="yīng", ["罃"]="yīng", ["膺"]="yīng", ["英"]="yīng", ["莺"]="yīng", ["譻"]="yīng", ["軈"]="yīng", ["锳"]="yīng", ["韺"]="yīng", ["鷹"]="yīng", ["鹦"]="yīng", ["鹰"]="yīng", ["嬴"]="yíng", ["楹"]="yíng", ["溁"]="yíng", ["滢"]="yíng", ["潆"]="yíng", ["瀛"]="yíng", ["盈"]="yíng", ["縈"]="yíng", ["茔"]="yíng", ["荧"]="yíng", ["莹"]="yíng", ["萤"]="yíng", ["营"]="yíng", ["萦"]="yíng", ["蓥"]="yíng", ["藀"]="yíng", ["蝇"]="yíng", ["蝿"]="yíng", ["螢"]="yíng", ["蠅"]="yíng", ["贏"]="yíng", ["赢"]="yíng", ["迎"]="yíng", ["影"]="yǐng", ["瘿"]="yǐng", ["郢"]="yǐng", ["颍"]="yǐng", ["颖"]="yǐng", ["媵"]="yìng", ["应"]="yìng", ["映"]="yìng", ["硬"]="yìng", ["哟"]="yō", ["唷"]="yō", ["佣"]="yōng", ["墉"]="yōng", ["壅"]="yōng", ["庸"]="yōng", ["慵"]="yōng", ["拥"]="yōng", ["澭"]="yōng", ["痈"]="yōng", ["臃"]="yōng", ["邕"]="yōng", ["鄘"]="yōng", ["镛"]="yōng", ["雍"]="yōng", ["饔"]="yōng", ["鳙"]="yōng", ["喁"]="yóng", ["鰫"]="yóng", ["俑"]="yǒng", ["勇"]="yǒng", ["咏"]="yǒng", ["埇"]="yǒng", ["恿"]="yǒng", ["栐"]="yǒng", ["永"]="yǒng", ["泳"]="yǒng", ["涌"]="yǒng", ["甬"]="yǒng", ["禜"]="yǒng", ["筩"]="yǒng", ["蛹"]="yǒng", ["詠"]="yǒng", ["踊"]="yǒng", ["踴"]="yǒng", ["鯒"]="yǒng", ["鲬"]="yǒng", ["㶲"]="yòng", ["用"]="yòng", ["优"]="yōu", ["呦"]="yōu", ["幽"]="yōu", ["忧"]="yōu", ["悠"]="yōu", ["攸"]="yōu", ["耰"]="yōu", ["逌"]="yōu", ["麀"]="yōu", ["尤"]="yóu", ["油"]="yóu", ["浟"]="yóu", ["游"]="yóu", ["犹"]="yóu", ["猷"]="yóu", ["由"]="yóu", ["疣"]="yóu", ["莜"]="yóu", ["莤"]="yóu", ["莸"]="yóu", ["蓧"]="yóu", ["蚘"]="yóu", ["蚰"]="yóu", ["蝣"]="yóu", ["輶"]="yóu", ["遊"]="yóu", ["邮"]="yóu", ["郵"]="yóu", ["鈾"]="yóu", ["铀"]="yóu", ["鮋"]="yóu", ["鱿"]="yóu", ["鲉"]="yóu", ["𬨎"]="yóu", ["卣"]="yǒu", ["友"]="yǒu", ["有"]="yǒu", ["槱"]="yǒu", ["牖"]="yǒu", ["羑"]="yǒu", ["羗"]="yǒu", ["脜"]="yǒu", ["苃"]="yǒu", ["莠"]="yǒu", ["蜏"]="yǒu", ["酉"]="yǒu", ["铕"]="yǒu", ["黝"]="yǒu", ["佑"]="yòu", ["侑"]="yòu", ["又"]="yòu", ["右"]="yòu", ["囿"]="yòu", ["宥"]="yòu", ["幼"]="yòu", ["柚"]="yòu", ["祐"]="yòu", ["蚴"]="yòu", ["褎"]="yòu", ["褏"]="yòu", ["誘"]="yòu", ["诱"]="yòu", ["釉"]="yòu", ["鼬"]="yòu", ["淤"]="yū", ["瘀"]="yū", ["盓"]="yū", ["穻"]="yū", ["纡"]="yū", ["迂"]="yū", ["于"]="yú", ["余"]="yú", ["俞"]="yú", ["妤"]="yú", ["娱"]="yú", ["嵎"]="yú", ["嵛"]="yú", ["愉"]="yú", ["愚"]="yú", ["揄"]="yú", ["於"]="yú", ["楰"]="yú", ["榆"]="yú", ["欤"]="yú", ["渔"]="yú", ["渝"]="yú", ["狳"]="yú", ["玙"]="yú", ["瑜"]="yú", ["畬"]="yú", ["盂"]="yú", ["禺"]="yú", ["窬"]="yú", ["竽"]="yú", ["羭"]="yú", ["腴"]="yú", ["臾"]="yú", ["舁"]="yú", ["舆"]="yú", ["艅"]="yú", ["荢"]="yú", ["萸"]="yú", ["虞"]="yú", ["蝓"]="yú", ["褕"]="yú", ["觎"]="yú", ["諛"]="yú", ["谀"]="yú", ["貗"]="yú", ["踰"]="yú", ["輿"]="yú", ["逾"]="yú", ["邘"]="yú", ["釪"]="yú", ["隃"]="yú", ["隅"]="yú", ["雩"]="yú", ["顒"]="yú", ["颙"]="yú", ["餘"]="yú", ["馀"]="yú", ["髃"]="yú", ["魚"]="yú", ["魣"]="yú", ["鱮"]="yú", ["鱼"]="yú", ["㺄"]="yǔ", ["与"]="yǔ", ["予"]="yǔ", ["伛"]="yǔ", ["俣"]="yǔ", ["圄"]="yǔ", ["圉"]="yǔ", ["宇"]="yǔ", ["屿"]="yǔ", ["庾"]="yǔ", ["敔"]="yǔ", ["瑀"]="yǔ", ["瘐"]="yǔ", ["祤"]="yǔ", ["禹"]="yǔ", ["窳"]="yǔ", ["羽"]="yǔ", ["與"]="yǔ", ["藇"]="yǔ", ["蘌"]="yǔ", ["蝺"]="yǔ", ["語"]="yǔ", ["语"]="yǔ", ["貐"]="yǔ", ["鄅"]="yǔ", ["雨"]="yǔ", ["頨"]="yǔ", ["龉"]="yǔ", ["喻"]="yù", ["域"]="yù", ["堉"]="yù", ["妪"]="yù", ["寓"]="yù", ["峪"]="yù", ["彧"]="yù", ["御"]="yù", ["悆"]="yù", ["愈"]="yù", ["昱"]="yù", ["棫"]="yù", ["欲"]="yù", ["毓"]="yù", ["浴"]="yù", ["淯"]="yù", ["滪"]="yù", ["潏"]="yù", ["煜"]="yù", ["燏"]="yù", ["燠"]="yù", ["狱"]="yù", ["玉"]="yù", ["癒"]="yù", ["矞"]="yù", ["礇"]="yù", ["礜"]="yù", ["禦"]="yù", ["籞"]="yù", ["籲"]="yù", ["翑"]="yù", ["聿"]="yù", ["肀"]="yù", ["育"]="yù", ["芋"]="yù", ["蓣"]="yù", ["蕷"]="yù", ["薁"]="yù", ["蜮"]="yù", ["衘"]="yù", ["袬"]="yù", ["裕"]="yù", ["誉"]="yù", ["譽"]="yù", ["谕"]="yù", ["豫"]="yù", ["軉"]="yù", ["轝"]="yù", ["遇"]="yù", ["遹"]="yù", ["郁"]="yù", ["鈺"]="yù", ["鋊"]="yù", ["錥"]="yù", ["钰"]="yù", ["閾"]="yù", ["阈"]="yù", ["隩"]="yù", ["預"]="yù", ["预"]="yù", ["饫"]="yù", ["驈"]="yù", ["驭"]="yù", ["鬱"]="yù", ["鬻"]="yù", ["鳿"]="yù", ["鴥"]="yù", ["鴧"]="yù", ["鴪"]="yù", ["鹆"]="yù", ["鹬"]="yù", ["冤"]="yuān", ["涴"]="yuān", ["渊"]="yuān", ["眢"]="yuān", ["箢"]="yuān", ["葾"]="yuān", ["蜎"]="yuān", ["蝝"]="yuān", ["鋺"]="yuān", ["鳶"]="yuān", ["鸢"]="yuān", ["鸳"]="yuān", ["鹓"]="yuān", ["鼘"]="yuān", ["元"]="yuán", ["原"]="yuán", ["员"]="yuán", ["园"]="yuán", ["圆"]="yuán", ["圜"]="yuán", ["垣"]="yuán", ["塬"]="yuán", ["妧"]="yuán", ["媛"]="yuán", ["嫄"]="yuán", ["援"]="yuán", ["橼"]="yuán", ["沅"]="yuán", ["湲"]="yuán", ["源"]="yuán", ["爰"]="yuán", ["猿"]="yuán", ["笎"]="yuán", ["緣"]="yuán", ["縁"]="yuán", ["缘"]="yuán", ["羱"]="yuán", ["芫"]="yuán", ["薗"]="yuán", ["螈"]="yuán", ["袁"]="yuán", ["褑"]="yuán", ["贠"]="yuán", ["辕"]="yuán", ["鈨"]="yuán", ["鶢"]="yuán", ["黿"]="yuán", ["鼋"]="yuán", ["𫘪"]="yuán", ["远"]="yuǎn", ["遠"]="yuǎn", ["垸"]="yuàn", ["怨"]="yuàn", ["愿"]="yuàn", ["掾"]="yuàn", ["瑗"]="yuàn", ["禐"]="yuàn", ["肙"]="yuàn", ["苑"]="yuàn", ["院"]="yuàn", ["願"]="yuàn", ["彟"]="yuē", ["曰"]="yuē", ["約"]="yuē", ["约"]="yuē", ["哕"]="yuě", ["乐"]="yuè", ["刖"]="yuè", ["岳"]="yuè", ["悦"]="yuè", ["月"]="yuè", ["樾"]="yuè", ["瀹"]="yuè", ["爚"]="yuè", ["玥"]="yuè", ["礿"]="yuè", ["籆"]="yuè", ["粤"]="yuè", ["粵"]="yuè", ["越"]="yuè", ["趯"]="yuè", ["跃"]="yuè", ["躍"]="yuè", ["軏"]="yuè", ["钺"]="yuè", ["閱"]="yuè", ["阅"]="yuè", ["龠"]="yuè", ["𫐄"]="yuè", ["𬸚"]="yuè", ["氲"]="yūn", ["煴"]="yūn", ["蒕"]="yūn", ["贇"]="yūn", ["赟"]="yūn", ["頵"]="yūn", ["𫖳"]="yūn", ["云"]="yún", ["匀"]="yún", ["妘"]="yún", ["昀"]="yún", ["沄"]="yún", ["涢"]="yún", ["眃"]="yún", ["筠"]="yún", ["筼"]="yún", ["縜"]="yún", ["繧"]="yún", ["纭"]="yún", ["耘"]="yún", ["芸"]="yún", ["蒷"]="yún", ["郧"]="yún", ["鋆"]="yún", ["雲"]="yún", ["允"]="yǔn", ["殒"]="yǔn", ["狁"]="yǔn", ["陨"]="yǔn", ["霣"]="yǔn", ["馻"]="yǔn", ["孕"]="yùn", ["恽"]="yùn", ["愠"]="yùn", ["晕"]="yùn", ["熨"]="yùn", ["緷"]="yùn", ["腪"]="yùn", ["蕴"]="yùn", ["藴"]="yùn", ["蘊"]="yùn", ["賱"]="yùn", ["运"]="yùn", ["運"]="yùn", ["郓"]="yùn", ["酝"]="yùn", ["醖"]="yùn", ["醞"]="yùn", ["韗"]="yùn", ["韫"]="yùn", ["韵"]="yùn", ["韻"]="yùn", ["餫"]="yùn", ["匝"]="zā", ["咂"]="zā", ["拶"]="zā", ["紮"]="zā", ["臜"]="zā", ["臢"]="zā", ["鉔"]="zā", ["杂"]="zá", ["砸"]="zá", ["襍"]="zá", ["雑"]="zá", ["雜"]="zá", ["韴"]="zá", ["咋"]="zǎ", ["哉"]="zāi", ["栽"]="zāi", ["灾"]="zāi", ["甾"]="zāi", ["賳"]="zāi", ["宰"]="zǎi", ["崽"]="zǎi", ["載"]="zǎi", ["载"]="zǎi", ["再"]="zài", ["在"]="zài", ["縡"]="zài", ["酨"]="zài", ["篸"]="zān", ["簪"]="zān", ["糌"]="zān", ["咱"]="zán", ["寁"]="zǎn", ["攒"]="zǎn", ["昝"]="zǎn", ["趱"]="zǎn", ["暂"]="zàn", ["瓒"]="zàn", ["讚"]="zàn", ["贊"]="zàn", ["赞"]="zàn", ["蹔"]="zàn", ["酂"]="zàn", ["酇"]="zàn", ["錾"]="zàn", ["饡"]="zàn", ["牂"]="zāng", ["臧"]="zāng", ["赃"]="zāng", ["髒"]="zāng", ["驵"]="zǎng", ["奘"]="zàng", ["脏"]="zàng", ["臓"]="zàng", ["臟"]="zàng", ["葬"]="zàng", ["糟"]="zāo", ["蹧"]="zāo", ["遭"]="zāo", ["凿"]="záo", ["鑿"]="záo", ["早"]="zǎo", ["枣"]="zǎo", ["澡"]="zǎo", ["璪"]="zǎo", ["藻"]="zǎo", ["蚤"]="zǎo", ["唣"]="zào", ["噪"]="zào", ["慥"]="zào", ["灶"]="zào", ["燥"]="zào", ["皂"]="zào", ["竈"]="zào", ["簉"]="zào", ["艁"]="zào", ["譟"]="zào", ["趮"]="zào", ["躁"]="zào", ["造"]="zào", ["𥖨"]="zào", ["则"]="zé", ["啧"]="zé", ["帻"]="zé", ["择"]="zé", ["泽"]="zé", ["礋"]="zé", ["笮"]="zé", ["箦"]="zé", ["舴"]="zé", ["蠌"]="zé", ["責"]="zé", ["责"]="zé", ["赜"]="zé", ["迮"]="zé", ["齰"]="zé", ["仄"]="zè", ["昃"]="zè", ["蠈"]="zéi", ["賊"]="zéi", ["贼"]="zéi", ["鲗"]="zéi", ["怎"]="zěn", ["谮"]="zèn", ["䎖"]="zēng", ["增"]="zēng", ["憎"]="zēng", ["矰"]="zēng", ["磳"]="zēng", ["繒"]="zēng", ["缯"]="zēng", ["罾"]="zēng", ["譄"]="zēng", ["鄫"]="zēng", ["甑"]="zèng", ["贈"]="zèng", ["赠"]="zèng", ["鋥"]="zèng", ["锃"]="zèng", ["哳"]="zhā", ["喳"]="zhā", ["奓"]="zhā", ["扎"]="zhā", ["挓"]="zhā", ["揸"]="zhā", ["楂"]="zhā", ["渣"]="zhā", ["蹅"]="zhā", ["齄"]="zhā", ["齇"]="zhā", ["劄"]="zhá", ["札"]="zhá", ["譗"]="zhá", ["铡"]="zhá", ["闸"]="zhá", ["霅"]="zhá", ["拃"]="zhǎ", ["眨"]="zhǎ", ["砟"]="zhǎ", ["苲"]="zhǎ", ["鲊"]="zhǎ", ["鲝"]="zhǎ", ["䃎"]="zhà", ["乍"]="zhà", ["吒"]="zhà", ["咤"]="zhà", ["柞"]="zhà", ["栅"]="zhà", ["榨"]="zhà", ["溠"]="zhà", ["炸"]="zhà", ["痄"]="zhà", ["蚱"]="zhà", ["詐"]="zhà", ["诈"]="zhà", ["醡"]="zhà", ["摘"]="zhāi", ["斋"]="zhāi", ["齋"]="zhāi", ["宅"]="zhái", ["翟"]="zhái", ["窄"]="zhǎi", ["债"]="zhài", ["寨"]="zhài", ["瘵"]="zhài", ["砦"]="zhài", ["旃"]="zhān", ["栴"]="zhān", ["毡"]="zhān", ["沾"]="zhān", ["瞻"]="zhān", ["薝"]="zhān", ["詀"]="zhān", ["詹"]="zhān", ["譫"]="zhān", ["讝"]="zhān", ["谵"]="zhān", ["邅"]="zhān", ["霑"]="zhān", ["饘"]="zhān", ["驙"]="zhān", ["鱣"]="zhān", ["鳣"]="zhān", ["鸇"]="zhān", ["鹯"]="zhān", ["𫗴"]="zhān", ["展"]="zhǎn", ["崭"]="zhǎn", ["搌"]="zhǎn", ["斩"]="zhǎn", ["盏"]="zhǎn", ["盞"]="zhǎn", ["輾"]="zhǎn", ["辗"]="zhǎn", ["醆"]="zhǎn", ["飐"]="zhǎn", ["偡"]="zhàn", ["占"]="zhàn", ["战"]="zhàn", ["栈"]="zhàn", ["湛"]="zhàn", ["站"]="zhàn", ["绽"]="zhàn", ["菚"]="zhàn", ["蘸"]="zhàn", ["嫜"]="zhāng", ["张"]="zhāng", ["彰"]="zhāng", ["暲"]="zhāng", ["樟"]="zhāng", ["漳"]="zhāng", ["獐"]="zhāng", ["璋"]="zhāng", ["章"]="zhāng", ["粻"]="zhāng", ["蔁"]="zhāng", ["蟑"]="zhāng", ["鄣"]="zhāng", ["鏱"]="zhāng", ["餦"]="zhāng", ["騿"]="zhāng", ["麞"]="zhāng", ["仉"]="zhǎng", ["掌"]="zhǎng", ["鐣"]="zhǎng", ["鞝"]="zhǎng", ["丈"]="zhàng", ["仗"]="zhàng", ["嶂"]="zhàng", ["帐"]="zhàng", ["幛"]="zhàng", ["杖"]="zhàng", ["涨"]="zhàng", ["瘴"]="zhàng", ["瞕"]="zhàng", ["胀"]="zhàng", ["脹"]="zhàng", ["账"]="zhàng", ["障"]="zhàng", ["招"]="zhāo", ["昭"]="zhāo", ["謿"]="zhāo", ["钊"]="zhāo", ["駋"]="zhāo", ["鼂"]="zhāo", ["𬬿"]="zhāo", ["找"]="zhǎo", ["沼"]="zhǎo", ["爪"]="zhǎo", ["兆"]="zhào", ["召"]="zhào", ["旐"]="zhào", ["曌"]="zhào", ["棹"]="zhào", ["照"]="zhào", ["笊"]="zhào", ["罩"]="zhào", ["肇"]="zhào", ["诏"]="zhào", ["赵"]="zhào", ["趙"]="zhào", ["鮡"]="zhào", ["𬶐"]="zhào", ["遮"]="zhē", ["哲"]="zhé", ["喆"]="zhé", ["折"]="zhé", ["摺"]="zhé", ["晢"]="zhé", ["磔"]="zhé", ["粍"]="zhé", ["蛰"]="zhé", ["蜇"]="zhé", ["袩"]="zhé", ["詟"]="zhé", ["謺"]="zhé", ["谪"]="zhé", ["輒"]="zhé", ["辄"]="zhé", ["辙"]="zhé", ["啫"]="zhě", ["者"]="zhě", ["褶"]="zhě", ["赭"]="zhě", ["鍺"]="zhě", ["锗"]="zhě", ["䗪"]="zhè", ["柘"]="zhè", ["浙"]="zhè", ["蔗"]="zhè", ["蟅"]="zhè", ["这"]="zhè", ["這"]="zhè", ["鹧"]="zhè", ["侦"]="zhēn", ["帧"]="zhēn", ["幀"]="zhēn", ["斟"]="zhēn", ["桢"]="zhēn", ["榛"]="zhēn", ["浈"]="zhēn", ["溱"]="zhēn", ["珍"]="zhēn", ["瑧"]="zhēn", ["甄"]="zhēn", ["眞"]="zhēn", ["真"]="zhēn", ["砧"]="zhēn", ["祯"]="zhēn", ["禎"]="zhēn", ["禛"]="zhēn", ["箴"]="zhēn", ["胗"]="zhēn", ["臻"]="zhēn", ["蓁"]="zhēn", ["貞"]="zhēn", ["贞"]="zhēn", ["針"]="zhēn", ["鉁"]="zhēn", ["针"]="zhēn", ["鱵"]="zhēn", ["昣"]="zhěn", ["枕"]="zhěn", ["畛"]="zhěn", ["疹"]="zhěn", ["眕"]="zhěn", ["稹"]="zhěn", ["缜"]="zhěn", ["袗"]="zhěn", ["覙"]="zhěn", ["診"]="zhěn", ["诊"]="zhěn", ["轸"]="zhěn", ["鬒"]="zhěn", ["圳"]="zhèn", ["振"]="zhèn", ["揕"]="zhèn", ["朕"]="zhèn", ["眹"]="zhèn", ["紖"]="zhèn", ["絼"]="zhèn", ["纼"]="zhèn", ["赈"]="zhèn", ["鎭"]="zhèn", ["鎮"]="zhèn", ["镇"]="zhèn", ["阵"]="zhèn", ["陣"]="zhèn", ["震"]="zhèn", ["鸩"]="zhèn", ["争"]="zhēng", ["峥"]="zhēng", ["征"]="zhēng", ["徵"]="zhēng", ["怔"]="zhēng", ["烝"]="zhēng", ["狰"]="zhēng", ["癥"]="zhēng", ["睁"]="zhēng", ["筝"]="zhēng", ["箏"]="zhēng", ["篜"]="zhēng", ["蒸"]="zhēng", ["钲"]="zhēng", ["铮"]="zhēng", ["拯"]="zhěng", ["整"]="zhěng", ["挣"]="zhèng", ["政"]="zhèng", ["正"]="zhèng", ["症"]="zhèng", ["証"]="zhèng", ["證"]="zhèng", ["证"]="zhèng", ["诤"]="zhèng", ["郑"]="zhèng", ["之"]="zhī", ["卮"]="zhī", ["支"]="zhī", ["枝"]="zhī", ["栀"]="zhī", ["榰"]="zhī", ["汁"]="zhī", ["泜"]="zhī", ["知"]="zhī", ["祗"]="zhī", ["禔"]="zhī", ["禵"]="zhī", ["織"]="zhī", ["织"]="zhī", ["肢"]="zhī", ["胑"]="zhī", ["胝"]="zhī", ["脂"]="zhī", ["芝"]="zhī", ["蜘"]="zhī", ["衼"]="zhī", ["隻"]="zhī", ["鳷"]="zhī", ["鴲"]="zhī", ["鼅"]="zhī", ["𦭜"]="zhī", ["侄"]="zhí", ["值"]="zhí", ["埴"]="zhí", ["执"]="zhí", ["摭"]="zhí", ["植"]="zhí", ["殖"]="zhí", ["直"]="zhí", ["禃"]="zhí", ["絷"]="zhí", ["职"]="zhí", ["職"]="zhí", ["膱"]="zhí", ["跖"]="zhí", ["踯"]="zhí", ["蹠"]="zhí", ["只"]="zhǐ", ["咫"]="zhǐ", ["址"]="zhǐ", ["扺"]="zhǐ", ["指"]="zhǐ", ["旨"]="zhǐ", ["枳"]="zhǐ", ["止"]="zhǐ", ["沚"]="zhǐ", ["祉"]="zhǐ", ["紙"]="zhǐ", ["纸"]="zhǐ", ["芷"]="zhǐ", ["茝"]="zhǐ", ["藢"]="zhǐ", ["衹"]="zhǐ", ["觝"]="zhǐ", ["趾"]="zhǐ", ["轵"]="zhǐ", ["酯"]="zhǐ", ["阯"]="zhǐ", ["黹"]="zhǐ", ["制"]="zhì", ["寘"]="zhì", ["峙"]="zhì", ["帙"]="zhì", ["帜"]="zhì", ["庤"]="zhì", ["彘"]="zhì", ["志"]="zhì", ["忮"]="zhì", ["挚"]="zhì", ["掷"]="zhì", ["晊"]="zhì", ["智"]="zhì", ["栉"]="zhì", ["桎"]="zhì", ["梽"]="zhì", ["治"]="zhì", ["滍"]="zhì", ["滞"]="zhì", ["炙"]="zhì", ["畤"]="zhì", ["疐"]="zhì", ["痔"]="zhì", ["痣"]="zhì", ["秩"]="zhì", ["秲"]="zhì", ["稙"]="zhì", ["稚"]="zhì", ["窒"]="zhì", ["紩"]="zhì", ["緻"]="zhì", ["置"]="zhì", ["翐"]="zhì", ["胵"]="zhì", ["至"]="zhì", ["致"]="zhì", ["芖"]="zhì", ["蛭"]="zhì", ["袟"]="zhì", ["袠"]="zhì", ["製"]="zhì", ["覟"]="zhì", ["觯"]="zhì", ["誌"]="zhì", ["質"]="zhì", ["贄"]="zhì", ["质"]="zhì", ["贽"]="zhì", ["跱"]="zhì", ["踬"]="zhì", ["轾"]="zhì", ["郅"]="zhì", ["鋕"]="zhì", ["鑕"]="zhì", ["铚"]="zhì", ["锧"]="zhì", ["陟"]="zhì", ["隲"]="zhì", ["雉"]="zhì", ["騺"]="zhì", ["驇"]="zhì", ["骘"]="zhì", ["鴙"]="zhì", ["鸷"]="zhì", ["𬃊"]="zhì", ["中"]="zhōng", ["忠"]="zhōng", ["柊"]="zhōng", ["盅"]="zhōng", ["終"]="zhōng", ["终"]="zhōng", ["舯"]="zhōng", ["螤"]="zhōng", ["螽"]="zhōng", ["衷"]="zhōng", ["蹱"]="zhōng", ["鈡"]="zhōng", ["鐘"]="zhōng", ["钟"]="zhōng", ["锺"]="zhōng", ["冢"]="zhǒng", ["种"]="zhǒng", ["種"]="zhǒng", ["肿"]="zhǒng", ["腫"]="zhǒng", ["踵"]="zhǒng", ["仲"]="zhòng", ["众"]="zhòng", ["眾"]="zhòng", ["茽"]="zhòng", ["諥"]="zhòng", ["重"]="zhòng", ["周"]="zhōu", ["啁"]="zhōu", ["婤"]="zhōu", ["州"]="zhōu", ["洲"]="zhōu", ["盩"]="zhōu", ["粥"]="zhōu", ["舟"]="zhōu", ["譸"]="zhōu", ["诪"]="zhōu", ["赒"]="zhōu", ["輈"]="zhōu", ["輖"]="zhōu", ["辀"]="zhōu", ["週"]="zhōu", ["鸼"]="zhōu", ["妯"]="zhóu", ["碡"]="zhóu", ["軸"]="zhóu", ["轴"]="zhóu", ["帚"]="zhǒu", ["箒"]="zhǒu", ["肘"]="zhǒu", ["㑇"]="zhòu", ["㤘"]="zhòu", ["咒"]="zhòu", ["宙"]="zhòu", ["昼"]="zhòu", ["皱"]="zhòu", ["籀"]="zhòu", ["籒"]="zhòu", ["紂"]="zhòu", ["纣"]="zhòu", ["绉"]="zhòu", ["胄"]="zhòu", ["荮"]="zhòu", ["酎"]="zhòu", ["驟"]="zhòu", ["骤"]="zhòu", ["侏"]="zhū", ["朱"]="zhū", ["株"]="zhū", ["槠"]="zhū", ["橥"]="zhū", ["洙"]="zhū", ["潴"]="zhū", ["猪"]="zhū", ["珠"]="zhū", ["硃"]="zhū", ["秼"]="zhū", ["茱"]="zhū", ["藷"]="zhū", ["蛛"]="zhū", ["蠩"]="zhū", ["諸"]="zhū", ["诛"]="zhū", ["诸"]="zhū", ["豬"]="zhū", ["邾"]="zhū", ["铢"]="zhū", ["鼄"]="zhū", ["欘"]="zhú", ["烛"]="zhú", ["瘃"]="zhú", ["竹"]="zhú", ["竺"]="zhú", ["笜"]="zhú", ["舳"]="zhú", ["茿"]="zhú", ["蠋"]="zhú", ["蠾"]="zhú", ["躅"]="zhú", ["逐"]="zhú", ["钃"]="zhú", ["鸀"]="zhú", ["主"]="zhǔ", ["嘱"]="zhǔ", ["拄"]="zhǔ", ["渚"]="zhǔ", ["煮"]="zhǔ", ["瞩"]="zhǔ", ["矚"]="zhǔ", ["砫"]="zhǔ", ["詝"]="zhǔ", ["麈"]="zhǔ", ["𬣞"]="zhǔ", ["伫"]="zhù", ["住"]="zhù", ["助"]="zhù", ["杼"]="zhù", ["柱"]="zhù", ["柷"]="zhù", ["注"]="zhù", ["炷"]="zhù", ["疰"]="zhù", ["祝"]="zhù", ["祩"]="zhù", ["竚"]="zhù", ["筑"]="zhù", ["箸"]="zhù", ["築"]="zhù", ["紵"]="zhù", ["纻"]="zhù", ["羜"]="zhù", ["翥"]="zhù", ["苎"]="zhù", ["苧"]="zhù", ["著"]="zhù", ["蛀"]="zhù", ["註"]="zhù", ["貯"]="zhù", ["贮"]="zhù", ["跓"]="zhù", ["鑄"]="zhù", ["铸"]="zhù", ["駐"]="zhù", ["驻"]="zhù", ["麆"]="zhù", ["抓"]="zhuā", ["膼"]="zhuā", ["髽"]="zhuā", ["拽"]="zhuài", ["睉"]="zhuài", ["䏝"]="zhuān", ["专"]="zhuān", ["砖"]="zhuān", ["磚"]="zhuān", ["耑"]="zhuān", ["鄟"]="zhuān", ["顓"]="zhuān", ["颛"]="zhuān", ["転"]="zhuǎn", ["轉"]="zhuǎn", ["转"]="zhuǎn", ["僎"]="zhuàn", ["啭"]="zhuàn", ["撰"]="zhuàn", ["瑑"]="zhuàn", ["篆"]="zhuàn", ["簨"]="zhuàn", ["蒃"]="zhuàn", ["賺"]="zhuàn", ["赚"]="zhuàn", ["饌"]="zhuàn", ["馔"]="zhuàn", ["妆"]="zhuāng", ["庄"]="zhuāng", ["桩"]="zhuāng", ["粧"]="zhuāng", ["荘"]="zhuāng", ["莊"]="zhuāng", ["装"]="zhuāng", ["裝"]="zhuāng", ["壮"]="zhuàng", ["幢"]="zhuàng", ["戆"]="zhuàng", ["撞"]="zhuàng", ["状"]="zhuàng", ["椎"]="zhuī", ["追"]="zhuī", ["錐"]="zhuī", ["锥"]="zhuī", ["隹"]="zhuī", ["骓"]="zhuī", ["坠"]="zhuì", ["惴"]="zhuì", ["礈"]="zhuì", ["笍"]="zhuì", ["綴"]="zhuì", ["縋"]="zhuì", ["缀"]="zhuì", ["缒"]="zhuì", ["諈"]="zhuì", ["贅"]="zhuì", ["赘"]="zhuì", ["醊"]="zhuì", ["錣"]="zhuì", ["餟"]="zhuì", ["窀"]="zhūn", ["肫"]="zhūn", ["衠"]="zhūn", ["諄"]="zhūn", ["谆"]="zhūn", ["迍"]="zhūn", ["准"]="zhǔn", ["𬘯"]="zhǔn", ["䦃"]="zhuō", ["倬"]="zhuō", ["拙"]="zhuō", ["捉"]="zhuō", ["桌"]="zhuō", ["棁"]="zhuō", ["涿"]="zhuō", ["䓬"]="zhuó", ["卓"]="zhuó", ["叕"]="zhuó", ["啄"]="zhuó", ["擢"]="zhuó", ["斫"]="zhuó", ["斲"]="zhuó", ["晫"]="zhuó", ["椓"]="zhuó", ["汋"]="zhuó", ["浊"]="zhuó", ["浞"]="zhuó", ["濯"]="zhuó", ["灼"]="zhuó", ["琢"]="zhuó", ["着"]="zhuó", ["禚"]="zhuó", ["茁"]="zhuó", ["蠗"]="zhuó", ["諑"]="zhuó", ["诼"]="zhuó", ["酌"]="zhuó", ["鐲"]="zhuó", ["镯"]="zhuó", ["鷟"]="zhuó", ["𬸦"]="zhuó", ["兹"]="zī", ["吱"]="zī", ["咨"]="zī", ["嗞"]="zī", ["姿"]="zī", ["孖"]="zī", ["孜"]="zī", ["孳"]="zī", ["嵫"]="zī", ["淄"]="zī", ["滋"]="zī", ["禌"]="zī", ["秶"]="zī", ["粢"]="zī", ["缁"]="zī", ["茊"]="zī", ["茲"]="zī", ["菑"]="zī", ["葘"]="zī", ["薋"]="zī", ["諮"]="zī", ["谘"]="zī", ["貲"]="zī", ["資"]="zī", ["赀"]="zī", ["资"]="zī", ["趑"]="zī", ["趦"]="zī", ["辎"]="zī", ["鄑"]="zī", ["锱"]="zī", ["镃"]="zī", ["髭"]="zī", ["鯔"]="zī", ["鲻"]="zī", ["鼒"]="zī", ["齜"]="zī", ["龇"]="zī", ["仔"]="zǐ", ["姊"]="zǐ", ["子"]="zǐ", ["梓"]="zǐ", ["滓"]="zǐ", ["秭"]="zǐ", ["笫"]="zǐ", ["籽"]="zǐ", ["紫"]="zǐ", ["耔"]="zǐ", ["虸"]="zǐ", ["訾"]="zǐ", ["字"]="zì", ["恣"]="zì", ["渍"]="zì", ["眥"]="zì", ["眦"]="zì", ["胔"]="zì", ["胾"]="zì", ["自"]="zì", ["倧"]="zōng", ["宗"]="zōng", ["棕"]="zōng", ["磫"]="zōng", ["綜"]="zōng", ["緵"]="zōng", ["综"]="zōng", ["腙"]="zōng", ["踨"]="zōng", ["踪"]="zōng", ["蹤"]="zōng", ["騣"]="zōng", ["骔"]="zōng", ["鬃"]="zōng", ["鬉"]="zōng", ["鬷"]="zōng", ["鯮"]="zōng", ["偬"]="zǒng", ["总"]="zǒng", ["縂"]="zǒng", ["總"]="zǒng", ["蓗"]="zǒng", ["疭"]="zòng", ["粽"]="zòng", ["糉"]="zòng", ["縱"]="zòng", ["纵"]="zòng", ["緅"]="zōu", ["菆"]="zōu", ["諏"]="zōu", ["诌"]="zōu", ["诹"]="zōu", ["邹"]="zōu", ["鄹"]="zōu", ["陬"]="zōu", ["驺"]="zōu", ["鲰"]="zōu", ["齺"]="zōu", ["走"]="zǒu", ["鯐"]="zǒu", ["奏"]="zòu", ["揍"]="zòu", ["租"]="zū", ["菹"]="zū", ["卒"]="zú", ["崒"]="zú", ["族"]="zú", ["稡"]="zú", ["箤"]="zú", ["紣"]="zú", ["足"]="zú", ["镞"]="zú", ["俎"]="zǔ", ["珇"]="zǔ", ["祖"]="zǔ", ["組"]="zǔ", ["组"]="zǔ", ["詛"]="zǔ", ["诅"]="zǔ", ["阻"]="zǔ", ["躜"]="zuān", ["躦"]="zuān", ["繤"]="zuǎn", ["纂"]="zuǎn", ["纉"]="zuǎn", ["纘"]="zuǎn", ["缵"]="zuǎn", ["攥"]="zuàn", ["鑽"]="zuàn", ["钻"]="zuàn", ["纗"]="zuī", ["嘴"]="zuǐ", ["觜"]="zuǐ", ["最"]="zuì", ["槜"]="zuì", ["罪"]="zuì", ["蕞"]="zuì", ["醉"]="zuì", ["尊"]="zūn", ["嶟"]="zūn", ["樽"]="zūn", ["繜"]="zūn", ["罇"]="zūn", ["遵"]="zūn", ["鐏"]="zūn", ["鳟"]="zūn", ["鶎"]="zūn", ["鷷"]="zūn", ["𨱔"]="zūn", ["僔"]="zǔn", ["噂"]="zǔn", ["撙"]="zǔn", ["銌"]="zùn", ["嘬"]="zuō", ["捽"]="zuó", ["昨"]="zuó", ["稓"]="zuó", ["筰"]="zuó", ["佐"]="zuǒ", ["左"]="zuǒ", ["作"]="zuò", ["做"]="zuò", ["唑"]="zuò", ["坐"]="zuò", ["岞"]="zuò", ["座"]="zuò", ["怍"]="zuò", ["祚"]="zuò", ["胙"]="zuò", ["蓙"]="zuò", ["酢"]="zuò", ["阼"]="zuò", } return export t8zmw3bys3p2qk141t68xnfc9dppou4 Modul:tili 828 154829 628862 628796 2024-11-06T14:31:34Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628862 Scribunto text/plain local require = require local m_str_utils = require("Module:string utilities") local m_table = require("Module:table") local mw = mw local string = string local table = table local ustring = mw.ustring local char = string.char local check_object = require("Module:utilities").check_object local concat = table.concat local decode_entities = m_str_utils.decode_entities local decode_uri = m_str_utils.decode_uri local find = string.find local floor = math.floor local gmatch = string.gmatch local gsub = string.gsub local insert = table.insert local ipairs = ipairs local list_to_set = m_table.listToSet local load_data = mw.loadData local match = string.match local next = next local pairs = pairs local pattern_escape = m_str_utils.pattern_escape local remove = table.remove local remove_duplicates = m_table.removeDuplicates local replacement_escape = m_str_utils.replacement_escape local select = select local setmetatable = setmetatable local shallowcopy = m_table.shallowcopy local split = m_str_utils.split local type = type local ugsub = ustring.gsub local ulen = m_str_utils.len local ulower = m_str_utils.lower local umatch = ustring.match local uupper = m_str_utils.upper -- Loaded as needed by findBestScript. local Hans_chars local Hant_chars local export = {} --[=[ This module implements fetching of language-specific information and processing text in a given language. There are two types of languages: full languages and etymology-only languages. The essential difference is that only full languages appear in L2 headings in vocabulary entries, and hence categories like [[:Category:French nouns]] exist only for full languages. Etymology-only languages have either a full language or another etymology-only language as their parent (in the parent-child inheritance sense), and for etymology-only languages with another etymology-only language as their parent, a full language can always be derived by following the parent links upwards. For example, "Canadian French", code 'fr-CA', is an etymology-only language whose parent is the full language "French", code 'fr'. An example of an etymology-only language with another etymology-only parent is "Northumbrian Old English", code 'ang-nor', which has "Anglian Old English", code 'ang-ang' as its parent; this is an etymology-only language whose parent is "Old English", code "ang", which is a full language. (This is because Northumbrian Old English is considered a variety of Anglian Old English.) Sometimes the parent is the "Undetermined" language, code 'und'; this is the case, for example, for "substrate" languages such as "Pre-Greek", code 'qsb-grc', and "the BMAC substrate", code 'qsb-bma'. It is important to distinguish language ''parents'' from language ''ancestors''. The parent-child relationship is one of containment, i.e. if X is a child of Y, X is considered a variety of Y. On the other hand, the ancestor-descendant relationship is one of descent in time. For example, "Classical Latin", code 'la-cla', and "Late Latin", code 'la-lat', are both etymology-only languages with "Latin", code 'la', as their parents, because both of the former are varieties of Latin. However, Late Latin does *NOT* have Classical Latin as its parent because Late Latin is *not* a variety of Classical Latin; rather, it is a descendant. There is in fact a separate 'ancestors' field that is used to express the ancestor-descendant relationship, and Late Latin's ancestor is given as Classical Latin. It is also important to note that sometimes an etymology-only language is actually the conceptual ancestor of its parent language. This happens, for example, with "Old Italian" (code 'roa-oit'), which is an etymology-only variant of full language "Italian" (code 'it'), and with "Old Latin" (code 'itc-ola'), which is an etymology-only variant of Latin. In both cases, the full language has the etymology-only variant listed as an ancestor. This allows a Latin term to inherit from Old Latin using the {{tl|inh}} template (where in this template, "inheritance" refers to ancestral inheritance, i.e. inheritance in time, rather than in the parent-child sense); likewise for Italian and Old Italian. Full languages come in three subtypes: * {regular}: This indicates a full language that is attested according to [[WT:CFI]] and therefore permitted in the main namespace. There may also be reconstructed terms for the language, which are placed in the {Reconstruction} namespace and must be prefixed with * to indicate a reconstruction. Most full languages are natural (not constructed) languages, but a few constructed languages (e.g. Esperanto and Volapük, among others) are also allowed in the mainspace and considered regular languages. * {reconstructed}: This language is not attested according to [[WT:CFI]], and therefore is allowed only in the {Reconstruction} namespace. All terms in this language are reconstructed, and must be prefixed with *. Languages such as Proto-Indo-European and Proto-Germanic are in this category. * {appendix-constructed}: This language is attested but does not meet the additional requirements set out for constructed languages ([[WT:CFI#Constructed languages]]). Its entries must therefore be in the Appendix namespace, but they are not reconstructed and therefore should not have * prefixed in links. Most constructed languages are of this subtype. Both full languages and etymology-only languages have a {Language} object associated with them, which is fetched using the {getByCode} function in [[Module:tili]] to convert a language code to a {Language} object. Depending on the options supplied to this function, etymology-only languages may or may not be accepted, and family codes may be accepted (returning a {Family} object as described in [[Module:families]]). There are also separate {getByCanonicalName} functions in [[Module:tili]] and [[Module:etymology languages]] to convert a language's canonical name to a {Language} object (depending on whether the canonical name refers to a full or etymology-only language). Textual strings belonging to a given language come in several different ''text variants'': # The ''input text'' is what the user supplies in wikitext, in the parameters to {{tl|m}}, {{tl|l}}, {{tl|ux}}, {{tl|t}}, {{tl|lang}} and the like. # The ''display text'' is the text in the form as it will be displayed to the user. This can include accent marks that are stripped to form the entry text (see below), as well as embedded bracketed links that are variously processed further. The display text is generated from the input text by applying language-specific transformations; for most languages, there will be no such transformations. Examples of transformations are bad-character replacements for certain languages (e.g. replacing 'l' or '1' to [[palochka]] in certain languages in Cyrillic); and for Thai and Khmer, converting space-separated words to bracketed words and resolving respelling substitutions such as [กรีน/กฺรีน], which indicate how to transliterate given words. # The ''entry text'' is the text in the form used to generate a link to a Wiktionary entry. This is usually generated from the display text by stripping certain sorts of diacritics on a per-language basis, and sometimes doing other transformations. The concept of ''entry text'' only really makes sense for text that does not contain embedded links, meaning that display text containing embedded links will need to have the links individually processed to get per-link entry text in order to generate the resolved display text (see below). # The ''resolved display text'' is the result of resolving embedded links in the display text (e.g. converting them to two-part links where the first part has entry-text transformations applied, and adding appropriate language-specific fragments) and adding appropriate language and script tagging. This text can be passed directly to MediaWiki for display. # The ''source translit text'' is the text as supplied to the language-specific {transliterate()} method. The form of the source translit text may need to be language-specific, e.g Thai and Khmer will need the full unprocessed input text, whereas other languages may need to work off the display text. [FIXME: It's still unclear to me how embedded bracketed links are handled in the existing code.] In general, embedded links need to be removed (i.e. converted to their "bare display" form by taking the right part of two-part links and removing double brackets), but when this happens is unclear to me [FIXME]. Some languages have a chop-up-and-paste-together scheme that sends parts of the text through the transliterate mechanism, and for others (those listed in {contiguous_substition} in [[Module:tili/data]]) they receive the full input text, but preprocessed in certain ways. (The wisdom of this is still unclear to me.) # The ''transliterated text'' (or ''transliteration'') is the result of transliterating the source translit text. Unlike for all the other text variants except the transcribed text, it is always in the Latin script. # The ''transcribed text'' (or ''transcription'') is the result of transcribing the source translit text, where "transcription" here means a close approximation to the phonetic form of the language in languages (e.g. Akkadian, Sumerian, Ancient Egyptian, maybe Tibetan) that have a wide difference between the written letters and spoken form. Unlike for all the other text variants other than the transliterated text, it is always in the Latin script. Currently, the transcribed text is always supplied manually be the user; there is no such thing as a {lua|transcribe()} method on language objects. # The ''sort key'' is the text used in sort keys for determining the placing of pages in categories they belong to. The sort key is generated from the pagename or a specified ''sort base'' by lowercasing, doing language-specific transformations and then uppercasing the result. If the sort base is supplied and is generated from input text, it needs to be converted to display text, have embedded links removed (i.e. resolving them to their right side if they are two-part links) and have entry text transformations applied. # There are other text variants that occur in usexes (specifically, there are normalized variants of several of the above text variants), but we can skip them for now. The following methods exist on {Language} objects to convert between different text variants: # {makeDisplayText}: This converts input text to display text. # {lua|makeEntryName}: This converts input or display text to entry text. [FIXME: This needs some rethinking. In particular, {lua|makeEntryName} is sometimes called on display text (in some paths inside of [[Module:links]]) and sometimes called on input text (in other paths inside of [[Module:links]], and usually from other modules). We need to make sure we don't try to convert input text to display text twice, but at the same time we need to support calling it directly on input text since so many modules do this. This means we need to add a parameter indicating whether the passed-in text is input or display text; if that former, we call {lua|makeDisplayText} ourselves.] # {lua|transliterate}: This appears to convert input text with embedded brackets removed into a transliteration. [FIXME: This needs some rethinking. In particular, it calls {lua|processDisplayText} on its input, which won't work for Thai and Khmer, so we may need language-specific flags indicating whether to pass the input text directly to the language transliterate method. In addition, I'm not sure how embedded links are handled in the existing translit code; a lot of callers remove the links themselves before calling {lua|transliterate()}, which I assume is wrong.] # {lua|makeSortKey}: This converts entry text (?) to a sort key. [FIXME: Clarify this.] ]=] local function track(page) require("Module:debug/track")("languages/" .. page) return true end local function conditionalRequire(modname, useRequire) return (useRequire and require or load_data)(modname) end local function normalize_code(code, useRequire) return conditionalRequire("Module:tili/data", useRequire).aliases[code] or code end -- Convert risky characters to HTML entities, which minimizes interference once returned (e.g. for "sms:a", "<!-- -->" etc.). local function escape_risky_characters(text) local encode_entities = require("Module:string/encode entities") -- Spacing characters in isolation generally need to be escaped in order to be properly processed by the MediaWiki software. if umatch(text, "^%s*$") then return encode_entities(text, text) else return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}") end end -- Temporarily convert various formatting characters to PUA to prevent them from being disrupted by the substitution process. local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim) -- Clone so that we don't insert any extra patterns into the table in package.loaded. For some reason, using require seems to keep memory use down; probably because the table is always cloned. local patterns = shallowcopy(require("Module:languages/data/patterns")) if keepCarets then insert(patterns, "((\\+)%^)") insert(patterns, "((%^))") end -- Ensure any whitespace at the beginning and end is temp substituted, to prevent it from being accidentally trimmed. We only want to trim any final spaces added during the substitution process (e.g. by a module), which means we only do this during the first round of temp substitutions. if not noTrim then insert(patterns, "^([\128-\191\244]*(%s+))") insert(patterns, "((%s+)[\128-\191\244]*)$") end -- Pre-substitution, of "[[" and "]]", which makes pattern matching more accurate. text = gsub(text, "%f[%[]%[%[", "\1") :gsub("%f[%]]%]%]", "\2") local i = #subbedChars for _, pattern in ipairs(patterns) do -- Patterns ending in \0 stand are for things like "[[" or "]]"), so the inserted PUA are treated as breaks between terms by modules that scrape info from pages. local term_divider pattern = gsub(pattern, "%z$", function(divider) term_divider = divider == "\0" return "" end) text = gsub(text, pattern, function(...) local m = {...} local m1New = m[1] for k = 2, #m do local n = i + k - 1 subbedChars[n] = m[k] local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136) local byte3 = floor(n / 64) % 64 + 128 local byte4 = n % 64 + 128 m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1) end i = i + #m - 1 return m1New end) end text = gsub(text, "\1", "%[%[") :gsub("\2", "%]%]") return text, subbedChars end -- Reinsert any formatting that was temporarily substituted. local function undoTempSubstitutions(text, subbedChars) for i = 1, #subbedChars do local byte2 = floor(i / 4096) % 64 + 128 local byte3 = floor(i / 64) % 64 + 128 local byte4 = i % 64 + 128 text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4), replacement_escape(subbedChars[i])) end text = gsub(text, "\1", "%[%[") :gsub("\2", "%]%]") return text end -- Check if the raw text is an unsupported title, and if so return that. Otherwise, remove HTML entities. We do the pre-conversion to avoid loading the unsupported title list unnecessarily. local function checkNoEntities(self, text) local textNoEnc = decode_entities(text) if textNoEnc ~= text and self:loadData("Module:links/data").unsupported_titles[text] then return text else return textNoEnc end end -- If no script object is provided (or if it's invalid or None), get one. local function checkScript(text, self, sc) if not check_object("script", true, sc) or sc:getCode() == "None" then return self:findBestScript(text) else return sc end end local function normalize(text, sc) text = sc:fixDiscouragedSequences(text) return sc:toFixedNFD(text) end -- Split the text into sections, based on the presence of temporarily substituted formatting characters, then iterate over each one to apply substitutions. This avoids putting PUA characters through language-specific modules, which may be unequipped for them. local function iterateSectionSubstitutions(text, subbedChars, keepCarets, self, sc, substitution_data, function_name) local fail, cats, sections = nil, {} -- See [[Module:tili/data]]. if not find(text, "\244") or self:loadData("Module:tili/data").contiguous_substitution[self._code] then sections = {text} else sections = split(text, "\244[\128-\143][\128-\191]*", true) end for _, section in ipairs(sections) do -- Don't bother processing empty strings or whitespace (which may also not be handled well by dedicated modules). if gsub(section, "%s+", "") ~= "" then local sub, sub_fail, sub_cats = require("Module:languages/doSubstitutions")(section, self, sc, substitution_data, function_name) -- Second round of temporary substitutions, in case any formatting was added by the main substitution process. However, don't do this if the section contains formatting already (as it would have had to have been escaped to reach this stage, and therefore should be given as raw text). if sub and subbedChars then local noSub for _, pattern in ipairs(require("Module:languages/data/patterns")) do if match(section, pattern .. "%z?") then noSub = true end end if not noSub then sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true) end end if (not sub) or sub_fail then text = sub fail = sub_fail cats = sub_cats or {} break end text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text if type(sub_cats) == "table" then for _, cat in ipairs(sub_cats) do insert(cats, cat) end end end end -- Trim, unless there are only spacing characters, while ignoring any final formatting characters. text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2") :gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") -- Remove duplicate categories. if #cats > 1 then cats = remove_duplicates(cats) end return text, fail, cats, subbedChars end -- Process carets (and any escapes). Default to simple removal, if no pattern/replacement is given. local function processCarets(text, pattern, repl) local rep repeat text, rep = gsub(text, "\\\\(\\*^)", "\3%1") until rep == 0 return text:gsub("\\^", "\4") :gsub(pattern or "%^", repl or "") :gsub("\3", "\\") :gsub("\4", "^") end -- Remove carets if they are used to capitalize parts of transliterations (unless they have been escaped). local function removeCarets(text, sc) if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then return processCarets(text) else return text end end local Language = {} function Language:loadData(modname) return (self._useRequire and require or mw.loadData)(modname) end --[==[Returns the language code of the language. Example: {{code|lua|"fr"}} for French.]==] function Language:getCode() return self._code end --[==[Returns the canonical name of the language. This is the name used to represent that language on Wiktionary, and is guaranteed to be unique to that language alone. Example: {{code|lua|"French"}} for French.]==] function Language:getCanonicalName() local name = self._name if name == nil then name = self._rawData[1] self._name = name end return name end --[==[ Return the display form of the language. The display form of a language, family or script is the form it takes when appearing as the <code><var>source</var></code> in categories such as <code>English terms derived from <var>source</var></code> or <code>English given names from <var>source</var></code>, and is also the displayed text in {makeCategoryLink()} links. For full and etymology-only languages, this is the same as the canonical name, but for families, it reads <code>"<var>name</var> languages"</code> (e.g. {"Indo-Iranian languages"}), and for scripts, it reads <code>"<var>name</var> script"</code> (e.g. {"Arabic script"}). ]==] function Language:getDisplayForm() local form = self._displayForm if form == nil then form = self:getCanonicalName() -- Add article and " substrate" to substrates that lack them. if self:getFamilyCode() == "qfa-sub" then if not (match(form, "^[Tt]he ") or match(form, "^[Aa] ")) then form = "a " .. form end if not match(form, "[Ss]ubstrate") then form = form .. " substrate" end end self._displayForm = form end return form end --[==[Returns the value which should be used in the HTML lang= attribute for tagged text in the language.]==] function Language:getHTMLAttribute(sc, region) local code = self._code if not find(code, "-", 1, true) then return code .. "-" .. sc:getCode() .. (region and "-" .. region or "") end local parent = self:getParent() region = region or match(code, "%f[%u][%u-]+%f[%U]") if parent then return parent:getHTMLAttribute(sc, region) end -- TODO: ISO family codes can also be used. return "mis-" .. sc:getCode() .. (region and "-" .. region or "") end --[==[Returns a table of the "other names" that the language is known by, excluding the canonical name. The names are not guaranteed to be unique, in that sometimes more than one language is known by the same name. Example: {{code|lua|{"Manx Gaelic", "Northern Manx", "Southern Manx"} }} for [[:Category:Manx language|Manx]]. If <code>onlyOtherNames</code> is given and is non-{{code|lua|nil}}, only names explicitly listed in the <code>otherNames</code> field are returned; otherwise, names listed under <code>otherNames</code>, <code>aliases</code> and <code>varieties</code> are combined together and returned. For example, for Manx, Manx Gaelic is listed as an alias, while Northern Manx and Southern Manx are listed as varieties. It should be noted that the <code>otherNames</code> field itself is deprecated, and entries listed there should eventually be moved to either <code>aliases</code> or <code>varieties</code>.]==] function Language:getOtherNames(onlyOtherNames) if #self._stack == 1 then self:loadInExtraData() end return require("Module:language-like").getOtherNames(self, onlyOtherNames) end --[==[Returns a table of the aliases that the language is known by, excluding the canonical name. Aliases are synonyms for the language in question. The names are not guaranteed to be unique, in that sometimes more than one language is known by the same name. Example: {{code|lua|{"High German", "New High German", "Deutsch"} }} for [[:Category:German language|German]].]==] function Language:getAliases() if #self._stack == 1 then self:loadInExtraData() end return self._rawData.aliases or (self._extraData and self._extraData.aliases) or {} end --[==[ Return a table of the known subvarieties of a given language, excluding subvarieties that have been given explicit etymology-only language codes. The names are not guaranteed to be unique, in that sometimes a given name refers to a subvariety of more than one language. Example: {{code|lua|{"Southern Aymara", "Central Aymara"} }} for [[:Category:Aymara language|Aymara]]. Note that the returned value can have nested tables in it, when a subvariety goes by more than one name. Example: {{code|lua|{"North Azerbaijani", "South Azerbaijani", {"Afshar", "Afshari", "Afshar Azerbaijani", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} for [[:Category:Azerbaijani language|Azerbaijani]]. Here, for example, Afshar, Afshari, Afshar Azerbaijani and Afchar all refer to the same subvariety, whose preferred name is Afshar (the one listed first). To avoid a return value with nested tables in it, specify a non-{{code|lua|nil}} value for the <code>flatten</code> parameter; in that case, the return value would be {{code|lua|{"North Azerbaijani", "South Azerbaijani", "Afshar", "Afshari", "Afshar Azerbaijani", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}. ]==] function Language:getVarieties(flatten) if #self._stack == 1 then self:loadInExtraData() end return require("Module:language-like").getVarieties(self, flatten) end --[==[Returns a table of types as a lookup table (with the types as keys). The possible types are * {language}: This is a language, either full or etymology-only. * {full}: This is a "full" (not etymology-only) language, i.e. the union of {regular}, {reconstructed} and {appendix-constructed}. Note that the types {full} and {etymology-only} also exist for families, so if you want to check specifically for a full language and you have an object that might be a family, you should use {{lua|hasType("language", "full")}} and not simply {{lua|hasType("full")}}. * {etymology-only}: This is an etymology-only (not full) language, whose parent is another etymology-only language or a full language. Note that the types {full} and {etymology-only} also exist for families, so if you want to check specifically for an etymology-only language and you have an object that might be a family, you should use {{lua|hasType("language", "etymology-only")}} and not simply {{lua|hasType("etymology-only")}}. * {regular}: This indicates a full language that is attested according to [[WT:CFI]] and therefore permitted in the main namespace. There may also be reconstructed terms for the language, which are placed in the {Reconstruction} namespace and must be prefixed with * to indicate a reconstruction. Most full languages are natural (not constructed) languages, but a few constructed languages (e.g. Esperanto and Volapük, among others) are also allowed in the mainspace and considered regular languages. * {reconstructed}: This language is not attested according to [[WT:CFI]], and therefore is allowed only in the {Reconstruction} namespace. All terms in this language are reconstructed, and must be prefixed with *. Languages such as Proto-Indo-European and Proto-Germanic are in this category. * {appendix-constructed}: This language is attested but does not meet the additional requirements set out for constructed languages ([[WT:CFI#Constructed languages]]). Its entries must therefore be in the Appendix namespace, but they are not reconstructed and therefore should not have * prefixed in links. ]==] function Language:getTypes() local types = self._types if types == nil then types = {language = true} if self:getFullCode() == self._code then types.full = true else types["etymology-only"] = true end for t in gmatch(self._rawData.type, "[^,]+") do types[t] = true end self._types = types end return types end --[==[Given a list of types as strings, returns true if the language has all of them.]==] function Language:hasType(...) local args, types = {...}, self:getTypes() for i = 1, #args do if not types[args[i]] then return false end end return true end --[==[Returns a table containing <code>WikimediaLanguage</code> objects (see [[Module:wikimedia languages]]), which represent languages and their codes as they are used in Wikimedia projects for interwiki linking and such. More than one object may be returned, as a single Wiktionary language may correspond to multiple Wikimedia languages. For example, Wiktionary's single code <code>sh</code> (Serbo-Croatian) maps to four Wikimedia codes: <code>sh</code> (Serbo-Croatian), <code>bs</code> (Bosnian), <code>hr</code> (Croatian) and <code>sr</code> (Serbian). The code for the Wikimedia language is retrieved from the <code>wikimedia_codes</code> property in the data modules. If that property is not present, the code of the current language is used. If none of the available codes is actually a valid Wikimedia code, an empty table is returned.]==] function Language:getWikimediaLanguages() local wm_langs = self._wikimediaLanguageObjects if wm_langs == nil then local get_wm_lang = require("Module:wikimedia languages").getByCode local codes = self:getWikimediaLanguageCodes() wm_langs = {} for i = 1, #codes do wm_langs[i] = get_wm_lang(codes[i]) end self._wikimediaLanguageObjects = wm_langs end return wm_langs end function Language:getWikimediaLanguageCodes() local wm_langs = self._wikimediaLanguageCodes if wm_langs == nil then wm_langs = self._rawData.wikimedia_codes wm_langs = wm_langs and split(wm_langs, ",", true, true) or {self._code} self._wikimediaLanguageCodes = wm_langs end return wm_langs end --[==[ Returns the name of the Wikipedia article for the language. `project` specifies the language and project to retrieve the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and `noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if `noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the return value will fall back to a link to the language's category, but this won't normally happen for any other project. ]==] function Language:getWikipediaArticle(noCategoryFallback, project) project = project or "enwiki" local cached_value if project == "enwiki" then cached_value = self._wikipedia_article if cached_value == nil then cached_value = self._rawData.wikipedia_article end else -- If the project isn't enwiki, default to no category fallback, but this can be overridden by specifying the -- value `false`. if noCategoryFallback == nil then noCategoryFallback = true end if self._non_en_wikipedia_articles == nil then self._non_en_wikipedia_articles = {} end cached_value = self._non_en_wikipedia_articles[project] end if cached_value == nil then -- not false if self:getWikidataItem() and mw.wikibase then cached_value = mw.wikibase.sitelink(self:getWikidataItem(), project) end if not cached_value then cached_value = false end end -- Now cache the determined value. if project == "enwiki" then self._wikipedia_article = cached_value else self._non_en_wikipedia_articles[project] = cached_value end if not cached_value and not noCategoryFallback then return gsub(self:getCategoryName(), "Creole language", "Creole") end return cached_value or nil end function Language:makeWikipediaLink() return "[[w:" .. self:getWikipediaArticle() .. "|" .. self:getCanonicalName() .. "]]" end --[==[Returns the Wikidata item id for the language or <code>nil</code>. This corresponds to the the second field in the data modules.]==] function Language:getWikidataItem() local item = self._WikidataItem if item == nil then item = self._rawData[2] -- If the value is nil, it's cached as false. item = item ~= nil and (type(item) == "number" and "Q" .. item or item) or false self._WikidataItem = item end return item or nil end --[==[Returns a table of <code>Script</code> objects for all scripts that the language is written in. See [[Module:scripts]].]==] function Language:getScripts() local scripts = self._scriptObjects if scripts == nil then local codes = self:getScriptCodes() if codes[1] == "All" then scripts = self:loadData("Module:scripts/data") else local get_script = require("Module:scripts").getByCode scripts = {} for i = 1, #codes do scripts[i] = get_script(codes[i], nil, nil, self._useRequire) end end self._scriptObjects = scripts end return scripts end --[==[Returns the table of script codes in the language's data file.]==] function Language:getScriptCodes() local scripts = self._scriptCodes if scripts == nil then scripts = self._rawData[4] if scripts then local codes, n = {}, 0 for code in gmatch(scripts, "[^,]+") do n = n + 1 -- Special handling of "Hants", which represents "Hani", "Hant" and "Hans" collectively. if code == "Hants" then codes[n] = "Hani" codes[n + 1] = "Hant" codes[n + 2] = "Hans" n = n + 2 else codes[n] = code end end scripts = codes else scripts = {"None"} end self._scriptCodes = scripts end return scripts end --[==[Given some text, this function iterates through the scripts of a given language and tries to find the script that best matches the text. It returns a {{code|lua|Script}} object representing the script. If no match is found at all, it returns the {{code|lua|None}} script object.]==] function Language:findBestScript(text, forceDetect) local useRequire = self._useRequire if not text or text == "" or text == "-" then return require("Module:scripts").getByCode("None", nil, nil, useRequire) end -- Differs from table returned by getScriptCodes, as Hants is not normalized into its constituents. local codes = self._bestScriptCodes if codes == nil then codes = self._rawData[4] codes = codes and split(codes, ",", true, true) or {"None"} self._bestScriptCodes = codes end local first_sc = codes[1] if first_sc == "All" then return require("Module:scripts").findBestScriptWithoutLang(text) end local get_script = require("Module:scripts").getByCode local codes_len = #codes if not (forceDetect or first_sc == "Hants" or codes_len > 1) then first_sc = get_script(first_sc, nil, nil, useRequire) local charset = first_sc.characters return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None", nil, nil, useRequire) end -- Remove all formatting characters. text = require("Module:utilities").get_plaintext(text) -- Remove all spaces and any ASCII punctuation. Some non-ASCII punctuation is script-specific, so can't be removed. text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "") if #text == 0 then return get_script("None", nil, nil, useRequire) end -- Try to match every script against the text, -- and return the one with the most matching characters. local bestcount, bestscript, length = 0 for i = 1, codes_len do local sc = codes[i] -- Special case for "Hants", which is a special code that represents whichever of "Hant" or "Hans" best matches, or "Hani" if they match equally. This avoids having to list all three. In addition, "Hants" will be treated as the best match if there is at least one matching character, under the assumption that a Han script is desirable in terms that contain a mix of Han and other scripts (not counting those which use Jpan or Kore). if sc == "Hants" then local Hani = get_script("Hani", nil, nil, useRequire) if not Hant_chars then Hant_chars = self:loadData("Module:zh/data/ts") Hans_chars = self:loadData("Module:zh/data/st") end local t, s, found = 0, 0 -- This is faster than using mw.ustring.gmatch directly. for ch in gmatch(ugsub(text, "[" .. Hani.characters .. "]", "\255%0"), "\255(.[\128-\191]*)") do found = true if Hant_chars[ch] then t = t + 1 if Hans_chars[ch] then s = s + 1 end elseif Hans_chars[ch] then s = s + 1 else t, s = t + 1, s + 1 end end if found then if t == s then return Hani end return get_script(t > s and "Hant" or "Hans", nil, nil, useRequire) end else sc = get_script(sc, nil, nil, useRequire) if not length then length = ulen(text) end -- Count characters by removing everything in the script's charset and comparing to the original length. local charset = sc.characters local count = charset and length - ulen(ugsub(text, "[" .. charset .. "]+", "")) or 0 if count >= length then return sc elseif count > bestcount then bestcount = count bestscript = sc end end end -- Return best matching script, or otherwise None. return bestscript or get_script("None", nil, nil, useRequire) end --[==[Returns a <code>Family</code> object for the language family that the language belongs to. See [[Module:families]].]==] function Language:getFamily() local family = self._familyObject if family == nil then family = self:getFamilyCode() -- If the value is nil, it's cached as false. family = family and require("Module:families").getByCode(family, self._useRequire) or false self._familyObject = family end return family or nil end --[==[Returns the family code in the language's data file.]==] function Language:getFamilyCode() local family = self._familyCode if family == nil then -- If the value is nil, it's cached as false. family = self._rawData[3] or false self._familyCode = family end return family or nil end function Language:getFamilyName() local family = self._familyName if family == nil then family = self:getFamily() -- If the value is nil, it's cached as false. family = family and family:getCanonicalName() or false self._familyName = family end return family or nil end --[==[Check whether the language belongs to `family` (which can be a family code or object). A list of objects can be given in place of `family`; in that case, return true if the language belongs to any of the specified families. Note that some languages (in particular, certain creoles) can have multiple immediate ancestors potentially belonging to different families; in that case, return true if the language belongs to any of the specified families.]==] function Language:inFamily(...) --check_object("family", nil, ...) for _, family in ipairs{...} do if type(family) == "table" then family = family:getCode() end local self_family_code = self:getFamilyCode() if not self_family_code then return false elseif self_family_code == family then return true end local self_family = self:getFamily() if self_family:inFamily(family) then return true -- If the family isn't a real family (e.g. creoles) check any ancestors. elseif self_family:getFamilyCode() == "qfa-not" then local ancestors = self:getAncestors() for _, ancestor in ipairs(ancestors) do if ancestor:inFamily(family) then return true end end end end return false end function Language:getParent() local parent = self._parentObject if parent == nil then parent = self:getParentCode() -- If the value is nil, it's cached as false. parent = parent and export.getByCode(parent, nil, true, true, self._useRequire) or false self._parentObject = parent end return parent or nil end function Language:getParentCode() local parent = self._parentCode if parent == nil then -- If the value is nil, it's cached as false. parent = self._rawData[5] or false self._parentCode = parent end return parent or nil end function Language:getParentName() local parent = self._parentName if parent == nil then parent = self:getParent() -- If the value is nil, it's cached as false. parent = parent and parent:getCanonicalName() or false self._parentName = parent end return parent or nil end function Language:getParentChain() local chain = self._parentChain if chain == nil then chain = {} local parent, n = self:getParent(), 0 while parent do n = n + 1 chain[n] = parent parent = parent:getParent() end self._parentChain = chain end return chain end function Language:hasParent(...) --check_object("language", nil, ...) for _, otherlang in ipairs{...} do for _, parent in ipairs(self:getParentChain()) do if type(otherlang) == "string" then if otherlang == parent:getCode() then return true end else if otherlang:getCode() == parent:getCode() then return true end end end end return false end --[==[ If the language is etymology-only, this iterates through parents until a full language or family is found, and the corresponding object is returned. If the language is a full language, then it simply returns itself. ]==] function Language:getFull() local full = self._fullObject if full == nil then full = self:getFullCode() full = full == self._code and self or export.getByCode(full, nil, nil, nil, self._useRequire) self._fullObject = full end return full end --[==[ If the language is an etymology-only language, this iterates through parents until a full language or family is found, and the corresponding code is returned. If the language is a full language, then it simply returns the language code. ]==] function Language:getFullCode() return self._fullCode or self._code end --[==[ If the language is an etymology-only language, this iterates through parents until a full language or family is found, and the corresponding canonical name is returned. If the language is a full language, then it simply returns the canonical name of the language. ]==] function Language:getFullName() local full = self._fullName if full == nil then full = self:getFull():getCanonicalName() self._fullName = full end return full end --[==[Returns a table of <code class="nf">Language</code> objects for all languages that this language is directly descended from. Generally this is only a single language, but creoles, pidgins and mixed languages can have multiple ancestors.]==] function Language:getAncestors() if not self._ancestorObjects then self._ancestorObjects = {} local ancestors = shallowcopy(self:getAncestorCodes()) if #ancestors > 0 then for _, ancestor in ipairs(ancestors) do insert(self._ancestorObjects, export.getByCode(ancestor, nil, true, nil, self._useRequire)) end else local fam = self:getFamily() local protoLang = fam and fam:getProtoLanguage() or nil -- For the cases where the current language is the proto-language -- of its family, or an etymology-only language that is ancestral to that -- proto-language, we need to step up a level higher right from the -- start. if protoLang and ( protoLang:getCode() == self._code or (self:hasType("etymology-only") and protoLang:hasAncestor(self)) ) then fam = fam:getFamily() protoLang = fam and fam:getProtoLanguage() or nil end while not protoLang and not (not fam or fam:getCode() == "qfa-not") do fam = fam:getFamily() protoLang = fam and fam:getProtoLanguage() or nil end insert(self._ancestorObjects, protoLang) end end return self._ancestorObjects end do -- Avoid a language being its own ancestor via class inheritance. We only need to check for this if the language has inherited an ancestor table from its parent, because we never want to drop ancestors that have been explicitly set in the data. -- Recursively iterate over ancestors until we either find self or run out. If self is found, return true. local function check_ancestor(self, lang) local codes = lang:getAncestorCodes() if not codes then return nil end for i = 1, #codes do local code = codes[i] if code == self._code then return true end local anc = export.getByCode(code, nil, true, nil, self._useRequire) if check_ancestor(self, anc) then return true end end end --[==[Returns a table of <code class="nf">Language</code> codes for all languages that this language is directly descended from. Generally this is only a single language, but creoles, pidgins and mixed languages can have multiple ancestors.]==] function Language:getAncestorCodes() if self._ancestorCodes then return self._ancestorCodes end local codes = self._rawData.ancestors if not codes then codes = {} self._ancestorCodes = codes return codes end codes = split(codes, ",", true, true) self._ancestorCodes = codes if ( #codes == 0 or #self._stack == 1 or self._stack[#self._stack].ancestors ) then return codes end local i, code = 1 while i <= #codes do code = codes[i] if check_ancestor(self, self) then remove(codes, i) else i = i + 1 end end return codes end end --[==[Given a list of language objects or codes, returns true if at least one of them is an ancestor. This includes any etymology-only children of that ancestor. If the language's ancestor(s) are etymology-only languages, it will also return true for those language parent(s) (e.g. if Vulgar Latin is the ancestor, it will also return true for its parent, Latin). However, a parent is excluded from this if the ancestor is also ancestral to that parent (e.g. if Classical Persian is the ancestor, Persian would return false, because Classical Persian is also ancestral to Persian).]==] function Language:hasAncestor(...) --check_object("language", nil, ...) local function iterateOverAncestorTree(node, func, parent_check) local ancestors = node:getAncestors() local ancestorsParents = {} for _, ancestor in ipairs(ancestors) do local ret = func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check) if ret then return ret end end -- Check the parents of any ancestors. We don't do this if checking the parents of the other language, so that we exclude any etymology-only children of those parents that are not directly related (e.g. if the ancestor is Vulgar Latin and we are checking New Latin, we want it to return false because they are on different ancestral branches. As such, if we're already checking the parent of New Latin (Latin) we don't want to compare it to the parent of the ancestor (Latin), as this would be a false positive; it should be one or the other). if not parent_check then return nil end for _, ancestor in ipairs(ancestors) do local ancestorParents = ancestor:getParentChain() for _, ancestorParent in ipairs(ancestorParents) do if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then break else insert(ancestorsParents, ancestorParent) end end end for _, ancestorParent in ipairs(ancestorsParents) do local ret = func(ancestorParent) if ret then return ret end end end local function do_iteration(otherlang, parent_check) -- otherlang can't be self if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then return false end repeat if iterateOverAncestorTree( self, function(ancestor) return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode()) end, parent_check ) then return true elseif type(otherlang) == "string" then otherlang = export.getByCode(otherlang, nil, true, nil, self._useRequire) end otherlang = otherlang:getParent() parent_check = false until not otherlang end local parent_check = true for _, otherlang in ipairs{...} do local ret = do_iteration(otherlang, parent_check) if ret then return true end end return false end function Language:getAncestorChain() if not self._ancestorChain then self._ancestorChain = {} local step = self while true do local ancestors = step:getAncestors() step = #ancestors == 1 and ancestors[1] or nil if not step then break end insert(self._ancestorChain, 1, step) end end return self._ancestorChain end local function fetch_descendants(self, format) local languages = require("Module:languages/code to canonical name") local etymology_languages = require("Module:etymology languages/code to canonical name") local families = require("Module:families/code to canonical name") local descendants = {} local family = self:getFamily() -- Iterate over all three datasets. for _, data in ipairs{languages, etymology_languages, families} do for code in pairs(data) do local lang = export.getByCode(code, nil, true, true, self._useRequire) -- Test for a descendant. Earlier tests weed out most candidates, while the more intensive tests are only used sparingly. if ( code ~= self._code and -- Not self. lang:inFamily(family) and -- In the same family. ( family:getProtoLanguageCode() == self._code or -- Self is the protolanguage. self:hasDescendant(lang) or -- Full hasDescendant check. (lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Etymology-only child which isn't an ancestor. ) ) then if format == "object" then insert(descendants, lang) elseif format == "code" then insert(descendants, code) elseif format == "name" then insert(descendants, lang:getCanonicalName()) end end end end return descendants end function Language:getDescendants() if not self._descendantObjects then self._descendantObjects = fetch_descendants(self, "object") end return self._descendantObjects end function Language:getDescendantCodes() if not self._descendantCodes then self._descendantCodes = fetch_descendants(self, "code") end return self._descendantCodes end function Language:getDescendantNames() if not self._descendantNames then self._descendantNames = fetch_descendants(self, "name") end return self._descendantNames end function Language:hasDescendant(...) for _, lang in ipairs{...} do if type(lang) == "string" then lang = export.getByCode(lang, nil, true, nil, self._useRequire) end if lang:hasAncestor(self) then return true end end return false end local function fetch_children(self, format) local m_etym_data = require("Module:etymology languages/data") local self_code = self._code local children = {} for code, data in pairs(m_etym_data) do local _data = data repeat local parent = _data[5] if parent == self_code then if format == "object" then insert(children, export.getByCode(code, nil, true, nil, self._useRequire)) elseif format == "code" then insert(children, code) elseif format == "name" then insert(children, data[1]) end break end _data = m_etym_data[parent] until not _data end return children end function Language:getChildren() if not self._childObjects then self._childObjects = fetch_children(self, "object") end return self._childObjects end function Language:getChildrenCodes() if not self._childCodes then self._childCodes = fetch_children(self, "code") end return self._childCodes end function Language:getChildrenNames() if not self._childNames then self._childNames = fetch_children(self, "name") end return self._childNames end function Language:hasChild(...) local lang = ... if not lang then return false elseif type(lang) == "string" then lang = export.getByCode(lang, nil, true, nil, self._useRequire) end if lang:hasParent(self) then return true end return self:hasChild(select(2, ...)) end --[==[Returns the name of the main category of that language. Example: {{code|lua|"French language"}} for French, whose category is at [[:Category:French language]]. Unless optional argument <code>nocap</code> is given, the language name at the beginning of the returned value will be capitalized. This capitalization is correct for category names, but not if the language name is lowercase and the returned value of this function is used in the middle of a sentence.]==] function Language:getCategoryName(nocap) if not self._categoryName then local name = self:getCanonicalName() -- Only add " language" if a full language. if #self._stack == 1 then -- If the name already has "language" in it, don't add it. if not match(name, "[Ll]anguage$") then name = name .. " language" end end self._categoryName = name end if nocap then return self._categoryName else return mw.getContentLanguage():ucfirst(self._categoryName) end end --[==[Creates a link to the category; the link text is the canonical name.]==] function Language:makeCategoryLink() return "[[:Category:" .. self:getCategoryName() .. "|" .. self:getDisplayForm() .. "]]" end function Language:getStandardCharacters(sc) if type(self._rawData.standardChars) ~= "table" then return self._rawData.standardChars else if sc and type(sc) ~= "string" then check_object("script", nil, sc) sc = sc:getCode() end if (not sc) or sc == "None" then local scripts = {} for _, script in pairs(self._rawData.standardChars) do insert(scripts, script) end return concat(scripts) end if self._rawData.standardChars[sc] then return self._rawData.standardChars[sc] .. (self._rawData.standardChars[1] or "") end end end --[==[Make the entry name (i.e. the correct page name).]==] function Language:makeEntryName(text, sc) if (not text) or text == "" then return text, nil, {} end -- Set `unsupported` as true if certain conditions are met. local unsupported -- Check if there's an unsupported character. \239\191\189 is the replacement character U+FFFD, which can't be typed directly here due to an abuse filter. Unix-style dot-slash notation is also unsupported, as it is used for relative paths in links, as are 3 or more consecutive tildes. -- Note: match is faster with magic characters/charsets; find is faster with plaintext. if ( match(text, "[#<>%[%]_{|}]") or find(text, "\239\191\189") or match(text, "%f[^%z/]%.%.?%f[%z/]") or find(text, "~~~") ) then unsupported = true -- If it looks like an interwiki link. elseif find(text, ":") then local prefix = gsub(text, "^:*(.-):.*", ulower) if ( self:loadData("Module:data/namespaces")[prefix] or self:loadData("Module:data/interwikis")[prefix] ) then unsupported = true end end -- Check if the text is a listed unsupported title. local unsupportedTitles = self:loadData("Module:links/data").unsupported_titles if unsupportedTitles[text] then return "Unsupported titles/" .. unsupportedTitles[text], nil, {} end sc = checkScript(text, self, sc) local fail, cats text = normalize(text, sc) text, fail, cats = iterateSectionSubstitutions(text, nil, nil, self, sc, self._rawData.entry_name, "makeEntryName") text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text -- Escape unsupported characters so they can be used in titles. ` is used as a delimiter for this, so a raw use of it in an unsupported title is also escaped here to prevent interference; this is only done with unsupported titles, though, so inclusion won't in itself mean a title is treated as unsupported (which is why it's excluded from the earlier test). if unsupported then local unsupported_characters = self:loadData("Module:links/data").unsupported_characters text = text:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters) :gsub("%f[^%z/]%.%.?%f[%z/]", function(m) return gsub(m, "%.", "`period`") end) :gsub("~~~+", function(m) return gsub(m, "~", "`tilde`") end) text = "Unsupported titles/" .. text end return text, fail, cats end --[==[Generates alternative forms using a specified method, and returns them as a table. If no method is specified, returns a table containing only the input term.]==] function Language:generateForms(text, sc) if self._rawData.generate_forms then sc = checkScript(text, self, sc) return require("Module:" .. self._rawData.generate_forms).generateForms(text, self._code, sc:getCode()) else return {text} end end --[==[Creates a sort key for the given entry name, following the rules appropriate for the language. This removes diacritical marks from the entry name if they are not considered significant for sorting, and may perform some other changes. Any initial hyphen is also removed, and anything parentheses is removed as well. The <code>sort_key</code> setting for each language in the data modules defines the replacements made by this function, or it gives the name of the module that takes the entry name and returns a sortkey.]==] function Language:makeSortKey(text, sc) if (not text) or text == "" then return text, nil, {} end if match(text, "<[^<>]+>") then track("track HTML tag") end -- Remove directional characters, soft hyphens, strip markers and HTML tags. text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "") text = gsub(mw.text.unstrip(text), "<[^<>]+>", "") text = decode_uri(text, "PATH") text = checkNoEntities(self, text) -- Remove initial hyphens and * unless the term only consists of spacing + punctuation characters. text = ugsub(text, "^([􀀀-􏿽]*)[-־ـ᠊*]+([􀀀-􏿽]*)(.*[^%s%p].*)", "%1%2%3") sc = checkScript(text, self, sc) text = normalize(text, sc) text = removeCarets(text, sc) -- For languages with dotted dotless i, ensure that "İ" is sorted as "i", and "I" is sorted as "ı". if self:hasDottedDotlessI() then text = gsub(text, "I\204\135", "i") -- decomposed "İ" :gsub("I", "ı") text = sc:toFixedNFD(text) end -- Convert to lowercase, make the sortkey, then convert to uppercase. Where the language has dotted dotless i, it is usually not necessary to convert "i" to "İ" and "ı" to "I" first, because "I" will always be interpreted as conventional "I" (not dotless "İ") by any sorting algorithms, which will have been taken into account by the sortkey substitutions themselves. However, if no sortkey substitutions have been specified, then conversion is necessary so as to prevent "i" and "ı" both being sorted as "I". -- An exception is made for scripts that (sometimes) sort by scraping page content, as that means they are sensitive to changes in capitalization (as it changes the target page). local fail, cats if not sc:sortByScraping() then text = ulower(text) end text, fail, cats = iterateSectionSubstitutions(text, nil, nil, self, sc, self._rawData.sort_key, "makeSortKey") if not sc:sortByScraping() then if self:hasDottedDotlessI() and not self._rawData.sort_key then text = gsub(gsub(text, "ı", "I"), "i", "İ") text = sc:toFixedNFC(text) end text = uupper(text) end -- Remove parentheses, as long as they are either preceded or followed by something. text = gsub(text, "(.)[()]+", "%1") :gsub("[()]+(.)", "%1") text = escape_risky_characters(text) return text, fail, cats end --[==[Create the form used as as a basis for display text and transliteration.]==] local function processDisplayText(text, self, sc, keepCarets, keepPrefixes) local subbedChars = {} text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets) text = decode_uri(text, "PATH") text = checkNoEntities(self, text) sc = checkScript(text, self, sc) local fail, cats text = normalize(text, sc) text, fail, cats, subbedChars = iterateSectionSubstitutions(text, subbedChars, keepCarets, self, sc, self._rawData.display_text, "makeDisplayText") text = removeCarets(text, sc) -- Remove any interwiki link prefixes (unless they have been escaped or this has been disabled). if find(text, ":") and not keepPrefixes then local rep repeat text, rep = gsub(text, "\\\\(\\*:)", "\3%1") until rep == 0 text = gsub(text, "\\:", "\4") while true do local prefix = gsub(text, "^(.-):.+", function(m1) return gsub(m1, "\244[\128-\191]*", "") end) if not prefix or prefix == text then break end local lower_prefix = ulower(prefix) if not (self:loadData("Module:data/interwikis")[lower_prefix] or prefix == "") then break end text = gsub(text, "^(.-):(.*)", function(m1, m2) local ret = {} for subbedChar in gmatch(m1, "\244[\128-\191]*") do insert(ret, subbedChar) end return concat(ret) .. m2 end) end text = gsub(text, "\3", "\\") :gsub("\4", ":") end return text, fail, cats, subbedChars end --[==[Make the display text (i.e. what is displayed on the page).]==] function Language:makeDisplayText(text, sc, keepPrefixes) if (not text) or text == "" then return text, nil, {} end local fail, cats, subbedChars text, fail, cats, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes) text = escape_risky_characters(text) return undoTempSubstitutions(text, subbedChars), fail, cats end --[==[Transliterates the text from the given script into the Latin script (see [[Wiktionary:Transliteration and romanization]]). The language must have the <code>translit</code> property for this to work; if it is not present, {{code|lua|nil}} is returned. Returns three values: # The transliteration. # A boolean which indicates whether the transliteration failed for an unexpected reason. If {{code|lua|false}}, then the transliteration either succeeded, or the module is returning nothing in a controlled way (e.g. the input was {{code|lua|"-"}}). Generally, this means that no maintenance action is required. If {{code|lua|true}}, then the transliteration is {{code|lua|nil}} because either the input or output was defective in some way (e.g. [[Module:ar-translit]] will not transliterate non-vocalised inputs, and this module will fail partially-completed transliterations in all languages). Note that this value can be manually set by the transliteration module, so make sure to cross-check to ensure it is accurate. # A table of categories selected by the transliteration module, which should be in the format expected by {{code|lua|format_categories}} in [[Module:utilities]]. The <code>sc</code> parameter is handled by the transliteration module, and how it is handled is specific to that module. Some transliteration modules may tolerate {{code|lua|nil}} as the script, others require it to be one of the possible scripts that the module can transliterate, and will show an error if it's not one of them. For this reason, the <code>sc</code> parameter should always be provided when writing non-language-specific code. The <code>module_override</code> parameter is used to override the default module that is used to provide the transliteration. This is useful in cases where you need to demonstrate a particular module in use, but there is no default module yet, or you want to demonstrate an alternative version of a transliteration module before making it official. It should not be used in real modules or templates, only for testing. All uses of this parameter are tracked by [[Wiktionary:Tracking/module_override]]. '''Known bugs''': * This function assumes {tr(s1) .. tr(s2) == tr(s1 .. s2)}. When this assertion fails, wikitext markups like <nowiki>'''</nowiki> can cause wrong transliterations. * HTML entities like <code>&amp;apos;</code>, often used to escape wikitext markups, do not work.]==] function Language:transliterate(text, sc, module_override) -- If there is no text, or the language doesn't have transliteration data and there's no override, return nil. if not (self._rawData.translit or module_override) then return nil, false, {} elseif (not text) or text == "" or text == "-" then return text, false, {} end -- If the script is not transliteratable (and no override is given), return nil. sc = checkScript(text, self, sc) if not (sc:isTransliterated() or module_override) then -- temporary tracking to see if/when this gets triggered track("non-transliterable") track("non-transliterable/" .. self:getCode()) track("non-transliterable/" .. sc:getCode()) track("non-transliterable/" .. sc:getCode() .. "/" .. self:getCode()) return nil, true, {} end -- Remove any strip markers. text = mw.text.unstrip(text) -- Get the display text with the keepCarets flag set. local fail, cats, subbedChars text, fail, cats, subbedChars = processDisplayText(text, self, sc, true) -- Transliterate (using the module override if applicable). text, fail, cats, subbedChars = iterateSectionSubstitutions(text, subbedChars, true, self, sc, module_override or self._rawData.translit, "tr") if not text then return nil, true, cats end -- Incomplete transliterations return nil. local charset = sc.characters if charset and umatch(text, "[" .. charset .. "]") then -- Remove any characters in Latin, which includes Latin characters also included in other scripts (as these are false positives), as well as any PUA substitutions. Anything remaining should only be script code "None" (e.g. numerals). local check_text = ugsub(text, "[" .. require("Module:scripts").getByCode("Latn").characters .. "􀀀-􏿽]+", "") -- Set none_is_last_resort_only flag, so that any non-None chars will cause a script other than "None" to be returned. if require("Module:scripts").findBestScriptWithoutLang(check_text, true):getCode() ~= "None" then return nil, true, cats end end text = escape_risky_characters(text) text = undoTempSubstitutions(text, subbedChars) -- If the script does not use capitalization, then capitalize any letters of the transliteration which are immediately preceded by a caret (and remove the caret). if text and not sc:hasCapitalization() and text:find("^", 1, true) then text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2) return m1 .. uupper(m2) end) end -- Track module overrides. if module_override ~= nil then track("module_override") end fail = text == nil and (not not fail) or false return text, fail, cats end do local function handle_language_spec(self, spec, sc) local ret = self["_" .. spec] if ret == nil then ret = self._rawData[spec] if type(ret) == "string" then ret = list_to_set(split(ret, ",", true, true)) end self["_" .. spec] = ret end if type(ret) == "table" then ret = ret[sc:getCode()] end return not not ret end function Language:overrideManualTranslit(sc) return handle_language_spec(self, "override_translit", sc) end function Language:link_tr(sc) return handle_language_spec(self, "link_tr", sc) end end --[==[Returns {{code|lua|true}} if the language has a transliteration module, or {{code|lua|false}} if it doesn't.]==] function Language:hasTranslit() return not not self._rawData.translit end --[==[Returns {{code|lua|true}} if the language uses the letters I/ı and İ/i, or {{code|lua|false}} if it doesn't.]==] function Language:hasDottedDotlessI() return not not self._rawData.dotted_dotless_i end function Language:toJSON(returnTable) local entryNamePatterns = nil local entryNameRemoveDiacritics = nil if self._rawData.entry_name then entryNameRemoveDiacritics = self._rawData.entry_name.remove_diacritics if self._rawData.entry_name.from then entryNamePatterns = {} for i, from in ipairs(self._rawData.entry_name.from) do insert(entryNamePatterns, {from = from, to = self._rawData.entry_name.to[i] or ""}) end end end -- mainCode should only end up non-nil if dontCanonicalizeAliases is passed to make_object(). local ret = m_table.deepcopy{ ancestors = self:getAncestorCodes(), canonicalName = self:getCanonicalName(), categoryName = self:getCategoryName("nocap"), code = self._code, mainCode = self._main_code, entryNamePatterns = entryNamePatterns, entryNameRemoveDiacritics = entryNameRemoveDiacritics, family = self:getFamilyCode(), otherNames = self:getOtherNames(true), aliases = self:getAliases(), varieties = self:getVarieties(), scripts = self:getScriptCodes(), parent = self._parentCode or nil, full = self._fullCode or nil, type = m_table.keysToList(self:getTypes()), wikimediaLanguages = self:getWikimediaLanguageCodes(), wikidataItem = self:getWikidataItem(), } if returnTable then return ret else return require("Module:JSON").toJSON(ret) end end --[==[ <span style="color: #BA0000">This function is not for use in entries or other content pages.</span> Returns a blob of data about the language. The format of this blob is undocumented, and perhaps unstable; it's intended for things like the module's own unit-tests, which are "close friends" with the module and will be kept up-to-date as the format changes. -- Do NOT use these methods! -- All uses should be pre-approved on the talk page! ]==] function Language:getRawData() local rawData = {} for _, element in ipairs(self._stack) do for k, v in pairs(element) do rawData[k] = v end end return rawData end --[==[<span style="color: #BA0000">This function is not for use in entries or other content pages.</span> Returns a blob of data about the language that contains the "extra data". Much like with getRawData, the format of this blob is undocumented, and perhaps unstable; it's intended for things like the module's own unit-tests, which are "close friends" with the module and will be kept up-to-date as the format changes.]==] function Language:getRawExtraData() if #self._stack == 1 then self:loadInExtraData() end return self._extraData end local function getRawExtraLanguageData(self, code) local modulename = export.getExtraDataModuleName(code) return modulename and self:loadData("Module:" .. modulename)[code] or nil end function Language:loadInExtraData() if not self._extraData then -- load extra data from module and assign to _extraData field -- use empty table as a fallback if extra data is nil self._extraData = getRawExtraLanguageData(self, self._code) or {} end end function export.getDataModuleName(code) local letter = match(code, "^(%l)[%l-]+$") if not letter then return nil elseif find(code, "-", 1, true) then return "languages/data/exceptional" end local code_len = #code return code_len == 2 and "languages/data/2" or code_len == 3 and "languages/data/3/" .. letter or nil end function export.getExtraDataModuleName(code) local dataModule = export.getDataModuleName(code) return dataModule and dataModule .. "/extra" or nil end do local key_types = { [2] = "unique", aliases = "unique", otherNames = "unique", type = "append", varieties = "unique" } function export.makeObject(code, data, useRequire, dontCanonicalizeAliases) if not data then return nil end -- Convert any aliases. local input_code = code code = normalize_code(code, useRequire) input_code = dontCanonicalizeAliases and input_code or code if find(data.type, "family") and not data[5] then return require("Module:families").makeObject(code, data, useRequire) end local parent if data[5] then parent = export.getByCode(data[5], nil, true, true, useRequire) else parent = Language end parent.__index = parent local lang = { _code = input_code, _useRequire = useRequire or nil } -- This can only happen if dontCanonicalizeAliases is passed to make_object(). if code ~= input_code then lang._main_code = code end -- Full language. if not parent._stack then -- Create stack, accessed with rawData metamethod. local stack = parent._rawData and {parent._rawData, data} or {data} lang._stack = stack lang._rawData = setmetatable({}, { __index = function(t, k) local key_type = key_types[k] -- Data that isn't inherited from the parent. if key_type == "unique" then return stack[#stack][k] -- Data that is appended by each generation. elseif key_type == "append" then local parts = {} for i = 1, #stack do insert(parts, stack[i][k]) end if type(parts[1]) == "string" then return concat(parts, ","), true end -- Otherwise, iterate down the stack, looking for a match. else local i = #stack while not stack[i][k] and i > 1 do i = i - 1 end return stack[i][k] end end, -- Retain immutability (as writing to rawData will break functionality). __newindex = function() error("not allowed to edit rawData") end }) -- Full code is the parent code. lang._fullCode = parent._code or code -- Etymology-only. else -- Copy over rawData and stack to the new object, and add new layer to stack. lang._rawData = parent._rawData lang._stack = parent._stack insert(lang._stack, data) -- Copy full code. lang._fullCode = parent._fullCode end return setmetatable(lang, parent) end end --[==[Finds the language whose code matches the one provided. If it exists, it returns a <code class="nf">Language</code> object representing the language. Otherwise, it returns {{code|lua|nil}}, unless <code class="n">paramForError</code> is given, in which case an error is generated. If <code class="n">paramForError</code> is {{code|lua|true}}, a generic error message mentioning the bad code is generated; otherwise <code class="n">paramForError</code> should be a string or number specifying the parameter that the code came from, and this parameter will be mentioned in the error message along with the bad code. If <code class="n">allowEtymLang</code> is specified, etymology-only language codes are allowed and looked up along with normal language codes. If <code class="n">allowFamily</code> is specified, language family codes are allowed and looked up along with normal language codes.]==] function export.getByCode(code, paramForError, allowEtymLang, allowFamily, useRequire) if type(code) ~= "string" then local typ if not code then typ = "nil" elseif check_object("language", true, code) then typ = "a language object" elseif check_object("family", true, code) then typ = "a family object" else typ = "a " .. type(code) end error("The function getByCode expects a string as its first argument, but received " .. typ .. ".") end local m_data = conditionalRequire("Module:tili/data", useRequire) if m_data.aliases[code] or m_data.track[code] then track(code) end local norm_code = normalize_code(code, useRequire) local modulename = export.getDataModuleName(norm_code) local data = modulename and conditionalRequire("Module:" .. modulename, useRequire)[norm_code] or (allowEtymLang and require("Module:etymology languages/track-bad-etym-code")(norm_code) and conditionalRequire("Module:etymology languages/data", useRequire)[norm_code]) or (allowFamily and conditionalRequire("Module:families/data", useRequire)[norm_code]) or (allowEtymLang and allowFamily and require("Module:families/track-bad-etym-code")(norm_code) and conditionalRequire("Module:families/data/etymology", useRequire)[norm_code]) local retval = code and data and export.makeObject(code, data, useRequire) if not retval and paramForError then require("Module:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily) end return retval end --[==[Finds the language whose canonical name (the name used to represent that language on Wiktionary) or other name matches the one provided. If it exists, it returns a <code class="nf">Language</code> object representing the language. Otherwise, it returns {{code|lua|nil}}, unless <code class="n">paramForError</code> is given, in which case an error is generated. If <code class="n">allowEtymLang</code> is specified, etymology-only language codes are allowed and looked up along with normal language codes. If <code class="n">allowFamily</code> is specified, language family codes are allowed and looked up along with normal language codes. The canonical name of languages should always be unique (it is an error for two languages on Wiktionary to share the same canonical name), so this is guaranteed to give at most one result. This function is powered by [[Module:languages/canonical names]], which contains a pre-generated mapping of full-language canonical names to codes. It is generated by going through the [[:Category:Language data modules]] for full languages. When <code class="n">allowEtymLang</code> is specified for the above function, [[Module:etymology languages/canonical names]] may also be used, and when <code class="n">allowFamily</code> is specified for the above function, [[Module:families/canonical names]] may also be used.]==] function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily, useRequire) local byName = conditionalRequire("Module:languages/canonical names", useRequire) local code = byName and byName[name] if not code and allowEtymLang then byName = conditionalRequire("Module:etymology languages/canonical names", useRequire) code = byName and byName[name] or byName[gsub(name, " [Ss]ubstrate$", "")] or byName[gsub(name, "^a ", "")] or byName[gsub(name, "^a ", "") :gsub(" [Ss]ubstrate$", "")] or -- For etymology families like "ira-pro". -- FIXME: This is not ideal, as it allows " languages" to be appended to any etymology-only language, too. byName[match(name, "^(.*) languages$")] end if not code and allowFamily then byName = conditionalRequire("Module:families/canonical names", useRequire) code = byName and byName[name] or byName[match(name, "^(.*) languages$")] end local retval = code and export.getByCode(code, errorIfInvalid, allowEtymLang, allowFamily, useRequire) if not retval and errorIfInvalid then require("Module:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily) end return retval end --[==[Used by [[Module:languages/data/2]] (et al.) to add default types to the entities returned.]==] function export.addDefaultTypes(data, regular, ...) local n = arg.n local types = n > 0 and concat(arg, ",") or "" for _, entity in next, data do -- "regular" encompasses everything that doesn't have another type already assigned. if regular then entity.type = entity.type or "regular" end if n > 0 then entity.type = types .. (entity.type and ("," .. entity.type) or "") end end return data end --[==[Used by [[Module:languages/data/2]] (et al.) and [[Module:etymology languages/data]] to finalize language-related data into the format that is actually returned.]==] function export.finalizeLanguageData(data) -- 4 is scripts. local fields = {4, "ancestors", "link_tr", "override_translit", "type", "wikimedia_codes"} local fields_len = #fields for _, entity in next, data do for i = 1, fields_len do local key = fields[i] local field = entity[key] if field and type(field) == "string" then entity[key] = gsub(field, "%s+", "") end end end return data end --[==[Used by [[Module:etymology languages/data]] and [[Module:families/data/etymology]] to finalize etymology-related data into the format that is actually returned.]==] function export.finalizeEtymologyData(data) local aliases = {} for _, entity in next, data do -- Move parent to 5 and family to 3. entity[5] = entity[3] entity[3] = entity.family entity.family = nil end for code, alias in next, aliases do data[code] = alias end return data end --[==[For backwards compatibility only; modules should require the error themselves.]==] function export.err(lang_code, param, code_desc, template_tag, not_real_lang) return require("Module:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang) end return export 9srh49q3x240xggtbt43k69sizz5kp5 629017 628862 2024-11-07T09:06:40Z Umarxon III 1502 629017 Scribunto text/plain local export = {} local find = mw.ustring.find --[=[ This function checks for things that could plausibly be a language code: two or three lowercase letters, two or three groups of three lowercase letters with hyphens between them. If such a pattern is not found, it is likely the editor simply forgot to enter a language code. ]=] function export.err(langCode, param, text) local ordinals = { "first", "second", "third", "fourth" } if type(param) == "number" then ordinal = ordinals[param] param = ordinal .. ' parameter' elseif type(param) == "string" then param = 'parameter "' .. param .. '"' else error("The parameter name is " .. ( type(param) == "table" and "a table" or tostring(param) ) .. ", but it should be a number or a string.") end --[[ Can't use "%l" because that would include all Unicode lowercase letters; language codes only use ASCII. ]] local lower = "[a-z]" if not langCode or langCode == "" then error("The " .. param .. " (" .. (text or "language code" ) .. ") is missing.", 2) elseif find(langCode, "^" .. lower .. lower .. lower .. "?$") or find(langCode, "^" .. lower .. lower .. lower .. "%-" .. lower .. lower .. lower .. "$") or find(langCode, "^" .. lower .. lower .. lower .. "%-" .. lower .. lower .. lower .. "%-" .. lower .. lower .. lower .. "$") then error("The language code \"" .. langCode .. "\" is not valid.", 2) else error("Please enter a " .. ( text or "language code" ) .. " in the " .. param .. ".", 2) end end local Tili = {} function Tili:getCode() return self._code end function Tili:getCanonicalName() return self._rawData.canonicalName end -- Commented out; I don't think anything uses this, the presence/absence of script errors should confirm --funtsiya Tili:getAllNames() -- return self._rawData.names --end function Tili:getOtherNames() return self._rawData.otherNames or {} end function Tili:getType() return self._rawData.type or "regular" end function Tili:getWikimediaLanguages() if not self._wikimediaLanguageObjects then local m_wikimedia_languages = require("Module:wikimedia languages") self._wikimediaLanguageObjects = {} local wikimedia_codes = self._rawData.wikimedia_codes or {self._code} for _, wlangcode in ipairs(wikimedia_codes) do table.insert(self._wikimediaLanguageObjects, m_wikimedia_languages.getByCode(wlangcode)) end end return self._wikimediaLanguageObjects end function Tili:getWikipediaArticle() return self._rawData.wikipedia_article or self:getCategoryName() end function Tili:makeWikipediaLink() return "[[w:" .. self:getWikipediaArticle() .. "|" .. self:getCanonicalName() .. "]]" end function Tili:getScripts() if not self._scriptObjects then local m_scripts = require("Module:scripts") self._scriptObjects = {} for _, sc in ipairs(self._rawData.scripts or {"None"}) do table.insert(self._scriptObjects, m_scripts.getByCode(sc)) end end return self._scriptObjects end function Tili:getFamily() if self._rawData.family and not self._familyObject then self._familyObject = require("Module:families").getByCode(self._rawData.family) end return self._familyObject end function Tili:getAncestors() if not self._ancestorObjects then self._ancestorObjects = {} if self._rawData.ancestors then for _, ancestor in ipairs(self._rawData.ancestors) do table.insert(self._ancestorObjects, export.getByCode(ancestor) or require("Module:etymology languages").getByCode(ancestor)) end else local fam = self:getFamily() local protoLang = fam and fam:getProtoLanguage() or nil -- For the case where the current language is the proto-language -- of its family, we need to step up a level higher right from the start. if protoLang and protoLang:getCode() == self:getCode() then fam = fam:getFamily() protoLang = fam and fam:getProtoLanguage() or nil end while not protoLang and not (not fam or fam:getCode() == "qfa-not") do fam = fam:getFamily() protoLang = fam and fam:getProtoLanguage() or nil end table.insert(self._ancestorObjects, protoLang) end end return self._ancestorObjects end local function iterateOverAncestorTree(node, func) for _, ancestor in ipairs(node:getAncestors()) do if ancestor then local ret = func(ancestor) or iterateOverAncestorTree(ancestor, func) if ret then return ret end end end end function Tili:getAncestorChain() if not self._ancestorChain then self._ancestorChain = {} local step = #self:getAncestors() == 1 and self:getAncestors()[1] or nil while step do table.insert(self._ancestorChain, 1, step) step = #step:getAncestors() == 1 and step:getAncestors()[1] or nil end end return self._ancestorChain end function Tili:hasAncestor(otherlang) local function compare(ancestor) return ancestor:getCode() == otherlang:getCode() end return iterateOverAncestorTree(self, compare) or false end function Tili:getCategoryName() local name = self._rawData.canonicalName -- If the name already has "language" in it, don't add it. if name:find("[Tt]illar$") then return name else return name .. " tili" end end function Tili:getStandardCharacters() return self._rawData.standardChars end function Tili:makeEntryName(text) text = mw.ustring.gsub(text, "^[¿¡]", "") text = mw.ustring.gsub(text, "(.)[؟?!;՛՜ ՞ ՟?!।॥။၊་།]$", "%1") if self:getCode() == "ar" then local U = mw.ustring.char local taTwiil = U(0x640) local waSla = U(0x671) -- diacritics ordinarily removed by entry_name replacements local Arabic_diacritics = U(0x64B, 0x64C, 0x64D, 0x64E, 0x64F, 0x650, 0x651, 0x652, 0x670) if text == waSla or mw.ustring.find(text, "^" .. taTwiil .. "?[" .. Arabic_diacritics .. "]" .. "$") then return text end end if self._rawData.entry_name then for i, from in ipairs(self._rawData.entry_name.from) do local to = self._rawData.entry_name.to[i] or "" text = mw.ustring.gsub(text, from, to) end end --[=[ For instance, ᾰ (alpha-breve) + combining smooth breathing is converted to alpha + combining smooth breathing by the entry_name replacements. It must be re-combined to alpha-smooth breathing (ἀ) so that allowSelfLink in [[Module:links]] will work properly. ]=] if self:getCode() == "grc" then text = mw.ustring.toNFC(text) end return text end function Tili:makeSortKey(name) name = mw.ustring.lower(name) -- Remove initial hyphens and * local hyphens_regex = "^[-־ـ*]+(.)" name = mw.ustring.gsub(name, hyphens_regex, "%1") -- Remove parentheses, as long as they are either preceded or followed by something name = mw.ustring.gsub(name, "(.)[()]+", "%1") name = mw.ustring.gsub(name, "[()]+(.)", "%1") -- If there are language-specific rules to generate the key, use those if self._rawData.sort_key then for i, from in ipairs(self._rawData.sort_key.from) do local to = self._rawData.sort_key.to[i] or "" name = mw.ustring.gsub(name, from, to) end end return mw.ustring.upper(name) end function Tili:overrideManualTranslit() if self._rawData.override_translit then return true else return false end end function Tili:transliterate(text, sc, module_override) if not ((module_override or self._rawData.translit_module) and text) then return nil end if module_override then require("Module:debug").track("module_override") end return require("Module:" .. (module_override or self._rawData.translit_module)).tr(text, self:getCode(), sc and sc:getCode() or nil) end function Tili:hasTranslit() return self._rawData.translit_module and true or false end function Tili:link_tr() return self._rawData.link_tr and true or false end function Tili:toJSON() local entryNamePatterns = nil if self._rawData.entry_name then entryNamePatterns = {} for i, from in ipairs(self._rawData.entry_name.from) do local to = self._rawData.entry_name.to[i] or "" table.insert(entryNamePatterns, {from = from, to = to}) end end local ret = { ancestors = self._rawData.ancestors, canonicalName = self:getCanonicalName(), categoryName = self:getCategoryName(), code = self._code, entryNamePatterns = entryNamePatterns, family = self._rawData.family, otherNames = self:getOtherNames(), scripts = self._rawData.scripts, type = self:getType(), wikimediaLanguages = self._rawData.wikimedia_codes, } return require("Module:JSON").toJSON(ret) end -- Do NOT use this method! -- All uses should be pre-approved on the talk page! function Tili:getRawData() return self._rawData end Tili.__index = Tili function export.getDataModuleName(code) if code:find("^[a-z][a-z]$") then return "tili/data2" elseif code:find("^[a-z][a-z][a-z]$") then local prefix = code:sub(1, 1) return "tili/data3/" .. prefix elseif code:find("^[a-z-]+$") then return "tili/datax" else return nil end end local function getRawLanguageData(code) local modulename = export.getDataModuleName(code) return modulename and mw.loadData("Module:" .. modulename)[code] or nil end function export.makeObject(code, data) if data and data.deprecated then require("Module:debug").track("tili/eskirgan") require("Module:debug").track("tili/eskirgan/" .. code) end return data and setmetatable({ _rawData = data, _code = code }, Tili) or nil end function export.getByCode(code) return export.makeObject(code, getRawLanguageData(code)) end function export.getByName(name) local byName = mw.loadData("Module:tili/nomi bilan") local code = byName.all and byName.all[name] or byName[name] if not code then return nil end return export.makeObject(code, getRawLanguageData(code)) end function export.getByCanonicalName(name) local byName = mw.loadData("Module:languages/canonical names") local code = byName and byName[name] if not code then return nil end return export.makeObject(code, getRawLanguageData(code)) end function export.iterateAll() mw.incrementExpensiveFunctionCount() local m_data = mw.loadData("Module:tili/alldata") local func, t, var = pairs(m_data) return function() local code, data = func(t, var) return export.makeObject(code, data) end end return export 4d7czpw5pf8gsna7hcrg64symwxyg92 Modul:tili/data 828 154831 629018 628797 2024-11-07T09:40:04Z Xusinboy Bekchanov 1042 [[Special:Contributions/Dalmopereirasilva|Dalmopereirasilva]] ([[User talk:Dalmopereirasilva|munozara]]) tomonidan qilingan [[Special:Diff/628797|628797]]-sonli tahrir qaytarildi 629018 Scribunto text/plain local langs = { ["abq"] = { "abq", "Abazacha" }, ["ab"] = { "ab", "Abxazcha" }, ["av"] = { "av", "Avarcha" }, ["ave"] = { "ave", "Avestocha" }, ["agx"] = { "agx", "Agulcha" }, ["aja"] = { "aja", "Adja", "", "(Sudan)" }, ["ajg"] = { "ajg", "Adja", "", "(Benin)" }, ["ady"] = { "ady", "Adigeycha" }, ["az"] = { "az", "Ozarbayjoncha" }, ["az.cyr"] = { "az", "Ozarbayjoncha", "", "(kir.)" }, ["az.lat"] = { "az", "Ozarbayjoncha", "", "(lat.)" }, ["az.arab"] = { "az", "Ozarbayjoncha", "", "(arabsk.)" }, ["ay"] = { "ay", "Aymarcha" }, ["ain"] = { "ain", "Ayncha" }, ["ain.lat"] = { "ain", "Ayncha", "", "(lat)" }, ["ain.kana"] = { "ain", "Ayncha", "", "(kana)" }, ["akk"] = { "akk", "Akkadcha", "†" }, ["akz"] = { "akz", "Alabamcha" }, ["sq"] = { "sq", "Albancha" }, ["als"] = { "als", "Alemancha" }, ["ale"] = { "ale", "Aleutcha" }, ["alt"] = { "alt", "Oltoycha" }, ["alr"] = { "alr", "Alyutorcha" }, ["am"] = { "am", "Amxarcha" }, ["en"] = { "en", "Inglizcha" }, ["ar"] = { "ar", "Arabcha" }, ["an"] = { "an", "Aragoncha" }, ["arc.syr"] = { "arc", "Arameycha", "", "(sir.)" }, ["arc.jud"] = { "arc", "Arameycha", "", "(iud.)" }, ["arp"] = { "arp", "Arapaxo" }, ["arn"] = { "arn", "Araukancha" }, ["hy"] = { "hy", "Armancha" }, ["rup"] = { "rup", "Arumincha" }, ["aqc"] = { "aqc", "Archincha" }, ["asm"] = { "asm", "Assamcha" }, ["aii"] = { "aii", "Assiriycha" }, ["ast"] = { "ast", "Asturiycha" }, ["auj"] = { "auj", "Audjila" }, ["aar"] = { "aar", "Afarcha" }, ["af"] = { "af", "Afrikaans" }, ["ace"] = { "ace", "Achexcha" }, ["bar"] = { "bar", "Bavarcha" }, ["ban"] = { "ban", "Baliycha" }, ["bm"] = { "bm", "Bambara" }, ["bjn"] = { "bjn", "Bandjarcha" }, ["eu"] = { "eu", "Baskcha" }, ["ba"] = { "ba", "Boshqirdcha" }, ["be"] = { "be", "Beloruscha" }, ["bal"] = { "bal", "Belujcha" }, ["bem"] = { "bem", "Bemba" }, ["bn"] = { "bn", "Bengalcha" }, ["bcl"] = { "bcl", "Bikolcha", "", "(markaziy)" }, ["byn"] = { "byn", "Bilin" }, ["my"] = { "my", "Birmancha" }, ["bib"] = { "bib", "Bisa" }, ["bis"] = { "bis", "Bislama" }, ["bpy"] = { "bpy", "Bishnupriya-manipuri" }, ["akm"] = { "akm", "Bo" }, ["bg"] = { "bg", "Bolgarcha" }, ["bs"] = { "bs", "Bosniycha" }, ["bph"] = { "bph", "Botlixcha" }, ["br"] = { "br", "Bretoncha" }, ["bdk"] = { "bdk", "Buduxcha" }, ["bua"] = { "bua", "Buryatcha" }, ["bug"] = { "bug", "Bugiycha" }, ["vai"] = { "vai", "Vai" }, ["cy"] = { "cy", "Valliycha" }, ["wa"] = { "wa", "Valloncha" }, ["war"] = { "war", "Varaycha" }, ["hu"] = { "hu", "Mojarcha" }, ["ven"] = { "ven", "Venda" }, ["vec"] = { "vec", "Venetcha" }, ["vep"] = { "vep", "Vepscha" }, ["hsb"] = { "hsb", "Verxnelujitcha" }, ["vot"] = { "vot", "Vodcha" }, ["vo"] = { "vo", "Volapyuk", "i" }, ["wo"] = { "wo", "Volof" }, ["stq"] = { "stq", "Vostochnofrizcha" }, ["vro"] = { "vro", "Virucha" }, ["vi"] = { "vi", "Vetnamcha" }, ["haw"] = { "haw", "Gavayаcha" }, ["gag"] = { "gag", "Gagauzcha" }, ["ht"] = { "ht", "Gaityancha" }, ["gl"] = { "gl", "Galisiyаcha" }, ["gan"] = { "gan", "Gan" }, ["ze"] = { "ze", "Genuezcha" }, ["gez"] = { "gez", "Geez" }, ["goe"] = { "goe", "Gongdu" }, ["mrj"] = { "mrj", "Gornomariycha" }, ["got"] = { "got", "Gotcha", "†" }, ["xcl"] = { "xcl", "Grabar" }, ["kl"] = { "kl", "Grenlandcha" }, ["el"] = { "el", "Grechecha" }, ["el.dhi"] = { "el", "Grechecha", "", "(demot.)" }, ["el.kat"] = { "el", "Grechecha", "", "(kafar.)" }, ["ka"] = { "ka", "Gruzincha" }, ["gn"] = { "gn", "Guarani" }, ["gu"] = { "gu", "Gujarati" }, ["gd"] = { "gd", "Gelcha" }, ["dar"] = { "dar", "Dargincha" }, ["prs"] = { "prs", "Dari" }, ["da"] = { "da", "Datcha" }, ["dz"] = { "dz", "Dzong-ke" }, ["dv"] = { "dv", "Divexi" }, ["dlg"] = { "dlg", "Dolgancha" }, ["dgo"] = { "dgo", "Dogri" }, ["ang"] = { "ang", "Qadimgi inglizcha", "†" }, ["obt"] = { "obt", "Qadimgi bretoncha", "†" }, ["goh"] = { "goh", "Qadimgi yuqori nemischa", "†" }, ["grc"] = { "grc", "Qadim grekcha", "†" }, ["hbo"] = { "hbo", "Qadimgi yevreycha", "†" }, ["non"] = { "non", "Qadimgi islandcha", "†" }, ["peo"] = { "peo", "Qadimgi forscha", "†" }, ["orv"] = { "orv", "Qadimgi ruscha", "†" }, ["fic-drw"] = { "", "Drou", "f", "" }, ["dng"] = { "dng", "Dungancha" }, ["egy"] = { "egy", "Misrcha", "†" }, ["arz"] = { "arz", "Misrcha arabcha" }, ["sgs"] = { "sgs", "Jemaytcha" }, ["vls"] = { "vls", "Gʻarbiy flamandcha" }, ["zza"] = { "zza", "Zazaki" }, ["zu"] = { "zu", "Zulu" }, ["he"] = { "he", "Ivrit" }, ["ibo"] = { "ibo", "Igbo" }, ["yi"] = { "yi", "Idish" }, ["io"] = { "io", "Ido", "i" }, ["izh"] = { "izh", "Ijorcha" }, ["ilo"] = { "ilo", "Ilokancha" }, ["smn"] = { "smn", "Inari-saamcha" }, ["inh"] = { "inh", "Ingushcha" }, ["id"] = { "id", "Indonezcha" }, ["ia"] = { "ia", "Interlingva" , "i" }, ["ie"] = { "ie", "Interlingve", "i" }, ["iu"] = { "iu", "Inuktitut" }, ["ik"] = { "ik", "Inupiak" }, ["ga"] = { "ga", "Irlandcha" }, ["is"] = { "is", "Irlandcha" }, ["es"] = { "es", "Ispancha" }, ["it"] = { "it", "Italyancha" }, ["itl"] = { "itl", "Itelmencha" }, ["ith.lat"] = { "ith", "Ifkuil", "i", "(lat.)" }, ["yo"] = { "yo", "Yoruba" }, ["kbd"] = { "kbd", "Kabardin-cherkescha" }, ["kab"] = { "kab", "Qobilcha" }, ["kea"] = { "kea", "Kabuverdyanu" }, ["kk"] = { "kk", "Qozoqcha" }, ["kk.cyr"] = { "kk", "Qozoqcha", "", "(kir.)" }, ["kk.lat"] = { "kk", "Qozoqcha", "", "(lat.)" }, ["kk.arab"] = { "kk", "Qozoqcha", "", "(arab.)" }, ["xal"] = { "xal", "Kalmicha" }, ["rmq"] = { "rmq", "Kalo" }, ["kn"] = { "kn", "Kannada" }, ["pam"] = { "pam", "Kapampangancha" }, ["kdr"] = { "kdr", "Qaraimcha" }, ["kaa"] = { "kaa", "Qoraqalpoqcha" }, ["krc"] = { "krc", "Qorachoy-bolqorcha" }, ["krl"] = { "krl", "Karelcha" }, ["ca"] = { "ca", "Katalancha" }, ["kas"] = { "kas", "Kashmiriy" }, ["csb"] = { "csb", "Kashubcha" }, ["qya"] = { "qya", "Kvenya", "f" }, ["qu"] = { "qu", "Kechua" }, ["kg"] = { "kg", "Kikongo" }, ["kik"] = { "kik", "Kikuyyu" }, ["rw"] = { "rw", "Kinyaruanda" }, ["ky"] = { "ky", "Qirgʻizcha" }, ["gil"] = { "gil", "Kiribati" }, ["run"] = { "run", "Kirundi" }, ["zh"] = { "zh", "Xitoycha" }, ["zh-tw"] = { "", "Xitoycha", "", "(anʼana.)" }, ["wuu"] = { "", "Xitoycha", "", "(u)" }, ["zh-cn"] = { "", "Xitoycha", "", "(sodda.)" }, ["nan"] = { "", "Xitoycha", "", "(janubiy mincha)" }, ["sms"] = { "sms", "Koltta-saamcha" }, ["kom"] = { "kom", "Komi-ziryancha" }, ["koi"] = { "koi", "Komi-permyatcha" }, ["kok"] = { "kok", "Konkani" }, ["cop"] = { "cop", "Koptcha" }, ["ko"] = { "ko", "Koreyscha" }, ["kw"] = { "kw", "Korncha" }, ["co"] = { "co", "Korsikancha" }, ["kpy"] = { "kpy", "Koryakcha" }, ["xh"] = { "xh", "Kosa" }, ["cr"] = { "cr", "Kri" }, ["crh"] = { "crh", "Qrim-tatarcha" }, ["jct"] = { "jct", "Qrimchoqcha" }, ["kum"] = { "kum", "Qumiqcha" }, ["ku"] = { "ku", "Qurdcha" }, ["ku.cyr"] = { "ku", "Qurdcha", "", "(kir.)" }, ["kmr"] = { "kmr", "Qurdcha (kurmandji)", "", "(lat.)" }, ["ckb"] = { "ckb", "Qurdcha (sorani)" }, ["km"] = { "km", "Kxmercha" }, ["lad"] = { "lad", "Ladino" }, ["lld"] = { "lld", "Ladincha" }, ["lzz"] = { "lzz", "Lazcha" }, ["lkt"] = { "lkt", "Lakota" }, ["lbe"] = { "lbe", "Lakcha" }, ["lo"] = { "lo", "Laoscha" }, ["ltg"] = { "ltg", "Latgalcha" }, ["la"] = { "la", "Latincha" }, ["lv"] = { "lv", "Latishcha" }, ["lez"] = { "lez", "Lezgincha" }, ["liv"] = { "liv", "Livcha" }, ["li"] = { "li", "Limburgcha" }, ["ln"] = { "ln", "Lingala" }, ["lt"] = { "lt", "Litovcha" }, ["jbo"] = { "jbo", "Lojban", "i" }, ["lmo"] = { "lmo", "Lombardcha" }, ["lug"] = { "lug", "Luganda" }, ["lb"] = { "lb", "Lyuksemburgcha" }, ["mad"] = { "mad", "Madurcha" }, ["mzn"] = { "mzn", "Mazenderancha" }, ["mak"] = { "mak", "Makasarcha" }, ["mk"] = { "mk", "Makedoncha" }, ["mg"] = { "mg", "Malagasiyacha" }, ["ms"] = { "ms", "Malaycha" }, ["ml"] = { "ml", "Malayalam" }, ["mt"] = { "mt", "Maltiycha" }, ["man.arab"] = { "man", "Mandingo", "", "(arabsk.)" }, ["man.lat"] = { "man", "Mandingo", "", "(lat.)" }, ["mns"] = { "mns", "Mansiycha" }, ["mnc"] = { "mnc", "Manchjurcha" }, ["mi"] = { "mi", "Maori" }, ["mr"] = { "mr", "Maratxi" }, ["chm"] = { "chm", "Mariycha" }, ["mas"] = { "mas", "Masaycha" }, ["xmf"] = { "xmf", "Megrelcha" }, ["ulk"] = { "ulk", "Meriam" }, ["gmy"] = { "gmy", "Mikencha", "†" }, ["omn"] = { "omn", "Minoycha", "†" }, ["cdo"] = { "cdo", "Min-dun" }, ["mwl"] = { "mwl", "Mirandcha" }, ["moh"] = { "moh", "Mogaukcha" }, ["mdf"] = { "mdf", "Mokshancha" }, ["mo"] = { "mo", "Moldavcha" }, ["mn"] = { "mn", "Mongolcha" }, ["mos"] = { "mos", "More" }, ["gv"] = { "gv", "Mencha" }, ["hmn"] = { "hmn", "Myao" }, ["nv"] = { "nv", "Navaxo" }, ["naq"] = { "naq", "Nama" }, ["gld"] = { "gld", "Nanaycha" }, ["nah"] = { "nah", "Nauatl" }, ["na"] = { "na", "Nauru" }, ["nio"] = { "nio", "Nganasancha" }, ["nap"] = { "nap", "Neapolitano-kalabriycha" }, ["new"] = { "new", "Nevarcha" }, ["de"] = { "de", "Nemischa" }, ["yrk"] = { "yrk", "Nenecha" }, ["ne"] = { "ne", "Nepalcha" }, ["niv"] = { "niv", "Nivxcha" }, ["nl"] = { "nl", "Niderlandcha" }, ["dsb"] = { "dsb", "Nijnelujitcha" }, ["nds-nl"] = { "nds-nl", "Nijnenemecha (Niderlandi)" }, ["nds"] = { "nds", "Nijnesaksoncha" }, ["nov"] = { "nov", "Novial" }, ["nog"] = { "nog", "Nogaycha" }, ["no"] = { "no", "Norvejcha" }, ["nb"] = { "nb", "Norvejcha (bukmol)" }, ["nn"] = { "nn", "Norvejcha (nyunorsk)" }, ["roa-nor"] = { "roa-nor", "Normandcha" }, ["pih"] = { "pih", "Norfolkcha" }, ["ii"] = { "ii", "Nosu" }, ["oj"] = { "oj", "Odjibva" }, ["oc"] = { "oc", "Oksitancha" }, ["art-oou"] = { "", "Oou", "i" }, ["or"] = { "or", "Oriya" }, ["om"] = { "om", "Oromo" }, ["os"] = { "os", "Osetincha" }, ["ota"] = { "ota", "Osmancha", "†" }, ["pau"] = { "pau", "Palau" }, ["pi"] = { "pi", "Pali" }, ["pag"] = { "pag", "Pangasinancha" }, ["pa"] = { "pa", "Pandjabi" }, ["pap"] = { "pap", "Papyamentu" }, ["nso"] = { "nso", "Pedi" }, ["fa"] = { "fa", "Forscha" }, ["pcd"] = { "pcd", "Pikardcha" }, ["pox"] = { "pox", "Polabcha", "†" }, ["pl"] = { "pl", "Polcha" }, ["pt"] = { "pt", "Portugalcha" }, ["psl"] = { "", "Praslavyancha", "r" }, ["ppol"] = { "", "Protopolineziycha" }, ["prg"] = { "prg", "Pruscha", "†" }, ["ps"] = { "ps", "Pushtu" }, ["pms"] = { "pms", "Pyemontcha" }, ["rap"] = { "rap", "Rapanuycha" }, ["rm"] = { "rm", "Retoromancha" }, ["ksh"] = { "ksh", "Ripuarcha" }, ["rmy"] = { "rmy", "Romani" }, ["roh"] = { "roh", "Romanshcha" }, ["ro"] = { "ro", "Rumincha" }, ["ru"] = { "ru", "Ruscha" }, ["rue"] = { "rue", "Rusincha" }, ["rut"] = { "rut", "Rutulcha" }, ["sjd"] = { "sjd", "Saamcha (kildincha)" }, ["sm"] = { "sm", "Samoa:" }, ["sg"] = { "sag", "Sango" }, ["sa"] = { "sa", "Sanskrit" }, ["sat"] = { "sat", "Santali" }, ["sc"] = { "sc", "Sardincha" }, ["sva"] = { "sva", "Svancha" }, ["ss"] = { "ss", "Svati" }, ["ceb"] = { "ceb", "Sebuano" }, ["se"] = { "se", "Severnosaamcha" }, ["ykg"] = { "ykg", "Severnoyukagircha" }, ["sel"] = { "sel", "Selkupcha" }, ["sr"] = { "sr", "Serbcha", "", "(kir.)" }, ["sr-l"] = { "sr", "Serbcha", "", "(lat.)" }, ["sh"] = { "sh", "Serbskoxorvatcha" }, ["st"] = { "st", "Sesoto" }, ["szl"] = { "szl", "Silezcha" }, ["si"] = { "si", "Singalcha" }, ["sjn"] = { "", "Sindarin", "f" }, ["sd"] = { "sd", "Sindxi" }, ["syc"] = { "syc", "Siriycha" }, ["scn"] = { "scn", "Sitsiliycha" }, ["sk"] = { "sk", "Slovatcha" }, ["sl"] = { "sl", "Slovencha" }, ["slovio-c"] = { "slovio", "Slovio", "i", "(kir.)" }, ["slovio-l"] = { "slovio", "Slovio", "i", "(lat.)" }, ["sob"] = { "sob", "Sobey" }, ["xog"] = { "xog", "Soga" }, ["sol"] = { "sol", "Solresol", "i" }, ["so"] = { "so", "Somaliycha" }, ["snk"] = { "snk", "Soninke" }, ["srn"] = { "srn", "Sranan-tongo" }, ["enm"] = { "enm", "Oʻrta inglizcha" }, ["xbm"] = { "xbm", "Oʻrta bretoncha" }, ["gmh"] = { "gmh", "Oʻrta yuqori nemischa", "†" }, ["frm"] = { "frm", "Oʻrta fransuzcha" }, ["oen"] = { "oen", "Eski inglizcha" }, ["cu"] = { "cu", "Eski slavyancha", "†" }, ["cu-Cyrl"] = { "cu", "Eski slavyancha", "†", "(kirillitsa.)" }, ["cu-Glag"] = { "cu", "Eski slavyancha", "†", "(glagolitsa)" }, ["fro"] = { "fro", "Eski fransuzcha" }, ["sw"] = { "sw", "Suaxili" }, ["suk"] = { "suk", "Sukuma" }, ["su"] = { "su", "Sundancha" }, ["tab"] = { "tab", "Tabasarancha" }, ["tl"] = { "tl", "Tagalcha" }, ["tg"] = { "tg", "Tojikcha" }, ["ty"] = { "ty", "Taityancha" }, ["th"] = { "th", "Taycha" }, ["tly"] = { "tly", "Talishcha" }, ["tmh"] = { "tmh", "Tamashek" }, ["ta"] = { "ta", "Tamilcha" }, ["tt"] = { "tt", "Tatarcha" }, ["tt.cyr"] = { "tt", "Tatarcha", "", "(kir.)" }, ["tt.lat"] = { "tt", "Tatarcha", "", "(lot.)" }, ["ttt"] = { "ttt", "Tatcha" }, ["te"] = { "te", "Telugu" }, ["tet"] = { "tet", "Tetum" }, ["bo"] = { "bo", "Tibetcha" }, ["tig"] = { "tig", "Tigre" }, ["tir"] = { "tir", "Tigrinya" }, ["art"] = { "art", "Tokipona", "i" }, ["tpi"] = { "tpi", "Tok-pisin" }, ["ksd"] = { "ksd", "Tolai" }, ["to"] = { "to", "Tonga" }, ["kim"] = { "kim", "Tofalarcha" }, ["tn"] = { "tn", "Tsvana" }, ["tso"] = { "tso", "Tsonga" }, ["tvl"] = { "tvl", "Tuvalu" }, ["tyv"] = { "tyv", "Tuvacha" }, ["tcy"] = { "tcy", "Tulu" }, ["tr"] = { "tr", "Turkcha" , "", "", "Turkey" }, ["tk"] = { "tk", "Turkmancha" }, ["uby"] = { "uby", "Ubixcha", "†" }, ["uga"] = { "uga", "Ugaritcha", "†" }, ["udi"] = { "udi", "Udincha" }, ["udm"] = { "udm", "Udmurtcha" }, ["ug"] = { "ug", "Uygʻurcha" }, ["uk"] = { "uk", "Ukraincha" }, ["uz"] = { "uz", "Oʻzbekcha" }, ["ulc"] = { "ulc", "Ulchcha" }, ["ur"] = { "ur", "Urdu" }, ["fo"] = { "fo", "Farercha" }, ["fj"] = { "fj", "Fidji" }, ["fi"] = { "fi", "Fincha" }, ["fon"] = { "fon", "Fon" }, ["frk"] = { "frk", "Frankcha" }, ["fr"] = { "fr", "Fransuzcha" }, ["fy"] = { "fy", "Frizcha" }, ["fur"] = { "fur", "Friulcha" }, ["ff"] = { "", "Fula" }, ["kjh"] = { "kjh", "Xakascha" }, ["hak"] = { "hak", "Xakka" }, ["kca"] = { "kca", "Xantiycha" }, ["ha"] = { "ha", "Xausa" }, ["ha.lat"] = { "ha", "Xausa", "", "(lat.)" }, ["ha.arab"] = { "ha", "Xausa", "", "(arab.)" }, ["hit"] = { "hit", "Xettcha", "†" }, ["hi"] = { "hi", "Hindi" }, ["hr"] = { "hr", "Xorvatcha" }, ["tkr"] = { "tkr", "Saxurcha" }, ["cel"] = { "", "Selincha", "f" }, ["chu-ru"] = { "chu-ru", "Cherkov-slavyancha" }, ["rom"] = { "rom", "Sigancha" }, ["ch"] = { "ch", "Chamorro" }, ["twi"] = { "twi", "Chvi" }, ["chr"] = { "chr", "Cheroki" }, ["ce"] = { "ce", "Chechencha" }, ["cs"] = { "cs", "Cheshcha" }, ["cv"] = { "cv", "Chuvashcha" }, ["ckt"] = { "ckt", "Chukotcha" }, ["chy"] = { "chy", "Shayencha" }, ["sv"] = { "sv", "Shvedcha" }, ["xsr"] = { "xsr", "Sherpcha" }, ["shp"] = { "shp", "Shipibo" }, ["sn"] = { "sn", "Shona" }, ["cjs"] = { "cjs", "Shorcha" }, ["sco"] = { "sco", "Shotlandcha" }, ["sux"] = { "sux", "Shumercha", "†" }, ["ewe"] = { "ewe", "Eve" }, ["evn"] = { "evn", "Evenkiycha" }, ["eve"] = { "eve", "Evencha" }, ["eml"] = { "eml", "Emiliano-romanolcha" }, ["myv"] = { "myv", "Erzyancha" }, ["eo"] = { "eo", "Esperanto", "i" }, ["et"] = { "et", "Estoncha" }, ["ext"] = { "ext", "Estremadurcha" }, ["yux"] = { "yux", "Janubiy yukagircha" }, ["yua"] = { "yua", "Yukatekcha" }, ["yue"] = { "yue", "Yue" }, ["jv"] = { "jv", "Yavancha" }, ["sah"] = { "sah", "Yoqutcha" }, ["ium"] = { "ium", "Yao" }, ["ja"] = { "ja", "Yaponcha" } } return langs; im6lyed1shjmwnnlt4bot7faaravon4 Modul:links/data 828 156200 628865 616326 2024-11-06T14:36:03Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628865 Scribunto text/plain local u = require("Module:string utilities").char local data = {} data.phonetic_extraction = { ["th"] = "Module:th", ["km"] = "Module:km", } data.ignored_prefixes = { ["cat"] = true, ["category"] = true, ["file"] = true, ["image"] = true } data.pos_tags = { ["a"] = "adjective", ["adv"] = "adverb", ["int"] = "interjection", ["n"] = "noun", ["pron"] = "pronoun", ["v"] = "verb", ["vi"] = "intransitive verb", ["vt"] = "transitive verb", ["vti"] = "transitive and intransitive verb", } -- Scheme for using unsupported characters in titles. data.unsupported_characters = { ["#"] = "`num`", ["%"] = "`percnt`", -- only escaped in percent encoding ["&"] = "`amp`", -- only escaped in HTML entities ["."] = "`period`", -- only escaped in dot-slash notation ["<"] = "`lt`", [">"] = "`gt`", ["["] = "`lsqb`", ["]"] = "`rsqb`", ["_"] = "`lowbar`", ["`"] = "`grave`", -- used to enclose unsupported characters in the scheme, so a raw use in an unsupported title must be escaped to prevent interference ["{"] = "`lcub`", ["|"] = "`vert`", ["}"] = "`rcub`", ["~"] = "`tilde`", -- only escaped when 3 or more are consecutive ["\239\191\189"] = "`repl`" -- replacement character U+FFFD, which can't be typed directly here due to an abuse filter } -- Manually specified unsupported titles. Only put titles here if there is a different reason why they are unsupported, and not just because they contain one of the unsupported characters above. data.unsupported_titles = { [" "] = "Space", ["&amp;"] = "`amp`amp;", ["λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερύγων"] = "Ancient Greek dish", ["กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์"] = "Thai name of Bangkok", [u(0x1680)] = "Ogham space", [u(0x3000)] = "Ideographic space" } return data g6ncjfrtxplwvi82hfow7nkp5ouda1p Modul:script utilities/data 828 156201 628867 551811 2024-11-06T14:41:09Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628867 Scribunto text/plain local data = {} data.translit = { ["term"] = { --[=[ can't be done until Kana transliterations are correctly parsed by [[Module:links]] ["tag"] = "i", ]=] ["classes"] = "mention-tr", }, ["usex"] = { ["tag"] = "i", ["classes"] = "e-transliteration", }, ["head"] = { ["classes"] = "headword-tr", ["dir"] = "ltr", }, ["default"] = {}, } data.transcription = { ["head"] = { ["tag"] = "span", ["classes"] = "headword-ts", ["dir"] = "ltr", }, ["usex"] = { tag = "span", ["classes"] = "e-transcription", }, ["default"] = {}, } for key, value in pairs(data.translit) do if not value.tag then value.tag = "span" end end local faces = {} faces["term"] = { tag = "i", class = "mention", } faces["head"] = { tag = "strong", class = "headword", } faces["hypothetical"] = { prefix = '<span class="hypothetical-star">*</span>', tag = "i", class = "hypothetical", } faces["bold"] = { tag = "b", } faces["plain"] = { tag = "span", } faces["translation"] = faces["plain"] data.faces = faces return data d9tzexz3vr1wn8kcubal00m8ecrhod1 ethernet 0 158245 628869 606716 2024-11-06T14:47:28Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE /* Tillar */ 628869 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == == Aytilishi == == Etimologiyasi == Dastlab Xeroxning savdo belgisi sifatida ether+‎net shaklida ishlatilgan. == Maʼnoviy xususiyatlari == === Maʼnosi === Kompyuter tarmoqlarining paketli texnologiyasi hisoblanadi. Tarmoq uzellari odatda koaksial yoki optik tolali kabel yoki o‘ralgan juft orqali bog‘langan boʻladi. Axborot boshqaruvchi va adresli, shuningdek, 1500 byte gacha ma’lumotni o‘zida saqlovchi o‘zgaruvchan uzunlikdagi kadrlar orqali uzatiladi. Ethernet standarti ma’lumotlar yuqori chastotali modulyatsiyalarsiz, sekundiga 10 Mbit/s tezlik bilan uzatilishini ta’minlaydi. === Sinonimlari === === Antonimlari === {{misol|O‘zbek tilidagi texnik atamalari maʼlumotlaridan foydalanilgan.}} == Tarjimalari == ===Tillar=== {{trans-top|Tarmoq kabellari protokolining standartlari}} * Xitoycha: *: Kanton: [[以太網]] (taai3 mong5), [[乙太網]] (jyut3 taai3 mong5) *: Mandarin: [[以太網]] (Yǐtàiwǎng), [[乙太網]] (Yǐtàiwǎng) * Fin tili: [[Ethernet]] * Fransuz tili: [[Ethernet]] * Yapon tili: [[イーサネット]] (īsanett) * Koreys tili: [[이더넷]] * Makedon tili: [[етернет]] * Ruscha: [[эзернет]] (ezɛrnɛ́t), [[изернет]] (izɛrnɛ́t), [[езернет]] (jezɛrnɛ́t) * Ukrain tili: [[езернет]] {{trans-bottom}} {{trans-top|standartlarga mos keladigan kompyuter tarmogʻi}} * Xitoycha: *: Kanton: [[以太網]] (taai3 mong5), [[乙太網]] (jyut3 taai3 mong5) *: Mandarin: [[以太網]] (Yǐtàiwǎng), [[乙太網]] (Yǐtàiwǎng) * Fin tili: [[ethernet]] * Fransuz tili: [[Ethernet]] * Yapon tili: [[イーサネット]] (īsanetto) * Koreys tili: [[이더넷]] * Makedon tili: [[етернет]] * Ruscha: [[эзернет]] (ezɛrnɛ́t), [[изернет]] (izɛrnɛ́t), [[езернет]] (jezɛrnɛ́t) * Ukrain tili: {{t|uk|езерне́т|m}} ==Yana qarang== * {{l|en|ether}} * [http://grouper.ieee.org/groups/802/3/ IEEE 802.3 CSMA/CD (ETHERNET)] ** [https://web.archive.org/web/20100726111446/http://standards.ieee.org/getieee802/802.3.html the standards are available for download in PDF format] ==Manbalar== s7oyfxgayla8axube4d0ytssswvjs86 628870 628869 2024-11-06T14:47:49Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628870 wikitext text/x-wiki = {{-uz-}} = == Morfologik va sintaktik xususiyatlari == == Aytilishi == == Etimologiyasi == Dastlab Xeroxning savdo belgisi sifatida ether+‎net shaklida ishlatilgan. == Maʼnoviy xususiyatlari == === Maʼnosi === Kompyuter tarmoqlarining paketli texnologiyasi hisoblanadi. Tarmoq uzellari odatda koaksial yoki optik tolali kabel yoki o‘ralgan juft orqali bog‘langan boʻladi. Axborot boshqaruvchi va adresli, shuningdek, 1500 byte gacha ma’lumotni o‘zida saqlovchi o‘zgaruvchan uzunlikdagi kadrlar orqali uzatiladi. Ethernet standarti ma’lumotlar yuqori chastotali modulyatsiyalarsiz, sekundiga 10 Mbit/s tezlik bilan uzatilishini ta’minlaydi. === Sinonimlari === === Antonimlari === {{misol|O‘zbek tilidagi texnik atamalari maʼlumotlaridan foydalanilgan.}} == Tarjimalari == ===Tillar=== {{trans-top|Tarmoq kabellari protokolining standartlari}} * Xitoycha: *: Kanton: [[以太網]] (taai3 mong5), [[乙太網]] (jyut3 taai3 mong5) *: Mandarin: [[以太網]] (Yǐtàiwǎng), [[乙太網]] (Yǐtàiwǎng) * Fin tili: [[Ethernet]] * Fransuz tili: [[Ethernet]] * Yapon tili: [[イーサネット]] (īsanett) * Koreys tili: [[이더넷]] * Makedon tili: [[етернет]] * Ruscha: [[эзернет]] (ezɛrnɛ́t), [[изернет]] (izɛrnɛ́t), [[езернет]] (jezɛrnɛ́t) * Ukrain tili: [[езернет]] {{trans-bottom}} {{trans-top|standartlarga mos keladigan kompyuter tarmogʻi}} * Xitoycha: *: Kanton: [[以太網]] (taai3 mong5), [[乙太網]] (jyut3 taai3 mong5) *: Mandarin: [[以太網]] (Yǐtàiwǎng), [[乙太網]] (Yǐtàiwǎng) * Fin tili: [[ethernet]] * Fransuz tili: [[Ethernet]] * Yapon tili: [[イーサネット]] (īsanetto) * Koreys tili: [[이더넷]] * Makedon tili: [[етернет]] * Ruscha: [[эзернет]] (ezɛrnɛ́t), [[изернет]] (izɛrnɛ́t), [[езернет]] (jezɛrnɛ́t) * Ukrain tili: [[езернет]] ==Yana qarang== * {{l|en|ether}} * [http://grouper.ieee.org/groups/802/3/ IEEE 802.3 CSMA/CD (ETHERNET)] ** [https://web.archive.org/web/20100726111446/http://standards.ieee.org/getieee802/802.3.html the standards are available for download in PDF format] ==Manbalar== p2y2clqs7allaymnogwn891w13chvbp Andoza:ar-verb 10 158550 628966 610882 2024-11-06T17:40:53Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628966 wikitext text/x-wiki == Feʻl == {{PAGENAME}} <includeonly>[[Turkum:Arabchada feʼli soʻzlari]]</includeonly> lwekq3hrbkuzkerjol2hcp6pfm3b2dr émeraude 0 158659 628958 612089 2024-11-06T17:30:02Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628958 wikitext text/x-wiki {{-fr-}} {{fr-ism|f}} *[[zumrad]] {{fr-adj|inv=yes}} *[[zumrad]] 18qkg1dvrlesiym48at8jqzjx7mo7j2 Modul:accent qualifier 828 159099 628879 615595 2024-11-06T14:59:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628879 Scribunto text/plain local export = {} local labels_module = "Module:labels" --[==[ Format accent qualifiers. Implements the {{tl|a}} (shortcut for {{tl|accent}}) template. This template is now virtually identical to a non-categorizing {{tl|lb}}, although a few labels display and/or link differently (e.g. Egyptian-language label 'Old Egyptian' displays as "reconstructed Old Egyptian" instead of just "Old Egyptian", and English-language label 'Australia' displays as "General Australian" instead of just "Australia", and links to [[w:Australian English phonology]] instead of [[w:Australian English]]). ]==] function export.format_qualifiers(lang, qualifiers) return require(labels_module).show_labels { lang = lang, labels = qualifiers, nocat = true, mode = "accent", } end --[==[ External entry point that implements {{tl|accent}} and {{tl|a}}. ]==] function export.show(frame) if not frame.getParent then error("When calling [[Module:accent qualifier]] internally, use format_qualifiers() not show()") end local parent_args = frame:getParent().args local params = { [1] = {type = "language", default = "und"}, [2] = {list = true, required = true, default = "{{{2}}}"}, } local args = require("Module:parameters").process(parent_args, params) return export.format_qualifiers(args[1], args[2]) end return export 0rcst5n5s8nsw4jv6sx0zdfg8in23w6 Modul:Hani-sortkey/data/core 828 159187 628883 615747 2024-11-06T15:04:28Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628883 Scribunto text/plain local u = mw.ustring.char local data = {} -- Codepoint ranges (start, end). -- Note: does not use subtables to save memory. data.ranges = { 0x3007, 0x3007, 0x3400, 0x4DBF, 0x4E00, 0x9FFF, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF } data.ranges.n = #data.ranges -- Characters not included in Unicode, which must be described using IDS. data.unsupported = { ["⿰丿丨"] = "丿01", ["⿱𠆢𬼽"] = "人03", ["⿱北共"] = "八09", ["⿱⿻丅⿱冖⿰丶丶双"] = "冖08", ["⿱⿻丅⿱冖⿰丶丶令"] = "冖09", ["⿰十⿺专丶"] = "十05", ["⿰土肅"] = "土13", ["⿰⿸声耳殳"] = "士14", ["⿻㇒夫"] = "大02", ["⿰女人"] = "女02", ["⿱女子"] = "女03", ["⿱𡩧⿺進⿰貝招"] = "宀37", ["⿰扌幸"] = "手08", ["⿰扌𦍒"] = "手09", ["⿰车匡"] = "手10車06", ["⿱犬一"] = "犬01", ["⿰男也"] = "田05", ["⿰纟恋"] = "糹10", ["⿱䒑合"] = "艸06", ["⿰⿳⿰SIR木阝"] = "邑11", ["⿳⻗人𰆊"] = "雨04", ["⿱成龙"] = "龍06", ["⿱成龍"] = "龍06", } -- IDS characters paired to the number of characters which must follow them. data.ids = { ["⿰"] = 2, -- left-to-right ["⿱"] = 2, -- above-to-below ["⿲"] = 3, -- left-to-middle and right ["⿳"] = 3, -- above-to-middle and below ["⿴"] = 2, -- full surround ["⿵"] = 2, -- surround from above ["⿶"] = 2, -- surround from below ["⿷"] = 2, -- surround from left ["⿸"] = 2, -- surround from upper left ["⿹"] = 2, -- surround from upper right ["⿺"] = 2, -- surround from lower left ["⿻"] = 2, -- overlaid ["⿼"] = 2, -- surround from right ["⿽"] = 2, -- surround from lower right ["⿾"] = 1, -- horizontal reflection ["⿿"] = 1, -- rotation ["〾"] = 1, -- variant but not equivalent ["㇯"] = 2 -- subtraction } data.preconvert = { -- Enclosed CJK Letters and Months ["㈠"] = "一", ["㈡"] = "二", ["㈢"] = "三", ["㈣"] = "四", ["㈤"] = "五", ["㈥"] = "六", ["㈦"] = "七", ["㈧"] = "八", ["㈨"] = "九", ["㈩"] = "十", ["㈪"] = "月", ["㈫"] = "火", ["㈬"] = "水", ["㈭"] = "木", ["㈮"] = "金", ["㈯"] = "土", ["㈰"] = "日", ["㈱"] = "株", ["㈲"] = "有", ["㈳"] = "社", ["㈴"] = "名", ["㈵"] = "特", ["㈶"] = "財", ["㈷"] = "祝", ["㈸"] = "労", ["㈹"] = "代", ["㈺"] = "呼", ["㈻"] = "学", ["㈼"] = "監", ["㈽"] = "企", ["㈾"] = "資", ["㈿"] = "協", ["㉀"] = "祭", ["㉁"] = "休", ["㉂"] = "自", ["㉃"] = "至", ["㉄"] = "問", ["㉅"] = "幼", ["㉆"] = "文", ["㉇"] = "箏", ["㊀"] = "一", ["㊁"] = "二", ["㊂"] = "三", ["㊃"] = "四", ["㊄"] = "五", ["㊅"] = "六", ["㊆"] = "七", ["㊇"] = "八", ["㊈"] = "九", ["㊉"] = "十", ["㊊"] = "月", ["㊋"] = "火", ["㊌"] = "水", ["㊍"] = "木", ["㊎"] = "金", ["㊏"] = "土", ["㊐"] = "日", ["㊑"] = "株", ["㊒"] = "有", ["㊓"] = "社", ["㊔"] = "名", ["㊕"] = "特", ["㊖"] = "財", ["㊗"] = "祝", ["㊘"] = "労", ["㊙"] = "秘", ["㊚"] = "男", ["㊛"] = "女", ["㊜"] = "適", ["㊝"] = "優", ["㊞"] = "印", ["㊟"] = "注", ["㊠"] = "項", ["㊡"] = "休", ["㊢"] = "写", ["㊣"] = "正", ["㊤"] = "上", ["㊥"] = "中", ["㊦"] = "下", ["㊧"] = "左", ["㊨"] = "右", ["㊩"] = "医", ["㊪"] = "宗", ["㊫"] = "学", ["㊬"] = "監", ["㊭"] = "企", ["㊮"] = "資", ["㊯"] = "協", ["㊰"] = "夜", ["㋿"] = "令和", -- CJK Compatibility ["㍻"] = "平成", ["㍼"] = "昭和", ["㍽"] = "大正", ["㍾"] = "明治", ["㍿"] = "株式会社", -- Enclosed Ideographic Supplement ["🈐"] = "手", ["🈑"] = "字", ["🈒"] = "双", ["🈔"] = "二", ["🈕"] = "多", ["🈖"] = "解", ["🈗"] = "天", ["🈘"] = "交", ["🈙"] = "映", ["🈚"] = "無", ["🈛"] = "料", ["🈜"] = "前", ["🈝"] = "後", ["🈞"] = "再", ["🈟"] = "新", ["🈠"] = "初", ["🈡"] = "終", ["🈢"] = "生", ["🈣"] = "販", ["🈤"] = "声", ["🈥"] = "吹", ["🈦"] = "演", ["🈧"] = "投", ["🈨"] = "捕", ["🈩"] = "一", ["🈪"] = "三", ["🈫"] = "遊", ["🈬"] = "左", ["🈭"] = "中", ["🈮"] = "右", ["🈯"] = "指", ["🈰"] = "走", ["🈱"] = "打", ["🈲"] = "禁", ["🈳"] = "空", ["🈴"] = "合", ["🈵"] = "満", ["🈶"] = "有", ["🈷"] = "月", ["🈸"] = "申", ["🈹"] = "割", ["🈺"] = "営", ["🈻"] = "配", ["🉀"] = "本", ["🉁"] = "三", ["🉂"] = "二", ["🉃"] = "安", ["🉄"] = "点", ["🉅"] = "打", ["🉆"] = "盗", ["🉇"] = "勝", ["🉈"] = "敗", ["🉐"] = "得", ["🉑"] = "可", ["🉠"] = "福", ["🉡"] = "祿", ["🉢"] = "壽", ["🉣"] = "喜", ["🉤"] = "囍", ["🉥"] = "財", } local function add_sequences(from, to, offset, char) for i = from, to do local k = u(i) local v = (i - from + offset) .. char data.preconvert[k] = v end end add_sequences(0x32C0, 0x32CB, 1, "月") add_sequences(0x3358, 0x3370, 0, "点") add_sequences(0x33E0, 0x33FE, 1, "日") data.radicals = { "一", "丨", "丶", "丿", "乙", "亅", "二", "亠", "人", "儿", "入", "八", "冂", "冖", "冫", "几", "凵", "刀", "力", "勹", "匕", "匚", "匸", "十", "卜", "卩", "厂", "厶", "又", "口", "囗", "土", "士", "夂", "夊", "夕", "大", "女", "子", "宀", "寸", "小", "尢", "尸", "屮", "山", "巛", "工", "己", "巾", "干", "幺", "广", "廴", "廾", "弋", "弓", "彐", "彡", "彳", "心", "戈", "戶", "手", "支", "攴", "文", "斗", "斤", "方", "无", "日", "曰", "月", "木", "欠", "止", "歹", "殳", "毋", "比", "毛", "氏", "气", "水", "火", "爪", "父", "爻", "爿", "片", "牙", "牛", "犬", "玄", "玉", "瓜", "瓦", "甘", "生", "用", "田", "疋", "疒", "癶", "白", "皮", "皿", "目", "矛", "矢", "石", "示", "禸", "禾", "穴", "立", "竹", "米", "糸", "缶", "网", "羊", "羽", "老", "而", "耒", "耳", "聿", "肉", "臣", "自", "至", "臼", "舌", "舛", "舟", "艮", "色", "艸", "虍", "虫", "血", "行", "衣", "襾", "見", "角", "言", "谷", "豆", "豕", "豸", "貝", "赤", "走", "足", "身", "車", "辛", "辰", "辵", "邑", "酉", "釆", "里", "金", "長", "門", "阜", "隶", "隹", "雨", "靑", "非", "面", "革", "韋", "韭", "音", "頁", "風", "飛", "食", "首", "香", "馬", "骨", "高", "髟", "鬥", "鬯", "鬲", "鬼", "魚", "鳥", "鹵", "鹿", "麥", "麻", "黃", "黍", "黑", "黹", "黽", "鼎", "鼓", "鼠", "鼻", "齊", "齒", "龍", "龜", "龠" } local function add_radicals(radicals) for k, v in pairs(radicals) do data.preconvert[k] = data.radicals[v] end end -- Kangxi radicals add_radicals{ ["⼀"] = 1, ["⼁"] = 2, ["⼂"] = 3, ["⼃"] = 4, ["⼄"] = 5, ["⼅"] = 6, ["⼆"] = 7, ["⼇"] = 8, ["⼈"] = 9, ["⼉"] = 10, ["⼊"] = 11, ["⼋"] = 12, ["⼌"] = 13, ["⼍"] = 14, ["⼎"] = 15, ["⼏"] = 16, ["⼐"] = 17, ["⼑"] = 18, ["⼒"] = 19, ["⼓"] = 20, ["⼔"] = 21, ["⼕"] = 22, ["⼖"] = 23, ["⼗"] = 24, ["⼘"] = 25, ["⼙"] = 26, ["⼚"] = 27, ["⼛"] = 28, ["⼜"] = 29, ["⼝"] = 30, ["⼞"] = 31, ["⼟"] = 32, ["⼠"] = 33, ["⼡"] = 34, ["⼢"] = 35, ["⼣"] = 36, ["⼤"] = 37, ["⼥"] = 38, ["⼦"] = 39, ["⼧"] = 40, ["⼨"] = 41, ["⼩"] = 42, ["⼪"] = 43, ["⼫"] = 44, ["⼬"] = 45, ["⼭"] = 46, ["⼮"] = 47, ["⼯"] = 48, ["⼰"] = 49, ["⼱"] = 50, ["⼲"] = 51, ["⼳"] = 52, ["⼴"] = 53, ["⼵"] = 54, ["⼶"] = 55, ["⼷"] = 56, ["⼸"] = 57, ["⼹"] = 58, ["⼺"] = 59, ["⼻"] = 60, ["⼼"] = 61, ["⼽"] = 62, ["⼾"] = 63, ["⼿"] = 64, ["⽀"] = 65, ["⽁"] = 66, ["⽂"] = 67, ["⽃"] = 68, ["⽄"] = 69, ["⽅"] = 70, ["⽆"] = 71, ["⽇"] = 72, ["⽈"] = 73, ["⽉"] = 74, ["⽊"] = 75, ["⽋"] = 76, ["⽌"] = 77, ["⽍"] = 78, ["⽎"] = 79, ["⽏"] = 80, ["⽐"] = 81, ["⽑"] = 82, ["⽒"] = 83, ["⽓"] = 84, ["⽔"] = 85, ["⽕"] = 86, ["⽖"] = 87, ["⽗"] = 88, ["⽘"] = 89, ["⽙"] = 90, ["⽚"] = 91, ["⽛"] = 92, ["⽜"] = 93, ["⽝"] = 94, ["⽞"] = 95, ["⽟"] = 96, ["⽠"] = 97, ["⽡"] = 98, ["⽢"] = 99, ["⽣"] = 100, ["⽤"] = 101, ["⽥"] = 102, ["⽦"] = 103, ["⽧"] = 104, ["⽨"] = 105, ["⽩"] = 106, ["⽪"] = 107, ["⽫"] = 108, ["⽬"] = 109, ["⽭"] = 110, ["⽮"] = 111, ["⽯"] = 112, ["⽰"] = 113, ["⽱"] = 114, ["⽲"] = 115, ["⽳"] = 116, ["⽴"] = 117, ["⽵"] = 118, ["⽶"] = 119, ["⽷"] = 120, ["⽸"] = 121, ["⽹"] = 122, ["⽺"] = 123, ["⽻"] = 124, ["⽼"] = 125, ["⽽"] = 126, ["⽾"] = 127, ["⽿"] = 128, ["⾀"] = 129, ["⾁"] = 130, ["⾂"] = 131, ["⾃"] = 132, ["⾄"] = 133, ["⾅"] = 134, ["⾆"] = 135, ["⾇"] = 136, ["⾈"] = 137, ["⾉"] = 138, ["⾊"] = 139, ["⾋"] = 140, ["⾌"] = 141, ["⾍"] = 142, ["⾎"] = 143, ["⾏"] = 144, ["⾐"] = 145, ["⾑"] = 146, ["⾒"] = 147, ["⾓"] = 148, ["⾔"] = 149, ["⾕"] = 150, ["⾖"] = 151, ["⾗"] = 152, ["⾘"] = 153, ["⾙"] = 154, ["⾚"] = 155, ["⾛"] = 156, ["⾜"] = 157, ["⾝"] = 158, ["⾞"] = 159, ["⾟"] = 160, ["⾠"] = 161, ["⾡"] = 162, ["⾢"] = 163, ["⾣"] = 164, ["⾤"] = 165, ["⾥"] = 166, ["⾦"] = 167, ["⾧"] = 168, ["⾨"] = 169, ["⾩"] = 170, ["⾪"] = 171, ["⾫"] = 172, ["⾬"] = 173, ["⾭"] = 174, ["⾮"] = 175, ["⾯"] = 176, ["⾰"] = 177, ["⾱"] = 178, ["⾲"] = 179, ["⾳"] = 180, ["⾴"] = 181, ["⾵"] = 182, ["⾶"] = 183, ["⾷"] = 184, ["⾸"] = 185, ["⾹"] = 186, ["⾺"] = 187, ["⾻"] = 188, ["⾼"] = 189, ["⾽"] = 190, ["⾾"] = 191, ["⾿"] = 192, ["⿀"] = 193, ["⿁"] = 194, ["⿂"] = 195, ["⿃"] = 196, ["⿄"] = 197, ["⿅"] = 198, ["⿆"] = 199, ["⿇"] = 200, ["⿈"] = 201, ["⿉"] = 202, ["⿊"] = 203, ["⿋"] = 204, ["⿌"] = 205, ["⿍"] = 206, ["⿎"] = 207, ["⿏"] = 208, ["⿐"] = 209, ["⿑"] = 210, ["⿒"] = 211, ["⿓"] = 212, ["⿔"] = 213, ["⿕"] = 214 } -- CJK Radicals Supplement add_radicals{ ["⺀"] = 3, ["⺁"] = 27, ["⺂"] = 5, ["⺃"] = 5, ["⺄"] = 5, ["⺅"] = 9, ["⺆"] = 13, ["⺇"] = 16,["⺈"] = 18, ["⺉"] = 18, ["⺊"] = 25, ["⺋"] = 26, ["⺌"] = 42, ["⺍"] = 42, ["⺎"] = 43, ["⺏"] = 43, ["⺐"] = 43, ["⺑"] = 43, ["⺒"] = 49, ["⺓"] = 52, ["⺔"] = 58, ["⺕"] = 58, ["⺖"] = 61, ["⺗"] = 61, ["⺘"] = 64, ["⺙"] = 66, ["⺛"] = 71, ["⺜"] = 72, ["⺝"] = 74, ["⺞"] = 78, ["⺟"] = 80, ["⺠"] = 83, ["⺡"] = 85, ["⺢"] = 85, ["⺣"] = 86, ["⺤"] = 87, ["⺥"] = 87, ["⺦"] = 90, ["⺧"] = 93, ["⺨"] = 94, ["⺩"] = 96, ["⺪"] = 103, ["⺫"] = 109, ["⺬"] = 113, ["⺭"] = 113, ["⺮"] = 118, ["⺯"] = 120, ["⺰"] = 120, ["⺱"] = 122, ["⺲"] = 109, ["⺳"] = 122, ["⺴"] = 122, ["⺵"] = 122, ["⺶"] = 123, ["⺷"] = 123, ["⺸"] = 123, ["⺹"] = 125, ["⺺"] = 129, ["⺻"] = 129, ["⺼"] = 130, ["⺽"] = 134, ["⺾"] = 140, ["⺿"] = 140, ["⻀"] = 140, ["⻁"] = 141, ["⻂"] = 145, ["⻃"] = 146, ["⻄"] = 146, ["⻅"] = 147, ["⻆"] = 148, ["⻇"] = 148, ["⻈"] = 149, ["⻉"] = 154, ["⻊"] = 157, ["⻋"] = 159, ["⻌"] = 162, ["⻍"] = 162, ["⻎"] = 162, ["⻏"] = 163, ["⻐"] = 167, ["⻑"] = 168, ["⻒"] = 168, ["⻓"] = 168, ["⻔"] = 169, ["⻕"] = 170, ["⻖"] = 170, ["⻗"] = 173, ["⻘"] = 174, ["⻙"] = 178, ["⻚"] = 181, ["⻛"] = 182, ["⻜"] = 183, ["⻝"] = 184, ["⻞"] = 184, ["⻟"] = 184, ["⻠"] = 184, ["⻡"] = 185, ["⻢"] = 187, ["⻣"] = 188, ["⻤"] = 194, ["⻥"] = 195, ["⻦"] = 196, ["⻧"] = 197, ["⻨"] = 199, ["⻩"] = 201, ["⻪"] = 205, ["⻫"] = 210, ["⻬"] = 210, ["⻭"] = 211, ["⻮"] = 211, ["⻯"] = 212, ["⻰"] = 212, ["⻱"] = 213, ["⻲"] = 213, ["⻳"] = 213 } return data 4ke1w0kekm7vh5fe9jpyiae4b1fmn2x Modul:ltc-pron/predict 828 159196 628949 615762 2024-11-06T17:20:13Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628949 Scribunto text/plain local export = {} local fully_voiced_initial = { [3] = true, [7] = true, [11] = true, [15] = true, [17] = true, [20] = true, [22] = true, [25] = true, [27] = true, [30] = true, [33] = true, } local partially_voiced_initial = { [4] = true, [8] = true, [12] = true, [31] = true, [35] = true, [36] = true, [37] = true, [38] = true, } local fricativisation_inducing = { [2] = true, [4] = true, [7] = true, [8] = true, [21] = true, [24] = true, [28] = true, [59] = true, [60] = true, [66] = true, [68] = true, [106] = true, [108] = true, [136] = true, [146] = true, [148] = true, } local m_lenition_inducing = { [21] = true, [24] = true, [59] = true, [60] = true, [66] = true, [68] = true, [106] = true, [146] = true, } local devoicing_outcomes = { ["b"] = "p", ["d"] = "t", ["z"] = "c", ["g"] = "k", ["zh"] = "ch", ["sh"] = "ch", } local function has(str, index, ...) if index ~= 0 then str = mw.ustring.sub(str, index, index) end for i, v in ipairs{...} do if str == v then return true end end return false end local initial_outcomes_cmn = { [1] = "b", [2] = "p", [3] = "b", [4] = "m", [5] = "d", [6] = "t", [7] = "d", [8] = "n", [9] = "zh", [10] = "ch", [11] = "zh", [12] = "n", [13] = "z", [14] = "c", [15] = "z", [16] = "s", [17] = "s", [18] = "zh", [19] = "ch", [20] = "zh", [21] = "sh", [22] = "sh", [23] = "zh", [24] = "ch", [25] = "sh", [26] = "sh", [27] = "sh", [28] = "g", [29] = "k", [30] = "g", [32] = "h", [33] = "h", [31] = "", [34] = "", [35] = "", [36] = "", [37] = "l", [38] = "r", } local devoicing_initial_cmn = { [3] = true, [7] = true, [11] = true, [15] = true, [20] = true, [25] = true, [30] = true, } local palatalisation_outcomes_cmn = { ["g"] = "j", ["k"] = "q", ["h"] = "x", ["z"] = "j", ["c"] = "q", ["s"] = "x", } local final_simplification_outcomes_cmn = { ["iou"] = "iu", ["uei"] = "ui", ["uen"] = "un", ["ueng"] = "ong", } local rhyme_outcomes_cmn = { [1] = "ueng", [2] = { "ueng", 3, "iong" }, [3] = "u", [4] = { "u", 3, "ü" }, [5] = "ueng", [6] = "u", [7] = { "ueng", 3, "iong" }, [8] = { "u", 3, "ü" }, [9] = { "uang", 3, "iang" }, [10] = { "uo", 3, "üe" }, [11] = { "er", 3, "i" }, [12] = { "uei", 2, "uai" }, [13] = { "er", 3, "i" }, [14] = { "uei", 2, "uai" }, [15] = { "er", 3, "i" }, [16] = { "uei", 2, "uai" }, [17] = { "er", 3, "i" }, [18] = { "uei", 2, "uai" }, [19] = { "er", 3, "i" }, [20] = { "er", 3, "i" }, [21] = { "uei", 2, "uai" }, [22] = "ü", [23] = "u", [24] = "ü", [25] = "ai", [26] = "uei", [27] = "i", [28] = "uei", [29] = { "ai", 3, "ie" }, [30] = "uai", [31] = { "ai", 3, "ia" }, [32] = { "uai", 3, "ua" }, [33] = { "ai", 3, "ie" }, [34] = "uai", [35] = "i", [36] = { "uei", 2, "uai" }, [37] = "i", [38] = { "uei", 2, "uai" }, [39] = "i", [40] = "uei", [41] = "ai", [42] = "uei", [43] = "in", [44] = "in", [45] = "ün", [46] = "en", [47] = "ün", [48] = "i", [49] = "i", [50] = { "ü", 2, "uai" }, [51] = "e", [52] = { "ü", 2, "uai" }, [53] = { "uen", 3, "en" }, [54] = "e", [55] = "uen", [56] = { "u", 1, "o" }, [57] = "in", [58] = "i", [59] = { "uen", 3, "ün" }, [60] = "ü", [61] = "an", [62] = "uan", [63] = { "a", 3, "e" }, [64] = "uo", [65] = "ian", [66] = "üan", [67] = "ie", [68] = { "a", 3, "üe" }, [69] = { "an", 3, "ian" }, [70] = "uan", [71] = { "a", 3, "ia" }, [72] = "ua", [73] = { "an", 3, "ian" }, [74] = "uan", [75] = { "a", 3, "ia" }, [76] = "ua", [77] = "ian", [78] = "üan", [79] = "ian", [80] = "üan", [81] = "ie", [82] = "üe", [83] = "ie", [84] = "üe", [85] = "ian", [86] = "üan", [87] = "ie", [88] = "üe", [89] = "ao", [90] = { "ao", 3, "iao" }, [91] = "iao", [92] = "iao", [93] = "iao", [94] = { "uo", 3, "e" }, [95] = "uo", [96] = "ie", [97] = "üe", [98] = { "a", 3, "ia" }, [99] = "ua", [100] = "ie", [101] = "ang", [102] = "uang", [103] = { "uo", 3, "e" }, [104] = "uo", [105] = { "iang", 2, "uang" }, [106] = "uang", [107] = { "üe", 1, "o" }, [108] = { "üe", 1, "o" }, [109] = "eng", [110] = "ueng", [111] = "ing", [112] = "iong", [113] = "e", [114] = "uo", [115] = "i", [116] = "ü", [117] = "eng", [118] = "ueng", [119] = "e", [120] = "uo", [121] = "ing", [122] = "iong", [123] = "i", [124] = "ü", [125] = "ing", [126] = "iong", [127] = "i", [128] = "ü", [129] = "eng", [130] = "ueng", [131] = "e", [132] = "uo", [133] = "ing", [134] = { "i", 2, "e" }, [135] = "ü", [136] = { "iou", 1, "ou" }, [137] = "ou", [138] = { "iou", 1, "iao" }, [139] = "in", [140] = "in", [141] = { "i", 2, "e" }, [142] = { "i", 2, "e" }, [143] = "an", [144] = { "a", 3, "e" }, [145] = { "an", 3, "ian" }, [146] = "uan", [147] = "ie", [148] = { "a", 3, "ia" }, [149] = { "an", 3, "ian" }, [150] = { "a", 3, "ia" }, [151] = { "an", 3, "ian" }, [152] = { "a", 3, "ia" }, [153] = "ian", [154] = "ian", [155] = "ie", [156] = "ie", [157] = "ian", [158] = "ie", [159] = "an", [160] = { "a", 3, "e" }, } local labial_openness_normalisation_cmn = { [12] = 11, [14] = 13, [16] = 15, [18] = 17, [21] = 20, [25] = 26, [28] = 27, [36] = 35, [38] = 37, [40] = 39, [63] = 64, [67] = 68, [105] = 106, [112] = 111, [113] = 114, [119] = 120, [122] = 121, [126] = 125, [131] = 132, } function export.predict_cmn(initial, final, tone) local initial_result = initial_outcomes_cmn[initial] if fricativisation_inducing[final] and initial <= 3 then initial_result = "f" elseif m_lenition_inducing[final] and initial == 4 then initial_result = "w" elseif tone == 1 and devoicing_initial_cmn[initial] then initial_result = devoicing_outcomes[initial_result] end if initial <= 4 then final = labial_openness_normalisation_cmn[final] or final end local final_result = rhyme_outcomes_cmn[final] if type(final_result) == "table" then if final_result[2] == 1 and initial <= 4 or final_result[2] == 2 and initial >= 18 and initial <= 22 or final_result[2] == 3 and initial >= 28 and initial <= 36 then final_result = final_result[3] else final_result = final_result[1] end end if has(final_result, 1, "i", "ü") then initial_result = palatalisation_outcomes_cmn[initial_result] or initial_result end if final_result == "er" then if initial_result == "r" then initial_result = "" else final_result = "i" end end if has(initial_result, 0, "zh", "ch", "sh", "r") then final_result = mw.ustring.gsub(final_result, "^in", "en") final_result = mw.ustring.gsub(final_result, "^i(.)", "%1") final_result = mw.ustring.gsub(final_result, "^üe$", "uo") end if initial <= 4 then final_result = mw.ustring.gsub(final_result, "^u(.)", "%1") if has(initial_result, 0, "f", "w") then final_result = mw.ustring.gsub(final_result, "^[iü](.)", "%1") final_result = mw.ustring.gsub(final_result, "^i$", "ei") else final_result = mw.ustring.gsub(final_result, "^ü", "i") end end if has(initial_result, 0, "n", "l") and has(final_result, 0, "ua", "uai", "uang", "uei") then final_result = mw.ustring.gsub(final_result, "^u", "") end if has(final_result, 1, "ü") and not (has(initial_result, 0, "n", "l") and has(final_result, 0, "ü", "üe")) then if initial_result == "" then initial_result = "y" end final_result = mw.ustring.gsub(final_result, "^ü", "u") end if initial_result == "" then if has(final_result, 1, "i") then initial_result = "y" end if has(final_result, 1, "u") then initial_result = "w" end if initial_result ~= "" then final_result = mw.ustring.gsub(final_result, "^.([^n])", "%1") end end final_result = final_simplification_outcomes_cmn[final_result] or final_result local tone_result if tone == 1 then if fully_voiced_initial[initial] or partially_voiced_initial[initial] then tone_result = 2 else tone_result = 1 end elseif tone == 2 then if fully_voiced_initial[initial] then tone_result = 4 else tone_result = 3 end elseif tone == 3 then tone_result = 4 else if fully_voiced_initial[initial] then tone_result = 2 elseif partially_voiced_initial[initial] then tone_result = 4 else tone_result = "" end end return initial_result .. final_result .. tone_result end local initial_outcomes_yue = { [1] = "b", [2] = "p", [3] = "b", [4] = "m", [5] = "d", [6] = "t", [7] = "d", [8] = "n", [9] = "z", [10] = "c", [11] = "z", [12] = "n", [13] = "z", [14] = "c", [15] = "z", [16] = "s", [17] = "z", [18] = "z", [19] = "c", [20] = "z", [21] = "s", [22] = "z", [23] = "z", [24] = "c", [25] = "s", [26] = "s", [27] = "s", [28] = "g", [29] = "k", [30] = "g", [31] = "ng", [32] = "h", [33] = "h", [34] = "", [35] = "", [36] = "", [37] = "l", [38] = "j", } local devoicing_initial_yue = { [3] = true, [7] = true, [11] = true, [15] = true, [17] = true, [20] = true, [22] = true, [30] = true, } local initial_class_yue = { [1] = 1, [2] = 1, [3] = 1, [4] = 1, [5] = 2, [6] = 2, [7] = 2, [8] = 2, [9] = 3, [10] = 3, [11] = 3, [12] = 2, [13] = 4, [14] = 4, [15] = 4, [16] = 4, [17] = 4, [18] = 5, [19] = 5, [20] = 5, [21] = 5, [22] = 5, [23] = 6, [24] = 6, [25] = 6, [26] = 6, [27] = 6, [28] = 7, [29] = 7, [30] = 7, [31] = 8, [32] = 7, [33] = 7, [34] = 8, [35] = 8, [36] = 8, [37] = 2, [38] = 6, } local final_class_yue = { [1] = 20, [2] = 20, [3] = 20, [4] = 20, [5] = 20, [6] = 20, [7] = 20, [8] = 20, [9] = 34, [10] = 34, [11] = 35, [12] = 21, [13] = 35, [14] = 21, [15] = 35, [16] = 21, [17] = 35, [18] = 21, [19] = 35, [20] = 35, [21] = 21, [22] = 36, [23] = 24, [24] = 36, [25] = 39, [26] = 28, [27] = 6, [28] = 6, [29] = 2, [30] = 33, [31] = 2, [32] = 33, [33] = 2, [34] = 33, [35] = 6, [36] = 21, [37] = 6, [38] = 21, [39] = 6, [40] = 6, [41] = 17, [42] = 25, [43] = 8, [44] = 8, [45] = 22, [46] = 8, [47] = 22, [48] = 8, [49] = 8, [50] = 22, [51] = 8, [52] = 22, [53] = 8, [54] = 8, [55] = 38, [56] = 38, [57] = 8, [58] = 8, [59] = 8, [60] = 8, [61] = 31, [62] = 32, [63] = 31, [64] = 32, [65] = 26, [66] = 27, [67] = 26, [68] = 27, [69] = 4, [70] = 4, [71] = 4, [72] = 4, [73] = 4, [74] = 4, [75] = 4, [76] = 4, [77] = 13, [78] = 30, [79] = 13, [80] = 30, [81] = 13, [82] = 30, [83] = 13, [84] = 30, [85] = 13, [86] = 30, [87] = 13, [88] = 30, [89] = 19, [90] = 5, [91] = 15, [92] = 15, [93] = 15, [94] = 16, [95] = 16, [96] = 11, [97] = 29, [98] = 1, [99] = 1, [100] = 11, [101] = 18, [102] = 18, [103] = 18, [104] = 18, [105] = 37, [106] = 18, [107] = 37, [108] = 18, [109] = 9, [110] = 9, [111] = 40, [112] = 40, [113] = 9, [114] = 9, [115] = 14, [116] = 14, [117] = 9, [118] = 9, [119] = 9, [120] = 9, [121] = 14, [122] = 14, [123] = 14, [124] = 14, [125] = 14, [126] = 14, [127] = 14, [128] = 14, [129] = 9, [130] = 9, [131] = 9, [132] = 9, [133] = 14, [134] = 14, [135] = 14, [136] = 10, [137] = 10, [138] = 10, [139] = 7, [140] = 7, [141] = 7, [142] = 7, [143] = 23, [144] = 23, [145] = 12, [146] = 3, [147] = 12, [148] = 3, [149] = 3, [150] = 3, [151] = 3, [152] = 3, [153] = 12, [154] = 12, [155] = 12, [156] = 12, [157] = 12, [158] = 12, [159] = 23, [160] = 23, } local rhyme_outcomes_yue = { [1] = "A", [2] = "Ai", [3] = "Am", [4] = "An", [5] = "Au", [6] = "ai", [7] = "am", [8] = "an", [9] = "aN", [10] = "au", [11] = "e", [12] = "im", [13] = "in", [14] = "IN", [15] = "iu", [16] = "o", [17] = "oi", [18] = "oN", [19] = "ou", [20] = "UN", [21] = { "ei", "Ei", "ai" }, [22] = { "En", "En", "an" }, [23] = { "Am", "Am", "om" }, [24] = { "ou", "ou", "u" }, [25] = { "ui", "Ei", "ui" }, [26] = { "An", "in", "in" }, [27] = { "An", "Yn", "Yn" }, [28] = { "ai", "Ei", "ui" }, [29] = { "e", "O", "O" }, [30] = { "in", "Yn", "Yn" }, [31] = { "un", "An", "on" }, [32] = { "un", "Yn", "un" }, [33] = { "Ai", "Ei", "Ai" }, [34] = { "oN", "oN", "oN" }, [35] = { "ei", "ei", "i", "i", "i", "i", "ei", "i" }, [36] = { "u", "Ei", "Y", "Ei", "o", "Y", "Ei", "Y" }, [37] = { "oN", "ON", "ON", "ON", "oN", "ON", "ON", "ON" }, [38] = { "un", "En", "En", "Yn", "Yn", "Yn", "an", "an" }, [39] = { "ui", "Ai", "Ai", "oi", "Ai", "Ai", "oi", "oi" }, [40] = { "IN", "IN", "IN", "IN", "aN", "IN", "IN", "IN" }, } local palatalisation_inducing_yue = { [2] = true, [4] = true, [7] = true, [8] = true, [11] = true, [12] = true, [13] = true, [14] = true, [15] = true, [16] = true, [17] = true, [18] = true, [19] = true, [20] = true, [21] = true, [22] = true, [24] = true, [27] = true, [28] = true, [35] = true, [36] = true, [37] = true, [38] = true, [39] = true, [40] = true, [43] = true, [44] = true, [45] = true, [46] = true, [47] = true, [48] = true, [49] = true, [50] = true, [51] = true, [52] = true, [57] = true, [58] = true, [59] = true, [60] = true, [65] = true, [66] = true, [67] = true, [68] = true, [77] = true, [78] = true, [79] = true, [80] = true, [81] = true, [82] = true, [83] = true, [84] = true, [85] = true, [86] = true, [87] = true, [88] = true, [91] = true, [92] = true, [93] = true, [96] = true, [97] = true, [100] = true, [105] = true, [106] = true, [107] = true, [108] = true, [111] = true, [112] = true, [115] = true, [116] = true, [121] = true, [122] = true, [123] = true, [124] = true, [125] = true, [126] = true, [127] = true, [128] = true, [133] = true, [134] = true, [135] = true, [136] = true, [138] = true, [139] = true, [140] = true, [141] = true, [142] = true, [145] = true, [146] = true, [147] = true, [148] = true, [153] = true, [154] = true, [155] = true, [156] = true, [157] = true, [158] = true, } local labialisation_inducing_yue = { [12] = true, [14] = true, [16] = true, [18] = true, [21] = true, [23] = true, [24] = true, [26] = true, [28] = true, [30] = true, [32] = true, [34] = true, [36] = true, [38] = true, [40] = true, [42] = true, [45] = true, [47] = true, [50] = true, [52] = true, [55] = true, [56] = true, [59] = true, [60] = true, [62] = true, [64] = true, [66] = true, [68] = true, [70] = true, [72] = true, [74] = true, [76] = true, [78] = true, [80] = true, [82] = true, [84] = true, [86] = true, [88] = true, [95] = true, [97] = true, [99] = true, [102] = true, [104] = true, [106] = true, [108] = true, [110] = true, [112] = true, [114] = true, [116] = true, [118] = true, [120] = true, [122] = true, [124] = true, [126] = true, [128] = true, [130] = true, [132] = true, [135] = true, [146] = true, [148] = true, } local glide_inducing_yue = { [40] = true, [85] = true, [86] = true, [87] = true, [88] = true, [93] = true, [125] = true, [126] = true, [127] = true, [128] = true, [157] = true, [158] = true, } local debuccalisation_inducing_yue = { [1] = true, [2] = true, [3] = true, [4] = true, [5] = true, [6] = true, [7] = true, [8] = true, [9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [14] = true, [15] = true, [16] = true, [17] = true, [18] = true, [19] = true, [20] = true, [21] = true, [22] = true, [23] = true, [24] = true, [25] = true, [26] = true, [27] = true, [28] = true, [29] = true, [30] = true, [31] = true, [32] = true, [33] = true, [34] = true, [35] = true, [36] = true, [37] = true, [38] = true, [39] = true, [40] = true, [41] = true, [42] = true, [43] = true, [44] = true, [45] = true, [46] = true, [47] = true, [48] = true, [49] = true, [50] = true, [51] = true, [52] = true, [53] = true, [54] = true, [55] = true, [56] = true, [57] = true, [58] = true, [59] = true, [60] = true, [61] = true, [62] = true, [63] = true, [64] = true, [65] = true, [66] = true, [67] = true, [68] = true, [69] = true, [70] = true, [71] = true, [72] = true, [73] = true, [74] = true, [75] = true, [76] = true, [77] = true, [78] = true, [79] = true, [80] = true, [81] = true, [82] = true, [83] = true, [84] = true, [85] = true, [86] = true, [87] = true, [88] = true, [89] = true, [90] = true, [91] = true, [92] = true, [93] = true, [94] = true, [95] = true, [96] = true, [97] = true, [98] = true, [99] = true, [100] = true, [101] = true, [102] = true, [103] = true, [104] = true, [105] = true, [106] = true, [107] = true, [108] = true, [109] = true, [110] = true, [111] = true, [112] = true, [113] = true, [114] = true, [115] = true, [116] = true, [117] = true, [118] = true, [119] = true, [120] = true, [121] = true, [122] = true, [123] = true, [124] = true, [125] = true, [126] = true, [127] = true, [128] = true, [129] = true, [130] = true, [131] = true, [132] = true, [133] = true, [134] = true, [135] = true, [136] = true, [137] = true, [138] = true, [139] = true, [140] = true, [141] = true, [142] = true, [143] = true, [144] = true, [145] = true, [146] = true, [147] = true, [148] = true, [149] = true, [150] = true, [151] = true, [152] = true, [153] = true, [154] = true, [155] = true, [156] = true, [157] = true, [158] = true, [159] = true, [160] = true, } function export.predict_yue(initial, final, tone) local initial_result = initial_outcomes_yue[initial] if fricativisation_inducing[final] and initial <= 3 then initial_result = "f" elseif tone == 1 and devoicing_initial_yue[initial] then initial_result = devoicing_outcomes[initial_result] elseif initial == 17 and labialisation_inducing_yue[final] then initial_result = "s" end if initial == 29 and debuccalisation_inducing_yue[final] then initial_result = "h" elseif initial == 29 and (final == 136 or final >= 139 and final <= 142) or initial == 32 and (final == 136 or final == 57) or initial == 33 and (labialisation_inducing_yue[final] or glide_inducing_yue[final]) or initial_result == "" and palatalisation_inducing_yue[final] then initial_result = "j" end local final_result if (final == 36 or final == 38) and initial == 36 then final_result = "Ei" elseif (final == 26 or final == 42) and initial == 31 then final_result = "oi" elseif final == 23 and initial == 31 then final_result = "" elseif (final == 22 or final == 24) and initial == 4 then final_result = "ou" else local final_class = final_class_yue[final] final_result = rhyme_outcomes_yue[final_class] if final_class >= 35 then final_result = final_result[initial_class_yue[initial]] elseif final_class >= 21 then final_result = final_result[math.floor((initial_class_yue[initial] + 8) / 5)] end end if initial == 31 and mw.ustring.find(final_result, "^[iuIUOEY]") ~= nil then initial_result = "j" end if labialisation_inducing_yue[final] and mw.ustring.find(final_result, "^[OEY]") == nil then if initial_result == "h" and mw.ustring.find(final_result, "^[iI]") == nil then initial_result = "f" elseif initial_result == "j" or initial_result == "" then initial_result = "w" elseif initial_result == "g" and mw.ustring.find(final_result, "^[uU]") == nil then initial_result = "gw" elseif initial_result == "k" and mw.ustring.find(final_result, "^[iuIU]") == nil then initial_result = "kw" end end local tone_result if tone == 4 then if fully_voiced_initial[initial] or partially_voiced_initial[initial] then tone_result = 6 elseif mw.ustring.find(final_result, "^[AiouOY]") ~= nil then tone_result = 3 else tone_result = 1 end elseif tone == 2 and fully_voiced_initial[initial] then tone_result = 6 elseif fully_voiced_initial[initial] or partially_voiced_initial[initial] then tone_result = 3 + tone else tone_result = tone end final_result = mw.ustring.gsub(final_result, "om", "am") if initial <= 4 then final_result = mw.ustring.gsub(final_result, "m$", "n") end if tone == 4 then final_result = mw.ustring.gsub(final_result, "m$", "p") final_result = mw.ustring.gsub(final_result, "n$", "t") final_result = mw.ustring.gsub(final_result, "N$", "k") end final_result = mw.ustring.gsub(final_result, "A", "aa") final_result = mw.ustring.gsub(final_result, "I", "i") final_result = mw.ustring.gsub(final_result, "U", "u") final_result = mw.ustring.gsub(final_result, "O", "oe") final_result = mw.ustring.gsub(final_result, "E", "eo") final_result = mw.ustring.gsub(final_result, "Y", "yu") final_result = mw.ustring.gsub(final_result, "N", "ng") return initial_result .. final_result .. "<sup>" .. tone_result .. "</sup>" end return export gvitn5num7i2s1pkvbuhsi0s9gozn17 Modul:languages/data/3/c 828 159388 628891 616429 2024-11-06T15:38:04Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628891 Scribunto text/plain local m_lang = require("Module:tili") local m_langdata = require("Module:tili/data") local u = require("Module:string utilities").char local c = m_langdata.chars local p = m_langdata.puaChars local s = m_langdata.shared local m = {} m["caa"] = { "Ch'orti'", 35177, "myn", "Latn", } m["cab"] = { "Garifuna", 35490, "awd-taa", "Latn", ancestors = "crb", } m["cac"] = { "Chuj", 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"] = { "Kari'na", 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"] = { "Carijona", 3446655, "sai-tar", "Latn", } m["cbg"] = { "Chimila", 2963680, "cba", "Latn", } m["cbi"] = { "Chachi", 2591329, "sai-bar", "Latn", } m["cbj"] = { "Ede Cabe", 33112829, "alv-ede", "Latn", } m["cbk"] = { "Chavacano", 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"] = { "Nyah Kur", 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"] = { "Chamicuro", 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"] = { "Malaccan Creole Malay", 12636092, "crp", "Latn", ancestors = "ms", } m["cco"] = { "Comaltepec Chinantec", 2963735, "omq-chi", "Latn", } m["ccp"] = { "Chakma", 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"] = { "Chambeali", 12953424, "him", "Deva, Takr", translit = {Deva = "hi-translit"}, } m["cdi"] = { "Chodri", 5103788, "inc-bhi", "Gujr", } m["cdj"] = { "Churahi", 12629039, "him", "Deva, Takr", translit = {Deva = "hi-translit"}, } m["cdm"] = { "Chepang", 5091700, "sit-gma", "Deva", } m["cdn"] = { "Chaudangsi", 5088056, "sit-alm", } m["cdo"] = { "Eastern Min", 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"] = { "Cebuano", 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"] = { "Chibcha", 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"] = { "Chagatai", 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"] = { "Chuukese", 33161, "poz-mic", "Latn", } m["chl"] = { "Cahuilla", 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"] = { "Chinook Jargon", 35173, "crp", "Latn, Dupl", ancestors = "chh, nuk", } m["cho"] = { "Choctaw", 32979, "nai-mus", "Latn", sort_key = {remove_diacritics = c.macronbelow .. "-"}, entry_name = {remove_diacritics = c.acute .. c.dotbelow}, } m["chp"] = { "Chipewyan", 27692, "ath-nor", "Latn, Cans", } m["chq"] = { "Quiotepec Chinantec", 5758709, "omq-chi", "Latn", } m["chr"] = { "Cherokee", 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"] = { "Cheyenne", 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"] = { "Chickasaw", 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"] = { "Cimbrian", 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"] = { "Tîrî", 7862281, "poz-cln", "Latn", } m["ciy"] = { "Chaima", 12628867, "sai-ven", "Latn", } m["cja"] = { "Western Cham", 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"] = { "Chamalal", 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"] = { "Eastern Cham", 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"] = { "Shor", 34139, "trk-ssb", "Cyrl", } m["cjv"] = { "Chuave", 5115226, "ngf", "Latn", } m["cjy"] = { "Jin", 56479, "zhx", "Hants", ancestors = "ltc", generate_forms = "zh-generateforms", translit = "zh-translit", sort_key = "Hani-sortkey", } m["ckb"] = { "Central Kurdish", 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"] = { "Kavalan", 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"] = { "Classical Mongolian", 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"] = { "Mandarin", 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"] = { "Lai", 3250286, "tbq-kuk", } m["cni"] = { "Asháninka", 3437230, "awd", "Latn", } m["cnk"] = { "Khumi Chin", 56308, "tbq-kuk", } m["cnl"] = { "Lalana Chinantec", 12953437, "omq-chi", "Latn", } m["cno"] = { "Con", 3440883, "mkh-pal", } m["cnp"] = { "Northern Pinghua", 84302463, "zhx-pin", "Hants", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["cns"] = { "Central Asmat", 11732048, "ngf", "Latn", } m["cnt"] = { "Tepetotutla Chinantec", 5100113, "omq-chi", "Latn", } m["cnu"] = { "Chenoua", 33276, "ber", } m["cnw"] = { "Ngawn Chin", 6583675, "tbq-kuk", } m["cnx"] = { "Middle Cornish", 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"] = { "Chong", 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"] = { "Coptic", 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"] = { "Cappadocian Greek", 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"] = { "Chinese Pidgin English", 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"] = { "Puxian Min", 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"] = { "Crimean Tatar", 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"] = { "Southern East Cree", 12953464, "alg", "Latn, Cans", ancestors = "cr", translit = {Cans = "cr-translit"}, } m["crk"] = { "Plains Cree", 56699, "alg", "Latn, Cans", ancestors = "cr", } m["crl"] = { "Northern East Cree", 12642195, "alg", "Latn, Cans", ancestors = "cr", translit = {Cans = "cr-translit"}, } m["crm"] = { "Moose Cree", 3446671, "alg", "Latn, Cans", ancestors = "cr", } m["crn"] = { "Cora", 12953454, "azc", "Latn", } m["cro"] = { "Crow", 1207611, "sio-mor", "Latn", } m["crq"] = { "Iyo'wujwa Chorote", 3540927, "sai-mtc", "Latn", } m["crr"] = { "Carolina Algonquian", 16113723, "alg-eas", "Latn", } m["crs"] = { "Seychellois Creole", 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"] = { "Kashubian", 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"] = { "Southern Pinghua", 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"] = { "Northern Ohlone", 25559666, "nai-you", "Latn", } m["csv"] = { "Sumtu Chin", 7638087, "tbq-kuk", } m["csw"] = { "Swampy Cree", 56696, "alg", "Latn, Cans", ancestors = "cr", } m["csy"] = { "Siyin Chin", 7533375, "tbq-kuk", } m["csz"] = { "Coos", 3126783, "nai-coo", "Latn", } m["cta"] = { "Tataltepec Chatino", 7687853, "omq-cha", "Latn", } m["ctc"] = { "Chetco-Tolowa", 12628946, "ath-pco", "Latn", } m["ctd"] = { "Tedim Chin", 56357, "tbq-kuk", "Latn, Pauc", } m["cte"] = { "Tepinapa Chinantec", 12953443, "omq-chi", "Latn", } m["ctg"] = { "Chittagonian", 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"] = { "Zacatepec Chatino", 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"] = { "Cupeño", 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"] = { "Cuyunon", 33153, "phi", "Latn", } m["czh"] = { "Huizhou", 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"] = { "Central Min", 56435, "zhx-inm", "Hants", generate_forms = "zh-generateforms", sort_key = "Hani-sortkey", } m["czt"] = { "Zotung Chin", 8074599, "tbq-kuk", "Latn", } return m_lang.finalizeLanguageData(m_lang.addDefaultTypes(m, true)) jo47j7gp8lrmmsizvt0c8txjak76j7k Andoza:categorize 10 159418 628940 616550 2024-11-06T17:09:00Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628940 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{NAMESPACE}}<!-- -->|=[[Category:{{langname|{{{1}}}}} {{{2}}}|{{#if:{{{sort|}}}|{{{sort}}}|{{PAGENAME}}}}]]<!-- -->|Andoza={{#ifeq:{{SUBPAGENAME}}|doc||[[Category:{{langname|{{{1}}}}} {{{2}}}|{{#if:{{{sort|}}}|{{{sort}}}|{{PAGENAME}}}}]]}}<!-- -->|Appendix=[[Category:{{BASEPAGENAME}}|{{#if:{{{sort|}}}|{{{sort}}}|{{uc:{{SUBPAGENAME}}}}}}]]<!-- -->[[Category:{{langname|{{{1}}}}} appendix-only {{{2}}}|{{#if:{{{sort|}}}|{{{sort}}}|{{uc:{{SUBPAGENAME}}}}}}]]<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{temp|categorize|xx|qwertys}}{{documentation}}</noinclude> r72vnz0a3lvlry0jl5aap6aey8j4hwy Modul:utilities/templates 828 159420 628937 616552 2024-11-06T17:00:23Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628937 Scribunto text/plain local insert = table.insert local process_params = require("Module:parameters").process local export = {} -- Used by {{catfix}}. function export.catfix(frame) local args = process_params(frame:getParent().args, { [1] = {type = "language", required = true}, [2] = {alias_of = "sc"}, ["sc"] = {type = "script"}, }) return require("Module:utilities").catfix(args[1], args.sc) end -- Used by {{categorize}}, {{catlangname}} and {{topics}}. function export.categorize(frame) local args = process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, list = true, allow_holes = true}, ["sort"] = {list = true, separate_no_index = true, allow_holes = true}, }) local lang = args[1] if not lang then return "" end local raw_cats = args[2] local sort_keys = args.sort local default_sort = sort_keys.default local cats = {} local format = frame.args["format"] local prefix = format == "pos" and lang:getFullName() .. " " or format == "topic" and lang:getFullCode() .. ":" or "" local cats_with_sort_keys = {} for i = 1, raw_cats.maxindex do local cat = raw_cats[i] if cat then cat = prefix .. cat insert(cats, cat) local sort_key = sort_keys[i] if #cats_with_sort_keys > 0 then insert(cats_with_sort_keys, { category = cat, sort_key = sort_key }) elseif sort_key then for j = 1, #cats - 1 do insert(cats_with_sort_keys, {category = cats[j]}) end insert(cats_with_sort_keys, { category = cat, sort_key = sort_key }) end end end if #cats_with_sort_keys > 0 then return require("Module:utilities/format_categories_with_sort_keys")(cats_with_sort_keys, lang, default_sort) else return require("Module:utilities").format_categories(cats, lang, default_sort) end end return export 3gxe6kb2u2d3t7uj4djv44wa88h8cr7 Modul:languages/data/3/u 828 159429 628955 616599 2024-11-06T17:25:51Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628955 Scribunto text/plain local m_lang = require("Module:tili") local m_langdata = require("Module:tili/data") local u = require("Module:string utilities").char local c = m_langdata.chars local p = m_langdata.puaChars local s = m_langdata.shared local m = {} m["uam"] = { "Uamué", 3441418, } m["uan"] = { "Kuan", 6441085, } m["uar"] = { "Tairuma", 7676386, "ngf", } m["uba"] = { "Ubang", 3914467, "nic-ben", "Latn", } m["ubi"] = { "Ubi", 56264, } m["ubl"] = { "Buhi'non Bikol", 18664494, "phi", "Latn", } m["ubr"] = { "Ubir", 3547642, "poz-ocw", "Latn", } m["ubu"] = { "Umbu-Ungu", 12953245, "ngf", } m["uby"] = { "Ubykh", 36931, "cau-nwc", "Cyrl, Latn", translit = "uby-translit", override_translit = true, display_text = {Cyrl = s["cau-Cyrl-displaytext"]}, entry_name = { Cyrl = s["cau-Cyrl-entryname"], Latn = s["cau-Latn-entryname"], }, sort_key = "uby-sortkey", } m["uda"] = { "Uda", 11011951, "nic-lcr", } m["ude"] = { "Udihe", 13235, "tuw-udg", "Cyrl", } m["udg"] = { "Muduga", 16886762, "dra-imd", "Mlym", translit = "ml-translit", } m["udi"] = { "Udi", 36867, "cau-esm", "Cyrl, Latn, Armn, Geor", ancestors = "xag", translit = { Cyrl = "udi-translit", Armn = "Armn-translit", Geor = "Geor-translit", }, override_translit = true, display_text = {Cyrl = s["cau-Cyrl-displaytext"]}, entry_name = { Cyrl = s["cau-Cyrl-entryname"], Latn = s["cau-Latn-entryname"], }, } m["udj"] = { "Ujir", 14916906, "poz-cet", } m["udl"] = { "Uldeme", 3515078, "cdc-cbm", } m["udm"] = { "Udmurt", 13238, "urj-prm", "Cyrl", translit = "udm-translit", override_translit = true, sort_key = "udm-sortkey", } m["udu"] = { "Uduk", 3182573, "ssa-kom", } m["ues"] = { "Kioko", 18343036, } m["ufi"] = { "Ufim", 7877531, "ngf-fin", "Latn", } m["uga"] = { "Ugaritic", 36928, "sem-nwe", "Ugar", translit = "uga-translit", } m["ugb"] = { "Kuku-Ugbanh", 10549854, } m["uge"] = { "Ughele", 966303, "poz-ocw", } m["ugn"] = { "Ugandan Sign Language", 7877677, "sgn", } m["ugo"] = { "Gong", 3448919, "tbq-lob", "Thai", sort_key = "Thai-sortkey", } m["ugy"] = { "Uruguayan Sign Language", 7901470, "sgn", } m["uha"] = { "Uhami", 3913328, "alv-nwd", "Latn", } m["uhn"] = { "Damal", 4748974, } m["uis"] = { "Uisai", 7878123, "paa-sbo", } m["uiv"] = { "Iyive", 11128658, "nic-tvc", "Latn", } m["uji"] = { "Tanjijili", 3914939, "nic-pls", } m["uka"] = { "Kaburi", 6344482, } m["ukg"] = { "Ukuriguma", 7878623, "ngf-mad", } m["ukh"] = { "Ukhwejo", 36623, "bnt-bek", } m["ukk"] = { "Muak Sa-aak", 23807993, "mkh-pal", } m["ukl"] = { "Ukrainian Sign Language", 10322106, "sgn", } m["ukp"] = { "Ukpe-Bayobiri", 3914470, "nic-ben", "Latn", } m["ukq"] = { "Ukwa", 7878635, "nic-ief", } m["uks"] = { "Kaapor Sign Language", 3322101, "sgn", } m["uku"] = { "Ukue", 3913387, "alv-nwd", "Latn", } m["ukw"] = { "Ukwuani-Aboh-Ndoni", 36636, "alv", "Latn", } m["uky"] = { "Kuuk Yak", 6448719, "aus-psw", "Latn", } m["ula"] = { "Fungwa", 5509187, "nic-shi", } m["ulb"] = { "Olukumi", 36722, "alv-yor", "Latn", entry_name = {Latn = {remove_diacritics = c.grave .. c.acute .. c.macron}}, sort_key = { from = {"ch", "ẹ", "gb", "gh", "gw", "kp", "kw", "ọ", "ṣ"}, to = {"c" .. p[1], "e" .. p[1], "g" .. p[1], "g" .. p[2], "g" .. p[3], "k" .. p[1], "k" .. p[2], "o" .. p[1], "s" .. p[1]} }, } m["ulc"] = { "Ulch", 13239, "tuw-nan", "Cyrl, Latn", entry_name = { from = {"['’]"}, to = {"ʼ"} }, sort_key = "ulc-sortkey", } m["ule"] = { "Lule", 12635889, nil, "Latn", } m["ulf"] = { "Afra", 4477735, "paa-pau", } m["uli"] = { "Ulithian", 36842, "poz-mic", } m["ulk"] = { "Meriam", 788174, "ngf", "Latn", } m["ull"] = { "Ullatan", 8761579, "dra-mal", } m["ulm"] = { "Ulumanda'", 3501892, } m["uln"] = { "Unserdeutsch", 13244, "crp", "Latn", ancestors = "de", } m["ulu"] = { "Uma' Lung", 3548186, "poz-swa", } m["ulw"] = { "Ulwa", 2405552, } m["uma"] = { "Umatilla", 12953952, "nai-shp", "Latn", ancestors = "nai-spt", } m["umb"] = { "Umbundu", 36983, "bnt", "Latn", } m["umc"] = { "Marrucinian", 36110, "itc-sbl", "Latn, Ital", } m["umd"] = { "Umbindhamu", 7881346, "aus-pmn", } m["umg"] = { "Umbuygamu", 3915677, "aus-pmn", } m["umi"] = { "Ukit", 7878321, } m["umm"] = { "Umon", 3915448, "nic-ucn", "Latn", } m["umn"] = { "Makyan Naga", 6740516, "sit-kch", } m["umo"] = { "Umotína", 7881740, "sai-mje", } m["ump"] = { "Umpila", 12953954, "aus-pmn", "Latn", } m["umr"] = { "Umbugarla", 2980392, } m["ums"] = { "Pendau", 7162371, "poz-tot", } m["umu"] = { "Munsee", 56547, "del", "Latn", entry_name = {remove_diacritics = c.acute .. c.breve}, } m["una"] = { "North Watut", 15887898, "poz-ocw", "Latn", } m["und"] = { "Undetermined", 22282914, "qfa-not", "All", } m["une"] = { "Uneme", 3913357, "alv-yek", "Latn", } m["ung"] = { "Ngarinyin", 1284885, "aus-wor", "Latn", } m["unk"] = { "Enawené-Nawé", 3307184, "awd", "Latn", } m["unm"] = { "Unami", 3549180, "del", "Latn", --[===[Don't strip diacritics from entry names, per [[WT:Grease pit/2020/May]]. entry_name = {remove_diacritics = c.grave .. c.diaer},]===] } m["unn"] = { "Kurnai", 61676882, "aus-pam", "Latn", } m["unr"] = { "Mundari", 3327828, "mun", "Nagm, Deva, Onao", -- Onao is used by Bhumij, which may be a separate language; remove if it gets split out translit = "hi-translit", -- for now } m["unu"] = { "Unubahe", 7897776, } m["unx"] = { "Munda", 36264959, "mun", "Latn", } m["unz"] = { "Unde Kaili", 12953596, "poz-kal", "Latn", } m["uok"] = { "Uokha", 3441216, "alv-edo", "Latn", } m["uon"] = { "Kulon", 11182000, "map", "Latn", } m["upi"] = { "Umeda", 7881465, "paa-brd", } m["upv"] = { "Northeast Malakula", 13249, "poz-vnc", "Latn", } m["ura"] = { "Urarina", 1579560, } m["urb"] = { "Urubú-Kaapor", 13893353, "tup-gua", "Latn", } m["urc"] = { "Urningangg", 10710522, } m["ure"] = { "Uru", 2992892, } m["urf"] = { "Uradhi", 3915680, "aus-pam", "Latn", } m["urg"] = { "Urigina", 7900603, "ngf", "Latn", } m["urh"] = { "Urhobo", 36663, "alv-swd", "Latn", } m["uri"] = { "Urim", 7900609, "qfa-tor", "Latn", } m["urk"] = { "Urak Lawoi'", 7899573, "poz-mly", "Thai", sort_key = "Thai-sortkey", } m["url"] = { "Urali", 7899602, "dra-kod", "Knda", } m["urm"] = { "Urapmin", 7899769, "ngf-okk", } m["urn"] = { "Uruangnirin", 7901389, "poz-cet", "Latn", } m["uro"] = { "Ura (Papua New Guinea)", 3121049, "paa-bng", "Latn", } m["urp"] = { "Uru-Pa-In", 7901376, "tup-gua", "Latn", } m["urr"] = { "Löyöp", 3272124, "poz-vnn", "Latn", } m["urt"] = { "Urat", 3502084, "qfa-tor", "Latn", } m["uru"] = { "Urumi", 7901530, "tup", "Latn", } m["urv"] = { "Uruava", 36875, "poz-ocw", "Latn", } m["urw"] = { "Sop", 7562808, "ngf-mad", "Latn", } m["urx"] = { "Urimo", 7900611, "qfa-tor", "Latn", } m["ury"] = { "Orya", 7105295, "paa-tkw", "Latn", } m["urz"] = { "Uru-Eu-Wau-Wau", 10266012, "tup-gua", "Latn", } m["usa"] = { "Usarufa", 7901714, "paa-kag", "Latn", } m["ush"] = { "Ushojo", 3540446, "inc-shn", "ur-Arab", } m["usi"] = { "Usui", 12644231, } m["usk"] = { "Usaghade", 3914048, "nic-lcr", "Latn", } m["usp"] = { "Uspanteco", 36728, "myn", "Latn", } m["uss"] = { "Saare", 63313662, "nic-knn", "Latn", } m["usu"] = { "Uya", 7904082, } m["uta"] = { "Otank", 3913990, "nic-tvc", "Latn", } m["ute"] = { "Ute", 13260, "azc-num", "Latn", } m["uth"] = { "Hun", 63313668, "nic-knn", "Latn", } m["utp"] = { "Aba", 2841465, "poz-tem", "Latn", } m["utr"] = { "Etulo", 35262, "alv-ido", "Latn", } m["utu"] = { "Utu", 7903469, "ngf-mad", } m["uum"] = { "Urum", 13257, "trk-kcu", "Cyrl", } m["uun"] = { "Kulon-Pazeh", 36435, "map", "Latn", } m["uur"] = { "Ura (Vanuatu)", 7899531, "poz-vns", "Latn", } m["uuu"] = { "U", 953082, "mkh-pal", } m["uve"] = { "West Uvean", 36837, "poz-pnp", "Latn", } m["uvh"] = { "Uri", 7900540, "ngf-fin", "Latn", } m["uvl"] = { "Lote", 3259972, "poz-ocw", "Latn", } m["uwa"] = { "Kuku-Uwanh", 3915687, "aus-pmn", } m["uya"] = { "Doko-Uyanga", 7904095, "nic-ucr", "Latn", } return m_lang.finalizeLanguageData(m_lang.addDefaultTypes(m, true)) gqupbt66ent50tp97bl7icq58f26sy6 Modul:languages/data/3/y 828 159433 629003 616603 2024-11-06T18:33:26Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 629003 Scribunto text/plain local m_lang = require("Module:tili") local m_langdata = require("Module:tili/data") local u = require("Module:string utilities").char local c = m_langdata.chars local p = m_langdata.puaChars local s = m_langdata.shared local m = {} m["yaa"] = { "Yaminahua", 3026110, "sai-pan", "Latn", } m["yab"] = { "Yuhup", 3573115, "sai-nad", "Latn", } m["yac"] = { "Pass Valley Yali", 12953309, "ngf", "Latn", } m["yad"] = { "Yagua", 3182567, nil, "Latn", } m["yae"] = { "Pumé", 3121835, nil, "Latn", } m["yaf"] = { "Yaka", 35588, "bnt-yak", "Latn", } m["yag"] = { "Yámana", 531826, "qfa-iso", "Latn", } m["yah"] = { "Yazghulami", 34186, "ira-shy", "Latn, Cyrl", translit = "yah-translit", } m["yai"] = { "Yagnobi", 34247, "ira-sgc", "Latn, Cyrl", translit = "tg-translit", } m["yaj"] = { "Banda-Yangere", 8048561, "bad", } m["yak"] = { "Yakima", 35976053, "nai-shp", "Latn", ancestors = "nai-spt", } m["yal"] = { "Yalunka", 35524, "dmn-sya", } m["yam"] = { "Yamba", 36904, "nic-nka", "Latn", } m["yan"] = { "Mayangna", 3302929, "nai-min", "Latn", } m["yao"] = { "Yao", 36902, "bnt-rvm", "Latn", } m["yap"] = { "Yapese", 34029, "poz-oce", "Latn", } m["yaq"] = { "Yaqui", 34191, "azc-trc", "Latn", } m["yar"] = { "Yabarana", 3571238, "sai-map", "Latn", } m["yas"] = { "Gunu", 36358, "nic-ymb", "Latn", } m["yat"] = { "Yambeta", 8048020, "nic-mbw", "Latn", } m["yau"] = { "Yuwana", 5876347, } m["yav"] = { "Yangben", 12953315, "nic-ymb", "Latn", } m["yaw"] = { "Yawalapití", 3450709, "awd", "Latn", } m["yay"] = { "Agwagwune", 34736, "nic-ucn", "Latn", } m["yaz"] = { "Lokaa", 3914439, "nic-uce", "Latn", } m["yba"] = { "Yala", 3914920, "alv-ido", "Latn", } m["ybb"] = { "Yemba", 36917, "bai", "Latn", } m["ybe"] = { "Western Yugur", 34224, "trk-ssb", "Latn, Ougr", ancestors = "oui", } m["ybh"] = { "Yakkha", 56666, "sit-kie", "Deva", } m["ybi"] = { "Yamphu", 56316, "sit-kie", "Deva", translit = "ybi-translit", } m["ybj"] = { "Hasha", 3915338, "nic-alu", } m["ybk"] = { "Bokha", 63340714, "tbq-muj", } m["ybl"] = { "Yukuben", 3915846, "nic-ykb", } m["ybm"] = { "Yaben", 8046372, "ngf-mad", } m["ybn"] = { "Yabaâna", 3450534, "awd", "Latn", } m["ybo"] = { "Yabong", 8046383, "ngf-mad", } m["ybx"] = { "Yawiyo", 8050463, "paa-spk", } m["yby"] = { "Yaweyuha", 3571231, "paa-kag", } m["ych"] = { "Chesu", 30334841, "tbq-nas", } m["ycl"] = { "Lolopo", 56441, "tbq-llo", } m["ycn"] = { "Yucuna", 3438356, "awd-nwk", "Latn", } m["ycp"] = { "Chepya", 46603077, "tbq-han", } m["ycr"] = { "Yilan Creole", 10955036, "crp", "Latn", } m["yda"] = { "Yanda", 8048318, "aus-pam", } m["yde"] = { "Yangum Dey", 63340998, "qfa-tor", "Latn", } m["ydg"] = { "Yidgha", 34179, "ira-mny", "Arab", } m["ydk"] = { "Yoidik", 8054512, "ngf-mad", } m["yea"] = { "Ravula", 7296830, "dra-mal", "Knda, Mlym", translit = { Knda = "kn-translit", Mlym = "ml-translit", }, } m["yec"] = { "Yenish", 1365342, "gmw-hgm", "Latn", ancestors = "gmh", } m["yee"] = { "Yimas", 36954, "paa-lsp", } m["yei"] = { "Yeni", 34213, "nic-mmb", } m["yej"] = { "Yevanic", 34200, "grk", "Hebr", ancestors = "gkm", entry_name = {remove_diacritics = u(0x0591) .. "-" .. u(0x05BD) .. u(0x05BF) .. "-" .. u(0x05C5) .. u(0x05C7)}, } m["yen"] = { "Yendang", 3914882, "alv-mye", "Latn", } m["yer"] = { "Tarok", 3914953, "nic-tar", "Latn", } m["yes"] = { "Yeskwa", 3914962, "nic-plc", "Latn", } m["yet"] = { "Yetfa", 8053020, "paa-pau", } m["yeu"] = { "Yerukula", 3535117, "dra-tam", } m["yev"] = { "Yapunda", 11044384, "qfa-tor", "Latn", } m["yey"] = { "Yeyi", 8053347, "bnt", } m["ygi"] = { "Yiningayi", 63341096, "aus-pam", } m["ygl"] = { "Yangum Gel", 63341179, "qfa-tor", "Latn", } m["ygm"] = { "Yagomi", 20771657, "ngf-fin", "Latn", } m["ygp"] = { "Gepo", 5548692, "tbq-nas", } m["ygr"] = { "Yagaria", 8046690, "paa-kag", "Latn", } m["ygs"] = { "Yolngu Sign Language", 16211970, "sgn", } m["ygu"] = { "Yugul", 8060437, "aus-arn", } m["ygw"] = { "Yagwoia", 8046761, "ngf", "Latn", } m["yha"] = { "Baha", 2879238, "qfa-kra", } m["yhl"] = { "Hlepho Phowa", 63341181, "tbq-phw", } m["yia"] = { "Yinggarda", 3913777, "aus-psw", "Latn", } m["yif"] = { "Ache", 10949828, "tbq-sel", } m["yig"] = { "Wusa", 12953334, "tbq-nas", } m["yii"] = { "Yidiny", 3053283, "aus-yid", "Latn", } m["yij"] = { "Yindjibarndi", 3121073, "aus-nga", "Latn", } m["yik"] = { "Dongshanba Lalo", 12953333, "tbq-lal", } m["yil"] = { "Yindjilandji", 10723541, "aus-pam", "Latn", } m["yim"] = { "Yimchungru Naga", 56348, "sit-aao", "Latn", } m["yin"] = { "Yinchia", 12953981, "mkh-pal", } m["yip"] = { "Pholo", 7187103, "tbq-nso", } m["yiq"] = { "Micha", 6827993, "tbq-llo", "Latn", } m["yir"] = { "North Awyu", 12642164, "ngf", } m["yis"] = { "Yis", 8053831, "qfa-tor", "Latn", } m["yit"] = { "Eastern Lalu", 12953328, "tbq-lal", } m["yiu"] = { "Lope", 11163308, "tbq-nlo", } m["yiv"] = { "Northern Nisu", 25559454, "tbq-nis", } m["yix"] = { "Axi", 4830439, "tbq-axi", } m["yiy"] = { "Yir-Yoront", 8053819, "aus-pmn", "Latn", } m["yiz"] = { "Azhe", 4832535, "tbq-axi", } m["yka"] = { "Yakan", 3571351, "poz-sbj", "Latn", } m["ykg"] = { "Northern Yukaghir", 56319, "qfa-yuk", "Cyrl", translit = "ykg-translit", } m["ykh"] = { "Khamnigan Mongol", 3196052, "xgn-cen", "Mong, Latn, Cyrl", translit = {Mong = "Mong-translit"}, display_text = {Mong = s["Mong-displaytext"]}, entry_name = {Mong = s["Mong-entryname"]}, } m["yki"] = { "Yoke", 3832977, } m["ykk"] = { "Yakaikeke", 8047041, "poz-oce", } m["ykl"] = { "Khlula", 6401849, "tbq-phw", } m["ykm"] = { "Kap", 8047048, "poz-ocw", "Latn", } m["ykn"] = { "Kua-nsi", 6440952, "tbq-tal", } m["yko"] = { "Yasa", 36899, "bnt-yko", "Latn", } m["ykr"] = { "Yekora", 11732781, "ngf", } m["ykt"] = { "Kathu", 6377155, "sit-mnz", } m["yku"] = { "Kuamasi", 6441074, "tbq-tal", } m["yky"] = { "Yakoma", 3571364, "nic-ngd", } m["yla"] = { "Yaul", 8050336, "paa", "Latn", } m["ylb"] = { "Yaleba", 37710600, "poz-oce", } m["yle"] = { "Yele", 36942, } m["ylg"] = { "Yelogu", 8052024, "paa-spk", } m["yli"] = { "Angguruk Yali", 3514481, "ngf", } m["yll"] = { "Yil", 3501797, "qfa-tor", "Latn", } m["ylm"] = { "Limi", 12953327, "tbq-lso", } m["yln"] = { "Langnian Buyang", 2929025, "qfa-buy", } m["ylo"] = { "Naruo", 6961032, "tbq-tal", } m["ylr"] = { "Yalarnnga", 3915686, "aus-pam", "Latn", } m["ylu"] = { "Aribwaung", 11044246, "poz-ocw", "Latn", } m["yly"] = { "Nyelâyu", 303154, "poz-cln", "Latn", } m["ymb"] = { "Yambes", 8048022, "qfa-tor", "Latn", } m["ymc"] = { "Southern Muji", 57259564, "tbq-muj", } m["ymd"] = { "Muda", 6931494, "tbq-han", } m["yme"] = { "Yameo", 3121032, } m["ymg"] = { "Yamongeri", 11008893, "bnt-mon", "Latn", ancestors = "lol", } m["ymh"] = { "Mili", 12953329, "tbq-lso", } m["ymi"] = { "Moji", 6895060, "tbq-muj", } m["ymk"] = { "Makwe", 6740513, "bnt-swh", } m["yml"] = { "Iamalele", 8047849, "poz-ocw", "Latn", } m["ymm"] = { "Maay", 36221, "cus-som", "Latn", } m["ymn"] = { "Sunum", 8048083, "poz-ocw", "Latn", } m["ymo"] = { "Yangum Mon", 50313949, "qfa-tor", "Latn", } m["ymp"] = { "Yamap", 8047913, "poz-ocw", "Latn", } m["ymq"] = { "Qila Muji", 56826369, "tbq-muj", } m["ymr"] = { "Malasar", 16889525, "dra-tam", } m["yms"] = { "Mysian", 2577228, "ine", } m["ymx"] = { "Northern Muji", 56751275, "tbq-muj", } m["ymz"] = { "Muzi", 6944445, "tbq-muj", } m["yna"] = { "Aluo", 4737539, "tbq-nas", } m["ynd"] = { "Yandruwandha", 8048335, "aus-kar", "Latn", } m["yne"] = { "Lang'e", 6485577, "tbq-tal", } m["yng"] = { "Yango", 13123599, "nic-nkk", "Latn", } m["ynk"] = { "Naukanski", 27963, "ypk", "Cyrl, Latn", } m["ynl"] = { "Yangulam", 8048663, "ngf-mad", } m["ynn"] = { "Yana", 56419, "qfa-iso", } m["yno"] = { "Yong", 8054978, "tai-swe", "Lana, Thai", sort_key = { Lana = "Lana-sortkey", Thai = "Thai-sortkey" }, } m["yns"] = { "Yansi", 36953, "bnt-yak", } m["ynu"] = { "Yahuna", 8050347, "sai-tuc", } m["yob"] = { "Yoba", 8054220, "poz-ocw", "Latn", } m["yog"] = { "Yogad", 8054343, "phi", "Latn", } m["yoi"] = { "Yonaguni", 34243, "jpx-sry", "Jpan", translit = s["jpx-translit"], display_text = s["jpx-displaytext"], entry_name = s["jpx-entryname"], sort_key = s["jpx-sortkey"], } m["yol"] = { "Yola", 56395, "gmw-ian", "Latn", } m["yom"] = { "Yombe", 10961975, "bnt-kng", "Latn", } m["yon"] = { "Yongkom", 8055002, "ngf-okk", } m["yox"] = { "Yoron", 2424943, "jpx-nry", "Jpan", translit = s["jpx-translit"], display_text = s["jpx-displaytext"], entry_name = s["jpx-entryname"], sort_key = s["jpx-sortkey"], } m["yoy"] = { "Yoy", 3503717, "tai", } m["ypa"] = { "Phala", 36211907, "tbq-drp", } m["ypb"] = { "Labo Phowa", 63341239, "tbq-phw", } m["ypg"] = { "Phola", 7187058, "tbq-drp", } m["yph"] = { "Phupha", 7188378, "tbq-urp", } m["ypm"] = { "Phuma", 63341260, "tbq-muj", } m["ypn"] = { "Ani Phowa", 33590104, "tbq-phw", } m["ypo"] = { "Alo Phola", 33522157, "tbq-drp", } m["ypp"] = { "Phupa", 48565467, "tbq-urp", } m["ypz"] = { "Phuza", 48565339, "tbq-urp", } m["yra"] = { "Yerakai", 8052531, } m["yrb"] = { "Yareba", 3571876, "ngf", } m["yre"] = { "Yaouré", 3913951, "dmn-mda", } m["yri"] = { "Yarí", 8049616, } m["yrk"] = { "Tundra Nenets", 36452, "syd", "Cyrl", entry_name = { from = {"ӑ", "а̄", "э̇", "ӣ", "ы̄", "ӯ", "ю̄", "я̆", "я̄"}, to = {"а", "а", "э", "и", "ы", "у", "ю", "я", "я"}, }, translit = "yrk-translit", } m["yrl"] = { "Nheengatu", 34333, "tup-gua", "Latn", ancestors = "tpw", } m["yrn"] = { "Yerong", 3572191, "qfa-buy", } m["yro"] = { "Ỹaroamë", 24190396, "sai-ynm", "Latn", } m["yrw"] = { "Yarawata", 8049237, "ngf-mad", } m["yry"] = { "Yarluyandi", 33061540, "aus-kar", } m["ysc"] = { "Jassic", 2479368, "xsc", "Latn", ancestors = "oos", } m["ysd"] = { "Samatao", 7408902, "tbq-kzh", } m["ysg"] = { "Sonaga", 7560736, "tbq-tal", } m["ysl"] = { "Yugoslavian Sign Language", 8060373, "sgn", } m["ysn"] = { "Sani", 1055287, "tbq-axi", "Latn", -- Not Yiii, which is the Nuosu syllabary, and does not cover classical Yi scripts. } m["yso"] = { "Nisi", 12953326, "tbq-sel", } m["ysp"] = { "Southern Lolopo", 12633989, "tbq-llo", } m["ysr"] = { "Sirenik", 28156, "ypk", "Cyrl", translit = "ysr-translit", entry_name = {remove_diacritics = c.acute .. c.macron}, } m["yss"] = { "Yessan-Mayo", 8052927, "paa-spk", "Latn", } m["ysy"] = { "Sanie", 7418287, "tbq-kzh", } m["yta"] = { "Talu", 16999095, "tbq-tal", } m["ytl"] = { "Toloza", 7786695, "tbq-lso", } m["ytp"] = { "Thopho", 7796015, "tbq-muj", } m["ytw"] = { "Yout Wam", 31819036, "ngf-fin", "Latn", } m["yty"] = { "Yatay", 63341274, "aus-pmn", } m["yua"] = { "Yucatec Maya", 13354, "myn", "Latn", } m["yub"] = { "Yugambal", 3446663, } m["yuc"] = { "Yuchi", 34204, "qfa-iso", } m["yue"] = { "Cantonese", 9186, "zhx-yue", "Hants, Latn", wikimedia_codes = "yue, zh-yue", generate_forms = "zh-generateforms", translit = {Hani = "zh-translit"}, sort_key = {Hani = "Hani-sortkey"}, } m["yuf"] = { "Havasupai-Walapai-Yavapai", 3565286, "nai-yuc", "Latn", } m["yug"] = { "Yug", 56311, "qfa-yno", "Cyrl", } m["yui"] = { "Yurutí", 3573266, "sai-tuc", "Latn", } m["yuj"] = { "Karkar-Yuri", 2992906, "paa-pau", "Latn", } m["yuk"] = { "Yuki", 36993, "nai-ykn", "Latn", } m["yul"] = { "Yulu", 3915595, "csu-bba", } m["yum"] = { "Yuma", 3573199, "nai-yuc", "Latn", } m["yun"] = { "Bena", 3913283, "alv-yun", } m["yup"] = { "Yukpa", 3441447, "sai-yuk", "Latn", } m["yuq"] = { "Yuqui", 8061440, "tup-gua", "Latn", } m["yur"] = { "Yurok", 34685, "aql", "Latn", } m["yut"] = { "Yopno", 12953338, "ngf-fin", "Latn", } m["yuw"] = { "Finisterre Yau", 12953319, "ngf-fin", "Latn", } m["yux"] = { "Southern Yukaghir", 56545, "qfa-yuk", "Cyrl", translit = "yux-translit", } m["yuy"] = { "East Yugur", 29902, "xgn-sou", "Latn", } m["yuz"] = { "Yuracare", 2640646, "qfa-iso", "Latn", } m["yva"] = { "Yawa", 3572020, "paa", "Latn", } m["yvt"] = { "Yavitero", 3441427, "awd", "Latn", } m["ywa"] = { "Kalou", 6354305, "paa-spk", "Latn", } m["ywg"] = { "Yinhawangka", 8053734, "aus-nga", "Latn", } m["ywl"] = { "Western Lalu", 12953325, "tbq-lal", } m["ywn"] = { "Yawanawa", 10322118, "sai-pan", "Latn", } m["ywq"] = { "Nasu", 25559456, "tbq-nas", "Plrd", -- Not Yiii, which is the Nuosu syllabary, and does not cover classical Yi scripts. } m["ywr"] = { "Yawuru", 8050479, "aus-nyu", "Latn", } m["ywt"] = { "Xishanba Lalo", 12953336, "tbq-lal", } m["ywu"] = { "Wumeng", 25559442, "tbq-nas", } m["yww"] = { "Yawarawarga", 10723454, "aus-kar", "Latn", } m["yxa"] = { "Mayawali", 33060513, "aus-pam", "Latn", } m["yxg"] = { "Yagara", 16979305, "aus-pam", "Latn", } m["yxl"] = { "Yarli", 46264708, "aus-pam", "Latn", } m["yxm"] = { "Yinwum", 8053763, "aus-pam", "Latn", } m["yxu"] = { "Yuyu", 8062232, "aus-pam", "Latn", } m["yxy"] = { "Yabula Yabula", 8046394, "aus-pam", "Latn", } m["yyu"] = { "Torricelli Yau", 8050328, "qfa-tor", "Latn", } m["yyz"] = { "Ayizi", 20527363, "tbq-nas", } m["yzg"] = { "E'ma Buyang", 16115619, "qfa-buy", } m["yzk"] = { "Zokhuo", 8073523, "tbq-phw", } return m_lang.finalizeLanguageData(m_lang.addDefaultTypes(m, true)) hbi4zdm8bl9k25lrkbq1n5ho9h4axr4 Modul:languages/canonical names 828 159496 628876 616864 2024-11-06T14:55:09Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628876 Scribunto text/plain return { ["'Are'are"] = "alu", ["A'ou"] = "aou", ["A-Hmao"] = "hmd", ["A-Pucikwar"] = "apq", ["Aari"] = "aiw", ["Aasax"] = "aas", ["Aba"] = "utp", ["Abaga"] = "abg", ["Abai"] = "poz-abi", ["Abai Sungai"] = "abf", ["Abanyom"] = "abm", ["Abau"] = "aau", ["Abaza"] = "abq", ["Abenaki"] = "abe", ["Abenlen Ayta"] = "abp", ["Abidji"] = "abi", ["Abinomn"] = "bsa", ["Abipón"] = "axb", ["Abishira"] = "ash", ["Abkhaz"] = "ab", ["Abom"] = "aob", ["Abon"] = "abo", ["Abron"] = "abr", ["Abu"] = "ado", ["Abu' Arapesh"] = "aah", ["Abua"] = "abn", ["Abui"] = "abz", ["Abun"] = "kgr", ["Abung"] = "abl", ["Abure"] = "abu", ["Abureni"] = "mgj", ["Abé"] = "aba", ["Acatepec Me'phaa"] = "tpx", ["Acehnese"] = "ace", ["Achagua"] = "aca", ["Achang"] = "acn", ["Ache"] = "yif", ["Acheron"] = "acz", ["Achi"] = "acr", ["Acholi"] = "ach", ["Achuar"] = "acu", ["Achumawi"] = "acv", ["Aché"] = "guq", ["Acroá"] = "acs", ["Adabe"] = "adb", ["Adai"] = "xad", ["Adamorobe Sign Language"] = "ads", ["Adang"] = "adn", ["Adangbe"] = "adq", ["Adangme"] = "ada", ["Adap"] = "adp", ["Adasen"] = "tiu", ["Adele"] = "ade", ["Adhola"] = "adh", ["Adi"] = "adi", ["Adioukrou"] = "adj", ["Adithinngithigh"] = "dth", ["Adivasi Odia"] = "ort", ["Adiwasi Garasia"] = "gas", ["Adja"] = "ajg", ["Adnyamathanha"] = "adt", ["Adonara"] = "adr", ["Aduge"] = "adu", ["Adyghe"] = "ady", ["Adzera"] = "adz", ["Adûni"] = "art-adu", ["Aeka"] = "aez", ["Aekyom"] = "awi", ["Aequian"] = "xae", ["Aer"] = "aeq", ["Afade"] = "aal", ["Afar"] = "aa", ["Afghan Sign Language"] = "afg", ["Afitti"] = "aft", ["Afra"] = "ulf", ["Afrihili"] = "afh", ["Afrikaans"] = "af", ["Afro-Seminole Creole"] = "afs", ["Agarabi"] = "agd", ["Agariya"] = "agi", ["Agatu"] = "agc", ["Agavotaguerra"] = "avo", ["Agawam"] = "alg-aga", ["Aghem"] = "agq", ["Aghu"] = "ahh", ["Aghu Tharrnggala"] = "gtu", ["Aghul"] = "agx", ["Aghwan"] = "xag", ["Agi"] = "aif", ["Agob"] = "kit", ["Agoi"] = "ibm", ["Aguacateca"] = "agu", ["Aguano"] = "aga", ["Aguaruna"] = "agr", ["Aguna"] = "aug", ["Agusan Manobo"] = "msm", ["Agutaynen"] = "agn", ["Agwagwune"] = "yay", ["Ahanta"] = "aha", ["Ahirani"] = "ahr", ["Ahom"] = "aho", ["Ahtna"] = "aht", ["Ahwai"] = "nfd", ["Ai-Cham"] = "aih", ["Aighon"] = "aix", ["Aikanã"] = "tba", ["Aiklep"] = "mwg", ["Aimele"] = "ail", ["Aimol"] = "aim", ["Ainbai"] = "aic", ["Ainu"] = "ain", ["Aiome"] = "aki", ["Airoran"] = "air", ["Aisi"] = "mmq", ["Aiton"] = "aio", ["Aja"] = "aja", ["Ajawa"] = "ajw", ["Ajië"] = "aji", ["Ajyíninka Apurucayali"] = "cpc", ["Ak"] = "akq", ["Aka (Central Africa)"] = "axk", ["Aka (Sudan)"] = "soh", ["Aka-Bea"] = "abj", ["Aka-Bo"] = "akm", ["Aka-Cari"] = "aci", ["Aka-Kede"] = "akx", ["Aka-Kol"] = "aky", ["Aka-Kora"] = "ack", ["Akan"] = "ak", ["Akar-Bale"] = "acl", ["Akaselem"] = "aks", ["Akatek"] = "knj", ["Akawaio"] = "ake", ["Ake"] = "aik", ["Akebu"] = "keu", ["Akei"] = "tsr", ["Akeu"] = "aeu", ["Akha"] = "ahk", ["Akhvakh"] = "akv", ["Akkadian"] = "akk", ["Akkala Sami"] = "sia", ["Aklanon"] = "akl", ["Akolet"] = "akt", ["Akoose"] = "bss", ["Akoye"] = "miw", ["Akpa"] = "akf", ["Akpes"] = "ibe", ["Akrukay"] = "afi", ["Akuku"] = "ayk", ["Akum"] = "aku", ["Akuntsu"] = "aqz", ["Akurio"] = "ako", ["Akuwagel"] = "bey", ["Akwa"] = "akw", ["Akyaung Ari"] = "nqy", ["Al-Sayyid Bedouin Sign Language"] = "syy", ["Alaba"] = "alw", ["Alabama"] = "akz", ["Alabat Island Agta"] = "dul", ["Alacatlatzala Mixtec"] = "mim", ["Alago"] = "ala", ["Alagwa"] = "wbj", ["Alak"] = "alk", ["Alamblak"] = "amp", ["Alangan"] = "alj", ["Alanic"] = "xln", ["Alapmunte"] = "apv", ["Alas-Kluet Batak"] = "btz", ["Alawa"] = "alh", ["Alazapa"] = "nai-ala", ["Albanian"] = "sq", ["Albanian Sign Language"] = "sqk", ["Alchuka"] = "tuw-alk", ["Alcozauca Mixtec"] = "xta", ["Alege"] = "alf", ["Alekano"] = "gah", ["Alemannic German"] = "gsw", ["Aleut"] = "ale", ["Algerian Arabic"] = "arq", ["Algerian Sign Language"] = "asp", ["Algonquin"] = "alq", ["Ali"] = "aiy", ["Alladian"] = "ald", ["Allar"] = "all", ["Allentiac"] = "sai-all", ["Alngith"] = "aid", ["Alo Phola"] = "ypo", ["Alor"] = "aol", ["Aloápam Zapotec"] = "zaq", ["Alsea"] = "aes", ["Alu"] = "mte", ["Alu Kurumba"] = "xua", ["Alugu"] = "aub", ["Alumu-Tesu"] = "aab", ["Alune"] = "alp", ["Alungul"] = "aus-alu", ["Aluo"] = "yna", ["Alur"] = "alz", ["Alutiiq"] = "ems", ["Alutor"] = "alr", ["Alviri-Vidari"] = "avd", ["Alyawarr"] = "aly", ["Ama"] = "amm", ["Amahai"] = "amq", ["Amahuaca"] = "amc", ["Amaimon"] = "ali", ["Amal"] = "aad", ["Amanab"] = "amn", ["Amanayé"] = "ama", ["Amara"] = "aie", ["Amarakaeri"] = "amr", ["Amarasi"] = "aaz", ["Amarizana"] = "awd-ama", ["Amasi"] = "alv-ama", ["Amatlán Zapotec"] = "zpo", ["Amba"] = "rwm", ["Ambai"] = "amk", ["Ambakich"] = "aew", ["Ambala Ayta"] = "abc", ["Ambelau"] = "amv", ["Ambele"] = "ael", ["Amblong"] = "alm", ["Ambo"] = "amb", ["Ambonese Malay"] = "abs", ["Ambrak"] = "aag", ["Ambul"] = "apo", ["Ambulas"] = "abt", ["Amdang"] = "amj", ["Amele"] = "aey", ["American Sign Language"] = "ase", ["Amganad Ifugao"] = "ifa", ["Amharic"] = "am", ["Ami"] = "amy", ["Amis"] = "ami", ["Ammonite"] = "sem-amm", ["Amo"] = "amo", ["Amol"] = "alx", ["Amoltepec Mixtec"] = "mbz", ["Amondawa"] = "adw", ["Amorite"] = "sem-amo", ["Ampanang"] = "apg", ["Ampari Dogon"] = "aqd", ["Amri Karbi"] = "ajz", ["Amto"] = "amt", ["Amurdag"] = "amg", ["Ana Tinga Dogon"] = "dti", ["Anaang"] = "anw", ["Anakalangu"] = "akg", ["Anal"] = "anm", ["Anam"] = "pda", ["Anambé"] = "aan", ["Anamgura"] = "imi", ["Anasi"] = "bpo", ["Anauyá"] = "awd-ana", ["Ancient Greek"] = "grc", ["Ancient Ligurian"] = "xlg", ["Ancient Macedonian"] = "xmk", ["Ancient North Arabian"] = "xna", ["Ancient Zapotec"] = "xzp", ["Andai"] = "afd", ["Andajin"] = "ajn", ["Andalusian Arabic"] = "xaa", ["Andaman Creole Hindi"] = "hca", ["Andaqui"] = "ana", ["Andarum"] = "aod", ["Andegerebinha"] = "adg", ["Andh"] = "anr", ["Andi"] = "ani", ["Andio"] = "bzb", ["Andjingith"] = "aus-and", ["Andoa"] = "anb", ["Andoque"] = "ano", ["Andoquero"] = "sai-and", ["Andra-Hus"] = "anx", ["Aneityum"] = "aty", ["Anem"] = "anz", ["Aneme Wake"] = "aby", ["Anfillo"] = "myo", ["Angaataha"] = "agm", ["Angaité"] = "aqt", ["Angal"] = "age", ["Angal Enen"] = "aoe", ["Angal Heneng"] = "akh", ["Angami"] = "njm", ["Angevin"] = "roa-ang", ["Angguruk Yali"] = "yli", ["Angika"] = "anp", ["Angkamuthi"] = "avm", ["Angkola Batak"] = "akb", ["Angkula"] = "aus-ang", ["Angloromani"] = "rme", ["Angolar"] = "aoa", ["Angor"] = "agg", ["Angoram"] = "aog", ["Angosturas Tunebo"] = "tnd", ["Anguthimri"] = "awg", ["Ani Phowa"] = "ypn", ["Anii"] = "blo", ["Animere"] = "anf", ["Anindilyakwa"] = "aoi", ["Anjam"] = "boj", ["Ankave"] = "aak", ["Anmatyerre"] = "amx", ["Annobonese"] = "fab", ["Anong"] = "nun", ["Anor"] = "anj", ["Anserma"] = "ans", ["Ansus"] = "and", ["Antakarinya"] = "ant", ["Antigua and Barbuda Creole English"] = "aig", ["Antillean Creole"] = "gcf", ["Anu"] = "anl", ["Anuak"] = "anu", ["Anufo"] = "cko", ["Anuki"] = "aui", ["Anus"] = "auq", ["Anuta"] = "aud", ["Anyi"] = "any", ["Anyin Morofo"] = "mtb", ["Ao"] = "njo", ["Aoheng"] = "pni", ["Aore"] = "aor", ["Ap Ma"] = "kbx", ["Apabhramsa"] = "inc-apa", ["Apalachee"] = "xap", ["Apalaí"] = "apy", ["Apali"] = "ena", ["Apasco-Apoala Mixtec"] = "mip", ["Apatani"] = "apt", ["Apiaká"] = "api", ["Apinayé"] = "apn", ["Apma"] = "app", ["Apolista"] = "awd-apo", ["Aproumu Aizi"] = "ahp", ["Apurinã"] = "apu", ["Aputai"] = "apx", ["Aquitanian"] = "xaq", ["Arabana"] = "ard", ["Arabela"] = "arl", ["Arabic"] = "ar", ["Aragonese"] = "an", ["Araki"] = "akr", ["Arakwal"] = "rkw", ["Aralle-Tabulahan"] = "atq", ["Aramaic"] = "arc", ["Arammba"] = "stk", ["Aranadan"] = "aaf", ["Aranama-Tamique"] = "xrt", ["Arandai"] = "jbj", ["Araona"] = "aro", ["Arapaho"] = "arp", ["Arapaso"] = "arj", ["Arara-Karo"] = "arr", ["Ararandewára"] = "xaj", ["Araweté"] = "awt", ["Arawum"] = "awm", ["Arbore"] = "arv", ["Archi"] = "aqc", ["Are"] = "mwc", ["Areba"] = "aea", ["Arem"] = "aem", ["Argentine Sign Language"] = "aed", ["Argobba"] = "agj", ["Arguni"] = "agf", ["Arhuaco"] = "arh", ["Arhâ"] = "aqr", ["Arhö"] = "aok", ["Ari"] = "aac", ["Aribwatsa"] = "laz", ["Aribwaung"] = "ylu", ["Arifama-Miniafia"] = "aai", ["Arigidi"] = "aqg", ["Arikapú"] = "ark", ["Arikara"] = "ari", ["Arikem"] = "ait", ["Arin"] = "xrn", ["Aringa"] = "luc", ["Armazic"] = "xrm", ["Armenian"] = "hy", ["Armenian Sign Language"] = "aen", ["Aromanian"] = "rup", ["Arop-Lokep"] = "apr", ["Arop-Sissano"] = "aps", ["Arosi"] = "aia", ["Arritinngithigh"] = "rrt", ["Arta"] = "atz", ["Arua"] = "aru", ["Aruamu"] = "msy", ["Aruek"] = "aur", ["Aruop"] = "lsr", ["Arutani"] = "atx", ["Aruá"] = "arx", ["As"] = "asz", ["Asaro'o"] = "mtv", ["Ashe"] = "ahs", ["Ashkun"] = "ask", ["Asho Chin"] = "csh", ["Ashokan Prakrit"] = "inc-ash", ["Ashraaf"] = "cus-ash", ["Asháninka"] = "cni", ["Ashéninka Pajonal"] = "cjo", ["Ashéninka Perené"] = "prq", ["Asi"] = "bno", ["Asilulu"] = "asl", ["Askopan"] = "eiv", ["Asoa"] = "asv", ["Assamese"] = "as", ["Assan"] = "xss", ["Assangori"] = "sjg", ["Assiniboine"] = "asb", ["Assyrian Neo-Aramaic"] = "aii", ["Asturian"] = "ast", ["Asu"] = "aum", ["Asue Awyu"] = "psa", ["Asumboa"] = "aua", ["Asunción Mixtepec Zapotec"] = "zoo", ["Asuri"] = "asr", ["Ata"] = "atm", ["Ata Manobo"] = "atd", ["Atakapa"] = "aqp", ["Atampaya"] = "amz", ["Atanques"] = "cba-ata", ["Atatláhuca Mixtec"] = "mib", ["Atayal"] = "tay", ["Atemble"] = "ate", ["Ateso"] = "teo", ["Athpare"] = "aph", ["Ati"] = "atk", ["Atikamekw"] = "atj", ["Atohwaim"] = "aqm", ["Atong (Cameroon)"] = "ato", ["Atong (India)"] = "aot", ["Atorada"] = "aox", ["Atsahuaca"] = "atc", ["Atsam"] = "cch", ["Atsugewi"] = "atw", ["Attapady Kurumba"] = "pkr", ["Attié"] = "ati", ["Au"] = "avt", ["Auhelawa"] = "kud", ["Aukan"] = "djk", ["Aulua"] = "aul", ["Aurá"] = "aux", ["Aushi"] = "auh", ["Aushiri"] = "avs", ["Auslan"] = "asf", ["Austral"] = "aut", ["Australian Aboriginal Sign Language"] = "asw", ["Australian Kriol"] = "rop", ["Austrian Sign Language"] = "asq", ["Austronesian Mari"] = "hob", ["Auwe"] = "smf", ["Auyana"] = "auy", ["Auye"] = "auu", ["Auyokawa"] = "auo", ["Avar"] = "av", ["Avatime"] = "avn", ["Avau"] = "avb", ["Avava"] = "tmb", ["Avestan"] = "ae", ["Avikam"] = "avi", ["Avokaya"] = "avu", ["Avá-Canoeiro"] = "avv", ["Awa (China)"] = "vwa", ["Awa (New Guinea)"] = "awb", ["Awa-Cuaiquer"] = "kwi", ["Awabakal"] = "awk", ["Awadhi"] = "awa", ["Awak"] = "awo", ["Awar"] = "aya", ["Awara"] = "awx", ["Awbono"] = "awh", ["Aweer"] = "bob", ["Awera"] = "awr", ["Awetí"] = "awe", ["Awing"] = "azo", ["Awjila"] = "auj", ["Awngi"] = "awn", ["Awngthim"] = "gwm", ["Awtuw"] = "kmn", ["Awun"] = "aww", ["Awutu"] = "afu", ["Awyi"] = "auw", ["Axamb"] = "ahb", ["Axi"] = "yix", ["Ayabadhu"] = "ayd", ["Ayautla Mazatec"] = "vmy", ["Ayere"] = "aye", ["Ayerrerenge"] = "axe", ["Ayi"] = "ayq", ["Ayizi"] = "yyz", ["Ayizo"] = "ayb", ["Aymara"] = "ay", ["Ayomán"] = "sai-ayo", ["Ayoquesco Zapotec"] = "zaf", ["Ayoreo"] = "ayo", ["Ayu"] = "ayu", ["Ayutla Mixtec"] = "miy", ["Azerbaijani"] = "az", ["Azha"] = "aza", ["Azhe"] = "yiz", ["Azoyú Me'phaa"] = "tpc", ["Baa"] = "kwb", ["Baagandji"] = "drl", ["Baan"] = "bvj", ["Baangi"] = "bqx", ["Baatonum"] = "bba", ["Baba"] = "bbw", ["Baba Malay"] = "mbf", ["Babango"] = "bbm", ["Babanki"] = "bbk", ["Babatana"] = "baa", ["Babine-Witsuwit'en"] = "bcr", ["Babole"] = "bvx", ["Babungo"] = "bav", ["Babuza"] = "bzg", ["Bacama"] = "bcy", ["Bacanese Malay"] = "btj", ["Bactrian"] = "xbc", ["Bada"] = "bhz", ["Badaga"] = "bfq", ["Badanchi"] = "bau", ["Bade"] = "bde", ["Badeshi"] = "bdz", ["Badimaya"] = "bia", ["Badui"] = "bac", ["Badyara"] = "pbp", ["Baeggu"] = "bvd", ["Baekje"] = "pkc", ["Baelelea"] = "bvc", ["Baenan"] = "sai-bae", ["Baetora"] = "btr", ["Bafanji"] = "bfj", ["Bafaw"] = "bwt", ["Bafia"] = "ksf", ["Bafut"] = "bfd", ["Baga Kaloum"] = "bqf", ["Baga Koga"] = "bgo", ["Baga Manduri"] = "bmd", ["Baga Pokur"] = "bcg", ["Baga Sitemu"] = "bsp", ["Baga Sobané"] = "bsv", ["Bagheli"] = "bfy", ["Bagirmi"] = "bmi", ["Bago-Kusuntu"] = "bqg", ["Bagri"] = "bgq", ["Bagua"] = "sai-bag", ["Bagupi"] = "bpi", ["Bagusa"] = "bqb", ["Bagvalal"] = "kva", ["Baha"] = "yha", ["Baham"] = "bdw", ["Bahamian Creole"] = "bah", ["Baharna Arabic"] = "abv", ["Bahau"] = "bhv", ["Bahinemo"] = "bjh", ["Bahing"] = "bhj", ["Bahnar"] = "bdq", ["Bahonsuai"] = "bsu", ["Bai"] = "bdj", ["Baibai"] = "bbf", ["Baikeno"] = "bkx", ["Bailang"] = "tbq-blg", ["Baima"] = "bqh", ["Baimak"] = "bmx", ["Bainouk-Gunyaamolo"] = "bcz", ["Bainouk-Gunyuño"] = "bab", ["Bainouk-Samik"] = "bcb", ["Baiso"] = "bsw", ["Baissa Fali"] = "fah", ["Bajan"] = "bjs", ["Bajelani"] = "bjm", ["Bajjika"] = "vjk", ["Baka"] = "bkc", ["Bakairí"] = "bkq", ["Bakaka"] = "bqz", ["Bakhtiari"] = "bqi", ["Baki"] = "bki", ["Bakoko"] = "bkh", ["Bakole"] = "kme", ["Bakpinka"] = "bbs", ["Bakulung"] = "bbu", ["Bakumpai"] = "bkr", ["Bakung"] = "xkl", ["Bakwé"] = "bjw", ["Bala"] = "tuw-bal", ["Balaesang"] = "bls", ["Balangao"] = "blw", ["Balangingi"] = "sse", ["Balanta-Ganja"] = "bjt", ["Balanta-Kentohe"] = "ble", ["Balantak"] = "blz", ["Balau"] = "blg", ["Baldemu"] = "bdn", ["Bali"] = "bcp", ["Baliledo"] = "poz-bal", ["Balinese"] = "ban", ["Balinese Malay"] = "mhp", ["Balkan Gagauz Turkish"] = "bgx", ["Balkan Romani"] = "rmn", ["Balo"] = "bqo", ["Baloi"] = "biz", ["Balong"] = "bnt-bal", ["Balti"] = "bft", ["Baltic Romani"] = "rml", ["Baluan-Pam"] = "blq", ["Baluchi"] = "bal", ["Bamako Sign Language"] = "bog", ["Bamali"] = "bbq", ["Bambalang"] = "bmo", ["Bambam"] = "ptu", ["Bambara"] = "bm", ["Bambassi"] = "myf", ["Bambili-Bambui"] = "baw", ["Bamenyam"] = "bce", ["Bamu"] = "bcf", ["Bamukumbit"] = "bqt", ["Bamum"] = "bax", ["Bamunka"] = "bvm", ["Bamwe"] = "bmg", ["Ban Khor Sign Language"] = "bfk", ["Bana"] = "bcw", ["Banao Itneg"] = "bjx", ["Banaro"] = "byz", ["Banda"] = "bnd", ["Banda Malay"] = "bpq", ["Banda-Bambari"] = "liy", ["Banda-Banda"] = "bpd", ["Banda-Mbrès"] = "bqk", ["Banda-Ndélé"] = "bfl", ["Banda-Yangere"] = "yaj", ["Bandi"] = "bza", ["Bandial"] = "bqj", ["Bandjalang"] = "bdy", ["Bangala"] = "bxg", ["Bangandu"] = "bgf", ["Bangba"] = "bbe", ["Banggai"] = "bgz", ["Bangi"] = "bni", ["Bangime"] = "dba", ["Bangka"] = "mfb", ["Bangolan"] = "bgj", ["Bangubangu"] = "bnx", ["Bangwinji"] = "bsj", ["Baniva"] = "bvv", ["Baniwa"] = "bwi", ["Banjarese"] = "bjn", ["Banka"] = "bxw", ["Bankan Tey Dogon"] = "dbw", ["Bankon"] = "abb", ["Banoni"] = "bcm", ["Bantawa"] = "bap", ["Bantayanon"] = "bfx", ["Bantik"] = "bnq", ["Banyumasan"] = "map-bms", ["Baoule"] = "bci", ["Baraamu"] = "brd", ["Barai"] = "bbb", ["Barakai"] = "baj", ["Baram Kayan"] = "kys", ["Barama"] = "bbg", ["Barambu"] = "brm", ["Baramu"] = "bmz", ["Barapasi"] = "brp", ["Baras"] = "brs", ["Barasana"] = "bsn", ["Barbareño"] = "boi", ["Barclayville Grebo"] = "gry", ["Bardi"] = "bcj", ["Barein"] = "bva", ["Bargam"] = "mlp", ["Bari"] = "bfa", ["Bariai"] = "bch", ["Bariji"] = "bjc", ["Barikanchi"] = "bxo", ["Barikewa"] = "jbk", ["Barngarla"] = "bjb", ["Barok"] = "bjk", ["Barombi"] = "bbi", ["Barranbinya"] = "aus-bra", ["Barro Negro Tunebo"] = "tbn", ["Barrow Point"] = "bpt", ["Baruga"] = "bjz", ["Barunggam"] = "aus-brm", ["Baruya"] = "byr", ["Barwe"] = "bwg", ["Barzani Jewish Neo-Aramaic"] = "bjf", ["Baré"] = "bae", ["Barí"] = "mot", ["Basa"] = "bzw", ["Basa-Gumna"] = "bsl", ["Basa-Gurmana"] = "buj", ["Basaa"] = "bas", ["Basap"] = "bdb", ["Basay"] = "byq", ["Bashkardi"] = "bsg", ["Bashkir"] = "ba", ["Basketo"] = "bst", ["Basque"] = "eu", ["Basque-Icelandic Pidgin"] = "crp-bip", ["Bassa"] = "bsq", ["Bassa-Kontagora"] = "bsr", ["Bassari"] = "bsc", ["Bassossi"] = "bsi", ["Bata"] = "bta", ["Bataan Ayta"] = "ayt", ["Batad Ifugao"] = "ifb", ["Batanga"] = "bnm", ["Batek"] = "btq", ["Bateri"] = "btv", ["Bathari"] = "bhm", ["Bati (Cameroon)"] = "btc", ["Bati (Indonesia)"] = "bvt", ["Bats"] = "bbl", ["Batu"] = "btu", ["Batui"] = "zbt", ["Batuley"] = "bay", ["Bau"] = "bbd", ["Bau Bidayuh"] = "sne", ["Bauchi"] = "bsf", ["Baure"] = "brg", ["Bauria"] = "bge", ["Bauro"] = "bxa", ["Bauwaki"] = "bwk", ["Bauzi"] = "bvz", ["Bavarian"] = "bar", ["Bawm Chin"] = "bgr", ["Bay Miwok"] = "mkq", ["Bayali"] = "bjy", ["Baybayanon"] = "bvy", ["Baygo"] = "byg", ["Bayogoula"] = "nai-bay", ["Bayono"] = "byl", ["Bayot"] = "bda", ["Bayungu"] = "bxj", ["Bazigar"] = "bfr", ["Baïnounk Gubëeher"] = "alv-bgu", ["Beami"] = "beo", ["Beary"] = "dra-bry", ["Beaver"] = "bea", ["Beba"] = "bfp", ["Bebe"] = "bzv", ["Bebele"] = "beb", ["Bebeli"] = "bek", ["Bebil"] = "bxp", ["Bedik"] = "tnr", ["Bedjond"] = "bjv", ["Bedoanas"] = "bed", ["Beeke"] = "bkf", ["Beele"] = "bxq", ["Beembe"] = "beq", ["Beezen"] = "bnz", ["Befang"] = "bby", ["Begbere-Ejar"] = "bqv", ["Beja"] = "bej", ["Bekati'"] = "bei", ["Bekwarra"] = "bkv", ["Bekwel"] = "bkw", ["Belait"] = "beg", ["Belanda Bor"] = "bxb", ["Belanda Viri"] = "bvi", ["Belarusian"] = "be", ["Belhariya"] = "byw", ["Beli"] = "blm", ["Belizean Creole"] = "bzj", ["Bella Coola"] = "blc", ["Bellari"] = "brw", ["Belter Creole"] = "art-bel", ["Bemba"] = "bem", ["Bembe"] = "bmb", ["Ben Tey"] = "dbt", ["Bena"] = "yun", ["Benabena"] = "bef", ["Bench"] = "bcq", ["Bende"] = "bdp", ["Bendi"] = "bct", ["Beneraf"] = "bnv", ["Beng"] = "nhb", ["Benga"] = "bng", ["Bengali"] = "bn", ["Benggoi"] = "bgy", ["Bengkala Sign Language"] = "bqy", ["Bentong"] = "bnu", ["Benyadu'"] = "byd", ["Beothuk"] = "bue", ["Bepour"] = "bie", ["Bera"] = "brf", ["Berakou"] = "bxv", ["Berau Malay"] = "bve", ["Berawan"] = "lod", ["Berbice Creole Dutch"] = "brc", ["Bergish"] = "gmw-bgh", ["Berik"] = "bkl", ["Berinomo"] = "bit", ["Berom"] = "bom", ["Berta"] = "wti", ["Berti"] = "byt", ["Besisi"] = "mhe", ["Besme"] = "bes", ["Besoa"] = "bep", ["Betaf"] = "bfe", ["Betawi"] = "bew", ["Bete"] = "byf", ["Bete-Bendi"] = "btt", ["Betoi"] = "sai-bet", ["Betta Kurumba"] = "xub", ["Bezhta"] = "kap", ["Bhadrawahi"] = "bhd", ["Bhalay"] = "bhx", ["Bharia"] = "bha", ["Bhatri"] = "bgw", ["Bhattiyali"] = "bht", ["Bhaya"] = "bhe", ["Bhele"] = "bhy", ["Bhilali"] = "bhi", ["Bhili"] = "bhb", ["Bhojpuri"] = "bho", ["Bhoti Kinnauri"] = "nes", ["Bhunjia"] = "bhu", ["Biafada"] = "bif", ["Biage"] = "bdf", ["Biak"] = "bhw", ["Biali"] = "beh", ["Bian Marind"] = "bpv", ["Biangai"] = "big", ["Biao"] = "byk", ["Biao Mon"] = "bmt", ["Biao-Jiao Mien"] = "bje", ["Biatah Bidayuh"] = "bth", ["Bibaali"] = "bcn", ["Bibbulman"] = "xbp", ["Bidiyo"] = "bid", ["Bidyara"] = "bym", ["Bidyogo"] = "bjg", ["Biem"] = "bmc", ["Bierebo"] = "bnk", ["Bieria"] = "brj", ["Biete"] = "biu", ["Big Nambas"] = "nmb", ["Biga"] = "bhc", ["Bigambal"] = "xbe", ["Bih"] = "ibh", ["Bihari"] = "bh", ["Bijori"] = "bix", ["Bikaru"] = "bic", ["Bikol Central"] = "bcl", ["Bikya"] = "byb", ["Bila"] = "bip", ["Bilakura"] = "bql", ["Bilaspuri"] = "kfs", ["Bilba"] = "bpz", ["Bilbil"] = "brz", ["Bile"] = "bil", ["Biliau"] = "bcu", ["Biloxi"] = "bll", ["Bilua"] = "blb", ["Bilur"] = "bxf", ["Bima"] = "bhp", ["Bimin"] = "bhl", ["Bimoba"] = "bim", ["Bina"] = "bmn", ["Binahari"] = "bxz", ["Binandere"] = "bhg", ["Binawa"] = "byj", ["Bindal"] = "xbd", ["Bine"] = "bon", ["Binji"] = "bpj", ["Binongan Itneg"] = "itb", ["Bintauna"] = "bne", ["Bintulu"] = "bny", ["Binukid"] = "bkd", ["Binumarien"] = "bjr", ["Bipi"] = "biq", ["Birao"] = "brr", ["Birgid"] = "brk", ["Birgit"] = "btf", ["Birhor"] = "biy", ["Biri"] = "bzr", ["Biritai"] = "bqq", ["Birri"] = "bvq", ["Birrpayi"] = "xbj", ["Birwa"] = "brl", ["Biseni"] = "ije", ["Bishnupriya Manipuri"] = "bpy", ["Bishuo"] = "bwh", ["Bisis"] = "bnw", ["Bislama"] = "bi", ["Bisorio"] = "bir", ["Bissa"] = "bib", ["Bisu"] = "bzi", ["Bit"] = "bgk", ["Bitare"] = "brt", ["Bitur"] = "mcc", ["Biwat"] = "bwm", ["Biyo"] = "byo", ["Biyom"] = "bpm", ["Blablanga"] = "blp", ["Black Speech"] = "art-bsp", ["Blackfoot"] = "bla", ["Blafe"] = "bfh", ["Blagar"] = "beu", ["Blang"] = "blr", ["Blin"] = "byn", ["Bo"] = "bgl", ["Bo-Rukul"] = "mae", ["Bo-Ung"] = "mux", ["Boano (Maluku)"] = "bzn", ["Boano (Sulawesi)"] = "bzl", ["Bobongko"] = "bgb", ["Bobot"] = "bty", ["Bodo (Central Africa)"] = "boy", ["Bodo (India)"] = "brx", ["Bodo Gadaba"] = "gbj", ["Bodo Parja"] = "bdv", ["Bofi"] = "bff", ["Boga"] = "bvw", ["Bogaya"] = "boq", ["Boghom"] = "bux", ["Boguru"] = "bqu", ["Bohtan Neo-Aramaic"] = "bhn", ["Boikin"] = "bzf", ["Bokar"] = "sit-bok", ["Bokha"] = "ybk", ["Boko"] = "bqc", ["Bokobaru"] = "bus", ["Bokoto"] = "bdt", ["Bokyi"] = "bky", ["Bola"] = "bnp", ["Bolak"] = "art-blk", ["Bolango"] = "bld", ["Bole"] = "bol", ["Bolgo"] = "bvo", ["Bolia"] = "bli", ["Bolinao"] = "smk", ["Bolivian Sign Language"] = "bvl", ["Boloki"] = "bkt", ["Bolon"] = "bof", ["Bolondo"] = "bzm", ["Bolongan"] = "blj", ["Bolyu"] = "ply", ["Bom"] = "bmf", ["Boma Nkuu"] = "bnt-bon", ["Boma Yumu"] = "bnt-boy", ["Bomboli"] = "bml", ["Bomboma"] = "bws", ["Bomitaba"] = "zmx", ["Bomu"] = "bmq", ["Bomwali"] = "bmw", ["Bon Gula"] = "glc", ["Bonan"] = "peh", ["Bondei"] = "bou", ["Bondo"] = "bfw", ["Bondoukou Kulango"] = "kzc", ["Bondum Dom Dogon"] = "dbu", ["Bonerate"] = "bna", ["Bonggi"] = "bdg", ["Bonggo"] = "bpg", ["Bongili"] = "bui", ["Bongo"] = "bot", ["Bongu"] = "bpu", ["Bonjo"] = "bok", ["Bonkeng"] = "bvg", ["Bonkiman"] = "bop", ["Bookan"] = "bnb", ["Boon"] = "bnl", ["Boor"] = "bvf", ["Bora"] = "boa", ["Border Kuna"] = "kvn", ["Borei"] = "gai", ["Boro"] = "xxb", ["Borong"] = "ksr", ["Boruca"] = "brn", ["Borôro"] = "bor", ["Boselewa"] = "bwf", ["Bosngun"] = "bqs", ["Bote-Majhi"] = "bmj", ["Botlikh"] = "bph", ["Botolan Sambal"] = "sbl", ["Bouna Kulango"] = "nku", ["Bourbonnais-Berrichon"] = "roa-bbn", ["Bourguignon"] = "roa-brg", ["Bouyei"] = "pcc", ["Bozaba"] = "bzo", ["Bragat"] = "aof", ["Brahui"] = "brh", ["Braj"] = "bra", ["Brazilian Sign Language"] = "bzs", ["Brek Karen"] = "kvl", ["Brem"] = "buq", ["Breri"] = "brq", ["Breton"] = "br", ["Bribri"] = "bzd", ["British Sign Language"] = "bfi", ["Brokkat"] = "bro", ["Brokpake"] = "sgt", ["Brokskat"] = "bkk", ["Brooke's Point Palawano"] = "plw", ["Broome Pearling Lugger Pidgin"] = "bpl", ["Brunei Bisaya"] = "bsb", ["Brunei Malay"] = "kxd", ["Bruny Island"] = "xpz", ["Bu"] = "jid", ["Bu-Nao Bunu"] = "bwx", ["Bua"] = "bub", ["Bualkhaw Chin"] = "cbl", ["Buamu"] = "box", ["Bube"] = "bvb", ["Bubi"] = "buw", ["Bubia"] = "bbx", ["Budeh Stieng"] = "stt", ["Budibud"] = "btp", ["Budong-Budong"] = "bdx", ["Budu"] = "buu", ["Budukh"] = "bdk", ["Buduma"] = "bdm", ["Budza"] = "bja", ["Buena Vista Yokuts"] = "yok-bvy", ["Bugan"] = "bbh", ["Bughotu"] = "bgt", ["Buginese"] = "bug", ["Buglere"] = "sab", ["Bugun"] = "bgg", ["Buhi'non Bikol"] = "ubl", ["Buhid"] = "bku", ["Buhutu"] = "bxh", ["Bujhyal"] = "byh", ["Bukar-Sadung Bidayuh"] = "sdo", ["Bukat"] = "bvk", ["Bukawa"] = "buk", ["Bukhari"] = "bhh", ["Bukit Malay"] = "bvu", ["Bukitan"] = "bkn", ["Bukiyip"] = "ape", ["Buksa"] = "tkb", ["Bukusu"] = "bxk", ["Bulgar"] = "xbo", ["Bulgarian"] = "bg", ["Bulgarian Sign Language"] = "bqn", ["Bulgebi"] = "bmp", ["Buli (Ghana)"] = "bwu", ["Buli (Indonesia)"] = "bzq", ["Bulo Stieng"] = "sti", ["Bulu (Cameroon)"] = "bum", ["Bulu (New Guinea)"] = "bjl", ["Bum"] = "bmv", ["Bumaji"] = "byp", ["Bumang"] = "bvp", ["Bumbita Arapesh"] = "aon", ["Bumthangkha"] = "kjz", ["Bun"] = "buv", ["Buna"] = "bvn", ["Bunaba"] = "bck", ["Bunak"] = "bfn", ["Bunama"] = "bdd", ["Bundeli"] = "bns", ["Bung"] = "bqd", ["Bungain"] = "but", ["Bunganditj"] = "xbg", ["Bungku"] = "bkz", ["Bungu"] = "wun", ["Bunoge"] = "dgb", ["Bunun"] = "bnn", ["Buol"] = "blf", ["Bura"] = "bwr", ["Bura Mabang"] = "mde", ["Burak"] = "bys", ["Buraka"] = "bkg", ["Burarra"] = "bvr", ["Burate"] = "bti", ["Burduna"] = "bxn", ["Bure"] = "bvh", ["Burgundian"] = "gme-bur", ["Burji"] = "bji", ["Burmbar"] = "vrt", ["Burmese"] = "my", ["Burmeso"] = "bzu", ["Buru (Indonesia)"] = "mhs", ["Buru (Nigeria)"] = "bqw", ["Burui"] = "bry", ["Burumakok"] = "aip", ["Burun"] = "bdi", ["Burunge"] = "bds", ["Burushaski"] = "bsk", ["Burusu"] = "bqr", ["Buruwai"] = "asi", ["Buryat"] = "bua", ["Busa"] = "bqp", ["Busam"] = "bxs", ["Busami"] = "bsm", ["Busang Kayan"] = "bfg", ["Bushoong"] = "buf", ["Buso"] = "bso", ["Busoa"] = "bup", ["Bussa"] = "dox", ["Busuu"] = "bju", ["Butbut Kalinga"] = "kyb", ["Butchulla"] = "xby", ["Butmas-Tur"] = "bnr", ["Butuanon"] = "btw", ["Buwal"] = "bhs", ["Buyeo"] = "xpy", ["Buyu"] = "byi", ["Buyuan Jino"] = "jiy", ["Bwa"] = "bww", ["Bwaidoka"] = "bwd", ["Bwala"] = "bnt-bwa", ["Bwanabwana"] = "tte", ["Bwatoo"] = "bwa", ["Bwe Karen"] = "bwe", ["Bwela"] = "bwl", ["Bwile"] = "bwc", ["Bwisi"] = "bwz", ["Byangsi"] = "bee", ["Byep"] = "mkk", ["Bädi Kanum"] = "khd", ["Caac"] = "msq", ["Cabiyarí"] = "cbb", ["Cabre"] = "awd-cab", ["Cabécar"] = "cjp", ["Cacaloxtepec Mixtec"] = "miu", ["Cacaopera"] = "ccr", ["Cacgia Roglai"] = "roc", ["Cacua"] = "cbv", ["Cacán"] = "sai-cac", ["Caddo"] = "cad", ["Cafundó"] = "ccd", ["Cahuarano"] = "cah", ["Cahuilla"] = "chl", ["Caijia"] = "sit-cai", ["Cajonos Zapotec"] = "zad", ["Caka"] = "ckx", ["Cakfem-Mushere"] = "cky", ["Calabrian Greek"] = "grk-cal", ["Calamian Tagbanwa"] = "tbk", ["Calusa"] = "nai-cal", ["Caluyanun"] = "clu", ["Caló"] = "rmq", ["Camarines Norte Agta"] = "abd", ["Cameroon Mambila"] = "mcu", ["Cameroon Pidgin"] = "wes", ["Campalagian"] = "cml", ["Camsá"] = "kbh", ["Camtho"] = "cmt", ["Camunic"] = "xcc", ["Candoshi-Shapra"] = "cbu", ["Canela"] = "ram", ["Canichana"] = "caz", ["Cantonese"] = "yue", ["Cao Miao"] = "cov", ["Caolan"] = "mlc", ["Capanahua"] = "kaq", ["Capiznon"] = "cps", ["Cappadocian Greek"] = "cpg", ["Caquinte"] = "cot", ["Car Nicobarese"] = "caq", ["Cara"] = "cfd", ["Carabayo"] = "cby", ["Caramanta"] = "crf", ["Caranqui"] = "sai-caq", ["Carapana"] = "cbc", ["Carian"] = "xcr", ["Cariay"] = "awd-kar", ["Caribbean Hindustani"] = "hns", ["Caribbean Javanese"] = "jvn", ["Carijona"] = "cbd", ["Carolina Algonquian"] = "crr", ["Carolinian"] = "cal", ["Carpathian Romani"] = "rmc", ["Carpathian Rusyn"] = "rue", ["Carrier"] = "crx", ["Cashibo-Cacataibo"] = "cbr", ["Cashinahua"] = "cbs", ["Casiguran Dumagat Agta"] = "dgc", ["Casuarina Coast Asmat"] = "asc", ["Catacao"] = "sai-cat", ["Catalan"] = "ca", ["Catalan Sign Language"] = "csc", ["Catawba"] = "chc", ["Catuquinaru"] = "sai-ctq", ["Catío Chibcha"] = "cba-cat", ["Cauca"] = "cca", ["Cavineña"] = "cav", ["Cayubaba"] = "cyb", ["Cayuga"] = "cay", ["Cayuse"] = "xcy", ["Cazcan"] = "azc-caz", ["Cañari"] = "sai-cnr", ["Cebaara Senoufo"] = "sef", ["Cebuano"] = "ceb", ["Celtiberian"] = "xce", ["Cen"] = "cen", ["Central Asmat"] = "cns", ["Central Atlas Tamazight"] = "tzm", ["Central Awyu"] = "awu", ["Central Bai"] = "bca", ["Central Bontoc"] = "lbk", ["Central Cagayan Agta"] = "agt", ["Central Dusun"] = "dtp", ["Central Franconian"] = "gmw-cfr", ["Central Grebo"] = "grv", ["Central Huasteca Nahuatl"] = "nch", ["Central Huishui Hmong"] = "hmc", ["Central Kurdish"] = "ckb", ["Central Mahuatlán Zapoteco"] = "zam", ["Central Malay"] = "pse", ["Central Mansi"] = "mns-cen", ["Central Masela"] = "mxz", ["Central Mashan Hmong"] = "hmm", ["Central Mazahua"] = "maz", ["Central Melanau"] = "mel", ["Central Min"] = "czo", ["Central Mnong"] = "cmo", ["Central Nahuatl"] = "nhn", ["Central Nicobarese"] = "ncb", ["Central Ojibwa"] = "ojc", ["Central Palawano"] = "plc", ["Central Pame"] = "pbs", ["Central Pomo"] = "poo", ["Central Puebla Nahuatl"] = "ncx", ["Central Sama"] = "sml", ["Central Siberian Yupik"] = "ess", ["Central Sierra Miwok"] = "csm", ["Central Subanen"] = "syb", ["Central Tagbanwa"] = "tgt", ["Central Tarahumara"] = "tar", ["Central Teke"] = "nzu", ["Central Tunebo"] = "tuf", ["Centúúm"] = "cet", ["Cerma"] = "cme", ["Ch'olti'"] = "myn-chl", ["Ch'orti'"] = "caa", ["Chaap Wuurong"] = "tjw", ["Chachi"] = "cbi", ["Chadian Arabic"] = "shu", ["Chadian Sign Language"] = "cds", ["Chadong"] = "cdy", ["Chagatai"] = "chg", ["Chaha"] = "sem-cha", ["Chaima"] = "ciy", ["Chairel"] = "sit-cha", ["Chak"] = "ckh", ["Chakali"] = "cli", ["Chakma"] = "ccp", ["Chala"] = "cll", ["Chaldean Neo-Aramaic"] = "cld", ["Chali"] = "tgf", ["Chamacoco"] = "ceg", ["Chamalal"] = "cji", ["Chamba Daka"] = "ccg", ["Chamba Leko"] = "ndi", ["Chambeali"] = "cdh", ["Chambri"] = "can", ["Chamicuro"] = "ccc", ["Chamling"] = "rab", ["Chamorro"] = "ch", ["Champenois"] = "roa-cha", ["Chang"] = "nbc", ["Changriwa"] = "cga", ["Changthang"] = "cna", ["Chantyal"] = "chx", ["Chaná"] = "sai-chn", ["Chané"] = "caj", ["Chapacura"] = "sai-chp", ["Chara"] = "cra", ["Charrua"] = "sai-chr", ["Chaudangsi"] = "cdn", ["Chaura"] = "crv", ["Chavacano"] = "cbk", ["Chayahuita"] = "cbt", ["Chayuco Mixtec"] = "mih", ["Chazumba Mixtec"] = "xtb", ["Che"] = "ruk", ["Chechen"] = "ce", ["Cheke Holo"] = "mrn", ["Chemakum"] = "xch", ["Chenapian"] = "cjn", ["Chenchu"] = "cde", ["Chenoua"] = "cnu", ["Chepang"] = "cdm", ["Chepya"] = "ycp", ["Cherepon"] = "cpn", ["Cherokee"] = "chr", ["Chesu"] = "ych", ["Chetco-Tolowa"] = "ctc", ["Chewong"] = "cwg", ["Cheyenne"] = "chy", ["Chhattisgarhi"] = "hne", ["Chhintange"] = "ctn", ["Chhulung"] = "cur", ["Chiangmai Sign Language"] = "csd", ["Chiapanec"] = "cip", ["Chibcha"] = "chb", ["Chicahuaxtla Triqui"] = "trs", ["Chichewa"] = "ny", ["Chichicapan Zapotec"] = "zpv", ["Chichimeca-Jonaz"] = "pei", ["Chichonyi-Chidzihana-Chikauma"] = "coh", ["Chickasaw"] = "cic", ["Chicomuceltec"] = "cob", ["Chiduruma"] = "dug", ["Chigmecatitlán Mixtec"] = "mii", ["Chilcotin"] = "clc", ["Chilean Sign Language"] = "csg", ["Chilisso"] = "clh", ["Chiltepec Chinantec"] = "csa", ["Chimalapa Zoque"] = "zoh", ["Chimariko"] = "cid", ["Chimila"] = "cbg", ["Chimwiini"] = "bnt-cmw", ["Chinali"] = "cih", ["Chinbon Chin"] = "cnb", ["Chinese"] = "zh", ["Chinese Pidgin English"] = "cpi", ["Chinese Sign Language"] = "csl", ["Chinook"] = "chh", ["Chinook Jargon"] = "chn", ["Chipaya"] = "cap", ["Chipewyan"] = "chp", ["Chiquihuitlán Mazatec"] = "maq", ["Chiquimulilla"] = "nai-chi", ["Chiquitano"] = "cax", ["Chiricahua"] = "apm", ["Chirino"] = "sai-chi", ["Chiripá"] = "nhd", ["Chiru"] = "cdf", ["Chitimacha"] = "ctm", ["Chitkuli Kinnauri"] = "cik", ["Chittagonian"] = "ctg", ["Chitwania Tharu"] = "the", ["Chiwere"] = "iow", ["Choapan Zapotec"] = "zpc", ["Chocangaca"] = "cgk", ["Chochotec"] = "coz", ["Choctaw"] = "cho", ["Chodri"] = "cdi", ["Chokri Naga"] = "nri", ["Chokwe"] = "cjk", ["Chol"] = "ctu", ["Cholón"] = "cht", ["Chong"] = "cog", ["Choni"] = "cda", ["Chono"] = "sai-cno", ["Chopi"] = "cce", ["Chothe Naga"] = "nct", ["Chrau"] = "crw", ["Chru"] = "cje", ["Chuabo"] = "chw", ["Chuanqiandian Cluster Miao"] = "cqd", ["Chuave"] = "cjv", ["Chug"] = "cvg", ["Chuj"] = "cac", ["Chuka"] = "cuh", ["Chukchi"] = "ckt", ["Chukwa"] = "cuw", ["Chulym"] = "clw", ["Chumburung"] = "ncu", ["Churahi"] = "cdj", ["Churuya"] = "sai-chu", ["Chut"] = "scb", ["Chuukese"] = "chk", ["Chuvan"] = "xcv", ["Chuvash"] = "cv", ["Chácobo"] = "cao", ["Ci Gbe"] = "cib", ["Cia-Cia"] = "cia", ["Cibak"] = "ckl", ["Cicipu"] = "awc", ["Ciguayo"] = "nai-cig", ["Cimbrian"] = "cim", ["Cinamiguin Manobo"] = "mkx", ["Cinda-Regi-Tiyal"] = "cdr", ["Cineni"] = "cie", ["Cinta Larga"] = "cin", ["Cishingini"] = "asg", ["Citak"] = "txt", ["Ciwogai"] = "tgd", ["Classical Gaelic"] = "ghc", ["Classical Guaraní"] = "gn-cls", ["Classical Mandaic"] = "myz", ["Classical Mongolian"] = "cmg", ["Classical Nahuatl"] = "nci", ["Classical Newar"] = "nwc", ["Classical Quechua"] = "qwc", ["Classical Syriac"] = "syc", ["Classical Tibetan"] = "xct", ["Coahuilteco"] = "xcw", ["Coast Miwok"] = "csi", ["Coastal Kadazan"] = "kzj", ["Coastal Konjo"] = "kjc", ["Coatecas Altas Zapotec"] = "zca", ["Coatepec Nahuatl"] = "naz", ["Coatlán Mixe"] = "mco", ["Coatlán Zapotec"] = "zps", ["Coatzospan Mixtec"] = "miz", ["Cocama"] = "cod", ["Cochimi"] = "coj", ["Cocopa"] = "coc", ["Cocos Islands Malay"] = "coa", ["Coeruna"] = "sai-coe", ["Coeur d'Alene"] = "crd", ["Cofán"] = "con", ["Cogui"] = "kog", ["Col"] = "liw", ["Colombian Sign Language"] = "csn", ["Colonia Tovar German"] = "gct", ["Columbia-Wenatchi"] = "col", ["Colán"] = "sai-col", ["Comaltepec Chinantec"] = "cco", ["Comanche"] = "com", ["Comechingon"] = "sai-cmg", ["Comecrudo"] = "xcm", ["Communicationssprache"] = "art-com", ["Como Karim"] = "cfg", ["Comox"] = "coo", ["Con"] = "cno", ["Coos"] = "csz", ["Copainalá Zoque"] = "zoc", ["Copala Triqui"] = "trc", ["Copallén"] = "sai-cop", ["Coptic"] = "cop", ["Coquille"] = "coq", ["Cora"] = "crn", ["Cori"] = "cry", ["Cornish"] = "kw", ["Coroado Puri"] = "sai-crd", ["Corsican"] = "co", ["Cosoleacaque Nahuatl"] = "nhk", ["Costa Rican Sign Language"] = "csr", ["Cotabato Manobo"] = "mta", ["Cotoname"] = "xcn", ["Cowlitz"] = "cow", ["Coyaima"] = "coy", ["Coyotepec Popoloca"] = "pbf", ["Coyutla Totonac"] = "toc", ["Cree"] = "cr", ["Creek"] = "mus", ["Crimean Gothic"] = "gme-cgo", ["Crimean Tatar"] = "crh", ["Croatian Sign Language"] = "csq", ["Cross River Mbembe"] = "mfn", ["Crow"] = "cro", ["Cruzeño"] = "crz", ["Cua"] = "cua", ["Cuban Sign Language"] = "csf", ["Cubeo"] = "cub", ["Cueva"] = "sai-cva", ["Cuiba"] = "cui", ["Cuitlatec"] = "cuy", ["Culina"] = "cul", ["Culli"] = "sai-cul", ["Cumanagoto"] = "cuo", ["Cumbric"] = "xcb", ["Cun"] = "cuq", ["Cung"] = "cug", ["Cupeño"] = "cup", ["Curonian"] = "xcu", ["Curripaco"] = "kpc", ["Cutchi-Swahili"] = "ccl", ["Cuvok"] = "cuv", ["Cuyamecalco Mixtec"] = "xtu", ["Cuyunon"] = "cyo", ["Cwi Bwamu"] = "bwy", ["Cypriot Arabic"] = "acy", ["Czech"] = "cs", ["Czech Sign Language"] = "cse", ["Cèmuhî"] = "cam", ["Cốông"] = "cnc", ["Da'a Kaili"] = "kzf", ["Daai Chin"] = "dao", ["Daakaka"] = "bpa", ["Daantanai'"] = "lni", ["Daasanach"] = "dsh", ["Daba"] = "dbq", ["Dabarre"] = "dbr", ["Dabe"] = "dbe", ["Dacian"] = "xdc", ["Dadanitic"] = "sem-dad", ["Dadi Dadi"] = "dda", ["Dadibi"] = "mps", ["Dadiya"] = "dbd", ["Daga"] = "dgz", ["Dagaari Dioula"] = "dgd", ["Dagba"] = "dgk", ["Dagbani"] = "dag", ["Dagik"] = "dec", ["Dagoman"] = "dgn", ["Dahalik"] = "dlk", ["Dahalo"] = "dal", ["Daho-Doo"] = "das", ["Dai"] = "dij", ["Dair"] = "drb", ["Dairi Batak"] = "btd", ["Dakka"] = "dkk", ["Dakota"] = "dak", ["Dakpa"] = "dka", ["Dalmatian"] = "dlm", ["Daloa Bété"] = "bev", ["Dama (Nigeria)"] = "dmm", ["Dama (Sierra Leone)"] = "dmn-dam", ["Damakawa"] = "dam", ["Damal"] = "uhn", ["Dambi"] = "dac", ["Dameli"] = "dml", ["Dampelas"] = "dms", ["Dan"] = "dnj", ["Danaru"] = "dnr", ["Danau"] = "dnu", ["Dandami Maria"] = "daq", ["Dangaléat"] = "daa", ["Dangaura Tharu"] = "thl", ["Danish"] = "da", ["Danish Sign Language"] = "dsl", ["Dano"] = "aso", ["Danu"] = "dnv", ["Danuwar"] = "dhw", ["Dao"] = "daz", ["Daonda"] = "dnd", ["Dar Daju Daju"] = "djc", ["Dar Fur Daju"] = "daj", ["Dar Sila Daju"] = "dau", ["Darai"] = "dry", ["Dargwa"] = "dar", ["Darkinjung"] = "xda", ["Darlong"] = "dln", ["Darmiya"] = "drd", ["Daro-Matu Melanau"] = "dro", ["Darumbal"] = "xgm", ["Dass"] = "dot", ["Datian Min"] = "nan-dat", ["Datooga"] = "tcc", ["Daungwurrung"] = "dgw", ["Daur"] = "dta", ["Davawenyo"] = "daw", ["Dawawa"] = "dww", ["Dawera-Daweloor"] = "ddw", ["Dawro"] = "dwr", ["Day"] = "dai", ["Dayi"] = "dax", ["Dazaga"] = "dzg", ["Deccani"] = "dcc", ["Dedua"] = "ded", ["Defaka"] = "afn", ["Defi Gbe"] = "gbh", ["Deg"] = "mzw", ["Deg Xinag"] = "ing", ["Degema"] = "deg", ["Degenan"] = "dge", ["Dehwari"] = "deh", ["Dek"] = "dek", ["Dela-Oenale"] = "row", ["Delo"] = "ntr", ["Delta Yokuts"] = "yok-dly", ["Dem"] = "dem", ["Dema"] = "dmx", ["Demisa"] = "dei", ["Demotic"] = "egx-dem", ["Demta"] = "dmy", ["Dena'ina"] = "tfn", ["Dendi"] = "ddn", ["Dengese"] = "dez", ["Dengka"] = "dnk", ["Deno"] = "dbb", ["Denya"] = "anv", ["Dení"] = "dny", ["Deori"] = "der", ["Desano"] = "des", ["Desiya"] = "dso", ["Dewas Rai"] = "dwz", ["Dewoin"] = "dee", ["Dezfuli"] = "def", ["Dghwede"] = "dgh", ["Dhaiso"] = "dhs", ["Dhalandji"] = "dhl", ["Dhangu"] = "dhg", ["Dhanki"] = "dhn", ["Dhao"] = "nfa", ["Dharug"] = "xdk", ["Dhatki"] = "mki", ["Dhimal"] = "dhi", ["Dhivehi"] = "dv", ["Dhodia"] = "dho", ["Dhofari Arabic"] = "adf", ["Dhudhuroa"] = "ddr", ["Dhundhari"] = "dhd", ["Dhungaloo"] = "dhx", ["Dhurga"] = "dhu", ["Dhuwal"] = "dwu", ["Dhuwaya"] = "dwy", ["Dia"] = "dia", ["Dibabawon Manobo"] = "mbd", ["Dibiyaso"] = "dby", ["Dibo"] = "dio", ["Dicamay Agta"] = "duy", ["Didinga"] = "did", ["Dieri"] = "dif", ["Digo"] = "dig", ["Dii"] = "dur", ["Dijim-Bwilim"] = "cfa", ["Dilling"] = "dil", ["Dima"] = "jma", ["Dimasa"] = "dis", ["Dimbong"] = "dii", ["Dime"] = "dim", ["Dinapigue Agta"] = "phi-din", ["Dineor"] = "mrx", ["Ding"] = "diz", ["Dinka"] = "din", ["Diodio"] = "ddi", ["Dirasha"] = "gdl", ["Diri"] = "dwa", ["Dirim"] = "dir", ["Disa"] = "dsi", ["Ditammari"] = "tbz", ["Ditidaht"] = "dtd", ["Diuwe"] = "diy", ["Diuxi-Tilantongo Mixtec"] = "xtd", ["Dixon Reef"] = "dix", ["Dizin"] = "mdx", ["Djadjawurrung"] = "dja", ["Djambarrpuyngu"] = "djr", ["Djangun"] = "djf", ["Djauan"] = "djn", ["Djawi"] = "djw", ["Djimini"] = "dyi", ["Djinang"] = "dji", ["Djinba"] = "djb", ["Djiwarli"] = "djl", ["Dobel"] = "kvo", ["Dobu"] = "dob", ["Doe"] = "doe", ["Doga"] = "dgg", ["Doghoro"] = "dgx", ["Dogoso"] = "dgs", ["Dogosé"] = "dos", ["Dogri"] = "doi", ["Dogrib"] = "dgr", ["Dogul Dom"] = "dbg", ["Doka"] = "dbi", ["Doko-Uyanga"] = "uya", ["Dolgan"] = "dlg", ["Dom"] = "doa", ["Domaaki"] = "dmk", ["Domari"] = "rmt", ["Dominican Sign Language"] = "doq", ["Dompo"] = "doy", ["Domu"] = "dof", ["Domung"] = "dev", ["Dondo"] = "dok", ["Dong"] = "doh", ["Dongo"] = "doo", ["Dongolawi"] = "kzh", ["Dongotono"] = "ddd", ["Dongshanba Lalo"] = "yik", ["Dongxiang"] = "sce", ["Donno So Dogon"] = "dds", ["Doondo"] = "dde", ["Dorasque"] = "cba-dor", ["Dori'o"] = "dor", ["Dorig"] = "wwo", ["Doromu-Koki"] = "kqc", ["Dorze"] = "doz", ["Doso"] = "dol", ["Doteli"] = "dty", ["Dothraki"] = "art-dtk", ["Doura"] = "don", ["Doutai"] = "tds", ["Doyayo"] = "dow", ["Drehu"] = "dhv", ["Drung"] = "duu", ["Duala"] = "dua", ["Duano"] = "dup", ["Duau"] = "dva", ["Dubli"] = "dub", ["Dubu"] = "dmu", ["Dugun"] = "ndu", ["Duguri"] = "dbm", ["Dugwor"] = "dme", ["Duhwa"] = "kbz", ["Duit"] = "cba-dui", ["Duke"] = "nke", ["Dukhan"] = "trk-dkh", ["Dulbu"] = "dbo", ["Duli"] = "duz", ["Duma"] = "dma", ["Dumaitic"] = "sem-dum", ["Dumbea"] = "duf", ["Dumi"] = "dus", ["Dumpas"] = "dmv", ["Dumun"] = "dui", ["Duna"] = "duc", ["Dungan"] = "dng", ["Dungmali"] = "raa", ["Dungra Bhil"] = "duh", ["Dungu"] = "dbv", ["Dupaningan Agta"] = "duo", ["Dura"] = "drq", ["Duri"] = "mvp", ["Duriankere"] = "dbn", ["Duruwa"] = "pci", ["Dusner"] = "dsn", ["Dusun Deyah"] = "dun", ["Dusun Malang"] = "duq", ["Dusun Witu"] = "duw", ["Dutch"] = "nl", ["Dutch Low Saxon"] = "nds-nl", ["Dutch Sign Language"] = "dse", ["Duun"] = "dux", ["Duupa"] = "dae", ["Duvle"] = "duv", ["Duwai"] = "dbp", ["Duwet"] = "gve", ["Dwang"] = "nnu", ["Dyaabugay"] = "dyy", ["Dyaberdyaber"] = "dyb", ["Dyan"] = "dya", ["Dyangadi"] = "dyn", ["Dyirbal"] = "dbl", ["Dyugun"] = "dyd", ["Dyula"] = "dyu", ["Dza"] = "jen", ["Dzala"] = "dzl", ["Dzando"] = "dzn", ["Dzao Min"] = "bpn", ["Dzodinka"] = "add", ["Dzongkha"] = "dz", ["Dzuun"] = "dnn", ["Dâw"] = "kwa", ["E"] = "eee", ["E'ma Buyang"] = "yzg", ["Early Assamese"] = "inc-oas", ["Early Modern Korean"] = "ko-ear", ["Early Tripuri"] = "xtr", ["East Central German"] = "gmw-ecg", ["East Damar"] = "dmr", ["East Franconian"] = "vmf", ["East Futuna"] = "fud", ["East Kewa"] = "kjs", ["East Limba"] = "lma", ["East Makian"] = "mky", ["East Masela"] = "vme", ["East Nyala"] = "nle", ["East Tarangan"] = "tre", ["East Yugur"] = "yuy", ["Eastern Acipa"] = "acp", ["Eastern Arrernte"] = "aer", ["Eastern Bolivian Guaraní"] = "gui", ["Eastern Bontoc"] = "ebk", ["Eastern Bru"] = "bru", ["Eastern Canadian Inuktitut"] = "ike", ["Eastern Cham"] = "cjm", ["Eastern Durango Nahuatl"] = "azd", ["Eastern Gorkha Tamang"] = "tge", ["Eastern Gurung"] = "ggn", ["Eastern Highland Chatino"] = "cly", ["Eastern Highland Otomi"] = "otm", ["Eastern Huasteca Nahuatl"] = "nhe", ["Eastern Huishui Hmong"] = "hme", ["Eastern Karaboro"] = "xrb", ["Eastern Katu"] = "ktv", ["Eastern Kayah"] = "eky", ["Eastern Keres"] = "kee", ["Eastern Khanty"] = "kca-eas", ["Eastern Krahn"] = "kqo", ["Eastern Lalu"] = "yit", ["Eastern Lawa"] = "lwl", ["Eastern Magar"] = "mgp", ["Eastern Maninkakan"] = "emk", ["Eastern Mari"] = "mhr", ["Eastern Meohang"] = "emg", ["Eastern Min"] = "cdo", ["Eastern Mnong"] = "mng", ["Eastern Muria"] = "emu", ["Eastern Ngad'a"] = "nea", ["Eastern Nisu"] = "nos", ["Eastern Ojibwa"] = "ojg", ["Eastern Parbate Kham"] = "kif", ["Eastern Penan"] = "pez", ["Eastern Pomo"] = "peb", ["Eastern Pwo"] = "kjp", ["Eastern Qiandong Miao"] = "hmq", ["Eastern Subanun"] = "sfe", ["Eastern Tamang"] = "taj", ["Eastern Tawbuid"] = "bnj", ["Eastern Xiangxi Miao"] = "muq", ["Eastern Xwla Gbe"] = "gbx", ["Ebira"] = "igb", ["Eblaite"] = "xeb", ["Ebrié"] = "ebr", ["Ebughu"] = "ebg", ["Ecuadorian Sign Language"] = "ecs", ["Ede Cabe"] = "cbj", ["Ede Ica"] = "ica", ["Ede Idaca"] = "idd", ["Ede Ije"] = "ijj", ["Ede Nago"] = "nqg", ["Edera Awyu"] = "awy", ["Edo"] = "bin", ["Edolo"] = "etr", ["Edomite"] = "xdm", ["Edopi"] = "dbf", ["Efai"] = "efa", ["Efe"] = "efe", ["Efik"] = "efi", ["Efutop"] = "ofu", ["Ega"] = "ega", ["Eggon"] = "ego", ["Egyptian"] = "egy", ["Egyptian Arabic"] = "arz", ["Egyptian Sign Language"] = "esl", ["Ehueun"] = "ehu", ["Eipomek"] = "eip", ["Eitiep"] = "eit", ["Ejagham"] = "etu", ["Ejamat"] = "eja", ["Ekajuk"] = "eka", ["Ekari"] = "ekg", ["Ekele"] = "khy", ["Eki"] = "eki", ["Ekit"] = "eke", ["Ekpeye"] = "ekp", ["El Alto Zapotec"] = "zpp", ["El Hugeirat"] = "elh", ["El Molo"] = "elo", ["Elamite"] = "elx", ["Eleme"] = "elm", ["Elepi"] = "ele", ["Elfdalian"] = "ovd", ["Elip"] = "ekm", ["Elkei"] = "elk", ["Eloi"] = "art-elo", ["Elotepec Zapotec"] = "zte", ["Eloyi"] = "afo", ["Elseng"] = "mrf", ["Elu"] = "elu", ["Elymian"] = "xly", ["Emae"] = "mmw", ["Emai"] = "ema", ["Eman"] = "emn", ["Embaloh"] = "emb", ["Emberá-Baudó"] = "bdc", ["Emberá-Catío"] = "cto", ["Emberá-Chamí"] = "cmi", ["Emberá-Tadó"] = "tdc", ["Embu"] = "ebu", ["Emem"] = "enr", ["Emerillon"] = "eme", ["Emilian"] = "egl", ["Emplawas"] = "emw", ["En"] = "enc", ["Enawené-Nawé"] = "unk", ["Ende"] = "end", ["Enga"] = "enq", ["Engenni"] = "enn", ["Enggano"] = "eno", ["English"] = "en", ["Enlhet"] = "enl", ["Enrekang"] = "ptt", ["Enu"] = "enu", ["Enwan"] = "env", ["Enwang"] = "enw", ["Enxet"] = "enx", ["Enya"] = "gey", ["Eotile"] = "eot", ["Epena"] = "sja", ["Epi-Olmec"] = "xep", ["Epie"] = "epi", ["Epigraphic Mayan"] = "emy", ["Eravallan"] = "era", ["Erave"] = "kjy", ["Ere"] = "twp", ["Erie"] = "iro-ere", ["Eritai"] = "ert", ["Erokwanas"] = "erw", ["Erre"] = "err", ["Erromintxela"] = "emx", ["Ersu"] = "ers", ["Eruwa"] = "erh", ["Erzya"] = "myv", ["Esan"] = "ish", ["Ese"] = "mcq", ["Ese Ejja"] = "ese", ["Eshtehardi"] = "esh", ["Esimbi"] = "ags", ["Eskayan"] = "esy", ["Esmeralda"] = "sai-esm", ["Esperanto"] = "eo", ["Esselen"] = "esq", ["Estado de México Otomi"] = "ots", ["Estonian"] = "et", ["Estonian Sign Language"] = "eso", ["Esuma"] = "esm", ["Etchemin"] = "etc", ["Etebi"] = "etb", ["Eten"] = "etx", ["Eteocretan"] = "ecr", ["Eteocypriot"] = "ecy", ["Ethiopian Sign Language"] = "eth", ["Etkywan"] = "ich", ["Eton (Cameroon)"] = "eto", ["Eton (Vanuatu)"] = "etn", ["Etruscan"] = "ett", ["Etulo"] = "utr", ["Evant"] = "bzz", ["Even"] = "eve", ["Evenki"] = "evn", ["Ewage-Notu"] = "nou", ["Ewarhuyana"] = "sai-ewa", ["Ewe"] = "ee", ["Ewondo"] = "ewo", ["Extremaduran"] = "ext", ["Eyak"] = "eya", ["Ezaa"] = "eza", ["Fagani"] = "faf", ["Faire Atta"] = "azt", ["Faita"] = "faj", ["Faiwol"] = "fai", ["Fakkanci"] = "gel", ["Fala"] = "fax", ["Falam Chin"] = "cfm", ["Fali"] = "fli", ["Faliscan"] = "xfa", ["Fam"] = "fam", ["Fanagalo"] = "fng", ["Fanamaket"] = "bjp", ["Fang (Bantu)"] = "fan", ["Fang (Beboid)"] = "fak", ["Fania"] = "fni", ["Far Western Muria"] = "fmu", ["Farefare"] = "gur", ["Faroese"] = "fo", ["Fas"] = "fqs", ["Fasu"] = "faa", ["Fataleka"] = "far", ["Fataluku"] = "ddg", ["Fayu"] = "fau", ["Fe'fe'"] = "fmp", ["Fedan"] = "pdn", ["Fembe"] = "agl", ["Fer"] = "kah", ["Feroge"] = "fer", ["Fiji Hindi"] = "hif", ["Fijian"] = "fj", ["Filomena Mata-Coahuitlán Totonac"] = "tlp", ["Fingallian"] = "gmw-fin", ["Finisterre Yau"] = "yuw", ["Finnish"] = "fi", ["Finnish Sign Language"] = "fse", ["Finnish-Swedish Sign Language"] = "fss", ["Finongan"] = "fag", ["Fipa"] = "fip", ["Firan"] = "fir", ["Fiwaga"] = "fiw", ["Flemish Sign Language"] = "vgt", ["Flinders Island"] = "fln", ["Foau"] = "flh", ["Fogaha"] = "ber-fog", ["Foi"] = "foi", ["Foia Foia"] = "ffi", ["Folopa"] = "ppo", ["Foma"] = "fom", ["Fon"] = "fon", ["Fongoro"] = "fgr", ["Foodo"] = "fod", ["Forak"] = "frq", ["Fordata"] = "frd", ["Fore"] = "for", ["Forest Enets"] = "enf", ["Forest Nenets"] = "syd-fne", ["Fortsenal"] = "frt", ["Fox"] = "sac", ["Franc-Comtois"] = "roa-fcm", ["Francisco León Zoque"] = "zos", ["Franco-Provençal"] = "frp", ["French"] = "fr", ["French Belgian Sign Language"] = "sfb", ["French Sign Language"] = "fsl", ["Friulian"] = "fur", ["Fula"] = "ff", ["Fuliiru"] = "flr", ["Fulniô"] = "fun", ["Fum"] = "fum", ["Fungwa"] = "ula", ["Fur"] = "fvr", ["Furu"] = "fuu", ["Futuna-Aniwa"] = "fut", ["Fuyug"] = "fuy", ["Fwe"] = "fwe", ["Fwâi"] = "fwa", ["Fyam"] = "pym", ["Fyer"] = "fie", ["Ga"] = "gaa", ["Ga'anda"] = "gqa", ["Ga'dang"] = "gdg", ["Gaa"] = "ttb", ["Gaam"] = "tbi", ["Gabadi"] = "kbt", ["Gabi"] = "gbw", ["Gabri"] = "gab", ["Gabrielino-Fernandeño"] = "xgf", ["Gadang"] = "gdk", ["Gaddang"] = "gad", ["Gaddi"] = "gbk", ["Gade"] = "ged", ["Gadjerawang"] = "gdh", ["Gadsup"] = "gaj", ["Gafat"] = "gft", ["Gagadu"] = "gbu", ["Gagauz"] = "gag", ["Gagnoa Bété"] = "btg", ["Gahri"] = "bfu", ["Gaikundi"] = "gbf", ["Gaina"] = "gcn", ["Gal"] = "gap", ["Galambu"] = "glo", ["Galatian"] = "xga", ["Galela"] = "gbi", ["Galeya"] = "gar", ["Galice"] = "gce", ["Galician"] = "gl", ["Galindian"] = "xgl", ["Gallaecian"] = "cel-gal", ["Gallo"] = "roa-gal", ["Gallo-Italic of Basilicata"] = "roa-gib", ["Gallo-Italic of Sicily"] = "roa-gis", ["Gallurese"] = "sdn", ["Galo"] = "adl", ["Galoli"] = "gal", ["Gamale Kham"] = "kgj", ["Gambera"] = "gma", ["Gamela"] = "sai-gam", ["Gamilaraay"] = "kld", ["Gamit"] = "gbl", ["Gamkonora"] = "gak", ["Gamo"] = "gmv", ["Gamo-Ningi"] = "bte", ["Gan"] = "gan", ["Gana"] = "gnq", ["Ganang"] = "gne", ["Gandhari"] = "pgd", ["Gane"] = "gzn", ["Ganggalida"] = "gcd", ["Ganglau"] = "ggl", ["Gangte"] = "gnb", ["Gangulu"] = "gnl", ["Gants"] = "gao", ["Ganza"] = "gza", ["Ganzi"] = "gnz", ["Gao"] = "gga", ["Gapapaiwa"] = "pwg", ["Garawa"] = "wrk", ["Garhwali"] = "gbm", ["Garifuna"] = "cab", ["Garingbal"] = "xgi", ["Garo"] = "grt", ["Garre"] = "gex", ["Garus"] = "gyb", ["Garza"] = "xgr", ["Gashowu"] = "yok-gsy", ["Gata'"] = "gaq", ["Gaulish"] = "cel-gau", ["Gavak"] = "dmc", ["Gavar"] = "gou", ["Gavião do Jiparaná"] = "gvo", ["Gawar-Bati"] = "gwt", ["Gawwada"] = "gwd", ["Gaya"] = "zra", ["Gayil"] = "gyl", ["Gayo"] = "gay", ["Gayón"] = "sai-gay", ["Gbagyi"] = "gbr", ["Gban"] = "ggu", ["Gbanu"] = "gbv", ["Gbanziri"] = "gbg", ["Gbari"] = "gby", ["Gbaya-Bossangoa"] = "gbp", ["Gbaya-Bozoum"] = "gbq", ["Gbaya-Mbodomo"] = "gmm", ["Gbayi"] = "gyg", ["Gbesi Gbe"] = "gbs", ["Gbii"] = "ggb", ["Gbin"] = "xgb", ["Gbiri-Niragu"] = "grh", ["Gboloo Grebo"] = "gec", ["Gciriku"] = "diu", ["Gcwi"] = "gwj", ["Ge"] = "hmj", ["Ge'ez"] = "gez", ["Geba Karen"] = "kvq", ["Gebe"] = "gei", ["Gedaged"] = "gdd", ["Gedeo"] = "drs", ["Geji"] = "gji", ["Geko Karen"] = "ghk", ["Gela"] = "nlg", ["Gele'"] = "sbc", ["Geme"] = "geq", ["Gen"] = "gej", ["Gende"] = "gaf", ["Gengle"] = "geg", ["Georgian"] = "ka", ["Gepo"] = "ygp", ["Gera"] = "gew", ["Gerka"] = "gek", ["German"] = "de", ["German Low German"] = "nds-de", ["German Sign Language"] = "gsg", ["Geruma"] = "gea", ["Geser-Gorom"] = "ges", ["Gey"] = "guv", ["Ghadames"] = "gha", ["Ghanaian Sign Language"] = "gse", ["Ghandruk Sign Language"] = "gds", ["Ghanongga"] = "ghn", ["Ghari"] = "gri", ["Ghayavi"] = "bmk", ["Ghera"] = "ghr", ["Ghomala'"] = "bbj", ["Ghomara"] = "gho", ["Ghotuo"] = "aaa", ["Ghulfan"] = "ghl", ["Giangan"] = "bgi", ["Gibanawa"] = "gib", ["Gidar"] = "gid", ["Gikyode"] = "acd", ["Gilaki"] = "glk", ["Gilbertese"] = "gil", ["Gilima"] = "gix", ["Gimi (Austronesian)"] = "gip", ["Gimi (Goroka)"] = "gim", ["Gimme"] = "kmp", ["Gimnime"] = "gmn", ["Ginuman"] = "gnm", ["Girawa"] = "bbr", ["Girirra"] = "gii", ["Giryama"] = "nyf", ["Githabul"] = "gih", ["Gitua"] = "ggt", ["Gitxsan"] = "git", ["Giyug"] = "giy", ["Gizrra"] = "tof", ["Glaro-Twabo"] = "glr", ["Glavda"] = "glw", ["Glio-Oubi"] = "oub", ["Glosa"] = "igs", ["Gnau"] = "gnu", ["Goa'uld"] = "art-gld", ["Goaria"] = "gig", ["Gobasi"] = "goi", ["Gobu"] = "gox", ["Godié"] = "god", ["Godoberi"] = "gdo", ["Godwari"] = "gdx", ["Goemai"] = "ank", ["Gofa"] = "gof", ["Gogo"] = "gog", ["Gogodala"] = "ggw", ["Goguryeo"] = "zkg", ["Gojri"] = "gju", ["Gokana"] = "gkn", ["Gokhy"] = "tbq-gkh", ["Gola"] = "gol", ["Golin"] = "gvf", ["Golpa"] = "lja", ["Gondi"] = "gon", ["Gone Dau"] = "goo", ["Gong"] = "ugo", ["Gongduk"] = "goe", ["Gonja"] = "gjn", ["Goo"] = "gov", ["Gooniyandi"] = "gni", ["Gor"] = "gqr", ["Gorakor"] = "goc", ["Gorap"] = "goq", ["Goreng"] = "xgg", ["Gorontalo"] = "gor", ["Gorovu"] = "grq", ["Gorowa"] = "gow", ["Gothic"] = "got", ["Gottscheerish"] = "gmw-gts", ["Goundo"] = "goy", ["Gourmanchéma"] = "gux", ["Gowlan"] = "goj", ["Gowro"] = "gwf", ["Gozarkhani"] = "goz", ["Grangali"] = "nli", ["Grass Koiari"] = "kbk", ["Grebo"] = "grb", ["Greek"] = "el", ["Greek Sign Language"] = "gss", ["Green Gelao"] = "giq", ["Green Hmong"] = "hnj", ["Greenlandic"] = "kl", ["Grenadian Creole English"] = "gcl", ["Gresi"] = "grs", ["Groma"] = "gro", ["Gros Ventre"] = "ats", ["Gua"] = "gwx", ["Guachí"] = "sai-gua", ["Guahibo"] = "guh", ["Guajajára"] = "gub", ["Guajá"] = "gvj", ["Guambiano"] = "gum", ["Guamo"] = "sai-gmo", ["Guanano"] = "gvc", ["Guanche"] = "gnc", ["Guaraní"] = "gn", ["Guarayu"] = "gyr", ["Guatemalan Sign Language"] = "gsm", ["Guató"] = "gta", ["Guayabero"] = "guo", ["Guazacapán"] = "nai-guz", ["Gudang"] = "xgd", ["Gudanji"] = "nji", ["Gude"] = "gde", ["Gudu"] = "gdu", ["Guduf-Gava"] = "gdf", ["Guerrero Amuzgo"] = "amu", ["Guerrero Nahuatl"] = "ngu", ["Guevea de Humboldt Zapotec"] = "zpg", ["Gugadj"] = "ggd", ["Gugu Badhun"] = "gdc", ["Gugu Warra"] = "wrw", ["Guhu-Samane"] = "ghs", ["Guianese Creole"] = "gcr", ["Guiberoua Bété"] = "bet", ["Guinau"] = "awd-gnu", ["Guinea Kpelle"] = "gkp", ["Guinea-Bissau Creole"] = "pov", ["Guinea-Bissau Sign Language"] = "lgs", ["Guinean Sign Language"] = "gus", ["Guiqiong"] = "gqi", ["Gujarati"] = "gu", ["Gula"] = "glu", ["Gula'alaa"] = "gmb", ["Gulay"] = "gvl", ["Gule"] = "gly", ["Gulf Arabic"] = "afb", ["Gullah"] = "gul", ["Gumalu"] = "gmu", ["Gumatj"] = "gnn", ["Gumawana"] = "gvs", ["Gumuz"] = "guk", ["Gun"] = "guw", ["Gundi"] = "gdi", ["Gunditjmara"] = "gjm", ["Gundungurra"] = "xrd", ["Gungabula"] = "gyf", ["Gungu"] = "rub", ["Guntai"] = "gnt", ["Gunu"] = "yas", ["Gunwinggu"] = "gup", ["Gunya"] = "gyy", ["Gupa-Abawa"] = "gpa", ["Gupapuyngu"] = "guf", ["Gur Lama"] = "las", ["Guragone"] = "gge", ["Guramalum"] = "grz", ["Gurani"] = "hac", ["Gureng Gureng"] = "gnr", ["Gurgula"] = "ggg", ["Guriaso"] = "grx", ["Gurindji"] = "gue", ["Gurindji Kriol"] = "gjr", ["Gurmana"] = "gvm", ["Guro"] = "goa", ["Guruntum"] = "grd", ["Gusan"] = "gsn", ["Gusii"] = "guz", ["Gusilay"] = "gsl", ["Gutnish"] = "gmq-gut", ["Guugu Yimidhirr"] = "kky", ["Guwa"] = "xgw", ["Guwamu"] = "gwu", ["Guwar"] = "aus-guw", ["Guya"] = "gka", ["Guyanese Creole English"] = "gyn", ["Guyani"] = "gvy", ["Guébie"] = "gie", ["Gvoko"] = "ngs", ["Gwa"] = "gwb", ["Gwahatike"] = "dah", ["Gwak"] = "jgk", ["Gwamhi-Wuri"] = "bga", ["Gwandara"] = "gwn", ["Gwara"] = "alv-gwa", ["Gweda"] = "grw", ["Gweno"] = "gwe", ["Gwere"] = "gwr", ["Gwich'in"] = "gwi", ["Gyalsumdo"] = "gyo", ["Gyele"] = "gyi", ["Gyem"] = "gye", ["Güenoa"] = "sai-gue", ["Habu"] = "hbu", ["Hachijō"] = "jpx-hcj", ["Hadiyya"] = "hdy", ["Hadothi"] = "hoj", ["Hadrami"] = "xhd", ["Hadza"] = "hts", ["Haeke"] = "aek", ["Hahon"] = "hah", ["Haida"] = "hai", ["Haigwai"] = "hgw", ["Hailufeng Min"] = "nan-hlh", ["Hainanese"] = "nan-hnm", ["Hainyaxo Bozo"] = "bzx", ["Haiphong Sign Language"] = "haf", ["Haisla"] = "has", ["Haitian Creole"] = "ht", ["Haitian Vodoun Culture Language"] = "hvc", ["Haiǁom"] = "hgm", ["Haji"] = "hji", ["Hajong"] = "haj", ["Hakka"] = "hak", ["Hakö"] = "hao", ["Halang"] = "hal", ["Halang Doan"] = "hld", ["Halbi"] = "hlb", ["Halia"] = "hla", ["Halkomelem"] = "hur", ["Hamap"] = "hmu", ["Hamba"] = "hba", ["Hamer-Banna"] = "amf", ["Hamtai"] = "hmt", ["Hanga"] = "hag", ["Hanga Hundi"] = "wos", ["Hani"] = "hni", ["Hanoi Sign Language"] = "hab", ["Hanunoo"] = "hnn", ["Harami"] = "xha", ["Harappan"] = "xiv", ["Harari"] = "har", ["Haraza"] = "nub-har", ["Harijan Kinnauri"] = "kjo", ["Haroi"] = "hro", ["Harsusi"] = "hss", ["Haruai"] = "tmd", ["Haruku"] = "hrk", ["Haryanvi"] = "bgc", ["Harzani"] = "hrz", ["Hasaitic"] = "sem-has", ["Hasha"] = "ybj", ["Hassaniya Arabic"] = "mey", ["Hatam"] = "had", ["Hattic"] = "xht", ["Hausa"] = "ha", ["Hausa Sign Language"] = "hsl", ["Haush"] = "sai-hau", ["Havasupai-Walapai-Yavapai"] = "yuf", ["Haveke"] = "hvk", ["Havu"] = "hav", ["Hawai'i Pidgin Sign Language"] = "hps", ["Hawaiian"] = "haw", ["Hawaiian Creole"] = "hwc", ["Haya"] = "hay", ["Hdi"] = "xed", ["Hebrew"] = "he", ["Hehe"] = "heh", ["Heiban"] = "hbn", ["Heiltsuk"] = "hei", ["Helong"] = "heg", ["Hema"] = "nix", ["Hemba"] = "hem", ["Herdé"] = "hed", ["Herero"] = "hz", ["Hermit"] = "llf", ["Hernican"] = "xhr", ["Hewa"] = "ham", ["Heyo"] = "auk", ["Hibito"] = "hib", ["Hidatsa"] = "hid", ["Higaonon"] = "mba", ["High Valyrian"] = "art-vlh", ["Highland Konjo"] = "kjk", ["Highland Oaxaca Chontal"] = "chd", ["Highland Popoluca"] = "poi", ["Highland Puebla Nahuatl"] = "azz", ["Highland Totonac"] = "tos", ["Hijazi Arabic"] = "acw", ["Hijuk"] = "hij", ["Hiligaynon"] = "hil", ["Hill Maria"] = "mrr", ["Himarimã"] = "hir", ["Hindi"] = "hi", ["Hindi Dogri"] = "dgo", ["Hinduri"] = "hii", ["Hinukh"] = "gin", ["Hiri Motu"] = "ho", ["Hismaic"] = "sem-his", ["Hitchiti"] = "nai-hit", ["Hittite"] = "hit", ["Hitu"] = "htu", ["Hiw"] = "hiw", ["Hixkaryana"] = "hix", ["Hlai"] = "lic", ["Hlepho Phowa"] = "yhl", ["Hlersu"] = "hle", ["Hmar"] = "hmr", ["Hmong Don"] = "hmf", ["Hmong Dô"] = "hmv", ["Hmong Shua"] = "hmz", ["Hmwaveke"] = "mrk", ["Ho"] = "hoc", ["Ho Chi Minh City Sign Language"] = "hos", ["Hoava"] = "hoa", ["Hobyót"] = "hoh", ["Hoia Hoia"] = "hhi", ["Hokkien"] = "nan-hbl", ["Holikachuk"] = "hoi", ["Holiya"] = "hoy", ["Holma"] = "hod", ["Holoholo"] = "hoo", ["Holu"] = "hol", ["Homa"] = "hom", ["Honduran Lenca"] = "len", ["Honduras Sign Language"] = "hds", ["Hone"] = "juh", ["Hong Kong Sign Language"] = "hks", ["Honi"] = "how", ["Hopi"] = "hop", ["Horned Miao"] = "hrm", ["Horo"] = "hor", ["Horom"] = "hoe", ["Horpa"] = "ero", ["Hote"] = "hot", ["Hoti"] = "hti", ["Hovongan"] = "hov", ["Hoyahoya"] = "hhy", ["Hozo"] = "hoz", ["Hpon"] = "hpo", ["Hrangkhol"] = "hra", ["Hruso"] = "hru", ["Hrê"] = "hre", ["Hu"] = "huo", ["Huachipaeri"] = "hug", ["Huambisa"] = "hub", ["Huaorani"] = "auc", ["Huarijio"] = "var", ["Huaulu"] = "hud", ["Huautla Mazatec"] = "mau", ["Huave"] = "huv", ["Huaxcaleca Nahuatl"] = "nhq", ["Huba"] = "hbb", ["Huehuetla Tepehua"] = "tee", ["Huetar"] = "cba-hue", ["Huichol"] = "hch", ["Huilliche"] = "huh", ["Huitepec Mixtec"] = "mxs", ["Huizhou"] = "czh", ["Hukumina"] = "huw", ["Hula"] = "hul", ["Hulaulá"] = "huy", ["Huli"] = "hui", ["Hulung"] = "huk", ["Humburi Senni"] = "hmb", ["Humene"] = "huf", ["Hun"] = "uth", ["Hunde"] = "hke", ["Hung"] = "hnu", ["Hungana"] = "hum", ["Hungarian"] = "hu", ["Hungarian Sign Language"] = "hsh", ["Hungworo"] = "nat", ["Hunjara-Kaina Ke"] = "hkk", ["Hunnic"] = "xhc", ["Hunsrik"] = "hrx", ["Hunzib"] = "huz", ["Hupa"] = "hup", ["Hupdë"] = "jup", ["Hupla"] = "hap", ["Hurrian"] = "xhu", ["Hutterisch"] = "geh", ["Hwana"] = "hwo", ["Hya"] = "hya", ["Hyam"] = "jab", ["Hän"] = "haa", ["Hértevin"] = "hrt", ["I-Wak"] = "iwk", ["Iaai"] = "iai", ["Iamalele"] = "yml", ["Iatmul"] = "ian", ["Iau"] = "tmu", ["Ibali Teke"] = "tek", ["Ibaloi"] = "ibl", ["Iban"] = "iba", ["Ibanag"] = "ibg", ["Ibani"] = "iby", ["Ibatan"] = "ivb", ["Iberian"] = "xib", ["Ibibio"] = "ibb", ["Ibino"] = "ibn", ["Iboko"] = "bkp", ["Ibu"] = "ibu", ["Ibuoro"] = "ibr", ["Icelandic"] = "is", ["Icelandic Sign Language"] = "icl", ["Iceve-Maci"] = "bec", ["Ida'an"] = "dbj", ["Idakho-Isukha-Tiriki"] = "ida", ["Idaté"] = "idt", ["Idere"] = "ide", ["Idesa"] = "ids", ["Idi"] = "idi", ["Ido"] = "io", ["Idoma"] = "idu", ["Idon"] = "idc", ["Idu"] = "clk", ["Idun"] = "ldb", ["Iduna"] = "viv", ["Ifo"] = "iff", ["Ifè"] = "ife", ["Igala"] = "igl", ["Igana"] = "igg", ["Igbo"] = "ig", ["Igede"] = "ige", ["Ignaciano"] = "ign", ["Igo"] = "ahl", ["Iguta"] = "nar", ["Igwe"] = "igw", ["Iha"] = "ihp", ["Ihievbe"] = "ihi", ["Ija-Zuba"] = "vki", ["Ik"] = "ikx", ["Ika"] = "ikk", ["Ikaranggal"] = "ikr", ["Ikizu"] = "ikz", ["Iko"] = "iki", ["Ikobi-Mena"] = "meb", ["Ikoma"] = "ntk", ["Ikpeng"] = "txi", ["Ikpeshi"] = "ikp", ["Ikposo"] = "kpo", ["Iku-Gora-Ankwa"] = "ikv", ["Ikulu"] = "ikl", ["Ikwere"] = "ikw", ["Ikwo"] = "iqw", ["Ila"] = "ilb", ["Ile Ape"] = "ila", ["Ilgar"] = "ilg", ["Ili Turki"] = "ili", ["Ili'uun"] = "ilu", ["Ilianen Manobo"] = "mbi", ["Illyrian"] = "xil", ["Ilocano"] = "ilo", ["Ilongot"] = "ilk", ["Ilue"] = "ilv", ["Ilwana"] = "mlk", ["Imbongu"] = "imo", ["Imonda"] = "imn", ["Imroing"] = "imr", ["Inabaknon"] = "abx", ["Inapang"] = "mzu", ["Inari Sami"] = "smn", ["Indanga"] = "bnt-ind", ["Indian Sign Language"] = "ins", ["Indo-Portuguese"] = "idb", ["Indonesian"] = "id", ["Indonesian Bajau"] = "bdl", ["Indonesian Sign Language"] = "inl", ["Indri"] = "idr", ["Indus Kohistani"] = "mvy", ["Inebu One"] = "oin", ["Ineseño"] = "inz", ["Inga"] = "inb", ["Ingrian"] = "izh", ["Ingush"] = "inh", ["Inlaod Itneg"] = "iti", ["Inoke-Yate"] = "ino", ["Inonhan"] = "loc", ["Inor"] = "ior", ["Inpui Naga"] = "nkf", ["Interlingua"] = "ia", ["Interlingue"] = "ie", ["International Sign"] = "ils", ["Interslavic"] = "isv", ["Intha"] = "int", ["Inuinnaqtun"] = "esx-inq", ["Inuit Sign Language"] = "iks", ["Inuktitut"] = "iu", ["Inuktun"] = "esx-ink", ["Inupiaq"] = "ik", ["Inuvialuktun"] = "ikt", ["Ipai"] = "nai-ipa", ["Ipalapa Amuzgo"] = "azm", ["Ipiko"] = "ipo", ["Ipili"] = "ipi", ["Ipulo"] = "ass", ["Iquito"] = "iqu", ["Ir"] = "irr", ["Irantxe"] = "irn", ["Iranun"] = "ill", ["Iraqi Arabic"] = "acm", ["Iraqw"] = "irk", ["Irarutu"] = "irh", ["Iraya"] = "iry", ["Iresim"] = "ire", ["Iriga Bicolano"] = "bto", ["Irish"] = "ga", ["Irish Sign Language"] = "isg", ["Irula"] = "iru", ["Isabi"] = "isa", ["Isan"] = "tts", ["Isanzu"] = "isn", ["Isarog Agta"] = "agk", ["Isaurian"] = "mis-isa", ["Isconahua"] = "isc", ["Isebe"] = "igo", ["Ishkashimi"] = "isk", ["Isinai"] = "inn", ["Isirawa"] = "srl", ["Islander Creole English"] = "icr", ["Isnag"] = "isd", ["Isoko"] = "iso", ["Israeli Sign Language"] = "isr", ["Isthmus Mixe"] = "mir", ["Isthmus Zapotec"] = "zai", ["Istriot"] = "ist", ["Istro-Romanian"] = "ruo", ["Isu"] = "isu", ["Isubu"] = "szv", ["Italian"] = "it", ["Italian Sign Language"] = "ise", ["Italiot Greek"] = "grk-ita", ["Itawit"] = "itv", ["Itelmen"] = "itl", ["Itene"] = "ite", ["Iteri"] = "itr", ["Itik"] = "itx", ["Ito"] = "itw", ["Itonama"] = "ito", ["Itsekiri"] = "its", ["Itu Mbon Uzo"] = "itm", ["Itundujia Mixtec"] = "mce", ["Itzá"] = "itz", ["Iu Mien"] = "ium", ["Ivatan"] = "ivv", ["Iwaidja"] = "ibd", ["Iwal"] = "kbm", ["Iwam"] = "iwm", ["Iwur"] = "iwo", ["Ixcatec"] = "ixc", ["Ixcatlán Mazatec"] = "mzi", ["Ixil"] = "ixl", ["Ixtayutla Mixtec"] = "vmj", ["Ixtenco Otomi"] = "otz", ["Iyayu"] = "iya", ["Iyive"] = "uiv", ["Iyo"] = "nca", ["Iyo'wujwa Chorote"] = "crq", ["Iyojwa'ja Chorote"] = "crt", ["Izere"] = "izr", ["Izi"] = "izz", ["Izi-Ezaa-Ikwo-Mgbo"] = "izi", ["Izon"] = "ijc", ["Izora"] = "cbo", ["Iñapari"] = "inp", ["Jabem"] = "jae", ["Jabutí"] = "jbt", ["Jad"] = "jda", ["Jadgali"] = "jdg", ["Jah Hut"] = "jah", ["Jahanka"] = "jad", ["Jair Awyu"] = "awv", ["Jakaltek"] = "jac", ["Jakati"] = "jat", ["Jalapa de Díaz Mazatec"] = "maj", ["Jalkunan"] = "bxl", ["Jamaican Country Sign Language"] = "jcs", ["Jamaican Creole"] = "jam", ["Jamaican Sign Language"] = "jls", ["Jamamadí"] = "jaa", ["Jambi Malay"] = "jax", ["Jamiltepec Mixtec"] = "mxt", ["Jaminjung"] = "djd", ["Jamsay"] = "djm", ["Jamtish"] = "gmq-jmk", ["Jandavra"] = "jnd", ["Janday"] = "jan", ["Jangkang"] = "djo", ["Jangshung"] = "jna", ["Janji"] = "jni", ["Japanese"] = "ja", ["Japanese Sign Language"] = "jsl", ["Japhug"] = "sit-jap", ["Japrería"] = "jru", ["Jaqaru"] = "jqr", ["Jara"] = "jaf", ["Jarai"] = "jra", ["Jarawa"] = "anq", ["Jaru"] = "ddj", ["Jassic"] = "ysc", ["Jaunsari"] = "jns", ["Javanese"] = "jv", ["Javindo"] = "jvd", ["Jawe"] = "jaz", ["Jaya"] = "jyy", ["Jebero"] = "jeb", ["Jeh"] = "jeh", ["Jehai"] = "jhi", ["Jeikó"] = "sai-jko", ["Jeju"] = "jje", ["Jemez"] = "tow", ["Jenaama Bozo"] = "bze", ["Jeng"] = "jeg", ["Jennu Kurumba"] = "xuj", ["Jere"] = "jer", ["Jeri Kuo"] = "jek", ["Jersey Dutch"] = "gmw-jdt", ["Jeru"] = "akj", ["Jerung"] = "jee", ["Jhankot Sign Language"] = "jhs", ["Jiamao"] = "jio", ["Jiba"] = "juo", ["Jibu"] = "jib", ["Jicarilla"] = "apj", ["Jie"] = "mis-jie", ["Jiiddu"] = "jii", ["Jilbe"] = "jie", ["Jili"] = "mgi", ["Jilim"] = "jil", ["Jimi"] = "jmi", ["Jimjimen"] = "jim", ["Jin"] = "cjy", ["Jina"] = "jia", ["Jingpho"] = "kac", ["Jingulu"] = "jig", ["Jiongnai Bunu"] = "pnu", ["Jirajara"] = "sai-jrj", ["Jirel"] = "jul", ["Jiru"] = "jrr", ["Jita"] = "jit", ["Jizhao"] = "mis-jzh", ["Jju"] = "kaj", ["Joba"] = "job", ["Jofotek-Bromnya"] = "jbr", ["Jola-Fonyi"] = "dyo", ["Jola-Kasa"] = "csk", ["Jonkor Bourmataguil"] = "jeu", ["Jordanian Sign Language"] = "jos", ["Jorá"] = "jor", ["Jowulu"] = "jow", ["Ju"] = "juu", ["Juang"] = "jun", ["Juba Arabic"] = "pga", ["Judeo-Italian"] = "itk", ["Judeo-Persian"] = "jpr", ["Judeo-Tat"] = "jdt", ["Jukun Takum"] = "jbu", ["Jumaytepeque"] = "nai-jum", ["Jumjum"] = "jum", ["Jumla Sign Language"] = "jus", ["Jumli"] = "jml", ["Jungle Inga"] = "inj", ["Juquila Mixe"] = "mxq", ["Jur Modo"] = "bex", ["Juray"] = "juy", ["Jurchen"] = "juc", ["Jurúna"] = "jur", ["Jutiapa"] = "nai-jtp", ["Jutish"] = "jut", ["Juwal"] = "mwb", ["Juxtlahuaca Mixtec"] = "vmc", ["Juǀ'hoan"] = "ktz", ["Jwira-Pepesa"] = "jwi", ["Júma"] = "jua", ["K'iche'"] = "quc", ["Kaamba"] = "xku", ["Kaan"] = "ldl", ["Kaang Chin"] = "ckn", ["Kaansa"] = "gna", ["Kaapor Sign Language"] = "uks", ["Kaba"] = "ksp", ["Kabalai"] = "kvf", ["Kabardian"] = "kbd", ["Kabatei"] = "xkp", ["Kabba-Laka"] = "lap", ["Kabishiana"] = "tup-kab", ["Kabiyé"] = "kbp", ["Kabola"] = "klz", ["Kabore One"] = "onk", ["Kabras"] = "lkb", ["Kaburi"] = "uka", ["Kabutra"] = "kbu", ["Kabuverdianu"] = "kea", ["Kabwa"] = "cwa", ["Kabwari"] = "kcw", ["Kabyle"] = "kab", ["Kachama-Ganjule"] = "kcx", ["Kachari"] = "xac", ["Kachchi"] = "kfr", ["Kachi Koli"] = "gjk", ["Kacipo-Balesi"] = "koe", ["Kaco'"] = "xkk", ["Kadai"] = "kzd", ["Kadar"] = "kej", ["Kadara"] = "kad", ["Kadaru"] = "kdu", ["Kadiwéu"] = "kbc", ["Kado"] = "kdv", ["Kadu (Myanmar)"] = "zkd", ["Kadugli"] = "xtc", ["Kaduo"] = "ktp", ["Kaera"] = "jka", ["Kafa"] = "kbr", ["Kafoa"] = "kpu", ["Kagan Kalagan"] = "kll", ["Kagate"] = "syw", ["Kagayanen"] = "cgc", ["Kagoma"] = "kdm", ["Kagoro"] = "xkg", ["Kagulu"] = "kki", ["Kahe"] = "hka", ["Kahua"] = "agw", ["Kaian"] = "kct", ["Kaibobo"] = "kzb", ["Kaidipang"] = "kzp", ["Kaiep"] = "kbw", ["Kaikadi"] = "kep", ["Kaike"] = "kzq", ["Kaiku"] = "kkq", ["Kaimbulawa"] = "zka", ["Kaimbé"] = "xai", ["Kaingang"] = "kgp", ["Kairak"] = "ckr", ["Kairiru"] = "kxa", ["Kairui-Midiki"] = "krd", ["Kais"] = "kzm", ["Kaivi"] = "kce", ["Kaiwá"] = "kgk", ["Kaiy"] = "tcq", ["Kajakse"] = "ckq", ["Kajali"] = "xkj", ["Kajaman"] = "kag", ["Kakabai"] = "kqf", ["Kakabe"] = "kke", ["Kakanda"] = "kka", ["Kaki Ae"] = "tbd", ["Kakihum"] = "kxe", ["Kako"] = "kkj", ["Kakwa"] = "keo", ["Kala"] = "kcl", ["Kala Lagaw Ya"] = "mwp", ["Kalaamaya"] = "lkm", ["Kalabakan"] = "kve", ["Kalabari"] = "ijn", ["Kalabra"] = "kzz", ["Kalagan"] = "kqe", ["Kalaktang Monpa"] = "kkf", ["Kalam"] = "kmh", ["Kalami"] = "gwc", ["Kalamsé"] = "knz", ["Kalanadi"] = "wkl", ["Kalanga"] = "kck", ["Kalao"] = "kly", ["Kalapuya"] = "kyl", ["Kalarko"] = "kba", ["Kalasha"] = "kls", ["Kalasuri"] = "xme-kls", ["Kalašma"] = "ine-kal", ["Kalenjin"] = "kln", ["Kalinago"] = "crb", ["Kalkatungu"] = "ktg", ["Kalkoti"] = "xka", ["Kallawaya"] = "caw", ["Kalmyk"] = "xal", ["Kalo Finnish Romani"] = "rmf", ["Kalou"] = "ywa", ["Kaluli"] = "bco", ["Kalumpang"] = "kli", ["Kam"] = "kdx", ["Kamakan"] = "vkm", ["Kamang"] = "woi", ["Kamano"] = "kbq", ["Kamantan"] = "kci", ["Kamar"] = "keq", ["Kamara"] = "jmr", ["Kamarian"] = "kzx", ["Kamaru"] = "kgx", ["Kamarupi Prakrit"] = "inc-kam", ["Kamasa"] = "klp", ["Kamasau"] = "kms", ["Kamassian"] = "xas", ["Kamayo"] = "kyk", ["Kamayurá"] = "kay", ["Kamba"] = "kam", ["Kambaata"] = "ktb", ["Kambaira"] = "kyy", ["Kambera"] = "xbr", ["Kamberataro"] = "kbv", ["Kamberau"] = "irx", ["Kambiwá"] = "xbw", ["Kami"] = "kmi", ["Kamkata-viri"] = "bsh", ["Kamo"] = "kcq", ["Kamoro"] = "kgq", ["Kamta"] = "rkt", ["Kamu"] = "xmu", ["Kamula"] = "xla", ["Kamwe"] = "hig", ["Kanakanabu"] = "xnb", ["Kanakuru"] = "kna", ["Kanamari"] = "knm", ["Kanashi"] = "xns", ["Kanasi"] = "soq", ["Kandas"] = "kqw", ["Kandawo"] = "gam", ["Kande"] = "kbs", ["Kang"] = "kyp", ["Kanga"] = "kcp", ["Kangean"] = "kkv", ["Kanggape"] = "igm", ["Kangjia"] = "kxs", ["Kango"] = "kty", ["Kango-Sua"] = "kzy", ["Kangri"] = "xnr", ["Kaniet"] = "ktk", ["Kanikkaran"] = "kev", ["Kaningdon-Nindem"] = "kdp", ["Kaningi"] = "kzo", ["Kaningra"] = "knr", ["Kaninuwa"] = "wat", ["Kanite"] = "kmu", ["Kanjari"] = "kft", ["Kanju"] = "kbe", ["Kankanaey"] = "kne", ["Kannada"] = "kn", ["Kannada Kurumba"] = "kfi", ["Kannauji"] = "bjj", ["Kanowit"] = "kxn", ["Kanoé"] = "kxo", ["Kansa"] = "ksk", ["Kantosi"] = "xkt", ["Kanu"] = "khx", ["Kanufi"] = "kni", ["Kanuri"] = "kr", ["Kanyok"] = "kny", ["Kao"] = "kax", ["Kaonde"] = "kqn", ["Kap"] = "ykm", ["Kapampangan"] = "pam", ["Kapauri"] = "khp", ["Kapin"] = "tbx", ["Kapinawá"] = "xpn", ["Kapingamarangi"] = "kpg", ["Kapriman"] = "dju", ["Kaptiau"] = "kbi", ["Kapya"] = "klo", ["Kaqchikel"] = "cak", ["Kaqchikel-K'iche' Mixed Language"] = "ckz", ["Kara (New Guinea)"] = "leu", ["Kara (Tanzania)"] = "reg", ["Karachay-Balkar"] = "krc", ["Karadjeri"] = "gbd", ["Karaga Mandaya"] = "mry", ["Karaim"] = "kdr", ["Karajá"] = "kpj", ["Karakalpak"] = "kaa", ["Karakhanid"] = "xqa", ["Karami"] = "xar", ["Karamojong"] = "kdj", ["Karang"] = "kzr", ["Karanga"] = "kth", ["Karankawa"] = "zkk", ["Karao"] = "kyj", ["Karas"] = "kgv", ["Karata"] = "kpt", ["Karawa"] = "xrw", ["Karbi"] = "mjw", ["Kare (Africa)"] = "kbn", ["Kare (New Guinea)"] = "kmf", ["Karekare"] = "kai", ["Karelian"] = "krl", ["Karey"] = "kyd", ["Kari"] = "kbj", ["Kari'na"] = "car", ["Karingani"] = "kgn", ["Karipuna"] = "kuq", ["Karipúna"] = "kgm", ["Karipúna Creole French"] = "kmv", ["Kariri"] = "kzw", ["Karitiâna"] = "ktn", ["Kariya"] = "kil", ["Kariyarra"] = "vka", ["Karkar-Yuri"] = "yuj", ["Karkin"] = "krb", ["Karko"] = "kko", ["Karnai"] = "bbv", ["Karo"] = "kxh", ["Karo Batak"] = "btx", ["Karok"] = "kyh", ["Karolanos"] = "kyn", ["Karon"] = "krx", ["Karon Dori"] = "kgw", ["Karore"] = "xkx", ["Karranga"] = "xrq", ["Karuwali"] = "rxw", ["Kasanga"] = "ccj", ["Kasem"] = "xsm", ["Kashaya"] = "kju", ["Kashmiri"] = "ks", ["Kashubian"] = "csb", ["Kasiguranin"] = "ksn", ["Kaska"] = "kkz", ["Kaskean"] = "zsk", ["Kaskihá"] = "gva", ["Kassite"] = "mis-kas", ["Kassonke"] = "kao", ["Kasua"] = "khs", ["Kataang"] = "kgd", ["Katabaga"] = "ktq", ["Katawixi"] = "xat", ["Katembri"] = "sai-kat", ["Kathlamet"] = "nai-kat", ["Kathoriya Tharu"] = "tkt", ["Kathu"] = "ykt", ["Katkari"] = "kfu", ["Katla"] = "kcr", ["Kato"] = "ktw", ["Katso"] = "kaf", ["Katua"] = "kta", ["Katukina"] = "knt", ["Kaulong"] = "pss", ["Kaur"] = "vkk", ["Kaure"] = "bpp", ["Kaurna"] = "zku", ["Kauwera"] = "xau", ["Kavalan"] = "ckv", ["Kavet"] = "krv", ["Kawacha"] = "kcb", ["Kawaiisu"] = "xaw", ["Kawe"] = "kgb", ["Kawishana"] = "awd-kaw", ["Kawésqar"] = "alc", ["Kaxararí"] = "ktx", ["Kaxuyana"] = "kbb", ["Kayabí"] = "kyz", ["Kayagar"] = "kyt", ["Kayan"] = "pdu", ["Kayan Mahakam"] = "xay", ["Kayan River Kayan"] = "xkn", ["Kayapa Kallahan"] = "kak", ["Kayapó"] = "txu", ["Kayardild"] = "gyd", ["Kayeli"] = "kzl", ["Kayong"] = "kxy", ["Kayort"] = "kyv", ["Kaytetye"] = "gbb", ["Kayupulau"] = "kzu", ["Kazakh"] = "kk", ["Kazukuru"] = "kzk", ["Ke'o"] = "xxk", ["Keak"] = "keh", ["Keapara"] = "khz", ["Kedah Malay"] = "meo", ["Kedang"] = "ksx", ["Keder"] = "kdy", ["Kehu"] = "khh", ["Kei"] = "kei", ["Keiga"] = "kec", ["Kein"] = "bmh", ["Keiyo"] = "eyo", ["Kela-Yela"] = "kel", ["Kelabit"] = "kzi", ["Kelantan Peranakan"] = "mis-hkl", ["Keley-I Kallahan"] = "ify", ["Keliko"] = "kbo", ["Kelo"] = "xel", ["Kelon"] = "kyo", ["Kemak"] = "kem", ["Kembayan"] = "xem", ["Kemberano"] = "bzp", ["Kembra"] = "xkw", ["Kemezung"] = "dmo", ["Kemi Sami"] = "sjk", ["Kemiehua"] = "kfj", ["Kemtuik"] = "kmt", ["Kenaboi"] = "xbn", ["Kenati"] = "gat", ["Kendayan"] = "knx", ["Kendeje"] = "klf", ["Kendem"] = "kvm", ["Kenga"] = "kyq", ["Keningau Murut"] = "kxi", ["Keninjal"] = "knl", ["Kensiu"] = "kns", ["Kenswei Nsei"] = "ndb", ["Kenyan Sign Language"] = "xki", ["Kenyang"] = "ken", ["Kenyi"] = "lke", ["Keoru-Ahia"] = "xeu", ["Kepkiriwát"] = "kpn", ["Kepo'"] = "kuk", ["Kera"] = "ker", ["Kerak"] = "hhr", ["Kereho"] = "xke", ["Kerek"] = "krk", ["Kerewe"] = "ked", ["Kerewo"] = "kxz", ["Kerinci"] = "kvr", ["Kermanic"] = "xme-ker", ["Kesawai"] = "xes", ["Ket"] = "ket", ["Ketangalan"] = "kae", ["Kete"] = "kcv", ["Ketengban"] = "xte", ["Ketum"] = "ktt", ["Kewa"] = "kew", ["Keyagana"] = "kyg", ["Kgalagadi"] = "xkv", ["Khakas"] = "kjh", ["Khalaj"] = "klj", ["Khaling"] = "klr", ["Khamnigan Mongol"] = "ykh", ["Khamti"] = "kht", ["Khamyang"] = "ksu", ["Khana"] = "ogo", ["Khandeshi"] = "khn", ["Khao"] = "xao", ["Kharam Naga"] = "kfw", ["Kharia"] = "khr", ["Kharia Thar"] = "ksy", ["Khasi"] = "kha", ["Khayo"] = "lko", ["Khazar"] = "zkz", ["Khe"] = "kqg", ["Khehek"] = "tlx", ["Khengkha"] = "xkf", ["Khetrani"] = "xhe", ["Khezha Naga"] = "nkh", ["Khiamniungan Naga"] = "kix", ["Khinalug"] = "kjj", ["Khirwar"] = "kwx", ["Khisa"] = "kqm", ["Khitan"] = "zkt", ["Khlor"] = "llo", ["Khlula"] = "ykl", ["Khmer"] = "km", ["Khmu"] = "kjg", ["Khoekhoe"] = "naq", ["Khoibu Naga"] = "nkb", ["Khoini"] = "xkc", ["Kholok"] = "ktc", ["Kholosi"] = "inc-kho", ["Khonso"] = "kxc", ["Khorasani Turkish"] = "kmz", ["Khorezmian Turkic"] = "zkh", ["Khotanese"] = "kho", ["Khowar"] = "khw", ["Khroskyabs"] = "jiq", ["Khua"] = "xhv", ["Khuen"] = "khf", ["Khumi Chin"] = "cnk", ["Khvarshi"] = "khv", ["Khwarezmian"] = "xco", ["Khwe"] = "xuu", ["Kháng"] = "kjm", ["Khün"] = "kkh", ["Kibala"] = "blv", ["Kibena"] = "bez", ["Kibet"] = "kie", ["Kibiri"] = "prm", ["Kichwa"] = "qwe-kch", ["Kickapoo"] = "kic", ["Kikai"] = "kzg", ["Kikami"] = "kcu", ["Kikuyu"] = "ki", ["Kildin Sami"] = "sjd", ["Kili"] = "tuw-kli", ["Kilit"] = "xme-klt", ["Kilivila"] = "kij", ["Kiliwa"] = "klb", ["Kilmeri"] = "kih", ["Kim"] = "kia", ["Kim Mun"] = "mji", ["Kimaama"] = "kig", ["Kimaragang"] = "kqr", ["Kimbu"] = "kiv", ["Kimbundu"] = "kmb", ["Kimki"] = "sbt", ["Kimré"] = "kqp", ["Kinabalian"] = "cbw", ["Kinalakna"] = "kco", ["Kinaray-a"] = "krj", ["Kinga"] = "zga", ["Kings River Yokuts"] = "yok-kry", ["Kinikinao"] = "gqn", ["Kinnauri"] = "kfk", ["Kintaq"] = "knq", ["Kinuku"] = "kkd", ["Kioko"] = "ues", ["Kiong"] = "kkm", ["Kiorr"] = "xko", ["Kiowa"] = "kio", ["Kipchak"] = "qwm", ["Kipfokomo"] = "pkb", ["Kipsigis"] = "sgc", ["Kiput"] = "kyi", ["Kir-Balar"] = "kkr", ["Kire"] = "geb", ["Kirfi"] = "kks", ["Kirike"] = "okr", ["Kirikiri"] = "kiy", ["Kirya-Konzel"] = "fkk", ["Kis"] = "kis", ["Kisa"] = "lks", ["Kisan"] = "xis", ["Kisankasa"] = "kqh", ["Kisar"] = "kje", ["Kisi"] = "kiz", ["Kistane"] = "gru", ["Kita Maninkakan"] = "mwk", ["Kitanemuk"] = "azc-ktn", ["Kitembo"] = "tbt", ["Kitja"] = "gia", ["Kitsai"] = "kii", ["Kituba"] = "ktu", ["Kiunum"] = "wei", ["Kla"] = "lda", ["Klallam"] = "clm", ["Klamath-Modoc"] = "kla", ["Klao"] = "klu", ["Klias River Kadazan"] = "kqt", ["Klingon"] = "tlh", ["Knaanic"] = "czk", ["Ko"] = "fuj", ["Koalib"] = "kib", ["Koasati"] = "cku", ["Koba"] = "kpd", ["Kobiana"] = "kcj", ["Kobol"] = "kgu", ["Kobon"] = "kpw", ["Koch"] = "kdq", ["Kochila Tharu"] = "thq", ["Koda"] = "cdz", ["Kodaku"] = "ksz", ["Kodava"] = "kfa", ["Kodeoha"] = "vko", ["Kodi"] = "kod", ["Kodia"] = "kwp", ["Koenoem"] = "kcs", ["Kofa"] = "kso", ["Kofei"] = "kpi", ["Kofyar"] = "kwl", ["Kohin"] = "kkx", ["Kohistani Shina"] = "plk", ["Koho"] = "kpm", ["Kohumono"] = "bcs", ["Koi"] = "kkt", ["Koibal"] = "zkb", ["Koireng"] = "nkd", ["Koitabu"] = "kqi", ["Koiwat"] = "kxt", ["Kok-Nar"] = "gko", ["Kok-Paponk"] = "okg", ["Kokata"] = "ktd", ["Kokborok"] = "trp", ["Koke"] = "kou", ["Koko-Bera"] = "kkp", ["Kokoda"] = "xod", ["Kokola"] = "kzn", ["Kokota"] = "kkk", ["Kol (Cameroon)"] = "biw", ["Kol (New Guinea)"] = "kol", ["Kola"] = "kvv", ["Kolami"] = "kfb", ["Kolbila"] = "klc", ["Kolhe"] = "ekl", ["Kolibugan Subanon"] = "skn", ["Kolom"] = "klm", ["Koluwawa"] = "klx", ["Kom (Cameroon)"] = "bkm", ["Kom (India)"] = "kmm", ["Koma"] = "kmy", ["Komba"] = "kpf", ["Kombai"] = "tyn", ["Kombio"] = "xbi", ["Komering"] = "kge", ["Komi-Permyak"] = "koi", ["Komi-Yazva"] = "urj-kya", ["Komi-Zyrian"] = "kpv", ["Kominimung"] = "xoi", ["Komo"] = "xom", ["Komodo"] = "kvh", ["Kompane"] = "kvp", ["Komyandaret"] = "kzv", ["Kon Keu"] = "kkn", ["Konabéré"] = "bbo", ["Konai"] = "kxw", ["Konda"] = "knd", ["Konda-Dora"] = "kfc", ["Kondekor"] = "gau", ["Koneraw"] = "kdw", ["Kongo"] = "kg", ["Konkani"] = "kok", ["Konkomba"] = "xon", ["Konni"] = "kma", ["Kono (Guinea)"] = "knu", ["Kono (Nigeria)"] = "klk", ["Kono (Sierra Leone)"] = "kno", ["Konomala"] = "koa", ["Konomihu"] = "nai-knm", ["Konongo"] = "kcz", ["Konyak Naga"] = "nbe", ["Konyanka Maninka"] = "mku", ["Konzo"] = "koo", ["Koonzime"] = "ozm", ["Koorete"] = "kqy", ["Kopar"] = "xop", ["Kopkaka"] = "opk", ["Korafe-Yegha"] = "kpr", ["Korak"] = "koz", ["Korana"] = "kqz", ["Korandje"] = "kcy", ["Korean"] = "ko", ["Korean Sign Language"] = "kvk", ["Koreguaje"] = "coe", ["Koresh-e Rostam"] = "okh", ["Korku"] = "kfq", ["Korlai Creole Portuguese"] = "vkp", ["Koro (India)"] = "jkr", ["Koro (Vanuatu)"] = "krf", ["Koro (West Africa)"] = "kfo", ["Koromfé"] = "kfz", ["Koromira"] = "kqj", ["Koronadal Blaan"] = "bpr", ["Koroni"] = "xkq", ["Korop"] = "krp", ["Koropó"] = "xxr", ["Koroshi"] = "ktl", ["Korowai"] = "khe", ["Korra Koraga"] = "kfd", ["Korubo"] = "xor", ["Korupun-Sela"] = "kpq", ["Korwa"] = "kfp", ["Koryak"] = "kpy", ["Kosadle"] = "kiq", ["Kosarek Yale"] = "kkl", ["Kosena"] = "kze", ["Koshin"] = "kid", ["Kosraean"] = "kos", ["Kota (Gabon)"] = "koq", ["Kota (India)"] = "kfe", ["Kota Bangun Kutai Malay"] = "mqg", ["Kota Marudu Talantang"] = "grm", ["Kota Marudu Tinagas"] = "ktr", ["Kotafon Gbe"] = "kqk", ["Kotava"] = "avk", ["Koti"] = "eko", ["Kott"] = "zko", ["Kou"] = "snz", ["Kouya"] = "kyf", ["Kovai"] = "kqb", ["Kove"] = "kvc", ["Kowaki"] = "xow", ["Kowiai"] = "kwh", ["Koy Sanjaq Surat"] = "kqd", ["Koya"] = "kff", ["Koyaga"] = "kga", ["Koyo"] = "koh", ["Koyra Chiini"] = "khq", ["Koyraboro Senni"] = "ses", ["Koyukon"] = "koy", ["Kpagua"] = "kuw", ["Kpala"] = "kpl", ["Kpan"] = "kpk", ["Kpasam"] = "pbn", ["Kpati"] = "koc", ["Kpatili"] = "kym", ["Kpee"] = "cpo", ["Kpelle"] = "kpe", ["Kpessi"] = "kef", ["Kplang"] = "kph", ["Krache"] = "kye", ["Krahô"] = "xra", ["Kraol"] = "rka", ["Krenak"] = "kqq", ["Kresh"] = "krs", ["Krevinian"] = "zkv", ["Kreye"] = "xre", ["Krikati-Timbira"] = "xri", ["Krim"] = "krm", ["Krio"] = "kri", ["Krisa"] = "ksi", ["Kristang"] = "mcm", ["Krobu"] = "kxb", ["Krongo"] = "kgo", ["Kru'ng"] = "krr", ["Krymchak"] = "jct", ["Kryts"] = "kry", ["Kua"] = "tyu", ["Kua-nsi"] = "ykn", ["Kuamasi"] = "yku", ["Kuan"] = "uan", ["Kuanhua"] = "xnh", ["Kube"] = "kgf", ["Kubi"] = "kof", ["Kubo"] = "jko", ["Kubu"] = "kvb", ["Kucong"] = "lkc", ["Kudiya"] = "kfg", ["Kudmali"] = "kyw", ["Kudu-Camo"] = "kov", ["Kugama"] = "kow", ["Kugbo"] = "kes", ["Kugu-Muminh"] = "xmh", ["Kui (India)"] = "kxu", ["Kui (Indonesia)"] = "kvd", ["Kuijau"] = "dkr", ["Kuikúro"] = "kui", ["Kujarge"] = "vkj", ["Kuk"] = "kfn", ["Kukatja"] = "kux", ["Kukele"] = "kez", ["Kukkuzi"] = "urj-kuk", ["Kukna"] = "kex", ["Kuku-Mangk"] = "xmq", ["Kuku-Mu'inh"] = "xmp", ["Kuku-Thaypan"] = "typ", ["Kuku-Ugbanh"] = "ugb", ["Kuku-Uwanh"] = "uwa", ["Kuku-Yalanji"] = "gvn", ["Kula"] = "tpg", ["Kulaal"] = "glj", ["Kulere"] = "kul", ["Kulfa"] = "kxj", ["Kulina"] = "xpk", ["Kulisusu"] = "vkl", ["Kullu Pahari"] = "kfx", ["Kulon"] = "uon", ["Kulon-Pazeh"] = "uun", ["Kulung"] = "kle", ["Kumak"] = "nee", ["Kumalu"] = "ksl", ["Kumam"] = "kdi", ["Kuman"] = "kue", ["Kumaoni"] = "kfy", ["Kumarbhag Paharia"] = "kmj", ["Kumba"] = "ksm", ["Kumbainggar"] = "kgs", ["Kumbaran"] = "wkb", ["Kumbewaha"] = "xks", ["Kumeyaay"] = "nai-kum", ["Kumhali"] = "kra", ["Kumu"] = "kmw", ["Kumukio"] = "kuo", ["Kumyk"] = "kum", ["Kumzari"] = "zum", ["Kuna"] = "cuk", ["Kunama"] = "kun", ["Kunbarlang"] = "wlg", ["Kunda"] = "kdn", ["Kundal Shahi"] = "shd", ["Kunduvadi"] = "wku", ["Kung"] = "kfl", ["Kungarakany"] = "ggk", ["Kungardutyi"] = "gdt", ["Kunggari"] = "kgl", ["Kungkari"] = "lku", ["Kuni"] = "kse", ["Kuni-Boazi"] = "kvg", ["Kunigami"] = "xug", ["Kunimaipa"] = "kup", ["Kunja"] = "pep", ["Kunjen"] = "kjn", ["Kunyi"] = "njx", ["Kunza"] = "kuz", ["Kuo"] = "xuo", ["Kuot"] = "kto", ["Kupa"] = "kug", ["Kupang Malay"] = "mkn", ["Kupia"] = "key", ["Kupsabiny"] = "kpz", ["Kur"] = "kuv", ["Kura Ede Nago"] = "nqk", ["Kurama"] = "krh", ["Kuranko"] = "knk", ["Kuri"] = "nbn", ["Kuria"] = "kuj", ["Kurichiya"] = "kfh", ["Kurmukar"] = "kfv", ["Kurnai"] = "unn", ["Kurrama"] = "vku", ["Kurti"] = "ktm", ["Kurtjar"] = "gdj", ["Kurtöp"] = "xkz", ["Kurudu"] = "kjr", ["Kurukh"] = "kru", ["Kuruáya"] = "kyr", ["Kusaal"] = "kus", ["Kusaghe"] = "ksg", ["Kushi"] = "kuh", ["Kustenau"] = "awd-kus", ["Kusu"] = "ksv", ["Kusunda"] = "kgg", ["Kutang Ghale"] = "ght", ["Kutenai"] = "kut", ["Kutep"] = "kub", ["Kuthant"] = "xut", ["Kutto"] = "kpa", ["Kutu"] = "kdc", ["Kuturmi"] = "khj", ["Kuuk Thaayorre"] = "thd", ["Kuuk Yak"] = "uky", ["Kuuku-Ya'u"] = "kuy", ["Kuvale"] = "olu", ["Kuvi"] = "kxv", ["Kuwaa"] = "blh", ["Kuwaataay"] = "cwt", ["Kuwani"] = "paa-kwn", ["Kuy"] = "kdt", ["Kven"] = "fkv", ["Kw'adza"] = "wka", ["Kwa'"] = "bko", ["Kwaami"] = "ksq", ["Kwadi"] = "kwz", ["Kwaio"] = "kwd", ["Kwaja"] = "kdz", ["Kwak"] = "kwq", ["Kwak'wala"] = "kwk", ["Kwakum"] = "kwu", ["Kwalhioqua-Tlatskanai"] = "qwt", ["Kwama"] = "kmq", ["Kwambi"] = "kwm", ["Kwamera"] = "tnk", ["Kwami"] = "ktf", ["Kwamtim One"] = "okk", ["Kwang"] = "kvi", ["Kwanga"] = "kwj", ["Kwangali"] = "kwn", ["Kwanja"] = "knp", ["Kwanka"] = "bij", ["Kwanyama"] = "kj", ["Kwara'ae"] = "kwf", ["Kwasio"] = "nmg", ["Kwaya"] = "kya", ["Kwaza"] = "xwa", ["Kwegu"] = "xwg", ["Kwer"] = "kwr", ["Kwerba"] = "kwe", ["Kwerba Mamberamo"] = "xwr", ["Kwere"] = "cwe", ["Kwerisa"] = "kkb", ["Kwese"] = "kws", ["Kwesten"] = "kwt", ["Kwini"] = "gww", ["Kwinsu"] = "kuc", ["Kwinti"] = "kww", ["Kwoma"] = "kmo", ["Kwomtari"] = "kwo", ["Kyak"] = "bka", ["Kyaka"] = "kyc", ["Kyakala"] = "tuw-kkl", ["Kyan-Karyaw Naga"] = "nqq", ["Kyenele"] = "kql", ["Kyenga"] = "tye", ["Kyerung"] = "kgy", ["Kyrgyz"] = "ky", ["Kâte"] = "kmg", ["Kélé"] = "keb", ["Kómnzo"] = "paa-kom", ["La'bi"] = "lbi", ["Laal"] = "gdm", ["Laalaa"] = "cae", ["Laba"] = "lau", ["Label"] = "lbb", ["Labir"] = "jku", ["Labo"] = "mwi", ["Labo Phowa"] = "ypb", ["Laboya"] = "lmy", ["Labu"] = "lbu", ["Labuk-Kinabatangan Kadazan"] = "dtb", ["Lacandon"] = "lac", ["Lachi"] = "lbt", ["Lachiguiri Zapotec"] = "zpa", ["Lachixío Zapotec"] = "zpl", ["Ladakhi"] = "lbj", ["Ladin"] = "lld", ["Ladino"] = "lad", ["Ladji-Ladji"] = "llj", ["Laeko-Libuat"] = "lkl", ["Lafofa"] = "laf", ["Laghu"] = "lgb", ["Laghuu"] = "lgh", ["Lagwan"] = "kot", ["Laha (Indonesia)"] = "lhh", ["Laha (Vietnam)"] = "lha", ["Lahanan"] = "lhn", ["Lahnda"] = "lah", ["Lahta Karen"] = "kvt", ["Lahu"] = "lhu", ["Lahu Shi"] = "lhi", ["Lahul Lohar"] = "lhl", ["Lai"] = "cnh", ["Laimbue"] = "lmx", ["Laitu Chin"] = "clj", ["Laiyolo"] = "lji", ["Lak"] = "lbe", ["Laka"] = "lak", ["Lakalei"] = "lka", ["Lake Miwok"] = "lmw", ["Lakha"] = "lkh", ["Laki"] = "lki", ["Lakkia"] = "lbc", ["Lakon"] = "lkn", ["Lakondê"] = "lkd", ["Lakota"] = "lkt", ["Lakota Dida"] = "dic", ["Lala (New Guinea)"] = "nrz", ["Lala (South Africa)"] = "bnt-lal", ["Lala-Bisa"] = "leb", ["Lala-Roba"] = "lla", ["Lalana Chinantec"] = "cnl", ["Lama Bai"] = "lay", ["Lamaholot"] = "slp", ["Lamalera"] = "lmr", ["Lamang"] = "hia", ["Lamatuka"] = "lmq", ["Lamba"] = "lam", ["Lambadi"] = "lmn", ["Lambichhong"] = "lmh", ["Lambya"] = "lai", ["Lame"] = "bma", ["Lamenu"] = "lmu", ["Lamet"] = "lbn", ["Lamja-Dengsa-Tola"] = "ldh", ["Lamkang"] = "lmk", ["Lamma"] = "lev", ["Lamnso'"] = "lns", ["Lamogai"] = "lmg", ["Lampung Api"] = "ljp", ["Lamu"] = "llh", ["Lamu-Lamu"] = "lby", ["Lanas Lobu"] = "ruu", ["Landoma"] = "ldm", ["Lang'e"] = "yne", ["Langam"] = "lnm", ["Langbashe"] = "lna", ["Langi"] = "lag", ["Langnian Buyang"] = "yln", ["Lango (Sudan)"] = "lno", ["Lango (Uganda)"] = "laj", ["Lanima"] = "lnw", ["Lanoh"] = "lnh", ["Lao"] = "lo", ["Lao Naga"] = "nlq", ["Laomian"] = "lwm", ["Laopang"] = "lbg", ["Laos Sign Language"] = "lso", ["Lapaguía-Guivini Zapotec"] = "ztl", ["Lapine"] = "art-lap", ["Lapuyan Subanun"] = "laa", ["Laragia"] = "lrg", ["Larantuka Malay"] = "lrt", ["Lardil"] = "lbz", ["Larestani"] = "lrl", ["Larike-Wakasihu"] = "alo", ["Laro"] = "lro", ["Larteh"] = "lar", ["Laru"] = "lan", ["Larëvat"] = "lrv", ["Lasalimu"] = "llm", ["Lasgerdi"] = "lsa", ["Lashi"] = "lsi", ["Lasi"] = "lss", ["Latgalian"] = "ltg", ["Latin"] = "la", ["Latu"] = "ltu", ["Latundê"] = "ltn", ["Latvian"] = "lv", ["Latvian Sign Language"] = "lsl", ["Lau"] = "llu", ["Laua"] = "luf", ["Lauan"] = "llx", ["Lauje"] = "law", ["Laura"] = "lur", ["Laurentian"] = "lre", ["Lautu Chin"] = "clt", ["Lavatbura-Lamusong"] = "lbv", ["Lave"] = "brb", ["Laven"] = "lbo", ["Lavukaleve"] = "lvk", ["Lawangan"] = "lbx", ["Lawi"] = "lvi", ["Lawu"] = "lwu", ["Lawunuia"] = "tgi", ["Layakha"] = "lya", ["Laz"] = "lzz", ["Laze"] = "tbq-laz", ["Lealao Chinantec"] = "cle", ["Leco"] = "lec", ["Ledo Kaili"] = "lew", ["Leelau"] = "ldk", ["Lefa"] = "lfa", ["Lega-Mwenga"] = "lgm", ["Lega-Shabunda"] = "lea", ["Legbo"] = "agb", ["Legenyem"] = "lcc", ["Lehali"] = "tql", ["Leinong Naga"] = "lzn", ["Leipon"] = "lek", ["Leizhou Min"] = "nan-luh", ["Lela"] = "dri", ["Lelak"] = "llk", ["Lele (Chad)"] = "lln", ["Lele (Congo)"] = "lel", ["Lele (Guinea)"] = "llc", ["Lele (Papua New Guinea)"] = "lle", ["Lelemi"] = "lef", ["Lelepa"] = "lpa", ["Lembena"] = "leq", ["Lemerig"] = "lrz", ["Lemio"] = "lei", ["Lemnian"] = "xle", ["Lemolang"] = "ley", ["Lemoro"] = "ldj", ["Lenakel"] = "tnl", ["Lendu"] = "led", ["Lengilu"] = "lgi", ["Lengo"] = "lgr", ["Lengola"] = "lej", ["Lenje"] = "leh", ["Lenkau"] = "ler", ["Lenyima"] = "ldg", ["Leonese"] = "roa-leo", ["Lepcha"] = "lep", ["Lepki"] = "lpe", ["Lepontic"] = "xlp", ["Lere"] = "gnh", ["Lese"] = "les", ["Lesing-Gelimi"] = "let", ["Letemboi"] = "nms", ["Leti"] = "lti", ["Levuka"] = "lvu", ["Lewo"] = "lww", ["Lewo Eleng"] = "lwe", ["Lewotobi"] = "lwt", ["Leyigha"] = "ayi", ["Lezgi"] = "lez", ["Lhao Vo"] = "mhx", ["Lhokpu"] = "lhp", ["Li'o"] = "ljl", ["Liabuku"] = "lix", ["Liana-Seti"] = "ste", ["Liangmai Naga"] = "njn", ["Liberia Kpelle"] = "xpe", ["Liberian Kreyol"] = "lir", ["Libido"] = "liq", ["Libinza"] = "liz", ["Libon Bikol"] = "lbl", ["Liburnian"] = "xli", ["Libyan Arabic"] = "ayl", ["Libyan Sign Language"] = "lbs", ["Ligbi"] = "lig", ["Ligenza"] = "lgz", ["Ligurian"] = "lij", ["Lihir"] = "lih", ["Lika"] = "lik", ["Liki"] = "lio", ["Likila"] = "lie", ["Likuba"] = "kxx", ["Likum"] = "lib", ["Likwala"] = "kwc", ["Lilau"] = "lll", ["Lillooet"] = "lil", ["Limassa"] = "bme", ["Limbu"] = "lif", ["Limbum"] = "lmp", ["Limburgish"] = "li", ["Limi"] = "ylm", ["Limilngan"] = "lmc", ["Limos Kalinga"] = "kmk", ["Lindu"] = "klw", ["Linear A"] = "lab", ["Lingala"] = "ln", ["Lingao"] = "onb", ["Lingkhim"] = "lii", ["Lingua Franca Nova"] = "lfn", ["Linngithigh"] = "lnj", ["Lipan"] = "apl", ["Lipo"] = "lpo", ["Lisabata-Nuniali"] = "lcs", ["Lisela"] = "lcl", ["Lish"] = "lsh", ["Lishana Deni"] = "lsd", ["Lishanid Noshan"] = "aij", ["Lishán Didán"] = "trg", ["Lisu"] = "lis", ["Literary Chinese"] = "lzh", ["Lithuanian"] = "lt", ["Lithuanian Sign Language"] = "lls", ["Little Swanport"] = "aus-lsw", ["Litzlitz"] = "lzl", ["Livonian"] = "liv", ["Livvi"] = "olo", ["Lizu"] = "sit-liz", ["Lo-Toga"] = "lht", ["Loarki"] = "lrk", ["Lobala"] = "loq", ["Lobi"] = "lob", ["Lodhi"] = "lbm", ["Logba"] = "lgq", ["Logo"] = "log", ["Logol"] = "lof", ["Logooli"] = "rag", ["Logorik"] = "liu", ["Lojban"] = "jbo", ["Lokaa"] = "yaz", ["Loko"] = "lok", ["Lokono"] = "arw", ["Lokoya"] = "lky", ["Lola"] = "lcd", ["Lolak"] = "llq", ["Lole"] = "llg", ["Lolo"] = "llb", ["Loloda"] = "loa", ["Lolopo"] = "ycl", ["Loma"] = "lom", ["Lomaiviti"] = "lmv", ["Lomakka"] = "loi", ["Lomavren"] = "rmi", ["Lombard"] = "lmo", ["Lombi"] = "lmi", ["Lombo"] = "loo", ["Lomwe"] = "ngl", ["Loncong"] = "lce", ["Long Phuri Naga"] = "lpn", ["Long Wat"] = "ttw", ["Longgu"] = "lgu", ["Longjia"] = "sit-lnj", ["Longto"] = "wok", ["Longuda"] = "lnu", ["Longyan Min"] = "nan-lnx", ["Loniu"] = "los", ["Lonwolwol"] = "crc", ["Loo"] = "ldo", ["Lopa"] = "lop", ["Lope"] = "yiu", ["Lopi"] = "lov", ["Lopit"] = "lpx", ["Lorang"] = "lrn", ["Lorediakarkar"] = "lnn", ["Lorrain"] = "roa-lor", ["Lote"] = "uvl", ["Lotha Naga"] = "njh", ["Lotud"] = "dtr", ["Lotuko"] = "lot", ["Lou"] = "loj", ["Louisiana Creole"] = "lou", ["Loun"] = "lox", ["Loup A"] = "xlo", ["Loup B"] = "xlb", ["Lovono"] = "vnk", ["Low German"] = "nds", ["Lower Burdekin"] = "xbb", ["Lower Chehalis"] = "cea", ["Lower Grand Valley Dani"] = "dni", ["Lower Nossob"] = "nsb", ["Lower Sorbian"] = "dsb", ["Lower Southern Aranda"] = "axl", ["Lower Ta'oih"] = "tto", ["Lower Tanana"] = "taa", ["Lowland Oaxaca Chontal"] = "clo", ["Lowland Tarahumara"] = "tac", ["Loxicha Zapotec"] = "ztp", ["Lozi"] = "loz", ["Luang"] = "lex", ["Luba-Kasai"] = "lua", ["Luba-Katanga"] = "lu", ["Lubila"] = "kcc", ["Lubu"] = "lcf", ["Lubuagan Kalinga"] = "knb", ["Luchazi"] = "lch", ["Lucumí"] = "luq", ["Ludian"] = "lud", ["Lufu"] = "ldq", ["Luganda"] = "lg", ["Lugbara"] = "lgg", ["Luguru"] = "ruf", ["Luhu"] = "lcq", ["Luhya"] = "luy", ["Luimbi"] = "lum", ["Luiseño"] = "lui", ["Lukpa"] = "dop", ["Lule"] = "ule", ["Lule Sami"] = "smj", ["Lumba-Yakkha"] = "luu", ["Lumbee"] = "lmz", ["Lumbu"] = "lup", ["Lumun"] = "lmd", ["Lun Bawang"] = "lnd", ["Luna"] = "luj", ["Lunanakha"] = "luk", ["Lunda"] = "lun", ["Lungga"] = "lga", ["Luo"] = "luo", ["Luopohe Hmong"] = "hml", ["Luren"] = "sit-lrn", ["Luri (Nigeria)"] = "ldd", ["Lusengo"] = "lse", ["Lushootseed"] = "lut", ["Lusi"] = "khl", ["Lusitanian"] = "xls", ["Lutachoni"] = "lts", ["Lutos"] = "ndy", ["Luvale"] = "lue", ["Luwati"] = "luv", ["Luwian"] = "xlu", ["Luwo"] = "lwo", ["Luxembourgish"] = "lb", ["Luyana"] = "lyn", ["Lwalu"] = "lwa", ["Lwel"] = "lvl", ["Lycian"] = "xlc", ["Lydian"] = "xld", ["Lyngngam"] = "lyg", ["Lyélé"] = "lee", ["Láadan"] = "ldn", ["Láá Láá Bwamu"] = "bwj", ["Löyöp"] = "urr", ["Lü"] = "khb", ["Ma"] = "msj", ["Ma Manda"] = "skc", ["Ma'anyan"] = "mhy", ["Ma'di"] = "mhi", ["Ma'ya"] = "slz", ["Maaka"] = "mew", ["Maale"] = "mdy", ["Maasai"] = "mas", ["Maay"] = "ymm", ["Maba"] = "mqa", ["Mabaale"] = "mmz", ["Mabaan"] = "mfz", ["Mabaka Valley Kalinga"] = "kkg", ["Mabire"] = "muj", ["Maca"] = "mca", ["Macaguaje"] = "mcl", ["Macaguán"] = "mbn", ["Macanese"] = "mzs", ["Macau Pidgin Portuguese"] = "crp-mpp", ["Macedonian"] = "mk", ["Machame"] = "jmc", ["Machiguenga"] = "mcb", ["Machinere"] = "mpd", ["Machinga"] = "mvw", ["Macoris"] = "nai-mac", ["Macuna"] = "myy", ["Macushi"] = "mbc", ["Mada (Cameroon)"] = "mxu", ["Mada (Nigeria)"] = "mda", ["Madagascar Sign Language"] = "mzc", ["Madak"] = "mmx", ["Maden"] = "xmx", ["Madhi Madhi"] = "dmd", ["Madi"] = "grg", ["Madngele"] = "zml", ["Madukayang Kalinga"] = "kmd", ["Madurese"] = "mad", ["Maeng Itneg"] = "itt", ["Mafa"] = "maf", ["Mag-Anchi Ayta"] = "sgb", ["Mag-Indi Ayta"] = "blx", ["Magahat"] = "mtw", ["Magahi"] = "mag", ["Magdalena Peñasco Mixtec"] = "xtm", ["Magiyi"] = "gmg", ["Magoma"] = "gmx", ["Magori"] = "zgr", ["Maguindanao"] = "mdh", ["Magɨ"] = "gkd", ["Mahali"] = "mjx", ["Mahasu Pahari"] = "bfz", ["Mahican"] = "mjy", ["Mahongwe"] = "mhb", ["Mahou"] = "mxx", ["Maia"] = "sks", ["Maiadomu"] = "mzz", ["Maiani"] = "tnh", ["Maii"] = "mmm", ["Mailu"] = "mgu", ["Maindo"] = "cwb", ["Maipure"] = "awd-mpr", ["Mairasi"] = "zrs", ["Maisin"] = "mbq", ["Maithili"] = "mai", ["Maiwa (Indonesia)"] = "wmm", ["Maiwa (New Guinea)"] = "mti", ["Maiwala"] = "mum", ["Majang"] = "mpe", ["Majera"] = "xmj", ["Majhi"] = "mjz", ["Majhwar"] = "mmj", ["Mak (China)"] = "mkg", ["Mak (Nigeria)"] = "pbl", ["Makaa"] = "mcp", ["Makah"] = "myh", ["Makalero"] = "mjb", ["Makasae"] = "mkz", ["Makasar"] = "mak", ["Makassar Malay"] = "mfp", ["Makayam"] = "aup", ["Makhuwa"] = "vmw", ["Makhuwa-Marrevone"] = "xmc", ["Makhuwa-Meetto"] = "mgh", ["Makhuwa-Moniga"] = "mhm", ["Makhuwa-Saka"] = "xsq", ["Makhuwa-Shirima"] = "vmk", ["Maklew"] = "mgf", ["Makolkol"] = "zmh", ["Makonde"] = "kde", ["Maku"] = "xak", ["Maku'a"] = "lva", ["Makuri Naga"] = "jmn", ["Makuráp"] = "mpu", ["Makwe"] = "ymk", ["Makyan Naga"] = "umn", ["Mal"] = "mlf", ["Mal Paharia"] = "mkb", ["Mala (New Guinea)"] = "ped", ["Mala (Nigeria)"] = "ruy", ["Mala Malasar"] = "ima", ["Malaccan Creole Malay"] = "ccm", ["Malagasy"] = "mg", ["Malalamai"] = "mmt", ["Malalí"] = "sai-mal", ["Malango"] = "mln", ["Malankuravan"] = "mjo", ["Malapandaram"] = "mjp", ["Malaryan"] = "mjq", ["Malas"] = "mkr", ["Malasanga"] = "mqz", ["Malasar"] = "ymr", ["Malavedan"] = "mjr", ["Malawi Lomwe"] = "lon", ["Malawian Sign Language"] = "lws", ["Malay"] = "ms", ["Malayalam"] = "ml", ["Malayic Dayak"] = "xdy", ["Malaynon"] = "mlz", ["Malaysian Sign Language"] = "xml", ["Malba Birifor"] = "bfo", ["Male"] = "mdc", ["Malecite-Passamaquoddy"] = "pqm", ["Maleng"] = "pkt", ["Maleu-Kilenge"] = "mgl", ["Malfaxal"] = "mlx", ["Malgana"] = "vml", ["Malgbe"] = "mxf", ["Mali"] = "gcc", ["Malibu"] = "sai-mlb", ["Malila"] = "mgq", ["Malimba"] = "mzd", ["Malimpung"] = "mli", ["Malinaltepec Tlapanec"] = "tcf", ["Malol"] = "mbk", ["Maltese"] = "mt", ["Maltese Sign Language"] = "mdl", ["Malua Bay"] = "mll", ["Malvi"] = "mup", ["Maléku Jaíka"] = "gut", ["Mam"] = "mam", ["Mama"] = "mma", ["Mamaa"] = "mhf", ["Mamaindé"] = "wmd", ["Mamanwa"] = "mmn", ["Mamara Senoufo"] = "myk", ["Mamasa"] = "mqj", ["Mambae"] = "mgm", ["Mambai"] = "mcs", ["Mamboru"] = "mvd", ["Mambwe-Lungu"] = "mgr", ["Mampruli"] = "maw", ["Mamuju"] = "mqx", ["Mamulique"] = "emm", ["Mamusi"] = "kdf", ["Mamvu"] = "mdi", ["Man Met"] = "mml", ["Manado Malay"] = "xmm", ["Manam"] = "mva", ["Manambu"] = "mle", ["Manangba"] = "nmm", ["Manangkari"] = "znk", ["Manao"] = "awd-man", ["Manchu"] = "mnc", ["Manda (Australia)"] = "zma", ["Manda (India)"] = "mha", ["Manda (Tanzania)"] = "mgs", ["Mandahuaca"] = "mht", ["Mandaic"] = "mid", ["Mandailing Batak"] = "btm", ["Mandalorian"] = "art-man", ["Mandan"] = "mhq", ["Mandandanyi"] = "zmk", ["Mandar"] = "mdr", ["Mandara"] = "tbf", ["Mandari"] = "mqu", ["Mandarin"] = "cmn", ["Mandeali"] = "mjl", ["Mander"] = "mqr", ["Mandingo"] = "man", ["Mandinka"] = "mnk", ["Mandjak"] = "mfv", ["Mandobo Atas"] = "aax", ["Mandobo Bawah"] = "bwp", ["Manem"] = "jet", ["Mang"] = "zng", ["Mangala"] = "mem", ["Mangarayi"] = "mpc", ["Mangarevan"] = "mrv", ["Mangas"] = "zns", ["Mangayat"] = "myj", ["Mangbetu"] = "mdj", ["Mangbutu"] = "mdk", ["Mangerr"] = "zme", ["Mangga Buang"] = "mmo", ["Manggarai"] = "mqy", ["Mangghuer"] = "mjg-mgr", ["Mango"] = "mge", ["Mangole"] = "mqc", ["Mangseng"] = "mbh", ["Manigri-Kambolé Ede Nago"] = "xkb", ["Manikion"] = "mnx", ["Manipa"] = "mqp", ["Manipuri"] = "mni", ["Mankanya"] = "knf", ["Mankiyali"] = "nlm", ["Manna-Dora"] = "mju", ["Mannan"] = "mjv", ["Mano"] = "mev", ["Manombai"] = "woo", ["Mansaka"] = "msk", ["Mansoanka"] = "msw", ["Manta"] = "myg", ["Mantsi"] = "nty", ["Manumanaw Karen"] = "kxf", ["Manus Koro"] = "kxr", ["Manusela"] = "wha", ["Manx"] = "gv", ["Manya"] = "mzj", ["Manyawa"] = "mny", ["Manza"] = "mzv", ["Mao Naga"] = "nbi", ["Maonan"] = "mmd", ["Maore Comorian"] = "swb", ["Maori"] = "mi", ["Mape"] = "mlh", ["Mapena"] = "mnm", ["Mapia"] = "mpy", ["Mapidian"] = "mpw", ["Mapos Buang"] = "bzh", ["Mapoyo"] = "mcg", ["Mapudungun"] = "arn", ["Mapun"] = "sjm", ["Mara"] = "mec", ["Mara Chin"] = "mrh", ["Marachi"] = "lri", ["Maraghei"] = "vmh", ["Maragus"] = "mrs", ["Maram Naga"] = "nma", ["Marama"] = "lrm", ["Maranao"] = "mrw", ["Maranungku"] = "zmr", ["Mararit"] = "mgb", ["Marathi"] = "mr", ["Maratino"] = "sai-mar", ["Marau"] = "mvr", ["Marawan"] = "awd-mar", ["Marba"] = "mpg", ["Marenje"] = "vmr", ["Marfa"] = "mvu", ["Margany"] = "zmc", ["Marghi South"] = "mfm", ["Margi"] = "mrt", ["Maria"] = "mds", ["Mariaté"] = "awd-mrt", ["Maricopa"] = "mrc", ["Maridan"] = "zmd", ["Maridjabin"] = "zmj", ["Marik"] = "dad", ["Marimanindji"] = "zmm", ["Marind"] = "mrz", ["Maring"] = "mbw", ["Maring Naga"] = "nng", ["Maringarr"] = "zmt", ["Mariri"] = "mqi", ["Maritime Sign Language"] = "nsr", ["Maritsauá"] = "msp", ["Mariupol Greek"] = "grk-mar", ["Mariyedi"] = "zmy", ["Marka"] = "rkm", ["Markweeta"] = "enb", ["Marma"] = "rmz", ["Maroon Spirit Language"] = "crp-mar", ["Marovo"] = "mvo", ["Marrgu"] = "mhg", ["Marriammu"] = "xru", ["Marrithiyel"] = "mfr", ["Marrucinian"] = "umc", ["Marshallese"] = "mh", ["Marsian"] = "ims", ["Martha's Vineyard Sign Language"] = "mre", ["Marti Ke"] = "zmg", ["Martu Wangka"] = "mpj", ["Martuthunira"] = "vma", ["Marwari"] = "mwr", ["Marúbo"] = "mzr", ["Masaba"] = "myx", ["Masadiit Itneg"] = "tis", ["Masakará"] = "sai-msk", ["Masalit"] = "mls", ["Masana"] = "mcn", ["Masbate Sorsogon"] = "bks", ["Masbatenyo"] = "msb", ["Mashco Piro"] = "cuj", ["Mashi"] = "mho", ["Masimasi"] = "ism", ["Masiwang"] = "bnf", ["Maskelynes"] = "klv", ["Maslam"] = "msv", ["Masmaje"] = "mes", ["Massachusett"] = "wam", ["Massalat"] = "mdg", ["Massep"] = "mvs", ["Matagalpa"] = "mtn", ["Matal"] = "mfh", ["Matanawi"] = "sai-mat", ["Matbat"] = "xmt", ["Matengo"] = "mgv", ["Matepi"] = "mqe", ["Matigsalug Manobo"] = "mbt", ["Matipuhy"] = "mzo", ["Matlatzinca"] = "mat", ["Mato"] = "met", ["Mato Grosso Arára"] = "axg", ["Mator"] = "mtm", ["Matsés"] = "mcf", ["Mattole"] = "mvb", ["Matukar"] = "mjk", ["Matumbi"] = "mgw", ["Matya Samo"] = "stj", ["Matís"] = "mpq", ["Maung"] = "mph", ["Mauritian Creole"] = "mfe", ["Mauritian Sign Language"] = "lsy", ["Mauwake"] = "mhl", ["Mav̋ea"] = "mkv", ["Mawa"] = "mcw", ["Mawak"] = "mjj", ["Mawan"] = "mcz", ["Mawayana"] = "mzx", ["Mawchi"] = "mke", ["Mawes"] = "mgk", ["Maxakalí"] = "mbl", ["Maxi Gbe"] = "mxl", ["Maya Samo"] = "sym", ["Mayaguduna"] = "xmy", ["Mayangna"] = "yan", ["Mayawali"] = "yxa", ["Maybrat"] = "ayz", ["Mayeka"] = "myc", ["Mayi-Thakurti"] = "xyt", ["Maykulan"] = "mnt", ["Maynas"] = "sai-mys", ["Mayo"] = "mfy", ["Mayogo"] = "mdm", ["Mayoyao Ifugao"] = "ifu", ["Mazagway"] = "dkx", ["Mazaltepec Zapotec"] = "zpy", ["Mazanderani"] = "mzn", ["Mazatlán Mazatec"] = "vmz", ["Mazatlán Mixe"] = "mzl", ["Mba"] = "mfc", ["Mbabaram"] = "vmb", ["Mbala"] = "mdp", ["Mbalanhu"] = "lnb", ["Mbandja"] = "zmz", ["Mbangala"] = "mxg", ["Mbangi"] = "mgn", ["Mbangwe"] = "zmn", ["Mbara (Australia)"] = "mvl", ["Mbara (Chad)"] = "mpk", ["Mbariman-Gudhinma"] = "zmv", ["Mbati"] = "mdn", ["Mbato"] = "gwa", ["Mbay"] = "myb", ["Mbe"] = "mfo", ["Mbe'"] = "mtk", ["Mbelime"] = "mql", ["Mbere"] = "mdt", ["Mbesa"] = "zms", ["Mbiywom"] = "aus-mbi", ["Mbo (Cameroon)"] = "mbo", ["Mbo (Congo)"] = "zmw", ["Mboi"] = "moi", ["Mboko"] = "mdu", ["Mbole"] = "mdq", ["Mbonga"] = "xmb", ["Mbongno"] = "bgu", ["Mbosi"] = "mdw", ["Mbowe"] = "mxo", ["Mbre"] = "mka", ["Mbu'"] = "muc", ["Mbudum"] = "xmd", ["Mbugu"] = "mhd", ["Mbugwe"] = "mgz", ["Mbuko"] = "mqb", ["Mbukushu"] = "mhw", ["Mbula"] = "mna", ["Mbula-Bwazza"] = "mbu", ["Mbule"] = "mlb", ["Mbulungish"] = "mbv", ["Mbum"] = "mdd", ["Mbunda"] = "mck", ["Mbunga"] = "mgy", ["Mburku"] = "bbt", ["Mbuun"] = "zmp", ["Mbwela"] = "mfu", ["Mbyá Guaraní"] = "gun", ["Me'en"] = "mym", ["Mea"] = "meg", ["Mebu"] = "mjn", ["Mecayapan Nahuatl"] = "nhx", ["Medebur"] = "mjm", ["Medefaidrin"] = "dmf", ["Media Lengua"] = "mue", ["Mednyj Aleut"] = "mud", ["Medumba"] = "byv", ["Mefele"] = "mfj", ["Megam"] = "mef", ["Megleno-Romanian"] = "ruq", ["Mehek"] = "nux", ["Mehináku"] = "mmh", ["Mehri"] = "gdq", ["Mekeo"] = "mek", ["Mekmek"] = "mvk", ["Mekwei"] = "msf", ["Mekéns"] = "skf", ["Mel-Khaonh"] = "hkn", ["Mele-Fila"] = "mxe", ["Melo"] = "mfx", ["Melpa"] = "med", ["Memoni"] = "mby", ["Mendalam Kayan"] = "xkd", ["Mendankwe-Nkwen"] = "mfd", ["Mende"] = "men", ["Mengaka"] = "xmg", ["Mengen"] = "mee", ["Mengisa"] = "leo", ["Menien"] = "sai-men", ["Menka"] = "mea", ["Menominee"] = "mez", ["Mentawai"] = "mwv", ["Menya"] = "mcr", ["Meoswar"] = "mvx", ["Mer"] = "mnu", ["Meramera"] = "mxm", ["Merei"] = "lmb", ["Merey"] = "meq", ["Meriam"] = "ulk", ["Meroitic"] = "xmr", ["Meru"] = "mer", ["Mesaka"] = "iyo", ["Mese"] = "mci", ["Mesme"] = "zim", ["Mesmes"] = "mys", ["Mesqan"] = "mvz", ["Messapic"] = "cms", ["Meta'"] = "mgo", ["Metlatónoc Mixtec"] = "mxv", ["Mewari"] = "mtr", ["Mewati"] = "wtm", ["Mexican Sign Language"] = "mfs", ["Meyah"] = "mej", ["Mezontla Popoloca"] = "pbe", ["Mezquital Otomi"] = "ote", ["Meänkieli"] = "fit", ["Mfinu"] = "zmf", ["Mfumte"] = "nfu", ["Mgbo"] = "gmz", ["Mi'kmaq"] = "mic", ["Miami"] = "mia", ["Mian"] = "mpt", ["Miani"] = "pla", ["Micha"] = "yiq", ["Michif"] = "crg", ["Michigamea"] = "cmm", ["Michoacán Mazahua"] = "mmc", ["Michoacán Nahuatl"] = "ncl", ["Mid Grand Valley Dani"] = "dnt", ["Mid-Southern Banda"] = "bjo", ["Middle Armenian"] = "axm", ["Middle Assamese"] = "inc-mas", ["Middle Bengali"] = "inc-mbn", ["Middle Breton"] = "xbm", ["Middle Chinese"] = "ltc", ["Middle Cornish"] = "cnx", ["Middle Dutch"] = "dum", ["Middle English"] = "enm", ["Middle French"] = "frm", ["Middle Gujarati"] = "inc-mgu", ["Middle High German"] = "gmh", ["Middle Irish"] = "mga", ["Middle Kannada"] = "dra-mkn", ["Middle Khmer"] = "xhm", ["Middle Korean"] = "okm", ["Middle Low German"] = "gml", ["Middle Median"] = "xme-mid", ["Middle Mon"] = "mkh-mmn", ["Middle Mongol"] = "xng", ["Middle Newar"] = "nwx", ["Middle Norwegian"] = "gmq-mno", ["Middle Odia"] = "inc-mor", ["Middle Persian"] = "pal", ["Middle Scots"] = "gmw-msc", ["Middle Vietnamese"] = "mkh-mvi", ["Middle Watut"] = "mpl", ["Middle Welsh"] = "wlm", ["Midob"] = "mei", ["Migaama"] = "mmy", ["Migabac"] = "mpp", ["Miji"] = "sjl", ["Miju"] = "mxj", ["Mikasuki"] = "mik", ["Milang"] = "tbq-mil", ["Mili"] = "ymh", ["Millcayac"] = "sai-mil", ["Miltu"] = "mlj", ["Miluk"] = "iml", ["Milyan"] = "imy", ["Mimi of Decorse"] = "mis-mmd", ["Mimi of Nachtigal"] = "mis-mmn", ["Min Nan"] = "nan", ["Mina"] = "hna", ["Minaean"] = "inm", ["Minang"] = "xrg", ["Minangkabau"] = "min", ["Minanibai"] = "mcv", ["Minaveha"] = "mvn", ["Minderico"] = "drc", ["Mindiri"] = "mpn", ["Mingang Doso"] = "mko", ["Mingo"] = "iro-min", ["Mingrelian"] = "xmf", ["Minica Huitoto"] = "hto", ["Minidien"] = "wii", ["Minigir"] = "vmg", ["Minjungbal"] = "xjb", ["Minkin"] = "xxm", ["Minoan"] = "omn", ["Minokok"] = "mqq", ["Minriq"] = "mnq", ["Mintil"] = "mzt", ["Mirandese"] = "mwl", ["Miraya Bikol"] = "rbl", ["Mire"] = "mvh", ["Mirgan"] = "zrg", ["Miriti"] = "mmv", ["Miriwoong Sign Language"] = "rsm", ["Miriwung"] = "mep", ["Mirpur Panjabi"] = "pmu", ["Misantla Totonac"] = "tlc", ["Miship"] = "mjs", ["Misima-Paneati"] = "mpx", ["Mising"] = "mrg", ["Miskito"] = "miq", ["Mitla Zapotec"] = "zaw", ["Mitlatongo Mixtec"] = "vmm", ["Mittu"] = "mwu", ["Mituku"] = "zmq", ["Miu"] = "mpo", ["Miwa"] = "vmi", ["Mixed Great Andamanese"] = "gac", ["Mixifore"] = "mfg", ["Mixtepec Mixtec"] = "mix", ["Mixtepec Zapotec"] = "zpm", ["Miya"] = "mkf", ["Miyako"] = "mvi", ["Miyobe"] = "soy", ["Mizo"] = "lus", ["Mlabri"] = "mra", ["Mlahsö"] = "lhs", ["Mlap"] = "kja", ["Mlomp"] = "mlo", ["Mmaala"] = "mmu", ["Mmani"] = "buy", ["Mmen"] = "bfm", ["Mo"] = "wkd", ["Mo'da"] = "gbn", ["Moabite"] = "obm", ["Moba"] = "mfq", ["Mobilian"] = "mod", ["Mobumrin Aizi"] = "ahm", ["Mocana"] = "sai-mcn", ["Mochi"] = "old", ["Mochica"] = "omc", ["Mocho"] = "mhc", ["Mocoví"] = "moc", ["Modang"] = "mxd", ["Modole"] = "mqo", ["Moere"] = "mvq", ["Mofu-Gudur"] = "mif", ["Mogholi"] = "mhj", ["Mogum"] = "mou", ["Mohawk"] = "moh", ["Mohegan-Pequot"] = "xpq", ["Moi (Congo)"] = "mow", ["Moi (Indonesia)"] = "mxn", ["Moikodi"] = "mkp", ["Moingi"] = "mwz", ["Mojave"] = "mov", ["Moji"] = "ymi", ["Mok"] = "mqt", ["Moken"] = "mwt", ["Mokerang"] = "mft", ["Mokilese"] = "mkj", ["Moklen"] = "mkm", ["Mokole"] = "mkl", ["Mokpwe"] = "bri", ["Moksha"] = "mdf", ["Molale"] = "mbe", ["Molbog"] = "pwm", ["Moldova Sign Language"] = "vsi", ["Molengue"] = "bxc", ["Molima"] = "mox", ["Molmo One"] = "aun", ["Molo"] = "zmo", ["Molof"] = "msl", ["Moloko"] = "mlw", ["Mom Jango"] = "ver", ["Moma"] = "myl", ["Momare"] = "msz", ["Mombo Dogon"] = "dmb", ["Mombum"] = "mso", ["Momina"] = "mmb", ["Momuna"] = "mqf", ["Mon"] = "mnw", ["Monastic Sign Language"] = "mzg", ["Mondropolon"] = "npn", ["Mondé"] = "mnd", ["Mongghul"] = "mjg-mgl", ["Mongo"] = "lol", ["Mongol"] = "mgt", ["Mongolian"] = "mn", ["Mongolian Sign Language"] = "msr", ["Mongondow"] = "mog", ["Moni"] = "mnz", ["Monimbo"] = "mom", ["Mono (California)"] = "mnr", ["Mono (Cameroon)"] = "mru", ["Mono (Congo)"] = "mnh", ["Monom"] = "moo", ["Monsang Naga"] = "nmh", ["Montagnais"] = "moe", ["Montana Salish"] = "fla", ["Montol"] = "mtl", ["Monumbo"] = "mxk", ["Monzombo"] = "moj", ["Moo"] = "gwg", ["Moore"] = "mos", ["Moose Cree"] = "crm", ["Mopan Maya"] = "mop", ["Mor (Austronesian)"] = "mhz", ["Mor (Papuan)"] = "moq", ["Moraid"] = "msg", ["Moran"] = "tbq-mor", ["Morawa"] = "mze", ["Morelos Nahuatl"] = "nhm", ["Morerebi"] = "xmo", ["Moresada"] = "msx", ["Mori Atas"] = "mzq", ["Mori Bawah"] = "xmz", ["Morigi"] = "mdb", ["Moro"] = "mor", ["Moroccan Amazigh"] = "zgh", ["Moroccan Arabic"] = "ary", ["Moroccan Sign Language"] = "xms", ["Morokodo"] = "mgc", ["Morom"] = "bdo", ["Moronene"] = "mqn", ["Morori"] = "mok", ["Morouas"] = "mrp", ["Mortlockese"] = "mrl", ["Moru"] = "mgd", ["Mosimo"] = "mqv", ["Moskona"] = "mtj", ["Mota"] = "mtt", ["Motembo"] = "tmv", ["Motu"] = "meu", ["Mouk-Aria"] = "mwh", ["Mount Iraya Agta"] = "atl", ["Mount Iriga Agta"] = "agz", ["Mountain Koiari"] = "kpx", ["Mouwase"] = "jmw", ["Movima"] = "mzp", ["Moyadan Itneg"] = "ity", ["Moyon Naga"] = "nmo", ["Mozambican Sign Language"] = "mzy", ["Mozarabic"] = "mxi", ["Mpade"] = "mpi", ["Mpalitjanh"] = "xpj", ["Mpi"] = "mpz", ["Mpiemo"] = "mcx", ["Mpiin"] = "bnt-mpi", ["Mpinda"] = "pnd", ["Mpongmpong"] = "mgg", ["Mpoto"] = "mpa", ["Mpotovoro"] = "mvt", ["Mpuono"] = "bnt-mpu", ["Mpur"] = "akc", ["Mro Chin"] = "cmr", ["Mru"] = "mro", ["Mser"] = "kqx", ["Muak Sa-aak"] = "ukk", ["Mualang"] = "mtd", ["Mubami"] = "tsx", ["Mubi"] = "mub", ["Mucuchí"] = "sai-muc", ["Muda"] = "ymd", ["Mudburra"] = "dmw", ["Mudu Koraga"] = "vmd", ["Muduapa"] = "wiv", ["Muduga"] = "udg", ["Muellama"] = "sai-mue", ["Mufian"] = "aoj", ["Muher"] = "sem-mhr", ["Muinane"] = "bmr", ["Mukha-Dora"] = "mmk", ["Mukulu"] = "moz", ["Mulaha"] = "mfw", ["Mulam"] = "mlm", ["Mulao"] = "giu", ["Mullu Kurumba"] = "kpb", ["Mullukmulluk"] = "mpb", ["Muluridyi"] = "vmu", ["Mum"] = "kqa", ["Mumuye"] = "mzm", ["Muna"] = "mnb", ["Munda"] = "unx", ["Mundabli"] = "boe", ["Mundang"] = "mua", ["Mundani"] = "mnf", ["Mundari"] = "unr", ["Mundat"] = "mmf", ["Mundolinco"] = "art-mun", ["Mundurukú"] = "myu", ["Mungaka"] = "mhk", ["Mungbam"] = "mij", ["Munggui"] = "mth", ["Mungkip"] = "mpv", ["Muniche"] = "myr", ["Munit"] = "mtc", ["Munji"] = "mnj", ["Munsee"] = "umu", ["Muong"] = "mtq", ["Mur Pano"] = "tkv", ["Muratayak"] = "asx", ["Murik (Malaysia)"] = "mxr", ["Murik (New Guinea)"] = "mtf", ["Murkim"] = "rmh", ["Murle"] = "mur", ["Murrinh-Patha"] = "mwf", ["Mursi"] = "muz", ["Murui Huitoto"] = "huu", ["Murupi"] = "mqw", ["Muruwari"] = "zmu", ["Musan"] = "mmp", ["Musar"] = "mmi", ["Musasa"] = "smm", ["Musey"] = "mse", ["Musgu"] = "mug", ["Musi"] = "mui", ["Muskum"] = "mje", ["Musom"] = "msu", ["Mussau-Emira"] = "emi", ["Muthuvan"] = "muv", ["Mutu"] = "tuc", ["Muya"] = "mvm", ["Muyang"] = "muy", ["Muyuw"] = "myw", ["Muzi"] = "ymz", ["Muzo"] = "sai-muz", ["Mvanip"] = "mcj", ["Mvuba"] = "mxh", ["Mwaghavul"] = "sur", ["Mwali Comorian"] = "wlc", ["Mwan"] = "moa", ["Mwani"] = "wmw", ["Mwatebu"] = "mwa", ["Mwera"] = "mwe", ["Mwerlap"] = "mrm", ["Mwimbi-Muthambi"] = "mws", ["Mwotlap"] = "mlv", ["Mycenaean Greek"] = "gmy", ["Myene"] = "mye", ["Mysian"] = "yms", ["Mzieme Naga"] = "nme", ["Mághdì"] = "gmd", ["Mòcheno"] = "mhn", ["Mün Chin"] = "mwq", ["Mündü"] = "muh", ["Mạ"] = "cma", ["N'Ko"] = "nqo", ["Na"] = "nbt", ["Na'vi"] = "art-nav", ["Naaba"] = "nao", ["Naba"] = "mne", ["Nabak"] = "naf", ["Nabi"] = "mty", ["Nachering"] = "ncd", ["Nadruvian"] = "ndf", ["Nadëb"] = "mbj", ["Nafaanra"] = "nfr", ["Nafi"] = "srf", ["Nafri"] = "nxx", ["Naga Pidgin"] = "nag", ["Nagarchal"] = "nbg", ["Nage"] = "nxe", ["Nagtipunan Agta"] = "phi-nag", ["Nagu"] = "ngr", ["Nagumi"] = "ngv", ["Nahali"] = "nlx", ["Nahari"] = "nhh", ["Nahavaq"] = "sns", ["Nahuatl"] = "nah", ["Nai"] = "bio", ["Najdi Arabic"] = "ars", ["Naka'ela"] = "nae", ["Nakai"] = "nkj", ["Nakame"] = "nib", ["Nakanai"] = "nak", ["Nakara"] = "nck", ["Nake"] = "nbk", ["Naki"] = "mff", ["Nakwi"] = "nax", ["Nalca"] = "nlc", ["Nali"] = "nss", ["Nalik"] = "nal", ["Nalu"] = "naj", ["Nalögo"] = "nlz", ["Namakura"] = "nmk", ["Namat"] = "nkm", ["Nambikwara"] = "nab", ["Nambo"] = "ncm", ["Nambya"] = "nmq", ["Namia"] = "nnm", ["Namiae"] = "nvm", ["Namibian Sign Language"] = "nbs", ["Namla"] = "naa", ["Namo"] = "mxw", ["Namonuito"] = "nmt", ["Namosi-Naitasiri-Serua"] = "bwb", ["Namuyi"] = "nmy", ["Nanai"] = "gld", ["Nancere"] = "nnc", ["Nande"] = "nnb", ["Nandi"] = "niq", ["Nanerigé Sénoufo"] = "sen", ["Nanga Dama Dogon"] = "nzz", ["Nankina"] = "nnk", ["Nanti"] = "cox", ["Nanticoke"] = "nnt", ["Nanubae"] = "afk", ["Naolan"] = "nai-nao", ["Napu"] = "npy", ["Nar Phu"] = "npa", ["Nara"] = "nrb", ["Narak"] = "nac", ["Narango"] = "nrg", ["Narau"] = "nxu", ["Narim"] = "loh", ["Naro"] = "nhr", ["Narom"] = "nrm", ["Narragansett"] = "xnt", ["Narua"] = "nru", ["Narungga"] = "nnr", ["Naruo"] = "ylo", ["Nasal"] = "nsy", ["Nasarian"] = "nvh", ["Nasioi"] = "nas", ["Naskapi"] = "nsk", ["Nasu"] = "ywq", ["Natagaimas"] = "nts", ["Natchez"] = "ncz", ["Nateni"] = "ntm", ["Nathembo"] = "nte", ["Natioro"] = "nti", ["Natú"] = "sai-nat", ["Natügu"] = "ntu", ["Nauete"] = "nxa", ["Naukanski"] = "ynk", ["Nauna"] = "ncn", ["Nauo"] = "nwo", ["Nauruan"] = "na", ["Navajo"] = "nv", ["Navarro-Aragonese"] = "roa-oan", ["Navut"] = "nsw", ["Nawaru"] = "nwr", ["Nawathinehena"] = "nwa", ["Nawdm"] = "nmz", ["Nawuri"] = "naw", ["Naxi"] = "nxq", ["Nayi"] = "noz", ["Ncane"] = "ncr", ["Nchumbulu"] = "nlu", ["Nda'nda'"] = "nnz", ["Ndai"] = "gke", ["Ndaka"] = "ndk", ["Ndali"] = "ndh", ["Ndam"] = "ndm", ["Ndamba"] = "ndj", ["Ndambomo"] = "nxo", ["Ndasa"] = "nda", ["Ndau"] = "ndc", ["Nde-Gbite"] = "ned", ["Nde-Nsele-Nta"] = "ndd", ["Ndemli"] = "nml", ["Ndendeule"] = "dne", ["Ndengereko"] = "ndg", ["Nding"] = "eli", ["Ndjébbana"] = "djj", ["Ndo"] = "ndp", ["Ndobo"] = "ndw", ["Ndoe"] = "nbb", ["Ndogo"] = "ndz", ["Ndolo"] = "ndl", ["Ndom"] = "nqm", ["Ndombe"] = "ndq", ["Ndonga"] = "ng", ["Ndoola"] = "ndr", ["Ndrulo"] = "dno", ["Nduga"] = "ndx", ["Ndumu"] = "nmd", ["Ndunda"] = "nuh", ["Ndunga"] = "ndt", ["Ndut"] = "ndv", ["Ndyuka-Trio Pidgin"] = "njt", ["Ndzwani Comorian"] = "wni", ["Neapolitan"] = "nap", ["Nedebang"] = "nec", ["Nefamese"] = "nef", ["Nefusa"] = "jbn", ["Negerhollands"] = "dcr", ["Negeri Sembilan Malay"] = "zmi", ["Negidal"] = "neg", ["Nehan"] = "nsn", ["Nek"] = "nif", ["Nekgini"] = "nkg", ["Neko"] = "nej", ["Neku"] = "nek", ["Neme"] = "nex", ["Nemi"] = "nem", ["Nen"] = "nqn", ["Nend"] = "anh", ["Nengone"] = "nen", ["Neo"] = "neu", ["Nepalese Sign Language"] = "nsp", ["Nepali"] = "ne", ["Nepali Kurux"] = "kxl", ["Nete"] = "net", ["Neve'ei"] = "vnm", ["Neverver"] = "lgk", ["New Caledonian Javanese"] = "jas", ["New River Shasta"] = "nai-nrs", ["New Zealand Sign Language"] = "nzs", ["Newar"] = "new", ["Neyo"] = "ney", ["Nez Perce"] = "nez", ["Nga La"] = "hlt", ["Ngaanyatjarra"] = "ntj", ["Ngadha"] = "nxg", ["Ngadjunmaya"] = "nju", ["Ngadjuri"] = "jui", ["Ngaing"] = "nnf", ["Ngaju"] = "nij", ["Ngala"] = "nud", ["Ngalakan"] = "nig", ["Ngalkbun"] = "ngk", ["Ngalum"] = "szb", ["Ngam"] = "nmc", ["Ngamambo"] = "nbv", ["Ngambay"] = "sba", ["Ngamini"] = "nmv", ["Ngamo"] = "nbh", ["Ngan'gityemerri"] = "nam", ["Nganakarti"] = "xnk", ["Nganasan"] = "nio", ["Ngandi"] = "nid", ["Ngando (Central African Republic)"] = "ngd", ["Ngando (Congo)"] = "nxd", ["Ngandyera"] = "nne", ["Ngangam"] = "gng", ["Ngantangarra"] = "ntg", ["Nganyaywana"] = "nyx", ["Ngardi"] = "rxd", ["Ngarigu"] = "xni", ["Ngarinman"] = "nbj", ["Ngarinyin"] = "ung", ["Ngarla"] = "nrk", ["Ngarluma"] = "nrl", ["Ngarrindjeri"] = "nay", ["Ngas"] = "anc", ["Ngasa"] = "nsg", ["Ngatik Men's Creole"] = "ngm", ["Ngawn Chin"] = "cnw", ["Ngawun"] = "nxn", ["Ngazidja Comorian"] = "zdj", ["Ngbaka"] = "nga", ["Ngbaka Ma'bo"] = "nbm", ["Ngbaka Manza"] = "ngg", ["Ngbee"] = "jgb", ["Ngbinda"] = "nbd", ["Ngbundu"] = "nuu", ["Ngelima"] = "agh", ["Ngemba"] = "nge", ["Ngen of Djonkro"] = "gnj", ["Ngendelengo"] = "nql", ["Ngeq"] = "ngt", ["Ngete"] = "nnn", ["Nggem"] = "nbq", ["Nggwahyi"] = "ngx", ["Ngie"] = "ngj", ["Ngiemboon"] = "nnh", ["Ngile"] = "jle", ["Ngindo"] = "nnq", ["Ngiti"] = "niy", ["Ngiyambaa"] = "wyb", ["Ngizim"] = "ngi", ["Ngkoth"] = "aus-ngk", ["Ngkâlmpw Kanum"] = "kcd", ["Ngochang"] = "tbq-ngo", ["Ngom"] = "nra", ["Ngomba"] = "jgo", ["Ngombale"] = "nla", ["Ngombe (Central African Republic)"] = "nmj", ["Ngombe (Congo)"] = "ngc", ["Ngong"] = "nnx", ["Ngongo"] = "noq", ["Ngoni"] = "ngo", ["Ngoreme"] = "ngq", ["Ngoshie"] = "nsh", ["Ngul"] = "nlo", ["Ngulu"] = "ngp", ["Nguluwan"] = "nuw", ["Ngumbi"] = "nui", ["Ngunawal"] = "xul", ["Ngundi"] = "ndn", ["Ngundu"] = "nue", ["Ngungwel"] = "ngz", ["Ngurmbur"] = "nrx", ["Nguôn"] = "nuo", ["Ngwaba"] = "ngw", ["Ngwe"] = "nwe", ["Ngwo"] = "ngn", ["Ngäbere"] = "gym", ["Nhanda"] = "nha", ["Nheengatu"] = "yrl", ["Nhirrpi"] = "hrp", ["Nhuwala"] = "nhf", ["Nias"] = "nia", ["Nicaraguan Creole"] = "bzk", ["Nicaraguan Sign Language"] = "ncs", ["Nicola"] = "ath-nic", ["Niellim"] = "nie", ["Nigeria Mambila"] = "mzk", ["Nigerian Pidgin"] = "pcm", ["Nigerian Sign Language"] = "nsi", ["Nihali"] = "nll", ["Nii"] = "nii", ["Niksek"] = "gbe", ["Nila"] = "nil", ["Nilamba"] = "nim", ["Nimadi"] = "noe", ["Nimanbur"] = "nmp", ["Nimbari"] = "nmr", ["Nimboran"] = "nir", ["Nimi"] = "nis", ["Nimo"] = "niw", ["Nimoa"] = "nmw", ["Ninam"] = "shb", ["Nindi"] = "nxi", ["Ningera"] = "nby", ["Ninggerum"] = "nxr", ["Ningil"] = "niz", ["Ninia Yali"] = "nlk", ["Ninzo"] = "nin", ["Nipsan"] = "nps", ["Nisa"] = "njs", ["Nisenan"] = "nsz", ["Nisga'a"] = "ncg", ["Nisi"] = "yso", ["Niuafo'ou"] = "num", ["Niuatoputapu"] = "nkp", ["Niuean"] = "niu", ["Nivaclé"] = "cag", ["Nivkh"] = "niv", ["Niwer Mil"] = "hrc", ["Niya Prakrit"] = "pra-niy", ["Njalgulgule"] = "njl", ["Njebi"] = "nzb", ["Njen"] = "njj", ["Njerep"] = "njr", ["Njyem"] = "njy", ["Nkami"] = "nkq", ["Nkangala"] = "nkn", ["Nkari"] = "nkz", ["Nkem-Nkum"] = "isi", ["Nkhumbi"] = "khu", ["Nkongho"] = "nkc", ["Nkonya"] = "nko", ["Nkoroo"] = "nkx", ["Nkoya"] = "nka", ["Nkukoli"] = "nbo", ["Nkutu"] = "nkw", ["Nnam"] = "nbp", ["Nobiin"] = "fia", ["Nobonob"] = "gaw", ["Nocamán"] = "nom", ["Nocte Naga"] = "njb", ["Nogai"] = "nog", ["Noiri"] = "noi", ["Nokuku"] = "nkk", ["Nomaande"] = "lem", ["Nomane"] = "nof", ["Nomatsiguenga"] = "not", ["Nomlaki"] = "nol", ["Nomu"] = "noh", ["Nong Zhuang"] = "zhn", ["Nonuya"] = "noj", ["Nooksack"] = "nok", ["Noon"] = "snf", ["Noone"] = "nhu", ["Nootka"] = "nuk", ["Nopala Chatino"] = "cya", ["Noric"] = "nrc", ["Norman"] = "nrf", ["Norn"] = "nrn", ["Norra"] = "nrr", ["North Ambrym"] = "mmg", ["North Asmat"] = "nks", ["North Awyu"] = "yir", ["North Babar"] = "bcd", ["North Boma"] = "boh", ["North Central Mixe"] = "neq", ["North Efate"] = "llp", ["North Fali"] = "fll", ["North Frisian"] = "frr", ["North Giziga"] = "gis", ["North Levantine Arabic"] = "apc", ["North Marquesan"] = "mrq", ["North Mesopotamian Arabic"] = "ayp", ["North Mofu"] = "mfk", ["North Moluccan Malay"] = "max", ["North Muyu"] = "kti", ["North Nuaulu"] = "nni", ["North Picene"] = "nrp", ["North Slavey"] = "scs", ["North Tairora"] = "tbg", ["North Tanna"] = "tnn", ["North Wahgi"] = "whg", ["North Watut"] = "una", ["Northeast Kiwai"] = "kiw", ["Northeast Maidu"] = "nmu", ["Northeast Malakula"] = "upv", ["Northeast Pashayi"] = "aee", ["Northeastern Dinka"] = "dip", ["Northeastern Pomo"] = "pef", ["Northern Alta"] = "aqn", ["Northern Altai"] = "atv", ["Northern Amami Ōshima"] = "ryn", ["Northern Bontoc"] = "rbk", ["Northern Catanduanes Bicolano"] = "cts", ["Northern Dagara"] = "dgi", ["Northern East Cree"] = "crl", ["Northern Emberá"] = "emp", ["Northern Ghale"] = "ghh", ["Northern Grebo"] = "gbo", ["Northern Guiyang Hmong"] = "huj", ["Northern Haida"] = "hdn", ["Northern Hindko"] = "hno", ["Northern Huishui Hmong"] = "hmi", ["Northern Kalapuya"] = "nrt", ["Northern Kam"] = "doc", ["Northern Kankanay"] = "xnn", ["Northern Khanty"] = "kca-nor", ["Northern Khmer"] = "kxm", ["Northern Kissi"] = "kqs", ["Northern Kurdish"] = "kmr", ["Northern Lorung"] = "lbr", ["Northern Luri"] = "lrc", ["Northern Mansi"] = "mns-nor", ["Northern Mashan Hmong"] = "hmp", ["Northern Min"] = "mnp", ["Northern Muji"] = "ymx", ["Northern Ndebele"] = "nd", ["Northern Ngbandi"] = "ngb", ["Northern Nisu"] = "yiv", ["Northern Nuni"] = "nuv", ["Northern Oaxaca Nahuatl"] = "nhy", ["Northern Ohlone"] = "cst", ["Northern One"] = "onr", ["Northern Paiute"] = "pao", ["Northern Pame"] = "pmq", ["Northern Pinghua"] = "cnp", ["Northern Pomo"] = "pej", ["Northern Puebla Nahuatl"] = "ncj", ["Northern Pumi"] = "pmi", ["Northern Pwo"] = "pww", ["Northern Qiandong Miao"] = "hea", ["Northern Qiang"] = "cng", ["Northern Rengma Naga"] = "nnl", ["Northern Roglai"] = "rog", ["Northern Saharan Berber"] = "mzb", ["Northern Sami"] = "se", ["Northern Selkup"] = "sel-nor", ["Northern Sierra Miwok"] = "nsq", ["Northern Sotho"] = "nso", ["Northern Subanen"] = "stb", ["Northern Tarahumara"] = "thh", ["Northern Tepehuan"] = "ntp", ["Northern Thai"] = "nod", ["Northern Tidung"] = "ntd", ["Northern Tlaxiaco Mixtec"] = "xtn", ["Northern Toussian"] = "tsp", ["Northern Tujia"] = "tji", ["Northern Tutchone"] = "ttm", ["Northern Valley Yokuts"] = "yok-nvy", ["Northern Yukaghir"] = "ykg", ["Northwest Gbaya"] = "gya", ["Northwest Maidu"] = "mjd", ["Northwest Oaxaca Mixtec"] = "mxa", ["Northwest Pashayi"] = "glh", ["Northwestern Dinka"] = "diw", ["Northwestern Fars"] = "faz", ["Northwestern Ojibwa"] = "ojb", ["Northwestern Tamang"] = "tmk", ["Norwegian"] = "no", ["Norwegian Bokmål"] = "nb", ["Norwegian Nynorsk"] = "nn", ["Norwegian Sign Language"] = "nsl", ["Notre"] = "bly", ["Notsi"] = "ncf", ["Nottoway"] = "ntw", ["Nottoway-Meherrin"] = "nwy", ["Novial"] = "nov", ["Noy"] = "noy", ["Nsari"] = "asj", ["Nsenga"] = "nse", ["Nshi"] = "nsc", ["Nsong"] = "soo", ["Nsongo"] = "nsx", ["Ntcham"] = "bud", ["Ntomba"] = "nto", ["Ntra'ngith"] = "dgt", ["Nubaca"] = "baf", ["Nubi"] = "kcn", ["Nuer"] = "nus", ["Nuguria"] = "nur", ["Nuk"] = "noc", ["Nukak Makú"] = "mbr", ["Nukna"] = "klt", ["Nukuini"] = "nuc", ["Nukumanu"] = "nuq", ["Nukunu"] = "nnv", ["Nukunul"] = "xnu", ["Nukuoro"] = "nkr", ["Numana"] = "nbr", ["Numanggang"] = "nop", ["Numbami"] = "sij", ["Nume"] = "tgs", ["Numidian"] = "nxm", ["Numèè"] = "kdk", ["Nungali"] = "nug", ["Nunggubuyu"] = "nuy", ["Nungon"] = "paa-nun", ["Nungu"] = "rin", ["Nuosu"] = "ii", ["Nupbikha"] = "npb", ["Nupe"] = "nup", ["Nusa Laut"] = "nul", ["Nusu"] = "nuf", ["Nutabe"] = "cba-nut", ["Nyabwa"] = "nwb", ["Nyah Kur"] = "cbn", ["Nyaheun"] = "nev", ["Nyakyusa"] = "nyy", ["Nyali"] = "nlj", ["Nyam"] = "nmi", ["Nyamal"] = "nly", ["Nyambo"] = "now", ["Nyamusa-Molo"] = "nwm", ["Nyamwanga"] = "mwn", ["Nyamwezi"] = "nym", ["Nyaneka"] = "nyk", ["Nyang'i"] = "nyp", ["Nyanga (Congo)"] = "nyj", ["Nyanga (Togo)"] = "ayg", ["Nyanga-li"] = "nyc", ["Nyangatom"] = "nnj", ["Nyangbo"] = "nyb", ["Nyangga"] = "nny", ["Nyangumarta"] = "nna", ["Nyankole"] = "nyn", ["Nyarafolo Senoufo"] = "sev", ["Nyaturu"] = "rim", ["Nyaw"] = "nyw", ["Nyawaygi"] = "nyt", ["Nyelâyu"] = "yly", ["Nyemba"] = "nba", ["Nyengo"] = "nye", ["Nyenkha"] = "neh", ["Nyeu"] = "nyl", ["Nyigina"] = "nyh", ["Nyiha"] = "nih", ["Nyika"] = "nkt", ["Nyimang"] = "nyi", ["Nyindrou"] = "lid", ["Nyindu"] = "nyg", ["Nyishi"] = "njz", ["Nyiyaparli"] = "xny", ["Nyokon"] = "nvo", ["Nyole (Kenya)"] = "nyd", ["Nyole (Uganda)"] = "nuj", ["Nyong"] = "muo", ["Nyoro"] = "nyo", ["Nyulnyul"] = "nyv", ["Nyunga"] = "nys", ["Nyungwe"] = "nyu", ["Nzadi"] = "nzd", ["Nzakambay"] = "nzy", ["Nzakara"] = "nzk", ["Nzanyi"] = "nja", ["Nzima"] = "nzi", ["Ná-Meo"] = "neo", ["Nùng"] = "nut", ["Nüpode Huitoto"] = "hux", ["Nǀuu"] = "ngh", ["O'chi'chi'"] = "xoc", ["O'du"] = "tyh", ["O'odham"] = "ood", ["Obanliku"] = "bzy", ["Obispeño"] = "obi", ["Oblo"] = "obl", ["Obo Manobo"] = "obo", ["Obokuitai"] = "afz", ["Obolo"] = "ann", ["Obulom"] = "obu", ["Ocaina"] = "oca", ["Occitan"] = "oc", ["Ocotepec Mixtec"] = "mie", ["Ocotlán Zapotec"] = "zac", ["Od"] = "odk", ["Odia"] = "or", ["Odiai"] = "bhf", ["Odoodee"] = "kkc", ["Odual"] = "odu", ["Odut"] = "oda", ["Ofayé"] = "opy", ["Ofo"] = "ofo", ["Ogbah"] = "ogc", ["Ogbia"] = "ogb", ["Ogbogolo"] = "ogg", ["Ogbronuagum"] = "ogu", ["Ogea"] = "eri", ["Oirata"] = "oia", ["Ojibwe"] = "oj", ["Ojitlán Chinantec"] = "chj", ["Okanagan"] = "oka", ["Okiek"] = "oki", ["Okinawan"] = "ryu", ["Okinoerabu"] = "okn", ["Oko-Eni-Osayen"] = "oks", ["Oko-Juwoi"] = "okj", ["Okobo"] = "okb", ["Okodia"] = "okd", ["Okolod"] = "kqv", ["Okpamheri"] = "opa", ["Okpe (Northwestern Edo)"] = "okx", ["Okpe (Southwestern Edo)"] = "oke", ["Okpela"] = "atg", ["Oksapmin"] = "opm", ["Oku"] = "oku", ["Okwanuchu"] = "nai-okw", ["Old Anatolian Turkish"] = "trk-oat", ["Old Armenian"] = "xcl", ["Old Avar"] = "oav", ["Old Awadhi"] = "inc-oaw", ["Old Bengali"] = "inc-obn", ["Old Breton"] = "obt", ["Old Burmese"] = "obr", ["Old Catalan"] = "roa-oca", ["Old Chinese"] = "och", ["Old Church Slavonic"] = "cu", ["Old Cornish"] = "oco", ["Old Czech"] = "zlw-ocs", ["Old Danish"] = "gmq-oda", ["Old Dutch"] = "odt", ["Old East Slavic"] = "orv", ["Old English"] = "ang", ["Old French"] = "fro", ["Old Frisian"] = "ofs", ["Old Galician-Portuguese"] = "roa-opt", ["Old Georgian"] = "oge", ["Old Gujarati"] = "inc-ogu", ["Old Gutnish"] = "gmq-ogt", ["Old High German"] = "goh", ["Old Hindi"] = "inc-ohi", ["Old Hungarian"] = "ohu", ["Old Irish"] = "sga", ["Old Japanese"] = "ojp", ["Old Javanese"] = "kaw", ["Old Kannada"] = "dra-okn", ["Old Kentish Sign Language"] = "okl", ["Old Khmer"] = "okz", ["Old Komi"] = "urj-koo", ["Old Korean"] = "oko", ["Old Leonese"] = "roa-ole", ["Old Lithuanian"] = "olt", ["Old Manipuri"] = "omp", ["Old Marathi"] = "omr", ["Old Median"] = "xme-old", ["Old Mon"] = "omx", ["Old Norse"] = "non", ["Old Novgorodian"] = "zle-ono", ["Old Nubian"] = "onw", ["Old Occitan"] = "pro", ["Old Odia"] = "inc-oor", ["Old Ossetic"] = "oos", ["Old Persian"] = "peo", ["Old Polish"] = "zlw-opl", ["Old Prussian"] = "prg", ["Old Punjabi"] = "inc-opa", ["Old Ruthenian"] = "zle-ort", ["Old Saxon"] = "osx", ["Old Slovak"] = "zlw-osk", ["Old South Arabian"] = "sem-srb", ["Old Spanish"] = "osp", ["Old Sundanese"] = "osn", ["Old Swedish"] = "gmq-osw", ["Old Tamil"] = "oty", ["Old Tati"] = "xme-ott", ["Old Telugu"] = "dra-ote", ["Old Tibetan"] = "otb", ["Old Tupi"] = "tpw", ["Old Turkic"] = "otk", ["Old Uyghur"] = "oui", ["Old Welsh"] = "owl", ["Olekha"] = "ole", ["Ollari"] = "gdb", ["Olo"] = "ong", ["Oloma"] = "olm", ["Olrat"] = "olr", ["Olu'bo"] = "lul", ["Olukumi"] = "ulb", ["Olulumo-Ikom"] = "iko", ["Oluta Popoluca"] = "plo", ["Olutsotso"] = "lto", ["Omagua"] = "omg", ["Omaha-Ponca"] = "oma", ["Omani Arabic"] = "acx", ["Omba"] = "omb", ["Ombamba"] = "mbm", ["Ombo"] = "oml", ["Ometepec Nahuatl"] = "nht", ["Omi"] = "omi", ["Omok"] = "omk", ["Omotik"] = "omt", ["Omurano"] = "omu", ["Oneida"] = "one", ["Ong"] = "oog", ["Ongota"] = "bxe", ["Onin"] = "oni", ["Onjob"] = "onj", ["Ono"] = "ons", ["Onobasulu"] = "onn", ["Onondaga"] = "ono", ["Ontenu"] = "ont", ["Ontong Java"] = "ojv", ["Oorlams"] = "oor", ["Opao"] = "opo", ["Opata"] = "opt", ["Opuuo"] = "lgn", ["Opón"] = "sai-opo", ["Oraon Sadri"] = "sdr", ["Orejón"] = "ore", ["Oring"] = "org", ["Orizaba Nahuatl"] = "nlv", ["Orléanais"] = "roa-orl", ["Ormu"] = "orz", ["Ormuri"] = "oru", ["Oro"] = "orx", ["Oro Win"] = "orw", ["Oroch"] = "oac", ["Oroha"] = "ora", ["Orok"] = "oaa", ["Orokaiva"] = "okv", ["Oroko"] = "bdu", ["Orokolo"] = "oro", ["Oromo"] = "om", ["Oroqen"] = "orh", ["Orowe"] = "bpk", ["Oruma"] = "orr", ["Orya"] = "ury", ["Osage"] = "osa", ["Osamayi"] = "syx", ["Osatu"] = "ost", ["Oscan"] = "osc", ["Osing"] = "osi", ["Ososo"] = "oso", ["Ossetian"] = "os", ["Ot Danum"] = "otd", ["Otank"] = "uta", ["Oti"] = "oti", ["Otomaco"] = "sai-oto", ["Otoro"] = "otr", ["Ottawa"] = "otw", ["Ottoman Turkish"] = "ota", ["Otuke"] = "otu", ["Ouma"] = "oum", ["Oune"] = "oue", ["Owa"] = "stn", ["Owenia"] = "wsr", ["Owiniga"] = "owi", ["Oy"] = "oyb", ["Oya'oya"] = "oyy", ["Oyda"] = "oyd", ["Ozolotepec Zapotec"] = "zao", ["Ozumacín Chinantec"] = "chz", ["Pa"] = "ppt", ["Pa Di"] = "pdi", ["Pa'a"] = "pqa", ["Pa'o Karen"] = "blk", ["Pa-Hng"] = "pha", ["Paamese"] = "pma", ["Paasaal"] = "sig", ["Pacahuara"] = "pcp", ["Pacoh"] = "pac", ["Padoe"] = "pdo", ["Paelignian"] = "pgn", ["Paeonian"] = "ine-pae", ["Pagi"] = "pgi", ["Pagibete"] = "pae", ["Pagu"] = "pgu", ["Pahanan Agta"] = "apf", ["Pahari-Potwari"] = "phr", ["Pahi"] = "lgt", ["Pahlavani"] = "phv", ["Pai Tavytera"] = "pta", ["Paicî"] = "pri", ["Paikoneka"] = "awd-pai", ["Paipai"] = "ppi", ["Paite"] = "pck", ["Paiwan"] = "pwn", ["Pajapan Nahuatl"] = "nhp", ["Pak-Tong"] = "pkg", ["Pakanha"] = "pkn", ["Pakistan Sign Language"] = "pks", ["Paku"] = "pku", ["Paku Karen"] = "jkp", ["Pal"] = "abw", ["Palaic"] = "plq", ["Palaka Senoufo"] = "plr", ["Palantla Chinantec"] = "cpa", ["Palauan"] = "pau", ["Palawan Batak"] = "bya", ["Paleni"] = "pnl", ["Palenquero"] = "pln", ["Palewyami"] = "yok-ply", ["Pali"] = "pi", ["Palikur"] = "plu", ["Paliyan"] = "pcf", ["Pallanganmiddang"] = "pmd", ["Palor"] = "fap", ["Palta"] = "sai-pal", ["Palu'e"] = "ple", ["Paluan"] = "plz", ["Palya Bareli"] = "bpx", ["Pam"] = "pmn", ["Pambia"] = "pmb", ["Pamigua"] = "sai-pam", ["Pamlico"] = "pmk", ["Pamona"] = "pmf", ["Pamosu"] = "hih", ["Pamplona Atta"] = "att", ["Pana (Central Africa)"] = "pnz", ["Pana (West Africa)"] = "pnq", ["Panamanian Sign Language"] = "lsp", ["Panamint"] = "par", ["Panare"] = "pbh", ["Panará"] = "kre", ["Panasuan"] = "psn", ["Panawa"] = "pwb", ["Pancana"] = "pnp", ["Panchpargania"] = "tdb", ["Pande"] = "bkj", ["Pangasinan"] = "pag", ["Pangseng"] = "pgs", ["Pangutaran Sama"] = "slm", ["Pangwa"] = "pbr", ["Pangwali"] = "pgg", ["Panim"] = "pnr", ["Paniya"] = "pcg", ["Pankararé"] = "pax", ["Pankararú"] = "paz", ["Pankhu"] = "pkh", ["Pannei"] = "pnc", ["Pannonian Rusyn"] = "rsk", ["Panobo"] = "pno", ["Panyi Bai"] = "bfc", ["Panyjima"] = "pnw", ["Panzaleo"] = "sai-pnz", ["Pao"] = "ppa", ["Papantla Totonac"] = "top", ["Papapana"] = "ppn", ["Papar"] = "dpp", ["Papasena"] = "pas", ["Papel"] = "pbo", ["Papi"] = "ppe", ["Papiamentu"] = "pap", ["Papora"] = "ppu", ["Papua New Guinean Sign Language"] = "pgz", ["Papuan Malay"] = "pmy", ["Papuma"] = "ppm", ["Para Naga"] = "pzn", ["Parachi"] = "prc", ["Paraguayan Guaraní"] = "gug", ["Paraguayan Sign Language"] = "pys", ["Parakanã"] = "pak", ["Paranan"] = "prf", ["Paranawát"] = "paf", ["Paratió"] = "sai-par", ["Paraujano"] = "pbg", ["Parauk"] = "prk", ["Parawen"] = "prw", ["Pardhan"] = "pch", ["Pardhi"] = "pcl", ["Pare"] = "asa", ["Pareci"] = "pab", ["Paredarerme"] = "xpd", ["Parenga"] = "pcj", ["Parkari Koli"] = "kvx", ["Parthian"] = "xpr", ["Parya"] = "paq", ["Pará Arára"] = "aap", ["Pará Gavião"] = "gvp", ["Pashto"] = "ps", ["Pasi"] = "psq", ["Pass Valley Yali"] = "yac", ["Pasé"] = "awd-pas", ["Patagón"] = "sai-ptg", ["Patamona"] = "pbc", ["Patani"] = "ptn", ["Pataxó Hã-Ha-Hãe"] = "pth", ["Patep"] = "ptp", ["Pathiya"] = "pty", ["Patpatar"] = "gfk", ["Pattani"] = "lae", ["Pattani Malay"] = "mfa", ["Pattapu"] = "ptq", ["Patwin"] = "pwi", ["Paulohi"] = "plh", ["Paumarí"] = "pad", ["Paunaka"] = "pnk", ["Pauri Bareli"] = "bfb", ["Pauserna"] = "psm", ["Pawaia"] = "pwa", ["Pawnee"] = "paw", ["Payaguá"] = "sai-pyg", ["Paynamar"] = "pmr", ["Pazeh"] = "pzh", ["Pe"] = "pai", ["Pear"] = "pcb", ["Pech"] = "pay", ["Pecheneg"] = "xpc", ["Peerapper"] = "xpw", ["Peere"] = "pfe", ["Pei"] = "ppq", ["Pekal"] = "pel", ["Pela"] = "bxd", ["Pele-Ata"] = "ata", ["Pemon"] = "aoc", ["Penang Sign Language"] = "psg", ["Penchal"] = "pek", ["Pendau"] = "ums", ["Pengo"] = "peg", ["Pennsylvania German"] = "pdc", ["Penobscot"] = "aaq", ["Penrhyn"] = "pnh", ["Pentlatch"] = "ptw", ["Perai"] = "wet", ["Peranakan Indonesian"] = "pea", ["Perema"] = "wom", ["Pericú"] = "nai-per", ["Pero"] = "pip", ["Persian"] = "fa", ["Persian Sign Language"] = "psc", ["Peruvian Sign Language"] = "prl", ["Petapa Zapotec"] = "zpe", ["Petats"] = "pex", ["Petjo"] = "pey", ["Peñoles Mixtec"] = "mil", ["Phai"] = "prt", ["Phake"] = "phk", ["Phala"] = "ypa", ["Phalura"] = "phl", ["Phana'"] = "phq", ["Phangduwali"] = "phw", ["Phende"] = "pem", ["Philippine Sign Language"] = "psp", ["Philistine"] = "mis-phi", ["Phimbi"] = "phm", ["Phoenician"] = "phn", ["Phola"] = "ypg", ["Pholo"] = "yip", ["Phom"] = "nph", ["Phong-Kniang"] = "pnx", ["Phrae Pwo"] = "kjt", ["Phrygian"] = "xpg", ["Phu Thai"] = "pht", ["Phuan"] = "phu", ["Phudagi"] = "phd", ["Phuie"] = "pug", ["Phukha"] = "phh", ["Phuma"] = "ypm", ["Phunoi"] = "pho", ["Phuong"] = "phg", ["Phupa"] = "ypp", ["Phupha"] = "yph", ["Phuthi"] = "bnt-phu", ["Phuza"] = "ypz", ["Piamatsina"] = "ptr", ["Piame"] = "pin", ["Piapoco"] = "pio", ["Piaroa"] = "pid", ["Picard"] = "pcd", ["Pichinglis"] = "fpe", ["Pichis Ashéninka"] = "cpu", ["Pictish"] = "xpi", ["Picuris"] = "nai-pic", ["Pidgin Delaware"] = "dep", ["Pidgin Iha"] = "ihb", ["Pidgin Onin"] = "onx", ["Piedmontese"] = "pms", ["Pijao"] = "pij", ["Pije"] = "piz", ["Pijin"] = "pis", ["Pilagá"] = "plg", ["Pileni"] = "piv", ["Pima Bajo"] = "pia", ["Pimbwe"] = "piw", ["Pinai-Hagahai"] = "pnn", ["Pingelapese"] = "pif", ["Pini"] = "pii", ["Pinigura"] = "pnv", ["Pinjarup"] = "pnj", ["Pinji"] = "pic", ["Pinotepa Nacional Mixtec"] = "mio", ["Pintiini"] = "pti", ["Pintupi-Luritja"] = "piu", ["Pinyin"] = "pny", ["Pipil"] = "ppl", ["Pirahã"] = "myp", ["Piratapuyo"] = "pir", ["Pirlatapa"] = "bxi", ["Piro"] = "pie", ["Pirriya"] = "xpa", ["Pisabo"] = "pig", ["Pisaflores Tepehua"] = "tpp", ["Piscataway"] = "psy", ["Pisidian"] = "xps", ["Pitcairn-Norfolk"] = "pih", ["Pite Sami"] = "sje", ["Piti"] = "pcn", ["Pitjantjatjara"] = "pjt", ["Pitta-Pitta"] = "pit", ["Piu"] = "pix", ["Piya-Kwonci"] = "piy", ["Plains Apache"] = "apk", ["Plains Cree"] = "crk", ["Plains Indian Sign Language"] = "psd", ["Plains Miwok"] = "pmw", ["Plapo Krumen"] = "ktj", ["Plautdietsch"] = "pdt", ["Playero"] = "gob", ["Pnar"] = "pbv", ["Pochuri Naga"] = "npo", ["Pochutec"] = "xpo", ["Podoko"] = "pbi", ["Pogali"] = "hkh", ["Pogolo"] = "poy", ["Pohnpeian"] = "pon", ["Poitevin-Saintongeais"] = "roa-poi", ["Pokangá"] = "pok", ["Poke"] = "pof", ["Pol"] = "pmm", ["Polabian"] = "pox", ["Polci"] = "plj", ["Polish"] = "pl", ["Polish Sign Language"] = "pso", ["Polonombauk"] = "plb", ["Pom"] = "pmo", ["Ponam"] = "ncc", ["Pongu"] = "png", ["Ponosakan"] = "pns", ["Pontic Greek"] = "pnt", ["Ponyo"] = "npg", ["Poqomam"] = "poc", ["Poqomchi'"] = "poh", ["Porohanon"] = "prh", ["Port Sandwich"] = "psw", ["Port Sorell"] = "xpl", ["Port Vato"] = "ptv", ["Portuguese"] = "pt", ["Portuguese Sign Language"] = "psr", ["Potawatomi"] = "pot", ["Potiguára"] = "pog", ["Poumei Naga"] = "pmx", ["Pouye"] = "bye", ["Powari"] = "pwr", ["Powhatan"] = "pim", ["Poyanáwa"] = "pyn", ["Prakrit"] = "pra", ["Prasuni"] = "prn", ["Primitive Irish"] = "pgl", ["Principense"] = "pre", ["Proto-Abkhaz-Abaza"] = "cau-abz-pro", ["Proto-Afroasiatic"] = "afa-pro", ["Proto-Albanian"] = "sqj-pro", ["Proto-Algic"] = "aql-pro", ["Proto-Algonquian"] = "alg-pro", ["Proto-Amuesha-Chamicuro"] = "awd-amc-pro", ["Proto-Anatolian"] = "ine-ana-pro", ["Proto-Andian"] = "cau-and-pro", ["Proto-Apachean"] = "apa-pro", ["Proto-Arawa"] = "auf-pro", ["Proto-Arawak"] = "awd-pro", ["Proto-Armenian"] = "hyx-pro", ["Proto-Arnhem"] = "aus-arn-pro", ["Proto-Aroid"] = "omv-aro-pro", ["Proto-Aslian"] = "mkh-asl-pro", ["Proto-Atayalic"] = "map-ata-pro", ["Proto-Athabaskan"] = "ath-pro", ["Proto-Atlantic-Congo"] = "alv-pro", ["Proto-Austroasiatic"] = "aav-pro", ["Proto-Austronesian"] = "map-pro", ["Proto-Avaro-Andian"] = "cau-ava-pro", ["Proto-Bahnaric"] = "mkh-ban-pro", ["Proto-Bai"] = "sit-bai-pro", ["Proto-Balto-Slavic"] = "ine-bsl-pro", ["Proto-Bantoid"] = "nic-bod-pro", ["Proto-Bantu"] = "bnt-pro", ["Proto-Basque"] = "euq-pro", ["Proto-Batak"] = "btk-pro", ["Proto-Be"] = "qfa-onb-pro", ["Proto-Be-Tai"] = "qfa-bet-pro", ["Proto-Benue-Congo"] = "nic-bco-pro", ["Proto-Berber"] = "ber-pro", ["Proto-Bodo-Garo"] = "tbq-bdg-pro", ["Proto-Bongo-Bagirmi"] = "csu-bba-pro", ["Proto-Boran"] = "sai-bor-pro", ["Proto-Brythonic"] = "cel-bry-pro", ["Proto-Bua"] = "alv-bua-pro", ["Proto-Bungku-Tolaki"] = "poz-btk-pro", ["Proto-Caddoan"] = "cdd-pro", ["Proto-Cangin"] = "alv-cng-pro", ["Proto-Cariban"] = "sai-car-pro", ["Proto-Celtic"] = "cel-pro", ["Proto-Central Chadic"] = "cdc-cbm-pro", ["Proto-Central Dravidian"] = "dra-cen-pro", ["Proto-Central Jê"] = "sai-cje-pro", ["Proto-Central New South Wales"] = "aus-cww-pro", ["Proto-Central Sudanic"] = "csu-pro", ["Proto-Central Togo"] = "alv-gtm-pro", ["Proto-Central-Eastern Malayo-Polynesian"] = "poz-cet-pro", ["Proto-Cerrado"] = "sai-cer-pro", ["Proto-Chadic"] = "cdc-pro", ["Proto-Chamic"] = "cmc-pro", ["Proto-Chatino"] = "omq-cha-pro", ["Proto-Chibchan"] = "cba-pro", ["Proto-Chimakuan"] = "chi-pro", ["Proto-Chinookan"] = "nai-ckn-pro", ["Proto-Chukotko-Kamchatkan"] = "qfa-cka-pro", ["Proto-Chumash"] = "nai-chu-pro", ["Proto-Circassian"] = "cau-cir-pro", ["Proto-Cupan"] = "azc-cup-pro", ["Proto-Cushitic"] = "cus-pro", ["Proto-Daju"] = "sdv-daj-pro", ["Proto-Daly"] = "aus-dal-pro", ["Proto-Dargwa"] = "cau-drg-pro", ["Proto-Dizoid"] = "omv-diz-pro", ["Proto-Dravidian"] = "dra-pro", ["Proto-Eastern Jebel"] = "sdv-eje-pro", ["Proto-Eastern Malayo-Polynesian"] = "pqe-pro", ["Proto-Eastern Oti-Volta"] = "nic-eov-pro", ["Proto-Eastern Polynesian"] = "poz-pep-pro", ["Proto-Edekiri"] = "alv-edk-pro", ["Proto-Edoid"] = "alv-edo-pro", ["Proto-Eskimo"] = "esx-esk-pro", ["Proto-Eskimo-Aleut"] = "esx-pro", ["Proto-Fali"] = "alv-fli-pro", ["Proto-Finnic"] = "urj-fin-pro", ["Proto-Gbaya"] = "gba-pro", ["Proto-Gbe"] = "alv-gbe-pro", ["Proto-Georgian-Zan"] = "ccs-gzn-pro", ["Proto-Germanic"] = "gem-pro", ["Proto-Grassfields"] = "nic-grf-pro", ["Proto-Great Andamanese"] = "qfa-adm-pro", ["Proto-Guang"] = "alv-gng-pro", ["Proto-Gur"] = "nic-gur-pro", ["Proto-Gurunsi"] = "nic-gns-pro", ["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro", ["Proto-Heiban"] = "alv-hei-pro", ["Proto-Hellenic"] = "grk-pro", ["Proto-Highland East Cushitic"] = "cus-hec-pro", ["Proto-Hlai"] = "qfa-lic-pro", ["Proto-Hmong"] = "hmn-pro", ["Proto-Hmong-Mien"] = "hmx-pro", ["Proto-Hrusish"] = "sit-hrs-pro", ["Proto-Hurro-Urartian"] = "qfa-hur-pro", ["Proto-Idomoid"] = "alv-ido-pro", ["Proto-Igboid"] = "alv-igb-pro", ["Proto-Ijoid"] = "ijo-pro", ["Proto-Indo-Aryan"] = "inc-pro", ["Proto-Indo-European"] = "ine-pro", ["Proto-Indo-Iranian"] = "iir-pro", ["Proto-Inuit"] = "esx-inu-pro", ["Proto-Iranian"] = "ira-pro", ["Proto-Iroquoian"] = "iro-pro", ["Proto-Italic"] = "itc-pro", ["Proto-Iwaidjan"] = "aus-wdj-pro", ["Proto-Japonic"] = "jpx-pro", ["Proto-Jukunoid"] = "nic-jkn-pro", ["Proto-Jê"] = "sai-jee-pro", ["Proto-Kadu"] = "qfa-kad-pro", ["Proto-Kalamian"] = "phi-kal-pro", ["Proto-Kalapuyan"] = "nai-klp-pro", ["Proto-Kam-Sui"] = "qfa-kms-pro", ["Proto-Kampa"] = "awd-kmp-pro", ["Proto-Kamta"] = "inc-krn-pro", ["Proto-Karen"] = "kar-pro", ["Proto-Kartvelian"] = "ccs-pro", ["Proto-Katuic"] = "mkh-kat-pro", ["Proto-Kham"] = "sit-kha-pro", ["Proto-Khanty"] = "kca-pro", ["Proto-Khasian"] = "aav-khs-pro", ["Proto-Khmeric"] = "mkh-kmr-pro", ["Proto-Khmuic"] = "mkh-khm-pro", ["Proto-Khoe"] = "khi-kho-pro", ["Proto-Koman"] = "ssa-kom-pro", ["Proto-Komisenian"] = "ira-kms-pro", ["Proto-Koreanic"] = "qfa-kor-pro", ["Proto-Kra"] = "qfa-kra-pro", ["Proto-Kra-Dai"] = "qfa-tak-pro", ["Proto-Kru"] = "kro-pro", ["Proto-Kuki-Chin"] = "tbq-kuk-pro", ["Proto-Kuliak"] = "ssa-klk-pro", ["Proto-Kurdish"] = "ku-pro", ["Proto-Kwa"] = "alv-kwa-pro", ["Proto-Lalo"] = "tbq-lal-pro", ["Proto-Lampungic"] = "poz-lgx-pro", ["Proto-Lezghian"] = "cau-lzg-pro", ["Proto-Lolo-Burmese"] = "tbq-lob-pro", ["Proto-Loloish"] = "tbq-lol-pro", ["Proto-Lower Cross River"] = "nic-lcr-pro", ["Proto-Luish"] = "sit-luu-pro", ["Proto-Maidun"] = "nai-mdu-pro", ["Proto-Malayic"] = "poz-mly-pro", ["Proto-Malayo-Chamic"] = "poz-mcm-pro", ["Proto-Malayo-Polynesian"] = "poz-pro", ["Proto-Malayo-Sumbawan"] = "poz-msa-pro", ["Proto-Mande"] = "dmn-pro", ["Proto-Mangbetu"] = "csu-maa-pro", ["Proto-Mansi"] = "mns-pro", ["Proto-Mari"] = "chm-pro", ["Proto-Masa"] = "cdc-mas-pro", ["Proto-Mayan"] = "myn-pro", ["Proto-Mazatec"] = "omq-maz-pro", ["Proto-Medo-Parthian"] = "ira-mpr-pro", ["Proto-Micronesian"] = "poz-mic-pro", ["Proto-Mien"] = "hmx-mie-pro", ["Proto-Min"] = "zhx-min-pro", ["Proto-Mixe-Zoque"] = "nai-miz-pro", ["Proto-Mixtec"] = "omq-mxt-pro", ["Proto-Mixtecan"] = "omq-mix-pro", ["Proto-Mon-Khmer"] = "mkh-pro", ["Proto-Mongolic"] = "xgn-pro", ["Proto-Monic"] = "mkh-mnc-pro", ["Proto-Mordvinic"] = "urj-mdv-pro", ["Proto-Mumuye"] = "alv-mum-pro", ["Proto-Munda"] = "mun-pro", ["Proto-Munji-Yidgha"] = "ira-mny-pro", ["Proto-Muskogean"] = "nai-mus-pro", ["Proto-Na-Dene"] = "xnd-pro", ["Proto-Nahuan"] = "azc-nah-pro", ["Proto-Nakh"] = "cau-nkh-pro", ["Proto-Nawiki"] = "awd-nwk-pro", ["Proto-Nguni"] = "bnt-ngu-pro", ["Proto-Nicobarese"] = "aav-nic-pro", ["Proto-Niger-Congo"] = "nic-pro", ["Proto-Nilo-Saharan"] = "ssa-pro", ["Proto-Nilotic"] = "sdv-nil-pro", ["Proto-Norse"] = "gmq-pro", ["Proto-North Caucasian"] = "ccn-pro", ["Proto-North Dravidian"] = "dra-nor-pro", ["Proto-North Halmahera"] = "paa-nha-pro", ["Proto-North Iroquoian"] = "iro-nor-pro", ["Proto-North Sarawak"] = "poz-swa-pro", ["Proto-Northeast Caucasian"] = "cau-nec-pro", ["Proto-Northern Jê"] = "sai-nje-pro", ["Proto-Northwest Caucasian"] = "cau-nwc-pro", ["Proto-Nubian"] = "nub-pro", ["Proto-Nuclear Polynesian"] = "poz-pnp-pro", ["Proto-Numic"] = "azc-num-pro", ["Proto-Nupoid"] = "alv-nup-pro", ["Proto-Nuristani"] = "iir-nur-pro", ["Proto-Nyima"] = "sdv-nyi-pro", ["Proto-Nyulnyulan"] = "aus-nyu-pro", ["Proto-Oceanic"] = "poz-oce-pro", ["Proto-Ogoni"] = "nic-ogo-pro", ["Proto-Omotic"] = "omv-pro", ["Proto-Ongan"] = "qfa-ong-pro", ["Proto-Ossetic"] = "os-pro", ["Proto-Oti-Volta"] = "nic-ovo-pro", ["Proto-Oto-Manguean"] = "omq-pro", ["Proto-Oto-Pamean"] = "omq-otp-pro", ["Proto-Otomi"] = "oto-otm-pro", ["Proto-Otomian"] = "oto-pro", ["Proto-Pakanic"] = "mkh-pkn-pro", ["Proto-Palaungic"] = "mkh-pal-pro", ["Proto-Pama-Nyungan"] = "aus-pam-pro", ["Proto-Paresi-Waura"] = "awd-prw-pro", ["Proto-Pathan"] = "ira-pat-pro", ["Proto-Pearic"] = "mkh-pea-pro", ["Proto-Permic"] = "urj-prm-pro", ["Proto-Philippine"] = "phi-pro", ["Proto-Plateau"] = "nic-plt-pro", ["Proto-Plateau Penutian"] = "nai-plp-pro", ["Proto-Pnar-Khasi-Lyngngam"] = "aav-pkl-pro", ["Proto-Polynesian"] = "poz-pol-pro", ["Proto-Pomo"] = "nai-pom-pro", ["Proto-Quechuan"] = "qwe-pro", ["Proto-Rukai"] = "dru-pro", ["Proto-Ryukyuan"] = "jpx-ryu-pro", ["Proto-Saka"] = "xsc-sak-pro", ["Proto-Saka-Wakhi"] = "xsc-skw-pro", ["Proto-Salish"] = "sal-pro", ["Proto-Samic"] = "smi-pro", ["Proto-Samoyedic"] = "syd-pro", ["Proto-Sanglechi-Ishkashimi"] = "ira-sgi-pro", ["Proto-Sara"] = "csu-sar-pro", ["Proto-Sarmatian"] = "xsc-sar-pro", ["Proto-Scythian"] = "xsc-pro", ["Proto-Selkup"] = "sel-pro", ["Proto-Semitic"] = "sem-pro", ["Proto-Shughni-Roshani"] = "ira-shr-pro", ["Proto-Shughni-Yazghulami"] = "ira-shy-pro", ["Proto-Shughni-Yazghulami-Munji"] = "ira-sym-pro", ["Proto-Sino-Tibetan"] = "sit-pro", ["Proto-Siouan"] = "sio-pro", ["Proto-Siouan-Catawban"] = "nai-sca-pro", ["Proto-Slavic"] = "sla-pro", ["Proto-Sogdic"] = "ira-sgc-pro", ["Proto-Somaloid"] = "cus-som-pro", ["Proto-Songhay"] = "son-pro", ["Proto-Sotho-Tswana"] = "bnt-sts-pro", ["Proto-South Cushitic"] = "cus-sou-pro", ["Proto-South Dravidian"] = "dra-sou-pro", ["Proto-South Dravidian I"] = "dra-sdo-pro", ["Proto-South Dravidian II"] = "dra-sdt-pro", ["Proto-South Sulawesi"] = "poz-ssw-pro", ["Proto-Southern Jê"] = "sai-sje-pro", ["Proto-Southwestern Tai"] = "tai-swe-pro", ["Proto-Sunda-Sulawesi"] = "poz-sus-pro", ["Proto-Ta-Arawak"] = "awd-taa-pro", ["Proto-Tai"] = "tai-pro", ["Proto-Takic"] = "azc-tak-pro", ["Proto-Taman"] = "sdv-tmn-pro", ["Proto-Tamangic"] = "sit-tam-pro", ["Proto-Tani"] = "sit-tan-pro", ["Proto-Taranoan"] = "sai-tar-pro", ["Proto-Tatic"] = "xme-ttc-pro", ["Proto-Tocharian"] = "ine-toc-pro", ["Proto-Totozoquean"] = "nai-tot-pro", ["Proto-Trans-New Guinea"] = "ngf-pro", ["Proto-Trique"] = "omq-tri-pro", ["Proto-Tsezian"] = "cau-tsz-pro", ["Proto-Tsimshianic"] = "nai-tsi-pro", ["Proto-Tungusic"] = "tuw-pro", ["Proto-Tupi-Guarani"] = "tup-gua-pro", ["Proto-Tupian"] = "tup-pro", ["Proto-Turkic"] = "trk-pro", ["Proto-Ubangian"] = "nic-ubg-pro", ["Proto-Ugric"] = "urj-ugr-pro", ["Proto-Upper Cross River"] = "nic-ucr-pro", ["Proto-Uralic"] = "urj-pro", ["Proto-Utian"] = "nai-utn-pro", ["Proto-Uto-Aztecan"] = "azc-pro", ["Proto-Vietic"] = "mkh-vie-pro", ["Proto-Volta-Congo"] = "nic-vco-pro", ["Proto-Volta-Niger"] = "alv-von-pro", ["Proto-West Germanic"] = "gmw-pro", ["Proto-West Semitic"] = "sem-wes-pro", ["Proto-Western Mande"] = "dmn-mdw-pro", ["Proto-Witotoan"] = "sai-wit-pro", ["Proto-Yeniseian"] = "qfa-yen-pro", ["Proto-Yoruba"] = "alv-yor-pro", ["Proto-Yoruboid"] = "alv-yrd-pro", ["Proto-Yukaghir"] = "qfa-yuk-pro", ["Proto-Yupik"] = "ypk-pro", ["Proto-Zapotec"] = "omq-zpc-pro", ["Proto-Zapotecan"] = "omq-zap-pro", ["Proto-Zaza-Gorani"] = "ira-zgr-pro", ["Providencia Sign Language"] = "prz", ["Psikye"] = "kvj", ["Puare"] = "pux", ["Pudtol Atta"] = "atp", ["Puebla Mazatec"] = "pbm", ["Puelche"] = "pue", ["Puerto Rican Sign Language"] = "psl", ["Puimei Naga"] = "npu", ["Puinave"] = "pui", ["Puiron"] = "sit-prn", ["Pukapukan"] = "pkp", ["Pulabu"] = "pup", ["Puluwat"] = "puw", ["Puma"] = "pum", ["Pumpokol"] = "xpm", ["Pumé"] = "yae", ["Punan Aput"] = "pud", ["Punan Bah-Biau"] = "pna", ["Punan Batu"] = "pnm", ["Punan Merah"] = "puf", ["Punan Merap"] = "puc", ["Punan Tubu"] = "puj", ["Punic"] = "xpu", ["Punjabi"] = "pa", ["Punu"] = "puu", ["Puoc"] = "puo", ["Puquina"] = "puq", ["Puragi"] = "pru", ["Purari"] = "iar", ["Purepecha"] = "pua", ["Puri"] = "prr", ["Purik"] = "prx", ["Purisimeño"] = "puy", ["Puruborá"] = "pur", ["Puruhá"] = "sai-prh", ["Purukotó"] = "sai-pur", ["Purum"] = "pub", ["Putai"] = "mfl", ["Putoh"] = "put", ["Putukwam"] = "afe", ["Puxian Min"] = "cpx", ["Puyo-Paekche"] = "xpp", ["Puyuma"] = "pyu", ["Pwaamèi"] = "pme", ["Pwapwâ"] = "pop", ["Pyapun"] = "pcw", ["Pye Krumen"] = "pye", ["Pyemmairre"] = "xpb", ["Pyen"] = "pyy", ["Pykobjê"] = "sai-pyk", ["Pyu"] = "pby", ["Páez"] = "pbb", ["Pááfang"] = "pfa", ["Päri"] = "lkr", ["Pémono"] = "pev", ["Pévé"] = "lme", ["Pökoot"] = "pko", ["Q'anjob'al"] = "kjb", ["Q'eqchi"] = "kek", ["Qabiao"] = "laq", ["Qaqet"] = "byx", ["Qatabanian"] = "xqt", ["Qau"] = "gqu", ["Qila Muji"] = "ymq", ["Qimant"] = "ahg", ["Quapaw"] = "qua", ["Quebec Sign Language"] = "fcs", ["Quechua"] = "qu", ["Quenya"] = "qya", ["Querétaro Otomi"] = "otq", ["Quetzaltepec Mixe"] = "pxm", ["Queyu"] = "qvy", ["Quiavicuzas Zapotec"] = "zpj", ["Quileute"] = "qui", ["Quimbaya"] = "sai-qmb", ["Quinault"] = "qun", ["Quinigua"] = "nai-qng", ["Quinqui"] = "quq", ["Quioquitani-Quierí Zapotec"] = "ztq", ["Quiotepec Chinantec"] = "chq", ["Quiripi"] = "qyp", ["Quitemo"] = "sai-qtm", ["Rabha"] = "rah", ["Rabona"] = "sai-rab", ["Rade"] = "rad", ["Raetic"] = "xrr", ["Raga"] = "lml", ["Rahambuu"] = "raz", ["Rajah Kabunsuwan Manobo"] = "mqk", ["Rajbanshi"] = "rjs", ["Raji"] = "rji", ["Rajong"] = "rjg", ["Rajput Garasia"] = "gra", ["Rakahanga-Manihiki"] = "rkh", ["Rakhine"] = "rki", ["Ralte"] = "ral", ["Rama"] = "rma", ["Ramandi"] = "tks", ["Ramanos"] = "sai-ram", ["Ramoaaina"] = "rai", ["Ramopa"] = "kjx", ["Rampi"] = "lje", ["Rana Tharu"] = "thr", ["Rang"] = "rax", ["Rangkas"] = "rgk", ["Ranglong"] = "rnl", ["Rao"] = "rao", ["Rapa"] = "ray", ["Rapa Nui"] = "rap", ["Rapoisi"] = "kyx", ["Rapting"] = "rpt", ["Rara Bakati'"] = "lra", ["Rarotongan"] = "rar", ["Rasawa"] = "rac", ["Ratagnon"] = "btn", ["Ratahan"] = "rth", ["Rathawi"] = "rtw", ["Rathwi Bareli"] = "bgd", ["Raute"] = "rau", ["Ravula"] = "yea", ["Rawa"] = "rwo", ["Rawang"] = "raw", ["Rawat"] = "jnl", ["Rawo"] = "rwa", ["Rayón Zoque"] = "zor", ["Razajerdi"] = "rat", ["Razihi"] = "rzh", ["Reang"] = "ria", ["Red Gelao"] = "gir", ["Reel"] = "atu", ["Rejang"] = "rej", ["Rejang Kayan"] = "ree", ["Reli"] = "rei", ["Rema"] = "bow", ["Rembarunga"] = "rmb", ["Rembong"] = "reb", ["Remo"] = "rem", ["Remontado Agta"] = "agv", ["Rempi"] = "rmp", ["Remun"] = "lkj", ["Rendille"] = "rel", ["Rengao"] = "ren", ["Rennellese"] = "mnv", ["Repanbitip"] = "rpn", ["Rer Bare"] = "rer", ["Rerau"] = "rea", ["Rerep"] = "pgk", ["Reshe"] = "res", ["Resígaro"] = "rgr", ["Retta"] = "ret", ["Reyesano"] = "rey", ["Rhine Franconian"] = "gmw-rfr", ["Riang"] = "ril", ["Riantana"] = "ran", ["Ribun"] = "rir", ["Rigwe"] = "iri", ["Rikbaktsa"] = "rkb", ["Rincón Zapotec"] = "zar", ["Ringgou"] = "rgu", ["Ririo"] = "rri", ["Ritarungo"] = "rit", ["Riung"] = "riu", ["Riverain Sango"] = "snj", ["Rogo"] = "rod", ["Rohingya"] = "rhg", ["Roma"] = "rmm", ["Romagnol"] = "rgn", ["Romam"] = "rmx", ["Romani"] = "rom", ["Romanian"] = "ro", ["Romanian Sign Language"] = "rms", ["Romano-Greek"] = "rge", ["Romano-Serbian"] = "rsb", ["Romanova"] = "rmv", ["Romansch"] = "rm", ["Romblomanon"] = "rol", ["Rombo"] = "rof", ["Romkun"] = "rmk", ["Ron"] = "cla", ["Ronga"] = "rng", ["Rongga"] = "ror", ["Rongmei Naga"] = "nbu", ["Rongpo"] = "rnp", ["Ronji"] = "roe", ["Roon"] = "rnn", ["Roria"] = "rga", ["Roro"] = "rro", ["Rotokas"] = "roo", ["Rotuman"] = "rtm", ["Rouran"] = "mis-rou", ["Roviana"] = "rug", ["Ruching Palaung"] = "pce", ["Rudbari"] = "rdb", ["Rufiji"] = "rui", ["Ruga"] = "ruh", ["Rukai"] = "dru", ["Rukiga"] = "cgg", ["Ruma"] = "ruz", ["Rumai Palaung"] = "rbb", ["Rumu"] = "klq", ["Runga"] = "rou", ["Rungtu"] = "rtc", ["Rungus"] = "drg", ["Rungwa"] = "rnw", ["Russenorsk"] = "crp-rsn", ["Russian"] = "ru", ["Russian Sign Language"] = "rsl", ["Rutul"] = "rut", ["Ruuli"] = "ruc", ["Ruwund"] = "rnd", ["Rwa"] = "rwk", ["Rwanda-Rundi"] = "rw", ["Réunion Creole French"] = "rcf", ["S'gaw Karen"] = "ksw", ["Sa"] = "sax", ["Sa'a"] = "apb", ["Sa'ban"] = "snv", ["Sa'och"] = "scq", ["Saafi-Saafi"] = "sav", ["Saam"] = "raq", ["Saamia"] = "lsm", ["Saanich"] = "str", ["Saare"] = "uss", ["Saaroa"] = "sxr", ["Saba"] = "saa", ["Sabaean"] = "xsa", ["Sabah Bisaya"] = "bsy", ["Sabah Malay"] = "msi", ["Sabanê"] = "sae", ["Sabaot"] = "spy", ["Sabine"] = "sbv", ["Sabir"] = "pml", ["Sabu"] = "hvn", ["Sabüm"] = "sbo", ["Sacapulteco"] = "quv", ["Sadri"] = "sck", ["Saek"] = "skb", ["Saep"] = "spd", ["Safaitic"] = "sem-saf", ["Safaliba"] = "saf", ["Safeyoka"] = "apz", ["Safwa"] = "sbk", ["Sagala"] = "sbm", ["Sagalla"] = "tga", ["Sahaptin"] = "nai-spt", ["Saho"] = "ssy", ["Sahu"] = "saj", ["Saisiyat"] = "xsy", ["Sajau Basap"] = "sjb", ["Sakachep"] = "sch", ["Sakam"] = "skm", ["Sakao"] = "sku", ["Sakata"] = "skt", ["Sake"] = "sak", ["Sakizaya"] = "szy", ["Sala"] = "shq", ["Salampasu"] = "slx", ["Salar"] = "slr", ["Salas"] = "sgu", ["Salchuq"] = "slq", ["Saleman"] = "sau", ["Saliba (Colombia)"] = "slc", ["Saliba (New Guinea)"] = "sbe", ["Salinan"] = "sln", ["Salt-Yui"] = "sll", ["Saluan"] = "loe", ["Salumá"] = "slj", ["Salvadoran Lenca"] = "nai-sln", ["Salvadoran Sign Language"] = "esn", ["Sam"] = "snx", ["Sama"] = "smd", ["Samaritan Aramaic"] = "sam", ["Samaritan Hebrew"] = "smp", ["Samarokena"] = "tmj", ["Samatao"] = "ysd", ["Samba"] = "smx", ["Sambali"] = "xsb", ["Sambalpuri"] = "spv", ["Sambe"] = "xab", ["Samberigi"] = "ssx", ["Samburu"] = "saq", ["Samei"] = "smh", ["Samo"] = "smq", ["Samoan"] = "sm", ["Samoan Plantation Pidgin"] = "crp-spp", ["Samogitian"] = "sgs", ["Samosa"] = "swm", ["Sampang"] = "rav", ["Samre"] = "sxm", ["Samtao"] = "stu", ["Samvedi"] = "smv", ["San Agustín Mixtepec Zapotec"] = "ztm", ["San Baltazar Loxicha Zapotec"] = "zpx", ["San Felipe Otlaltepec Popoloca"] = "pow", ["San Jerónimo Tecóatl Mazatec"] = "maa", ["San Juan Atzingo Popoloca"] = "poe", ["San Juan Colorado Mixtec"] = "mjc", ["San Juan Guelavía Zapotec"] = "zab", ["San Juan Quiahije Chatino"] = "omq-sjq", ["San Juan Teita Mixtec"] = "xtj", ["San Luís Temalacayuca Popoloca"] = "pps", ["San Marcos Tlalcoyalco Popoloca"] = "pls", ["San Martín Itunyoso Triqui"] = "trq", ["San Miguel Creole French"] = "scf", ["San Miguel Piedras Mixtec"] = "xtp", ["San Miguel el Grande Mixtec"] = "mig", ["San Pablo Güilá Zapotec"] = "ztu", ["San Pedro Amuzgos Amuzgo"] = "azg", ["San Pedro Quiatoni Zapotec"] = "zpf", ["San Vicente Coatlán Zapotec"] = "zpt", ["Sanapaná"] = "spn", ["Sanaviron"] = "sai-san", ["Sandawe"] = "sad", ["Sanga (Congo)"] = "sng", ["Sanga (Nigeria)"] = "xsn", ["Sanggau"] = "scg", ["Sangil"] = "snl", ["Sangir"] = "sxn", ["Sangisari"] = "sgr", ["Sangkong"] = "sgk", ["Sanglechi"] = "sgy", ["Sango"] = "sg", ["Sangtam Naga"] = "nsa", ["Sangu (Gabon)"] = "snq", ["Sangu (Tanzania)"] = "sbp", ["Sani"] = "ysn", ["Sanie"] = "ysy", ["Saniyo-Hiyewe"] = "sny", ["Sankaran Maninka"] = "msc", ["Sansi"] = "ssi", ["Sanskrit"] = "sa", ["Santa Catarina Albarradas Zapotec"] = "ztn", ["Santa Inés Ahuatempan Popoloca"] = "pca", ["Santa Inés Yatzechi Zapotec"] = "zpn", ["Santa Lucía Monteverde Mixtec"] = "mdv", ["Santa María La Alta Nahuatl"] = "nhz", ["Santa María Quiegolani Zapotec"] = "zpi", ["Santa María Zacatepec Mixtec"] = "mza", ["Santa Teresa Cora"] = "cok", ["Santali"] = "sat", ["Santiago Xanica Zapotec"] = "zpr", ["Santo Domingo Albarradas Zapotec"] = "zas", ["Sanumá"] = "xsu", ["Sanxiang Min"] = "nan-zsh", ["Sapa"] = "tys", ["Saparua"] = "spr", ["Sapará"] = "sai-sap", ["Sapo"] = "krn", ["Saponi"] = "spi", ["Saposa"] = "sps", ["Sapuan"] = "spu", ["Sapé"] = "spc", ["Sar"] = "mwm", ["Sara"] = "sre", ["Sara Kaba"] = "sbz", ["Sara Kaba Deme"] = "kwg", ["Sara Kaba Náà"] = "kwv", ["Saraiki"] = "skr", ["Saramaccan"] = "srm", ["Sarangani Blaan"] = "bps", ["Sarangani Manobo"] = "mbs", ["Sarasira"] = "zsa", ["Saraveca"] = "sar", ["Sarawak Malay"] = "poz-sml", ["Sardinian"] = "sc", ["Sarikoli"] = "srh", ["Sarli"] = "sdf", ["Sartang"] = "onp", ["Sarua"] = "swy", ["Sarudu"] = "sdu", ["Saruga"] = "sra", ["Sasak"] = "sas", ["Sasaru"] = "sxs", ["Sassarese"] = "sdc", ["Satawalese"] = "stw", ["Saterland Frisian"] = "stq", ["Sateré-Mawé"] = "mav", ["Sathmar Swabian"] = "gmw-stm", ["Saudi Arabian Sign Language"] = "sdl", ["Saurashtra"] = "saz", ["Sauri"] = "srt", ["Sause"] = "sao", ["Sausi"] = "ssj", ["Savi"] = "sdg", ["Savosavo"] = "svs", ["Sawai"] = "szw", ["Saweru"] = "swr", ["Sawi"] = "saw", ["Sawila"] = "swt", ["Sawriya Paharia"] = "mjt", ["Saxwe Gbe"] = "sxw", ["Saya"] = "say", ["Sayula Popoluca"] = "pos", ["Scanian"] = "gmq-scy", ["Scots"] = "sco", ["Scottish Gaelic"] = "gd", ["Seba"] = "kdg", ["Sebat Bet Gurage"] = "sgw", ["Seberuang"] = "sbx", ["Sebop"] = "sib", ["Sebuyau"] = "snb", ["Sechelt"] = "sec", ["Sechura"] = "sai-sec", ["Secoya"] = "sey", ["Sedang"] = "sed", ["Sedoa"] = "tvw", ["Seenku"] = "sos", ["Segai"] = "sge", ["Segeju"] = "seg", ["Seget"] = "sbg", ["Sehwi"] = "sfw", ["Seim"] = "sim", ["Seimat"] = "ssg", ["Seit-Kaitetu"] = "hik", ["Sekani"] = "sek", ["Sekapan"] = "skp", ["Sekar"] = "skz", ["Seke"] = "skj", ["Sekele"] = "vaj", ["Seki"] = "syi", ["Seko Padang"] = "skx", ["Seko Tengah"] = "sko", ["Sekpele"] = "lip", ["Selangor Sign Language"] = "kgi", ["Selaru"] = "slu", ["Selayar"] = "sly", ["Selee"] = "snw", ["Selepet"] = "spl", ["Selk'nam"] = "ona", ["Selonian"] = "sxl", ["Selungai Murut"] = "slg", ["Seluwasan"] = "sws", ["Sema"] = "nsm", ["Semai"] = "sea", ["Semandang"] = "sdm", ["Semaq Beri"] = "szc", ["Sembakung Murut"] = "sbr", ["Semelai"] = "sza", ["Semimi"] = "etz", ["Semnam"] = "ssm", ["Semnani"] = "smy", ["Sempan"] = "xse", ["Sena"] = "seh", ["Senara Sénoufo"] = "seq", ["Senaya"] = "syn", ["Sene"] = "sej", ["Seneca"] = "see", ["Sengele"] = "szg", ["Senggi"] = "snu", ["Sengo"] = "spk", ["Sengseng"] = "ssz", ["Senhaja De Srair"] = "sjs", ["Sensi"] = "sni", ["Sentani"] = "set", ["Senthang Chin"] = "sez", ["Sentinelese"] = "std", ["Sepa (Indonesia)"] = "spb", ["Sepa (New Guinea)"] = "spe", ["Sepen"] = "spm", ["Sepik Iwam"] = "iws", ["Sepik Mari"] = "mbx", ["Sera"] = "sry", ["Serbo-Croatian"] = "sh", ["Sere"] = "swf", ["Serer"] = "srr", ["Seri"] = "sei", ["Serili"] = "sve", ["Seroa"] = "kqu", ["Serrano"] = "ser", ["Seru"] = "szd", ["Serua"] = "srw", ["Serudung Murut"] = "srk", ["Serui-Laut"] = "seu", ["Seta"] = "stf", ["Setaman"] = "stm", ["Seti"] = "sbi", ["Severn Ojibwa"] = "ojs", ["Sewa Bay"] = "sew", ["Seychellois Creole"] = "crs", ["Seze"] = "sze", ["Sha"] = "scw", ["Shabak"] = "sdb", ["Shabo"] = "sbf", ["Shahmirzadi"] = "srz", ["Shahrudi"] = "shm", ["Shall-Zwall"] = "sha", ["Shama-Sambuga"] = "sqa", ["Shamang"] = "xsh", ["Shambala"] = "ksb", ["Shan"] = "shn", ["Shanenawa"] = "swo", ["Shanga"] = "sho", ["Shangzhai"] = "jih", ["Shaozhou Tuhua"] = "zhx-sht", ["Sharanahua"] = "mcd", ["Shark Bay"] = "ssv", ["Sharwa"] = "swq", ["Shasta"] = "sht", ["Shatt"] = "shj", ["Shau"] = "sqh", ["Shawnee"] = "sjw", ["She"] = "shx", ["Shebayo"] = "awd-she", ["Shehri"] = "shv", ["Shekkacho"] = "moy", ["Sheko"] = "she", ["Shelta"] = "sth", ["Shendu"] = "shl", ["Sheni"] = "scv", ["Sherbro"] = "bun", ["Sherdukpen"] = "sdp", ["Sherpa"] = "xsr", ["Sheshi Kham"] = "kip", ["Shi"] = "shr", ["Shihhi Arabic"] = "ssh", ["Shiki"] = "gua", ["Shilluk"] = "shk", ["Shina"] = "scl", ["Shinasha"] = "bwo", ["Shipibo-Conibo"] = "shp", ["Shixing"] = "sxg", ["Sholaga"] = "sle", ["Shom Peng"] = "sii", ["Shona"] = "sn", ["Shoo-Minda-Nye"] = "bcv", ["Shor"] = "cjs", ["Shoshone"] = "shh", ["Shua"] = "shg", ["Shuar"] = "jiv", ["Shughni"] = "sgh", ["Shumashti"] = "sts", ["Shumcho"] = "scu", ["Shuswap"] = "shs", ["Shuwa-Zamani"] = "ksa", ["Shwai"] = "shw", ["Shwe Palaung"] = "pll", ["Sialum"] = "slw", ["Siamou"] = "sif", ["Sian"] = "spg", ["Siane"] = "snp", ["Siang"] = "sya", ["Siar-Lak"] = "sjr", ["Sibe"] = "nco", ["Siberian Tatar"] = "sty", ["Sibu Melanau"] = "sdx", ["Sicanian"] = "sxc", ["Sicel"] = "scx", ["Sichuanese"] = "zhx-sic", ["Sicilian"] = "scn", ["Siculo-Arabic"] = "sqr", ["Sidamo"] = "sid", ["Sidetic"] = "xsd", ["Sie"] = "erg", ["Sierra Leone Sign Language"] = "sgx", ["Sierra Negra Nahuatl"] = "nsu", ["Sierra de Juárez Zapotec"] = "zaa", ["Sighu"] = "sxe", ["Sihan"] = "snr", ["Sika"] = "ski", ["Sikaiana"] = "sky", ["Sikaritai"] = "tty", ["Sikiana"] = "sik", ["Sikkimese"] = "sip", ["Sikule"] = "skh", ["Sila"] = "slt", ["Silacayoapan Mixtec"] = "mks", ["Sileibi"] = "sbq", ["Silesian"] = "szl", ["Silimo"] = "wul", ["Siliput"] = "mkc", ["Silopi"] = "xsp", ["Silt'e"] = "stv", ["Simaa"] = "sie", ["Simalungun Batak"] = "bts", ["Simba"] = "sbw", ["Simbali"] = "smg", ["Simbari"] = "smb", ["Simbo"] = "sbb", ["Simeku"] = "smz", ["Simeulue"] = "smr", ["Simte"] = "smt", ["Sinacantán"] = "nai-sin", ["Sinagen"] = "siu", ["Sinasina"] = "sst", ["Sinaugoro"] = "snc", ["Sindarin"] = "sjn", ["Sindhi"] = "sd", ["Sindhi Bhil"] = "sbn", ["Sindihui Mixtec"] = "xts", ["Singa"] = "sgm", ["Singapore Sign Language"] = "sls", ["Singpho"] = "sgp", ["Sinhalese"] = "si", ["Sinicahua Mixtec"] = "xti", ["Sininkere"] = "skq", ["Sinte Romani"] = "rmo", ["Sinyar"] = "sys", ["Sinúfana"] = "sai-sin", ["Sio"] = "xsi", ["Siona"] = "snn", ["Sipakapense"] = "qum", ["Sira"] = "swj", ["Siraya"] = "fos", ["Sirenik"] = "ysr", ["Siri"] = "sir", ["Siriano"] = "sri", ["Sirionó"] = "srq", ["Sirmauri"] = "srx", ["Siroi"] = "ssd", ["Sissala"] = "sld", ["Sissano"] = "sso", ["Situ"] = "sit-sit", ["Siuslaw"] = "sis", ["Sivandi"] = "siy", ["Siwai"] = "siw", ["Siwi"] = "siz", ["Siwu"] = "akp", ["Siyin Chin"] = "csy", ["Skagit"] = "ska", ["Skalvian"] = "svx", ["Ske"] = "ske", ["Skepi Creole Dutch"] = "skw", ["Skolt Sami"] = "sms", ["Skou"] = "skv", ["Slavomolisano"] = "svm", ["Slovak"] = "sk", ["Slovakian Sign Language"] = "svk", ["Slovene"] = "sl", ["Slovincian"] = "zlw-slv", ["Small Flowery Miao"] = "sfm", ["Smärky Kanum"] = "kxq", ["Snohomish"] = "sno", ["So'a"] = "ssq", ["Sobei"] = "sob", ["Sochiapam Chinantec"] = "cso", ["Soga"] = "xog", ["Sogdian"] = "sog", ["Sok"] = "skk", ["Sokna"] = "swn", ["Soko"] = "soc", ["Sokoro"] = "sok", ["Solano"] = "xso", ["Soli"] = "sby", ["Solombala English"] = "crp-slb", ["Solon"] = "tuw-sol", ["Solong"] = "aaw", ["Solos"] = "sol", ["Som"] = "smc", ["Somali"] = "so", ["Somba-Siawari"] = "bmu", ["Somra"] = "ntx", ["Somrai"] = "sor", ["Somray"] = "smu", ["Somyev"] = "kgt", ["Sonaga"] = "ysg", ["Sonde"] = "shc", ["Songe"] = "sop", ["Songlai Chin"] = "csj", ["Songomeno"] = "soe", ["Songoora"] = "sod", ["Sonha"] = "soi", ["Sonia"] = "siq", ["Soninke"] = "snk", ["Sonsorolese"] = "sov", ["Soo"] = "teu", ["Sop"] = "urw", ["Soqotri"] = "sqt", ["Sora"] = "srb", ["Sori-Harengan"] = "sbh", ["Sorkhei"] = "sqo", ["Sorothaptic"] = "sxo", ["Sorsogon Ayta"] = "ays", ["Sos Kundi"] = "sdk", ["Sota Kanum"] = "krz", ["Sotho"] = "st", ["Sou"] = "sqq", ["South African Sign Language"] = "sfs", ["South Awyu"] = "aws", ["South Boma"] = "bnt-sbo", ["South Central Banda"] = "lnl", ["South Central Dinka"] = "dib", ["South Efate"] = "erk", ["South Fali"] = "fal", ["South Giziga"] = "giz", ["South Lembata"] = "lmf", ["South Levantine Arabic"] = "ajp", ["South Marquesan"] = "mqm", ["South Muyu"] = "kts", ["South Nuaulu"] = "nxl", ["South Picene"] = "spx", ["South Slavey"] = "xsl", ["South Tairora"] = "omw", ["South Ucayali Ashéninka"] = "cpy", ["South Watut"] = "mcy", ["Southeast Ambrym"] = "tvk", ["Southeast Babar"] = "vbb", ["Southeast Ijo"] = "ijs", ["Southeast Pashayi"] = "psi", ["Southeast Tasmanian"] = "xpf", ["Southeastern Dinka"] = "dks", ["Southeastern Ixtlán Zapotec"] = "zpd", ["Southeastern Kolami"] = "nit", ["Southeastern Nochixtlán Mixtec"] = "mxy", ["Southeastern Pomo"] = "pom", ["Southeastern Puebla Nahuatl"] = "npl", ["Southeastern Tarahumara"] = "tcu", ["Southeastern Tepehuan"] = "stp", ["Southern Alta"] = "agy", ["Southern Altai"] = "alt", ["Southern Amami Ōshima"] = "ams", ["Southern Bai"] = "bfs", ["Southern Birifor"] = "biv", ["Southern Bobo"] = "bwq", ["Southern Bontoc"] = "obk", ["Southern Carrier"] = "caf", ["Southern Catanduanes Bicolano"] = "bln", ["Southern Dagaare"] = "dga", ["Southern East Cree"] = "crj", ["Southern Ghale"] = "ghe", ["Southern Grebo"] = "grj", ["Southern Guiyang Hmong"] = "hmy", ["Southern Haida"] = "hax", ["Southern Hindko"] = "hnd", ["Southern Kalapuya"] = "sxk", ["Southern Kalinga"] = "ksc", ["Southern Kam"] = "kmc", ["Southern Khanty"] = "kca-sou", ["Southern Kissi"] = "kss", ["Southern Kiwai"] = "kjd", ["Southern Kurdish"] = "sdh", ["Southern Lolopo"] = "ysp", ["Southern Lorung"] = "lrr", ["Southern Luri"] = "luz", ["Southern Ma'di"] = "snm", ["Southern Mansi"] = "mns-sou", ["Southern Mashan Hmong"] = "hma", ["Southern Mnong"] = "mnn", ["Southern Muji"] = "ymc", ["Southern Ndebele"] = "nr", ["Southern Ngbandi"] = "nbw", ["Southern Nicobarese"] = "nik", ["Southern Nisu"] = "nsd", ["Southern Nuni"] = "nnw", ["Southern Ohlone"] = "css", ["Southern One"] = "osu", ["Southern Pame"] = "pmz", ["Southern Pinghua"] = "csp", ["Southern Pomo"] = "peq", ["Southern Puebla Mixtec"] = "mit", ["Southern Puget Sound Salish"] = "slh", ["Southern Pumi"] = "pmj", ["Southern Qiandong Miao"] = "hms", ["Southern Qiang"] = "qxs", ["Southern Rengma Naga"] = "nre", ["Southern Rincon Zapotec"] = "zsr", ["Southern Roglai"] = "rgs", ["Southern Sama"] = "ssb", ["Southern Sami"] = "sma", ["Southern Samo"] = "sbd", ["Southern Selkup"] = "sel-sou", ["Southern Sierra Miwok"] = "skd", ["Southern Thai"] = "sou", ["Southern Tidung"] = "itd", ["Southern Tiwa"] = "tix", ["Southern Toussian"] = "wib", ["Southern Tujia"] = "tjs", ["Southern Tutchone"] = "tce", ["Southern Valley Yokuts"] = "yok-svy", ["Southern Yukaghir"] = "yux", ["Southwest Gbaya"] = "gso", ["Southwest Palawano"] = "plv", ["Southwest Pashayi"] = "psh", ["Southwest Tanna"] = "nwi", ["Southwestern Bontoc"] = "vbk", ["Southwestern Dinka"] = "dik", ["Southwestern Fars"] = "fay", ["Southwestern Guiyang Hmong"] = "hmg", ["Southwestern Huishui Hmong"] = "hmh", ["Southwestern Nisu"] = "nsv", ["Southwestern Tamang"] = "tsf", ["Southwestern Tarahumara"] = "twr", ["Southwestern Tepehuan"] = "tla", ["Southwestern Tlaxiaco Mixtec"] = "meh", ["Sowa"] = "sww", ["Sowanda"] = "sow", ["Soyaltepec Mazatec"] = "vmp", ["Soyaltepec Mixtec"] = "vmq", ["Spanish"] = "es", ["Spanish Sign Language"] = "ssp", ["Spiti Bhoti"] = "spt", ["Spokane"] = "spo", ["Squamish"] = "squ", ["Sranan Tongo"] = "srn", ["Sri Lankan Creole Malay"] = "sci", ["Sri Lankan Sign Language"] = "sqs", ["Stod Bhoti"] = "sbu", ["Stoney"] = "sto", ["Suabo"] = "szp", ["Suarmin"] = "seo", ["Suau"] = "swp", ["Suba"] = "sxb", ["Suba-Simbiti"] = "ssc", ["Subi"] = "xsj", ["Subiya"] = "sbs", ["Subtiaba"] = "sut", ["Sudanese Arabic"] = "apd", ["Sudest"] = "tgo", ["Sudovian"] = "xsv", ["Suena"] = "sue", ["Suga"] = "sgi", ["Suganga"] = "sug", ["Sugut Dusun"] = "kzs", ["Sui"] = "swi", ["Suki"] = "sui", ["Suku"] = "sub", ["Sukuma"] = "suk", ["Sukur"] = "syk", ["Sukurum"] = "zsu", ["Sula"] = "szn", ["Sulka"] = "sua", ["Sulod"] = "srg", ["Sulung"] = "suv", ["Suma"] = "sqm", ["Sumariup"] = "siv", ["Sumau"] = "six", ["Sumbawa"] = "smw", ["Sumbwa"] = "suw", ["Sumerian"] = "sux", ["Sumtu Chin"] = "csv", ["Sunam"] = "ssk", ["Sundanese"] = "su", ["Sungwadaga"] = "mwo", ["Sungwadia"] = "mrb", ["Sunum"] = "ymn", ["Sunwar"] = "suz", ["Suoy"] = "syo", ["Supyire"] = "spp", ["Sur"] = "tdl", ["Surbakhal"] = "sbj", ["Suri"] = "suq", ["Surigaonon"] = "sgd", ["Surjapuri"] = "sjp", ["Sursurunga"] = "sgz", ["Suruahá"] = "swx", ["Surubu"] = "sde", ["Suruí"] = "sru", ["Suruí Do Pará"] = "mdz", ["Susquehannock"] = "sqn", ["Susu"] = "sus", ["Susuami"] = "ssu", ["Suundi"] = "sdj", ["Suwawa"] = "swu", ["Suyá"] = "suy", ["Svan"] = "sva", ["Swabian"] = "swg", ["Swahili"] = "sw", ["Swampy Cree"] = "csw", ["Swazi"] = "ss", ["Swedish"] = "sv", ["Swedish Sign Language"] = "swl", ["Swiss-French Sign Language"] = "ssr", ["Swiss-German Sign Language"] = "sgg", ["Swiss-Italian Sign Language"] = "slf", ["Swo"] = "sox", ["Syenara Senoufo"] = "shz", ["Sylheti"] = "syl", ["Sácata"] = "sai-sac", ["São Paulo Kaingáng"] = "zkp", ["Sãotomense"] = "cri", ["Sìcìté Sénoufo"] = "sep", ["Sîshëë"] = "sih", ["Sô"] = "sss", ["T'en"] = "tct", ["Taabwa"] = "tap", ["Tabaa Zapotec"] = "zat", ["Tabancale"] = "sai-tab", ["Tabaru"] = "tby", ["Tabasaran"] = "tab", ["Tabasco Chontal"] = "chf", ["Tabasco Nahuatl"] = "nhc", ["Tabasco Zoque"] = "zoq", ["Tabla"] = "tnm", ["Tabo"] = "knv", ["Tabriak"] = "tzx", ["Tacahua Mixtec"] = "xtt", ["Tacana"] = "tna", ["Tachawit"] = "shy", ["Tadaksahak"] = "dsq", ["Tadyawan"] = "tdy", ["Tae'"] = "rob", ["Tafi"] = "tcd", ["Tafreshi"] = "xme-taf", ["Tagabawa"] = "bgs", ["Tagakaulu Kalagan"] = "klg", ["Tagal Murut"] = "mvv", ["Tagalog"] = "tl", ["Tagbanwa"] = "tbw", ["Tagbu"] = "tbm", ["Tagdal"] = "tda", ["Tagish"] = "tgx", ["Tagoi"] = "tag", ["Tagwana Senoufo"] = "tgw", ["Tahitian"] = "ty", ["Tahltan"] = "tht", ["Tai"] = "taw", ["Tai Daeng"] = "tyr", ["Tai Dam"] = "blt", ["Tai Do"] = "tyj", ["Tai Dón"] = "twh", ["Tai Hang Tong"] = "thc", ["Tai Hongjin"] = "tiz", ["Tai Laing"] = "tjl", ["Tai Loi"] = "tlq", ["Tai Long"] = "thi", ["Tai Nüa"] = "tdd", ["Tai Pao"] = "tpo", ["Tai Thanh"] = "tmm", ["Tai Ya"] = "cuu", ["Taiap"] = "gpn", ["Taikat"] = "aos", ["Taimyr Pidgin Russian"] = "crp-tpr", ["Tainae"] = "ago", ["Tairuma"] = "uar", ["Taishanese"] = "zhx-tai", ["Taita"] = "dav", ["Taivoan"] = "tvx", ["Taiwan Sign Language"] = "tss", ["Taje"] = "pee", ["Tajik"] = "tg", ["Tajiki Arabic"] = "abh", ["Tajio"] = "tdj", ["Tajuasohn"] = "tja", ["Takelma"] = "tkm", ["Takia"] = "tbc", ["Takua"] = "tkz", ["Takuu"] = "nho", ["Takwane"] = "tke", ["Tal"] = "tal", ["Tala"] = "tak", ["Talaud"] = "tld", ["Taliabu"] = "tlv", ["Talieng"] = "tdf", ["Talinga-Bwisi"] = "tlj", ["Talise"] = "tlr", ["Tallán"] = "sai-tal", ["Talodi"] = "tlo", ["Taloki"] = "tlk", ["Talondo'"] = "tln", ["Talossan"] = "tzl", ["Talu"] = "yta", ["Talysh"] = "tly", ["Tama (Chad)"] = "tma", ["Tama (Colombia)"] = "ten", ["Tamagario"] = "tcg", ["Tamambo"] = "mla", ["Taman (Indonesia)"] = "tmn", ["Taman (Myanmar)"] = "tcl", ["Tamanaku"] = "tmz", ["Tamazola Mixtec"] = "vmx", ["Tambas"] = "tdk", ["Tambora"] = "xxt", ["Tambotalo"] = "tls", ["Tambunan Dusun"] = "kzt", ["Tami"] = "tmy", ["Tamil"] = "ta", ["Tamki"] = "tax", ["Tamnim Citak"] = "tml", ["Tampias Lobu"] = "low", ["Tampuan"] = "tpu", ["Tampulma"] = "tpm", ["Tanacross"] = "tcb", ["Tanahmerah"] = "tcm", ["Tanapag"] = "tpv", ["Tanchangya"] = "tnv", ["Tandaganon"] = "tgn", ["Tandia"] = "tni", ["Tanema"] = "tnx", ["Tangale"] = "tan", ["Tangam"] = "sit-tgm", ["Tanggu"] = "tgu", ["Tangkhul Naga"] = "nmf", ["Tangko"] = "tkx", ["Tangoa"] = "tgp", ["Tangsa"] = "nst", ["Tanguat"] = "tbs", ["Tangut"] = "txg", ["Tangwang"] = "mis-tnw", ["Tanimbili"] = "tbe", ["Tanimuca-Retuarã"] = "tnc", ["Tanjijili"] = "uji", ["Tanudan Kalinga"] = "kml", ["Tanzanian Sign Language"] = "tza", ["Taos"] = "twf", ["Tapachultec"] = "nai-tap", ["Taparita"] = "sai-tpr", ["Tapayuna"] = "sai-tap", ["Tapeba"] = "tbb", ["Tapei"] = "afp", ["Tapieté"] = "tpj", ["Tapirapé"] = "taf", ["Tar Gula"] = "kcm", ["Tara Baka"] = "bdh", ["Tarairiú"] = "sai-trr", ["Tarantino"] = "roa-tar", ["Tarao"] = "tro", ["Taraon"] = "mhu", ["Tareng"] = "tgr", ["Tariana"] = "tae", ["Tarifit"] = "rif", ["Tarjumo"] = "txj", ["Tarok"] = "yer", ["Taroko"] = "trv", ["Tarpia"] = "tpf", ["Tartessian"] = "txr", ["Taruma"] = "tdm", ["Tasawaq"] = "twq", ["Tashelhit"] = "shi", ["Tasmate"] = "tmt", ["Tat"] = "ttt", ["Tataltepec Chatino"] = "cta", ["Tatana"] = "txx", ["Tatar"] = "tt", ["Tataviam"] = "azc-tat", ["Tatuyo"] = "tav", ["Tauade"] = "ttd", ["Taulil"] = "tuh", ["Taungyo"] = "tco", ["Taupota"] = "tpa", ["Tause"] = "tad", ["Taushiro"] = "trr", ["Tausug"] = "tsg", ["Tauya"] = "tya", ["Taveta"] = "tvs", ["Tavoyan"] = "tvn", ["Tavringer Romani"] = "rmu", ["Tawala"] = "tbo", ["Tawandê"] = "xtw", ["Tawang Monpa"] = "twm", ["Tawasa"] = "nai-taw", ["Taworta"] = "tbp", ["Tawoyan"] = "twy", ["Tawr Chin"] = "tcp", ["Tay Khang"] = "tnu", ["Tayabas Ayta"] = "ayy", ["Taymanitic"] = "sem-tay", ["Tayo"] = "cks", ["Taíno"] = "tnq", ["Tboli"] = "tbl", ["Tchitchege"] = "tck", ["Tchumbuli"] = "bqa", ["Te'un"] = "tve", ["Teanu"] = "tkw", ["Tebul Sign Language"] = "tsy", ["Tebul Ure Dogon"] = "dtu", ["Tecpatlán Totonac"] = "tcw", ["Tedaga"] = "tuq", ["Tedim Chin"] = "ctd", ["Tee"] = "tkq", ["Tefaro"] = "tfo", ["Tegali"] = "ras", ["Tehit"] = "kps", ["Tehuelche"] = "teh", ["Teiwa"] = "twe", ["Tejalapan Zapotec"] = "ztt", ["Teke-Fuumu"] = "ifm", ["Teke-Kukuya"] = "kkw", ["Teke-Laali"] = "lli", ["Teke-Tege"] = "teg", ["Teke-Tsaayi"] = "tyi", ["Teke-Tyee"] = "tyx", ["Tektiteko"] = "ttc", ["Tela-Masbuar"] = "tvm", ["Telefol"] = "tlf", ["Telugu"] = "te", ["Teluti"] = "tlt", ["Tem"] = "kdh", ["Temascaltepec Nahuatl"] = "nhv", ["Tembé"] = "tqb", ["Teme"] = "tdo", ["Temein"] = "teq", ["Temi"] = "soz", ["Temiar"] = "tea", ["Temne"] = "tem", ["Temoaya Otomi"] = "ott", ["Temoq"] = "tmo", ["Tempasuk Dusun"] = "tdu", ["Ten'edn"] = "tnz", ["Tenango Otomi"] = "otn", ["Tene Kan Dogon"] = "dtk", ["Tenggarong Kutai Malay"] = "vkt", ["Tengger"] = "tes", ["Tenharim"] = "pah", ["Tenino"] = "tqn", ["Tenis"] = "tns", ["Tennet"] = "tex", ["Teochew"] = "nan-tws", ["Teojomulco Chatino"] = "omq-teo", ["Teop"] = "tio", ["Teor"] = "tev", ["Tepecano"] = "tep", ["Tepetotutla Chinantec"] = "cnt", ["Tepeuxila Cuicatec"] = "cux", ["Tepinapa Chinantec"] = "cte", ["Tepo Krumen"] = "ted", ["Teposcolula Mixtec"] = "omq-tel", ["Tequistlatec"] = "nai-teq", ["Ter Sami"] = "sjt", ["Tera"] = "ttr", ["Terebu"] = "trb", ["Terei"] = "buo", ["Terengganu Malay"] = "poz-ter", ["Tereno"] = "ter", ["Teressa"] = "tef", ["Tereweng"] = "twg", ["Teribe"] = "tfr", ["Terik"] = "tec", ["Termanu"] = "twu", ["Ternate"] = "tft", ["Ternateño"] = "tmg", ["Tese"] = "keg", ["Teshenawa"] = "twc", ["Tetela"] = "tll", ["Tetelcingo Nahuatl"] = "nhg", ["Tetete"] = "teb", ["Tetserret"] = "tez", ["Tetum"] = "tet", ["Tetun Dili"] = "tdt", ["Teushen"] = "sai-teu", ["Teutila Cuicatec"] = "cut", ["Tewa"] = "tew", ["Texcatepec Otomi"] = "otx", ["Texistepec Popoluca"] = "poq", ["Texmelucan Zapotec"] = "zpz", ["Tezoatlán Mixtec"] = "mxb", ["Tha"] = "thy", ["Thachanadan"] = "thn", ["Thado Chin"] = "tcz", ["Thai"] = "th", ["Thai Mon"] = "mnw-tha", ["Thai Sign Language"] = "tsq", ["Thai Song"] = "soa", ["Thaiphum Chin"] = "cth", ["Thakali"] = "ths", ["Thamudic"] = "sem-tha", ["Thangal Naga"] = "nki", ["Thangmi"] = "thf", ["Thao"] = "ssf", ["Tharaka"] = "thk", ["Tharrgari"] = "dhr", ["Thavung"] = "thm", ["Thawa"] = "xtv", ["Tho"] = "tou", ["Thompson"] = "thp", ["Thopho"] = "ytp", ["Thracian"] = "txh", ["Thu Lao"] = "tyl", ["Thulung"] = "tdh", ["Thurawal"] = "tbh", ["Thuri"] = "thu", ["Tiagbamrin Aizi"] = "ahi", ["Tiale"] = "mnl", ["Tiang"] = "tbj", ["Tibea"] = "ngy", ["Tibetan"] = "bo", ["Ticuna"] = "tca", ["Tidaá Mixtec"] = "mtx", ["Tidore"] = "tvo", ["Tiemacèwè Bozo"] = "boo", ["Tiene"] = "tii", ["Tifal"] = "tif", ["Tigak"] = "tgc", ["Tigon Mbembe"] = "nza", ["Tigre"] = "tig", ["Tigrinya"] = "ti", ["Tii"] = "txq", ["Tijaltepec Mixtec"] = "xtl", ["Tikar"] = "tik", ["Tikopia"] = "tkp", ["Tilapa Otomi"] = "otl", ["Tillamook"] = "til", ["Tilquiapan Zapotec"] = "zts", ["Tilung"] = "tij", ["Tima"] = "tms", ["Timbe"] = "tim", ["Timor Pidgin"] = "tvy", ["Timote"] = "sai-tim", ["Timucua"] = "tjm", ["Timugon Murut"] = "tih", ["Tinani"] = "lbf", ["Tindi"] = "tin", ["Tingui-Boto"] = "tgv", ["Tinigua"] = "tit", ["Tinoc Kallahan"] = "tne", ["Tinputz"] = "tpz", ["Tipai"] = "nai-tip", ["Tippera"] = "tpe", ["Tira"] = "tic", ["Tirahi"] = "tra", ["Tiranige Diga Dogon"] = "tde", ["Tirax"] = "mme", ["Tircul"] = "pyx", ["Tiruray"] = "tiy", ["Tita"] = "tdq", ["Titan"] = "ttv", ["Tiv"] = "tiv", ["Tiwa"] = "lax", ["Tiwi"] = "tiw", ["Tiéfo"] = "tiq", ["Tiéyaxo Bozo"] = "boz", ["Tjurruru"] = "tju", ["Tlachichilco Tepehua"] = "tpt", ["Tlacoapa Me'phaa"] = "tpl", ["Tlacoatzintepec Chinantec"] = "ctl", ["Tlacolulita Zapotec"] = "zpk", ["Tlahuica"] = "ocu", ["Tlahuitoltepec Mixe"] = "mxp", ["Tlamacazapa Nahuatl"] = "nuz", ["Tlazoyaltepec Mixtec"] = "mqh", ["Tlingit"] = "tli", ["To"] = "toz", ["To'abaita"] = "mlu", ["Toaripi"] = "tqo", ["Toba"] = "tob", ["Toba Batak"] = "bbc", ["Toba-Maskoy"] = "tmf", ["Tobagonian Creole English"] = "tgh", ["Tobanga"] = "tng", ["Tobati"] = "tti", ["Tobelo"] = "tlb", ["Tobian"] = "tox", ["Tobilung"] = "tgb", ["Tobo"] = "tbv", ["Tocantins Asurini"] = "asu", ["Tocharian A"] = "xto", ["Tocharian B"] = "txb", ["Tocho"] = "taz", ["Toda"] = "tcx", ["Todrah"] = "tdr", ["Tofa"] = "kim", ["Tofanma"] = "tlg", ["Tofin Gbe"] = "tfi", ["Togbo-Vara Banda"] = "tor", ["Togoyo"] = "tgy", ["Tojolabal"] = "toj", ["Tok Pisin"] = "tpi", ["Toka-Leya"] = "dov", ["Tokano"] = "zuh", ["Tokelauan"] = "tkl", ["Toki Pona"] = "tok", ["Tokunoshima"] = "tkn", ["Tol"] = "jic", ["Tolai"] = "ksd", ["Tolaki"] = "lbw", ["Tolomako"] = "tlm", ["Tolowa"] = "tol", ["Toloza"] = "ytl", ["Toma"] = "tod", ["Tomadino"] = "tdi", ["Tombelala"] = "ttp", ["Tombonuo"] = "txa", ["Tombulu"] = "tom", ["Tomini"] = "txm", ["Tommeginne"] = "xpv", ["Tommo So"] = "dto", ["Tomo Kan Dogon"] = "dtm", ["Tomoip"] = "tqp", ["Tondano"] = "tdn", ["Tonga (Malawi)"] = "tog", ["Tonga (Mozambique)"] = "toh", ["Tonga (Zambia)"] = "toi", ["Tongan"] = "to", ["Tongwe"] = "tny", ["Tonjon"] = "tjn", ["Tonkawa"] = "tqw", ["Tonsawang"] = "tnw", ["Tonsea"] = "txs", ["Tontemboan"] = "tnt", ["Toogee"] = "xpx", ["Tooro"] = "ttj", ["Topoiyo"] = "toy", ["Toposa"] = "toq", ["Toraja-Sa'dan"] = "sda", ["Toram"] = "trj", ["Torau"] = "ttu", ["Toro"] = "tdv", ["Toro So Dogon"] = "dts", ["Toro Tegu Dogon"] = "dtt", ["Toromono"] = "tno", ["Torona"] = "tqr", ["Torres Strait Creole"] = "tcs", ["Torricelli"] = "tei", ["Torricelli Yau"] = "yyu", ["Torwali"] = "trw", ["Torá"] = "trz", ["Tosu"] = "sit-tos", ["Totela"] = "ttl", ["Toto"] = "txo", ["Totoli"] = "txe", ["Totomachapan Zapotec"] = "zph", ["Totontepec Mixe"] = "mto", ["Totoro"] = "ttk", ["Touo"] = "tqu", ["Toura"] = "neb", ["Towei"] = "ttn", ["Translingual"] = "mul", ["Transylvanian Saxon"] = "gmw-tsx", ["Traveller Danish"] = "rmd", ["Traveller Norwegian"] = "rmg", ["Traveller Scottish"] = "trl", ["Tregami"] = "trm", ["Tremembé"] = "tme", ["Trieng"] = "stg", ["Trimuris"] = "tip", ["Tring"] = "tgq", ["Tringgus"] = "trx", ["Trinidad and Tobago Sign Language"] = "lst", ["Trinidadian Creole English"] = "trf", ["Trinitario"] = "trn", ["Trió"] = "tri", ["Truká"] = "tka", ["Trumai"] = "tpy", ["Ts'ün-Lao"] = "tsl", ["Tsaangi"] = "tsa", ["Tsafiki"] = "cof", ["Tsakhur"] = "tkr", ["Tsakonian"] = "tsd", ["Tsakwambo"] = "kvz", ["Tsamai"] = "tsb", ["Tsat"] = "huq", ["Tsetsaut"] = "txc", ["Tsez"] = "ddo", ["Tshangla"] = "tsj", ["Tshobdun"] = "sit-tsh", ["Tshwa"] = "hio", ["Tsikimba"] = "kdl", ["Tsimané"] = "cas", ["Tsimshian"] = "tsi", ["Tsishingini"] = "tsw", ["Tso"] = "ldp", ["Tsogo"] = "tsv", ["Tsonga"] = "ts", ["Tsotsitaal"] = "fly", ["Tsou"] = "tsu", ["Tsucuba"] = "cbq", ["Tsum"] = "ttz", ["Tsuut'ina"] = "srs", ["Tsuvadi"] = "tvd", ["Tsuvan"] = "tsh", ["Tswa"] = "tsc", ["Tswana"] = "tn", ["Tswapong"] = "two", ["Tuamotuan"] = "pmt", ["Tuareg"] = "tmh", ["Tubar"] = "tbu", ["Tucano"] = "tuo", ["Tugen"] = "tuy", ["Tugun"] = "tzn", ["Tugutil"] = "tuj", ["Tukang Besi North"] = "khc", ["Tukang Besi South"] = "bhq", ["Tuki"] = "bag", ["Tukpa"] = "tpq", ["Tukudede"] = "tkd", ["Tukumanféd"] = "tkf", ["Tula"] = "tul", ["Tule-Kaweah Yokuts"] = "yok-tky", ["Tulehu"] = "tlu", ["Tulishi"] = "tey", ["Tulu"] = "tcy", ["Tulu-Bohuai"] = "rak", ["Tulua"] = "aus-tul", ["Tuma-Irumu"] = "iou", ["Tumak"] = "tmc", ["Tumbuka"] = "tum", ["Tumi"] = "kku", ["Tumleo"] = "tmq", ["Tumshuqese"] = "xtq", ["Tumtum"] = "tbr", ["Tumulung Sisaala"] = "sil", ["Tundra Enets"] = "enh", ["Tundra Nenets"] = "yrk", ["Tunen"] = "tvu", ["Tungag"] = "lcm", ["Tunggare"] = "trt", ["Tunia"] = "tug", ["Tunica"] = "tun", ["Tunisian Arabic"] = "aeb", ["Tunisian Berber"] = "sds", ["Tunisian Sign Language"] = "tse", ["Tunjung"] = "tjg", ["Tunni"] = "tqq", ["Tunumiisut"] = "esx-tut", ["Tunzu"] = "dza", ["Tuoba"] = "mis-tuo", ["Tuotomb"] = "ttf", ["Tuparí"] = "tpr", ["Tupinambá"] = "tpn", ["Tupinikin"] = "tpk", ["Tupuri"] = "tui", ["Turaka"] = "trh", ["Turi"] = "trd", ["Turiwára"] = "twt", ["Turka"] = "tuz", ["Turkana"] = "tuv", ["Turkish"] = "tr", ["Turkish Sign Language"] = "tsm", ["Turkmen"] = "tk", ["Turks and Caicos Creole English"] = "tch", ["Turoyo"] = "tru", ["Turumsa"] = "tqm", ["Turung"] = "try", ["Tuscarora"] = "tus", ["Tutelo"] = "tta", ["Tutong"] = "ttg", ["Tutsa Naga"] = "tvt", ["Tutuba"] = "tmi", ["Tututepec Mixtec"] = "mtu", ["Tututni"] = "tuu", ["Tuvaluan"] = "tvl", ["Tuvan"] = "tyv", ["Tuwali Ifugao"] = "ifk", ["Tuwari"] = "tww", ["Tuwuli"] = "bov", ["Tuxináwa"] = "tux", ["Tuxá"] = "tud", ["Tuyuca"] = "tue", ["Tuyuhun"] = "mis-tuh", ["Twana"] = "twa", ["Twendi"] = "twn", ["Tyap"] = "kcg", ["Tyaraity"] = "woa", ["Tyerrernotepanner"] = "xph", ["Tz'utujil"] = "tzj", ["Tzeltal"] = "tzh", ["Tzotzil"] = "tzo", ["Tày"] = "tyz", ["Tày Tac"] = "tyt", ["Tây Bồi"] = "tas", ["Téén"] = "lor", ["Tîrî"] = "cir", ["Tübatulabal"] = "tub", ["U"] = "uuu", ["Uab Meto"] = "aoz", ["Uamué"] = "uam", ["Uare"] = "ksj", ["Ubaghara"] = "byc", ["Ubang"] = "uba", ["Ubi"] = "ubi", ["Ubir"] = "ubr", ["Ubykh"] = "uby", ["Ucayali-Yurúa Ashéninka"] = "cpb", ["Uda"] = "uda", ["Udi"] = "udi", ["Udihe"] = "ude", ["Udmurt"] = "udm", ["Uduk"] = "udu", ["Ufim"] = "ufi", ["Ugandan Sign Language"] = "ugn", ["Ugaritic"] = "uga", ["Ughele"] = "uge", ["Uhami"] = "uha", ["Uisai"] = "uis", ["Ujir"] = "udj", ["Ukaan"] = "kcf", ["Ukhwejo"] = "ukh", ["Ukit"] = "umi", ["Ukpe-Bayobiri"] = "ukp", ["Ukpet-Ehom"] = "akd", ["Ukrainian"] = "uk", ["Ukrainian Sign Language"] = "ukl", ["Ukue"] = "uku", ["Ukuriguma"] = "ukg", ["Ukwa"] = "ukq", ["Ukwuani-Aboh-Ndoni"] = "ukw", ["Ulau-Suain"] = "svb", ["Ulch"] = "ulc", ["Uldeme"] = "udl", ["Ulithian"] = "uli", ["Ullatan"] = "ull", ["Ulumanda'"] = "ulm", ["Ulwa"] = "ulw", ["Uma"] = "ppk", ["Uma' Lasan"] = "xky", ["Uma' Lung"] = "ulu", ["Umanakaina"] = "gdn", ["Umatilla"] = "uma", ["Umbindhamu"] = "umd", ["Umbrian"] = "xum", ["Umbu-Ungu"] = "ubu", ["Umbugarla"] = "umr", ["Umbundu"] = "umb", ["Umbuygamu"] = "umg", ["Ume Sami"] = "sju", ["Umeda"] = "upi", ["Umiida"] = "xud", ["Umiray Dumaget Agta"] = "due", ["Umon"] = "umm", ["Umotína"] = "umo", ["Umpila"] = "ump", ["Una"] = "mtg", ["Unami"] = "unm", ["Unde Kaili"] = "unz", ["Undetermined"] = "und", ["Uneapa"] = "bbn", ["Uneme"] = "une", ["Unggaranggu"] = "xun", ["Unggumi"] = "xgu", ["Unserdeutsch"] = "uln", ["Unua"] = "onu", ["Unubahe"] = "unu", ["Uokha"] = "uok", ["Upper Chehalis"] = "cjh", ["Upper Grand Valley Dani"] = "dna", ["Upper Kinabatangan"] = "dmg", ["Upper Kuskokwim"] = "kuu", ["Upper Necaxa Totonac"] = "tku", ["Upper Sorbian"] = "hsb", ["Upper Ta'oih"] = "tth", ["Upper Tanana"] = "tau", ["Upper Taromi"] = "tov", ["Upper Umpqua"] = "xup", ["Ura (Papua New Guinea)"] = "uro", ["Ura (Vanuatu)"] = "uur", ["Uradhi"] = "urf", ["Urak Lawoi'"] = "urk", ["Urali"] = "url", ["Urapmin"] = "urm", ["Urarina"] = "ura", ["Urartian"] = "xur", ["Urat"] = "urt", ["Urdu"] = "ur", ["Urhobo"] = "urh", ["Uri"] = "uvh", ["Urigina"] = "urg", ["Urim"] = "uri", ["Urimo"] = "urx", ["Urningangg"] = "urc", ["Uru"] = "ure", ["Uru-Eu-Wau-Wau"] = "urz", ["Uru-Pa-In"] = "urp", ["Uruangnirin"] = "urn", ["Uruava"] = "urv", ["Urubú-Kaapor"] = "urb", ["Uruguayan Sign Language"] = "ugy", ["Urum"] = "uum", ["Urumi"] = "uru", ["Usaghade"] = "usk", ["Usan"] = "wnu", ["Usarufa"] = "usa", ["Ushojo"] = "ush", ["Usila Chinantec"] = "cuc", ["Uspanteco"] = "usp", ["Usui"] = "usi", ["Utarmbung"] = "omo", ["Ute"] = "ute", ["Utu"] = "utu", ["Uvbie"] = "evh", ["Uwinymil"] = "aus-uwi", ["Uya"] = "usu", ["Uyajitaya"] = "duk", ["Uyghur"] = "ug", ["Uzbek"] = "uz", ["Uzbeki Arabic"] = "auz", ["Uzekwe"] = "eze", ["Vaagri Booli"] = "vaa", ["Vaghri"] = "vgr", ["Vaghua"] = "tva", ["Vagla"] = "vag", ["Vai"] = "vai", ["Vaiphei"] = "vap", ["Vale"] = "vae", ["Valencian Sign Language"] = "vsv", ["Valle Nacional Chinantec"] = "cvn", ["Valley Maidu"] = "vmv", ["Valman"] = "van", ["Valpei"] = "vlp", ["Vamale"] = "mkt", ["Vame"] = "mlr", ["Vandalic"] = "xvn", ["Vangunu"] = "mpr", ["Vanimo"] = "vam", ["Vanji"] = "ira-wnj", ["Vanuma"] = "vau", ["Vao"] = "vao", ["Varhadi"] = "vah", ["Varisi"] = "vrs", ["Varli"] = "vav", ["Vasavi"] = "vas", ["Vayu"] = "vay", ["Veddah"] = "ved", ["Vehes"] = "val", ["Vemgo-Mabas"] = "vem", ["Venda"] = "ve", ["Venetan"] = "vec", ["Venetic"] = "xve", ["Venezuelan Sign Language"] = "vsl", ["Ventureño"] = "veo", ["Veps"] = "vep", ["Vera'a"] = "vra", ["Vestinian"] = "xvs", ["Vidunda"] = "vid", ["Viemo"] = "vig", ["Vietnamese"] = "vi", ["Vilamovian"] = "wym", ["Vilela"] = "vil", ["Vili"] = "vif", ["Villa Viciosa Agta"] = "dyg", ["Vincentian Creole English"] = "svc", ["Virgin Islands Creole"] = "vic", ["Vishavan"] = "vis", ["Viti"] = "vit", ["Vitou"] = "vto", ["Viya"] = "gev", ["Vlax Romani"] = "rmy", ["Volapük"] = "vo", ["Volga German"] = "gmw-vog", ["Volscian"] = "xvo", ["Vono"] = "kch", ["Voro"] = "vor", ["Votic"] = "vot", ["Vumbu"] = "vum", ["Vunapu"] = "vnp", ["Vunjo"] = "vun", ["Vurës"] = "msn", ["Vute"] = "vut", ["Võro"] = "vro", ["Wa"] = "wbm", ["Wa'ema"] = "wag", ["Waama"] = "wwa", ["Waamwang"] = "wmn", ["Wab"] = "wab", ["Wabo"] = "wbb", ["Waboda"] = "kmx", ["Waci Gbe"] = "wci", ["Wadaginam"] = "wdg", ["Waddar"] = "wbq", ["Wadi Wadi"] = "xwd", ["Wadiyara Koli"] = "kxp", ["Wadjabangayi"] = "wdy", ["Wadjiginy"] = "wdj", ["Wadjigu"] = "wdu", ["Wae Rana"] = "wrx", ["Waffa"] = "waj", ["Wagawaga"] = "wgb", ["Wagaya"] = "wga", ["Wagdi"] = "wbr", ["Wageman"] = "waq", ["Wagi"] = "fad", ["Wahau Kayan"] = "whu", ["Wahau Kenyah"] = "whk", ["Wahgi"] = "wgi", ["Waigali"] = "wbk", ["Waigeo"] = "wgo", ["Waikuri"] = "nai-wai", ["Wailaki"] = "wlk", ["Wailapa"] = "wlr", ["Waima'a"] = "wmh", ["Waimaha"] = "bao", ["Waimiri-Atroari"] = "atr", ["Wainumá"] = "awd-wai", ["Waioli"] = "wli", ["Waitaká"] = "sai-wai", ["Waiwai"] = "waw", ["Waja"] = "wja", ["Wajarri"] = "wbv", ["Wajuk"] = "xwj", ["Waka"] = "wav", ["Wakawaka"] = "wkw", ["Wakhi"] = "wbl", ["Wakoná"] = "waf", ["Wala"] = "lgl", ["Walak"] = "wlw", ["Walangama"] = "nlw", ["Wali (Ghana)"] = "wlx", ["Wali (Sudan)"] = "wll", ["Waling"] = "wly", ["Walio"] = "wla", ["Walla Walla"] = "waa", ["Wallisian"] = "wls", ["Walloon"] = "wa", ["Walmajarri"] = "wmt", ["Wam"] = "wmo", ["Wamas"] = "wmc", ["Wambaya"] = "wmb", ["Wambon"] = "wms", ["Wambule"] = "wme", ["Wamey"] = "cou", ["Wamin"] = "wmi", ["Wampar"] = "lbq", ["Wampur"] = "waz", ["Wan"] = "wan", ["Wanambre"] = "wnb", ["Wanap"] = "wnp", ["Wancho"] = "nnp", ["Wanda"] = "wbh", ["Wandala"] = "mfi", ["Wandamen"] = "wad", ["Wandarang"] = "wnd", ["Wandji"] = "wdd", ["Waneci"] = "wne", ["Wanga"] = "lwg", ["Wanggamala"] = "wnm", ["Wangganguru"] = "wgg", ["Wanggom"] = "wng", ["Wangkayutyuru"] = "wky", ["Wangkumara"] = "xwk", ["Wanham"] = "sai-wnm", ["Wanji"] = "wbi", ["Wanman"] = "wbt", ["Wannu"] = "jub", ["Wano"] = "wno", ["Wantoat"] = "wnc", ["Wanukaka"] = "wnk", ["Wanyi"] = "wny", ["Wané"] = "hwa", ["Wapan"] = "juk", ["Wapishana"] = "wap", ["Wappo"] = "wao", ["War-Jaintia"] = "aml", ["Wara"] = "wbf", ["Warao"] = "wba", ["Warapu"] = "wra", ["Waray Sorsogon"] = "srv", ["Waray-Waray"] = "war", ["Wardaman"] = "wrr", ["Wardandi"] = "wxw", ["Warekena"] = "gae", ["Warembori"] = "wsa", ["Wari'"] = "pav", ["Waris"] = "wrs", ["Waritai"] = "wbe", ["Wariyangga"] = "wri", ["Warji"] = "wji", ["Warkay-Bipim"] = "bgv", ["Warlmanpa"] = "wrl", ["Warlpiri"] = "wbp", ["Warluwara"] = "wrb", ["Warnang"] = "wrn", ["Waropen"] = "wrp", ["Warray"] = "wrz", ["Warrgamay"] = "wgy", ["Warrwa"] = "wwr", ["Waru"] = "wru", ["Warumungu"] = "wrm", ["Waruna"] = "wrv", ["Warungu"] = "wrg", ["Warwar Feni"] = "hrw", ["Wasa"] = "wss", ["Wasco-Wishram"] = "wac", ["Wasembo"] = "gsp", ["Washo"] = "was", ["Waskia"] = "wsk", ["Wastek"] = "hus", ["Wasu"] = "wsu", ["Watakataui"] = "wtk", ["Watam"] = "wax", ["Wathaurong"] = "wth", ["Watiwa"] = "wtf", ["Watubela"] = "wah", ["Waube"] = "kop", ["Wauja"] = "wau", ["Wauyai"] = "wuy", ["Wawa"] = "www", ["Wawonii"] = "wow", ["Waxiang"] = "wxa", ["Wayampi"] = "oym", ["Wayana"] = "way", ["Wayanad Chetti"] = "ctt", ["Wayoró"] = "wyr", ["Wayumara"] = "sai-way", ["Wayuu"] = "guc", ["Wedau"] = "wed", ["Weh"] = "weh", ["Welaung"] = "weu", ["Weliki"] = "klh", ["Welsh"] = "cy", ["Welsh Romani"] = "rmw", ["Wemale"] = "weo", ["Wemba-Wemba"] = "xww", ["Weme Gbe"] = "wem", ["Wendat"] = "wdt", ["Weri"] = "wer", ["Wersing"] = "kvw", ["West Albay Bikol"] = "fbl", ["West Ambae"] = "nnd", ["West Central Banda"] = "bbp", ["West Coast Bajau"] = "bdr", ["West Damar"] = "drn", ["West Flemish"] = "vls", ["West Frisian"] = "fy", ["West Greenlandic Pidgin"] = "crp-gep", ["West Lembata"] = "lmj", ["West Makian"] = "mqs", ["West Masela"] = "mss", ["West Tarangan"] = "txn", ["West Uvean"] = "uve", ["West-Central Limba"] = "lia", ["Western Apache"] = "apw", ["Western Arrernte"] = "are", ["Western Bolivian Guaraní"] = "gnw", ["Western Bru"] = "brv", ["Western Bukidnon Manobo"] = "mbb", ["Western Cham"] = "cja", ["Western Dani"] = "dnw", ["Western Durango Nahuatl"] = "azn", ["Western Fijian"] = "wyy", ["Western Gurung"] = "gvr", ["Western Highland Chatino"] = "ctp", ["Western Huasteca Nahuatl"] = "nhw", ["Western Jicaque"] = "nai-wji", ["Western Juxtlahuaca Mixtec"] = "jmx", ["Western Karaboro"] = "kza", ["Western Katu"] = "kuf", ["Western Kayah"] = "kyu", ["Western Keres"] = "kjq", ["Western Krahn"] = "krw", ["Western Lalu"] = "ywl", ["Western Lawa"] = "lcp", ["Western Magar"] = "mrd", ["Western Maninkakan"] = "mlq", ["Western Mari"] = "mrj", ["Western Mashan Hmong"] = "hmw", ["Western Meohang"] = "raf", ["Western Muria"] = "mut", ["Western Neo-Aramaic"] = "amw", ["Western Ojibwa"] = "ojw", ["Western Parbate Kham"] = "kjl", ["Western Penan"] = "pne", ["Western Pwo"] = "pwo", ["Western Sisaala"] = "ssl", ["Western Subanon"] = "suc", ["Western Tamang"] = "tdg", ["Western Tawbuid"] = "twb", ["Western Totonac"] = "tqt", ["Western Tunebo"] = "tnb", ["Western Xiangxi Miao"] = "mmr", ["Western Xwla Gbe"] = "xwl", ["Western Yugur"] = "ybe", ["Wewaw"] = "wea", ["Weyewa"] = "wew", ["White Gelao"] = "giw", ["White Hmong"] = "mww", ["White Lachi"] = "lwh", ["Whitesands"] = "tnp", ["Wiarumus"] = "tua", ["Wichita"] = "wic", ["Wichí Lhamtés Güisnay"] = "mzh", ["Wichí Lhamtés Nocten"] = "mtp", ["Wichí Lhamtés Vejoz"] = "wlv", ["Wik-Epa"] = "wie", ["Wik-Iiyanh"] = "wij", ["Wik-Keyangan"] = "wif", ["Wik-Me'anha"] = "wih", ["Wik-Mungkan"] = "wim", ["Wik-Ngathana"] = "wig", ["Wikalkan"] = "wik", ["Wikngenchera"] = "wua", ["Wilawila"] = "wil", ["Winnebago"] = "win", ["Wintu"] = "wnw", ["Winyé"] = "kst", ["Wipi"] = "gdr", ["Wiradjuri"] = "wrh", ["Wiraféd"] = "wir", ["Wirangu"] = "wgu", ["Wiru"] = "wiu", ["Wirö"] = "wpc", ["Wiwa"] = "mbp", ["Wiyot"] = "wiy", ["Wobé"] = "wob", ["Woccon"] = "xwc", ["Wogamusin"] = "wog", ["Wogeo"] = "woc", ["Woi"] = "wbw", ["Woiwurrung"] = "wyi", ["Wojenaka"] = "jod", ["Wolane"] = "wle", ["Wolani"] = "wod", ["Wolaytta"] = "wal", ["Woleaian"] = "woe", ["Wolio"] = "wlo", ["Wolof"] = "wo", ["Womo"] = "wmx", ["Wong-gie"] = "aus-won", ["Wongo"] = "won", ["Woods Cree"] = "cwd", ["Woria"] = "wor", ["Worimi"] = "kda", ["Worodougou"] = "jud", ["Worora"] = "wro", ["Wotapuri-Katarqalai"] = "wsv", ["Wotu"] = "wtw", ["Woun Meu"] = "noa", ["Written Oirat"] = "xwo", ["Wu"] = "wuu", ["Wudu"] = "wud", ["Wuhuan"] = "mis-wuh", ["Wulguru"] = "aus-wul", ["Wuliwuli"] = "wlu", ["Wulna"] = "wux", ["Wumboko"] = "bqm", ["Wumbvu"] = "wum", ["Wumeng"] = "ywu", ["Wunai Bunu"] = "bwn", ["Wunambal"] = "wub", ["Wurrugu"] = "wur", ["Wusa"] = "yig", ["Wushi"] = "bse", ["Wusi"] = "wsi", ["Wutung"] = "wut", ["Wutunhua"] = "wuh", ["Wuvulu-Aua"] = "wuv", ["Wyandot"] = "wya", ["Wára"] = "tci", ["Wãpha"] = "juw", ["Wè Southern"] = "gxx", ["Wè Western"] = "wec", ["Xadani Zapotec"] = "zax", ["Xakriabá"] = "xkr", ["Xamtanga"] = "xan", ["Xanaguía Zapotec"] = "ztg", ["Xavante"] = "xav", ["Xerénte"] = "xer", ["Xetá"] = "xet", ["Xhosa"] = "xh", ["Xianbei"] = "mis-xbi", ["Xiang"] = "hsn", ["Xibe"] = "sjo", ["Xicotepec de Juárez Totonac"] = "too", ["Xinca"] = "xin", ["Xingú Asuriní"] = "asn", ["Xipaya"] = "xiy", ["Xiri"] = "xii", ["Xiriâna"] = "xir", ["Xishanba Lalo"] = "ywt", ["Xocó"] = "sai-xoc", ["Xokleng"] = "xok", ["Xukurú"] = "xoo", ["Xwela Gbe"] = "xwe", ["Xârâcùù"] = "ane", ["Xârâgurè"] = "axx", ["Yaa"] = "iyx", ["Yaaku"] = "muu", ["Yabarana"] = "yar", ["Yabaâna"] = "ybn", ["Yaben"] = "ybm", ["Yabong"] = "ybo", ["Yabula Yabula"] = "yxy", ["Yace"] = "ekr", ["Yaeyama"] = "rys", ["Yafi"] = "wfg", ["Yagara"] = "yxg", ["Yagaria"] = "ygr", ["Yagnobi"] = "yai", ["Yagomi"] = "ygm", ["Yagua"] = "yad", ["Yagwoia"] = "ygw", ["Yahadian"] = "ner", ["Yahang"] = "rhp", ["Yahuna"] = "ynu", ["Yaka"] = "yaf", ["Yakaikeke"] = "ykk", ["Yakan"] = "yka", ["Yakima"] = "yak", ["Yakkha"] = "ybh", ["Yakoma"] = "yky", ["Yakut"] = "sah", ["Yala"] = "yba", ["Yalahatan"] = "jal", ["Yalakalore"] = "xyl", ["Yalarnnga"] = "ylr", ["Yale"] = "nce", ["Yaleba"] = "ylb", ["Yalunka"] = "yal", ["Yalálag Zapotec"] = "zpu", ["Yamap"] = "ymp", ["Yamba"] = "yam", ["Yambes"] = "ymb", ["Yambeta"] = "yat", ["Yamdena"] = "jmd", ["Yameo"] = "yme", ["Yami"] = "tao", ["Yaminahua"] = "yaa", ["Yamongeri"] = "ymg", ["Yamphu"] = "ybi", ["Yan-nhangu"] = "jay", ["Yana"] = "ynn", ["Yanda"] = "yda", ["Yanda Dogon"] = "dym", ["Yandjibara"] = "xyb", ["Yandruwandha"] = "ynd", ["Yanesha'"] = "ame", ["Yangben"] = "yav", ["Yangkaal"] = "aus-ynk", ["Yangkam"] = "bsx", ["Yangman"] = "jng", ["Yango"] = "yng", ["Yangulam"] = "ynl", ["Yangum Dey"] = "yde", ["Yangum Gel"] = "ygl", ["Yangum Mon"] = "ymo", ["Yankunytjatjara"] = "kdd", ["Yanomam"] = "wca", ["Yanomamö"] = "guu", ["Yansi"] = "yns", ["Yanyuwa"] = "jao", ["Yao"] = "yao", ["Yao (South America)"] = "sai-yao", ["Yaosakor Asmat"] = "asy", ["Yaouré"] = "yre", ["Yapese"] = "yap", ["Yapunda"] = "yev", ["Yaqay"] = "jaq", ["Yaqui"] = "yaq", ["Yarawata"] = "yrw", ["Yareba"] = "yrb", ["Yareni Zapotec"] = "zae", ["Yarli"] = "yxl", ["Yarluyandi"] = "yry", ["Yarumá"] = "sai-yar", ["Yarí"] = "yri", ["Yasa"] = "yko", ["Yatay"] = "yty", ["Yatee Zapotec"] = "zty", ["Yatzachi Zapotec"] = "zav", ["Yaul"] = "yla", ["Yaur"] = "jau", ["Yautepec Zapotec"] = "zpb", ["Yavitero"] = "yvt", ["Yawa"] = "yva", ["Yawalapití"] = "yaw", ["Yawanawa"] = "ywn", ["Yawarawarga"] = "yww", ["Yaweyuha"] = "yby", ["Yawijibaya"] = "jbw", ["Yawiyo"] = "ybx", ["Yawuru"] = "ywr", ["Yaygir"] = "xya", ["Yazghulami"] = "yah", ["Ye'kwana"] = "mch", ["Yei"] = "jei", ["Yekhee"] = "ets", ["Yekora"] = "ykr", ["Yele"] = "yle", ["Yelmek"] = "jel", ["Yelogu"] = "ylg", ["Yemaek"] = "hmk", ["Yemba"] = "ybb", ["Yemeni Arabic"] = "ayn", ["Yemsa"] = "jnj", ["Yendang"] = "yen", ["Yeni"] = "yei", ["Yenish"] = "yec", ["Yerakai"] = "yra", ["Yeretuar"] = "gop", ["Yerong"] = "yrn", ["Yerukula"] = "yeu", ["Yeskwa"] = "yes", ["Yessan-Mayo"] = "yss", ["Yetfa"] = "yet", ["Yevanic"] = "yej", ["Yeyi"] = "yey", ["Yiddish"] = "yi", ["Yidgha"] = "ydg", ["Yidiny"] = "yii", ["Yil"] = "yll", ["Yilan Creole"] = "ycr", ["Yimas"] = "yee", ["Yimchungru Naga"] = "yim", ["Yinbaw Karen"] = "kvu", ["Yinchia"] = "yin", ["Yindjibarndi"] = "yij", ["Yindjilandji"] = "yil", ["Yine"] = "pib", ["Yinggarda"] = "yia", ["Yinhawangka"] = "ywg", ["Yiningayi"] = "ygi", ["Yintale Karen"] = "kvy", ["Yinwum"] = "yxm", ["Yir-Yoront"] = "yiy", ["Yirandali"] = "ljw", ["Yis"] = "yis", ["Yitha Yitha"] = "xth", ["Yoba"] = "yob", ["Yocoboué Dida"] = "gud", ["Yogad"] = "yog", ["Yoidik"] = "ydk", ["Yoke"] = "yki", ["Yola"] = "yol", ["Yolmo"] = "scp", ["Yolngu Sign Language"] = "ygs", ["Yoloxochitl Mixtec"] = "xty", ["Yom"] = "pil", ["Yombe"] = "yom", ["Yonaguni"] = "yoi", ["Yong"] = "yno", ["Yongkom"] = "yon", ["Yopno"] = "yut", ["Yora"] = "mts", ["Yoron"] = "yox", ["Yorta Yorta"] = "xyy", ["Yoruba"] = "yo", ["Yosondúa Mixtec"] = "mpm", ["Youle Jino"] = "jiu", ["Younuo Bunu"] = "buh", ["Yout Wam"] = "ytw", ["Yoy"] = "yoy", ["Yuanga"] = "nua", ["Yucatec Maya"] = "yua", ["Yucatec Maya Sign Language"] = "msd", ["Yuchi"] = "yuc", ["Yucuañe Mixtec"] = "mvg", ["Yucuna"] = "ycn", ["Yug"] = "yug", ["Yugambal"] = "yub", ["Yugoslavian Sign Language"] = "ysl", ["Yugul"] = "ygu", ["Yuhup"] = "yab", ["Yuki"] = "yuk", ["Yukpa"] = "yup", ["Yukuben"] = "ybl", ["Yulu"] = "yul", ["Yuma"] = "yum", ["Yumana"] = "awd-yum", ["Yup'ik"] = "esu", ["Yupiltepeque"] = "nai-yup", ["Yupua"] = "sai-yup", ["Yuqui"] = "yuq", ["Yuracare"] = "yuz", ["Yuri"] = "sai-yri", ["Yurok"] = "yur", ["Yuru"] = "ljx", ["Yurumanguí"] = "sai-yur", ["Yurutí"] = "yui", ["Yutanduchi Mixtec"] = "mab", ["Yuwana"] = "yau", ["Yuyu"] = "yxu", ["Yámana"] = "yag", ["Zaachila Zapotec"] = "ztx", ["Zabana"] = "kji", ["Zacatepec Chatino"] = "ctz", ["Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"] = "nhi", ["Zaghawa"] = "zag", ["Zaiwa"] = "atb", ["Zakhring"] = "zkr", ["Zambian Sign Language"] = "zsl", ["Zan Gula"] = "zna", ["Zanaki"] = "zak", ["Zande"] = "zne", ["Zangskari"] = "zau", ["Zangwal"] = "zah", ["Zaniza Zapotec"] = "zpw", ["Zapotec"] = "zap", ["Zaramo"] = "zaj", ["Zari"] = "zaz", ["Zarma"] = "dje", ["Zauzou"] = "zal", ["Zay"] = "zwa", ["Zayein Karen"] = "kxk", ["Zayse-Zergulla"] = "zay", ["Zazaki"] = "zza", ["Zazao"] = "jaj", ["Zbu"] = "sit-zbu", ["Zealandic"] = "zea", ["Zeem"] = "zua", ["Zemba"] = "dhm", ["Zeme Naga"] = "nzm", ["Zemgalian"] = "xzm", ["Zenag"] = "zeg", ["Zenaga"] = "zen", ["Zenzontepec Chatino"] = "czn", ["Zhaba"] = "zhb", ["Zhang-Zhung"] = "xzh", ["Zhenan Min"] = "nan-zhe", ["Zhire"] = "zhi", ["Zhoa"] = "zhw", ["Zhuang"] = "za", ["Zhár"] = "jjr", ["Zia"] = "zia", ["Zialo"] = "zil", ["Zigula"] = "ziw", ["Zimakani"] = "zik", ["Zimba"] = "zmb", ["Zimbabwe Sign Language"] = "zib", ["Zinza"] = "zin", ["Zipser German"] = "gmw-zps", ["Zirenkel"] = "zrn", ["Ziriya"] = "zir", ["Zizilivakan"] = "ziz", ["Zo'é"] = "pto", ["Zokhuo"] = "yzk", ["Zoogocho Zapotec"] = "zpq", ["Zotung Chin"] = "czt", ["Zou"] = "zom", ["Zulgo-Gemzek"] = "gnd", ["Zulu"] = "zu", ["Zumaya"] = "zuy", ["Zumbun"] = "jmb", ["Zuni"] = "zun", ["Zuojiang Zhuang"] = "zzj", ["Zuwara"] = "ber-zuw", ["Zyphe"] = "zyp", ["Záparo"] = "zro", ["Àhàn"] = "ahn", ["Áncá"] = "acb", ["Äiwoo"] = "nfl", ["Äynu"] = "aib", ["Ömie"] = "aom", ["Önge"] = "oon", ["ǀXam"] = "xam", ["ǁAni"] = "hnh", ["ǁGana"] = "gnk", ["ǁXegwi"] = "xeg", ["ǂHoan"] = "huc", ["ǃKung"] = "khi-kun", ["ǃXóõ"] = "nmn", ["Ỹaroamë"] = "yro", } g7y9jq1b679md8t9jco2dgruaktn45w Modul:languages/data/patterns 828 159500 628858 616869 2024-11-06T14:20:22Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628858 Scribunto text/plain -- Capture patterns used by [[Module:tili]] to prevent formatting from being disrupted while text is being processed. -- Certain character sequences are substituted beforehand to make pattern matching more straightforward: -- "\1" = "[[" -- "\2" = "]]" return { "((</?link>))\0", -- Special link formatting added by [[Module:links]] "((<[^<>\1\2]+>))", -- HTML tag "((\1[Ff][Ii][Ll][Ee]:[^\1\2]+\2))\0", -- File "((\1[Ii][Mm][Aa][Gg][Ee]:[^\1\2]+\2))\0", -- Image "((\1[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:[^\1\2]+\2))\0", -- Category "((\1[Cc][Aa][Tt]:[^\1\2]+\2))\0", -- Category "((\1)[^\1\2|]+(\2))\0", -- Bare internal link "((\1)[^\1\2|]-(|)[^\1\2]-(\2))\0", -- Piped internal link "((%[https?://[^[%] ]+)[^[%]]*(%]))\0", -- External link "((\127'\"`UNIQ%-%-%l+%-%x+%-+QINU`\"'\127))", -- Strip marker "('*(''').-'*('''))", -- Bold "('*('').-'*(''))" -- Italics } honxp41xwwwscv2u7qejpl9v5zrwzcv Modul:languages/doSubstitutions 828 159501 628864 616870 2024-11-06T14:35:21Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628864 Scribunto text/plain local m_str_utils = require("Module:string utilities") local codepoint = m_str_utils.codepoint local gsub = m_str_utils.gsub local safe_require = require("Module:utilities").safe_require local u = m_str_utils.char local function doRemoveExceptions(text, sc, remove_exceptions) local substitutes, i = {}, 0 local function insert_substitute(m) i = i + 1 table.insert(substitutes, m) return u(0x80000 + i) end for _, exception in ipairs(remove_exceptions) do exception = sc:toFixedNFD(exception) text = gsub(text, exception, insert_substitute) end return text, substitutes end local function undoRemoveExceptions(text, substitutes) return text:gsub("\242[\128-\191]*", function(m) return substitutes[codepoint(m) - 0x80000] end) end local function doSubstitutions(text, self, sc, substitution_data, function_name, recursed) local fail, cats = nil, {} -- If there are language-specific substitutes given in the data module, use those. if type(substitution_data) == "table" then -- If a script is specified, run this function with the script-specific data before continuing. local sc_code = sc:getCode() if substitution_data[sc_code] then text, fail, cats = doSubstitutions(text, self, sc, substitution_data[sc_code], function_name, true) -- Hant, Hans and Hani are usually treated the same, so add a special case to avoid having to specify each one separately. elseif sc_code:match("^Han") and substitution_data.Hani then text, fail, cats = doSubstitutions(text, self, sc, substitution_data.Hani, function_name, true) -- Substitution data with key 1 in the outer table may be given as a fallback. elseif substitution_data[1] then text, fail, cats = doSubstitutions(text, self, sc, substitution_data[1], function_name, true) end -- Iterate over all strings in the "from" subtable, and gsub with the corresponding string in "to". We work with the NFD decomposed forms, as this simplifies many substitutions. if substitution_data.from then for i, from in ipairs(substitution_data.from) do -- We normalize each loop, to ensure multi-stage substitutions work correctly. text = sc:toFixedNFD(text) -- Check whether specific magic characters are present, as they rely on UTF-8 compatibility. If not, just use string.gsub. In most cases, doing this is faster than using mw.ustring.gsub every time. text = gsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "") end end if substitution_data.remove_diacritics then text = sc:toFixedNFD(text) -- Convert exceptions to PUA. local substitutes if substitution_data.remove_exceptions then text, substitutes = doRemoveExceptions(text, sc, substitution_data.remove_exceptions) end -- Strip diacritics. text = gsub(text, "[" .. substitution_data.remove_diacritics .. "]", "") -- Convert exceptions back. if substitution_data.remove_exceptions then text = undoRemoveExceptions(text, substitutes) end end elseif type(substitution_data) == "string" then -- If there is a dedicated function module, use that. local module = safe_require("Module:" .. substitution_data) if module then if function_name == "tr" then text, fail, cats = module[function_name](text, self:getCode(), sc:getCode()) else text, fail, cats = module[function_name](sc:toFixedNFD(text), self:getCode(), sc:getCode()) end else error("Substitution data '" .. substitution_data .. "' does not match an existing module.") end end -- Don't normalize to NFC if this is the inner loop or if a module returned nil. if recursed or not text then return text, fail, cats else -- Fix any discouraged sequences created during the substitution process, and normalize into the final form. text = sc:fixDiscouragedSequences(text) return sc:toFixedNFC(text), fail, cats end end -- This avoids calling into globals with require when the main function recurses. return function (text, self, sc, substitution_data, function_name) return doSubstitutions(text, self, sc, substitution_data, function_name) end mjjhpxy2ma918nayg388mj7luaq5l6p Modul:TemplateStyles 828 159530 628947 616976 2024-11-06T17:18:52Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628947 Scribunto text/plain local frame = mw.getCurrentFrame() local args = {} return function (stylesheet) args.src = stylesheet return frame:extensionTag("templatestyles", nil, args) end fpxp4rqu6felstio94845c8h0qu6kw7 Modul:table tools 828 159534 628916 616980 2024-11-06T16:18:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628916 Scribunto text/plain local export = {} local m_links = require("Module:links") local u = mw.ustring.char local notes_ranges = { -- First three represent symbols in ISO-8859-1 -- Including ÷ (U+00F7) × (U+00D7) § (U+00B7) ¤ (U+00A4) {0xA1,0xBF}, {0xD7,0xD7}, -- × {0xF7,0xF7}, -- ÷ -- Next two are "General Punctuation" minus non-spacing chars -- First one includes † (U+2020) ‡ (U+2021) • (U+2022) ※ (U+203B) ⁕ (U+2055) {0x2010,0x2027}, {0x2030,0x205E}, -- Next one is "Superscripts and Subscripts" and "Currency Symbols" {0x2070,0x20CF}, -- Next one is a whole series of symbol ranges {0x2100,0x2B5F}, -- Next one is "Supplemental Punctuation" {0x2E00,0x2E3F} } local unicode_ranges = {} for _, range in ipairs(notes_ranges) do table.insert(unicode_ranges, u(range[1]) .. "-" .. u(range[2])) end local unicode_range_str = table.concat(unicode_ranges, "") local notes_re = "[%*%~%@%#%$%%%^%&%+0-9_ " .. unicode_range_str .. "]*" local function manipulate_entry(entries, f) entries = entries or "" entries = mw.text.split(mw.ustring.gsub(entries, "^%s*(.-)%s*$", "%1"), "%s*,%s*") local sep = "" local ret = "" for _, entry in ipairs(entries) do ret = ret .. sep .. (entry == "-" and "—" or entry == "" and "" or f(entry)) sep = ", " end return ret end local function gather_args(frame) local args = {} for key, val in pairs(frame.args) do if val ~= "" then args[key] = val end end local i = 1 for _, val in ipairs(frame:getParent().args) do if val and val ~= "" then while args[i] do i = i + 1 end args[i] = val i = i + 1 end end local lang = args["lang"] if not lang then lang = args[1] local n = 1 while args[n] do args[n] = args[n + 1] n = n + 1 end end return lang, args end function export.separate_notes(entry) local notes entry, notes = mw.ustring.match(entry, "^(.-)(" .. notes_re .. ")$") return entry, notes end function export.superscript_notes(notes) if notes ~= "" then notes = "<sup>" .. mw.ustring.gsub(notes, "_", " ") .. "</sup>" end return notes end function export.get_notes(entry) local notes entry, notes = export.separate_notes(entry) notes = export.superscript_notes(notes) return entry, notes end function export.separate_initial_notes(entry) local notes notes, entry = mw.ustring.match(entry, "^(" .. notes_re .. ")(.*)$") return notes, entry end function export.get_initial_notes(entry) local notes notes, entry = export.separate_initial_notes(entry) notes = export.superscript_notes(notes) return notes, entry end function export.linkify_entry(lang, entries, prep) if type(lang) == "table" then local args lang, args = gather_args(lang) if (args["prep"] or "") ~= "" then local mod, func = unpack(mw.text.split(args["prep"], "#", true)) prep = require("Module:" .. mod)[func] end entries = args[1] end lang = require("Module:tili").getByCode(lang) local function f(entry) local e, notes = export.get_notes(entry) local ep = prep and prep(e) return m_links.language_link{lang = lang, term = ep or e, alt = ep and e} .. notes end return manipulate_entry(entries, f) end function export.translit_entry(lang, entries) if type(lang) == "table" then local args lang, args = gather_args(lang) entries = args[1] end lang = require("Module:tili").getByCode(lang) local function f(entry) local e, notes = export.get_notes(entry) return ((lang:transliterate(e)) or e) .. notes end return manipulate_entry(m_links.remove_links(entries), f) end function export.format_entry(lang, entries) if type(lang) == "table" then local args lang, args = gather_args(lang) entries = args[1] end return manipulate_entry(m_links.remove_links(entries), function(entry) local e, n = export.get_notes(entry); return e .. n end) end function export.first_entry(lang, entries) if type(lang) == "table" then local args lang, args = gather_args(lang) entries = args[1] end local entry = mw.text.split(mw.ustring.gsub(entries, "^%s*(.-)%s*$", "%1"), "%s*,%s*")[1] local e, notes = export.get_notes(entry) return e .. notes end return export 9ctx23mbztz1e7g3i5or6s8wtop9fmh бесперспективняк 0 159639 628960 617332 2024-11-06T17:34:27Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628960 wikitext text/x-wiki {{-ru-}} === Talaffuzi === {{transcriptions-ru|бесперспективня́к|бесперспективняки́|Ru-бесперспективняк.ogg}} ==== Maʼnosi ==== # {{jarg.|ru}} [[istiqbol]] yoʻqligi. # {{жарг.|ru}} [[bemaʼnilik]] ==== Antonimlari ==== # [[istiqbolli]] # ? ==== Giperonimlari ==== # [[holat]] # [[obyekt]] === Aloqador soʻzlar === {{aloqador |умласк= |уничиж= |увелич= |имена-собственные= |существительные=бесперспективность |прилагательные=бесперспективный |числительные= |местоимения= |глаголы= |наречия= |предикативы= |предлоги= |полн= }} === Etimologiyasi === [[бесперспективный]], [[бес-]] + [[перспектива]]. === Tarjimalar === {{Tarjimalar|отсутствие перспективы, бесперспективность |ain= |sq= |en=[[hopelessness]] |hy= |ast= |af= |ba= |be= |bg= |bs= |br= |hu= |vi= |vro= |gl= |el= |ka= |da= |io= |ia= |is= |es= |it= |kk= |krl= |ca= |ky= |zh= |zh-tw= |zh-cn= |ko= |co= |la= |lv= |lt= |mk= |mdf= |mn= |gv= |nah= |de= |nl= |no= |os= |pl= |ppol= |pt= |sr= |sr-l= |sk= |sl= |slovio-c= |slovio-l= |chu= |tt= |art= |kim= |tr= |tk= |uz= |uk= |fo= |fi= |fr= |hr= |cs= |sv= |eo= |et= |ja= }} {{Tarjimalar|нечто бесперспективное, бессмысленное |ain= |sq= |en= |hy= |ast= |af= |ba= |be= |bg= |bs= |br= |hu= |vi= |vro= |gl= |el= |ka= |da= |io= |ia= |is= |es= |it= |kk= |krl= |ca= |ky= |zh= |zh-tw= |zh-cn= |ko= |co= |la= |lv= |lt= |mk= |mdf= |mn= |gv= |nah= |de= |nl= |no= |os= |pl= |ppol= |pt= |sr= |sr-l= |sk= |sl= |slovio-c= |slovio-l= |chu= |tt= |art= |kim= |tr= |tk= |uz= |uk= |fo= |fi= |fr= |hr= |cs= |sv= |eo= |et= |ja= }} === Adabiyotlar === {{Turkum|Holatlar|Tez aytishlar|}} {{soʻz uzunligi|16|ru}} rcaplkv5wfojlsekrlaew1hmu3yt5lu Modul:Jpan-sortkey 828 159883 628884 623962 2024-11-06T15:06:05Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628884 Scribunto text/plain local require = require local require_when_needed = require("Module:require when needed") local export = {} local concat = table.concat local find_templates = require_when_needed("Module:template parser", "find_templates") local get_by_code = require_when_needed("Module:tili", "getByCode") local get_section = require_when_needed("Module:pages", "get_section") local Hani_sort = require_when_needed("Module:Hani-sortkey", "makeSortKey") local Hira_sort = require("Module:Hira-sortkey").makeSortKey local insert = table.insert local toNFC = mw.ustring.toNFC local track = require_when_needed("Module:debug/track") local ugsub = mw.ustring.gsub local umatch = mw.ustring.match local usub = require_when_needed("Module:string utilities", "sub") local range = mw.loadData("Module:ja/data/range") local kanji_pattern = range.kanji local ideograph_pattern = range.ideograph local kana_graph_pattern = range.kana_graph local latin_pattern = range.latin function export.makeSortKey(text, lang, sc) -- Determine reading. local seen_pages, langname = {} while lang ~= "mul" and (not seen_pages[text]) and umatch(text, "[0-9" .. kanji_pattern .. ideograph_pattern .. kana_graph_pattern .. latin_pattern .. "]") do repeat langname = langname or get_by_code(lang):getCanonicalName() seen_pages[text] = true local content = mw.title.new(toNFC(text)):getContent() content = get_section(content, langname, 2) if not content then break end local kanjitab, br for template in find_templates(content) do local name = template:get_name() if ( name == lang .. "-head" or name == lang .. "-pos" ) then local reading = template:get_arguments()[2] if reading ~= nil then text = reading br = true break end elseif ( name == lang .. "-noun" or name == lang .. "-verb" or name == lang .. "-adj" or name == lang .. "-phrase" or name == lang .. "-verb form" or name == lang .. "-verb-suru" or name == lang .. "-see" or name == lang .. "-see-kango" or name == lang .. "-gv" ) then local reading = template:get_arguments()[1] if reading ~= nil then text = reading br = true break end elseif ( name == "head" or name == "head-lite" ) then local args = template:get_arguments() if args[1] == lang then for i, arg in ipairs(args) do if arg == "kana" then local kana = args[i+1] if kana then text = kana br = true break end end end end elseif not kanjitab and name == lang .. "-kanjitab" then kanjitab = template:get_arguments() end end if kanjitab and not br then track{"Jpan-sortkey/kanjitab", "Jpan-sortkey/kanjitab/" .. lang} if kanjitab.sortkey then text = kanjitab.sortkey break end -- extract kanji and non-kanji local kanji = {} local non_kanji = {} local kanji_border = 1 ugsub(text, "()([" .. kanji_pattern .. "々])()", function(p1, w1, p2) insert(non_kanji, usub(text, kanji_border, p1 - 1)) kanji_border = p2 insert(kanji, w1) end) insert(non_kanji, usub(text, kanji_border)) -- 々 for i, v in ipairs(kanji) do if v == "々" then kanji[i] = kanji[i - 1] end end -- process readings local readings = {} local readings_actual = {} local reading_length_total = 0 for i in ipairs(kanjitab) do local reading_kana, reading_length = umatch(kanjitab[i] or "", "^([^0-9]*)([0-9]*)$") reading_kana = reading_kana ~= "" and reading_kana or nil reading_length = reading_kana and tonumber(reading_length) or 1 insert(readings, {reading_kana, reading_length}) reading_length_total = reading_length_total + reading_length for _ = reading_length_total + 1, #kanji do insert(readings, {nil, 1}) end if reading_kana then local actual_reading = kanjitab["k" .. i] local okurigana = kanjitab["o" .. i] readings_actual[i] = {(actual_reading or reading_kana) .. (okurigana or ""), reading_length} else readings_actual[i] = {nil, 1} end end local sortkey = {non_kanji[1]} local id = 1 for _, v in ipairs(readings_actual) do id = id + v[2] v[1] = v[1] ~= "-" and v[1] insert(sortkey, (v[1] or "") .. (non_kanji[id] or "")) end sortkey = concat(sortkey) if sortkey ~= "" then text = sortkey end end until true end -- Use hiragana sort. text = Hira_sort(text, lang, sc) -- Run through Hani sort, to catch any stray kanji. This shouldn't happen but often does, and we still want to handle them sensibly in the time before the entry is fixed. Exclude spaces and punctuation, since otherwise Hani_sort automatically removes them. local ret = ugsub(text, "[^%s%p]+", function(str) return Hani_sort(str, lang, sc) end) if not (lang == "mul" or ret == text) then track{"Jpan-sortkey/fallback", "Jpan-sortkey/fallback/" .. lang} end return ret end return export fqdh8fzvo8g3wbqa24jbh8ak6nq5gbn Modul:zh-usex/data 828 160122 628952 624623 2024-11-06T17:23:15Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628952 Scribunto text/plain local data = {} -- List of varieties. Each entry is a list of the following: -- {"OLD_CODE", "LANG_CODE", "NORM_CODE", "DESCRIPTION", "TRANSLITERATION"} where "OLD_CODE" is the old-style bespoke -- code used for this variety (which will be going away) and "LANG_CODE" is the Wiktionary language code (possibly an -- etym-only code) used for this variety. "NORM_CODE" is the normalized language code used for handling varieties that -- should be treated the same for transliteration purposes. For example, all Hokkien varieties use Pe̍h-ōe-jī and should -- behave the same for pron_correction and other purposes. Similarly, many Mandarin varieties use standard Pinyin, etc. data.variety_list = { {"MSC", "cmn", false, "[[w:Standard Chinese|MSC]]", "Pinyin"}, {"M-BJ", "cmn-bei", "cmn", "[[w:Beijing dialect|Beijing Mandarin]]", "Pinyin"}, {"M-TW", "cmn-TW", "cmn", "[[w:Taiwanese Mandarin|Taiwanese Mandarin]]", "Pinyin"}, {"M-MY", "cmn-MY", "cmn", "[[w:Malaysian Mandarin|Malaysian Mandarin]]", "Pinyin"}, {"M-SG", "cmn-SG", "cmn", "[[w:Singaporean Mandarin|Singaporean Mandarin]]", "Pinyin"}, {"M-PH", "cmn-PH", "cmn", "[[w:Mandarin Chinese in the Philippines|Philippine Mandarin]]", "Pinyin"}, {"M-TJ", "cmn-tia", "cmn", "[[w:Tianjin dialect|Tianjin Mandarin]]", "Pinyin"}, {"M-NE", "cmn-noe", "cmn", "[[w:Northeastern Mandarin|Northeastern Mandarin]]", "Pinyin"}, {"M-CP", "cmn-cep", "cmn", "[[w:Central Plains Mandarin|Central Plains Mandarin]]", "Pinyin"}, {"M-GZ", "cmn-gua", "cmn-gua", "[[w:Xi'an dialect|Guanzhong Mandarin]]", "[[Wiktionary:About Chinese/Mandarin/Xi'an|Guanzhong Pinyin]]"}, --Guanzhong {"M-LY", "cmn-lan", "cmn", "[[w:Lanyin Mandarin|Lanyin Mandarin]]", "Pinyin"}, {"M-S", "zhx-sic", false, "[[w:Sichuanese dialects|Sichuanese]]", "Sichuanese Pinyin"}, {"M-NJ", "cmn-nan", false, "[[w:Nanjing dialect|Nanjing Mandarin]]", "Nankinese Pinyin"}, {"M-YZ", "cmn-yan", false, "[[w:Yangzhou dialect|Yangzhou Mandarin]]", "IPA"}, --IPA as a placeholder {"M-W", "cmn-wuh", false, "[[w:Wuhan dialect|Wuhanese]]", "IPA"}, {"M-GL", "cmn-gui", false, "[[w:zh:桂林話|Guilin Mandarin]]", "IPA"}, --IPA as a placeholder {"M-XN", "cmn-xin", false, "Xining Mandarin", "IPA"}, --IPA as a placeholder {"M-UIB", "cmn-bec", "cmn", "[[w:Mandarin Chinese|dialectal Mandarin]]", "Pinyin"}, -- UIB stands for "unidentified Beijingesque"; this is only used for dialects with similar phonology to one of Beijing dialect or MSC {"M-DNG", "dng", false, "[[w:Dungan language|Dungan]]", "Cyrillic"}, {"CL", "lzh", "cmn", "[[w:Classical Chinese|Classical Chinese]]", "Pinyin"}, {"CL-TW", "lzh-cmn-TW", "cmn", "[[w:Classical Chinese|Classical Chinese]]", "Pinyin ([[w:Taiwanese Mandarin|Taiwanese Mandarin]])"}, {"CL-C", "lzh-yue", "yue", "[[w:Classical Chinese|Classical Chinese]]", "Jyutping"}, {"CL-C-T", "lzh-tai", "zhx-tai", "[[w:Classical Chinese|Classical Chinese]]", "Wiktionary"}, {"CL-VN", "lzh-VI", "vi", "[[w:Literary Chinese in Vietnam|Vietnamese Literary Sinitic]]", "[[w:Sino-Vietnamese vocabulary|Sino-Vietnamese]]"}, {"CL-KR", "lzh-KO", "ko", "[[w:Chinese-language literature of Korea|Korean Literary Sinitic]]", "[[w:Sino-Korean vocabulary|Sino-Korean]]"}, {"CL-PC", "lzh-pre", "cmn", "[[w:Old Chinese|Pre-Classical Chinese]]", "Pinyin"}, {"CL-L", "lzh-lit", "cmn", "[[w:Literary Chinese|Literary Chinese]]", "Pinyin"}, {"CI", "lzh-cii", "cmn", "[[w:Ci (poetry)|Ci]]", "Pinyin"}, {"WVC", "cmn-wvc", "cmn", "[[w:Written vernacular Chinese|Written Vernacular Chinese]]", "Pinyin"}, {"WVC-C", "yue-wvc", "yue", "[[w:Written vernacular Chinese|Written Vernacular Chinese]]", "Jyutping"}, {"WVC-C-T", "zhx-tai-wvc", "zhx-tai", "[[w:Written vernacular Chinese|Written Vernacular Chinese]]", "Wiktionary"}, {"WVC-W", "wuu", "wuu", "[[w:Written vernacular Chinese|Written Vernacular Chinese]]", "Pinyin"}, --Pinyin temporary {"C", "yue", false, "[[w:Cantonese|Cantonese]]", "Jyutping"}, {"C-GZ", "yue-gua", "yue", "[[w:Cantonese|Guangzhou Cantonese]]", "Jyutping"}, {"C-LIT", "yue-lit", "yue", "[[w:Cantonese|Literary Cantonese]]", "Jyutping"}, {"C-HK", "yue-HK", "yue", "[[w:Hong Kong Cantonese|Hong Kong Cantonese]]", "Jyutping"}, {"C-T", "zhx-tai", false, "[[w:Taishanese|Taishanese]]", "Wiktionary"}, {"C-DZ", "zhx-dan", false, "[[w:Danzhou dialect|Danzhou dialect]]", "IPA"}, --IPA as a placeholder {"C-DG", "yue", "yue-dgx", "[[w:zh:東莞話|Dongguan Cantonese]]", "[[Wiktionary:About Chinese/Cantonese/Dongguan|Jyutping++]]"}, {"C-YJ", "yue", "yue-yjx", "[[w:zh:陽江話|Yangjiang Yue]]", "[[Wiktionary:About Chinese/Cantonese/Yangjiang|Jyutping++]]"}, {"C-YL", "yue", "yue-ylx", "[[w:zh:玉林話|Yulin Yue]]", "[[Wiktionary:About Chinese/Cantonese/Yulin|Jyutping++]]"}, {"SP-N", "csp", "csp", "[[w:Pinghua|Nanning Pinghua]]", "[[Wiktionary:About Chinese/Southern Pinghua|Jyutping++]]"}, {"J", "cjy", false, "[[w:Jin Chinese|Jin]]", "[[Wiktionary:About Chinese/Jin|Wiktionary]]"}, {"MB", "mnp", false, "[[w:Northern Min|Northern Min]]", "[[w:Kienning Colloquial Romanized|Kienning Colloquial Romanized]]"}, {"MD", "cdo", false, "[[w:Eastern Min|Eastern Min]]", "[[w:Bàng-uâ-cê|Bàng-uâ-cê]] / IPA"}, {"MN", "nan-hbl", false, "[[w:Hokkien|Hokkien]]", "[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]"}, {"TW", "nan-hbl-TW", "nan-hbl", "[[w:Taiwanese Hokkien|Taiwanese Hokkien]]", "[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]"}, {"MN-PN", "nan-pen", "nan-hbl", "[[w:Penang Hokkien|Penang Hokkien]]", "[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]"}, {"MN-PH", "nan-hbl-PH", "nan-hbl", "[[w:Philippine Hokkien|Philippine Hokkien]]", "[[w:Pe̍h-ōe-jī|Pe̍h-ōe-jī]]"}, {"MN-T", "nan-tws", false, "[[w:Teochew dialect|Teochew]]", "[[w:Peng\'im|Peng\'im]]"}, {"MN-L", "nan-luh", false, "[[w:Leizhou Min|Leizhou Min]]", "Leizhou Pinyin"}, {"MN-HLF", "nan-hlh", false, "[[w:Haklau Min|Haklau Min]]", "IPA"}, --IPA as a placeholder {"MN-H", "nan-hnm", false, "[[w:Hainanese|Hainanese]]", "[[w:Guangdong Romanization|Guangdong Romanization]]"}, {"PX", "cpx", false, "[[w:Puxian Min|Puxian Min]]", "Pouseng Ping'ing"}, {"W", "wuu", false, "[[w:Wu Chinese|Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"SH", "wuu-sha", "wuu", "[[w:Shanghainese|Shanghainese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-BDH", "wuu-sha", "wuu", "[[w:Shanghainese#Classification|Suburban Shanghainese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, --Bendihua, incl. Jiading, Songjiang, Chuansha, NOT Chongming {"W-CM", "wuu-chm", "wuu", "[[w:Shadi dialect|Shadi Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, -- incl. Chongming, Haimen, Changyinsha etc {"W-SZ", "wuu-suz", "wuu", "[[w:Suzhounese|Suzhounese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-CZ", "wuu-nor", "wuu", "[[w:Changzhou dialect|Changzhounese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-JX", "wuu-nor", "wuu", "[[w:Northern Wu|Jiaxing Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-TX", "wuu-nor", "wuu", "[[w:Northern Wu|Tongxiang Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-HN", "wuu-nor", "wuu", "[[w:Northern Wu|Haining Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-HY", "wuu-nor", "wuu", "[[w:Northern Wu|Haiyan Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-HZ", "wuu-han", "wuu", "[[w:Hangzhounese|Hangzhounese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-SX", "wuu-nor", "wuu", "[[w:Shaoxing dialect|Shaoxing Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-NB", "wuu-nin", "wuu", "[[w:Ningbo dialect|Ningbonese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-N", "wuu-nor", "wuu", "[[w:Northern Wu|Northern Wu]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, -- general northern Wu, incl. transitionary varieties {"W-TZ", "wuu", "[[w:Taizhou dialect|Taizhounese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, -- general Taizhou Wu, unspecified {"W-JH", "wuu", "[[w:Jinhua dialect|Jinhuanese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"W-WZ", "wuu-wen", "wuu", "[[w:Wenzhou dialect|Wenzhounese]]", "[[Wiktionary:About Chinese/Wu|Wugniu]]"}, {"G", "gan", false, "[[w:Gan Chinese|Gan]]", "[[Wiktionary:About Chinese/Gan|Wiktionary]]"}, {"X", "hsn", false, "[[w:Xiang Chinese|Xiang]]", "[[Wiktionary:About Chinese/Xiang|Wiktionary]]"}, {"H", "hak-six", "hak", "[[w:Sixian dialect|Sixian Hakka]]", "[[w:Pha̍k-fa-sṳ|Pha̍k-fa-sṳ]]"}, {"H-HL", "hak-hai", "hak-TW", "[[w:Hailu dialect|Hailu Hakka]]", "[[w:Taiwanese Hakka Romanization System|Taiwanese Hakka Romanization System]]"}, {"H-DB", "hak-dab", "hak-TW", "[[w:zh:臺灣客家語#大埔腔|Dabu Hakka]]", "[[w:Taiwanese Hakka Romanization System|Taiwanese Hakka Romanization System]]"}, {"H-MX", "hak-mei", false, "[[w:Meixian dialect|Meixian Hakka]]", "[[w:Pinfa|Hakka Transliteration Scheme]]"}, {"H-MY-HY", "hak-hui-MY", false, "Malaysian Huiyang Hakka", "IPA"}, --IPA as a placeholder {"H-EM", "hak-eam", false, "[[w:Hakka Chinese|Early Modern Hakka]]", "IPA"}, --Early Modern Hakka, IPA as a placeholder {"H-ZA", "hak-zha", "hak-TW", "[[w:zh:詔安客語|Zhao'an Hakka]]", "[[w:Taiwanese Hakka Romanization System|Taiwanese Hakka Romanization System]]"}, {"WX", "wxa", false, "[[w:Waxiang Chinese|Waxiang]]", "IPA"}, } data.varieties_by_code = {} data.varieties_by_old_code = {} for _, variety_spec in ipairs(data.variety_list) do local old_code, code, norm_code, desc, tr_desc = unpack(variety_spec) data.varieties_by_code[code] = variety_spec data.varieties_by_old_code[old_code] = variety_spec end data.punctuation = { [","] = ",", ["。"] = ".", ["、"] = ",", ["?"] = "?", ["!"] = "!", ["《"] = "“", ["》"] = "”", ["〈"] = "‘", ["〉"] = "’", ["『"] = "‘", ["』"] = "’", ["「"] = "“", ["」"] = "”", ["“"] = "“", ["”"] = "”", ["("] = "(", [")"] = ")", [";"] = ";", [":"] = ":", ["|"] = "|", ["—"] = "-", ["~"] = "~", ["——"] = "—", ["·"] = " ", ["…"] = "...", ["."] = ".", [" "] = ",", ["⋯"] = "...", ["⋯⋯"] = "...", ["<br>"] = "<br>", ["<br/>"] = "<br>", } local CE = '<small class="ce-date">[[Appendix:Glossary#CE|<span title="Glossary and display preference">CE</span>]]</small>' local BCE = '<small class="ce-date">[[Appendix:Glossary#BCE|<span title="Glossary and display preference">BCE</span>]]</small>' local circa = "''[[Appendix:Glossary#c.|c.]]''" local function format_mao(year, chinese_title, english_title, volume, number) -- volume and number are used to generate links to the Marxists Internet Archive return { "cmn", "'''" .. year .. "''', <span lang=\"zh\" class=\"Hani\">[[w:zh:毛澤東|毛澤東]]</span> ([[w:Mao Zedong|Mao Zedong]]), <span lang=\"zh\" class=\"Hani\">《" .. chinese_title .. "》</span> (" .. english_title .. "), <span lang=\"zh\" class=\"Hani\">《[[w:zh:毛澤東選集|毛澤東選集]]》</span>. English translation based on [https://www.marxists.org/reference/archive/mao/selected-works/volume-" .. volume .. "/mswv" .. volume .. "_" .. number .. ".htm the Foreign Languages Press edition]" } end data.ref_list = { ['Amituojing'] = { "lzh", "''[[w:Shorter Sukhāvatīvyūha Sūtra|The Amitabha Sutra]]'', translated by [[w:Kumārajīva|Kumārajīva]] circa 5<sup>th</sup> century " .. CE }, ['Analects'] = { "lzh", "The ''[[w:Analects|Analects]] of Confucius'', " .. circa .. " 475 – 221 " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Analects-W'] = { "lzh", "The ''[[w:Analects|Analects]] of Confucius'', " .. circa .. " 475 – 221 " .. BCE .. ", Wiktionary translation" }, ['Baihutong'] = { "lzh-lit", "[[w:Ban Gu|Ban Gu]], ''[[w:Bai Hu Tong|The Comprehensive Discussions in the White Tiger Hall]]'', 79 " .. CE }, ['Baihutong-T'] = { "lzh-lit", "[[w:Ban Gu|Ban Gu]], ''[[w:Bai Hu Tong|The Comprehensive Discussions in the White Tiger Hall]]'', 79 " .. CE .. ", translated based on [[w:Tjan Tjoe Som|Tjan Tjoe Som]]'s version" }, ['Baopuzi'] = { "lzh-lit", "[[w:Ge Hong|Ge Hong]], ''[[w:Baopuzi|Baopuzi]]'', 4<sup>th</sup> century " .. CE }, ['Beiji Qianjin Yaofang'] = { "lzh-lit", "[[w:Sun Simiao|Sun Simiao]], ''[[w:Beiji qianjin yaofang|Essential Formulas Worth a Thousand Weights in Gold to Prepare for Emergencies]]'', 652 " .. CE }, ['Beiqishu'] = { "lzh-lit", "The ''[[w:Book of Northern Qi|Book of Northern Qi]]'', by [[w:Li Baiyao|Li Baiyao]], 636 " .. CE }, ['Beishi'] = { "lzh", circa .. " '''659''' " .. CE .. ", Li Yanshou, ''[[w:History of the Northern Dynasties|History of the Northern Dynasties]]''" }, ['Bencao Gangmu']= { "lzh-lit", "The ''[[w:Compendium of Materia Medica|Compendium of Materia Medica]]'' [Bencao Gangmu], by [[w:Li Shizhen|Li Shizhen]], 1578 " .. CE }, ['Changahanjing'] = { "lzh", "''[[w:Dirgha Agama|The Dirgha Agama]]'', translated by Buddhayaśas and Zhu Fonian circa 5<sup>th</sup> century " .. CE }, ['Changhenge'] = { "lzh-lit", "'''806''' " .. CE .. ", [[w:Bai Juyi|Bai Juyi]], ''[[wikisource:Song of Everlasting Regret|Song of Everlasting Regret]]''" }, ['Chuci'] = { "lzh", "The ''[[w:Chu Ci|Verses of Chu]]'', 4<sup>th</sup> century " .. BCE .." – 2<sup>nd</sup> century " .. CE }, ['Chuci-H'] = { "lzh", "The ''[[w:Chu Ci|Verses of Chu]]'', 4<sup>th</sup> century " .. BCE .." – 2<sup>nd</sup> century " .. CE .. ", translated based on [[w:David Hawkes (sinologist)|David Hawkes']] version" }, ['Chunqiu Fanlu']= { "lzh", "The ''[[w:Luxuriant Dew of the Spring and Autumn Annals|Luxuriant Dew of the Spring and Autumn Annals]]''" }, ['Daodejing'] = { "lzh", "''[[w:Tao Te Ching|Tao Te Ching]]'', 4<sup>th</sup> century " .. BCE }, ['Daodejing-L'] = { "lzh", "''[[w:Tao Te Ching|Tao Te Ching]]'', 4<sup>th</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Datang Xiyuji']= { "lzh-lit", "[[w:Xuanzang|Xuanzang]], ''[[w:Great Tang Records on the Western Regions|Great Tang Records on the Western Regions]]'', 646 " .. CE }, ['Datang Xiyuji-B']= { "lzh-lit", "[[w:Xuanzang|Xuanzang]], ''[[w:Great Tang Records on the Western Regions|Great Tang Records on the Western Regions]]'', 646 " .. CE .. ", translated based on [[w:Samuel Beal|Samuel Beal]]'s version" }, ['Datang Xiyuji-L']= { "lzh-lit", "[[w:Xuanzang|Xuanzang]], ''[[w:Great Tang Records on the Western Regions|Great Tang Records on the Western Regions]]'', 646 " .. CE .. ", translated based on Li Rongxi's version" }, ['Dizangjing'] = { "lzh", "''[[w:Kṣitigarbha Bodhisattva Pūrvapraṇidhāna Sūtra|The Kṣitigarbhasūtra]]'', translated by Śikṣānanda circa 7<sup>th</sup> century " .. CE }, ['Dongguan Han Ji']= { "lzh", "''[[w:zh:東觀漢記|Dongguan Han Ji]]'', 1<sup>st</sup> century " .. CE .."– 2<sup>nd</sup> century " .. CE }, ['Dou E Yuan']= { "cmn-wvc", "'''Yuan Dynasty''', [[w:Guan Hanqing|Guan Hanqing]], ''[[w:The Injustice to Dou E|The Injustice to Dou E]]''" }, ['Erya'] = { "lzh", "''[[w:Erya|Erya]]'', 5<sup>th</sup> – 2<sup>nd</sup> century " .. BCE }, ['Ernv Yingxiongzhuan'] = { "cmn-wvc", "Wenkang, ''[[w:Ernü Yingxiong Zhuan|Ernü Yingxiongzhuan]]'', 1878 " .. CE }, ['Fahuajing'] = { "lzh", "''[[w:Lotus Sutra|The Lotus Sūtra]]'', translated by [[w:Kumārajīva|Kumārajīva]] circa 5<sup>th</sup> century " .. CE }, ['Fangyan'] = { "lzh", "[[w:Yang Xiong (author)|Yang Xiong]], ''[[w:Fangyan|Fangyan]]'', " .. circa .. " 1<sup>st</sup> century " .. BCE }, ['Fangyu Shenglan'] = { "lzh-lit", "''[[w:zh:方輿勝覽|Fangyu Shenglan]]'', " .. circa .. " 13<sup>th</sup> century " .. CE }, ['Fayan'] = { "lzh", "[[w:Yang Xiong (author)|Yang Xiong]], ''[[w:Fayan (book)|Fa Yan]]'' (''Exemplary Sayings''), 9 " .. CE }, ['Fayan-B'] = { "lzh", "[[w:Yang Xiong (author)|Yang Xiong]], ''[[w:Fayan (book)|Fa Yan]]'' (''Exemplary Sayings''), 9 " .. CE .. ", translated based on Jeffrey S. Bullock's version" }, ['Fengsu Tongyi'] = { "lzh", "[[w:Ying Shao|Ying Shao]], ''[[w:Fengsu Tongyi|Fengsu Tongyi]]'' (''Comprehensive Meaning of Customs and Mores''), 195 " .. CE }, ['Fusheng Liuji'] = { "lzh-lit", "[[w:Shen Fu]], ''[[w:Six Records of a Floating Life|Six Records of a Floating Life]]'', late 18<sup>th</sup> century " .. CE .."– early 19<sup>th</sup> century " .. CE }, ['Fusheng Liuji-L'] = { "lzh-lit", "[[w:Shen Fu]], ''[[w:Six Records of a Floating Life|Six Records of a Floating Life]]'', late 18<sup>th</sup> century " .. CE .."– early 19<sup>th</sup> century " .. CE .. ", translated based on [[w:Lin Yutang|Lin Yutang]]'s version" }, ['Gaosengzhuan']= { "lzh", "Shi Huijiao, ''[[w:Memoirs of Eminent Monks|Memoirs of Eminent Monks]]'', circa 530 " .. CE }, ['Gongyangzhuan']= { "lzh", "''[[w:Gongyang Zhuan|Commentary of Gongyang]]'', " .. circa .. " 206 " .. BCE .. "– 9 " .. CE }, ['Guanyinzi'] = { "lzh", "''[[w:zh:關尹子|Guanyinzi]]'', time unknown" }, ['Guanzi'] = { "lzh", "''[[w:Guanzi (text)|Guanzi]]'', 5<sup>th</sup> century " .. BCE .. " to 220 " .. CE }, ['Gujin Xiaoshuo']= { "cmn-wvc", "[[w:Feng Menglong|Feng Menglong]], ''[[w:Stories Old and New|Stories Old and New]]'', 1620 " .. CE }, ['Guliangzhuan'] = { "lzh", "''[[w:Guliang Zhuan|Commentary of Guliang]]'', circa 206 " .. BCE .. "– 9 " .. CE }, ['Guoyu'] = { "lzh", "''[[w:Guoyu (book)|Guoyu]]'', circa 4<sup>th</sup> century " .. BCE }, ['Hanfeizi'] = { "lzh", "''[[w:Han Feizi (book)|Han Feizi]]'', circa 2<sup>nd</sup> century " .. BCE }, ['Hanfeizi-L'] = { "lzh", "''[[w:Han Feizi (book)|Han Feizi]]'', circa 2<sup>nd</sup> century " .. BCE .. ", translated based on [[w:zh:廖文奎|W. K. Liao]]'s version" }, ['Hanshi Waizhuan'] = { "lzh", "''[[w:Han shi waizhuan|Han shi waizhuan]]'', 1<sup>nd</sup> century " .. BCE }, ['Hanshi Waizhuan-H'] = { "lzh", "''[[w:Han shi waizhuan|Han shi waizhuan]]'', 1<sup>nd</sup> century " .. BCE .. ", translated based on [[w:James Robert Hightower|James R. Hightower]]'s version" }, ['Hanshu'] = { "lzh", "The ''[[w:Book of Han|Book of Han]]'', circa 1<sup>st</sup> century " .. CE }, ['Houhanshu'] = { "lzh-lit", "The ''[[w:Book of the Later Han|Book of the Later Han]]'', circa 5<sup>th</sup> century " .. CE }, ['Hongloumeng'] = { "cmn-wvc", "[[w:Cao Xueqin|Cao Xueqin]], ''[[w:Dream of the Red Chamber|Dream of the Red Chamber]]'', mid-18<sup>th</sup> century " .. CE }, ['Huainanzi'] = { "lzh", "''[[w:Huainanzi|Huainanzi]]'', 2<sup>nd</sup> century " .. BCE }, ['Huangdi Neijing']={ "lzh", "''[[w:Huangdi Neijing|Huangdi Neijing]]'', 4<sup>th</sup> century " .. BCE .. " to 3<sup>rd</sup> century " .. CE }, ['Huayanjing'] = { "lzh", "''[[w:Buddhāvataṃsaka Sūtra|The Avataṃsaka Sūtra]]'', translated by Śikṣānanda circa 7<sup>th</sup> century " .. CE }, ['Jingangjing'] = { "lzh", "''[[w:Diamond Sutra|The Diamond Sutra]]'', translated by [[w:Kumārajīva|Kumārajīva]] circa 5<sup>th</sup> century " .. CE }, ['Jinpingmei'] = { "cmn-wvc", "''[[w:The Plum in the Golden Vase|The Plum in the Golden Vase]]'', circa 1610 " .. CE }, ['Jinpingmei-R'] = { "cmn-wvc", "''[[w:The Plum in the Golden Vase|The Plum in the Golden Vase]]'', circa 1610 " .. CE .. ", translated based on [[w:David Tod Roy|David Tod Roy]]'s version" }, ['Jinshi'] = { "lzh-lit", "'''1344''' " .. CE .. ", [[w:Toqto'a (Yuan dynasty)|Toqto'a]] (lead editor), ''[[w:History of Jin|History of Jin]]''" }, ['Jinshu'] = { "lzh-lit", "'''648''' " .. CE .. ", [[w:Fang Xuanling|Fang Xuanling]] (lead editor), ''[[w:Book of Jin|Book of Jin]]''" }, ['Jiutangshu'] = { "lzh-lit", "The ''[[w:Old Book of Tang|Old Book of Tang]]'', 945 " .. CE }, ['Kongzi Jiayu'] = { "lzh", "The ''[[w:Kongzi Jiayu|School Sayings of Confucius]]'', " .. circa .. " 206 " .. BCE .. "– 220 " .. CE }, ['Lantingjixu'] = { "lzh-lit", "'''353''' " .. CE .. ", [[w:Wang Xizhi|Wang Xizhi]], ''[[:s:Preface to the Poems Composed at the Orchid Pavilion|Preface to the Poems Composed at the Orchid Pavilion]]''" }, ['Laocan Youji'] = { "cmn-wvc", "'''1907''' " .. CE .. ", [[w:Liu E|Liu E]], ''[[w:The Travels of Lao Can|The Travels of Lao Can]]''" }, ['Lengyanjing'] = { "lzh", "''[[w:Śūraṅgama Sūtra|The Śūraṅgama Sūtra]]'', translated by Pramiti circa 7<sup>th</sup> century " .. CE }, ['Liaozhai'] = { "lzh-lit", "'''1740''' " .. CE .. ", [[w:Pu Songling|Pu Songling]], ''[[:s:Strange Stories from a Chinese Studio|Strange Stories from a Chinese Studio]]''" }, ['Lienvzhuan'] = { "lzh", "The ''[[w:Biographies of Exemplary Women|Biographies of Exemplary Women]]'', 2<sup>nd</sup> century " .. BCE }, ['Liezi'] = { "lzh", "''[[w:Liezi|Liezi]]'', 1<sup>st</sup> – 5<sup>th</sup> century " .. CE }, ['Liezi-C'] = { "lzh", "''[[w:Liezi|Liezi]]'', 1<sup>st</sup> – 5<sup>th</sup> century " .. CE .. ", translated based on [[w:Thomas Cleary|Thomas Cleary]]'s version" }, ['Liezi-G'] = { "lzh", "''[[w:Liezi|Liezi]]'', 1<sup>st</sup> – 5<sup>th</sup> century " .. CE .. ", translated based on [[w:A. C. Graham|A. C. Graham]]'s version" }, ['Liji'] = { "lzh", "The ''[[w:Book of Rites|Book of Rites]]'', " .. circa .. " 4<sup>th</sup> – 2<sup>nd</sup> century " .. BCE }, ['Liji-L'] = { "lzh", "The ''[[w:Book of Rites|Book of Rites]]'', " .. circa .. " 4<sup>th</sup> – 2<sup>nd</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Lingqijing'] = { "lzh", "''[[w:Lingqijing|The Divine Chess Classic]]''" }, ['Lingwai Daida'] = { "lzh", "[[w:zh:周去非|Zhou Qufei]], ''[[w:Lingwai Daida|Representative Answers from the Region beyond the Mountains]]'', 12<sup>th</sup> century " .. CE }, ['Liutao'] = { "lzh", "''[[w:Six Secret Teachings|Six Secret Teachings]]'', " .. circa .. " 475 – 221 " .. BCE }, ['Liutao-S'] = { "lzh", "''[[w:Six Secret Teachings|Six Secret Teachings]]'', " .. circa .. " 475 – 221 " .. BCE .. ", translated based on Ralph D. Sawyer's version" }, ['Lunyu'] = { "lzh", "The ''[[w:Analects|Analects]] of Confucius'', " .. circa .. " 475 – 221 " .. BCE }, ['Lvshi Chunqiu']= { "lzh", "[[w:Lü Buwei|Lü Buwei]], ''[[w:Lüshi Chunqiu|Master Lü's Spring and Autumn Annals]]'', 239 " .. BCE }, ['Lunheng'] = { "lzh", "[[w:Wang Chong|Wang Chong]], ''[[w:Lunheng|Lun Heng]]'' (''Discussive Weighing''), 80 " .. CE }, ['Lunheng-F'] = { "lzh", "[[w:Wang Chong|Wang Chong]], ''[[w:Lunheng|Lun Heng]]'' (''Discussive Weighing''), 80 " .. CE .. ", translated based on Alfred Forke's version" }, ['Mencius'] = { "lzh", "''[[w:Mencius (book)|Mencius]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE }, ['Mencius-L'] = { "lzh", "''[[w:Mencius (book)|Mencius]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Mengxi Bitan'] = { "lzh-lit", "'''1088''' " .. CE .. ", [[w:Shen Kuo|Shen Kuo]], ''[[w:Dream Pool Essays|Dream Pool Essays]]''" }, ['Mengzi'] = { "lzh", "''[[w:Mencius (book)|Mencius]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE }, ['Mengzi-L'] = { "lzh", "''[[w:Mencius (book)|Mencius]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Mingshi'] = { "lzh-lit", "'''17<sup>th</sup>-18<sup>th</sup> century''', ''[[w:History of Ming|History of Ming]]''" }, ['Mozi'] = { "lzh", "''[[w:Mozi (book)|Mozi]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE }, ['Mozi-M'] = { "lzh", "''[[w:Mozi (book)|Mozi]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE .. ", translated based on [[w:zh:梅貽寶|Y. P. Mei]]'s version" }, ['Mutianzizhuan']= { "lzh", "The ''[[w:Tale of King Mu, Son of Heaven|Tale of King Mu, Son of Heaven]]'', " .. circa .. " 370 – 330 " .. BCE }, ['Mutianzizhuan-E']= { "lzh", "The ''[[w:Tale of King Mu, Son of Heaven|Tale of King Mu, Son of Heaven]]'', " .. circa .. " 370 – 330 " .. BCE .. ", translated based on [[w:Ernst Johann Eitel|E. J. Eitel]]'s version" }, ['Mutianzizhuan-Z']= { "lzh", "The ''[[w:Tale of King Mu, Son of Heaven|Tale of King Mu, Son of Heaven]]'', " .. circa .. " 370 – 330 " .. BCE .. ", translated based on Zheng Dekun's version" }, ['Nanqishu'] = { "lzh-lit", "The ''[[w:Book of Qi|Book of Southern Qi]]'', by [[w:Xiao Zixian|Xiao Zixian]], 6<sup>th</sup> century " .. CE }, ['Nanshi'] = { "lzh-lit", "'''659''' " .. CE .. ", [[w:Li Dashi|Li Dashi]] and Li Yanshou, ''[[w:History of the Southern Dynasties|History of the Southern Dynasties]]''" }, ['Paian Jingqi 1'] = { "cmn-wvc", "'''1628''' " .. CE .. ", [[w:Ling Mengchu|Ling Mengchu]], ''[[w:Slapping the Table in Amazement|Slapping the Table in Amazement]]'' I" }, ['Paian Jingqi 2'] = { "cmn-wvc", "'''1632''' " .. CE .. ", [[w:Ling Mengchu|Ling Mengchu]], ''[[w:Slapping the Table in Amazement|Slapping the Table in Amazement]]'' II" }, ['Peizhu'] = { "lzh-lit", "[[w:Pei Songzhi|Pei Songzhi]], ''[[w:Annotations to Records of the Three Kingdoms|Annotations to Records of the Three Kingdoms]]'', circa 5<sup>th</sup> century " .. CE }, ['Qianfu Lun'] = { "lzh", "[[w:Wang Fu (Han dynasty)|Wang Fu]], ''[[w:Qianfu Lun|Comments of a Recluse]]'', " .. circa .. " 2<sup>nd</sup> century " .. CE }, ['Qianfu Lun-P'] = { "lzh", "[[w:Wang Fu (Han dynasty)|Wang Fu]], ''[[w:Qianfu Lun|Comments of a Recluse]]'', " .. circa .. " 2<sup>nd</sup> century " .. CE .. ", translated based on Margaret Pearson's version" }, ['Qianjin Yaofang'] = { "lzh-lit", "[[w:Sun Simiao|Sun Simiao]], ''[[w:Beiji qianjin yaofang|Essential Formulas Worth a Thousand Weights in Gold to Prepare for Emergencies]]'', 652 " .. CE }, ['Qianziwen'] = { "lzh-lit", "Zhou Xingsi, ''[[w:Thousand Character Classic|Thousand Character Classic]]'', circa 6<sup>th</sup> century " .. CE }, ['Qimin Yaoshu'] = { "lzh-lit", "'''544''' " .. CE .. ", Jia Sixie, ''[[w:Qimin Yaoshu|Qimin Yaoshu]]''" }, ['Qingshigao'] = { "lzh-lit", "'''1929''', [[w:Zhao Erxun|Zhao Erxun]] (lead editor), ''[[w:Draft History of Qing|Draft History of Qing]]''" }, ['Rulin Waishi'] = { "cmn-wvc", "[[w:Wu Jingzi|Wu Jingzi]], ''[[w:The Scholars (novel)|The Scholars]]'', 1750 " .. CE }, ['Rulin Waishi-Y'] = { "cmn-wvc", "[[w:Wu Jingzi|Wu Jingzi]], ''[[w:The Scholars (novel)|The Scholars]]'', 1750 " .. CE .. ", translated based on [[w:Yang Xianyi|Yang Xianyi]] and [[w:Gladys Yang|Gladys Yang]]'s version" }, ['Sanlve'] = { "lzh", "''[[w:Three Strategies of Huang Shigong|Three Strategies of Huang Shigong]]]'', 3<sup>th</sup> century " .. BCE .." – 1<sup>nd</sup> century " .. CE }, ['Sanlve-S'] = { "lzh", "''[[w:Three Strategies of Huang Shigong|Three Strategies of Huang Shigong]]]'', 3<sup>th</sup> century " .. BCE .." – 1<sup>nd</sup> century " .. CE .. ", translated based on Ralph D. Sawyer's version" }, ['Sanguozhi'] = { "lzh-lit", "[[w:Chen Shou|Chen Shou]], ''[[w:Records of the Three Kingdoms|Records of the Three Kingdoms]]'', circa 3<sup>rd</sup> century " .. CE }, ['Sanguo Yanyi'] = { "cmn-wvc", "''[[w:Romance of the Three Kingdoms|Romance of the Three Kingdoms]]'', circa 14<sup>th</sup> century " .. CE }, ['Sanxia Wuyi'] = { "cmn-wvc", "''[[w:The Seven Heroes and Five Gallants|The Three Heroes and Five Gallants]]'', 1883 " .. CE }, ['Sanzijing'] = { "lzh-lit", "''[[w:Three Character Classic|Three Character Classic]]'', circa 13<sup>th</sup> century " .. CE }, ['Shangjunshu'] = { "lzh", "The ''[[w:The Book of Lord Shang|Book of Lord Shang]]'', circa 3<sup>rd</sup> century " .. BCE }, ['Shangjunshu-D'] = { "lzh", "The ''[[w:The Book of Lord Shang|Book of Lord Shang]]'', circa 3<sup>rd</sup> century " .. BCE .. ", translated based on [[w:J.J.L. Duyvendak|J.J.L. Duyvendak]]'s version" }, ['Shangshu'] = { "lzh", "The ''[[w:Book of Documents|Book of Documents]]'', circa 4<sup>th</sup> – 3<sup>rd</sup> century " .. BCE }, ['Shangshu-K'] = { "lzh", "The ''[[w:Book of Documents|Book of Documents]]'', circa 4<sup>th</sup> – 3<sup>rd</sup> century " .. BCE .. ", translated based on [[w:Bernhard Karlgren|Bernhard Karlgren]]'s version" }, ['Shangshu-L'] = { "lzh", "The ''[[w:Book of Documents|Book of Documents]]'', circa 4<sup>th</sup> – 3<sup>rd</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Shanhaijing'] = { "lzh", "The ''[[w:Classic of Mountains and Seas|Classic of Mountains and Seas]]''" }, ['Shanhaijing-B'] = { "lzh", "The ''[[w:Classic of Mountains and Seas|Classic of Mountains and Seas]]'', translation from ''The Classic of Mountains and Seas'' (1999), by Anne Birrell" }, ['Shanhaijing-S'] = { "lzh", "The ''[[w:Classic of Mountains and Seas|Classic of Mountains and Seas]]'', translation from ''A Chinese Bestiary : Strange Creatures from the Guideways Through Mountains and Seas'' (2002), by Richard E. Strassberg" }, ['Shenjian'] = { "lzh", "[[w:Xun Yue|Xun Yue]], ''Shenjian'', late 2<sup>nd</sup> - early 3<sup>rd</sup> century " .. CE }, ['Shenjian-C'] = { "lzh", "[[w:Xun Yue|Xun Yue]], ''Shenjian'', late 2<sup>nd</sup> - early 3<sup>rd</sup> century " .. CE .. ", translated based on Chen Qiyun's version" }, ['Shennong Ben Cao Jing'] = { "lzh", "''[[w:Shennong Ben Cao Jing|The Divine Farmer's Materia Medica]]]'', 206 " .. BCE .." – 220 " .. CE }, ['Shennong Ben Cao Jing-Y'] = { "lzh", "''[[w:Shennong Ben Cao Jing|The Divine Farmer's Materia Medica]]]'', 206 " .. BCE .." – 220 " .. CE .. ", translated based on Yang Shou-zhong's version" }, ['Shiji'] = { "lzh", "The ''[[w:Records of the Grand Historian|Records of the Grand Historian]]'', by [[w:Sima Qian|Sima Qian]], " .. circa .. " 91 " .. BCE }, ['Shiji-A'] = { "lzh", "The ''[[w:Records of the Grand Historian|Records of the Grand Historian]]'', by [[w:Sima Qian|Sima Qian]], " .. circa .. " 91 " .. BCE .. ", translated based on Herbert J. Allen's version" }, ['Shiji-W'] = { "lzh", "The ''[[w:Records of the Grand Historian|Records of the Grand Historian]]'', by [[w:Sima Qian|Sima Qian]], " .. circa .. " 91 " .. BCE .. ", translated based on [[w:Burton Watson|Burton Watson]]'s version" }, ['Shijing'] = { "lzh-pre", "The ''[[w:Classic of Poetry|Classic of Poetry]]'', " .. circa .. " 11<sup>th</sup> – 7<sup>th</sup> centuries " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Shijing-K'] = { "lzh-pre", "The ''[[w:Classic of Poetry|Classic of Poetry]]'', " .. circa .. " 11<sup>th</sup> – 7<sup>th</sup> centuries " .. BCE .. ", translated based on [[w:Bernhard Karlgren|Bernhard Karlgren]]'s version" }, ['Shijing-Xu'] = { "lzh", "''Preface to Mao's Odes'' (Commentary on the ''[[w:Classic of Poetry|Classic of Poetry]]''), mid 2<sup>nd</sup> century " .. BCE }, ['Shishuo Xinyu']= { "lzh-lit", "[[w:zh:劉義慶|Liu Yiqing]] (editor), ''[[w:A New Account of the Tales of the World|A New Account of the Tales of the World]]'', 5<sup>th</sup> century " .. CE }, ['Shitong'] = { "lzh-lit", "[[w:Liu Zhiji|Liu Zhiji]], ''[[w:Shitong|Shitong]]'', circa 708 – 710 " .. CE }, ['Shuihuzhuan'] = { "cmn-wvc", "[[w:Shi Nai'an|Shi Nai'an]], ''[[w:Water Margin|Water Margin]]'', circa 14<sup>th</sup> century " .. CE }, ['Shuijingzhu'] = { "lzh-lit", "[[w:Li Daoyuan|Li Daoyuan]], ''[[w:Commentary on the Water Classic|Commentary on the Water Classic]]'', 386-534 " .. CE }, ['Shujing'] = { "lzh", "The ''[[w:Book of Documents|Book of Documents]]'', circa 7<sup>th</sup> – 4<sup>th</sup> centuries " .. BCE }, ['Shujing-L'] = { "lzh", "The ''[[w:Book of Documents|Book of Documents]]'', circa 7<sup>th</sup> – 4<sup>th</sup> centuries " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Shuowen'] = { "lzh", "''[[w:Shuowen Jiezi|Shuowen Jiezi]]'', circa 2<sup>nd</sup> century " .. CE }, ['Shuoyuan'] = { "lzh", "''[[w:Shuoyuan|Shuoyuan]]'', circa 1<sup>st</sup> century " .. BCE }, ['Simafa'] = { "lzh", "''[[w:The Methods of the Sima|The Methods of the Sima]]'', circa 4<sup>th</sup> century " .. BCE }, ['Simafa-S'] = { "lzh", "''[[w:The Methods of the Sima|The Methods of the Sima]]'', circa 4<sup>th</sup> century " .. BCE .. ", translated based on Ralph D. Sawyer's version" }, ['Sishierzhangjing'] = { "lzh", "''[[w:Sutra of Forty-two Chapters|The Sutra of Forty-two Chapters]]'', translated by Kāśyapa Mātaṇga and Dharmaratna circa 1<sup>st</sup> century " .. CE }, ['Songshi'] = { "lzh-lit", "'''1345''' " .. CE .. ", [[w:Toqto'a (Yuan dynasty)|Toqto'a]] (lead editor), ''[[w:History of Song (book)|History of Song]]''" }, ['Songshu'] = { "lzh-lit", "[[w:Shen Yue|Shen Yue]], ''[[w:Book of Song|Book of Song]]'', 492-493 " .. CE}, ['Soushenji'] = { "lzh", "''[[w:Soushen Ji|In Search of the Sacred]]'', circa 3<sup>rd</sup> century " .. CE }, ['Suishu'] = { "lzh-lit", "The ''[[w:Book of Sui|Book of Sui]]'', 636 " .. CE }, ['Sunzi'] = { "lzh", "''[[w:The Art of War|The Art of War]]'', circa 5<sup>th</sup> century " .. BCE }, ['Sunzi-G'] = { "lzh", "''[[w:The Art of War|The Art of War]]'', circa 5<sup>th</sup> century " .. BCE .. ", translated based on [[w:Lionel Giles|Lionel Giles]]'s version" }, ['Sunzi-S'] = { "lzh", "''[[w:The Art of War|The Art of War]]'', circa 5<sup>th</sup> century " .. BCE .. ", translated based on Ralph D. Sawyer's version" }, ['Taiping Guangji']={ "lzh-lit", "''[[w:Taiping Guangji|Taiping Guangji]]'' (''Extensive Records of the Taiping Era''), 978 " .. CE }, ['Taiping Yulan']= { "lzh-lit", "''[[w:Taiping Yulan|Taiping Yulan]]'' (''Readings of the Taiping Era''), 977 – 983 " .. CE }, ['Taixuanjing'] = { "lzh", "[[w:Yang Xiong (author)|Yang Xiong]], ''[[w:Taixuanjing|The Canon of Supreme Mystery]]'', 2 " .. BCE }, ['Tingxun Geyan']= { "lzh", "[[w:Kangxi Emperor|Qing Emperor Kangxi]], ''Guidelines for Families''" }, ['Tongdian'] = { "lzh-lit", "[[w:Du You|Du You]], ''[[w:Tongdian|Tongdian]]'', 766 – 801 " .. CE }, ['UM'] = { "cmn", "[http://nlp2ct.cis.umac.mo/um-corpus/ UM-Corpus: A Large English-Chinese Parallel Corpus] by NLP2CT" }, ['Weiliaozi'] = { "lzh", "''[[w:Wei Liaozi|Wei Liaozi]]'', " .. circa .. " 4<sup>th</sup> – 3<sup>rd</sup> centuries " .. BCE }, ['Weiliaozi-S'] = { "lzh", "''[[w:Wei Liaozi|Wei Liaozi]]'', " .. circa .. " 4<sup>th</sup> – 3<sup>rd</sup> centuries " .. BCE .. ", translated based on Ralph D. Sawyer's version" }, ['Weilve'] = { "lzh", "[[w:Yu Huan|Yu Huan]], ''[[w:Weilüe|Weilüe]]'', 239 – 265 " .. CE }, ['Weishu'] = { "lzh-lit", "[[w:Wei Shou|Wei Shou]], ''[[w:Book of Wei|Book of Wei]]'', 551 – 554 " .. CE }, ['Wenxin Diaolong'] = { "lzh", "[[w:Liu Xie|Liu Xie]], ''[[w:The Literary Mind and the Carving of Dragons|The Literary Mind and the Carving of Dragons]]'', " .. circa .. " 5<sup>th</sup> century " .. CE }, ['Wenzi'] = { "lzh", "''[[w:Wenzi|Wenzi]]''" }, ['Wenxuan'] = { "lzh", "''[[w:Wen Xuan|Wen Xuan]]'', 6<sup>th</sup> century " .. CE }, ['WGWSS'] = { "lzh", "Forged Old Text of the ''[[w:Book of Documents|Book of Documents]]'', circa 3<sup>rd</sup> – 4<sup>th</sup> century " .. CE }, ['Wuzi'] = { "lzh", "''[[w:Wuzi|Wuzi]]]'', 5<sup>th</sup> – 4<sup>th</sup> century " .. BCE }, ['Wuzi-S'] = { "lzh", "''[[w:Wuzi|Wuzi]]]'', 5<sup>th</sup> – 4<sup>th</sup> century " .. BCE .. ", translated based on Ralph D. Sawyer's version" }, ['Xiaojing'] = { "lzh", "''[[w:Classic of Filial Piety|Classic of Filial Piety]]'', circa 475 – 221 " .. BCE }, ['Xingshi Hengyan']={ "cmn-wvc", "[[w:Feng Menglong|Feng Menglong]], ''[[w:Stories to Awaken the World|Stories to Awaken the World]]'', 1627 " .. CE }, ['Xingshi Yinyuan Zhuan']={ "cmn-wvc", "Xizhou Sheng, ''[[w:Xingshi Yinyuan Zhuan|Marriage Destinies to Awaken the World]]'', 17<sup>th</sup> century " .. CE }, ['Xishuangji'] = { "cmn-wvc", "[[w:Wang Shifu|Wang Shifu]], ''[[w:The Story of the Western Wing|The Story of the Western Wing]]'', 13<sup>th</sup> – 14<sup>th</sup> centuries " .. CE }, ['Xiyouji'] = { "cmn-wvc", "[[w:Wu Cheng'en|Wu Cheng'en]], ''[[w:Journey to the West|Journey to the West]]'', 16<sup>th</sup> century " .. CE }, ['Xiyouji-Y'] = { "cmn-wvc", "[[w:Wu Cheng'en|Wu Cheng'en]], ''[[w:Journey to the West|Journey to the West]]'', 16<sup>th</sup> century " .. CE .. ", translation from ''The Journey to the West'' (2012), by [[w:Anthony C. Yu|Anthony C. Yu]]" }, ['Xintangshu'] = { "lzh-lit", "The ''[[w:New Book of Tang|New Book of Tang]]'', 1060 " .. CE }, ['Xinyu'] = { "lzh", "[[w:Lu Jia (Western Han)|Lu Jia]], ''[[w:zh:新語 (中國古籍)|Xinyu]]'' (''A New Discourse''), " .. circa .. " 197 " .. BCE }, ['Xunzi'] = { "lzh", "''[[w:Xunzi (book)|Xunzi]]'', " .. circa .. " 3<sup>rd</sup> century " .. BCE }, ['Yantielun'] = { "lzh", "[[w:zh:桓寬|Huan Kuan]], ''[[w:Discourses on Salt and Iron|Discourses on Salt and Iron]]'', " .. circa .. " 1<sup>st</sup> century " .. BCE }, ['Yanshi Jiaxun']= { "lzh-lit", "[[w:Yan Zhitui|Yan Zhitui]], ''The Family Instructions of Master Yan'', 6<sup>th</sup> century " .. CE }, ['Yanzi Chunqiu']= { "lzh", "''[[w:Yanzi Chunqiu|Annals of Master Yan]]'', " .. circa .. " 3<sup>rd</sup> century " .. BCE }, ['Yijing'] = { "lzh-pre", "''[[w:I Ching|I Ching]]'', 11<sup>th</sup> – 8<sup>th</sup> century " .. BCE }, ['Yijing-L'] = { "lzh-pre", "''[[w:I Ching|I Ching]]'', 11<sup>th</sup> – 8<sup>th</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Yili'] = { "lzh", "''[[w:Yili|Etiquette and Ceremonial]]'', circa 475 – 221 " .. BCE }, ['Yili-S'] = { "lzh", "''[[w:Yili|Etiquette and Ceremonial]]'', circa 475 – 221 " .. BCE .. ", translated based on John Steele's version" }, ['Yilin'] = { "lzh", "[[w:zh:焦贛|Jiao Gong]], ''[[w:Jiaoshi Yilin|Yilin]]'', 1<sup>st</sup> century " .. BCE }, ['Yiwen Leiju'] = { "lzh-lit", "''[[w:Yiwen Leiju|Yiwen Leiju]]'', 624 " .. CE }, ['Yizhoushu'] = { "lzh", "''[[w:Yi Zhou Shu|Lost Book of Zhou]]'', circa 4<sup>th</sup> – 1<sup>st</sup> centuries " .. BCE }, ['Yuandianzhang']= { "lzh-lit", "''[[w:zh:元典章|Statutes of the Yuan dynasty]]'', 1322–1323 " .. CE }, ['Zhanguoce'] = { "lzh", "''[[w:Zhan Guo Ce|Zhanguo Ce]]'', circa 5<sup>th</sup> – 3<sup>rd</sup> centuries " .. BCE }, ['Zhanguoce-C'] = { "lzh", "''[[w:Zhan Guo Ce|Zhanguo Ce]]'', circa 5<sup>th</sup> – 3<sup>rd</sup> centuries " .. BCE .. ", translated based on J. I. Crump's version" }, ["Zhaoshi Gu'er"]= { "cmn-wvc", "'''Yuan Dynasty''', [[w:zh:紀君祥|Ji Junxiang]], ''[[w:The Orphan of Zhao|The Orphan of Zhao]]''" }, ['Zhouli'] = { "lzh", "''[[w:Rites of Zhou|Rites of Zhou]]'', circa 3<sup>rd</sup> century " .. BCE }, ['Zhoushu'] = { "lzh-lit", "'''636''' " .. CE .. ", [[w:Linghu Defen|Linghu Defen]], ''[[w:Book of Zhou|Book of Zhou]]''" }, ['Zhuangzi'] = { "lzh", "''[[w:Zhuangzi (book)|Zhuangzi]]'', circa 3<sup>rd</sup> – 2<sup>nd</sup> centuries " .. BCE }, ['Zhuangzi-L'] = { "lzh", "''[[w:Zhuangzi (book)|Zhuangzi]]'', circa 3<sup>rd</sup> – 2<sup>nd</sup> centuries " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Zhuangzi-W'] = { "lzh", "''[[w:Zhuangzi (book)|Zhuangzi]]'', circa 3<sup>rd</sup> – 2<sup>nd</sup> centuries " .. BCE .. ", translation from ''The Complete Works Of Chuang Tzu'' (2013), by [[w:Burton Watson|Burton Watson]]" }, ['Zhushu Jinian'] = { "lzh", "''[[w:Bamboo Annals|Bamboo Annals]]'', circa 475 – 221 " .. BCE }, ['Zhuzi Jiaxun'] = { "lzh-lit", "[[w:zh:朱用純|Zhu Yongchun]], ''[[w:zh:朱柏廬治家格言|Zhu Zi's Family Maxims]]'', 17<sup>th</sup> century " .. CE }, ['Zhuzi Yulei'] = {"cmn-wvc", "Various editors, ''[[w:Zhuzi yulei|Collected Conversations of Master Zhu]]'', " .. circa .. " 13<sup>th</sup> century " .. CE}, ['Zibuyu'] = { "lzh-lit", "[[w:Yuan Mei|Yuan Mei]], ''[[w:What the Master Would Not Discuss|What the Master Would Not Discuss]]'', 1788 " .. CE }, ['Zizhi Tongjian'] = { "lzh-lit", "'''1084''' " .. CE .. ", [[w:Sima Guang|Sima Guang]], ''[[w:Comprehensive Mirror to Aid in Government|Comprehensive Mirror to Aid in Government]]''" }, ['Zuozhuan'] = { "lzh", "''[[w:Zuo zhuan|Commentary of Zuo]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE }, ['Zuozhuan-D'] = { "lzh", "''[[w:Zuo zhuan|Commentary of Zuo]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE .. ", translation from ''Zuozhuan: Commentary on the \"Spring and Autumn Annals\"'' (2017), by Stephen Durrant, Wai-yee Li and David Schaberg" }, ['Zuozhuan-L'] = { "lzh", "''[[w:Zuo zhuan|Commentary of Zuo]]'', " .. circa .. " 4<sup>th</sup> century " .. BCE .. ", translated based on [[w:James Legge|James Legge]]'s version" }, ['Mao25'] = format_mao("1925", "中國社會各階級的分析", "Analysis of the Classes in Chinese Society", "1", "1"), ['Mao27'] = format_mao("1927", "[[w:zh:湖南农民运动考察报告|湖南農民運動考察報告]]", "[[w:Report on an Investigation of the Peasant Movement in Hunan|Report on an Investigation of the Peasant Movement in Hunan]]", "1", "2"), ['Mao35'] = format_mao("1935", "論反對日本帝國主義的策略", "On Tactics Against Japanese Imperialism", "1", "11"), ['Mao36'] = format_mao("1936", "中國革命戰爭的戰略問題", "Problems of Strategy in China's Revolutionary War", "1", "12"), ['MaoSJL'] = format_mao("1937", "[[w:zh:實踐論|實踐論]]", "[[w:On Practice|On Practice]]", "1", "16"), ['MaoMDL'] = format_mao("1937", "[[w:zh:矛盾論|矛盾論]]", "[[w:On Contradiction|On Contradiction]]", "1", "17"), ['MaoZYZY'] = format_mao("1937", "反對自由主義", "Combat Liberalism", "2", "03"), ['Mao38'] = format_mao("1938", "[[w:zh:論持久戰|論持久戰]]", "[[w:On Protracted War|On Protracted War]]", "2", "09"), ['MaoZGGM'] = format_mao("1939", "中國革命和中國共產黨", "The Chinese Revolution and the Chinese Communist Party", "2", "23"), ['MaoXMZZY'] = format_mao("1940", "[[w:zh:新民主主義論|新民主主義論]]", "On New Democracy", "2", "26"), ['MaoRectify'] = format_mao("1942", "整頓黨的作風", "Rectify the Party's Style of Work", "3", "06"), ['MaoYanan'] = format_mao("1942", "[[w:zh:在延安文藝座談會上的講話|在延安文藝座談會上的講話]]", "[[w:Yan'an Forum|Talks at the Yenan Forum on Literature and Art]]", "3", "08"), ['Mao45'] = format_mao("1945", "[[s:zh:論聯合政府|論聯合政府]]", "On Coalition Government", "3", "25"), ['Mao56'] = format_mao("1956", "[[w:zh:論十大關係|論十大關係]]", "[[w:Ten Major Relationships|On the Ten Major Relationships]]", "5", "51"), ['Mao57'] = format_mao("1957", "關於正確處理人民內部矛盾的問題", "On the Correct Handling of Contradictions Among the People", "5", "58"), } data.pron_correction = { ["cmn"] = {}, ["yue"] = { ["錢"] = "cin4", ["道"] = "dou6", ["稱"] = "cing1", ["噏"] = "ngap1", }, ["hak"] = { ["阿"] = "-â", ["媸"] = "-ché", ["獎"] = "-chióng", ["竹"] = "-chuk", ["茶"] = "chhà", ["蚻"] = "-chha̍t", ["曾"] = "-chhèn", ["千"] = "-chhiên", ["竄"] = "-chhon", ["捽"] = "-chhu̍t", ["仔"] = "-é", ["𫣆"] = "-ên", ["客"] = "-hak", ["機"] = "-kî", ["𥘹"] = "-kì", ["溝"] = "-kiêu", ["稿"] = "-kó", ["罅"] = "-la", ["壢"] = "-lak", ["摎"] = "-lâu", ["㧯"] = "-lâu", ["恅"] = "-láu", ["俚"] = "-lî", ["羅"] = "-lò", ["擂"] = "-lùi", ["閩"] = "-mén", ["美"] = "-mî", ["忘"] = "-mong", ["蚊"] = "-mûn", ["腦"] = "-nó", ["濃"] = "-nùng", ["𠊎"] = "-ngài", ["祢"] = "-ngì", ["孲"] = "-ò", ["𡟓"] = "-ôi", ["錶"] = "-péu", ["輩"] = "-pi", ["𡜵"] = "-pû", ["婆"] = "-phò", ["使"] = "-sṳ́", ["史"] = "-sṳ́", ["視"] = "sṳ", ["脣"] = "-sùn", ["點"] = "-tiám", ["𢯭"] = "-then", ["電"] = "-thien", ["唐"] = "-thòng", ["筒"] = "-thùng", ["裕"] = "-yi", }, ["nan-hbl"] = { ["阿"] = "-a", ["仔"] = "-á", ["矣"] = "-ah", ["啊"] = "-ah", ["䆀"] = "-bái", ["袂"] = "-bē", ["欲"] = "-beh", ["覕"] = "-bih", ["盟"] = "-bêng", ["務"] = "-bū", ["欉"] = "-châng", ["十"] = "-cha̍p", ["誌"] = "-chì", ["遮"] = "-chiah", ["針"] = "-chiam", ["窒"] = "-chit", ["鯽"] = "-chit", ["一"] = "-chi̍t", ["睭"] = "-chiu", ["慈"] = "-chû", ["𠞩"] = "-chûi", ["𨑨"] = "-chhit", ["𤆬"] = "-chhōa", ["攢"] = "-chhoân", ["的"] = "-ê", ["个"] = "-ê", ["憶"] = "-ek", ["𠢕"] = "-gâu", ["偌"] = "-gōa", ["囡"] = "-gín", ["耳"] = "-hīⁿ", ["予"] = "-hō͘", ["已"] = "-í", ["也"] = "-iā", ["𪜶"] = "-in", ["字"] = "-jī", ["然"] = "-jiân", ["日"] = "-ji̍t", ["共"] = "-kā", ["佮"] = "-kah", ["甲"] = "-kah", ["矸"] = "-kan", ["到"] = "-kàu", ["竟"] = "kèng", ["行"] = "-kiâⁿ", ["勼"] = "-kiu", ["閣"] = "-koh", ["擱"] = "-koh", ["講"] = "-kóng", ["跤"] = "-kha", ["較"] = "-khah", ["徛"] = "-khiā", ["課"] = "-khò", ["人"] = "-lâng", ["汝"] = "-lí", ["旅"] = "-lí", ["啉"] = "-lim", ["暖"] = "-loán", ["戀"] = "-loân", ["攏"] = "-lóng", ["毋"] = "-m̄", ["嬤"] = "-má", ["喔"] = "-o͘h", ["爸"] = "-pē", ["悲"] = "-pi", ["麭"] = "-pháng", ["三"] = "-saⁿ", ["捨"] = "-siá", ["閃"] = "-siám", ["雙"] = "-siang", ["啥"] = "-siáⁿ", ["心"] = "-sim", ["俗"] = "-sio̍k", ["傷"] = "-siong", ["商"] = "-siong", ["受"] = "-siū", ["煞"] = "-soah", ["士"] = "-sū", ["雖"] = "-sui", ["媠"] = "-súi", ["遂"] = "-sūi", ["臺"] = "-tâi", ["塊"] = "-tè", ["咧"] = "-teh", ["豬"] = "-ti", ["戴"] = "-tì", ["佇"] = "-tī", ["典"] = "-tián", ["躊"] = "-tiû", ["斷"] = "-tn̄g", ["多"] = "-to", ["倒"] = "tó", ["拄"] = "-tú", ["盹"] = "-tuh", ["脣"] = "-tûn", ["太"] = "-thài", ["刣"] = "-thâi", ["讀"] = "-tha̍k", ["窗"] = "-thang", ["迌"] = "-thô", ["揻"] = "-ui", }, ["wuu"] = {}, } data.polysyllable_pron_correction = { ["cmn"] = { ["覺得"] = "juéde", ["個中"] = "gèzhōng", ["個人"] = "gèrén", ["個個"] = "gègè", ["個兒"] = "gèr", ["個別"] = "gèbié", ["個子"] = "gèzi", ["個展"] = "gèzhǎn", ["個性"] = "gèxìng", ["個數"] = "gèshù", ["個案"] = "gè'àn",["個頭"] = "gètóu", ["個體"] = "gètǐ", ["成為"] = "chéngwéi", ["請假"] = "qǐngjià" }, ["yue"] = { ["屋企"] = "uk1 kei2", ["返屋企"] = "faan1 uk1 kei2", ["知道"] = "zi1 dou3" }, ["hak"] = { ["老鼠"] = "-lo-chhú", ["敗勢"] = "-phài-se", ["癩𰣻"] = "-thái-kô", ["台灣"] = "-Thòi-vàn", ["臺灣"] = "-Thòi-vàn-" }, ["nan-hbl"] = { ["愛人"] = "-ài-jîn", ["饅頭"] = "-bán-thô", ["門徒"] = "-bûn-tô͘", ["情批"] = "-chêng-phoe", ["遮爾"] = "-chiah-nī", ["這馬"] = "-chit-má", ["作用"] = "-chok-iōng", ["請假"] = "-chhéng-ká", ["親像"] = "-chhin-chhiūⁿ", ["偌爾"] = "-gōa-nī", ["一切"] = "-it-chhè", ["一般"] = "-it-poaⁿ", ["一直"] = "-it-ti̍t", ["人海"] = "-jîn-hái", ["人生"] = "-jîn-seng", ["卡拉OK"] = "-kha-lá-ó͘-khe", ["旅行"] = "-lí-hêng", ["歐巴桑"] = "-o͘-bá-sáng", ["歹勢"] = "-pháiⁿ-sè", ["山珍海味"] = "-san-tin-hái-bī", ["漩渦"] = "-soân-o", ["臺灣"] = "-Tâi-oân", ["第一"] = "-tē-it", ["的確"] = "-tek-khak", ["癩𰣻"] = "-thái-ko", }, ["wuu"] = {}, } return data 9dw0ejwsdp2ox6nilshthlgmt6dkdi5 Modul:headword/page 828 160390 628897 628776 2024-11-06T15:48:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628897 Scribunto text/plain local require = require local require_when_needed = require("Module:require when needed") local m_str_utils = require("Module:string utilities") local m_template_parser = require("Module:template parser") local mw = mw local string = string local table = table local ustring = mw.ustring local class_else_type = m_template_parser.class_else_type local concat = table.concat local decode_entities = m_str_utils.decode_entities local encode_entities = m_str_utils.encode_entities local find = string.find local get_category = require_when_needed("Module:maintenance category", "get_category") local insert = table.insert local list_to_set = require("Module:table").listToSet local load_data = mw.loadData local match = string.match local new_title = mw.title.new local pairs = pairs local remove_comments = m_str_utils.remove_comments local split = m_str_utils.split local string_sort = require_when_needed("Module:collation", "string_sort") local sub = string.sub local toNFC = ustring.toNFC local toNFD = ustring.toNFD local type = type local u = m_str_utils.char local ugsub = ustring.gsub local uupper = m_str_utils.upper local langnames = load_data("Module:languages/canonical names") local export = {} -- Combining character data used when categorising unusual characters. These resolve into two patterns, used to find -- single combining characters (i.e. character + diacritic(s)) or double combining characters (i.e. character + -- diacritic(s) + character). -- Charsets are in the format used by Unicode's UnicodeSet tool: https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp. -- Single combining characters. -- Charset: [[:M:]&[:^Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] -- Note: concatenating hundreds of lines at once gives an error, so () are used every 150 lines to break it up into chunks. local comb_chars_single = ("\204\128-\205\142" .. -- U+0300-U+034E "\205\144-\205\155" .. -- U+0350-U+035B "\205\163-\205\175" .. -- U+0363-U+036F "\210\131-\210\137" .. -- U+0483-U+0489 "\214\145-\214\189" .. -- U+0591-U+05BD "\214\191" .. -- U+05BF "\215\129" .. -- U+05C1 "\215\130" .. -- U+05C2 "\215\132" .. -- U+05C4 "\215\133" .. -- U+05C5 "\215\135" .. -- U+05C7 "\216\144-\216\154" .. -- U+0610-U+061A "\217\139-\217\159" .. -- U+064B-U+065F "\217\176" .. -- U+0670 "\219\150-\219\156" .. -- U+06D6-U+06DC "\219\159-\219\164" .. -- U+06DF-U+06E4 "\219\167" .. -- U+06E7 "\219\168" .. -- U+06E8 "\219\170-\219\173" .. -- U+06EA-U+06ED "\220\145" .. -- U+0711 "\220\176-\221\138" .. -- U+0730-U+074A "\222\166-\222\176" .. -- U+07A6-U+07B0 "\223\171-\223\179" .. -- U+07EB-U+07F3 "\223\189" .. -- U+07FD "\224\160\150-\224\160\153" .. -- U+0816-U+0819 "\224\160\155-\224\160\163" .. -- U+081B-U+0823 "\224\160\165-\224\160\167" .. -- U+0825-U+0827 "\224\160\169-\224\160\173" .. -- U+0829-U+082D "\224\161\153-\224\161\155" .. -- U+0859-U+085B "\224\162\151-\224\162\159" .. -- U+0897-U+089F "\224\163\138-\224\163\161" .. -- U+08CA-U+08E1 "\224\163\163-\224\164\131" .. -- U+08E3-U+0903 "\224\164\186-\224\164\188" .. -- U+093A-U+093C "\224\164\190-\224\165\143" .. -- U+093E-U+094F "\224\165\145-\224\165\151" .. -- U+0951-U+0957 "\224\165\162" .. -- U+0962 "\224\165\163" .. -- U+0963 "\224\166\129-\224\166\131" .. -- U+0981-U+0983 "\224\166\188" .. -- U+09BC "\224\166\190-\224\167\132" .. -- U+09BE-U+09C4 "\224\167\135" .. -- U+09C7 "\224\167\136" .. -- U+09C8 "\224\167\139-\224\167\141" .. -- U+09CB-U+09CD "\224\167\151" .. -- U+09D7 "\224\167\162" .. -- U+09E2 "\224\167\163" .. -- U+09E3 "\224\167\190" .. -- U+09FE "\224\168\129-\224\168\131" .. -- U+0A01-U+0A03 "\224\168\188" .. -- U+0A3C "\224\168\190-\224\169\130" .. -- U+0A3E-U+0A42 "\224\169\135" .. -- U+0A47 "\224\169\136" .. -- U+0A48 "\224\169\139-\224\169\141" .. -- U+0A4B-U+0A4D "\224\169\145" .. -- U+0A51 "\224\169\176" .. -- U+0A70 "\224\169\177" .. -- U+0A71 "\224\169\181" .. -- U+0A75 "\224\170\129-\224\170\131" .. -- U+0A81-U+0A83 "\224\170\188" .. -- U+0ABC "\224\170\190-\224\171\133" .. -- U+0ABE-U+0AC5 "\224\171\135-\224\171\137" .. -- U+0AC7-U+0AC9 "\224\171\139-\224\171\141" .. -- U+0ACB-U+0ACD "\224\171\162" .. -- U+0AE2 "\224\171\163" .. -- U+0AE3 "\224\171\186-\224\171\191" .. -- U+0AFA-U+0AFF "\224\172\129-\224\172\131" .. -- U+0B01-U+0B03 "\224\172\188" .. -- U+0B3C "\224\172\190-\224\173\132" .. -- U+0B3E-U+0B44 "\224\173\135" .. -- U+0B47 "\224\173\136" .. -- U+0B48 "\224\173\139-\224\173\141" .. -- U+0B4B-U+0B4D "\224\173\149-\224\173\151" .. -- U+0B55-U+0B57 "\224\173\162" .. -- U+0B62 "\224\173\163" .. -- U+0B63 "\224\174\130" .. -- U+0B82 "\224\174\190-\224\175\130" .. -- U+0BBE-U+0BC2 "\224\175\134-\224\175\136" .. -- U+0BC6-U+0BC8 "\224\175\138-\224\175\141" .. -- U+0BCA-U+0BCD "\224\175\151" .. -- U+0BD7 "\224\176\128-\224\176\132" .. -- U+0C00-U+0C04 "\224\176\188" .. -- U+0C3C "\224\176\190-\224\177\132" .. -- U+0C3E-U+0C44 "\224\177\134-\224\177\136" .. -- U+0C46-U+0C48 "\224\177\138-\224\177\141" .. -- U+0C4A-U+0C4D "\224\177\149" .. -- U+0C55 "\224\177\150" .. -- U+0C56 "\224\177\162" .. -- U+0C62 "\224\177\163" .. -- U+0C63 "\224\178\129-\224\178\131" .. -- U+0C81-U+0C83 "\224\178\188" .. -- U+0CBC "\224\178\190-\224\179\132" .. -- U+0CBE-U+0CC4 "\224\179\134-\224\179\136" .. -- U+0CC6-U+0CC8 "\224\179\138-\224\179\141" .. -- U+0CCA-U+0CCD "\224\179\149" .. -- U+0CD5 "\224\179\150" .. -- U+0CD6 "\224\179\162" .. -- U+0CE2 "\224\179\163" .. -- U+0CE3 "\224\179\179" .. -- U+0CF3 "\224\180\128-\224\180\131" .. -- U+0D00-U+0D03 "\224\180\187" .. -- U+0D3B "\224\180\188" .. -- U+0D3C "\224\180\190-\224\181\132" .. -- U+0D3E-U+0D44 "\224\181\134-\224\181\136" .. -- U+0D46-U+0D48 "\224\181\138-\224\181\141" .. -- U+0D4A-U+0D4D "\224\181\151" .. -- U+0D57 "\224\181\162" .. -- U+0D62 "\224\181\163" .. -- U+0D63 "\224\182\129-\224\182\131" .. -- U+0D81-U+0D83 "\224\183\138" .. -- U+0DCA "\224\183\143-\224\183\148" .. -- U+0DCF-U+0DD4 "\224\183\150" .. -- U+0DD6 "\224\183\152-\224\183\159" .. -- U+0DD8-U+0DDF "\224\183\178" .. -- U+0DF2 "\224\183\179" .. -- U+0DF3 "\224\184\177" .. -- U+0E31 "\224\184\180-\224\184\186" .. -- U+0E34-U+0E3A "\224\185\135-\224\185\142" .. -- U+0E47-U+0E4E "\224\186\177" .. -- U+0EB1 "\224\186\180-\224\186\188" .. -- U+0EB4-U+0EBC "\224\187\136-\224\187\142" .. -- U+0EC8-U+0ECE "\224\188\152" .. -- U+0F18 "\224\188\153" .. -- U+0F19 "\224\188\181" .. -- U+0F35 "\224\188\183" .. -- U+0F37 "\224\188\185" .. -- U+0F39 "\224\188\190" .. -- U+0F3E "\224\188\191" .. -- U+0F3F "\224\189\177-\224\190\132" .. -- U+0F71-U+0F84 "\224\190\134" .. -- U+0F86 "\224\190\135" .. -- U+0F87 "\224\190\141-\224\190\151" .. -- U+0F8D-U+0F97 "\224\190\153-\224\190\188" .. -- U+0F99-U+0FBC "\224\191\134" .. -- U+0FC6 "\225\128\171-\225\128\190" .. -- U+102B-U+103E "\225\129\150-\225\129\153" .. -- U+1056-U+1059 "\225\129\158-\225\129\160" .. -- U+105E-U+1060 "\225\129\162-\225\129\164" .. -- U+1062-U+1064 "\225\129\167-\225\129\173" .. -- U+1067-U+106D "\225\129\177-\225\129\180" .. -- U+1071-U+1074 "\225\130\130-\225\130\141" .. -- U+1082-U+108D "\225\130\143" .. -- U+108F "\225\130\154-\225\130\157" .. -- U+109A-U+109D "\225\141\157-\225\141\159" .. -- U+135D-U+135F "\225\156\146-\225\156\149" .. -- U+1712-U+1715 "\225\156\178-\225\156\180" .. -- U+1732-U+1734 "\225\157\146" .. -- U+1752 "\225\157\147" .. -- U+1753 "\225\157\178" .. -- U+1772 "\225\157\179" .. -- U+1773 "\225\158\180-\225\159\147") .. -- U+17B4-U+17D3 ("\225\159\157" .. -- U+17DD "\225\162\133" .. -- U+1885 "\225\162\134" .. -- U+1886 "\225\162\169" .. -- U+18A9 "\225\164\160-\225\164\171" .. -- U+1920-U+192B "\225\164\176-\225\164\187" .. -- U+1930-U+193B "\225\168\151-\225\168\155" .. -- U+1A17-U+1A1B "\225\169\149-\225\169\158" .. -- U+1A55-U+1A5E "\225\169\160-\225\169\188" .. -- U+1A60-U+1A7C "\225\169\191" .. -- U+1A7F "\225\170\176-\225\171\142" .. -- U+1AB0-U+1ACE "\225\172\128-\225\172\132" .. -- U+1B00-U+1B04 "\225\172\180-\225\173\132" .. -- U+1B34-U+1B44 "\225\173\171-\225\173\179" .. -- U+1B6B-U+1B73 "\225\174\128-\225\174\130" .. -- U+1B80-U+1B82 "\225\174\161-\225\174\173" .. -- U+1BA1-U+1BAD "\225\175\166-\225\175\179" .. -- U+1BE6-U+1BF3 "\225\176\164-\225\176\183" .. -- U+1C24-U+1C37 "\225\179\144-\225\179\146" .. -- U+1CD0-U+1CD2 "\225\179\148-\225\179\168" .. -- U+1CD4-U+1CE8 "\225\179\173" .. -- U+1CED "\225\179\180" .. -- U+1CF4 "\225\179\183-\225\179\185" .. -- U+1CF7-U+1CF9 "\225\183\128-\225\183\140" .. -- U+1DC0-U+1DCC "\225\183\142-\225\183\187" .. -- U+1DCE-U+1DFB "\225\183\189-\225\183\191" .. -- U+1DFD-U+1DFF "\226\131\144-\226\131\176" .. -- U+20D0-U+20F0 "\226\179\175-\226\179\177" .. -- U+2CEF-U+2CF1 "\226\181\191" .. -- U+2D7F "\226\183\160-\226\183\191" .. -- U+2DE0-U+2DFF "\227\128\170-\227\128\175" .. -- U+302A-U+302F "\227\130\153" .. -- U+3099 "\227\130\154" .. -- U+309A "\234\153\175-\234\153\178" .. -- U+A66F-U+A672 "\234\153\180-\234\153\189" .. -- U+A674-U+A67D "\234\154\158" .. -- U+A69E "\234\154\159" .. -- U+A69F "\234\155\176" .. -- U+A6F0 "\234\155\177" .. -- U+A6F1 "\234\160\130" .. -- U+A802 "\234\160\134" .. -- U+A806 "\234\160\139" .. -- U+A80B "\234\160\163-\234\160\167" .. -- U+A823-U+A827 "\234\160\172" .. -- U+A82C "\234\162\128" .. -- U+A880 "\234\162\129" .. -- U+A881 "\234\162\180-\234\163\133" .. -- U+A8B4-U+A8C5 "\234\163\160-\234\163\177" .. -- U+A8E0-U+A8F1 "\234\163\191" .. -- U+A8FF "\234\164\166-\234\164\173" .. -- U+A926-U+A92D "\234\165\135-\234\165\147" .. -- U+A947-U+A953 "\234\166\128-\234\166\131" .. -- U+A980-U+A983 "\234\166\179-\234\167\128" .. -- U+A9B3-U+A9C0 "\234\167\165" .. -- U+A9E5 "\234\168\169-\234\168\182" .. -- U+AA29-U+AA36 "\234\169\131" .. -- U+AA43 "\234\169\140" .. -- U+AA4C "\234\169\141" .. -- U+AA4D "\234\169\187-\234\169\189" .. -- U+AA7B-U+AA7D "\234\170\176" .. -- U+AAB0 "\234\170\178-\234\170\180" .. -- U+AAB2-U+AAB4 "\234\170\183" .. -- U+AAB7 "\234\170\184" .. -- U+AAB8 "\234\170\190" .. -- U+AABE "\234\170\191" .. -- U+AABF "\234\171\129" .. -- U+AAC1 "\234\171\171-\234\171\175" .. -- U+AAEB-U+AAEF "\234\171\181" .. -- U+AAF5 "\234\171\182" .. -- U+AAF6 "\234\175\163-\234\175\170" .. -- U+ABE3-U+ABEA "\234\175\172" .. -- U+ABEC "\234\175\173" .. -- U+ABED "\239\172\158" .. -- U+FB1E "\239\184\160-\239\184\175" .. -- U+FE20-U+FE2F "\240\144\135\189" .. -- U+101FD "\240\144\139\160" .. -- U+102E0 "\240\144\141\182-\240\144\141\186" .. -- U+10376-U+1037A "\240\144\168\129-\240\144\168\131" .. -- U+10A01-U+10A03 "\240\144\168\133" .. -- U+10A05 "\240\144\168\134" .. -- U+10A06 "\240\144\168\140-\240\144\168\143" .. -- U+10A0C-U+10A0F "\240\144\168\184-\240\144\168\186" .. -- U+10A38-U+10A3A "\240\144\168\191" .. -- U+10A3F "\240\144\171\165" .. -- U+10AE5 "\240\144\171\166" .. -- U+10AE6 "\240\144\180\164-\240\144\180\167" .. -- U+10D24-U+10D27 "\240\144\181\169-\240\144\181\173" .. -- U+10D69-U+10D6D "\240\144\186\171" .. -- U+10EAB "\240\144\186\172" .. -- U+10EAC "\240\144\187\188-\240\144\187\191" .. -- U+10EFC-U+10EFF "\240\144\189\134-\240\144\189\144" .. -- U+10F46-U+10F50 "\240\144\190\130-\240\144\190\133" .. -- U+10F82-U+10F85 "\240\145\128\128-\240\145\128\130" .. -- U+11000-U+11002 "\240\145\128\184-\240\145\129\134" .. -- U+11038-U+11046 "\240\145\129\176" .. -- U+11070 "\240\145\129\179" .. -- U+11073 "\240\145\129\180" .. -- U+11074 "\240\145\129\191-\240\145\130\130" .. -- U+1107F-U+11082 "\240\145\130\176-\240\145\130\186" .. -- U+110B0-U+110BA "\240\145\131\130" .. -- U+110C2 "\240\145\132\128-\240\145\132\130" .. -- U+11100-U+11102 "\240\145\132\167-\240\145\132\180" .. -- U+11127-U+11134 "\240\145\133\133" .. -- U+11145 "\240\145\133\134" .. -- U+11146 "\240\145\133\179" .. -- U+11173 "\240\145\134\128-\240\145\134\130" .. -- U+11180-U+11182 "\240\145\134\179-\240\145\135\128" .. -- U+111B3-U+111C0 "\240\145\135\137-\240\145\135\140" .. -- U+111C9-U+111CC "\240\145\135\142" .. -- U+111CE "\240\145\135\143" .. -- U+111CF "\240\145\136\172-\240\145\136\183" .. -- U+1122C-U+11237 "\240\145\136\190" .. -- U+1123E "\240\145\137\129" .. -- U+11241 "\240\145\139\159-\240\145\139\170" .. -- U+112DF-U+112EA "\240\145\140\128-\240\145\140\131" .. -- U+11300-U+11303 "\240\145\140\187" .. -- U+1133B "\240\145\140\188" .. -- U+1133C "\240\145\140\190-\240\145\141\132" .. -- U+1133E-U+11344 "\240\145\141\135" .. -- U+11347 "\240\145\141\136" .. -- U+11348 "\240\145\141\139-\240\145\141\141" .. -- U+1134B-U+1134D "\240\145\141\151" .. -- U+11357 "\240\145\141\162" .. -- U+11362 "\240\145\141\163" .. -- U+11363 "\240\145\141\166-\240\145\141\172" .. -- U+11366-U+1136C "\240\145\141\176-\240\145\141\180" .. -- U+11370-U+11374 "\240\145\142\184-\240\145\143\128" .. -- U+113B8-U+113C0 "\240\145\143\130" .. -- U+113C2 "\240\145\143\133" .. -- U+113C5 "\240\145\143\135-\240\145\143\138" .. -- U+113C7-U+113CA "\240\145\143\140-\240\145\143\144" .. -- U+113CC-U+113D0 "\240\145\143\146" .. -- U+113D2 "\240\145\143\161" .. -- U+113E1 "\240\145\143\162" .. -- U+113E2 "\240\145\144\181-\240\145\145\134" .. -- U+11435-U+11446 "\240\145\145\158" .. -- U+1145E "\240\145\146\176-\240\145\147\131" .. -- U+114B0-U+114C3 "\240\145\150\175-\240\145\150\181" .. -- U+115AF-U+115B5 "\240\145\150\184-\240\145\151\128" .. -- U+115B8-U+115C0 "\240\145\151\156" .. -- U+115DC "\240\145\151\157" .. -- U+115DD "\240\145\152\176-\240\145\153\128" .. -- U+11630-U+11640 "\240\145\154\171-\240\145\154\183" .. -- U+116AB-U+116B7 "\240\145\156\157-\240\145\156\171" .. -- U+1171D-U+1172B "\240\145\160\172-\240\145\160\186" .. -- U+1182C-U+1183A "\240\145\164\176-\240\145\164\181" .. -- U+11930-U+11935 "\240\145\164\183" .. -- U+11937 "\240\145\164\184" .. -- U+11938 "\240\145\164\187-\240\145\164\190" .. -- U+1193B-U+1193E "\240\145\165\128") .. -- U+11940 ("\240\145\165\130" .. -- U+11942 "\240\145\165\131" .. -- U+11943 "\240\145\167\145-\240\145\167\151" .. -- U+119D1-U+119D7 "\240\145\167\154-\240\145\167\160" .. -- U+119DA-U+119E0 "\240\145\167\164" .. -- U+119E4 "\240\145\168\129-\240\145\168\138" .. -- U+11A01-U+11A0A "\240\145\168\179-\240\145\168\185" .. -- U+11A33-U+11A39 "\240\145\168\187-\240\145\168\190" .. -- U+11A3B-U+11A3E "\240\145\169\135" .. -- U+11A47 "\240\145\169\145-\240\145\169\155" .. -- U+11A51-U+11A5B "\240\145\170\138-\240\145\170\153" .. -- U+11A8A-U+11A99 "\240\145\176\175-\240\145\176\182" .. -- U+11C2F-U+11C36 "\240\145\176\184-\240\145\176\191" .. -- U+11C38-U+11C3F "\240\145\178\146-\240\145\178\167" .. -- U+11C92-U+11CA7 "\240\145\178\169-\240\145\178\182" .. -- U+11CA9-U+11CB6 "\240\145\180\177-\240\145\180\182" .. -- U+11D31-U+11D36 "\240\145\180\186" .. -- U+11D3A "\240\145\180\188" .. -- U+11D3C "\240\145\180\189" .. -- U+11D3D "\240\145\180\191-\240\145\181\133" .. -- U+11D3F-U+11D45 "\240\145\181\135" .. -- U+11D47 "\240\145\182\138-\240\145\182\142" .. -- U+11D8A-U+11D8E "\240\145\182\144" .. -- U+11D90 "\240\145\182\145" .. -- U+11D91 "\240\145\182\147-\240\145\182\151" .. -- U+11D93-U+11D97 "\240\145\187\179-\240\145\187\182" .. -- U+11EF3-U+11EF6 "\240\145\188\128" .. -- U+11F00 "\240\145\188\129" .. -- U+11F01 "\240\145\188\131" .. -- U+11F03 "\240\145\188\180-\240\145\188\186" .. -- U+11F34-U+11F3A "\240\145\188\190-\240\145\189\130" .. -- U+11F3E-U+11F42 "\240\145\189\154" .. -- U+11F5A "\240\147\145\128" .. -- U+13440 "\240\147\145\135-\240\147\145\149" .. -- U+13447-U+13455 "\240\150\132\158-\240\150\132\175" .. -- U+1611E-U+1612F "\240\150\171\176-\240\150\171\180" .. -- U+16AF0-U+16AF4 "\240\150\172\176-\240\150\172\182" .. -- U+16B30-U+16B36 "\240\150\189\143" .. -- U+16F4F "\240\150\189\145-\240\150\190\135" .. -- U+16F51-U+16F87 "\240\150\190\143-\240\150\190\146" .. -- U+16F8F-U+16F92 "\240\150\191\164" .. -- U+16FE4 "\240\150\191\176" .. -- U+16FF0 "\240\150\191\177" .. -- U+16FF1 "\240\155\178\157" .. -- U+1BC9D "\240\155\178\158" .. -- U+1BC9E "\240\156\188\128-\240\156\188\173" .. -- U+1CF00-U+1CF2D "\240\156\188\176-\240\156\189\134" .. -- U+1CF30-U+1CF46 "\240\157\133\165-\240\157\133\169" .. -- U+1D165-U+1D169 "\240\157\133\173-\240\157\133\178" .. -- U+1D16D-U+1D172 "\240\157\133\187-\240\157\134\130" .. -- U+1D17B-U+1D182 "\240\157\134\133-\240\157\134\139" .. -- U+1D185-U+1D18B "\240\157\134\170-\240\157\134\173" .. -- U+1D1AA-U+1D1AD "\240\157\137\130-\240\157\137\132" .. -- U+1D242-U+1D244 "\240\157\168\128-\240\157\168\182" .. -- U+1DA00-U+1DA36 "\240\157\168\187-\240\157\169\172" .. -- U+1DA3B-U+1DA6C "\240\157\169\181" .. -- U+1DA75 "\240\157\170\132" .. -- U+1DA84 "\240\157\170\155-\240\157\170\159" .. -- U+1DA9B-U+1DA9F "\240\157\170\161-\240\157\170\175" .. -- U+1DAA1-U+1DAAF "\240\158\128\128-\240\158\128\134" .. -- U+1E000-U+1E006 "\240\158\128\136-\240\158\128\152" .. -- U+1E008-U+1E018 "\240\158\128\155-\240\158\128\161" .. -- U+1E01B-U+1E021 "\240\158\128\163" .. -- U+1E023 "\240\158\128\164" .. -- U+1E024 "\240\158\128\166-\240\158\128\170" .. -- U+1E026-U+1E02A "\240\158\130\143" .. -- U+1E08F "\240\158\132\176-\240\158\132\182" .. -- U+1E130-U+1E136 "\240\158\138\174" .. -- U+1E2AE "\240\158\139\172-\240\158\139\175" .. -- U+1E2EC-U+1E2EF "\240\158\147\172-\240\158\147\175" .. -- U+1E4EC-U+1E4EF "\240\158\151\174" .. -- U+1E5EE "\240\158\151\175" .. -- U+1E5EF "\240\158\163\144-\240\158\163\150" .. -- U+1E8D0-U+1E8D6 "\240\158\165\132-\240\158\165\138") -- U+1E944-U+1E94A -- Double combining characters. -- Charset: [[:M:]&[:Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]] local comb_chars_double = "\205\156-\205\162" .. -- U+035C-U+0362 "\225\183\141" .. -- U+1DCD "\225\183\188" -- U+1DFC -- Variation selectors etc.; separated out so that we don't get categories for them. -- Charset: [[:M:]&[[:subhead=Grapheme joiner:][:Variation_Selector=Yes:]]]. local comb_chars_other = "\205\143" .. -- U+034F "\225\160\139-\225\160\141" .. -- U+180B-U+180D "\225\160\143" .. -- U+180F "\239\184\128-\239\184\143" .. -- U+FE00-U+FE0F "\243\160\132\128-\243\160\135\175" -- U+E0100-U+E01EF local comb_chars_all = comb_chars_single .. comb_chars_double .. comb_chars_other local comb_chars = { combined_single = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]+%f[^" .. comb_chars_all .. "]", combined_double = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]*[" .. comb_chars_double .. "]+[" .. comb_chars_all .. "]*.[" .. comb_chars_single .. comb_chars_other .. "]*", diacritics_single = "[" .. comb_chars_single .. "]", diacritics_double = "[" .. comb_chars_double .. "]", diacritics_all = "[" .. comb_chars_all .. "]" } -- Somewhat curated list from https://unicode.org/Public/emoji/16.0/emoji-sequences.txt. -- NOTE: There are lots more emoji sequences involving non-emoji Plane 0 symbols followed by 0xFE0F, which we don't -- (yet?) handle. local emoji_chars = "\226\140\154" .. -- U+231A (⌚) "\226\140\155" .. -- U+231B (⌛) "\226\140\168" .. -- U+2328 (⌨) "\226\143\143" .. -- U+23CF (⏏) "\226\143\169-\226\143\179" .. -- U+23E9-U+23F3 (⏩-⏳) "\226\143\184-\226\143\186" .. -- U+23F8-U+23FA (⏸-⏺) "\226\150\170" .. -- U+25AA (▪) "\226\150\171" .. -- U+25AB (▫) "\226\150\182" .. -- U+25B6 (▶) "\226\151\128" .. -- U+25C0 (◀) "\226\151\187-\226\151\190" .. -- U+25FB-U+25FE (◻-◾) "\226\152\128-\226\152\132" .. -- U+2600-U+2604 (☀-☄) "\226\152\142" .. -- U+260E (☎) "\226\152\145" .. -- U+2611 (☑) "\226\152\148" .. -- U+2614 (☔) "\226\152\149" .. -- U+2615 (☕) "\226\152\152" .. -- U+2618 (☘) "\226\152\157" .. -- U+261D (☝) "\226\152\160" .. -- U+2620 (☠) "\226\152\162" .. -- U+2622 (☢) "\226\152\163" .. -- U+2623 (☣) "\226\152\166" .. -- U+2626 (☦) "\226\152\170" .. -- U+262A (☪) "\226\152\174" .. -- U+262E (☮) "\226\152\175" .. -- U+262F (☯) "\226\152\184-\226\152\186" .. -- U+2638-U+263A (☸-☺) "\226\153\136-\226\153\147" .. -- U+2648-U+2653 (♈-♓) "\226\153\159" .. -- U+265F (♟) "\226\153\160" .. -- U+2660 (♠) "\226\153\163" .. -- U+2663 (♣) "\226\153\165" .. -- U+2665 (♥) "\226\153\166" .. -- U+2666 (♦) "\226\153\168" .. -- U+2668 (♨) "\226\153\187" .. -- U+267B (♻) "\226\153\190" .. -- U+267E (♾) "\226\153\191" .. -- U+267F (♿) "\226\154\146-\226\154\151" .. -- U+2692-U+2697 (⚒-⚗) "\226\154\153" .. -- U+2699 (⚙) "\226\154\155" .. -- U+269B (⚛) "\226\154\156" .. -- U+269C (⚜) "\226\154\160" .. -- U+26A0 (⚠) "\226\154\161" .. -- U+26A1 (⚡) "\226\154\170" .. -- U+26AA (⚪) "\226\154\171" .. -- U+26AB (⚫) "\226\154\176" .. -- U+26B0 (⚰) "\226\154\177" .. -- U+26B1 (⚱) "\226\154\189" .. -- U+26BD (⚽) "\226\154\190" .. -- U+26BE (⚾) "\226\155\132" .. -- U+26C4 (⛄) "\226\155\133" .. -- U+26C5 (⛅) "\226\155\136" .. -- U+26C8 (⛈) "\226\155\142" .. -- U+26CE (⛎) "\226\155\143" .. -- U+26CF (⛏) "\226\155\145" .. -- U+26D1 (⛑) "\226\155\147" .. -- U+26D3 (⛓) "\226\155\148" .. -- U+26D4 (⛔) "\226\155\169" .. -- U+26E9 (⛩) "\226\155\170" .. -- U+26EA (⛪) "\226\155\176-\226\155\181" .. -- U+26F0-U+26F5 (⛰-⛵) "\226\155\183-\226\155\186" .. -- U+26F7-U+26FA (⛷-⛺) "\226\155\189" .. -- U+26FD (⛽) "\226\156\130" .. -- U+2702 (✂) "\226\156\133" .. -- U+2705 (✅) "\226\156\136-\226\156\141" .. -- U+2708-U+270D (✈-✍) "\226\156\143" .. -- U+270F (✏) "\226\156\146" .. -- U+2712 (✒) "\226\156\148" .. -- U+2714 (✔) "\226\156\150" .. -- U+2716 (✖) "\226\156\157" .. -- U+271D (✝) "\226\156\161" .. -- U+2721 (✡) "\226\156\168" .. -- U+2728 (✨) "\226\156\179" .. -- U+2733 (✳) "\226\156\180" .. -- U+2734 (✴) "\226\157\132" .. -- U+2744 (❄) "\226\157\135" .. -- U+2747 (❇) "\226\157\140" .. -- U+274C (❌) "\226\157\142" .. -- U+274E (❎) "\226\157\147-\226\157\149" .. -- U+2753-U+2755 (❓-❕) "\226\157\151" .. -- U+2757 (❗) "\226\157\163" .. -- U+2763 (❣) "\226\157\164" .. -- U+2764 (❤) "\226\158\149-\226\158\151" .. -- U+2795-U+2797 (➕-➗) "\226\158\161" .. -- U+27A1 (➡) "\226\158\176" .. -- U+27B0 (➰) "\226\158\191" .. -- U+27BF (➿) "\226\164\180" .. -- U+2934 (⤴) "\226\164\181" .. -- U+2935 (⤵) "\226\172\133-\226\172\135" .. -- U+2B05-U+2B07 (⬅-⬇) "\226\172\155" .. -- U+2B1B (⬛) "\226\172\156" .. -- U+2B1C (⬜) "\226\173\144" .. -- U+2B50 (⭐) "\226\173\149" .. -- U+2B55 (⭕) "\227\128\176" .. -- U+3030 (〰) "\227\128\189" .. -- U+303D (〽) "\227\138\151" .. -- U+3297 (㊗) "\227\138\153" .. -- U+3299 (㊙) "\240\159\128\132" .. -- U+1F004 (🀄) "\240\159\131\143" .. -- U+1F0CF (🃏) "\240\159\133\176" .. -- U+1F170 (🅰) "\240\159\133\177" .. -- U+1F171 (🅱) "\240\159\133\190" .. -- U+1F17E (🅾) "\240\159\133\191" .. -- U+1F17F (🅿) "\240\159\134\142" .. -- U+1F18E (🆎) "\240\159\134\145-\240\159\134\154" .. -- U+1F191-U+1F19A (🆑-🆚) "\240\159\136\129" .. -- U+1F201 (🈁) "\240\159\136\130" .. -- U+1F202 (🈂) "\240\159\136\154" .. -- U+1F21A (🈚) "\240\159\136\175" .. -- U+1F22F (🈯) "\240\159\136\178-\240\159\136\186" .. -- U+1F232-U+1F23A (🈲-🈺) "\240\159\137\144" .. -- U+1F250 (🉐) "\240\159\137\145" .. -- U+1F251 (🉑) "\240\159\140\128-\240\159\153\143" .. -- U+1F300-U+1F64F (🌀-🙏) "\240\159\154\128-\240\159\155\151" .. -- U+1F680-U+1F6D7 (🚀-🛗) "\240\159\155\156-\240\159\155\172" .. -- U+1F6DC-U+1F6EC (🛜-🛬) "\240\159\155\176-\240\159\155\188" .. -- U+1F6F0-U+1F6FC (🛰-🛼) "\240\159\159\160-\240\159\159\171" .. -- U+1F7E0-U+1F7EB (🟠-🟫) "\240\159\159\176" .. -- U+1F7F0 (🟰) "\240\159\164\140-\240\159\169\147" .. -- U+1F90C-U+1FA53 (🤌-🩓) "\240\159\169\160-\240\159\169\173" .. -- U+1FA60-U+1FA6D (🩠-🩭) "\240\159\169\176-\240\159\169\188" .. -- U+1FA70-U+1FA7C (🩰-🩼) "\240\159\170\128-\240\159\170\137" .. -- U+1FA80-U+1FA89 (🪀-🪉) "\240\159\170\143-\240\159\171\134" .. -- U+1FA8F-U+1FAC6 (🪏-🫆) "\240\159\171\142-\240\159\171\156" .. -- U+1FACE-U+1FADC (🫎-🫜) "\240\159\171\159-\240\159\171\169" .. -- U+1FADF-U+1FAE9 (🫟-🫩) "\240\159\171\176-\240\159\171\184" -- U+1FAF0-U+1FAF8 (🫰-🫸) local unsupported_characters = {} for k, v in pairs(require("Module:links/data").unsupported_characters) do unsupported_characters[v] = k end -- Get the list of unsupported titles and invert it (so the keys are pagenames and values are canonical titles). local unsupported_titles = {} for k, v in pairs(require("Module:links/data").unsupported_titles) do unsupported_titles[v] = k end --[==[ Given a pagename (or {nil} for the current page), create and return a data structure describing the page. The returned object includes the following fields: * `comb_chars`: A table containing various Lua character class patterns for different types of combined characters (those that decompose into multiple characters in the NFD decomposition). The patterns are meant to be used with {mw.ustring.find()}. The keys are: ** `single`: Single combining characters (character + diacritic), without surrounding brackets; ** `double`: Double combining characters (character + diacritic + character), without surrounding brackets; ** `vs`: Variation selectors, without surrounding brackets; ** `all`: Concatenation of `single` + `double` + `vs`, without surrounding brackets; ** `diacritics_single`: Like `single` but with surrounding brackets; ** `diacritics_double`: Like `double` but with surrounding brackets; ** `diacritics_all`: Like `all` but with surrounding brackets; ** `combined_single`: Lua pattern for matching a spacing character followed by one or more single combining characters; ** `combined_double`: Lua pattern for matching a combination of two spacing characters separated by one or more double combining characters, possibly also with single combining characters; * `emoji_pattern`: A Lua character class pattern (including surrounding brackets) that matches emojis. Meant to be used with {mw.ustring.find()}. * `L2_list`: Ordered list of L2 headings on the page, with the extra key `n` that gives the length of the list. * `L2_sections`: Lookup table of L2 headings on the page, where the key is the section number assigned by the preprocessor, and the value is the L2 heading name. Once an invocation has got its actual section number from get_current_L2 in [[Module:pages]], it can use this table to determine its parent L2. TODO: We could expand this to include subsections, to check POS headings are correct etc. * `unsupported_titles`: Map from pagenames to canonical titles for unsupported-title pages. * `namespace`: Namespace of the pagename. * `ns`: Namespace table for the page from mw.site.namespaces (TODO: merge with `namespace` above). * `full_raw_pagename`: Full version of the '''RAW''' pagename (i.e. unsupported-title pages aren't canonicalized); including the namespace and the root (portion before the slash). * `pagename`: Canonicalized subpage portion of the pagename (unsupported-title pages are canonicalized). * `decompose_pagename`: Equivalent of `pagename` in NFD decomposition. * `pagename_len`: Length of `pagename` in Unicode chars, where combinations of spacing character + decomposed diacritic are treated as single characters. * `explode_pagename`: Set of characters found in `pagename`. The keys are characters (where combinations of spacing character + decomposed diacritic are treated as single characters). * `encoded_pagename`: FIXME: Document me. * `pagename_defaultsort`: FIXME: Document me. * `raw_defaultsort`: FIXME: Document me. * `wikitext_topic_cat`: FIXME: Document me. * `wikitext_langname_cat`: FIXME: Document me. ]==] function export.process_page(pagename) local data = { comb_chars = comb_chars, emoji_pattern = "[" .. emoji_chars .. "]", unsupported_titles = unsupported_titles } local cats = {} data.cats = cats -- We cannot store `raw_title` in `data` because it contains a metatable. local raw_title local function bad_pagename() if not pagename then error("Internal error: Something wrong, `data.pagename` not specified but current title containg illegal characters") else error(("Bad value for `data.pagename`: '%s', which must not contain illegal characters"):format(pagename)) end end if pagename then -- for testing, doc pages, etc. raw_title = new_title(pagename) if not raw_title then bad_pagename() end else raw_title = mw.title.getCurrentTitle() end data.namespace = raw_title.nsText data.ns = mw.site.namespaces[raw_title.namespace] data.full_raw_pagename = raw_title.fullText local frame = mw.getCurrentFrame() -- WARNING: `content` May be nil, e.g. if we're substing a template like {{ja-new}} on a not-yet-created page -- or if the module specifies the subpage as `data.pagename` (which many modules do) and we're in an Appendix -- or other non-mainspace page. We used to make the latter an error but there are too many modules that do it, -- and substing on a nonexistent page is totally legit, and we don't actually need to be able to access the -- content of the page. local content = raw_title:getContent() --Get the pagename. pagename = raw_title.subpageText :gsub("^Unsupported titles/(.*)", function(m) insert(cats, "Unsupported titles") return unsupported_titles[m] or (m:gsub("`.-`", unsupported_characters)) end) -- Save pagename, as local variable will be destructively modified. data.pagename = pagename -- Decompose the pagename in Unicode normalization form D. data.decompose_pagename = toNFD(pagename) -- Explode the current page name into a character table, taking decomposed combining characters into account. local explode_pagename = {} local pagename_len = 0 local function explode(char) explode_pagename[char] = true pagename_len = pagename_len + 1 return "" end pagename = ugsub(pagename, comb_chars.combined_double, explode) pagename = ugsub(pagename, comb_chars.combined_single, explode) :gsub(".[\128-\191]*", explode) data.explode_pagename = explode_pagename data.pagename_len = pagename_len -- Generate DEFAULTSORT. data.encoded_pagename = encode_entities(data.pagename) data.pagename_defaultsort = require("Module:tili").getByCode("mul"):makeSortKey(data.encoded_pagename) frame:callParserFunction( "DEFAULTSORT", data.pagename_defaultsort ) data.raw_defaultsort = raw_title.text:uupper() -- Make `L2_list` and `L2_sections`, note raw wikitext use of {{DEFAULTSORT:}} and {{DISPLAYTITLE:}}, then add categories if any unwanted L1 headings are found, the L2 headings are in the wrong order, or they don't match a canonical language name. -- Note: HTML comments shouldn't be removed from `content` until after this step, as they can affect the result. do local L2_list, L2_list_len, L2_sections, sort_cache, prev = {}, 0, {}, {} local new_cats, L2_wrong_order = {} local function get_weight(L2) if L2 == "Translingual" then return "\1" elseif L2 == "English" then return "\2" elseif match(L2, "^[%z\1-\b\14-!#-&(-,.-\127]+$") then return L2 end local weight = sort_cache[L2] if weight then return weight end weight = toNFC(ugsub(ugsub(toNFD(L2), "[" .. comb_chars_all .. "'\"ʻʼ]+", ""), "[%s%-]+", " ")) sort_cache[L2] = weight return weight end local function handle_heading(heading) local level = heading.level if level > 2 then return end local name = heading:get_name() -- heading:get_name() will return nil if there are any newline characters in the preprocessed heading name (e.g. from an expanded template). In such cases, the preprocessor section count still increments (since it's calculated pre-expansion), but the heading will fail, so the L2 count shouldn't be incremented. if name == nil then return end L2_list_len = L2_list_len + 1 L2_list[L2_list_len] = name L2_sections[heading.section] = name -- Also add any L1s, since they terminate the preceding L2, but add a maintenance category since it's probably a mistake. if level == 1 then new_cats["Pages with unwanted L1 headings"] = true end -- Check the heading is in the right order. -- FIXME: we need a more sophisticated sorting method which handles non-diacritic special characters (e.g. Magɨ). if prev and not ( L2_wrong_order or string_sort(get_weight(prev), get_weight(name)) ) then new_cats["Pages with language headings in the wrong order"] = true L2_wrong_order = true end -- Check it's a canonical language name. if not langnames[name] then new_cats["Pages with nonstandard language headings"] = true end prev = name end local function handle_template(template) local name = template:get_name() if name == "DEFAULTSORT:" then new_cats["Pages with DEFAULTSORT conflicts"] = true elseif name == "DISPLAYTITLE:" then new_cats["Pages with DISPLAYTITLE conflicts"] = true end end if content then for node in m_template_parser.parse(content):__pairs("next_node") do local node_class = class_else_type(node) if node_class == "heading" then handle_heading(node) elseif node_class == "template" then handle_template(node) elseif node_class == "parameter" then new_cats["Pages with raw triple-brace template parameters"] = true end end end L2_list.n = L2_list_len data.L2_list = L2_list data.L2_sections = L2_sections insert(cats, get_category("Pages with entries")) insert(cats, get_category("Pages with %s entr%s"):format(L2_list_len, L2_list_len == 1 and "y" or "ies")) for cat in pairs(new_cats) do insert(cats, get_category(cat)) end end ------ 4. Parse page for maintenance categories. ------ -- Use of tab characters. if content and find(content, "\t", 1, true) then insert(cats, get_category("Pages with tab characters")) end -- Unencoded character(s) in title. local IDS = list_to_set{"⿰", "⿱", "⿲", "⿳", "⿴", "⿵", "⿶", "⿷", "⿸", "⿹", "⿺", "⿻", "⿼", "⿽", "⿾", "⿿", "㇯"} for char in pairs(explode_pagename) do if IDS[char] and char ~= data.pagename then insert(cats, "Terms containing unencoded characters") break end end -- Raw wikitext use of a topic or langname category. Also check if any raw sortkeys have been used. do local wikitext_topic_cat = {} local wikitext_langname_cat = {} local raw_sortkey -- If a raw sortkey has been found, add it to the relevant table. -- If there's no table (or the index is just `true`), create one first. local function add_cat_table(t, lang, sortkey) local t_lang = t[lang] if not sortkey then if not t_lang then t[lang] = true end return elseif t_lang == true or not t_lang then t_lang = {} t[lang] = t_lang end t_lang[uupper(decode_entities(sortkey))] = true end local function process_category(content, cat, colon, nxt) local pipe = find(cat, "|", colon + 1, true) -- Categories cannot end "|]]". if pipe == #cat then return end local title = new_title(pipe and sub(cat, 1, pipe - 1) or cat) if not (title and title.namespace == 14) then return end -- Get the sortkey (if any), then canonicalize category title. local sortkey = pipe and sub(cat, pipe + 1) or nil cat = title.text if sortkey then raw_sortkey = true -- If the sortkey contains "[", the first "]" of a final "]]]" is treated as part of the sortkey. if find(sortkey, "[", 1, true) and sub(content, nxt, nxt) == "]" then sortkey = sortkey .. "]" end end local code = match(cat, "^([%w%-.]+):") if code then add_cat_table(wikitext_topic_cat, code, sortkey) return end -- Split by word. cat = split(cat, " ", true, true) -- Formerly we looked for the language name anywhere in the category. This is simply wrong -- because there are no categories like 'Alsatian French lemmas' (only L2 languages -- have langname categories), but doing it this way wrongly catches things like [[Category:Shapsug Adyghe]] -- in [[Category:Adyghe entries with language name categories using raw markup]]. local n = #cat - 1 if n <= 0 then return end -- Go from longest to shortest and stop once we've found a language name. Going from shortest -- to longest or not stopping after a match risks falsely matching (e.g.) German Low German -- categories as German. repeat local name = concat(cat, " ", 1, n) if langnames[name] then add_cat_table(wikitext_langname_cat, name, sortkey) return end n = n - 1 until n == 0 end if content then -- Remove comments, then iterate over category links. content = remove_comments(content, "BOTH") local head = find(content, "[[", 1, true) while head do local close = find(content, "]]", head + 2, true) if not close then break end -- Make sure there are no intervening "[[" between head and close. local open = find(content, "[[", head + 2, true) while open and open < close do head = open open = find(content, "[[", head + 2, true) end local cat = sub(content, head + 2, close - 1) -- Locate the colon, and weed out most unwanted links. "[ _\128-\244]*" catches valid whitespace, and ensures any category links using the colon trick are ignored. We match all non-ASCII characters, as there could be multibyte spaces, and mw.title.new will filter out any remaining false-positives; this is a lot faster than running mw.title.new on every link. local colon = match(cat, "^[ _\128-\244]*[Cc][Aa][Tt][EeGgOoRrYy _\128-\244]*():") if colon then process_category(content, cat, colon, close + 2) end head = open end end data.wikitext_topic_cat = wikitext_topic_cat data.wikitext_langname_cat = wikitext_langname_cat if raw_sortkey then insert(cats, get_category("Pages with raw sortkeys")) end end return data end return export 2jbg6pjm2n432bbvx0mtzruc45fessl Modul:columns/auto 828 160399 628861 628792 2024-11-06T14:23:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE 628861 Scribunto text/plain -- TODO needs a complete redesign local export = {} function export.decide_number_of_columns(lang, number_of_items) if number_of_items <= 3 then return 1 elseif number_of_items <= 9 then return 2 elseif number_of_items <= 27 then return 3 elseif number_of_items <= 81 then return 4 else return 5 end end function export.display_from(column_args, list_args) if not column_args["columns"] then local m_table = require("Module:table") column_args = m_table.shallowcopy(column_args) local lang = require("Module:tili").getByCode(mw.text.trim(list_args[1]), 1) column_args["columns"] = export.decide_number_of_columns(lang, m_table.length(list_args)) end return require("Module:columns").display_from(column_args, list_args) end function export.display(frame) return export.display_from(frame.args, frame:getParent().args) end return export oug4y0k8654x332zjkqy4pqspanbta6 Modul:parameter utilities 828 160405 628863 2024-11-06T14:33:31Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local dump = mw.dumpObject local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local table_module = "Module:table" local function track(page, track_module) return require("Module:debug/track")((track_module or "parameter utilities") .. "/" .. page) end -- Throw an error prefixed with the words "Internal error" (and suffixed with a dumped version of `spec`, if provided). -- This...“ yozuvi orqali yangi sahifa yaratildi 628863 Scribunto text/plain local export = {} local dump = mw.dumpObject local parameters_module = "Module:parameters" local parse_utilities_module = "Module:parse utilities" local table_module = "Module:table" local function track(page, track_module) return require("Module:debug/track")((track_module or "parameter utilities") .. "/" .. page) end -- Throw an error prefixed with the words "Internal error" (and suffixed with a dumped version of `spec`, if provided). -- This is for logic errors in the code itself rather than template user errors. local function internal_error(msg, spec) if spec then msg = ("%s: %s"):format(msg, dump(spec)) end error(("Internal error: %s"):format(msg)) end -- Table listing the recognized special separator arguments and how they display. local special_separators = { [";"] = "; ", ["_"] = " ", ["~"] = " ~ ", } --[==[ intro: The purpose of this module is to facilitate implementation of a template that takes a list of items with associated properties, which can be specified either through separate parameters (e.g. {{para|t2}}, {{para|pos3}}) or inline modifiers (`<t:...>`, `<pos:...>`, etc.). Some examples of templates that work this way are {{tl|alter}}/{{tl|alt}}; {{tl|synonyms}}/{{tl|syn}}, {{tl|antonyms}}/{{tl|ant}}, and other "nyms" templates; {{tl|col}}, {{tl|col2}}, {{tl|col3}}, {{tl|col4}} and other columns templates; {{tl|descendant}}/{{tl|desc}}; {{tl|affix}}/{{tl|af}}, {{tl|prefix}}/{{tl|pre}} and related *fix templates; {{tl|affixusex}}/{{tl|afex}} and related templates; {{tl|IPA}}; {{tl|homophones}}; {{tl|rhymes}}; and several others. This module can be thought of as a combination of [[Module:parameters]] (which parses template parameters, and in particular handles the separate parameter versions of the properties) and `parse_inline_modifiers()` in [[Module:parse utilities]] (which parses inline modifiers). The main entry point is `process_list_arguments()`, which takes an object specifying various properties and returns a list of objects, one per item specified by the user, where the individual objects are much like the objects returned by `parse_inline_modifiers()`. However, there are other functions provided, in particular to initialize the `param_mods` structured that is passed to `process_list_arguments()`. The typical workflow for using this module looks as follows (a slightly simplified version of the code in [[Module:nyms]]): { local export = {} local parameter_utilities_module = "Module:parameter utilities" ... -- Entry point to be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args -- Parameters that don't have corresponding inline modifiers. Note in particular that the parameter corresponding to -- the items themselves must be specified this way, and must specify either `allow_holes = true` (if the user can -- omit terms, typically by specifying the term using |altN= or <alt:...> so that they remain unlinked) or -- `disallow_holes = true` (if omitting terms is not allowed). (If neither `allow_holes` nor `disallow_holes` is -- specified, an error is thrown in process_list_arguments().) local params = { [1] = {required = true, type = "language", default = "und"}, [2] = {list = true, allow_holes = true, required = true, default = "term"}, } local m_param_utils = require(parameter_utilities_module) -- This constructs the `param_mods` structure by adding well-known groups of parameters (such as all the parameters -- associated with based on full_link() in [[Module:links]], with default properties that can be overridden. This is -- easier and less error-prone than manually specifying the `param_mods` structure (see below for how this would -- look). Here, we specify the group "link" (consisting of all the link parameters for use with full_link()), group -- "ref" (which adds the "ref" parameter for specifying references), group "l" (which adds the "l" and "ll" -- parameters for specifying labels) and group "q" (which adds the "q" and "qq" parameters for specifying regular -- qualifiers). By default, labels and qualifiers have `separate_no_index` set so that e.g. |q1= is distinct from -- |q=, the former specifying the left qualifier for the first item and the latter specifying the overall left -- qualifier. For compatibility, we override the `separate_no_index` setting for the group "q", which causes |q= and -- |q1= to be the same, and likewise for |qq= and |qq1=. Finally, also for compatibility, we add an "lb" parameter -- that is an alias of "ll" (in all respects; |lb= is the same as |ll=, |lb1= is the same as |ll1=, <lb:...> is the -- same as <ll:...>, etc.). local param_mods = m_param_utils.construct_param_mods { {group = {"link", "ref", "l"}}, {group = "q", separate_no_index = false}, {param = "lb", alias_of = "ll"}, } -- This processes the raw arguments in `parent_args`, parses inline modifiers and creates corresponding objects -- containing the property values specified either through inline modifiers or separate parameters. local items, args = m_param_utils.process_list_arguments { params = params, param_mods = param_mods, raw_args = parent_args, termarg = 2, parse_lang_prefix = true, track_module = "nyms", lang = 1, sc = "sc.default", } local lang = args[1] -- Now do the actual implementation of the template. Generally this should be split into a separate function, often -- in a separate module (if the implementation goes in [[Module:foo]], the template interface code goes in -- [[Module:foo/templates]]). ... } The `param_mods` structure controls the properties that can be specified by the user for a given item, and is conceptually very similar to the `param_mods` structure used by `parse_inline_modifiers()`. The key is the name of the parameter (e.g. {"t"}, {"pos"}) and the value is a table with optional elements as follows: * `item_dest`, `store`: Same as the corresponding fields in the `param_mods` structure passed to `parse_inline_modifiers()`. * `type`, `set`, `sublist`, `convert` and associated fields such as `family` and `method`: These control parsing and conversion of the raw values specified by the user and have the same meaning as in [[Module:parameters]] and also in `parse_inline_modifiers()` (which delegates the actual conversion to [[Module:parameters]]). These fields — and for that matter, all fields other than `item_dest`, `store` and `overall` — are forwarded to the `process()` function in [[Module:parameters]]. * `alias_of`: This parameter is an alias of some other parameter. This spec is recognized only by `process()` in [[Module:parameters]], and not by `parse_inline_modifiers()`; to set up an alias in `parse_inline_modifiers()`, you need to make sure (using `item_dest`) that both the alias and aliasee modifiers store their values in the same location, and you need to copy the remaining properties from the aliasee's spec to the aliasing modifier's spec. All of this happens automatically if you generate the `param_mods` structure using `construct_param_mods()`. * `require_index`: This means that the non-indexed parameter version of the property is not recognized. E.g. in the case of the {"sc"} property, use of the {{para|sc}} parameter would result in an error, while {{para|sc1}} is recognized and specifies the {"sc"} property for the first item. The default, if neither `require_index` nor `separate_no_index` is given, is for {{para|sc}} and {{para|sc1}} to mean the same thing (both would specify the {"sc"} property of the first item). Note that `require_index` and `separate_no_index` are mutually exclusive, and if either one is specified during processing by `construct_param_mods()`, the other one is automaticallly turned off. * `separate_no_index`: This means that e.g. the {{para|sc}} parameter is distinct from the {{para|sc1}} parameter (and thus from the `<sc:...>` inline modifier on the first item). This is typically used to distinguish an overall version of a property from the corresponding item-specific property on the first item. (In this case, for example, {{para|sc}} overrides the script code for all items, while {{para|sc1}} overrides the script code only for the first item.) If not given, and if `require_index` is not given, {{para|sc}} and {{para|sc1}} would have the same meaning and refer to the item-specific property on the first item. When this is given, the overall value can be accessed using the `.default` field of the property value in `args`, e.g. in this case `args.sc.default`. Note that (as mentioned above) `require_index` and `separate_no_index` are mutually exclusive, and if either one is specified during processing by `construct_param_mods()`, the other one is automaticallly turned off. * `list`, `allow_holes`, `disallow_holes`: These should '''not''' be given. `list` and `allow_holes` are automatically set for all parameter specs added to the `params` structure used by `process()` in [[Module:parameters]], and `disallow_holes` clashes with `allow_holes`. For the above workflow example, the call to `construct_param_mods()` generates the following `param_mods` structure: { local param_mods = { -- the parameters generated by group "link" alt = {}, t = { -- [[Module:links]] expects the gloss in "gloss". item_dest = "gloss", }, gloss = { alias_of = "t", }, tr = {}, ts = {}, g = { -- [[Module:links]] expects the genders in "genders". item_dest = "genders", sublist = true, }, pos = {}, lit = {}, id = {}, sc = { separate_no_index = true, type = "script", }, -- the parameters generated by group "ref" ref = { item_dest = "refs", type = "references", }, -- the parameters generated by group "l" l = { type = "labels", separate_no_index = true, }, ll = { type = "labels", separate_no_index = true, }, -- the parameters generated by group "q"; note that `separate_no_index = true` would be set, but is overridden -- (specifying `separate_no_index = false` in the `param_mods` structure is equivalent to not specifying it at all) q = { type = "qualifier", separate_no_index = false, }, qq = { type = "qualifier", separate_no_index = false, }, -- the parameter generated by the individual "lb" parameter spec; note that only `alias_of` was explicitly given, -- while `item_dest` is automatically set so that inline modifier <lb:...> stores into the same place as <ll:...>, -- and the other specs are copied from the `ll` spec so `lb` works like `ll` in all regards lb = { alias_of = "ll", item_dest = "ll", type = "labels", separate_no_index = true, }, } } ]==] local qualifier_spec = { type = "qualifier", separate_no_index = true, } local label_spec = { type = "labels", separate_no_index = true, } local recognized_param_mod_groups = { link = { alt = {}, t = { -- [[Module:links]] expects the gloss in "gloss". item_dest = "gloss", }, gloss = { alias_of = "t", }, tr = {}, ts = {}, g = { -- [[Module:links]] expects the genders in "genders". item_dest = "genders", sublist = true, }, pos = {}, lit = {}, id = {}, sc = { separate_no_index = true, type = "script", }, }, lang = { lang = { require_index = true, type = "language", }, }, q = { q = qualifier_spec, qq = qualifier_spec, }, a = { a = label_spec, aa = label_spec, }, l = { l = label_spec, ll = label_spec, }, ref = { ref = { item_dest = "refs", type = "references", }, }, } local function merge_param_mod_settings(orig, additions) local merged = require(table_module).shallowcopy(orig) for k, v in pairs(additions) do merged[k] = v if k == "require_index" then merged.separate_no_index = nil elseif k == "separate_no_index" then merged.require_index = nil end end merged.default = nil merged.group = nil merged.param = nil merged.exclude = nil merged.include = nil return merged end local function verify_type(spec, param, typ1, typ2) if not spec[param] then return end local val = spec[param] if type(val) ~= typ1 and (not typ2 or type(val) ~= typ2) then internal_error(("Parameter `%s` must be a %s%s but saw a %s"):format(param, typ1, typ2 and " or " .. typ2 or "", type(val)), spec) end end local function verify_well_constructed_spec(spec) local num_control = (spec.default and 1 or 0) + (spec.group and 1 or 0) + (spec.param and 1 or 0) if num_control == 0 then internal_error( "Spec passed to construct_param_mods() must have either the `default`, `group` or `param` keys set", spec) end if num_control > 1 then internal_error( "Exactly one of `default`, `group` or `param` must be set in construct_param_mods() spec", spec) end if spec.list or spec.allow_holes then -- FIXME: We need to support list = "foo" for list parameters that are stored in e.g. 2=, foo2=, foo3=, etc. internal_error("`list` and `allow_holes` may not be set; they are automatically set when constructing the " .. "corresponding spec in the `params` object passed to [[Module:parameters]]", spec) end if spec.disallow_holes then internal_error("`disallow_holes` may not be set; it conflicts with `allow_holes`, which is automatically " .. "set when constructing the corresponding spec in the `params` object passed to [[Module:parameters]]", spec) end if spec.include and spec.exclude then internal_error("Saw both `include` and `exclude` in the same spec", spec) end if (spec.include or spec.exclude) and not spec.group then internal_error( "`include` and `exclude` can only be specified along with `group`, not with `default` or `param`", spec) end verify_type(spec, "group", "string", "table") verify_type(spec, "param", "string", "table") verify_type(spec, "include", "table") verify_type(spec, "exclude", "table") end --[==[ Construct the `param_mods` structure used in parsing arguments and inline modifiers from a list of specifications. A sample invocation (a slightly simplified version of the actual invocation associated with {{tl|affix}} and related templates) looks like this: { local param_mods = require("Module:parameter utilities").construct_param_mods { -- We want to require an index for all params (or use separate_no_index, which also requires an index for the -- param corresponding to the first item). {default = true, require_index = true}, {group = {"link", "ref", "lang", "q", "l"}}, -- Override these two to have separate_no_index. {param = {"lit", "pos"}, separate_no_index = true}, } } Each specification either sets the default value for further parameter specs or adds one or more parameters. Parameters can be added directly using `param`, or groups of predefined parameters can be added using `group`. Specifications are one of three types: # Those that set the default properties for future-added parameters. These contain {default = true} as one of the properties of the spec. Specs are processed in order and you can change the defaults mid-way through. # Those that add the parameters associated with one or more pre-defined groups. These contain {group = "group"} or {group = {"group1", "group2", ...}}. The pre-defined parameter groups and their associated properties are listed below. The pre-defined properties of parameters in a group override properties associated with a {default = true} spec, and are in turn overridden by any properties given directly in the spec itself. Note as well that setting the `separate_no_index` property will automatically cause the `require_index` property to be unset and vice-versa, as the two are mutually exclusive. (This happens in the example above, where the {separate_no_index = true} setting associated with the params {"lit"} and {"pos"} cancels out the {require_index = true} default setting, as well as less obviously with the pre-defined {"sc"} property of the {"link"} group, the {"q"} and {"qq"} properties of the {"q"} group, and the {"l"} and {"ll"} properties of the {"l"} group, all of which have an associated pre-defined property {separate_no_index = true}, which overrides and cancels out the {require_index = true} default setting. Finally, when adding the parameters of a group, you can request the only a subset of the parameters be added using either the `include` or `exclude` properties, each of whose values is a list of parameters that specify (respectively) the parameters to include (all other parameters of the group are excluded) or to exclude (all other parameters of the group are included). This is used, for example, in [[Module:romance etymology]] and [[Module:it-etymology]], which specify {group = "link", exclude = {"tr", "ts", "sc"}} to exclude link parameters that aren't relevant to Latin-script languages such as the Romance languages, and conversely in [[Module:IPA/templates]], which specifies {group = "link", include = {"t", "gloss", "pos"}} to include only the specified parameters for use with {{tl|IPA}}. # Those that add individual parameters. These contain {param = "param"} or {param = {"param1", "param2", ...}}, the latter syntax used to control a set of parameters together. The resulting spec is formed by initializing the parameter's settings with any previously-specified default properties (using a spec containing {default = true}) if the parameter hasn't already been initialized, and then overriding the resulting settings with any settings given directly in the specification. In the above example, the {"lit"} and {"pos"} parameters were previously initialized through the {"link"} group (specified in the second of the three specifications) but ended up with {require_index = true} due to the {default = true} spec (the first of the three specifications). We override these two parameters to have {separate_no_index = true} (which, as mentioned above, cancels out {require_index = true}). This is done so that {{tl|affix}} and related templates have {{para|pos}} and {{para|lit}} parameters distinct from {{para|pos1}} and {{para|lit1}}, which are used to specify an overall part of speech (which applies to all parts of the affix, as opposed to applying to just one element of the expression) or a literal definition for the entire expression (instead of just for one element of the expression). The built-in parameter groups are as follows: {|class="wikitable" ! Group !! Group meaning !! Parameter !! Parameter meaning !! Default properties |- | rowspan=10| `link` | rowspan=10| link parameters; same as those available on {{tl|l}}, {{tl|m}} and other linking templates | `alt` || display text, overriding the term's display form || — |- | `t` || gloss (translation) of a non-English term || {item_dest = "gloss"} |- | `gloss` || gloss (translation); same as `t` || {alias_of = "t"} |- | `tr` || transliteration of a non-Latin-script term; only needed if the automatic transliteration is incorrect or unavailable (e.g. in Hebrew, which doesn't have automatic transliteration) || — |- | `ts` || transcription of a non-Latin-script term, if the transliteration is markedly different from the actual pronunciation; should not be used for IPA pronunciations || — |- | `g` || comma-separated list of genders; whitespace may surround the comma and will be ignored || {item_dest = "genders", sublist = true} |- | `pos` || part of speech for the term || — |- | `lit` || literal meaning (translation) of the term || — |- | `id` || a sense ID for the term, which links to anchors on the page set by the {{tl|senseid}} template || — |- | `sc` || the script code (see [[Wiktionary:Scripts]]) for the script that the term is written in; rarely necessary, as the script is autodetected (in most cases, correctly) || {separate_no_index = true, type = "script"} |- | rowspan=2| `q` | rowspan=2| left and right normal qualifiers (as displayed using {{tl|q}}) | `q` || left normal qualifier || {separate_no_index = true, type = "qualifier"} |- | `qq` || right normal qualifier || {separate_no_index = true, type = "qualifier"} |- | rowspan=2| `a` | rowspan=2| left and right accent qualifiers (as displayed using {{tl|a}}) | `a` || comma-separated list of left accent qualifiers; whitespace must not surround the comma || {separate_no_index = true, type = "labels"} |- | `aa` || comma-separated list of right accent qualifiers; whitespace must not surround the comma || {separate_no_index = true, type = "labels"} |- | rowspan=2| `l` | rowspan=2| left and right labels (as displayed using {{tl|lb}}, but without categorizing) | `l` || comma-separated list of left labels; whitespace must not surround the comma || {separate_no_index = true, type = "labels"} |- | `ll` || comma-separated list of right labels; whitespace must not surround the comma || {separate_no_index = true, type = "labels"} |- | `ref` | reference(s) (in the format accepted by [[Module:references]]; see also the documentation for the {{para|ref}} parameter to {{tl|IPA}}) | `ref` || one or more references, in the format accepted by [[Module:references]] || {item_dest = "refs", type = "references"} |- | `lang` | language for an individual term (provided for compatibility; it is preferred to specify languages for individual terms using language prefixes instead) | `lang` || language code (see [[Wiktionary:Languages]]) for the term || {require_index = true, type = "language"} |} ]==] function export.construct_param_mods(specs) local param_mods = {} local default_specs = {} for _, spec in ipairs(specs) do verify_well_constructed_spec(spec) if spec.default then -- This will have an extra `default` field in it, but it will be erased by merge_param_mod_settings() default_specs = spec else if spec.group then local groups = spec.group if type(groups) ~= "table" then groups = {groups} end local include_set if spec.include then include_set = require(table_module).listToSet(spec.include) end local exclude_set if spec.exclude then exclude_set = require(table_module).listToSet(spec.exclude) end for _, group in ipairs(groups) do local group_specs = recognized_param_mod_groups[group] if not group_specs then internal_error(("Unrecognized built-in param mod group '%s'"):format(group), spec) end for group_param, group_param_settings in pairs(group_specs) do local include_param if include_set then include_param = include_set[group_param] elseif exclude_set then include_param = not exclude_set[group_param] else include_param = true end if include_param then local merged_settings = merge_param_mod_settings(merge_param_mod_settings( param_mods[group_param] or default_specs, group_param_settings), spec) param_mods[group_param] = merged_settings end end end end if spec.param then local params = spec.param if type(params) ~= "table" then params = {params} end for _, param in ipairs(params) do local settings = merge_param_mod_settings(param_mods[param] or default_specs, spec) -- If this parameter is an alias of another parameter, we need to copy the specs from the other -- parameter, since parse_inline_modifiers() doesn't know about `alias_of` and having the specs -- duplicated won't cause problems for [[Module:parameters]]. We also need to set `item_dest` to -- point to the `item_dest` of the aliasee (defaulting to the aliasee's value itself), so that -- both modifiers write to the same location. Note that this works correctly in the common case of -- <t:...> with `item_dest = "gloss"` and <gloss:...> with `alias_of = "t"`, because both will end -- up with `item_dest = "gloss"`. local aliasee = settings.alias_of if aliasee then local aliasee_settings = param_mods[aliasee] if not aliasee_settings then internal_error(("Undefined aliasee '%s'"):format(aliasee), spec) end for k, v in pairs(aliasee_settings) do if settings[k] == nil then settings[k] = v end end if settings.item_dest == nil then settings.item_dest = aliasee end end param_mods[param] = settings end end end end return param_mods end -- Return true if `k` is a "built-in" (specially recognized) key in a `param_mod` specification. All other keys -- are forwarded to the structure passed to [[Module:parameters]]. local function param_mod_spec_key_is_builtin(k) return k == "item_dest" or k == "overall" or k == "store" end --[==[ Convert the properties in `param_mods` into the appropriate structures for use by `process()` in [[Module:parameters]] and store them in `params`. If `overall_only` is given, only store the properties in `param_mods` that correspond to overall (non-item-specific) parameters. Currently this only happens when `separate_no_index` is specified. ]==] function export.augment_params_with_modifiers(params, param_mods, overall_only) if overall_only then for param_mod, param_mod_spec in pairs(param_mods) do if param_mod_spec.separate_no_index then local param_spec = {} for k, v in pairs(param_mod_spec) do if k ~= "separate_no_index" and not param_mod_spec_key_is_builtin(k) then param_spec[k] = v end end params[param_mod] = param_spec end end else local list_with_holes = { list = true, allow_holes = true } -- Add parameters for each term modifier. for param_mod, param_mod_spec in pairs(param_mods) do local has_extra_specs = false for k, _ in pairs(param_mod_spec) do if not param_mod_spec_key_is_builtin(k) then has_extra_specs = true break end end if not has_extra_specs then params[param_mod] = list_with_holes else local param_spec = mw.clone(list_with_holes) for k, v in pairs(param_mod_spec) do if not param_mod_spec_key_is_builtin(k) then param_spec[k] = v end end params[param_mod] = param_spec end end end end --[==[ Return true if `k`, a key in an item, refers to a property of the item (is not one of the specially stored values). Note that `lang` and `sc` are considered properties of the item, although `lang` is set when there's a language prefix and both `lang` and `sc` may be set from default values specified in the `data` structure passed into `process_list_arguments()`. If you don't want these treated as property keys, you need to check for them yourself. ]==] function export.item_key_is_property(k) return k ~= "term" and k ~= "termlang" and k ~= "termlangs" and k ~= "itemno" and k ~= "orig_index" and k ~= "separator" end -- Fetch the argument in `args` corresponding to `index_or_value`, which may be a string of the form "foo.default" -- (requesting the value of `args["foo"].default`); a string or number (requesting the value at that key); a function of -- one argument (`args`), which returns the argument value; or the value itself. local function fetch_argument(args, index_or_value) if type(index_or_value) == "string" then local index_without_default = index_or_value:match("^(.*)%.default$") if index_without_default then local arg_obj = fetch_argument(args, index_without_default) if type(arg_obj) ~= "table" then internal_error(("Requested that the '.default' key of argument `%s` be fetched, but argument value is undefined or not a table"): format(index_without_default), arg_obj) end return arg_obj.default end if index_or_value:find("^[0-9]+$") then index_or_value = tonumber(index_or_value) end return args[index_or_value] elseif type(index_or_value) == "number" then return args[index_or_value] elseif type(index_or_value) == "function" then return index_or_value(args) else return index_or_value end end --[==[ Parse inline modifiers and create corresponding item objects containing the property values specified either through inline modifiers or separate parameters. `data` is an object containing the following properties: * `raw_args` ('''required''' unless `processed_args` is specified): The raw arguments, normally fetched from {frame:getParent().args}. They are parsed using `process()` in [[Module:parameters]]. * `processed_args`: The object of parsed arguments returned by `process()` in [[Module:parameters]]. One (but not both) of `raw_args` and `processed_args` must be set. * `param_mods` ('''required'''): A structure describing the possible inline modifiers and their properties. See the introductory comment above. Most often, this is generated using `construct_param_mods()` rather than specified manually. * `params` ('''required''' unless `processed_args` is specified): A structure describing the possible parameters, '''other than''' the ones that are separate-parameter equivalents of inline modifiers. This is automatically "augmented" with the separate-parameter equivalents of the inline modifiers described in `param_mods` prior to parsing the raw arguments with [[Module:parameters]]. '''WARNING:''' This structure is destructively modified, both by the "augmentation" process of adding separate-parameter equivalents of inline modifiers, and by the processing done by [[Module:parameters]] itself. (Nonetheless, substructures can safely be shared in this structure, and will be correctly handled.) * `termarg` ('''required'''): The argument containing the first item with attached inline modifiers to be parsed. Usually a numeric value such as {1} or {2}. * `track_module` ('''recommended'''): The name of the calling module, for use in adding tracking pages that are used internally to track pages containing template invocations with certain properties. Example properties tracked are missing items with corresponding properties as well as missing items without corresponding properties (which are skipped entirely). To find out the exact properties tracked and the name of the tracking pages, read the code. * `process_args_before_parsing`: An optional function to apply further processing to the processed `args` structure returned by [[Module:parameters]], before parsing inline modifiers. This is passed one argument, the processed arguments. It should make modifications in-place. * `term_dest`: The field to store the value of the item itself into, after inline modifiers and (if allowed) language prefixes are stripped off. Defaults to {"term"}. * `parse_lang_prefix`: If true, allow and parse off a language code prefix attached to items followed by a colon, such as {la:minūtia} or {grc:[[σκῶρ|σκατός]]}. Etymology-only languages are allowed. Inline modifiers can be attached to such items. The exact syntax allowed is as specified in the `parse_term_with_lang()` function in [[Module:parse utilities]]. If `allow_multiple_lang_prefixes` is given, a comma-separated list of language prefixes can be attached to an item. The resulting language object is stored into the `termlang` field, and also into the `lang` field (or in the case of `allow_multiple_lang_prefixes`, the list of language objects is stored into the `termlangs` field, and the first specified object is stored in the `lang` field). * `allow_multiple_lang_prefixes`: If given in conjunction with `parse_lang_prefix`, multiple comma-separated language code prefixes can be given. See `parse_lang_prefix` above. * `allow_bad_lang_prefixes`: If given in conjunction with `parse_lang_prefix`, unrecognized language prefixes do not trigger an error, but are simply ignored (and not stripped off the item). Note that, regardless of whether this is given, prefixes before a colon do not trigger an error if they do not have the form of a language prefix or if a space follows the colon. It is not recommended that this be given because typos in language prefixes will not trigger an error and will tend to remain unfixed. * `lang`: The language object for the language of the items, or the name of the argument to fetch the object from. In general it is not necessary to specify this as `process_list_arguments()` only initializes items based on inline modifiers and separate arguments and doesn't actually format the resulting items. However, if specified, it is used for certain purposes: *# It specifies the default for the `lang` property of returned objects if not otherwise set (e.g. by a language prefix). *# It is used to initialize an internal cache for speeding up language-code parsing (primarily useful if the same language code may appear in several items, such as with {{tl|col}} and related templates). The value of `lang` can be any of the following: * If a string of the form "foo.default", it is assumed to be requesting the value of `args["foo"].default`. * Otherwise, if a string or number, it is assumed to be requesting the value of `args` at that key. Note that if the string is in the form of a number (e.g. "3"), it is normalized to a number prior to fetching (this also happens with a spec like "2.default"). * Otherwise, if a function, it is assumed to be a function to return the argument value given `args`, which is passed to the function as its only argument. * Otherwise, it is used directly. * `sc`: The script object for the items, or the name of the argument to fetch the object from. The possible values and their handling are the same as with `lang`. In general, as with `lang`, it is not necessary to specify this. However, if specified, it is used to supply the default for the `sc` property of returned items if not otherwise set (e.g. by the {{para|sc<var>N</var>}} parameter or `<sc:...>` inline modifier). * `disallow_custom_separators`: If specified, disallow specifying custom separators (semicolon, underscore, tilde; see the internal `special_separators` table) as an item value to override the default separator. By default, the previous separator of each item is considered to be an empty string (for the first item) and otherwise the value of `default_separator` (normally a comma + space), unless either the preceding item is one of the values listed in `special_separators`, such as a bare semicolon (which causes the following item's previous separator to be a semicolon + space) or an item has an embedded comma in it (which causes ''all'' items other than the first to have their previous separator be a semicolon + space). The previous separator of each item is set on the item's `separator` property. Bare semicolons and other separator arguments do not count when indexing items using separate parameters. For example, the following is correct: ** {{tl|template|lang|item 1|q1=qualifier 1|;|item 2|q2=qualifier 2}} If `disallow_custom_separators` is specified, however, the `separator` property is not set and separator arguments are not recognized. * `default_separator`: Override the default separator (normally {", "}). * `dont_skip_items`: Normally, items that are completely unspecified (have no term and no properties) are skipped and not inserted into the returned list of items. (Such items cannot occur if `disallow_holes = true` is set on the term specification in the `params` structure passed to `process()` in [[Module:parameters]]. It is generally recommended to do so unless a specific meaning is associated the term value being missing.) If `dont_skip_items` is set, however, items are never skipped, and completely unspecified items will be returned along with others. (They will not have the term or any properties set, but will have the normal non-property fields set; see below.) * `stop_when`: If specified, a function to determine when to prematurely stop processing items. It is passed a single argument, an object containing the following fields: ** `term`: The raw term, prior to parsing off language prefixes and inline modifiers (since the processing of `stop_when` happens before parsing the term). ** `any_param_at_index`: True if any separate property parameters exist for this item. ** `orig_index`: Same as `orig_index` below. ** `itemno`: Same as `itemno` below. ** `stored_itemno`: The index where this item will be stored into the returned items table. This may differ from `itemno` due to skipped items (it will never be different if `dont_skip_items` is set). The function should return true to stop processing items and return the ones processed so far (not including the item currently being processed). This is used, for example, in [[Module:alternative forms]], where an unspecified item signal the end of items and the start of labels. Two values are returned, the list of items and the processed `args` structure. In each returned item, there will be one field set for each specified property (either through inline modifiers or separate parameters). In addition, the following fields may be set: * `term`: The term portion of the item (minus inline modifiers and language prefixes). {nil} if no term was given. * `orig_index`: The original index into the item in the items table returned by `process()` in [[Module:parameters]]. This may differ from `itemno` if there are raw semiclons and `disallow_custom_separators` is not given. * `itemno`: The logical index of the item. The index of separate parameters corresponds to this index. This may be different from `orig_index` in the presence of raw semicolons; see above. * `separator`: The separator to display before the term. Always set unless `disallow_custom_separators` is given, in which case it is not set. * `termlang`: If there is a language prefix, the corresponding language object is stored here (only if `parse_lang_prefix` is set and `allow_multiple_lang_prefixes` is not set). * `termlangs`: If there is are language prefixes and both `parse_lang_prefix` and `allow_multiple_lang_prefixes` are set, the list of corresponding language objects is stored here. * `lang`: The language object of the item. This is set when either (a) there is a language prefix parsed off (if multiple prefixes are allowed, this corresponds to the first one); (b) the `lang` property is allowed and specified; (c) neither (a) nor (b) apply and the `lang` field of the overall `data` object is set, providing a default value. * `sc`: The script object of the item. This is set when either (a) the `sc` property is allowed and specified; (b) `sc` isn't otherwise set and the `sc` field of the overall `data` object is set, providing a default value. ]==] function export.process_list_arguments(data) local args if not data.termarg then internal_error("Required value `data.termarg` not specified") end if not data.param_mods then internal_error("Required value `data.param_mods` not specified") end if data.raw_args then -- FIXME, remove support for `data.args` in favor of `data.processed_args` if data.processed_args or data.args then internal_error("Only one of `data.raw_args` and `data.processed_args` can be specified") end if not data.params then internal_error("When `data.raw_args` is specified, so must `data.params`, so that the raw arguments can be parsed") end local termarg_spec = data.params[data.termarg] if not termarg_spec then internal_error("There must be a spec in `data.params` corresponding to `data.termarg`") end if not termarg_spec.list then internal_error("Term spec in `data.params` must have `list` set", termarg_spec) end if not termarg_spec.allow_holes and not termarg_spec.disallow_holes then internal_error("Term spec in `data.params` must have either `allow_holes` or `disallow_holes` set", termarg_spec) end export.augment_params_with_modifiers(data.params, data.param_mods) args = require(parameters_module).process(data.raw_args, data.params) else args = data.processed_args or data.args if not args then internal_error("Either `data.raw_args` or `data.processed_args` must be specified") end if data.params then internal_error("When `data.processed_args` is specified, `data.params` should not be specified") end end if data.process_args_before_parsing then data.process_args_before_parsing(args) end -- Find the maximum index among any of the list parameters. local term_args = args[data.termarg] -- As a special case, the term args might not have a `maxindex` field because they might have -- been declared with `disallow_holes = true`, so fall back to the actual length of the list. local maxmaxindex = term_args.maxindex or #term_args for k, v in pairs(args) do if type(v) == "table" and v.maxindex and v.maxindex > maxmaxindex then maxmaxindex = v.maxindex end end local items = {} local ind = 0 local lang = fetch_argument(args, data.lang) local sc = fetch_argument(args, data.sc) local lang_cache = {} if lang then lang_cache[lang:getCode()] = lang end local use_semicolon = false local term_dest = data.term_dest or "term" local itemno = 0 for i = 1, maxmaxindex do local term = term_args[i] if data.disallow_custom_separators or not special_separators[term] then itemno = itemno + 1 -- Compute whether any of the separate indexed params exist for this index. local any_param_at_index = term ~= nil if not any_param_at_index then for k, v in pairs(args) do -- Look for named list parameters. We check: -- (1) key is a string (excludes the term param, which is a number); -- (2) value is a table, i.e. a list; -- (3) v.maxindex is set (i.e. allow_holes was used); -- (4) the value has an entry at index `itemno` (the current logical index). if type(k) == "string" and type(v) == "table" and v.maxindex and v[itemno] then any_param_at_index = true break end end end if data.stop_when and data.stop_when { term = term, any_param_at_index = any_param_at_index, orig_index = i, itemno = itemno, stored_itemno = #items + 1, } then break end -- If any of the params used for formatting this term is present, create a term and add it to the list. if not data.dont_skip_items and not any_param_at_index then track("skipped-term", data.track_module) else if not term then track("missing-term", data.track_module) end local termobj = { itemno = itemno, orig_index = i, } if not data.disallow_custom_separators then termobj.separator = i == 1 and "" or special_separators[term_args[i - 1]] end -- Parse all the term-specific parameters and store in `termobj`. for param_mod, param_mod_spec in pairs(data.param_mods) do local dest = param_mod_spec.item_dest or param_mod local arg = args[param_mod] and args[param_mod][itemno] if arg then termobj[dest] = arg end end local function generate_obj(term, parse_err) if data.parse_lang_prefix and term:find(":") then local actual_term, termlangs = require(parse_utilities_module).parse_term_with_lang { term = term, parse_err = parse_err, paramname = paramname, allow_bad = data.allow_bad_lang_prefix, allow_multiple = data.allow_multiple_lang_prefixes, lang_cache = lang_cache, } termobj[term_dest] = actual_term ~= "" and actual_term or nil if termlangs then -- If we couldn't parse a language code, don't overwrite an existing setting in `lang` -- that may have originated from a separate |langN= param. if data.allow_multiple_lang_prefixes then termobj.termlangs = termlangs termobj.lang = termlangs and termlangs[1] or nil else termobj.termlang = termlangs termobj.lang = termlangs end end else termobj[term_dest] = term ~= "" and term or nil end return termobj end -- Check for inline modifier, e.g. מרים<tr:Miryem>. But exclude top-level HTML entry with <span ...>, -- <br/> or similar in it, often caused by wrapping an argument in {{m|...}} or similar. if term and term:find("<") and not require(parse_utilities_module).term_contains_top_level_html(term) then require(parse_utilities_module).parse_inline_modifiers(term, { -- Add 1 because first term index starts at 2. paramname = data.termarg + i - 1, param_mods = data.param_mods, generate_obj = generate_obj, }) elseif term then generate_obj(term) end -- Set these after parsing inline modifiers, not in generate_obj(), otherwise we'll get an error in -- parse_inline_modifiers() if we try to use <lang:...> or <sc:...> as inline modifiers. termobj.lang = termobj.lang or lang termobj.sc = termobj.sc or sc if not data.disallow_custom_separators then -- If the displayed term (from .term/etc. or .alt) has an embedded comma, use a semicolon to join -- the terms. local term_text = termobj[term_dest] or termobj.alt if not use_semicolon and term_text then if term_text:find(",", 1, true) then use_semicolon = true end end end table.insert(items, termobj) end end end if not data.disallow_custom_separators then -- Set the default separator of all those items for which a separator wasn't explicitly given to the default -- separator, defaulting to comma + space; but if any items have embedded commas, set the separator to -- semicolon + space. for i, item in ipairs(items) do if not item.separator then item.separator = use_semicolon and "; " or data.default_separator or ", " end end end return items, args end return export b0yzlapuoxb1uw5wzmrhof6cohgqmhc Modul:scripts/charToScript 828 160406 628874 2024-11-06T14:53:54Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local subexport = {} local require_when_needed = require("Module:require when needed") local cp = require_when_needed("Module:string utilities", "codepoint") local floor = math.floor local get_plaintext = require_when_needed("Module:utilities", "get_plaintext") local get_script = require_when_needed("Module:scripts", "getByCode") local insert = table.insert local ipairs = ipairs local min = math.min local pairs = pairs local setmetatable = setmet...“ yozuvi orqali yangi sahifa yaratildi 628874 Scribunto text/plain local subexport = {} local require_when_needed = require("Module:require when needed") local cp = require_when_needed("Module:string utilities", "codepoint") local floor = math.floor local get_plaintext = require_when_needed("Module:utilities", "get_plaintext") local get_script = require_when_needed("Module:scripts", "getByCode") local insert = table.insert local ipairs = ipairs local min = math.min local pairs = pairs local setmetatable = setmetatable local sort = table.sort local split = require_when_needed("Module:string utilities", "split") local table_len = require_when_needed("Module:table", "length") local type = type -- Copied from [[Module:Unicode data]]. local function binaryRangeSearch(codepoint, ranges) local low, mid, high low, high = 1, ranges.length or table_len(ranges) while low <= high do mid = floor((low + high) / 2) local range = ranges[mid] if codepoint < range[1] then high = mid - 1 elseif codepoint <= range[2] then return range, mid else low = mid + 1 end end return nil, mid end -- Copied from [[Module:Unicode data]]. local function linearRangeSearch(codepoint, ranges) for i, range in ipairs(ranges) do if codepoint < range[1] then break elseif codepoint <= range[2] then return range end end end local function compareRanges(range1, range2) return range1[1] < range2[1] end -- Save previously used codepoint ranges in case another character is in the -- same range. local rangesCache = {} --[=[ Takes a codepoint or a character and finds the script code(s) (if any) that are appropriate for it based on the codepoint, using the data module [[Module:scripts/recognition data]]. The data module was generated from the patterns in [[Module:scripts/data]] using [[Module:User:Erutuon/script recognition]]. By default, it returns only the first script code if there are multiple matches (i.e. the code we take to be the default). If `all_scripts` is set, then a table of all matching codes is returned. ]=] local charToScriptData function subexport.charToScript(char, all_scripts) charToScriptData = charToScriptData or mw.loadData("Module:scripts/recognition data") local t = type(char) local codepoint if t == "string" then local etc codepoint, etc = cp(char, 1, 2) if etc then error("bad argument #1 to 'charToScript' (expected a single character)") end elseif t == "number" then codepoint = char else error(("bad argument #1 to 'charToScript' (expected string or a number, got %s)") :format(t)) end local ret = {} local individualMatch = charToScriptData.individual[codepoint] if individualMatch then ret = split(individualMatch, "%s*,%s*", true) else local range if rangesCache[1] then range = linearRangeSearch(codepoint, rangesCache) if range then for i, script in ipairs(range) do if i > 2 then insert(ret, script) if not all_scripts then break end end end end end if not ret[1] then local index = floor(codepoint / 0x1000) range = linearRangeSearch(index, charToScriptData.blocks) if not range and charToScriptData[index] then range = binaryRangeSearch(codepoint, charToScriptData[index]) if range then insert(rangesCache, range) sort(rangesCache, compareRanges) end end if range then for i, script in ipairs(range) do if i > 2 then insert(ret, script) if not all_scripts then break end end end end end end if not ret[1] then insert(ret, "None") end if all_scripts then return ret else return ret[1] end end --[=[ Finds the best script for a string in a language-agnostic way. Converts each character to a codepoint. Iterates the counter for the script code if the codepoint is in the list of individual characters, or if it is in one of the defined ranges in the 4096-character block that it belongs to. Each script has a two-part counter, for primary and secondary matches. Primary matches are when the script is the first one listed; otherwise, it's a secondary match. When comparing scripts, first the total of both are compared (i.e. the overall number of matches). If these are the same, the number of primary and then secondary matches are used as tiebreakers. For example, this is used to ensure that `Grek` takes priority over `Polyt` if no characters which exclusively match `Polyt` are found, as `Grek` is a subset of `Polyt`. If `none_is_last_resort_only` is specified, this will never return None if any characters in `text` belong to a script. Otherwise, it will return None if there are more characters that don't belong to a script than belong to any individual script. (FIXME: This behavior is probably wrong, and `none_is_last_resort_only` should probably become the default.) ]=] function subexport.findBestScriptWithoutLang(text, none_is_last_resort_only) -- `scripts` contains counters for any scripts detected so far. Jpan and Kore are handled as special-cases, as they are combinations of other scripts. local scripts_mt = {Jpan = true, Kore = true} local weights_mt = { __lt = function(a, b) if a[1] + a[2] ~= b[1] + b[2] then return a[1] + a[2] < b[1] + b[2] elseif a[1] ~= b[1] then return a[1] < b[1] elseif a[2] ~= b[2] then return a[2] < b[2] else return false end end } scripts_mt.__index = function(t, k) local ret = {} if k == "Jpan" and scripts_mt.Jpan then for i = 1, 2 do ret[i] = t["Hani"][i] + t["Hira"][i] + t["Kana"][i] end elseif k == "Kore" and scripts_mt.Kore then for i = 1, 2 do ret[i] = t["Hani"][i] + t["Hang"][i] end else for i = 1, 2 do insert(ret, 0) end end return setmetatable(ret, weights_mt) end local scripts = setmetatable({}, scripts_mt) text = get_plaintext(text) local combined_scripts = { Jpan = {["Hani"] = true, ["Hira"] = true, ["Kana"] = true}, Kore = {["Hani"] = true, ["Hang"] = true} } for character in text:gmatch(".[\128-\191]*") do for i, script in ipairs(subexport.charToScript(character, true)) do if not none_is_last_resort_only or script ~= "None" then scripts[script] = scripts[script] local weight = min(i, 2) scripts[script][weight] = scripts[script][weight] + 1 end end end -- Check the combined script counts. If a single constituent has the same count (i.e. it's the only one), discard the combined script. for combined_script, set in pairs(combined_scripts) do for script in pairs(set) do scripts[combined_script] = scripts[combined_script] if (scripts[script][1] + scripts[script][2]) == (scripts[combined_script][1] + scripts[combined_script][2]) then scripts[combined_script] = nil break end end end local bestScript local greatestCount for script, count in pairs(scripts) do if (not greatestCount) or greatestCount < count then bestScript = script greatestCount = count end end bestScript = bestScript or "None" return get_script(bestScript) end return subexport cs19bg8d41yuv7ovit6o3v0kd4ou9kq Modul:scripts/recognition data 828 160407 628877 2024-11-06T14:56:20Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „return { [0x00] = { { 0x00041, 0x0005A, "Latn"}, { 0x00061, 0x0007A, "Latn"}, { 0x000C0, 0x000D6, "Latn"}, { 0x000D8, 0x000F6, "Latn"}, { 0x000F8, 0x0024F, "Latn"}, { 0x00370, 0x003E1, "Grek", "Polyt" }, { 0x003E2, 0x003EF, "Copt" }, { 0x003F0, 0x003FF, "Grek", "Polyt" }, { 0x00400, 0x0045F, "Cyrl" }, { 0x00460, 0x00469, "Cyrs" }, { 0x0046A, 0x0046D, "Cyrl" }, { 0x0046E, 0x00471, "Cyrs" }, { 0x00472, 0x00475, "Cyrl" },...“ yozuvi orqali yangi sahifa yaratildi 628877 Scribunto text/plain return { [0x00] = { { 0x00041, 0x0005A, "Latn"}, { 0x00061, 0x0007A, "Latn"}, { 0x000C0, 0x000D6, "Latn"}, { 0x000D8, 0x000F6, "Latn"}, { 0x000F8, 0x0024F, "Latn"}, { 0x00370, 0x003E1, "Grek", "Polyt" }, { 0x003E2, 0x003EF, "Copt" }, { 0x003F0, 0x003FF, "Grek", "Polyt" }, { 0x00400, 0x0045F, "Cyrl" }, { 0x00460, 0x00469, "Cyrs" }, { 0x0046A, 0x0046D, "Cyrl" }, { 0x0046E, 0x00471, "Cyrs" }, { 0x00472, 0x00475, "Cyrl" }, { 0x00476, 0x00489, "Cyrs" }, { 0x0048A, 0x00527, "Cyrl" }, { 0x00531, 0x0058F, "Armn" }, { 0x00590, 0x005FF, "Hebr" }, { 0x00600, 0x006FF, "Arab" }, { 0x00700, 0x0074F, "Syrc" }, { 0x00750, 0x0077F, "Arab" }, { 0x00780, 0x007B1, "Thaa" }, { 0x007C0, 0x007FF, "Nkoo" }, { 0x00800, 0x0083E, "Samr" }, { 0x00840, 0x0085E, "Mand" }, { 0x00860, 0x0086A, "Syrc" }, { 0x008A0, 0x008FF, "Arab" }, { 0x00900, 0x0097F, "Deva" }, { 0x00980, 0x00983, "Beng" }, { 0x00985, 0x0098C, "Beng" }, { 0x00993, 0x009A8, "Beng" }, { 0x009AA, 0x009B0, "Beng" }, { 0x009B6, 0x009B9, "Beng" }, { 0x009BC, 0x009C4, "Beng" }, { 0x009CB, 0x009CE, "Beng" }, { 0x009E0, 0x009E3, "Beng" }, { 0x009E6, 0x009EF, "Beng" }, { 0x009F0, 0x009F1, "as-Beng" }, { 0x00A01, 0x00A76, "Guru" }, { 0x00A81, 0x00AF1, "Gujr" }, { 0x00B01, 0x00B77, "Orya" }, { 0x00B82, 0x00BFA, "Taml" }, { 0x00C00, 0x00C7F, "Telu" }, { 0x00C80, 0x00CF2, "Knda" }, { 0x00D02, 0x00D7F, "Mlym" }, { 0x00D82, 0x00DF4, "Sinh" }, { 0x00E01, 0x00E5B, "Thai" }, { 0x00E81, 0x00EDF, "Laoo" }, { 0x00F00, 0x00FDA, "Tibt" }, length = 48, }, [0x01] = { { 0x01000, 0x0109F, "Mymr" }, { 0x010A0, 0x010CD, "Geok" }, { 0x010D0, 0x010FF, "Geor" }, { 0x01100, 0x011FF, "Hang" }, { 0x01200, 0x01399, "Ethi" }, { 0x013A0, 0x013F4, "Cher" }, { 0x01400, 0x0167F, "Cans" }, { 0x01680, 0x0169C, "Ogam" }, { 0x016A0, 0x016F0, "Runr" }, { 0x01700, 0x01714, "Tglg" }, { 0x01720, 0x01734, "Hano" }, { 0x01740, 0x01753, "Buhd" }, { 0x01760, 0x01773, "Tagb" }, { 0x01780, 0x017F9, "Khmr" }, { 0x01800, 0x018AA, "Mong" }, { 0x01900, 0x0194F, "Limb" }, { 0x01950, 0x01974, "Tale" }, { 0x01980, 0x019DF, "Talu" }, { 0x019E0, 0x019FF, "Khmr" }, { 0x01A00, 0x01A1F, "Bugi" }, { 0x01A20, 0x01AAD, "Lana" }, { 0x01B00, 0x01B7C, "Bali" }, { 0x01B80, 0x01BBF, "Sund" }, { 0x01BC0, 0x01BFF, "Batk" }, { 0x01C00, 0x01C4F, "Lepc" }, { 0x01C50, 0x01C7F, "Olck" }, { 0x01C90, 0x01CBF, "Geor" }, { 0x01E00, 0x01EFF, "Latn" }, { 0x01F00, 0x01FFE, "Polyt" }, length = 29, }, [0x02] = { { 0x02190, 0x021FF, "Zsym" }, { 0x02200, 0x022FF, "Zmth" }, { 0x02300, 0x023FF, "Zsym" }, { 0x02500, 0x027BF, "Zsym" }, { 0x027C0, 0x027EF, "Zmth" }, { 0x02800, 0x028FF, "Brai" }, { 0x02980, 0x02AFF, "Zmth" }, { 0x02B00, 0x02BFE, "Zsym" }, { 0x02C00, 0x02C5E, "Glag" }, { 0x02C60, 0x02C7F, "Latn" }, { 0x02C80, 0x02CFF, "Copt" }, { 0x02D00, 0x02D2D, "Geok" }, { 0x02D30, 0x02D7F, "Tfng" }, { 0x02D80, 0x02DDE, "Ethi" }, { 0x02E80, 0x02FDF, "Hani" }, length = 15, }, [0x03] = { { 0x03001, 0x03002, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" }, { 0x03003, 0x03007, "Hani" }, { 0x03008, 0x03011, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" }, { 0x03012, 0x03013, "Hani" }, { 0x03014, 0x0301B, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" }, { 0x0301C, 0x0301F, "Hani", "Bopo", "Hang", "Hira", "Kana" }, { 0x03020, 0x0303F, "Hani" }, { 0x03041, 0x0309F, "Hira" }, { 0x030A0, 0x030FF, "Kana" }, { 0x03105, 0x0312F, "Bopo" }, { 0x03131, 0x0318E, "Hang" }, { 0x031A0, 0x031BA, "Bopo" }, { 0x031C0, 0x031E3, "Hani" }, { 0x031F0, 0x031FF, "Kana" }, { 0x03220, 0x03247, "Hani" }, { 0x03280, 0x032B0, "Hani" }, { 0x032C0, 0x032CB, "Hani" }, { 0x03300, 0x03357, "Kana" }, { 0x03358, 0x03370, "Hani" }, { 0x0337B, 0x0337F, "Hani" }, { 0x033E0, 0x033FE, "Hani" }, { 0x03400, 0x03FFF, "Hani" }, length = 22, }, [0x04] = { { 0x04000, 0x04DB5, "Hani" }, { 0x04E00, 0x04FFF, "Hani" }, length = 2, }, [0x05] = { { 0x05000, 0x05FFF, "Hani" }, length = 1, }, [0x06] = { { 0x06000, 0x06FFF, "Hani" }, length = 1, }, [0x07] = { { 0x07000, 0x07FFF, "Hani" }, length = 1, }, [0x08] = { { 0x08000, 0x08FFF, "Hani" }, length = 1, }, [0x09] = { { 0x09000, 0x09FFF, "Hani" }, length = 1, }, [0x0A] = { { 0x0A000, 0x0A4C6, "Yiii" }, { 0x0A4D0, 0x0A4FF, "Lisu" }, { 0x0A500, 0x0A62B, "Vaii" }, { 0x0A640, 0x0A67F, "Cyrs" }, { 0x0A680, 0x0A697, "Cyrl" }, { 0x0A6A0, 0x0A6F7, "Bamu" }, { 0x0A720, 0x0A7FF, "Latn" }, { 0x0A800, 0x0A82B, "Sylo" }, { 0x0A830, 0x0A832, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Knda", "Kthi", "Mahj", "Modi", "Nand", "Sind", "Takr", "Tirh"}, { 0x0A833, 0x0A835, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Knda", "Kthi", "Mahj", "Mlym", "Modi", "Nand", "Sind", "Takr", "Tirh"}, { 0x0A836, 0x0A839, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Kthi", "Mahj", "Modi", "Sind", "Takr", "Tirh"}, { 0x0A840, 0x0A877, "Phag" }, { 0x0A880, 0x0A8D9, "Saur" }, { 0x0A8E0, 0x0A8FF, "Deva" }, { 0x0A900, 0x0A92F, "Kali" }, { 0x0A930, 0x0A95F, "Rjng" }, { 0x0A980, 0x0A9DF, "Java" }, { 0x0A9E0, 0x0A9FE, "Mymr" }, { 0x0AA00, 0x0AA5F, "Cham" }, { 0x0AA60, 0x0AA7F, "Mymr" }, { 0x0AA80, 0x0AADF, "Tavt" }, { 0x0AAE0, 0x0AAFF, "Mtei" }, { 0x0AB01, 0x0AB2E, "Ethi" }, { 0x0AB30, 0x0AB65, "Latn" }, { 0x0AB70, 0x0ABBF, "Cher" }, { 0x0ABC0, 0x0ABFF, "Mtei" }, { 0x0AC00, 0x0AFFF, "Hang" }, length = 27, }, [0x0B] = { { 0x0B000, 0x0BFFF, "Hang" }, length = 1, }, [0x0C] = { { 0x0C000, 0x0CFFF, "Hang" }, length = 1, }, [0x0D] = { { 0x0D000, 0x0D7A3, "Hang" }, length = 1, }, [0x0F] = { { 0x0FA27, 0x0FA29, "Hani" }, { 0x0FB13, 0x0FB17, "Armn" }, { 0x0FB1D, 0x0FB4F, "Hebr" }, { 0x0FB50, 0x0FDFD, "Arab" }, { 0x0FE45, 0x0FE46, "Hani", "Bopo", "Hang", "Hira", "Kana" }, { 0x0FE70, 0x0FEFC, "Arab" }, { 0x0FF61, 0x0FF65, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" }, length = 7, }, [0x10] = { { 0x10000, 0x100FA, "Linb" }, { 0x10280, 0x1029C, "Lyci" }, { 0x102A0, 0x102D0, "Cari" }, { 0x102E1, 0x102FB, "Copt" }, { 0x10300, 0x10323, "Ital" }, { 0x10330, 0x1034A, "Goth" }, { 0x10350, 0x1037A, "Perm" }, { 0x10380, 0x1039F, "Ugar" }, { 0x103A0, 0x103D5, "Xpeo" }, { 0x10400, 0x1044F, "Dsrt" }, { 0x10450, 0x1047F, "Shaw" }, { 0x10480, 0x104A9, "Osma" }, { 0x104B0, 0x104FB, "Osge" }, { 0x10500, 0x10527, "Elba" }, { 0x10530, 0x10563, "Aghb" }, { 0x10600, 0x10767, "Lina" }, { 0x10800, 0x1083F, "Cprt" }, { 0x10840, 0x1085F, "Armi" }, { 0x10860, 0x1087F, "Palm" }, { 0x10880, 0x108AF, "Nbat" }, { 0x108E0, 0x108FF, "Hatr" }, { 0x10900, 0x1091F, "Phnx" }, { 0x10920, 0x1093F, "Lydi" }, { 0x10980, 0x1099F, "Mero" }, { 0x109A0, 0x109BF, "Merc" }, { 0x10A00, 0x10A58, "Khar" }, { 0x10A60, 0x10A7F, "Sarb" }, { 0x10A80, 0x10A9F, "Narb" }, { 0x10AC0, 0x10AF6, "Mani" }, { 0x10B00, 0x10B3F, "Avst" }, { 0x10B40, 0x10B5F, "Prti" }, { 0x10B60, 0x10B7F, "Phli" }, { 0x10B80, 0x10BAF, "Phlp" }, { 0x10C00, 0x10C48, "Orkh" }, { 0x10C80, 0x10CB2, "Hung" }, { 0x10D00, 0x10D39, "Rohg" }, { 0x10E60, 0x10E7E, "Rumin" }, { 0x10F00, 0x10F27, "Sogo" }, { 0x10F30, 0x10F59, "Sogd" }, { 0x10F70, 0x10FAF, "Ougr" }, { 0x10FE0, 0x10FFF, "Elym" }, length = 41, }, [0x11] = { { 0x11000, 0x1107F, "Brah" }, { 0x11080, 0x110CD, "Kthi" }, { 0x110D0, 0x110F9, "Sora" }, { 0x11100, 0x11146, "Cakm" }, { 0x11150, 0x11176, "Mahj" }, { 0x11180, 0x111D9, "Shrd" }, { 0x11200, 0x1123D, "Khoj" }, { 0x11280, 0x112A9, "Mult" }, { 0x112B0, 0x112F9, "Sind" }, { 0x11301, 0x11374, "Gran" }, { 0x11400, 0x1145E, "Newa" }, { 0x11480, 0x114D9, "Tirh" }, { 0x11580, 0x115DD, "Sidd" }, { 0x11600, 0x11659, "Modi" }, { 0x11680, 0x116C9, "Takr" }, { 0x11700, 0x1173F, "Ahom" }, { 0x11800, 0x1183B, "Dogr" }, { 0x118A0, 0x118FF, "Wara" }, { 0x119A0, 0x119FF, "Nand" }, { 0x11A00, 0x11A47, "Zanb" }, { 0x11A50, 0x11AA2, "Soyo" }, { 0x11AC0, 0x11AF8, "Pauc" }, { 0x11C00, 0x11C6C, "Bhks" }, { 0x11C70, 0x11CB6, "Marc" }, { 0x11D00, 0x11D59, "Gonm" }, { 0x11D60, 0x11DA9, "Gong" }, { 0x11EE0, 0x11EF8, "Maka" }, length = 27, }, [0x12] = { { 0x12000, 0x1236E, "Xsux" }, { 0x12400, 0x12473, "Xsux" }, { 0x12F90, 0x12FFF, "Cpmn" }, length = 3, }, [0x13] = { { 0x13000, 0x1342E, "Egyp" }, length = 1, }, [0x14] = { { 0x14400, 0x14646, "Hluw" }, length = 1, }, [0x16] = { { 0x16800, 0x16A38, "Bamu" }, { 0x16A40, 0x16A6F, "Mroo" }, { 0x16AD0, 0x16AF5, "Bass" }, { 0x16B00, 0x16B8F, "Hmng" }, { 0x16E40, 0x16E9A, "Medf" }, { 0x16F00, 0x16F9F, "Plrd" }, length = 6, }, [0x17] = { { 0x17000, 0x17FFF, "Tang" }, length = 1, }, [0x18] = { { 0x18000, 0x18AF2, "Tang" }, length = 1, }, [0x1B] = { { 0x1B001, 0x1B11E, "Hira" }, { 0x1B170, 0x1B2FB, "Nshu" }, { 0x1BC00, 0x1BC9F, "Dupl" }, length = 3, }, [0x1D] = { { 0x1D100, 0x1D1DD, "Music" }, { 0x1D2E0, 0x1D2F3, "Maya" }, { 0x1D400, 0x1D7FF, "Zmth" }, { 0x1D800, 0x1DAAF, "Sgnw" }, length = 4, }, [0x1E] = { { 0x1E000, 0x1E02A, "Glag" }, { 0x1E800, 0x1E8D6, "Mend" }, { 0x1E900, 0x1E95F, "Adlm" }, length = 3, }, [0x1F] = { { 0x1F000, 0x1F0F5, "Zsym" }, { 0x1F300, 0x1FA6D, "Zsym" }, length = 2, }, [0x20] = { { 0x20000, 0x20FFF, "Hani" }, length = 1, }, [0x21] = { { 0x21000, 0x21FFF, "Hani" }, length = 1, }, [0x22] = { { 0x22000, 0x22FFF, "Hani" }, length = 1, }, [0x23] = { { 0x23000, 0x23FFF, "Hani" }, length = 1, }, [0x24] = { { 0x24000, 0x24FFF, "Hani" }, length = 1, }, [0x25] = { { 0x25000, 0x25FFF, "Hani" }, length = 1, }, [0x26] = { { 0x26000, 0x26FFF, "Hani" }, length = 1, }, [0x27] = { { 0x27000, 0x27FFF, "Hani" }, length = 1, }, [0x28] = { { 0x28000, 0x28FFF, "Hani" }, length = 1, }, [0x29] = { { 0x29000, 0x29FFF, "Hani" }, length = 1, }, [0x2A] = { { 0x2A000, 0x2AFFF, "Hani" }, length = 1, }, [0x2B] = { { 0x2B000, 0x2BFFF, "Hani" }, length = 1, }, [0x2C] = { { 0x2C000, 0x2CFFF, "Hani" }, length = 1, }, [0x2D] = { { 0x2D000, 0x2DFFF, "Hani" }, length = 1, }, [0x2E] = { { 0x2E000, 0x2EBE0, "Hani" }, length = 1, }, individual = { [0x00462] = "Cyrl", [0x00463] = "Cyrl", [0x0060C] = "Arab, Nkoo, Rohg, Syrc, Thaa, Yezi", [0x0061B] = "Arab, Nkoo, Rohg, Syrc, Thaa, Yezi", [0x0061F] = "Arab, Adlm, Nkoo, Rohg, Syrc, Thaa, Yezi", [0x00640] = "Arab, Adlm, Mand, Mani, Ougr, Phlp, Rohg, Sogd, Syrc", [0x00951] = "Deva, Beng, Gran, Gujr, Guru, Knda, Latn, Mlym, Orya, Shrd, Taml, Telu, Tirh", [0x00952] = "Deva, Beng, Gran, Gujr, Guru, Knda, Latn, Mlym, Orya, Taml, Telu, Tirh", [0x00964] = "Deva, Beng, Dogr, Gong, Gonm, Gran, Gujr, Guru, Knda, Mahj, Mlym, Nand, Orya, Sind, Sinh, Sylo, Takr, Taml, Telu, Tirh", [0x00965] = "Deva, Beng, Dogr, Gong, Gonm, Gran, Gujr, Guru, Knda, Limb, Mahj, Mlym, Nand, Orya, Sind, Sinh, Sylo, Takr, Taml, Telu, Tirh", [0x0098F] = "Beng", [0x00990] = "Beng", [0x009A1] = "Beng", [0x009A2] = "Beng", [0x009AF] = "Beng", [0x009B2] = "Beng", [0x009BC] = "Beng", [0x009C7] = "Beng", [0x009C8] = "Beng", [0x009D7] = "Beng", [0x01CDA] = "Deva, Knda, Mlym, Orya, Taml, Telu", [0x01CF2] = "Deva, Beng, Gran, Knda, Nand, Orya, Telu, Tirh", [0x02135] = "Zmth", [0x03000] = "Hani", [0x03003] = "Hani, Bopo, Hang, Hira, Kana", [0x03013] = "Hani, Bopo, Hang, Hira, Kana", [0x03030] = "Hani, Bopo, Hang, Hira, Kana", [0x03037] = "Hani, Bopo, Hang, Hira, Kana", [0x030FB] = "Kana, Hani, Bopo, Hang, Hira, Yiii", [0x032FF] = "Hani", [0x0FA0E] = "Hani", [0x0FA0F] = "Hani", [0x0FA11] = "Hani", [0x0FA13] = "Hani", [0x0FA14] = "Hani", [0x0FA1F] = "Hani", [0x0FA21] = "Hani", [0x0FA23] = "Hani", [0x0FA24] = "Hani", [0x1056F] = "Aghb", [0x16FE0] = "Tang", [0x16FE1] = "Nshu", [0x1B000] = "Kana", }, blocks = { { 0x04, 0x09, "Hani" }, { 0x0B, 0x0D, "Hang" }, { 0x17, 0x18, "Tang" }, { 0x20, 0x2E, "Hani" }, }, } sq2iqm6nxfgo6n7v55d8idyawddgd9t Modul:Hira-sortkey 828 160408 628880 2024-11-06T15:00:44Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local kata_to_hira = require("Module:ja").kata_to_hira local export = {} function export.makeSortKey(text, lang, sc) -- Normalize to hiragana. text = kata_to_hira(text) return require("Module:Hrkt-sortkey").makeSortKey(text, lang, sc) end return export“ yozuvi orqali yangi sahifa yaratildi 628880 Scribunto text/plain local kata_to_hira = require("Module:ja").kata_to_hira local export = {} function export.makeSortKey(text, lang, sc) -- Normalize to hiragana. text = kata_to_hira(text) return require("Module:Hrkt-sortkey").makeSortKey(text, lang, sc) end return export czjfccqj309b7zd81605u0kxqiqizq9 Modul:Hrkt-sortkey 828 160409 628881 2024-11-06T15:02:10Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local m_ja = require("Module:ja") local kata_to_hira = m_ja.kata_to_hira local normalize_kana = m_ja.normalize_kana local umatch = mw.ustring.match local data = mw.loadData("Module:Hrkt-sortkey/data") local export = {} -- Generate a sortkey from a kana input. This can be any combination of hiragana and katakana, and will not be normalized to hiragana or katakana first. Use [[Module:Hira-sortkey]] or [[Module:Kana-sortkey]] if that is required,...“ yozuvi orqali yangi sahifa yaratildi 628881 Scribunto text/plain local m_ja = require("Module:ja") local kata_to_hira = m_ja.kata_to_hira local normalize_kana = m_ja.normalize_kana local umatch = mw.ustring.match local data = mw.loadData("Module:Hrkt-sortkey/data") local export = {} -- Generate a sortkey from a kana input. This can be any combination of hiragana and katakana, and will not be normalized to hiragana or katakana first. Use [[Module:Hira-sortkey]] or [[Module:Kana-sortkey]] if that is required, which in turn call this module. function export.makeSortKey(text, lang, sc) -- Normalize long vowel and iteration marks. text = normalize_kana(text) -- Middle dots and double hyphens (including fullwidth equals signs) become spaces, unless that results in the output becoming all whitespace. local orig_text = text text = text:gsub("[\227\239][\130\131\188][\157\160\187]", data.spaces) text = umatch(text, "^%s+$") and orig_text or text -- For each dakuten and handakuten, remove it and add 1 or 2 apostrophes to the end (respectively). local apos = 0 text = text:gsub("\227\130[\153\154]", function(char) apos = apos + data.voicing[char] return "" end) return apos > 0 and (text .. ("'"):rep(apos)) or text end return export nmb4tjyc99drbo3gcnj61povocbas4c Modul:Hrkt-sortkey/data 828 160410 628882 2024-11-06T15:02:48Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = {} data.spaces = { ["・"] = " ", ["゠"] = " ", ["="] = " " } data.voicing = { ["゙"] = 1, ["゚"] = 2 } return data“ yozuvi orqali yangi sahifa yaratildi 628882 Scribunto text/plain local data = {} data.spaces = { ["・"] = " ", ["゠"] = " ", ["="] = " " } data.voicing = { ["゙"] = 1, ["゚"] = 2 } return data mx1j4upl4ca751caw963n1f6t4bhg8p Modul:cmn-pron/data 828 160411 628892 2024-11-06T15:39:21Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local u = mw.ustring.char local pua = {} for i = 1, 7 do pua[i] = u(0xF000+i-1) end local py_tone_num_to_mark = { ["1"] = "̄", ["2"] = "́", ["3"] = "̌", ["4"] = "̀" } local py_tone_mark_to_num = {} for k, v in pairs(py_tone_num_to_mark) do py_tone_mark_to_num[v] = k end export.py_tone_num_to_mark = py_tone_num_to_mark export.py_tone_mark_to_num = py_tone_mark_to_num export.py_mark_priority = { "[iuü][aeêiouü]",...“ yozuvi orqali yangi sahifa yaratildi 628892 Scribunto text/plain local export = {} local u = mw.ustring.char local pua = {} for i = 1, 7 do pua[i] = u(0xF000+i-1) end local py_tone_num_to_mark = { ["1"] = "̄", ["2"] = "́", ["3"] = "̌", ["4"] = "̀" } local py_tone_mark_to_num = {} for k, v in pairs(py_tone_num_to_mark) do py_tone_mark_to_num[v] = k end export.py_tone_num_to_mark = py_tone_num_to_mark export.py_tone_mark_to_num = py_tone_mark_to_num export.py_mark_priority = { "[iuü][aeêiouü]", "[aeê]", "o", "[iuü]", "[mn]" } export.tones = "[̄́̌̀]" export.py_ipa_initials = { ["b"] = "p", ["p"] = "pʰ", ["d"] = "t", ["t"] = "tʰ", ["g"] = "k", ["k"] = "kʰ", ["h"] = "x", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["ẑ"] = "ʈ͡ʂ", ["ĉ"] = "ʈ͡ʂʰ", ["ŝ"] = "ʂ", ["r"] = "ʐ", ["z"] = "t͡s", ["c"] = "t͡sʰ", } export.py_ipa_initials_tl = { ["p"] = "b̥", ["t"] = "d̥", ["k"] = "g̊", ["t͡ɕ"] = "d͡ʑ̥", ["ʈ͡ʂ"] = "ɖ͡ʐ̥", ["t͡s"] = "d͡z̥", } export.py_ipa_finals = { ["a"] = "ä", ["o"] = "ɔ", ["e"] = "ɤ", ["ê"] = "ɛ", ["ai"] = "aɪ̯", ["ei"] = "eɪ̯", ["au"] = "ɑʊ̯", ["ou"] = "oʊ̯", ["em"] = "əm", ["aim"] = "aɪ̯m", ["an"] = "än", ["en"] = "ən", ["ên"] = "ɛn", ["aŋ"] = "ɑŋ", ["oŋ"] = "ʊŋ", ["eŋ"] = "ɤŋ", ["êŋ"] = "ɛŋ", ["ia"] = "i̯ä", ["io"] = "i̯ɔ", ["iê"] = "i̯ɛ", ["iai"] = "i̯aɪ̯", ["iau"] = "i̯ɑʊ̯", ["iou"] = "i̯oʊ̯", ["ian"] = "i̯ɛn", ["iaŋ"] = "i̯ɑŋ", ["ua"] = "u̯ä", ["uo"] = "u̯ɔ", ["uê"] = "u̯ɛ", ["uai"] = "u̯aɪ̯", ["uei"] = "u̯eɪ̯", ["uom"] = "u̯ɔm", ["uan"] = "u̯än", ["un"] = "u̯ən", ["uaŋ"] = "u̯ɑŋ", ["uŋ"] = "u̯əŋ", ["ü"] = "y", ["üo"] = "y̯ɔ", ["üê"] = "y̯ɛ", ["üan"] = "y̯ɛn", ["ün"] = "yn", ["üŋ"] = "i̯ʊŋ", ["ɨ"] = "ʐ̩", ["m"] = "m̩", ["n"] = "n̩", ["ŋ"] = "ŋ̍", } export.py_ipa_erhua = { {"än?", "[ɔɤɛʐ]̩?", "([ɑʊɤɛ])ŋ", "([iy])n?", "aɪ̯", "eɪ̯", "ɑʊ̯", "oʊ̯", "ən", "ɛn", "iŋ", "u", "əŋ"}, {"ɑɻ", "%0ɻ", "%1̃ɻ", "%1ə̯ɻ", "ɑɻ", "əɻ", "aʊ̯ɻʷ", "ɤʊ̯ɻʷ", "əɻ", "ɑɻ", "iɤ̯̃ɻ", "uɻʷ", "ʊ̃ɻ"} } export.py_ipa_t_values = { ["1"] = "⁵⁵", ["1-2"] = "⁵⁵⁻³⁵", ["1-4"] = "⁵⁵⁻⁵¹", ["2"] = "³⁵", ["3"] = "²¹⁴", ["4"] = "⁵¹", ["4-2"] = "⁵¹⁻³⁵", } export.py_ipa_tl_ts = { ["1"] = "²", ["2"] = "³", ["3"] = "⁴", ["4"] = "¹", ["5"] = "¹" } export.py_zhuyin_consonant = { ["b"] = "ㄅ", ["p"] = "ㄆ", ["m"] = "ㄇ", ["f"] = "ㄈ", ["d"] = "ㄉ", ["t"] = "ㄊ", ["n"] = "ㄋ", ["l"] = "ㄌ", ["g"] = "ㄍ", ["k"] = "ㄎ", ["h"] = "ㄏ", ["j"] = "ㄐ", ["q"] = "ㄑ", ["x"] = "ㄒ", ["ẑ"] = "ㄓ", ["ĉ"] = "ㄔ", ["ŝ"] = "ㄕ", ["r"] = "ㄖ", ["z"] = "ㄗ", ["c"] = "ㄘ", ["s"] = "ㄙ", ["v"] = "ㄪ", ["ŋ"] = "ㄫ", ["ɲ"] = "ㄬ" } export.py_zhuyin_glide = { ["i"] = "ㄧ", ["u"] = "ㄨ", ["ü"] = "ㄩ", ["ɨ"] = "" } export.py_zhuyin_nucleus = { ["a"] = "ㄚ", ["o"] = "ㄛ", ["e"] = "ㄜ", ["ê"] = "ㄝ" } export.py_zhuyin_final = { ["ㄚㄧ"] = "ㄞ", ["ㄝㄧ"] = "ㄟ", ["ㄚㄨ"] = "ㄠ", ["ㄛㄨ"] = "ㄡ", ["ㄚㄋ"] = "ㄢ", ["ㄜㄋ"] = "ㄣ", ["ㄚㄫ"] = "ㄤ", ["ㄜㄫ"] = "ㄥ" } export.py_zhuyin_syllabic_nasal = { ["ㄇ"] = "ㆬ", ["ㄋ"] = "ㄯ", ["ㄫ"] = "ㆭ" } export.py_zhuyin_tone = {["1"] = "", ["2"] = "ˊ", ["3"] = "ˇ", ["4"] = "ˋ", ["5"] = "˙"} export.zhuyin_py_initial = { ["ㄅ"] = "b", ["ㄆ"] = "p", ["ㄇ"] = "m", ["ㄈ"] = "f", ["ㄉ"] = "d", ["ㄊ"] = "t", ["ㄋ"] = "n", ["ㄌ"] = "l", ["ㄍ"] = "g", ["ㄎ"] = "k", ["ㄏ"] = "h", ["ㄐ"] = "j", ["ㄑ"] = "q", ["ㄒ"] = "x", ["ㄓ"] = "zh", ["ㄔ"] = "ch", ["ㄕ"] = "sh", ["ㄗ"] = "z", ["ㄘ"] = "c", ["ㄙ"] = "s", ["ㄖ"] = "r", ["ㄭ"] = "i", ["ㄪ"] = "v", [""] = "" } export.zhuyin_py_final = { ['ㄚ'] = 'a', ['ㄛ'] = 'o', ['ㄜ'] = 'e', ['ㄝ'] = 'ê', ['ㄞ'] = 'ai', ['ㄟ'] = 'ei', ['ㄠ'] = 'ao', ['ㄡ'] = 'ou', ['ㄢ'] = 'an', ['ㄣ'] = 'en', ['ㄤ'] = 'ang', ['ㄥ'] = 'eng', ['ㄧ'] = 'i', ['ㄧㄚ'] = 'ia', ['ㄧㄛ'] = 'io', ['ㄧㄝ'] = 'ie', ['ㄧㄞ'] = 'iai', ['ㄧㄠ'] = 'iao', ['ㄧㄡ'] = 'iu', ['ㄧㄢ'] = 'ian', ['ㄧㄣ'] = 'in', ['ㄧㄤ'] = 'iang', ['ㄧㄥ'] = 'ing', ['ㄨ'] = 'u', ['ㄨㄚ'] = 'ua', ['ㄨㄛ'] = 'uo', ['ㄨㄞ'] = 'uai', ['ㄨㄟ'] = 'ui', ['ㄨㄢ'] = 'uan', ['ㄨㄣ'] = 'un', ['ㄨㄤ'] = 'uang', ['ㄨㄥ'] = 'ong', ['ㄩ'] = 'ü', ['ㄩㄝ'] = 'ue', ['ㄩㄝ'] = 'üe', ['ㄩㄢ'] = 'üan', ['ㄩㄣ'] = 'ün', ['ㄩㄥ'] = 'iong', ['ㄨㄝ'] = 'uê', ['ㄝㄋ'] = 'ên', ['ㄦ'] = 'er', ['ㄫ'] = 'ng', ['ㄇ'] = 'm', [''] = 'i' } export.zhuyin_py_tone = { ["ˊ"] = "\204\129", ["ˇ"] = "\204\140", ["ˋ"] = "\204\128", ["˙"] = "", [""] = "\204\132" } export.py_wg_consonant = { ["b"] = "p", ["p"] = "pʻ", ["d"] = "t", ["t"] = "tʻ", ["g"] = "k", ["k"] = "kʻ", ["j"] = "ch", ["q"] = "chʻ", ["x"] = "hs", ["ẑ"] = "ch", ["ĉ"] = "chʻ", ["ŝ"] = "sh", ["r"] = "j", ["z"] = "ts", ["c"] = "tsʻ", ["ŋ"] = "ng", ["ɲ"] = "gn" } export.py_wg_consonant_dental = {["z"] = "tz", ["c"] = "tzʻ", ["s"] = "ss"} export.py_wg_glide = {["ɨ"] = "ih"} export.py_wg_nucleus = {["e"] = "ê", ["ê"] = "eh"} export.py_wg_o = {[""] = true, ["g"] = true, ["k"] = true, ["ŋ"] = true, ["h"] = true} export.py_gwoyeu_initial = { ['b'] = 'b', ['p'] = 'p', ['m'] = 'm', ['f'] = 'f', ['d'] = 'd', ['t'] = 't', ['n'] = 'n', ['l'] = 'l', ['g'] = 'g', ['k'] = 'k', ['h'] = 'h', ['j'] = 'j', ['q'] = 'ch', ['x'] = 'sh', ['zh'] = 'j', ['ch'] = 'ch', ['sh'] = 'sh', ['r'] = 'r', ['z'] = 'tz', ['c'] = 'ts', ['s'] = 's', ['y'] = 'i', ['w'] = 'u', ['v'] = 'v', [''] = '' } export.py_gwoyeu_initials = export.py_gwoyeu_initial export.py_gwoyeu_final = { ['a'] = 'a', ['ai'] = 'ai', ['ao'] = 'au', ['an'] = 'an', ['ang'] = 'ang', ['e'] = 'e', ['ei'] = 'ei', ['ou'] = 'ou', ['en'] = 'en', ['eng'] = 'eng', ['o'] = 'o', ['ia'] = 'ia', ['iai'] = 'iai', ['iao'] = 'iau', ['ian'] = 'ian', ['iang'] = 'iang', ['ie'] = 'ie', ['iu'] = 'iou', ['in'] = 'in', ['ing'] = 'ing', ['i'] = 'i', ['ua'] = 'ua', ['uai'] = 'uai', ['uan'] = 'uan', ['uang'] = 'uang', ['uo'] = 'uo', ['ui'] = 'uei', ['un'] = 'uen', ['ong'] = 'ong', ['u'] = 'u', ['ɨ'] = 'y', ['üan'] = 'iuan', ['üe'] = 'iue', ['üo'] = 'iuo', ['ün'] = 'iun', ['iong'] = 'iong', ['ü'] = 'iu', ['io'] = 'io', ['ê'] = 'è', ['ên'] = 'èn', ['êng'] = 'èng', --erhua ['ar'] = 'al', ['air'] = 'al', ['aor'] = 'aul', ['anr'] = 'al', ['angr'] = 'angl', ['er'] = "e'l", ['eir'] = 'el', ['our'] = 'oul', ['enr'] = 'el', ['engr'] = 'engl', ['or'] = 'ol', ['iar'] = 'ial', ['iair'] = 'ial', ['iaor'] = 'iaul', ['ianr'] = 'ial', ['iangr'] = 'iangl', ['ier'] = "ie'l", ['iur'] = 'ioul', ['inr'] = 'iel', ['ingr'] = 'iengl', ['ir'] = 'iel', ['uar'] = 'ual', ['uair'] = 'ual', ['uanr'] = 'ual', ['uangr'] = 'uangl', ['uor'] = 'uol', ['uir'] = 'uel', ['unr'] = 'uel', ['ongr'] = 'ongl', ['ur'] = 'ul', ['ɨr'] = 'el', ['üanr'] = 'iual', ['üer'] = "iue'l", ['üor'] = 'iuol', ['ünr'] = 'iul', ['iongr'] = 'iongl', ['ür'] = 'iuel', ['ênr'] = 'èl', ['êngr'] = 'èngl', } export.py_gwoyeu_finals = export.py_gwoyeu_final export.py_yale_initial = { ["c"] = "ts", ["q"] = "ch", ["x"] = "sy", ["z"] = "dz" } export.py_yale_initials = { ["q"] = "ch", ["x"] = "sy", ["ẑ"] = "j", ["ĉ"] = "ch", ["ŝ"] = "sh", ["z"] = "dz", ["c"] = "ts", } export.py_yale_one_medial = { ["ê"] = "e", ["ü"] = "yu" } export.py_yale_two_medials = { ["ao"] = "au", ["iu"] = "you", ["ui"] = "wei", ["un"] = "wun" } export.py_yale_finals = { ["ê"] = "e", ["ên"] = "en", ["aŋ"] = "ang", ["oŋ"] = "ung", ["eŋ"] = "eng", ["êŋ"] = "eng", ["ia"] = "ya", ["io"] = "yo", ["iê"] = "ye", ["iai"] = "yai", ["iau"] = "yau", ["iou"] = "you", ["ian"] = "yan", ["iaŋ"] = "yang", ["ua"] = "wa", ["uo"] = "wo", ["uê"] = "we", ["uai"] = "wai", ["uei"] = "wei", ["uom"] = "wom", ["uan"] = "wan", ["un"] = "wun", ["uaŋ"] = "wang", ["uŋ"] = "wung", ["ü"] = "yu", ["üo"] = "ywo", ["üê"] = "ywe", ["üan"] = "ywan", ["ün"] = "yun", ["üŋ"] = "ung", ["ɨ"] = "r", } export.py_palladius_one_initial = { ["b"] = "б", ["p"] = "п", ["m"] = "м", ["f"] = "ф", ["d"] = "д", ["t"] = "т", ["n"] = "н", ["l"] = "л", ["g"] = "г", ["k"] = "к", ["h"] = "х", ["j"] = "цз", ["q"] = "ц", ["x"] = "с", ["r"] = "ж", ["z"] = "цз" .. pua[1], ["c"] = "ц" .. pua[1], ["s"] = "с" .. pua[1], ["v"] = "в" .. pua[2], ["w"] = "в", ["y"] = "i" } export.py_palladius_two_initials = { ["zh"] = "чж", ["ch"] = "ч", ["sh"] = "ш" } export.py_palladius_one_medial = { ["a"] = "а", ["e"] = "э", ["i"] = "и", ["o"] = "о", ["u"] = "у", ["ü"] = "юй" } export.py_palladius_two_medials = { ["ai"] = "ай", ["ao"] = "ао", ["ê"] = "эй", ["ei"] = "эй", ["ia"] = "я", ["ie"] = "е", ["io"] = "ё", ["iu"] = "ю", ["iü"] = "юй", ["ou"] = "оу", ["ua"] = "уа", ["ui"] = "уй", ["uo"] = "о", ["üa"] = "юа", ["üe"] = "юэ" } export.py_palladius_three_medials = { ["iai"] = "яй", ["iao"] = "яо", ["iüa"] = "юа", ["iüe"] = "юэ", ["uai"] = "уай" } export.py_palladius_final = { ["m"] = "м", ["n"] = "нь", ["r"] = "р" } export.py_palladius_finals = export.py_palladius_final export.py_palladius_specials = { ["ву"] = "у", ["ён"] = "юн", ["ёу"] = "ю", [pua[1] .. "и"] = "ы", ["ии"] = "и", ["йн"] = "н", ["он"] = "ун", ["юу"] = "ю", ["хуй"] = "хуэй", } -- Note: Russian Cyrillic uses curly apostrophes. export.py_palladius_disambig = { [pua[3] .. "а"] = "’а", [pua[3] .. "н" .. pua[7]] = "’н", [pua[3] .. "нь" .. pua[7]] = "’нь", [pua[3] .. "эй"] = "’эй", [pua[4] .. "у"] = "’у", [pua[5] .. "о"] = "’о", [pua[5] .. "н" .. pua[7]] = "’н", [pua[5] .. "нь" .. pua[7]] = "’нь", [pua[6] .. "н" .. pua[7]] = "’н", [pua[6] .. "нь" .. pua[7]] = "’нь", } return export 080fsl0ifgv7538zjytgqpgmyh9wl47 Modul:Hani 828 160412 628895 2024-11-06T15:43:37Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local concat = table.concat local explode = require("Module:string utilities").explode_utf8 local find = string.find local insert = table.insert local match = string.match local pcall = pcall local umatch = mw.ustring.match local export = {} do local ids = mw.loadData("Module:Hani/data").ids local function find_end_of_ids(text, i, components) local component, j, success = 0, i repeat component = component + 1 j = j + 1 local char...“ yozuvi orqali yangi sahifa yaratildi 628895 Scribunto text/plain local concat = table.concat local explode = require("Module:string utilities").explode_utf8 local find = string.find local insert = table.insert local match = string.match local pcall = pcall local umatch = mw.ustring.match local export = {} do local ids = mw.loadData("Module:Hani/data").ids local function find_end_of_ids(text, i, components) local component, j, success = 0, i repeat component = component + 1 j = j + 1 local char = text[j] -- If it's the end of the string or a space, fail the whole sequence and backtrack. if not char or umatch(char, "%s") then -- Throw an error object containing the end index and the expected number of remaining characters. error{_end = j - 1, _expected = components - component + 1} end local new_components = ids[char] if new_components then success, j = pcall(find_end_of_ids, text, j, new_components) if not success then -- Add any additional expected characters. if j._expected then j._expected = j._expected + components - component end error(j) end end until component == components return j end -- Explodes a string of characters into an array, taking into account any ideographic description characters (IDS). By default, it throws an error if invalid IDS is found. If `fallback` is set, the invalid sequence is split into the largest possible components (e.g. "⿲⿸AB⿱CD" would be split into "⿲", "⿸AB" and "⿱CD", while "⿰⿱AB⿰C" would be split into "⿰", "⿱AB", "⿰" and "C"); this is useful for sortkey contexts, as invalid sequences may occur in arbitrary input. function export.explode_chars(text, fallback) if not (match(text, "\226\191[\176-\191]") or find(text, "〾") or find(text, "㇯")) then return explode(text) end text = explode(text) local ret, text_len, i = {}, #text, 0 repeat i = i + 1 local char = text[i] local components = ids[char] if components then local success, j = pcall(find_end_of_ids, text, i, components) if success then char = concat(text, nil, i, j) i = j elseif not j._expected then -- Any other errors (e.g. stack overflows) will be strings. error(j) else j = "Invalid IDS sequence: \"" .. concat(text, nil, i, j._end) .. "\": expected " .. j._expected .. " additional character" .. (j._expected == 1 and "" or "s") .. "." if not fallback then error(j) end mw.log(j) require("Module:debug/track")("Hani/invalid ids") end end insert(ret, char) until i == text_len return ret end end -- Converts any iteration marks (々 and 〻) into the relevant characters in the text, where n repeated iteration marks repeats n previous characters (e.g. "時々" = "時時", "馬鹿々々しい" = "馬鹿馬鹿しい" etc). Punctuation and unconnected sets of iteraton marks block iteration, with excess marks being left as-is. For example, "X,Y々々" = "X,YY々", and "X々Y々々" = "XXYY々" (not "XXYXY"). function export.convert_iteration_marks(text) if not match(text, "\227\128[\133\187]") then return text end text = explode(text) -- Work backwards, since sets of iteration marks must be isolated from each other (e.g. "X々Y々々" should be "XXYY々", with one excess at the end, not "XXYXY"). local i, n = #text, 0 while i > 0 do local char = text[i] if char == "々" or char == "〻" then n = n + 1 elseif n > 0 then -- Count backwards once for each iteration mark, but stop early if we find something which can't be iterated, as that marks the start of the set to be repeated. local anchor = i for j = 0, n - 1 do local prev = text[anchor - j] if not prev or prev == "々" or prev == "〻" or umatch(prev, "%W") then n = j break end end if n > 0 then i = i - n + 1 -- Replace iteration marks ahead with the relevant character. for j = i, i + n - 1 do text[j + n] = text[j] end n = 0 end end i = i - 1 end return concat(text) end return export opa4jyduoz7az0mkesprwamq89dtgb9 Modul:Hani/data 828 160413 628896 2024-11-06T15:44:03Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = {} -- IDS characters paired to the number of characters which must follow them. data.ids = { ["⿰"] = 2, -- left-to-right ["⿱"] = 2, -- above-to-below ["⿲"] = 3, -- left-to-middle and right ["⿳"] = 3, -- above-to-middle and below ["⿴"] = 2, -- full surround ["⿵"] = 2, -- surround from above ["⿶"] = 2, -- surround from below ["⿷"] = 2, -- surround from left ["⿸"] = 2, -- surround from upper left ["⿹"] = 2,...“ yozuvi orqali yangi sahifa yaratildi 628896 Scribunto text/plain local data = {} -- IDS characters paired to the number of characters which must follow them. data.ids = { ["⿰"] = 2, -- left-to-right ["⿱"] = 2, -- above-to-below ["⿲"] = 3, -- left-to-middle and right ["⿳"] = 3, -- above-to-middle and below ["⿴"] = 2, -- full surround ["⿵"] = 2, -- surround from above ["⿶"] = 2, -- surround from below ["⿷"] = 2, -- surround from left ["⿸"] = 2, -- surround from upper left ["⿹"] = 2, -- surround from upper right ["⿺"] = 2, -- surround from lower left ["⿻"] = 2, -- overlaid ["⿼"] = 2, -- surround from right ["⿽"] = 2, -- surround from lower right ["⿾"] = 1, -- horizontal reflection ["⿿"] = 1, -- rotation ["〾"] = 1, -- variant but not equivalent ["㇯"] = 2 -- subtraction } return data 9l5477cn4pf46wf6hspcjr72zcaos74 Modul:Unicode data/control 828 160414 628899 2024-11-06T15:52:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local Cc, Cf, Cs, Co, Cn = "control", "format", "surrogate", "private-use", "unassigned" local Zs, Zl, Zp = "space-separator", "line-separator", "paragraph-separator" local data = { singles = { [0x000020] = Zs, [0x0000A0] = Zs, [0x0000AD] = Cf, [0x00038B] = Cn, [0x00038D] = Cn, [0x0003A2] = Cn, [0x000530] = Cn, [0x000590] = Cn, [0x00061C] = Cf, [0x0006DD] = Cf, [0x00070E] = Cn, [0x00070F] = Cf, [0x00083F] = Cn, [0x00...“ yozuvi orqali yangi sahifa yaratildi 628899 Scribunto text/plain local Cc, Cf, Cs, Co, Cn = "control", "format", "surrogate", "private-use", "unassigned" local Zs, Zl, Zp = "space-separator", "line-separator", "paragraph-separator" local data = { singles = { [0x000020] = Zs, [0x0000A0] = Zs, [0x0000AD] = Cf, [0x00038B] = Cn, [0x00038D] = Cn, [0x0003A2] = Cn, [0x000530] = Cn, [0x000590] = Cn, [0x00061C] = Cf, [0x0006DD] = Cf, [0x00070E] = Cn, [0x00070F] = Cf, [0x00083F] = Cn, [0x00085F] = Cn, [0x00088F] = Cn, [0x0008E2] = Cf, [0x000984] = Cn, [0x0009A9] = Cn, [0x0009B1] = Cn, [0x0009DE] = Cn, [0x000A04] = Cn, [0x000A29] = Cn, [0x000A31] = Cn, [0x000A34] = Cn, [0x000A37] = Cn, [0x000A3D] = Cn, [0x000A5D] = Cn, [0x000A84] = Cn, [0x000A8E] = Cn, [0x000A92] = Cn, [0x000AA9] = Cn, [0x000AB1] = Cn, [0x000AB4] = Cn, [0x000AC6] = Cn, [0x000ACA] = Cn, [0x000B00] = Cn, [0x000B04] = Cn, [0x000B29] = Cn, [0x000B31] = Cn, [0x000B34] = Cn, [0x000B5E] = Cn, [0x000B84] = Cn, [0x000B91] = Cn, [0x000B9B] = Cn, [0x000B9D] = Cn, [0x000BC9] = Cn, [0x000C0D] = Cn, [0x000C11] = Cn, [0x000C29] = Cn, [0x000C45] = Cn, [0x000C49] = Cn, [0x000C57] = Cn, [0x000C8D] = Cn, [0x000C91] = Cn, [0x000CA9] = Cn, [0x000CB4] = Cn, [0x000CC5] = Cn, [0x000CC9] = Cn, [0x000CDF] = Cn, [0x000CF0] = Cn, [0x000D0D] = Cn, [0x000D11] = Cn, [0x000D45] = Cn, [0x000D49] = Cn, [0x000D80] = Cn, [0x000D84] = Cn, [0x000DB2] = Cn, [0x000DBC] = Cn, [0x000DD5] = Cn, [0x000DD7] = Cn, [0x000E83] = Cn, [0x000E85] = Cn, [0x000E8B] = Cn, [0x000EA4] = Cn, [0x000EA6] = Cn, [0x000EC5] = Cn, [0x000EC7] = Cn, [0x000ECF] = Cn, [0x000F48] = Cn, [0x000F98] = Cn, [0x000FBD] = Cn, [0x000FCD] = Cn, [0x0010C6] = Cn, [0x001249] = Cn, [0x001257] = Cn, [0x001259] = Cn, [0x001289] = Cn, [0x0012B1] = Cn, [0x0012BF] = Cn, [0x0012C1] = Cn, [0x0012D7] = Cn, [0x001311] = Cn, [0x001680] = Zs, [0x00176D] = Cn, [0x001771] = Cn, [0x00180E] = Cf, [0x00191F] = Cn, [0x001A5F] = Cn, [0x001B4D] = Cn, [0x001F58] = Cn, [0x001F5A] = Cn, [0x001F5C] = Cn, [0x001F5E] = Cn, [0x001FB5] = Cn, [0x001FC5] = Cn, [0x001FDC] = Cn, [0x001FF5] = Cn, [0x001FFF] = Cn, [0x002028] = Zl, [0x002029] = Zp, [0x00202F] = Zs, [0x00205F] = Zs, [0x002065] = Cn, [0x00208F] = Cn, [0x002B96] = Cn, [0x002D26] = Cn, [0x002DA7] = Cn, [0x002DAF] = Cn, [0x002DB7] = Cn, [0x002DBF] = Cn, [0x002DC7] = Cn, [0x002DCF] = Cn, [0x002DD7] = Cn, [0x002DDF] = Cn, [0x002E9A] = Cn, [0x003000] = Zs, [0x003040] = Cn, [0x003130] = Cn, [0x00318F] = Cn, [0x00321F] = Cn, [0x00A7D2] = Cn, [0x00A7D4] = Cn, [0x00A9CE] = Cn, [0x00A9FF] = Cn, [0x00AB27] = Cn, [0x00AB2F] = Cn, [0x00FB37] = Cn, [0x00FB3D] = Cn, [0x00FB3F] = Cn, [0x00FB42] = Cn, [0x00FB45] = Cn, [0x00FE53] = Cn, [0x00FE67] = Cn, [0x00FE75] = Cn, [0x00FEFF] = Cf, [0x00FF00] = Cn, [0x00FFE7] = Cn, [0x01000C] = Cn, [0x010027] = Cn, [0x01003B] = Cn, [0x01003E] = Cn, [0x01018F] = Cn, [0x01039E] = Cn, [0x01057B] = Cn, [0x01058B] = Cn, [0x010593] = Cn, [0x010596] = Cn, [0x0105A2] = Cn, [0x0105B2] = Cn, [0x0105BA] = Cn, [0x010786] = Cn, [0x0107B1] = Cn, [0x010809] = Cn, [0x010836] = Cn, [0x010856] = Cn, [0x0108F3] = Cn, [0x010A04] = Cn, [0x010A14] = Cn, [0x010A18] = Cn, [0x010E7F] = Cn, [0x010EAA] = Cn, [0x0110BD] = Cf, [0x0110CD] = Cf, [0x011135] = Cn, [0x0111E0] = Cn, [0x011212] = Cn, [0x011287] = Cn, [0x011289] = Cn, [0x01128E] = Cn, [0x01129E] = Cn, [0x011304] = Cn, [0x011329] = Cn, [0x011331] = Cn, [0x011334] = Cn, [0x01133A] = Cn, [0x01138A] = Cn, [0x01138F] = Cn, [0x0113B6] = Cn, [0x0113C1] = Cn, [0x0113C6] = Cn, [0x0113CB] = Cn, [0x0113D6] = Cn, [0x01145C] = Cn, [0x011914] = Cn, [0x011917] = Cn, [0x011936] = Cn, [0x011C09] = Cn, [0x011C37] = Cn, [0x011CA8] = Cn, [0x011D07] = Cn, [0x011D0A] = Cn, [0x011D3B] = Cn, [0x011D3E] = Cn, [0x011D66] = Cn, [0x011D69] = Cn, [0x011D8F] = Cn, [0x011D92] = Cn, [0x011F11] = Cn, [0x01246F] = Cn, [0x016A5F] = Cn, [0x016ABF] = Cn, [0x016B5A] = Cn, [0x016B62] = Cn, [0x01AFF4] = Cn, [0x01AFFC] = Cn, [0x01AFFF] = Cn, [0x01D455] = Cn, [0x01D49D] = Cn, [0x01D4AD] = Cn, [0x01D4BA] = Cn, [0x01D4BC] = Cn, [0x01D4C4] = Cn, [0x01D506] = Cn, [0x01D515] = Cn, [0x01D51D] = Cn, [0x01D53A] = Cn, [0x01D53F] = Cn, [0x01D545] = Cn, [0x01D551] = Cn, [0x01DAA0] = Cn, [0x01E007] = Cn, [0x01E022] = Cn, [0x01E025] = Cn, [0x01E7E7] = Cn, [0x01E7EC] = Cn, [0x01E7EF] = Cn, [0x01E7FF] = Cn, [0x01EE04] = Cn, [0x01EE20] = Cn, [0x01EE23] = Cn, [0x01EE28] = Cn, [0x01EE33] = Cn, [0x01EE38] = Cn, [0x01EE3A] = Cn, [0x01EE48] = Cn, [0x01EE4A] = Cn, [0x01EE4C] = Cn, [0x01EE50] = Cn, [0x01EE53] = Cn, [0x01EE58] = Cn, [0x01EE5A] = Cn, [0x01EE5C] = Cn, [0x01EE5E] = Cn, [0x01EE60] = Cn, [0x01EE63] = Cn, [0x01EE6B] = Cn, [0x01EE73] = Cn, [0x01EE78] = Cn, [0x01EE7D] = Cn, [0x01EE7F] = Cn, [0x01EE8A] = Cn, [0x01EEA4] = Cn, [0x01EEAA] = Cn, [0x01F0C0] = Cn, [0x01F0D0] = Cn, [0x01FB93] = Cn, [0x0E0001] = Cf, }; ranges = { { 0x000000, 0x00001F, Cc }, { 0x00007F, 0x00009F, Cc }, { 0x000378, 0x000379, Cn }, { 0x000380, 0x000383, Cn }, { 0x000557, 0x000558, Cn }, { 0x00058B, 0x00058C, Cn }, { 0x0005C8, 0x0005CF, Cn }, { 0x0005EB, 0x0005EE, Cn }, { 0x0005F5, 0x0005FF, Cn }, { 0x000600, 0x000605, Cf }, { 0x00074B, 0x00074C, Cn }, { 0x0007B2, 0x0007BF, Cn }, { 0x0007FB, 0x0007FC, Cn }, { 0x00082E, 0x00082F, Cn }, { 0x00085C, 0x00085D, Cn }, { 0x00086B, 0x00086F, Cn }, { 0x000890, 0x000891, Cf }, { 0x000892, 0x000896, Cn }, { 0x00098D, 0x00098E, Cn }, { 0x000991, 0x000992, Cn }, { 0x0009B3, 0x0009B5, Cn }, { 0x0009BA, 0x0009BB, Cn }, { 0x0009C5, 0x0009C6, Cn }, { 0x0009C9, 0x0009CA, Cn }, { 0x0009CF, 0x0009D6, Cn }, { 0x0009D8, 0x0009DB, Cn }, { 0x0009E4, 0x0009E5, Cn }, { 0x0009FF, 0x000A00, Cn }, { 0x000A0B, 0x000A0E, Cn }, { 0x000A11, 0x000A12, Cn }, { 0x000A3A, 0x000A3B, Cn }, { 0x000A43, 0x000A46, Cn }, { 0x000A49, 0x000A4A, Cn }, { 0x000A4E, 0x000A50, Cn }, { 0x000A52, 0x000A58, Cn }, { 0x000A5F, 0x000A65, Cn }, { 0x000A77, 0x000A80, Cn }, { 0x000ABA, 0x000ABB, Cn }, { 0x000ACE, 0x000ACF, Cn }, { 0x000AD1, 0x000ADF, Cn }, { 0x000AE4, 0x000AE5, Cn }, { 0x000AF2, 0x000AF8, Cn }, { 0x000B0D, 0x000B0E, Cn }, { 0x000B11, 0x000B12, Cn }, { 0x000B3A, 0x000B3B, Cn }, { 0x000B45, 0x000B46, Cn }, { 0x000B49, 0x000B4A, Cn }, { 0x000B4E, 0x000B54, Cn }, { 0x000B58, 0x000B5B, Cn }, { 0x000B64, 0x000B65, Cn }, { 0x000B78, 0x000B81, Cn }, { 0x000B8B, 0x000B8D, Cn }, { 0x000B96, 0x000B98, Cn }, { 0x000BA0, 0x000BA2, Cn }, { 0x000BA5, 0x000BA7, Cn }, { 0x000BAB, 0x000BAD, Cn }, { 0x000BBA, 0x000BBD, Cn }, { 0x000BC3, 0x000BC5, Cn }, { 0x000BCE, 0x000BCF, Cn }, { 0x000BD1, 0x000BD6, Cn }, { 0x000BD8, 0x000BE5, Cn }, { 0x000BFB, 0x000BFF, Cn }, { 0x000C3A, 0x000C3B, Cn }, { 0x000C4E, 0x000C54, Cn }, { 0x000C5B, 0x000C5C, Cn }, { 0x000C5E, 0x000C5F, Cn }, { 0x000C64, 0x000C65, Cn }, { 0x000C70, 0x000C76, Cn }, { 0x000CBA, 0x000CBB, Cn }, { 0x000CCE, 0x000CD4, Cn }, { 0x000CD7, 0x000CDC, Cn }, { 0x000CE4, 0x000CE5, Cn }, { 0x000CF4, 0x000CFF, Cn }, { 0x000D50, 0x000D53, Cn }, { 0x000D64, 0x000D65, Cn }, { 0x000D97, 0x000D99, Cn }, { 0x000DBE, 0x000DBF, Cn }, { 0x000DC7, 0x000DC9, Cn }, { 0x000DCB, 0x000DCE, Cn }, { 0x000DE0, 0x000DE5, Cn }, { 0x000DF0, 0x000DF1, Cn }, { 0x000DF5, 0x000E00, Cn }, { 0x000E3B, 0x000E3E, Cn }, { 0x000E5C, 0x000E80, Cn }, { 0x000EBE, 0x000EBF, Cn }, { 0x000EDA, 0x000EDB, Cn }, { 0x000EE0, 0x000EFF, Cn }, { 0x000F6D, 0x000F70, Cn }, { 0x000FDB, 0x000FFF, Cn }, { 0x0010C8, 0x0010CC, Cn }, { 0x0010CE, 0x0010CF, Cn }, { 0x00124E, 0x00124F, Cn }, { 0x00125E, 0x00125F, Cn }, { 0x00128E, 0x00128F, Cn }, { 0x0012B6, 0x0012B7, Cn }, { 0x0012C6, 0x0012C7, Cn }, { 0x001316, 0x001317, Cn }, { 0x00135B, 0x00135C, Cn }, { 0x00137D, 0x00137F, Cn }, { 0x00139A, 0x00139F, Cn }, { 0x0013F6, 0x0013F7, Cn }, { 0x0013FE, 0x0013FF, Cn }, { 0x00169D, 0x00169F, Cn }, { 0x0016F9, 0x0016FF, Cn }, { 0x001716, 0x00171E, Cn }, { 0x001737, 0x00173F, Cn }, { 0x001754, 0x00175F, Cn }, { 0x001774, 0x00177F, Cn }, { 0x0017DE, 0x0017DF, Cn }, { 0x0017EA, 0x0017EF, Cn }, { 0x0017FA, 0x0017FF, Cn }, { 0x00181A, 0x00181F, Cn }, { 0x001879, 0x00187F, Cn }, { 0x0018AB, 0x0018AF, Cn }, { 0x0018F6, 0x0018FF, Cn }, { 0x00192C, 0x00192F, Cn }, { 0x00193C, 0x00193F, Cn }, { 0x001941, 0x001943, Cn }, { 0x00196E, 0x00196F, Cn }, { 0x001975, 0x00197F, Cn }, { 0x0019AC, 0x0019AF, Cn }, { 0x0019CA, 0x0019CF, Cn }, { 0x0019DB, 0x0019DD, Cn }, { 0x001A1C, 0x001A1D, Cn }, { 0x001A7D, 0x001A7E, Cn }, { 0x001A8A, 0x001A8F, Cn }, { 0x001A9A, 0x001A9F, Cn }, { 0x001AAE, 0x001AAF, Cn }, { 0x001ACF, 0x001AFF, Cn }, { 0x001BF4, 0x001BFB, Cn }, { 0x001C38, 0x001C3A, Cn }, { 0x001C4A, 0x001C4C, Cn }, { 0x001C8B, 0x001C8F, Cn }, { 0x001CBB, 0x001CBC, Cn }, { 0x001CC8, 0x001CCF, Cn }, { 0x001CFB, 0x001CFF, Cn }, { 0x001F16, 0x001F17, Cn }, { 0x001F1E, 0x001F1F, Cn }, { 0x001F46, 0x001F47, Cn }, { 0x001F4E, 0x001F4F, Cn }, { 0x001F7E, 0x001F7F, Cn }, { 0x001FD4, 0x001FD5, Cn }, { 0x001FF0, 0x001FF1, Cn }, { 0x002000, 0x00200A, Zs }, { 0x00200B, 0x00200F, Cf }, { 0x00202A, 0x00202E, Cf }, { 0x002060, 0x002064, Cf }, { 0x002066, 0x00206F, Cf }, { 0x002072, 0x002073, Cn }, { 0x00209D, 0x00209F, Cn }, { 0x0020C1, 0x0020CF, Cn }, { 0x0020F1, 0x0020FF, Cn }, { 0x00218C, 0x00218F, Cn }, { 0x00242A, 0x00243F, Cn }, { 0x00244B, 0x00245F, Cn }, { 0x002B74, 0x002B75, Cn }, { 0x002CF4, 0x002CF8, Cn }, { 0x002D28, 0x002D2C, Cn }, { 0x002D2E, 0x002D2F, Cn }, { 0x002D68, 0x002D6E, Cn }, { 0x002D71, 0x002D7E, Cn }, { 0x002D97, 0x002D9F, Cn }, { 0x002E5E, 0x002E7F, Cn }, { 0x002EF4, 0x002EFF, Cn }, { 0x002FD6, 0x002FEF, Cn }, { 0x003097, 0x003098, Cn }, { 0x003100, 0x003104, Cn }, { 0x0031E6, 0x0031EE, Cn }, { 0x00A48D, 0x00A48F, Cn }, { 0x00A4C7, 0x00A4CF, Cn }, { 0x00A62C, 0x00A63F, Cn }, { 0x00A6F8, 0x00A6FF, Cn }, { 0x00A7CE, 0x00A7CF, Cn }, { 0x00A7DD, 0x00A7F1, Cn }, { 0x00A82D, 0x00A82F, Cn }, { 0x00A83A, 0x00A83F, Cn }, { 0x00A878, 0x00A87F, Cn }, { 0x00A8C6, 0x00A8CD, Cn }, { 0x00A8DA, 0x00A8DF, Cn }, { 0x00A954, 0x00A95E, Cn }, { 0x00A97D, 0x00A97F, Cn }, { 0x00A9DA, 0x00A9DD, Cn }, { 0x00AA37, 0x00AA3F, Cn }, { 0x00AA4E, 0x00AA4F, Cn }, { 0x00AA5A, 0x00AA5B, Cn }, { 0x00AAC3, 0x00AADA, Cn }, { 0x00AAF7, 0x00AB00, Cn }, { 0x00AB07, 0x00AB08, Cn }, { 0x00AB0F, 0x00AB10, Cn }, { 0x00AB17, 0x00AB1F, Cn }, { 0x00AB6C, 0x00AB6F, Cn }, { 0x00ABEE, 0x00ABEF, Cn }, { 0x00ABFA, 0x00ABFF, Cn }, { 0x00D7A4, 0x00D7AF, Cn }, { 0x00D7C7, 0x00D7CA, Cn }, { 0x00D7FC, 0x00D7FF, Cn }, { 0x00D800, 0x00DFFF, Cs }, { 0x00E000, 0x00F8FF, Co }, { 0x00FA6E, 0x00FA6F, Cn }, { 0x00FADA, 0x00FAFF, Cn }, { 0x00FB07, 0x00FB12, Cn }, { 0x00FB18, 0x00FB1C, Cn }, { 0x00FBC3, 0x00FBD2, Cn }, { 0x00FD90, 0x00FD91, Cn }, { 0x00FDC8, 0x00FDCE, Cn }, { 0x00FDD0, 0x00FDEF, Cn }, { 0x00FE1A, 0x00FE1F, Cn }, { 0x00FE6C, 0x00FE6F, Cn }, { 0x00FEFD, 0x00FEFE, Cn }, { 0x00FFBF, 0x00FFC1, Cn }, { 0x00FFC8, 0x00FFC9, Cn }, { 0x00FFD0, 0x00FFD1, Cn }, { 0x00FFD8, 0x00FFD9, Cn }, { 0x00FFDD, 0x00FFDF, Cn }, { 0x00FFEF, 0x00FFF8, Cn }, { 0x00FFF9, 0x00FFFB, Cf }, { 0x00FFFE, 0x00FFFF, Cn }, { 0x01004E, 0x01004F, Cn }, { 0x01005E, 0x01007F, Cn }, { 0x0100FB, 0x0100FF, Cn }, { 0x010103, 0x010106, Cn }, { 0x010134, 0x010136, Cn }, { 0x01019D, 0x01019F, Cn }, { 0x0101A1, 0x0101CF, Cn }, { 0x0101FE, 0x01027F, Cn }, { 0x01029D, 0x01029F, Cn }, { 0x0102D1, 0x0102DF, Cn }, { 0x0102FC, 0x0102FF, Cn }, { 0x010324, 0x01032C, Cn }, { 0x01034B, 0x01034F, Cn }, { 0x01037B, 0x01037F, Cn }, { 0x0103C4, 0x0103C7, Cn }, { 0x0103D6, 0x0103FF, Cn }, { 0x01049E, 0x01049F, Cn }, { 0x0104AA, 0x0104AF, Cn }, { 0x0104D4, 0x0104D7, Cn }, { 0x0104FC, 0x0104FF, Cn }, { 0x010528, 0x01052F, Cn }, { 0x010564, 0x01056E, Cn }, { 0x0105BD, 0x0105BF, Cn }, { 0x0105F4, 0x0105FF, Cn }, { 0x010737, 0x01073F, Cn }, { 0x010756, 0x01075F, Cn }, { 0x010768, 0x01077F, Cn }, { 0x0107BB, 0x0107FF, Cn }, { 0x010806, 0x010807, Cn }, { 0x010839, 0x01083B, Cn }, { 0x01083D, 0x01083E, Cn }, { 0x01089F, 0x0108A6, Cn }, { 0x0108B0, 0x0108DF, Cn }, { 0x0108F6, 0x0108FA, Cn }, { 0x01091C, 0x01091E, Cn }, { 0x01093A, 0x01093E, Cn }, { 0x010940, 0x01097F, Cn }, { 0x0109B8, 0x0109BB, Cn }, { 0x0109D0, 0x0109D1, Cn }, { 0x010A07, 0x010A0B, Cn }, { 0x010A36, 0x010A37, Cn }, { 0x010A3B, 0x010A3E, Cn }, { 0x010A49, 0x010A4F, Cn }, { 0x010A59, 0x010A5F, Cn }, { 0x010AA0, 0x010ABF, Cn }, { 0x010AE7, 0x010AEA, Cn }, { 0x010AF7, 0x010AFF, Cn }, { 0x010B36, 0x010B38, Cn }, { 0x010B56, 0x010B57, Cn }, { 0x010B73, 0x010B77, Cn }, { 0x010B92, 0x010B98, Cn }, { 0x010B9D, 0x010BA8, Cn }, { 0x010BB0, 0x010BFF, Cn }, { 0x010C49, 0x010C7F, Cn }, { 0x010CB3, 0x010CBF, Cn }, { 0x010CF3, 0x010CF9, Cn }, { 0x010D28, 0x010D2F, Cn }, { 0x010D3A, 0x010D3F, Cn }, { 0x010D66, 0x010D68, Cn }, { 0x010D86, 0x010D8D, Cn }, { 0x010D90, 0x010E5F, Cn }, { 0x010EAE, 0x010EAF, Cn }, { 0x010EB2, 0x010EC1, Cn }, { 0x010EC5, 0x010EFB, Cn }, { 0x010F28, 0x010F2F, Cn }, { 0x010F5A, 0x010F6F, Cn }, { 0x010F8A, 0x010FAF, Cn }, { 0x010FCC, 0x010FDF, Cn }, { 0x010FF7, 0x010FFF, Cn }, { 0x01104E, 0x011051, Cn }, { 0x011076, 0x01107E, Cn }, { 0x0110C3, 0x0110CC, Cn }, { 0x0110CE, 0x0110CF, Cn }, { 0x0110E9, 0x0110EF, Cn }, { 0x0110FA, 0x0110FF, Cn }, { 0x011148, 0x01114F, Cn }, { 0x011177, 0x01117F, Cn }, { 0x0111F5, 0x0111FF, Cn }, { 0x011242, 0x01127F, Cn }, { 0x0112AA, 0x0112AF, Cn }, { 0x0112EB, 0x0112EF, Cn }, { 0x0112FA, 0x0112FF, Cn }, { 0x01130D, 0x01130E, Cn }, { 0x011311, 0x011312, Cn }, { 0x011345, 0x011346, Cn }, { 0x011349, 0x01134A, Cn }, { 0x01134E, 0x01134F, Cn }, { 0x011351, 0x011356, Cn }, { 0x011358, 0x01135C, Cn }, { 0x011364, 0x011365, Cn }, { 0x01136D, 0x01136F, Cn }, { 0x011375, 0x01137F, Cn }, { 0x01138C, 0x01138D, Cn }, { 0x0113C3, 0x0113C4, Cn }, { 0x0113D9, 0x0113E0, Cn }, { 0x0113E3, 0x0113FF, Cn }, { 0x011462, 0x01147F, Cn }, { 0x0114C8, 0x0114CF, Cn }, { 0x0114DA, 0x01157F, Cn }, { 0x0115B6, 0x0115B7, Cn }, { 0x0115DE, 0x0115FF, Cn }, { 0x011645, 0x01164F, Cn }, { 0x01165A, 0x01165F, Cn }, { 0x01166D, 0x01167F, Cn }, { 0x0116BA, 0x0116BF, Cn }, { 0x0116CA, 0x0116CF, Cn }, { 0x0116E4, 0x0116FF, Cn }, { 0x01171B, 0x01171C, Cn }, { 0x01172C, 0x01172F, Cn }, { 0x011747, 0x0117FF, Cn }, { 0x01183C, 0x01189F, Cn }, { 0x0118F3, 0x0118FE, Cn }, { 0x011907, 0x011908, Cn }, { 0x01190A, 0x01190B, Cn }, { 0x011939, 0x01193A, Cn }, { 0x011947, 0x01194F, Cn }, { 0x01195A, 0x01199F, Cn }, { 0x0119A8, 0x0119A9, Cn }, { 0x0119D8, 0x0119D9, Cn }, { 0x0119E5, 0x0119FF, Cn }, { 0x011A48, 0x011A4F, Cn }, { 0x011AA3, 0x011AAF, Cn }, { 0x011AF9, 0x011AFF, Cn }, { 0x011B0A, 0x011BBF, Cn }, { 0x011BE2, 0x011BEF, Cn }, { 0x011BFA, 0x011BFF, Cn }, { 0x011C46, 0x011C4F, Cn }, { 0x011C6D, 0x011C6F, Cn }, { 0x011C90, 0x011C91, Cn }, { 0x011CB7, 0x011CFF, Cn }, { 0x011D37, 0x011D39, Cn }, { 0x011D48, 0x011D4F, Cn }, { 0x011D5A, 0x011D5F, Cn }, { 0x011D99, 0x011D9F, Cn }, { 0x011DAA, 0x011EDF, Cn }, { 0x011EF9, 0x011EFF, Cn }, { 0x011F3B, 0x011F3D, Cn }, { 0x011F5B, 0x011FAF, Cn }, { 0x011FB1, 0x011FBF, Cn }, { 0x011FF2, 0x011FFE, Cn }, { 0x01239A, 0x0123FF, Cn }, { 0x012475, 0x01247F, Cn }, { 0x012544, 0x012F8F, Cn }, { 0x012FF3, 0x012FFF, Cn }, { 0x013430, 0x01343F, Cf }, { 0x013456, 0x01345F, Cn }, { 0x0143FB, 0x0143FF, Cn }, { 0x014647, 0x0160FF, Cn }, { 0x01613A, 0x0167FF, Cn }, { 0x016A39, 0x016A3F, Cn }, { 0x016A6A, 0x016A6D, Cn }, { 0x016ACA, 0x016ACF, Cn }, { 0x016AEE, 0x016AEF, Cn }, { 0x016AF6, 0x016AFF, Cn }, { 0x016B46, 0x016B4F, Cn }, { 0x016B78, 0x016B7C, Cn }, { 0x016B90, 0x016D3F, Cn }, { 0x016D7A, 0x016E3F, Cn }, { 0x016E9B, 0x016EFF, Cn }, { 0x016F4B, 0x016F4E, Cn }, { 0x016F88, 0x016F8E, Cn }, { 0x016FA0, 0x016FDF, Cn }, { 0x016FE5, 0x016FEF, Cn }, { 0x016FF2, 0x016FFF, Cn }, { 0x0187F8, 0x0187FF, Cn }, { 0x018CD6, 0x018CFE, Cn }, { 0x018D09, 0x01AFEF, Cn }, { 0x01B123, 0x01B131, Cn }, { 0x01B133, 0x01B14F, Cn }, { 0x01B153, 0x01B154, Cn }, { 0x01B156, 0x01B163, Cn }, { 0x01B168, 0x01B16F, Cn }, { 0x01B2FC, 0x01BBFF, Cn }, { 0x01BC6B, 0x01BC6F, Cn }, { 0x01BC7D, 0x01BC7F, Cn }, { 0x01BC89, 0x01BC8F, Cn }, { 0x01BC9A, 0x01BC9B, Cn }, { 0x01BCA0, 0x01BCA3, Cf }, { 0x01BCA4, 0x01CBFF, Cn }, { 0x01CCFA, 0x01CCFF, Cn }, { 0x01CEB4, 0x01CEFF, Cn }, { 0x01CF2E, 0x01CF2F, Cn }, { 0x01CF47, 0x01CF4F, Cn }, { 0x01CFC4, 0x01CFFF, Cn }, { 0x01D0F6, 0x01D0FF, Cn }, { 0x01D127, 0x01D128, Cn }, { 0x01D173, 0x01D17A, Cf }, { 0x01D1EB, 0x01D1FF, Cn }, { 0x01D246, 0x01D2BF, Cn }, { 0x01D2D4, 0x01D2DF, Cn }, { 0x01D2F4, 0x01D2FF, Cn }, { 0x01D357, 0x01D35F, Cn }, { 0x01D379, 0x01D3FF, Cn }, { 0x01D4A0, 0x01D4A1, Cn }, { 0x01D4A3, 0x01D4A4, Cn }, { 0x01D4A7, 0x01D4A8, Cn }, { 0x01D50B, 0x01D50C, Cn }, { 0x01D547, 0x01D549, Cn }, { 0x01D6A6, 0x01D6A7, Cn }, { 0x01D7CC, 0x01D7CD, Cn }, { 0x01DA8C, 0x01DA9A, Cn }, { 0x01DAB0, 0x01DEFF, Cn }, { 0x01DF1F, 0x01DF24, Cn }, { 0x01DF2B, 0x01DFFF, Cn }, { 0x01E019, 0x01E01A, Cn }, { 0x01E02B, 0x01E02F, Cn }, { 0x01E06E, 0x01E08E, Cn }, { 0x01E090, 0x01E0FF, Cn }, { 0x01E12D, 0x01E12F, Cn }, { 0x01E13E, 0x01E13F, Cn }, { 0x01E14A, 0x01E14D, Cn }, { 0x01E150, 0x01E28F, Cn }, { 0x01E2AF, 0x01E2BF, Cn }, { 0x01E2FA, 0x01E2FE, Cn }, { 0x01E300, 0x01E4CF, Cn }, { 0x01E4FA, 0x01E5CF, Cn }, { 0x01E5FB, 0x01E5FE, Cn }, { 0x01E600, 0x01E7DF, Cn }, { 0x01E8C5, 0x01E8C6, Cn }, { 0x01E8D7, 0x01E8FF, Cn }, { 0x01E94C, 0x01E94F, Cn }, { 0x01E95A, 0x01E95D, Cn }, { 0x01E960, 0x01EC70, Cn }, { 0x01ECB5, 0x01ED00, Cn }, { 0x01ED3E, 0x01EDFF, Cn }, { 0x01EE25, 0x01EE26, Cn }, { 0x01EE3C, 0x01EE41, Cn }, { 0x01EE43, 0x01EE46, Cn }, { 0x01EE55, 0x01EE56, Cn }, { 0x01EE65, 0x01EE66, Cn }, { 0x01EE9C, 0x01EEA0, Cn }, { 0x01EEBC, 0x01EEEF, Cn }, { 0x01EEF2, 0x01EFFF, Cn }, { 0x01F02C, 0x01F02F, Cn }, { 0x01F094, 0x01F09F, Cn }, { 0x01F0AF, 0x01F0B0, Cn }, { 0x01F0F6, 0x01F0FF, Cn }, { 0x01F1AE, 0x01F1E5, Cn }, { 0x01F203, 0x01F20F, Cn }, { 0x01F23C, 0x01F23F, Cn }, { 0x01F249, 0x01F24F, Cn }, { 0x01F252, 0x01F25F, Cn }, { 0x01F266, 0x01F2FF, Cn }, { 0x01F6D8, 0x01F6DB, Cn }, { 0x01F6ED, 0x01F6EF, Cn }, { 0x01F6FD, 0x01F6FF, Cn }, { 0x01F777, 0x01F77A, Cn }, { 0x01F7DA, 0x01F7DF, Cn }, { 0x01F7EC, 0x01F7EF, Cn }, { 0x01F7F1, 0x01F7FF, Cn }, { 0x01F80C, 0x01F80F, Cn }, { 0x01F848, 0x01F84F, Cn }, { 0x01F85A, 0x01F85F, Cn }, { 0x01F888, 0x01F88F, Cn }, { 0x01F8AE, 0x01F8AF, Cn }, { 0x01F8BC, 0x01F8BF, Cn }, { 0x01F8C2, 0x01F8FF, Cn }, { 0x01FA54, 0x01FA5F, Cn }, { 0x01FA6E, 0x01FA6F, Cn }, { 0x01FA7D, 0x01FA7F, Cn }, { 0x01FA8A, 0x01FA8E, Cn }, { 0x01FAC7, 0x01FACD, Cn }, { 0x01FADD, 0x01FADE, Cn }, { 0x01FAEA, 0x01FAEF, Cn }, { 0x01FAF9, 0x01FAFF, Cn }, { 0x01FBFA, 0x01FFFF, Cn }, { 0x02A6E0, 0x02A6FF, Cn }, { 0x02B73A, 0x02B73F, Cn }, { 0x02B81E, 0x02B81F, Cn }, { 0x02CEA2, 0x02CEAF, Cn }, { 0x02EBE1, 0x02EBEF, Cn }, { 0x02EE5E, 0x02F7FF, Cn }, { 0x02FA1E, 0x02FFFF, Cn }, { 0x03134B, 0x03134F, Cn }, { 0x0323B0, 0x0E0000, Cn }, { 0x0E0002, 0x0E001F, Cn }, { 0x0E0020, 0x0E007F, Cf }, { 0x0E0080, 0x0E00FF, Cn }, { 0x0E01F0, 0x0EFFFF, Cn }, { 0x0F0000, 0x0FFFFD, Co }, { 0x0FFFFE, 0x0FFFFF, Cn }, { 0x100000, 0x10FFFD, Co }, { 0x10FFFE, 0x10FFFF, Cn }, }; } -- Needed for binary search. data.ranges.length = #data.ranges return data lssfvf24bi6u07vvgg3yjfqgv0o6fqi Modul:maintenance category 828 160415 628900 2024-11-06T15:53:57Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local new_title = mw.title.new local pagetype = require_when_needed("Module:pages", "pagetype") local process_params = require_when_needed("Module:parameters", "process") local uses_hidden_category -- Defined below. local current_title local export = {} function export.uses_hidden_category(titl...“ yozuvi orqali yangi sahifa yaratildi 628900 Scribunto text/plain local require_when_needed = require("Module:require when needed") local format_categories = require_when_needed("Module:utilities", "format_categories") local new_title = mw.title.new local pagetype = require_when_needed("Module:pages", "pagetype") local process_params = require_when_needed("Module:parameters", "process") local uses_hidden_category -- Defined below. local current_title local export = {} function export.uses_hidden_category(title) local namespace = title.namespace -- Thread: and Summary: pages are named "Thread:PAGE" or "Summary:PAGE", -- where PAGE is the page they relate to. How we treat them therefore -- depends on what that page is. while namespace == 90 or namespace == 92 do title = new_title(title.text) namespace = title.namespace end -- User: and all talk namespaces. if namespace == 2 or title.isTalkPage then return true end local title_type = pagetype(title) if ( title_type == "template sandbox" or title_type == "template testcase page" or title_type == "module sandbox" or title_type == "module testcase page" ) then return true end return false end uses_hidden_category = export.uses_hidden_category function export.get_category(name, cat) current_title = current_title or mw.title.getCurrentTitle() if uses_hidden_category(current_title) then name = name .. "/hidden" end return cat and format_categories({name}, nil, "-", nil, true) or name end function export.template(frame) local args = process_params(frame:getParent().args, { [1] = {required = true, default = ""}, ["cat"] = {type = "boolean", default = false} }) return export.get_category(args[1], args.cat) end return export bny7lscv9msjqe7j1hntgapn5alj77g Modul:zh/data/cmn-tag 828 160416 628902 2024-11-06T15:56:14Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.MT = { ["腌"] = { "ā", "āng" }, ["癌"] = { "ái", "yán" }, ["挨"] = { "ái", "āi" }, ["胺"] = { "àn", "ān" }, ["鮟"] = { "ān", "àn" }, ["𩽾"] = { "ān", "àn" }, ["銨"] = { "ǎn", "ān" }, ["铵"] = { "ǎn", "ān" }, ["熬"] = { "āo", "áo" }, ["驁"] = { "ào", "áo" }, ["骜"] = { "ào", "áo" }, ["陂"] = { "bēi", "pí" }, ["鈸"] = { "bó", "bá" }, ["钹"] = { "bó", "bá" }, ["亳"]...“ yozuvi orqali yangi sahifa yaratildi 628902 Scribunto text/plain local export = {} export.MT = { ["腌"] = { "ā", "āng" }, ["癌"] = { "ái", "yán" }, ["挨"] = { "ái", "āi" }, ["胺"] = { "àn", "ān" }, ["鮟"] = { "ān", "àn" }, ["𩽾"] = { "ān", "àn" }, ["銨"] = { "ǎn", "ān" }, ["铵"] = { "ǎn", "ān" }, ["熬"] = { "āo", "áo" }, ["驁"] = { "ào", "áo" }, ["骜"] = { "ào", "áo" }, ["陂"] = { "bēi", "pí" }, ["鈸"] = { "bó", "bá" }, ["钹"] = { "bó", "bá" }, ["亳"] = { "bó", "bò" }, ["伯"] = { "bai", "bó" }, ["白"] = { "bái", "bó" }, ["柏"] = { "bǎi", "bó" }, ["暴"] = { "bào", "pù" }, ["曝"] = { "bào", "pù" }, ["傍"] = { "bàng", "bāng" }, ["比"] = { "bǐ", "bì" }, ["吡"] = { "bǐ", "bì" }, ["檳"] = { "bīng", "bīn" }, ["播"] = { "bō", "bò" }, ["薄"] = { "bó", "báo" }, ["醭"] = { "bú", "pú" }, ["差"] = { "chà", "chā" }, ["杈"] = { "chà", "chā" }, ["衩"] = { "chǎ", "chà" }, ["顫"] = { "chàn", "zhàn" }, ["颤"] = { "chàn", "zhàn" }, ["場"] = { "chǎng", "cháng" }, ["场"] = { "chǎng", "cháng" }, ["稱"] = { "chèn", "chèng" }, ["称"] = { "chèn", "chèng" }, ["乘"] = { "chéng", "shèng" }, ["懲"] = { "chéng", "chěng" }, ["惩"] = { "chéng", "chěng" }, ["吃"] = { "chī", "jí" }, ["儲"] = { "chǔ", "chú" }, ["储"] = { "chǔ", "chú" }, ["揣"] = { "chuài", "chuǎi" }, ["包"] = { "chuāi", "chuǎi" }, ["擉"] = { "chuō", "chū" }, ["雌"] = { "cí", "cī" }, ["廁"] = { "cè", "cì" }, ["厕"] = { "cè", "cì" }, ["賜"] = { "cì", "sì" }, ["赐"] = { "cì", "sì" }, ["從"] = { "cóng", "zòng" }, ["从"] = { "cóng", "zòng" }, ["撮"] = { "cuō", "cuò" }, ["打"] = { "dá", "dǎ" }, ["蹈"] = { "dǎo", "dào" }, ["賧"] = { "dǎn", "tàn", "tǎn" }, ["赕"] = { "dǎn", "tàn", "tǎn" }, ["禫"] = { "dàn", "tǎn" }, ["檔"] = { "dàng", "dǎng" }, ["档"] = { "dàng", "dǎng" }, ["蹬"] = { "dēng", "dèng" }, ["堤"] = { "dī", "tí" }, ["菂"] = { "dì", "dī" }, ["嗲"] = { "diǎ", "diē" }, ["踮"] = { "diǎn", "diàn" }, ["跌"] = { "diē", "dié" }, ["耵"] = { "dīng", "dǐng", "tīng" }, ["度"] = { "duó", "duò" }, ["踱"] = { "duó", "duò" }, ["多"] = { "duō", "duó" }, ["掇"] = { "duō", "duó" }, ["剟"] = { "duō", "duó" }, ["㙍"] = { "duō", "duó" }, ["掇"] = { "duō", "duó" }, ["裰"] = { "duō", "duó" }, ["咄"] = { "duō", "duò" }, ["噸"] = { "dūn", "dùn" }, ["吨"] = { "dūn", "dùn" }, ["俄"] = { "é", "è" }, ["伐"] = { "fá", "fā" }, ["法"] = { "fǎ", "fà" }, ["髮"] = { "fà", "fǎ" }, ["发"] = { "fà", "fǎ" }, ["帆"] = { "fān", "fán" }, ["藩"] = { "fān", "fán" }, ["梵"] = { "fàn", "fán" }, ["坊"] = { "fáng", "fāng" }, ["鯡"] = { "fēi", "fèi" }, ["鲱"] = { "fēi", "fèi" }, ["諷"] = { "fěng", "fèng" }, ["讽"] = { "fěng", "fèng" }, ["芣"] = { "fú", "fóu" }, ["佛"] = { "fú", "fó" }, ["襆"] = { "fú", "pú" }, ["幞"] = { "fú", "pú" }, ["縛"] = { "fù", "fú" }, ["缚"] = { "fù", "fú" }, ["胳"] = { "gā", "gē" }, ["伽"] = { "gā", "jiā" }, ["噶"] = { "gá", "gé" }, ["笴"] = { "gǎn", "gě" }, ["筶"] = { "gào", "gǎo" }, ["仡"] = { "gē", "qì" }, ["葛"] = { "gě", "gé" }, ["供"] = { "gòng", "gōng" }, ["佝"] = { "gōu", "kòu" }, ["痀"] = { "gōu", "jū" }, ["呱"] = { "gū", "wā" }, ["夃"] = { "gǔ", "gū" }, ["蛄"] = { "gǔ", "gū" }, ["聒"] = { "guō", "guā" }, ["劊"] = { "guì", "kuài" }, ["刽"] = { "guì", "kuài" }, ["檜"] = { "guì", "kuài" }, ["桧"] = { "guì", "kuài" }, ["鱖"] = { "guì", "jué" }, ["鳜"] = { "guì", "jué" }, ["摑"] = { "guāi", "guó", "guō" }, ["掴"] = { "guāi", "guó", "guō" }, ["絎"] = { "háng", "hèng"}, ["壑"] = { "hè", "huò" }, ["頜"] = { "hé", "gé" }, ["颌"] = { "hé", "gé" }, ["和"] = { "hé", "hàn" }, ["褐"] = { "hè", "hé" }, ["桁"] = { "héng", "háng" }, ["魟"] = { "hóng", "hōng" }, ["訌"] = { "hòng", "hóng" }, ["讧"] = { "hòng", "hóng" }, ["蕻"] = { "hóng", "hòng" }, ["逅"] = { "hòu", "gòu" }, ["糊"] = { "hù", "hú" }, ["䴉"] = { "huán", "xuán" }, ["鹮"] = { "huán", "xuán" }, ["浣"] = { "huàn", "wǎn", "huǎn" }, ["渾"] = { "hún", "hùn" }, ["浑"] = { "hún", "hùn" }, ["緝"] = { "jī", "qì" }, ["缉"] = { "jī", "qì" }, ["圾"] = { "jī", "sè" }, ["擊"] = { "jī", "jí" }, ["击"] = { "jī", "jí" }, ["唧"] = { "jī", "jí" }, ["寂"] = { "jì", "jí" }, ["績"] = { "jì", "jī" }, ["绩"] = { "jì", "jī" }, ["跡"] = { "jì", "jī" }, ["蹟"] = { "jì", "jī" }, ["迹"] = { "jì", "jī" }, ["夾"] = { "jiā", "jiá" }, ["夹"] = { "jiā", "jiá" }, ["浹"] = { "jiā", "jiá" }, ["浃"] = { "jiā", "jiá" }, ["漸"] = { "jiān", "jiàn" }, ["渐"] = { "jiān", "jiàn" }, ["姣"] = { "jiāo", "jiǎo" }, ["酵"] = { "jiào", "xiào" }, ["僅"] = { "jìn", "jǐn" }, ["仅"] = { "jìn", "jǐn" }, ["覲"] = { "jìn", "jǐn" }, ["觐"] = { "jìn", "jǐn" }, ["勁"] = { "jìn", "jìng" }, ["劲"] = { "jìn", "jìng" }, ["粳"] = { "jīng", "gēng" }, ["究"] = { "jiū", "jiù" }, ["鞠"] = { "jū", "jú" }, ["掬"] = { "jū", "jú" }, ["菌"] = { "jūn", "jùn" }, ["莙"] = { "jūn", "jùn" }, ["崁"] = { "kàn", "kǎn" }, ["痾"] = { "kē", "ē" }, ["疴"] = { "kē", "ē" }, ["刻"] = { "kè", "kē" }, ["矻"] = { "kū", "kù" }, ["會"] = { "kuài", "guì" }, ["会"] = { "kuài", "guì" }, ["框"] = { "kuàng", "kuāng" }, ["眶"] = { "kuàng", "kuāng" }, ["括"] = { "kuò", "guā" }, ["适"] = { "kuò", "guā" }, ["垃"] = { "lā", "lè" }, ["勞"] = { "láo", "lào" }, ["劳"] = { "láo", "lào" }, ["酪"] = { "lào", "luò" }, ["礌"] = { "léi", "lèi" }, ["累"] = { "lěi", "lèi" }, ["擂"] = { "lèi", "léi" }, ["肋"] = { "lèi", "lè" }, ["斂"] = { "liǎn", "liàn" }, ["敛"] = { "liǎn", "liàn" }, ["璉"] = { "liǎn", "lián" }, ["琏"] = { "liǎn", "lián" }, ["鐐"] = { "liào", "liáo" }, ["镣"] = { "liào", "liáo" }, ["釕"] = { "liào", "liǎo" }, ["钌"] = { "liào", "liǎo" }, ["淋"] = { "lìn", "lín" }, ["膦"] = { "lìn", "lín" }, ["呤"] = { "lìng", "líng" }, ["餾"] = { "liú", "liù" }, ["馏"] = { "liú", "liù" }, ["籠"] = { "lǒng", "lóng" }, ["笼"] = { "lǒng", "lóng" }, ["露"] = { "lù", "lòu" }, ["孿"] = { "luán", "lüán" }, ["孪"] = { "luán", "lüán" }, ["攣"] = { "luán", "lüán", "liàn" }, ["挛"] = { "luán", "lüán" }, ["孌"] = { "luán", "lüǎn", "luǎn" }, ["娈"] = { "luán", "lüǎn" }, ["僂"] = { "lǚ", "lóu" }, ["偻"] = { "lǚ", "lóu" }, ["櫚"] = { "lǘ", "lǚ" }, ["榈"] = { "lǘ", "lǚ" }, ["獁"] = { "mǎ", "mà" }, ["犸"] = { "mǎ", "mà" }, ["嘜"] = { "mài", "mà" }, ["唛"] = { "mài", "mà" }, ["脈"] = { "mài", "mò" }, ["脉"] = { "mài", "mò" }, ["屘"] = { "mǎn", "mān" }, ["瑁"] = { "mào", "mèi" }, ["糜"] = { "méi", "mí" }, ["蒙"] = { "měng", "méng" }, ["懵"] = { "měng", "méng", "mēng" }, ["閩"] = { "mǐn", "mín" }, ["闽"] = { "mǐn", "mín" }, ["茗"] = { "míng", "mǐng" }, ["酩"] = { "mǐng", "míng" }, ["膜"] = { "mó", "mò" }, ["模"] = { "mú", "mó" }, ["腩"] = { "nǎn", "nán" }, ["難"] = { "nàn", "nán" }, ["囊"] = { "nāng", "náng" }, ["哪"] = { "né", "nuó" }, ["恁"] = { "nèn", "rèn" }, ["妮"] = { "nī", "ní" }, ["拈"] = { "niān", "nián" }, ["寧"] = { "nìng", "níng" }, ["宁"] = { "nìng", "níng" }, ["蹣"] = { "pán", "mán" }, ["磅"] = { "páng", "pāng" }, ["澎"] = { "péng", "pēng" }, ["坯"] = { "pī", "pēi" }, ["坏"] = { "pī", "pēi" }, ["劈"] = { "pǐ", "pī" }, ["匹"] = { "pǐ", "pī" }, ["癖"] = { "pǐ", "pì" }, ["縹"] = { "piāo", "piǎo" }, ["缥"] = { "piāo", "piǎo" }, ["嘌"] = { "piào", "piāo" }, ["剽"] = { "piāo", "piào" }, ["聘"] = { "pìn", "pìng" }, ["泊"] = { "pō", "bó", "pò" }, ["頗"] = { "pō", "pǒ" }, ["颇"] = { "pō", "pǒ" }, ["剖"] = { "pōu", "pǒu" }, ["樸"] = { "pǔ", "pú" }, ["朴"] = { "pǔ", "pú" }, ["蹼"] = { "pǔ", "pú" }, ["企"] = { "qǐ", "qì" }, ["騎"] = { "qí", "jì" }, ["崎"] = { "qí", "qī" }, ["期"] = { "qī", "qí" }, ["蹊"] = { "qī", "xī" }, ["骑"] = { "qí", "jì" }, ["卡"] = { "qiǎ", "kǎ" }, ["髂"] = { "qià", "kà" }, ["蕁"] = { "qián", "xún" }, ["潛"] = { "qián", "qiǎn" }, ["嵌"] = { "qiàn", "qiān" }, ["撬"] = { "qiào", "qiāo" }, ["戕"] = { "qiāng", "qiáng" }, ["嗆"] = { "qiāng", "qiàng" }, ["強"] = { "qiáng", "qiǎng" }, ["强"] = { "qiáng", "qiǎng" }, ["悄"] = { "qiāo", "qiǎo" }, ["殼"] = { "qiào", "ké" }, ["壳"] = { "qiào", "ké" }, ["怯"] = { "qiè", "què" }, ["氰"] = { "qíng", "qīng" }, ["穹"] = { "qióng", "qiōng" }, ["麴"] = { "qū", "qú" }, ["蠼"] = { "qú", "jué" }, ["炔"] = { "quē", "jué" }, ["囷"] = { "qūn", "jūn" }, ["券"] = { "quàn", "juàn" }, ["攘"] = { "rǎng", "ráng" }, ["嚷"] = { "rāng", "rǎng" }, ["瀼"] = { "ràng", "ráng" }, ["辱"] = { "rǔ", "rù" }, ["糅"] = { "róu", "rǒu" }, ["瘙"] = { "sào", "sāo" }, ["殺"] = { "shā", "shài" }, ["杀"] = { "shā", "shài" }, ["廈"] = { "shà", "xià" }, ["厦"] = { "shà", "xià" }, ["猞"] = { "shē", "shè" }, ["懾"] = { "shè", "zhé" }, ["慑"] = { "shè", "zhé" }, ["莘"] = { "shēn", "xīn" }, ["神"] = { "shēn", "shén" }, ["甚"] = { "shèn", "shén" }, ["勝"] = { "shèng", "shēng" }, ["胜"] = { "shèng", "shēng" }, ["識"] = { "shí", "shì" }, ["识"] = { "shí", "shì" }, ["使"] = { "shǐ", "shì" }, ["室"] = { "shì", "shǐ" }, ["似"] = { "shì", "sì" }, ["叔"] = { "shū", "shú" }, ["淑"] = { "shū", "shú" }, ["菽"] = { "shū", "shú"}, ["掓"] = { "shū", "shú" }, ["毹"] = { "shū", "yú" }, ["署"] = { "shǔ", "shù" }, ["熟"] = { "shú", "shóu" }, ["漦"] = { "sī", "chí", "lí" }, ["艘"] = { "sōu", "sāo" }, ["窣"] = { "sū", "sù" }, ["綏"] = { "suí", "suī" }, ["绥"] = { "suí", "suī" }, ["嗍"] = { "suō", "shuò" }, ["獺"] = { "tǎ", "tà" }, ["獭"] = { "tǎ", "tà" }, ["黮"] = { "tàn", "tǎn" }, ["濤"] = { "tāo", "táo" }, ["涛"] = { "tāo", "táo" }, ["銻"] = { "tī", "tì" }, ["锑"] = { "tī", "tì" }, ["帖"] = { "tiè", "tiě" }, ["聽"] = { "tīng", "tìng" }, ["听"] = { "tīng", "tìng" }, ["凸"] = { "tū", "tú" }, ["突"] = { "tū", "tú" }, ["喎"] = { "wāi", "kuāi" }, ["㖞"] = { "wāi", "kuāi" }, ["玩"] = { "wán", "wàn" }, ["翫"] = { "wán", "wàn" }, ["惋"] = { "wǎn", "wàn" }, ["忘"] = { "wàng", "wáng" }, ["危"] = { "wēi", "wéi" }, ["微"] = { "wēi", "wéi" }, ["巍"] = { "wēi", "wéi" }, ["薇"] = { "wēi", "wéi" }, ["溦"] = { "wēi", "wéi" }, ["唯"] = { "wéi", "wěi" }, ["萎"] = { "wěi", "wēi" }, ["偽"] = { "wěi", "wèi" }, ["伪"] = { "wěi", "wèi" }, ["文"] = { "wén", "wèn" }, ["聞"] = { "wén", "wèn" }, ["闻"] = { "wén", "wèn" }, ["抆"] = { "wěn", "wèn" }, ["紊"] = { "wěn", "wèn" }, ["蕹"] = { "wèng", "yōng" }, ["蝸"] = { "wō", "guā" }, ["蜗"] = { "wō", "guā" }, ["撾"] = { "wō", "zhuā" }, ["挝"] = { "wō", "zhuā" }, ["烏"] = { "wù", "wū" }, ["乌"] = { "wù", "wū" }, ["鸂"] = { "xī", "qī" }, ["㶉"] = { "xī", "qī" }, ["夕"] = { "xī", "xì" }, ["汐"] = { "xī", "xì" }, ["矽"] = { "xī", "xì" }, ["翕"] = { "xī", "xì" }, ["昔"] = { "xī", "xí" }, ["惜"] = { "xī", "xí" }, ["息"] = { "xī", "xí" }, ["熄"] = { "xī", "xí" }, ["錫"] = { "xī", "xí" }, ["锡"] = { "xī", "xí" }, ["禧"] = { "xǐ", "xī" }, ["銑"] = { "xǐ", "xiǎn" }, ["铣"] = { "xǐ", "xiǎn" }, ["呷"] = { "xiā", "xiá" }, ["薟"] = { "xiān", "liàn" }, ["莶"] = { "xiān", "liàn" }, ["醯"] = { "xiān", "xī" }, ["酰"] = { "xiān", "xī" }, ["先"] = { "xiān", "xiàn" }, ["鋧"] = { "xiàn", "xiǎn" }, ["相"] = { "xiāng", "xiàng" }, ["淆"] = { "xiáo", "yáo" }, ["崤"] = { "xiáo", "yáo" }, ["哮"] = { "xiào", "xiāo" }, ["楔"] = { "xiē", "xiè" }, ["挟"] = { "xié", "xiá" }, ["挾"] = { "xié", "xiá" }, ["攜"] = { "xié", "xī" }, ["携"] = { "xié", "xī" }, ["芯"] = { "xìn", "xīn" }, ["行"] = { "xíng", "xìng" }, ["芎"] = { "xiōng", "qiōng" }, ["魆"] = { "xū", "xù" }, ["煦"] = { "xù", "xǔ" }, ["癬"] = { "xuǎn", "xiǎn" }, ["癣"] = { "xuǎn", "xiǎn" }, ["削"] = { "xuē", "xuè" }, ["血"] = { "xuè", "xuě", "xiě" }, ["穴"] = { "xué", "xuè" }, ["雪"] = { "xuě", "xuè" }, ["謔"] = { "xuè", "nüè" }, ["谑"] = { "xuè", "nüè" }, ["馴"] = { "xùn", "xún" }, ["驯"] = { "xùn", "xún" }, ["崖"] = { "yá", "yái" }, ["琊"] = { "yá", "yé" }, ["亞"] = { "yà", "yǎ" }, ["亚"] = { "yà", "yǎ" }, ["湮"] = { "yān", "yīn" }, ["芫"] = { "yán", "yuán" }, ["奄"] = { "yǎn", "yān" }, ["養"] = { "yǎng", "yàng" }, ["养"] = { "yǎng", "yàng" }, ["烊"] = { "yàng", "yáng" }, ["耶"] = { "yē", "yé" }, ["椰"] = { "yē", "yé" }, ["曳"] = { "yè", "yì" }, ["液"] = { "yè", "yì" }, ["腋"] = { "yè", "yì" }, ["椅"] = { "yī", "yǐ" }, ["衣"] = { "yī", "yì" }, ["誼"] = { "yì", "yí" }, ["谊"] = { "yì", "yí" }, ["㣇"] = { "yì", "dì" }, ["應"] = { "yīng", "yìng" }, ["应"] = { "yīng", "yìng" }, ["佣"] = { "yōng", "yòng" }, ["拥"] = { "yōng", "yǒng" }, ["擁"] = { "yōng", "yǒng" }, ["鈾"] = { "yóu", "yòu" }, ["媛"] = { "yuàn", "yuán" }, ["遠"] = { "yuǎn", "yuàn" }, ["远"] = { "yuǎn", "yuàn" }, ["鑰"] = { "yuè", "yào" }, ["钥"] = { "yuè", "yào" }, ["暈"] = { "yùn", "yūn" }, ["晕"] = { "yùn", "yūn" }, ["臢"] = { "zā", "zāng" }, ["拶"] = { "zā", "zá" }, ["載"] = { "zǎi", "zài" }, ["载"] = { "zǎi", "zài" }, ["仔"] = { "zǎi", "zǐ" }, ["暫"] = { "zàn", "zhàn" }, ["暂"] = { "zàn", "zhàn" }, ["鑿"] = { "záo", "zuò" }, ["凿"] = { "záo", "zuò" }, ["鋥"] = { "zèng", "zhèng" }, ["锃"] = { "zèng", "zhèng" }, ["扎"] = { "zhā", "zhá" }, ["紮"] = { "zhā", "zhá" }, ["吒"] = { "zhā", "zhà" }, ["炸"] = { "zhá", "zhà" }, ["奓"] = { "zhà", "zhā" }, ["著"] = { "zháo", "zhāo" }, ["着"] = { "zháo", "zhāo" }, ["蜇"] = { "zhē", "zhé" }, ["轍"] = { "zhé", "chè" }, ["辙"] = { "zhé", "chè" }, ["蟄"] = { "zhé", "zhí" }, ["蛰"] = { "zhé", "zhí" }, ["幀"] = { "zhēn", "zhèng" }, ["帧"] = { "zhēn", "zhèng" }, ["圳"] = { "zhèn", "zùn" }, ["掙"] = { "zhèng", "zhēng" }, ["挣"] = { "zhèng", "zhēng" }, ["諍"] = { "zhèng", "zhēng" }, ["诤"] = { "zhèng", "zhēng" }, ["知"] = { "zhī", "zhì" }, ["脂"] = { "zhī", "zhǐ" }, ["质"] = { "zhì", "zhí" }, ["質"] = { "zhì", "zhí" }, ["掷"] = { "zhì", "zhí" }, ["擲"] = { "zhì", "zhí" }, ["挃"] = { "zhì", "zhí" }, ["栉"] = { "zhì", "jié" }, ["櫛"] = { "zhì", "jié" }, ["中"] = { "zhōng", "zhòng" }, ["謅"] = { "zhōu", "zōu" }, ["诌"] = { "zhōu", "zōu" }, ["驟"] = { "zhòu", "zòu" }, ["骤"] = { "zhòu", "zòu" }, ["軸"] = { "zhòu", "zhóu" }, ["轴"] = { "zhòu", "zhóu" }, ["舳"] = { "zhú", "zhóu" }, ["築"] = { "zhù", "zhú" }, ["筑"] = { "zhù", "zhú" }, ["贮"] = { "zhù", "zhǔ" }, ["貯"] = { "zhù", "zhǔ" }, ["爪"] = { "zhǎo", "zhuǎ" }, ["畷"] = { "zhuì", "zhuó" }, ["拙"] = { "zhuō", "zhuó" }, ["卓"] = { "zhuó", "zhuō" }, ["綜"] = { "zōng", "zòng" }, ["综"] = { "zōng", "zòng" }, ["縱"] = { "zòng", "zōng" }, ["纵"] = { "zòng", "zōng" }, ["鱒"] = { "zūn", "zùn" }, ["鳟"] = { "zūn", "zùn" }, } local CN, TW = "Mainland", "Taiwan" local std, var = "standard in ", "variant in " local std_CN, std_TW, std_CN_TW = std..CN, std..TW, std..CN.." and "..TW local var_CN, var_TW, var_CN_TW = var..CN, var..TW, var..CN.." and "..TW local std_CN_var_TW, std_TW_var_CN = std_CN.."; "..var_TW, std_TW.."; "..var_CN export.MT_tag = { ["腌"] = { std_CN_var_TW, std_TW_var_CN }, ["癌"] = { std_CN_TW, var_TW }, ["挨"] = { CN, TW }, ["胺"] = { CN, TW }, ["鮟"] = { CN, TW }, ["𩽾"] = { CN, TW }, ["銨"] = { CN, TW }, ["铵"] = { CN, TW }, ["熬"] = { CN, TW }, ["驁"] = { std_CN_var_TW, TW }, ["骜"] = { std_CN_var_TW, TW }, ["陂"] = { CN, TW }, ["鈸"] = { std_CN_var_TW, std_TW }, ["钹"] = { std_CN_var_TW, std_TW }, ["亳"] = { CN, TW }, ["伯"] = { CN, TW }, ["白"] = { std_CN_TW, "literary variant" }, ["柏"] = { std_CN.."; vernacular variant in Taiwan", std_TW }, ["暴"] = { std_CN, std_TW.."; literary "..var_CN }, ["曝"] = { std_CN, std_TW.."; noncommon variant in Mainland" }, ["傍"] = { CN, TW }, ["比"] = { CN, TW }, ["吡"] = { std_CN_TW, var_TW }, ["檳"] = { CN, TW }, ["播"] = { std_CN_var_TW, std_TW }, ["薄"] = { "literary", "vernacular" }, ["醭"] = { std_CN_var_TW, std_TW.."; obsolete variant in Mainland" }, ["差"] = { CN, TW }, ["杈"] = { CN, TW }, ["衩"] = { CN, TW }, ["顫"] = { CN, TW }, ["颤"] = { CN, TW }, ["場"] = { std_CN_TW, "literary variant" }, ["场"] = { std_CN_TW, "literary variant" }, ["稱"] = { std_CN_var_TW, std_TW }, ["称"] = { std_CN_var_TW, std_TW }, ["乘"] = { std_CN, std_TW_var_CN }, ["懲"] = { std_CN_TW, "variant" }, ["惩"] = { std_CN_TW, var_CN }, ["吃"] = { std_CN, std_TW.."; dated in Mainland" }, ["儲"] = { CN, TW }, ["储"] = { CN, TW }, ["揣"] = { CN, TW }, ["包"] = { CN, TW }, ["擉"] = { CN, TW }, ["雌"] = { std_CN_var_TW, std_TW }, ["廁"] = { std_CN_TW, "literary variant" }, ["厕"] = { std_CN_TW, "literary variant" }, ["賜"] = { CN, TW }, ["赐"] = { CN, TW }, ["從"] = { CN, TW }, ["从"] = { CN, TW }, ["撮"] = { std_CN_var_TW, std_TW }, ["打"] = { std_CN_var_TW, std_TW }, ["蹈"] = { CN, TW }, ["賧"] = { std_CN, std_TW_var_CN, var_CN }, ["赕"] = { std_CN, std_TW_var_CN, var_CN }, ["禫"] = { CN, TW }, ["檔"] = { std_CN, std_TW_var_CN }, ["档"] = { std_CN, std_TW_var_CN }, ["蹬"] = { CN, TW }, ["堤"] = { std_CN, std_TW_var_CN }, ["菂"] = { CN, TW }, ["嗲"] = { CN, TW }, ["踮"] = { CN, TW }, ["跌"] = { CN, TW }, ["耵"] = { std_CN, std_TW, "variant" }, ["度"] = { CN, TW }, ["踱"] = { CN, TW }, ["多"] = { std_CN_TW, "common variant" }, ["掇"] = { std_CN_var_TW, TW }, ["剟"] = { CN, TW }, ["㙍"] = { std_CN_TW, var_TW }, ["裰"] = { CN, TW }, ["咄"] = { CN, TW }, ["噸"] = { CN, TW }, ["吨"] = { CN, TW }, ["俄"] = { std_CN_TW, "variant, common in Taiwan" }, ["伐"] = { CN, TW }, ["法"] = { std_CN_TW, "common "..var_TW }, ["髮"] = { CN, TW }, ["发"] = { CN, TW }, ["帆"] = { CN, TW }, ["藩"] = { CN, TW }, ["梵"] = { std_CN_TW, "common variant" }, ["坊"] = { CN, TW }, ["鯡"] = { CN, TW }, ["鲱"] = { CN, TW }, ["諷"] = { CN, TW }, ["讽"] = { CN, TW }, ["芣"] = { CN, TW }, ["佛"] = { CN, TW }, ["襆"] = { CN, TW }, ["幞"] = { CN, TW }, ["縛"] = { CN, TW }, ["缚"] = { CN, TW }, ["胳"] = { std_CN_var_TW, std_TW }, ["伽"] = { CN, TW }, ["噶"] = { CN, TW }, ["笴"] = { std_CN_var_TW, std_TW_var_CN }, ["筶"] = { CN, TW }, ["仡"] = { std_CN_var_TW, std_TW }, ["葛"] = { std_CN_var_TW, std_TW_var_CN }, ["供"] = { CN, TW }, ["佝"] = { CN, TW }, ["痀"] = { CN, TW }, ["呱"] = { CN, TW }, ["夃"] = { CN, TW }, ["蛄"] = { CN, TW }, ["聒"] = { CN, TW }, ["劊"] = { std_CN_var_TW, std_TW }, ["刽"] = { std_CN_var_TW, std_TW }, ["檜"] = { std_CN_var_TW, std_TW }, ["桧"] = { std_CN_var_TW, std_TW }, ["鱖"] = { std_CN_TW, var_TW }, ["鳜"] = { std_CN_TW, var_TW }, ["摑"] = { std_CN, std_TW_var_CN, var_CN }, ["掴"] = { std_CN, std_TW_var_CN, var_CN }, ["絎"] = { CN, TW }, ["壑"] = { CN, TW }, ["頜"] = { CN, TW }, ["颌"] = { CN, TW }, ["和"] = { CN, TW }, ["褐"] = { CN, TW }, ["桁"] = { CN, TW }, ["魟"] = { CN, TW }, ["訌"] = { CN, TW }, ["讧"] = { CN, TW }, ["蕻"] = { CN, TW }, ["逅"] = { std_CN_TW, "variant" }, ["糊"] = { std_CN, std_TW_var_CN }, ["䴉"] = { std_CN, std_TW_var_CN }, ["鹮"] = { std_CN, std_TW_var_CN }, ["浣"] = { CN, TW, var_TW }, ["渾"] = { std_CN, std_TW_var_CN }, ["浑"] = { std_CN, std_TW_var_CN }, ["緝"] = { CN, TW }, ["缉"] = { CN, TW }, ["圾"] = { CN, TW }, ["擊"] = { CN, TW }, ["击"] = { CN, TW }, ["唧"] = { std_CN_var_TW, std_TW }, ["寂"] = { CN, TW }, ["績"] = { CN, TW }, ["绩"] = { CN, TW }, ["跡"] = { CN, TW }, ["蹟"] = { CN, TW }, ["迹"] = { CN, TW }, ["夾"] = { std_CN, std_TW_var_CN }, ["夹"] = { std_CN, std_TW_var_CN }, ["浹"] = { CN, TW }, ["浃"] = { CN, TW }, ["漸"] = { std_CN_var_TW, TW }, ["渐"] = { std_CN_var_TW, TW }, ["姣"] = { CN, TW }, ["酵"] = { std_CN, std_TW_var_CN }, ["僅"] = { CN, TW }, ["仅"] = { CN, TW }, ["覲"] = { CN, TW }, ["觐"] = { CN, TW }, ["勁"] = { std_CN_var_TW, std_TW }, ["劲"] = { std_CN_var_TW, std_TW }, ["粳"] = { CN, TW }, ["究"] = { CN, TW }, ["鞠"] = { CN, TW }, ["掬"] = { CN, TW }, ["菌"] = { CN, TW }, ["莙"] = { CN, TW }, ["崁"] = { CN, TW }, ["痾"] = { std_CN_var_TW, std_TW_var_CN }, ["疴"] = { std_CN_var_TW, std_TW_var_CN }, ["刻"] = { std_CN_TW, var_TW }, ["矻"] = { CN, TW }, ["會"] = { CN, TW }, ["会"] = { CN, TW }, ["框"] = { std_CN, std_TW_var_CN }, ["眶"] = { std_CN, std_TW_var_CN }, ["括"] = { std_CN_var_TW, std_TW }, ["适"] = { std_CN_var_TW, std_TW }, ["垃"] = { CN, TW }, ["勞"] = { CN, TW }, ["劳"] = { CN, TW }, ["酪"] = { CN, TW }, ["礌"] = { CN, TW }, ["累"] = { std_CN_var_TW, std_TW }, ["擂"] = { std_CN_var_TW, std_TW }, ["肋"] = { CN, TW }, ["斂"] = { std_CN, std_TW_var_CN }, ["敛"] = { CN, TW }, ["璉"] = { CN, TW }, ["琏"] = { CN, TW }, ["鐐"] = { CN, TW }, ["镣"] = { CN, TW }, ["釕"] = { CN, TW }, ["钌"] = { CN, TW }, ["淋"] = { std_CN, std_TW_var_CN }, ["膦"] = { CN, TW }, ["呤"] = { std_CN, std_TW_var_CN }, ["餾"] = { CN, TW }, ["馏"] = { CN, TW }, ["籠"] = { CN, TW }, ["笼"] = { CN, TW }, ["露"] = { "literary", "vernacular" }, ["孿"] = { std_CN_TW, var_TW }, ["孪"] = { std_CN_TW, var_TW }, ["攣"] = { std_CN_TW, var_TW, var_TW }, ["挛"] = { std_CN_TW, var_TW, var_TW }, ["孌"] = { std_CN_TW, var_TW, "literary variant" }, ["娈"] = { std_CN_TW, var_TW }, ["僂"] = { CN, TW }, ["偻"] = { CN, TW }, ["櫚"] = { std_CN_TW, var_CN_TW }, ["榈"] = { std_CN_TW, var_CN_TW }, ["獁"] = { CN, TW }, ["犸"] = { CN, TW }, ["嘜"] = { std_CN, std_TW_var_CN }, ["唛"] = { std_CN, std_TW_var_CN }, ["脈"] = { std_CN_TW, "variant" }, ["脉"] = { std_CN_TW, "variant" }, ["屘"] = { CN, TW }, ["瑁"] = { CN, TW }, ["糜"] = { std_CN_var_TW, std_TW }, ["蒙"] = { CN, TW }, ["懵"] = { CN, TW, var_CN }, ["閩"] = { std_CN_TW, "variant" }, ["闽"] = { std_CN_TW, "variant" }, ["茗"] = { std_CN_TW, var_TW }, ["酩"] = { std_CN_var_TW, std_TW }, ["膜"] = { std_CN_TW, var_TW }, ["模"] = { std_CN_var_TW, std_TW_var_CN }, ["腩"] = { std_CN_TW, var_CN_TW }, ["難"] = { CN, TW }, ["囊"] = { CN, TW }, ["哪"] = { CN, TW }, ["恁"] = { std_CN, std_TW_var_CN }, ["妮"] = { std_CN, std_TW_var_CN }, ["拈"] = { CN, TW }, ["寧"] = { CN, TW }, ["宁"] = { CN, TW }, ["蹣"] = { CN, TW }, ["磅"] = { CN, TW }, ["澎"] = { CN, TW }, ["坯"] = { CN, TW }, ["坏"] = { CN, TW }, ["劈"] = { std_CN_var_TW, std_TW }, ["匹"] = { CN, TW }, ["癖"] = { std_CN_TW, var_CN_TW }, ["縹"] = { CN, TW }, ["缥"] = { CN, TW }, ["嘌"] = { std_CN, std_TW_var_CN }, ["剽"] = { CN, TW }, ["聘"] = { CN, TW }, ["泊"] = { std_CN, std_TW, var_TW }, ["頗"] = { CN, TW }, ["颇"] = { CN, TW }, ["剖"] = { CN, TW }, ["樸"] = { CN, TW }, ["朴"] = { CN, TW }, ["蹼"] = { CN, TW }, ["崎"] = { std_CN_TW, var_TW }, ["企"] = { CN, TW }, ["騎"] = { std_CN, std_TW_var_CN }, ["骑"] = { std_CN, std_TW_var_CN }, ["期"] = { CN, TW }, ["蹊"] = { CN, TW }, ["卡"] = { CN, TW }, ["髂"] = { CN, TW }, ["蕁"] = { std_CN, std_TW_var_CN }, ["潛"] = { std_CN_TW, var_CN_TW }, ["嵌"] = { CN, TW }, ["撬"] = { std_CN_TW, "dated "..var_TW }, ["戕"] = { CN, TW }, ["嗆"] = { CN, TW }, ["強"] = { CN, TW }, ["强"] = { CN, TW }, ["悄"] = { CN, TW }, ["殼"] = { CN, TW }, ["壳"] = { CN, TW }, ["怯"] = { CN, TW }, ["氰"] = { CN, TW }, ["穹"] = { CN, TW }, ["麴"] = { CN, TW }, ["蠼"] = { CN, TW }, ["炔"] = { std_CN_var_TW, std_TW }, ["囷"] = { CN, TW }, ["券"] = { std_CN_TW, var_CN }, ["攘"] = { CN, TW }, ["嚷"] = { std_CN_var_TW, std_TW }, ["瀼"] = { std_CN_var_TW, std_TW }, ["辱"] = { CN, TW }, ["糅"] = { std_CN_TW, var_TW }, ["瘙"] = { CN, std_TW_var_CN }, ["殺"] = { CN, TW }, ["杀"] = { CN, TW }, ["廈"] = { "colloquial; "..std_CN_var_TW, "literary; "..std_TW }, ["厦"] = { "colloquial; "..std_CN_var_TW, "literary; "..std_TW }, ["猞"] = { CN, TW }, ["懾"] = { CN, TW }, ["慑"] = { CN, TW }, ["莘"] = { std_CN_TW, var_CN_TW }, ["神"] = { CN, TW }, ["甚"] = { CN, TW }, ["勝"] = { std_CN, std_TW_var_CN }, ["胜"] = { std_CN, std_TW_var_CN }, ["識"] = { CN, TW }, ["识"] = { CN, TW }, ["使"] = { std_CN_TW, var_CN_TW }, ["室"] = { std_CN_TW, var_CN }, ["似"] = { std_CN, std_TW_var_CN }, ["叔"] = { CN, TW }, ["淑"] = { CN, TW }, ["菽"] = { CN, TW }, ["掓"] = { CN, TW }, ["毹"] = { CN, TW }, ["署"] = { CN, TW }, ["熟"] = { "literary; "..std_CN_var_TW, "colloquial; "..std_CN_TW }, ["漦"] = { std_CN, var_CN, std_TW }, ["艘"] = { std_CN_var_TW, std_TW_var_CN }, ["窣"] = { CN, TW }, ["綏"] = { std_CN_var_TW, std_TW }, ["绥"] = { std_CN_var_TW, std_TW }, ["嗍"] = { CN, TW }, ["獺"] = { CN, TW }, ["獭"] = { CN, TW }, ["黮"] = { CN, TW }, ["濤"] = { CN, TW }, ["涛"] = { CN, TW }, ["銻"] = { CN, TW }, ["锑"] = { CN, TW }, ["帖"] = { std_CN_var_TW, std_TW }, ["聽"] = { std_CN_var_TW, std_TW.."; dated "..var_CN }, ["听"] = { CN, TW }, ["凸"] = { CN, TW }, ["突"] = { CN, TW }, ["喎"] = { CN, TW }, ["㖞"] = { CN, TW }, ["玩"] = { "colloquial; "..std_CN_TW, "literary; "..var_TW }, ["翫"] = { std_CN, std_TW_var_CN }, ["惋"] = { CN, TW }, ["忘"] = { std_CN_TW, "literary variant" }, ["危"] = { std_CN, std_TW.."; dated "..var_CN }, ["微"] = { std_CN, std_TW.."; dated "..var_CN }, ["巍"] = { CN, TW }, ["薇"] = { CN, TW }, ["溦"] = { CN, TW }, ["唯"] = { std_CN, std_TW_var_CN }, ["萎"] = { CN, TW }, ["偽"] = { std_CN_var_TW, std_TW }, ["伪"] = { std_CN_var_TW, std_TW }, ["抆"] = { CN, TW }, ["文"] = { std_CN, std_TW..", literary alternative in "..CN }, ["聞"] = { std_CN_TW, var_TW }, ["闻"] = { std_CN_TW, var_TW }, ["紊"] = { CN, TW }, ["蕹"] = { CN, TW }, ["蝸"] = { CN, TW }, ["蜗"] = { CN, TW }, ["撾"] = { CN, TW }, ["挝"] = { CN, TW }, ["烏"] = { CN, TW }, ["乌"] = { CN, TW }, ["鸂"] = { std_CN_TW, "variant" }, ["㶉"] = { std_CN_TW, "variant" }, ["夕"] = { CN, TW }, ["汐"] = { CN, TW }, ["矽"] = { CN, TW }, ["翕"] = { CN, TW }, ["昔"] = { CN, TW }, ["惜"] = { CN, TW }, ["息"] = { CN, TW }, ["熄"] = { CN, TW }, ["錫"] = { CN, TW }, ["锡"] = { CN, TW }, ["禧"] = { std_CN_var_TW, std_TW }, ["銑"] = { CN, TW }, ["铣"] = { CN, TW }, ["呷"] = { CN, TW }, ["薟"] = { CN, TW }, ["莶"] = { CN, TW }, ["醯"] = { CN, TW }, ["酰"] = { CN, TW }, ["先"] = { CN, TW }, ["鋧"] = { CN, TW }, ["相"] = { CN, TW }, ["淆"] = { CN, TW }, ["崤"] = { CN, TW }, ["哮"] = { std_CN_var_TW, std_TW_var_CN }, ["楔"] = { std_CN_TW, var_TW }, ["挟"] = { CN, TW }, ["挾"] = { std_CN_var_TW, std_TW }, ["攜"] = { CN, TW }, ["携"] = { CN, TW }, ["芯"] = { std_CN_var_TW, std_TW_var_CN }, ["行"] = { CN, TW }, ["芎"] = { CN, TW }, ["魆"] = { std_CN_var_TW, std_TW }, ["煦"] = { CN, TW }, ["癬"] = { std_CN_var_TW, std_TW_var_CN }, ["癣"] = { std_CN_var_TW, std_TW_var_CN }, ["削"] = { CN, TW }, ["血"] = { std_CN, var_CN, std_TW.."; colloquial in Mainland" }, ["雪"] = { std_CN_TW, var_TW }, ["穴"] = { std_CN, std_TW_var_CN }, ["謔"] = { CN, TW }, ["谑"] = { CN, TW }, ["馴"] = { CN, TW }, ["驯"] = { CN, TW }, ["崖"] = { CN, TW }, ["琊"] = { CN, TW }, ["亞"] = { std_CN_TW, "common variant" }, ["亚"] = { std_CN_TW, "common variant" }, ["湮"] = { std_CN_var_TW, std_TW_var_CN }, ["芫"] = { CN, TW }, ["奄"] = { std_CN, std_TW_var_CN }, ["養"] = { CN, TW }, ["养"] = { CN, TW }, ["烊"] = { std_CN, std_TW_var_CN }, ["耶"] = { std_CN_var_TW, std_TW }, ["椰"] = { CN, TW }, ["曳"] = { CN, TW }, ["液"] = { std_CN_TW, var_TW }, ["腋"] = { std_CN_TW, var_TW }, ["椅"] = { CN, TW }, ["衣"] = { CN, TW }, ["誼"] = { std_CN_TW, var_CN_TW }, ["谊"] = { std_CN_TW, var_CN_TW }, ["㣇"] = { std_CN_var_TW, std_TW_var_CN }, ["應"] = { CN, TW }, ["应"] = { CN, TW }, ["佣"] = { CN, TW }, ["拥"] = { std_CN_var_TW, std_TW }, ["擁"] = { std_CN_var_TW, std_TW }, ["鈾"] = { std_CN_var_TW, std_TW }, ["媛"] = { std_CN_var_TW, std_TW }, ["遠"] = { std_CN_var_TW, std_TW }, ["远"] = { std_CN_var_TW, std_TW }, ["鑰"] = { CN, TW }, ["钥"] = { CN, TW }, ["暈"] = { std_CN, std_TW_var_CN }, ["晕"] = { std_CN, std_TW_var_CN }, ["臢"] = { std_CN_var_TW, std_TW }, ["拶"] = { CN, TW }, ["載"] = { CN, TW }, ["载"] = { CN, TW }, ["仔"] = { std_CN_var_TW, std_TW }, ["暫"] = { CN, TW }, ["暂"] = { CN, TW }, ["鑿"] = { std_CN_TW, "literary variant" }, ["凿"] = { std_CN_TW, "literary variant" }, ["鋥"] = { CN, TW }, ["锃"] = { CN, TW }, ["扎"] = { std_CN, std_TW_var_CN }, ["紮"] = { std_CN, std_TW_var_CN }, ["吒"] = { CN, TW }, ["炸"] = { std_CN_TW, "nonstandard variant, common in Taiwan" }, ["奓"] = { CN, TW }, ["著"] = { std_CN, std_TW_var_CN }, ["着"] = { std_CN, std_TW_var_CN }, ["蜇"] = { CN, TW }, ["轍"] = { CN, TW }, ["辙"] = { CN, TW }, ["蟄"] = { CN, TW }, ["蛰"] = { CN, TW }, ["幀"] = { CN, TW }, ["帧"] = { CN, TW }, ["圳"] = { CN, TW }, ["掙"] = { CN, TW }, ["挣"] = { CN, TW }, ["諍"] = { CN, TW }, ["诤"] = { CN, TW }, ["知"] = { CN, TW }, ["脂"] = { std_CN_TW, "variant" }, ["质"] = { CN, TW }, ["質"] = { CN, TW }, ["掷"] = { CN, TW }, ["擲"] = { CN, TW }, ["挃"] = { CN, TW }, ["栉"] = { CN, TW }, ["櫛"] = { CN, TW }, ["中"] = { CN, TW }, ["謅"] = { CN, TW }, ["诌"] = { CN, TW }, ["驟"] = { CN, TW }, ["骤"] = { CN, TW }, ["軸"] = { std_CN_var_TW, std_TW }, ["轴"] = { std_CN_var_TW, std_TW }, ["舳"] = { std_CN_TW, var_TW }, ["築"] = { CN, TW }, ["筑"] = { CN, TW }, ["貯"] = { CN, TW }, ["贮"] = { CN, TW }, ["爪"] = { "literary", "vernacular" }, ["畷"] = { CN, TW }, ["拙"] = { CN, TW }, ["卓"] = { std_CN_TW, var_CN }, ["綜"] = { CN, TW }, ["综"] = { CN, TW }, ["縱"] = { CN, TW }, ["纵"] = { CN, TW }, ["鱒"] = { std_CN_TW, var_TW }, ["鳟"] = { std_CN_TW, var_TW }, } return export 1aelkwfpvmz5couhcpg60h9mzrqz1uw Modul:zh/data/cmn-hom/3 828 160417 628903 2024-11-06T15:57:37Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.list = { ["nàhǎn"] = { "吶喊", "納罕" }, ["nàhóng"] = { "納鴻", "那鴻" }, ["nàihé"] = { "奈何", "奈河" }, ["nǎixī"] = { "奶昔", "奶西" }, ["náncè"] = { "南側", "男廁", "難測" }, ["nánchāng"] = { "南昌", "男娼" }, ["nándào"] = { "難道", "難點" }, ["nánfāng"] = { "南方", "男方" }, ["nāngchuài"] = { "囊揣", "囊膪" }, ["nánjiāng"] = { "南疆", "南薑" }, ["...“ yozuvi orqali yangi sahifa yaratildi 628903 Scribunto text/plain local export = {} export.list = { ["nàhǎn"] = { "吶喊", "納罕" }, ["nàhóng"] = { "納鴻", "那鴻" }, ["nàihé"] = { "奈何", "奈河" }, ["nǎixī"] = { "奶昔", "奶西" }, ["náncè"] = { "南側", "男廁", "難測" }, ["nánchāng"] = { "南昌", "男娼" }, ["nándào"] = { "難道", "難點" }, ["nánfāng"] = { "南方", "男方" }, ["nāngchuài"] = { "囊揣", "囊膪" }, ["nánjiāng"] = { "南疆", "南薑" }, ["nánkǎluóláinà"] = { "南卡羅來納", "南卡羅萊納" }, ["nánrén"] = { "南人", "男人" }, ["nánsè"] = { "男色", "難色" }, ["nánshì"] = { "男士", "男式", "難事" }, ["nányáng"] = { "南洋", "南陽" }, ["nányuè"] = { "南嶽", "南越" }, ["nàoshì"] = { "鬧事", "鬧市" }, ["nǎoyán"] = { "腦炎", "腦癌" }, ["nèihán"] = { "內含", "內涵" }, ["nèishǐ"] = { "內使", "內室" }, ["nèishì"] = { "內侍", "內室" }, ["niándù"] = { "年度", "粘度", "黏度" }, ["niánjì"] = { "年紀", "年際" }, ["niánmò"] = { "年末", "粘膜", "黏膜" }, ["niánmó"] = { "粘膜", "黏膜" }, ["niánqīng"] = { "年輕", "年青" }, ["niántiē"] = { "粘貼", "黏貼" }, ["niántǔ"] = { "粘土", "黏土" }, ["niányè"] = { "年夜", "粘液", "黏液" }, ["niánzhe"] = { "粘著/粘着", "黏著/黏着" }, ["niánzhōng"] = { "年中", "年終" }, ["niǎoyǔ"] = { "鳥羽", "鳥語" }, ["nǐdìng"] = { "擬定", "擬訂" }, ["nǐdǒngde"] = { "你懂得", "你懂的" }, ["nièrú"] = { "囁嚅", "顳顬" }, ["nǐhé"] = { "擬合", "擬核" }, ["níkēxīyà"] = { "尼柯西亞", "尼科西亞" }, ["níkēxīyǎ"] = { "尼柯西亞", "尼科西亞" }, ["nǐmen"] = { "你們", "妳們", "祢們" }, ["níngliàn"] = { "凝練", "凝鍊" }, ["nìshuǐ"] = { "溺水", "逆水" }, ["niúdòu"] = { "牛斗", "牛痘" }, ["niújīn"] = { "牛津", "牛筋" }, ["niújiǔ"] = { "牛久", "牛酒" }, ["niúzǐ"] = { "牛仔", "牛子" }, ["nónggōng"] = { "農功", "農工" }, ["nóngwù"] = { "濃霧", "農務" }, ["nóngyàn"] = { "濃豔", "農諺" }, ["nóngzhuāng"] = { "濃妝", "農莊" }, ["nǚgōng"] = { "女工", "女紅" }, ["nǚshì"] = { "女士", "女式" }, ["nǚzhēn"] = { "女真", "女貞" }, ["nǚzhēnzǐ"] = { "女真子", "女貞子" }, ["ōuhuáng"] = { "歐鰉", "歐皇" }, ["pà'ěrmǎ"] = { "帕爾瑪", "帕爾馬" }, ["páidàng"] = { "排擋", "排檔" }, ["páidǎng"] = { "排擋", "排檔" }, ["páigǔ"] = { "排骨", "排鼓" }, ["páijià"] = { "排駕", "牌價" }, ["páixiè"] = { "排泄", "排洩" }, ["páiyìn"] = { "排印", "牌印" }, ["pángguāngyán"] = { "膀胱炎", "膀胱癌" }, ["pángǔ"] = { "盤古", "盤谷" }, ["pánjù"] = { "盤踞", "蟠據" }, ["pānyuán"] = { "攀援", "攀緣" }, ["pàobīng"] = { "炮兵", "砲兵" }, ["pàojī"] = { "炮擊", "炮機" }, ["pázi"] = { "筢子", "耙子" }, ["pèijiàn"] = { "佩劍", "配件" }, ["pèijiǎo"] = { "配腳", "配角" }, ["pèijué"] = { "配腳", "配角" }, ["pèizhì"] = { "配制", "配置", "配製" }, ["péizuì"] = { "賠罪", "陪罪" }, ["pěngyóu"] = { "捧油", "捧由" }, ["piànduàn"] = { "片斷", "片段" }, ["piānmù"] = { "片目", "篇目" }, ["piānpiān"] = { "偏偏", "翩翩" }, ["piànyán"] = { "片岩", "片言" }, ["piāobó"] = { "漂泊", "飄泊" }, ["piāofú"] = { "漂浮", "飄拂", "飄浮" }, ["piāolíng"] = { "嘌呤", "飄零" }, ["piāomiǎo"] = { "縹緲", "飄渺" }, ["piāoyáng"] = { "漂洋", "飄揚" }, ["piāoyí"] = { "漂移", "飄移" }, ["pīfù"] = { "批復", "批覆" }, ["pífūyán"] = { "皮膚炎", "皮膚癌" }, ["píjiàng"] = { "皮匠", "裨將" }, ["píjiǔ"] = { "啤酒", "皮酒" }, ["pīlì"] = { "劈歷", "披瀝", "霹靂" }, ["píndào"] = { "貧道", "頻道" }, ["píngbǎn"] = { "平板", "平版" }, ["píngchéng"] = { "平城", "平成" }, ["píngdìng"] = { "平定", "評定" }, ["píngfēn"] = { "平分", "評分" }, ["pínggū"] = { "平菇", "評估" }, ["píngguǒ"] = { "平果", "蘋果" }, ["pínghuà"] = { "平話", "評話" }, ["píngjià"] = { "平價", "瓶架", "評價" }, ["píngjù"] = { "平劇", "憑據", "評劇" }, ["píngshēng"] = { "平生", "平聲" }, ["píngshí"] = { "平實", "平時" }, ["píngtán"] = { "平潭", "評彈" }, ["píngwén"] = { "平文", "平紋" }, ["píngxìn"] = { "平信", "憑信" }, ["píngyì"] = { "平易", "評議" }, ["píngyuán"] = { "平原", "平圓" }, ["píngzhàng"] = { "屏障", "憑仗" }, ["píngzhuāng"] = { "平裝", "瓶裝" }, ["pǐnmíng"] = { "品名", "品茗" }, ["pǐnwèi"] = { "品位", "品味" }, ["pínyóu"] = { "貧油", "貧鈾" }, ["pípá"] = { "批把", "枇把", "枇杷", "琵琶" }, ["pīsà"] = { "批薩", "披薩" }, ["pīyuè"] = { "批閱", "披閱" }, ["pòfèi"] = { "破土", "破費" }, ["pòlì"] = { "破例", "魄力" }, ["pòmén"] = { "破門", "魄門" }, ["pú'ānsuān"] = { "脯氨酸", "脯胺酸" }, ["pùguāng"] = { "暴光", "曝光" }, ["pǔjí"] = { "普及", "普吉" }, ["pùlù"] = { "暴露", "曝露" }, ["pútáo"] = { "葡萄", "蒲桃" }, ["púzhí"] = { "樸直", "樸質" }, ["qiánbì"] = { "前臂", "潛避", "錢幣" }, ["qiánbù"] = { "前部", "潛步" }, ["qiánchéng"] = { "前程", "虔誠" }, ["qiānchéng"] = { "牽成", "謙誠" }, ["qiándài"] = { "前代", "錢袋" }, ["qiángjiǎo"] = { "牆腳", "牆角" }, ["qiángōng"] = { "前功", "鉗工" }, ["qiángwéi"] = { "牆帷", "薔薇" }, ["qiánjìn"] = { "前進", "淺近" }, ["qiānjīn"] = { "千斤", "千金" }, ["qiánlì"] = { "前例", "潛力" }, ["qiānlián"] = { "牽聯", "牽連" }, ["qiánliáng"] = { "前涼", "錢糧" }, ["qiánlièxiànyán"] = { "前列腺炎", "前列腺癌" }, ["qiánqī"] = { "前妻", "前期" }, ["qiánqiáo"] = { "前橋", "前鞽" }, ["qiānrù"] = { "嵌入", "簽入", "遷入" }, ["qiànshēn"] = { "欠伸", "欠身" }, ["qiánshì"] = { "前世", "前事" }, ["qiǎnshuǐ"] = { "淺水", "潛水" }, ["qiántí"] = { "前提", "前蹄" }, ["qiántú"] = { "前途", "錢途" }, ["qiánwéi"] = { "前桅", "犍為" }, ["qiánxì"] = { "前夕", "前戲" }, ["qiánxīn"] = { "潛心", "虔心" }, ["qiányán"] = { "前沿", "前言" }, ["qiányè"] = { "前夜", "前葉" }, ["qiánzhào"] = { "前兆", "前趙" }, ["qiánzhì"] = { "前志", "前置", "潛質", "鉗制" }, ["qiānzì"] = { "簽字", "鉛字" }, ["qiáomài"] = { "喬麥", "蕎麥" }, ["qiàomén"] = { "撬門", "竅門" }, ["qiāoqiāo"] = { "悄悄", "敲敲" }, ["qíbīng"] = { "奇兵", "旗兵", "騎兵" }, ["qǐbù"] = { "豈不", "起步" }, ["qǐchéng"] = { "啟程", "起程" }, ["qícì"] = { "其次", "齊次" }, ["qídài"] = { "期待", "臍帶" }, ["qǐdòng"] = { "啟動", "起動" }, ["qièjì"] = { "切忌", "切記" }, ["qièqièsīyǔ"] = { "切切私語", "竊竊私語" }, ["qièshēn"] = { "切身", "妾身" }, ["qǐfēi"] = { "豈非", "起飛" }, ["qìfēn"] = { "氣分", "氣氛" }, ["qíguān"] = { "亓官", "奇觀" }, ["qìguǎn"] = { "企管", "氣管" }, ["qìhuà"] = { "企劃", "氣話", "汽化" }, ["qìjī"] = { "契機", "汽機", "氣機"}, ["qǐjí"] = { "企及", "起急" }, ["qíjì"] = { "奇跡", "騏驥" }, ["qǐjià"] = { "起價", "起駕" }, ["qíjiān"] = { "其間", "期間" }, ["qíjiàn"] = { "旗艦", "歧見" }, ["qíjǐng"] = { "奇景", "騎警" }, ["qìjù"] = { "器具", "契據" }, ["qǐlì"] = { "綺麗", "起立" }, ["qìliàng"] = { "器量", "氣量" }, ["qílín"] = { "淇淋", "麒麐", "麒麟" }, ["qīlíng"] = { "欺凌", "欺陵" }, ["qǐmáo"] = { "起毛", "起錨" }, ["qīnfù"] = { "親父", "親赴" }, ["qīngchá"] = { "清查", "清茶" }, ["qīngcháo"] = { "傾巢", "清朝" }, ["qīngchéng"] = { "傾城", "清澄" }, ["qīngcuì"] = { "清脆", "青翠" }, ["qīngdài"] = { "清代", "青黛" }, ["qīngdàn"] = { "氫彈", "清淡" }, ["qīngdǎo"] = { "傾倒", "青島" }, ["qīngdí"] = { "清滌", "輕敵" }, ["qīngfēng"] = { "清風", "輕風" }, ["qīngfù"] = { "傾覆", "輕賦" }, ["qīngfú"] = { "輕浮", "青蚨" }, ["qínghuà"] = { "情話", "氰化" }, ["qīnghuà"] = { "氫化", "清化" }, ["qīngjiàn"] = { "氫鍵", "輕健", "輕賤" }, ["qīngjiāo"] = { "青椒", "青鮫" }, ["qíngjié"] = { "情節", "情結" }, ["qīngjié"] = { "清潔", "輕捷" }, ["qīngjīn"] = { "清津", "青筋" }, ["qīngjìng"] = { "清淨", "清靜" }, ["qǐngkè"] = { "請客", "頃刻" }, ["qīngkōng"] = { "清空", "青空" }, ["qīnglài"] = { "清瀨", "青睞" }, ["qīngliàng"] = { "清亮", "輕量" }, ["qīngméi"] = { "青梅", "青黴" }, ["qíngmiàn"] = { "情面", "黥面" }, ["qīngmù"] = { "傾慕", "青木" }, ["qīngqīng"] = { "輕輕", "青青" }, ["qīngsè"] = { "青澀", "青色" }, ["qīngshān"] = { "青山", "青衫" }, ["qīngshāng"] = { "清商", "輕傷" }, ["qīngshēng"] = { "輕生", "輕聲" }, ["qíngshì"] = { "情事", "情勢" }, ["qīngsōng"] = { "輕鬆", "青松" }, ["qīngtán"] = { "傾談", "清談" }, ["qíngtiān"] = { "擎天", "晴天" }, ["qīngtóng"] = { "青桐", "青銅" }, ["qīngwéi"] = { "傾危", "輕微" }, ["qīngwēi"] = { "傾危", "輕微" }, ["qīngxiāng"] = { "清香", "青箱", "青葙" }, ["qīngxīn"] = { "傾心", "清新" }, ["qíngyì"] = { "情意", "情義", "情誼" }, ["qīngyì"] = { "清議", "清逸", "輕易" }, ["qīngyīn"] = { "清音", "輕音" }, ["qīngyú"] = { "青魚", "鯖魚" }, ["qīngzhōu"] = { "清州", "輕舟", "青州" }, ["qīngzhuāng"] = { "輕妝", "輕裝" }, ["qīngzhuó"] = { "清濁", "清酌" }, ["qīnlüè"] = { "侵掠", "侵略" }, ["qínniǎo"] = { "琴鳥", "禽鳥" }, ["qióngqióng"] = { "惸惸", "煢煢" }, ["qīqīchāchā"] = { "嘁嘁喳喳", "嘁嘁嚓嚓" }, ["qǐqiú"] = { "乞求", "企求" }, ["qìqiú"] = { "企求", "氣球" }, ["qíqiú"] = { "期求", "祈求" }, ["qíquán"] = { "期權", "齊全" }, ["qírén"] = { "奇人", "旗人" }, ["qīshì"] = { "七事", "妻室" }, ["qǐshì"] = { "乞士", "啟事", "啟示", "綺室", "豈是", "起事", "起勢", "起士", "起誓" }, ["qìshì"] = { "器識", "棄世", "棄市", "氣勢", "氣室" }, ["qìshí"] = { "器識", "氣實" }, ["qíshì"] = { "奇事", "奇士", "棋士", "棋式", "歧視", "騎士" }, ["qíshǐ"] = { "祈使", "臍屎" }, ["qíshī"] = { "臍濕", "騎師" }, ["qíshǒu"] = { "旗手", "棋手", "騎手" }, ["qìshù"] = { "槭樹", "氣數" }, ["qǐsī"] = { "綺思", "起司" }, ["qítán"] = { "奇談", "棋壇" }, ["qiūbǐtè"] = { "丘比特", "邱比特" }, ["qiúrén"] = { "囚人", "求人" }, ["qiúshì"] = { "囚室", "求仕" }, ["qiúyī"] = { "求醫", "球衣" }, ["qiúyuán"] = { "求援", "球員" }, ["qíwàng"] = { "期望", "祈望" }, ["qīxī"] = { "七夕", "棲息" }, ["qìxí"] = { "憩息", "氣息" }, ["qìxī"] = { "憩息", "氣息" }, ["qìxiàng"] = { "氣相", "氣象" }, ["qǐyè"] = { "企業", "起夜" }, ["qíyì"] = { "奇異", "棋藝", "歧異", "歧義" }, ["qìyòng"] = { "器用", "棄用" }, ["qǐyòng"] = { "啟用", "起用" }, ["qíyú"] = { "其餘", "旗魚" }, ["qìyǔ"] = { "器宇", "氣宇" }, ["qíyù"] = { "埼玉", "奇遇" }, ["qìyùn"] = { "氣運", "氣韻" }, ["qìyǔxuān'áng"] = { "器宇軒昂", "氣宇軒昂" }, ["qízhì"] = { "奇志", "旗幟" }, ["qìzhì"] = { "棄置", "氣質" }, ["qìzhí"] = { "棄職", "氣質" }, ["qǐzhǐ"] = { "豈止", "起止" }, ["qízhōng"] = { "其中", "期中" }, ["quáncháng"] = { "全場", "全長" }, ["quánjí"] = { "全集", "拳擊" }, ["quánjú"] = { "全局", "蜷局" }, ["quánlì"] = { "全力", "權利", "權力" }, ["quánnéng"] = { "全能", "權能" }, ["quánquán"] = { "全權", "拳拳" }, ["quánshēn"] = { "全身", "拳參" }, ["quánshèng"] = { "全勝", "全盛" }, ["quánshí"] = { "全食", "泉石" }, ["quánshì"] = { "權勢", "詮釋" }, ["quánshù"] = { "全數", "拳術", "權術" }, ["quánxiàn"] = { "全線", "權限" }, ["quánxīn"] = { "全心", "全新" }, ["quányù"] = { "全域", "權欲", "痊癒" }, ["quányuán"] = { "全員", "泉源" }, ["quánzhōu"] = { "全州", "泉州" }, ["qūchóng"] = { "蛆蟲", "驅蟲" }, ["qūchú"] = { "祛除", "驅除" }, ["quèshì"] = { "卻是", "確是" }, ["qūfù"] = { "曲阜", "趨赴", "趨附" }, ["qūhuà"] = { "區劃", "區畫" }, ["qūjū"] = { "佉苴", "曲裾" }, ["qūshēn"] = { "屈伸", "屈身" }, ["qùshì"] = { "去世", "去勢", "覷視", "趣事" }, ["qūshì"] = { "趨侍", "趨勢" }, ["qùxiàng"] = { "去向", "趣向" }, ["qūyuàn"] = { "曲院", "麴院" }, ["qūzhé"] = { "屈折", "曲折" }, ["rénchén"] = { "人臣", "壬辰" }, ["rénjūn"] = { "人君", "人均" }, ["rènmìng"] = { "任命", "認命" }, ["rénrén"] = { "人人", "仁人" }, ["rénshēn"] = { "人參", "人身", "壬申" }, ["rénshēng"] = { "人生", "人聲" }, ["rénshì"] = { "人世", "人事", "人勢", "人士", "人市", "人氏" }, ["rénshù"] = { "人數", "仁術" }, ["rènwéi"] = { "任為", "認為" }, ["rénxiàng"] = { "人像", "人相" }, ["rénxīn"] = { "人心", "仁心" }, ["rénxíng"] = { "人形", "人行" }, ["rènxìng"] = { "任性", "韌性" }, ["rényì"] = { "人意", "仁義" }, ["rényuán"] = { "人員", "人緣" }, ["rènzhēn"] = { "紉針", "認真" }, ["rénzhèng"] = { "人證", "仁政" }, ["rénzhì"] = { "人治", "人質" }, ["rénzǐ"] = { "人子", "壬子" }, ["rèzhōng"] = { "熱中", "熱衷" }, ["rìcháng"] = { "日場", "日常" }, ["rìlì"] = { "日曆", "日立" }, ["rìshí"] = { "日蝕", "日食" }, ["rìyuán"] = { "日元", "日圓" }, ["róngchéng"] = { "容城", "容成", "榕城", "榮城", "榮成", "蓉城", "融城" }, ["róngguāng"] = { "容光", "榮光" }, ["rónghé"] = { "融合", "融和" }, ["rónghuà"] = { "溶化", "熔化", "融化" }, ["rónghuì"] = { "融匯", "融會" }, ["róngjiě"] = { "溶解", "熔解", "融解" }, ["róngróng"] = { "熔融", "茸茸" }, ["róngrù"] = { "榮辱", "溶入", "融入" }, ["róngyán"] = { "容顏", "溶岩", "熔岩" }, ["róngyì"] = { "容易", "溶液" }, ["róngzī"] = { "容姿", "融資" }, ["ròudòukòu"] = { "肉豆寇", "肉豆蔻" }, ["ruǎn'è"] = { "軟顎", "軟齶" }, ["ruǎn'èyīn"] = { "軟顎音", "軟齶音" }, ["rùgǔ"] = { "入股", "入骨" }, ["ruìlì"] = { "瑞麗", "銳利" }, ["rùjì"] = { "入寂", "入繼" }, ["rùjiān"] = { "入監", "入間" }, ["rǔjiāo"] = { "乳交", "乳膠" }, ["rúléiguàn'ěr"] = { "如雷灌耳", "如雷貫耳" }, ["rúléiguàněr"] = { "如雷灌耳", "如雷貫耳" }, ["ruòshì"] = { "弱勢", "弱視", "若是" }, ["rùshì"] = { "入世", "入仕", "入室" }, ["rúshù"] = { "儒術", "如數" }, ["rùwéi"] = { "入圍", "入微", "入闈" }, ["rǔxiànyán"] = { "乳腺炎", "乳腺癌" }, ["rùyù"] = { "入浴", "入獄" }, ["rǔzhī"] = { "乳汁", "乳脂" }, ["sàbǎo"] = { "薩保", "薩寶" }, ["sādàn"] = { "撒但", "撒旦" }, ["sādànjiào"] = { "撒但教", "撒旦教" }, ["sàitè"] = { "塞特", "賽特" }, ["sàitèquǎn"] = { "塞特犬", "賽特犬" }, ["sǎlèi"] = { "灑泪", "灑淚" }, ["sānbā"] = { "三八", "三巴" }, ["sànbù"] = { "散佈", "散步" }, ["sàngshī"] = { "喪失", "喪屍" }, ["sāngzǐ"] = { "桑子", "桑梓" }, ["sānjiàn"] = { "三鍵", "叁鍵" }, ["sānwéi"] = { "三圍", "三維" }, ["sànyì"] = { "散佚", "散逸" }, ["sānyīng"] = { "三英", "三鷹" }, ["sānyuán"] = { "三元", "三原" }, ["sǎomiáo"] = { "掃描", "掃瞄" }, ["sè'ānsuān"] = { "色氨酸", "色胺酸" }, ["sēngjiā"] = { "僧伽", "僧家" }, ["sèzé"] = { "塞責", "色澤" }, ["shādiē"] = { "沙嗲", "沙爹" }, ["shāfā"] = { "殺伐", "沙發" }, ["shāhé"] = { "沙河", "沙盒" }, ["shājiāng"] = { "沙薑", "砂漿" }, ["shālā"] = { "沙拉", "莎拉" }, ["shālì"] = { "沙瀝", "沙礫", "沙粒", "莎麗" }, ["shālóng"] = { "沙龍", "紗籠" }, ["shāmò"] = { "沙漠", "砂漠" }, ["shànbiàn"] = { "善變", "善辯", "嬗變" }, ["shānchú"] = { "刪除", "芟除" }, ["shàndài"] = { "善待", "疝帶" }, ["shāndiān"] = { "山巔", "煽顛" }, ["shāndòng"] = { "山洞", "扇動", "煽動" }, ["shānfēng"] = { "山峰", "山風", "扇風" }, ["shàngbǎng"] = { "上榜", "上綁" }, ["shàngbì"] = { "上幣", "上臂" }, ["shàngbiāo"] = { "上標", "上膘" }, ["shàngchéng"] = { "上乘", "上城" }, ["shàngchuán"] = { "上傳", "上船" }, ["shàngdì"] = { "上帝", "上第" }, ["shàngdiào"] = { "上吊", "上調" }, ["shāngfēng"] = { "傷風", "商風" }, ["shàngfēng"] = { "上峰", "上風" }, ["shàngfù"] = { "上覆", "尚父" }, ["shànghǎo"] = { "上好", "尚好" }, ["shānghào"] = { "傷耗", "傷號", "商號" }, ["shànghuán"] = { "上環", "上鬟" }, ["shàngjí"] = { "上級", "上集" }, ["shàngjiāng"] = { "上江", "上漿" }, ["shàngjiāo"] = { "上交", "上焦", "上膠" }, ["shàngjiè"] = { "上屆", "上界" }, ["shàngjìn"] = { "上勁", "上進" }, ["shàngjìng"] = { "上勁", "上鏡" }, ["shàngkè"] = { "上客", "上課" }, ["shànglóu"] = { "上僂", "上樓" }, ["shànglù"] = { "上路", "上陸" }, ["shāngluò"] = { "商洛", "商雒" }, ["shāngrén"] = { "傷人", "商人" }, ["shàngshèng"] = { "上乘", "上聖" }, ["shàngshì"] = { "上世", "上士", "上市" }, ["shāngshì"] = { "傷勢", "商事" }, ["shàngshǒu"] = { "上手", "上首" }, ["shàngshū"] = { "上書", "上疏", "尚書" }, ["shàngshù"] = { "上疏", "上述" }, ["shàngsù"] = { "上溯", "上訴" }, ["shàngtáng"] = { "上堂", "上膛" }, ["shàngwèi"] = { "上位", "上味", "上尉", "尚未" }, ["shàngwén"] = { "上文", "上聞" }, ["shàngwǔ"] = { "上午", "尚武" }, ["shàngxiàn"] = { "上線", "上限" }, ["shàngxiàng"] = { "上像", "上相" }, ["shàngxiáng"] = { "上庠", "上詳" }, ["shàngxíng"] = { "上刑", "上行" }, ["shàngyǎn"] = { "上演", "上眼" }, ["shàngyè"] = { "上夜", "上謁" }, ["shàngyī"] = { "上衣", "上醫" }, ["shàngyóu"] = { "上油", "上游" }, ["shàngyuàn"] = { "上苑", "上院" }, ["shàngyuè"] = { "上月", "上越" }, ["shàngzài"] = { "上載", "尚在" }, ["shàngzhì"] = { "上智", "上知", "尚志" }, ["shàngzhuāng"] = { "上妝", "上裝" }, ["shàngzuò"] = { "上坐", "上座" }, ["shānhújiāo"] = { "山胡椒", "珊瑚礁" }, ["shānhuò"] = { "山貨", "煽惑" }, ["shānjī"] = { "山積", "山雞" }, ["shānlù"] = { "山路", "山鹿", "山麓" }, ["shànshì"] = { "善事", "善士" }, ["shānwèi"] = { "羶味", "膻味" }, ["shānyáng"] = { "山羊", "山陽" }, ["shànyì"] = { "善意", "訕議" }, ["shànyú"] = { "善於", "鱔魚" }, ["shāohòu"] = { "稍候", "稍後" }, ["shāohuà"] = { "燒化", "捎話" }, ["sháozi"] = { "勺子", "杓子", "韶子" }, ["shārén"] = { "殺人", "砂仁" }, ["shāshēn"] = { "殺身", "沙參" }, ["shāsī"] = { "沙司", "沙斯" }, ["shāzhōu"] = { "沙州", "沙洲" }, ["shèdelán"] = { "設得蘭", "設德蘭" }, ["shèdélánqúndǎo"] = { "設得蘭群島", "設德蘭群島" }, ["shèdelánrén"] = { "設得蘭人", "設德蘭人" }, ["shèjí"] = { "射擊", "涉及" }, ["shèjì"] = { "社稷", "設計" }, ["shèlì"] = { "涉歷", "猞猁", "舍利", "設立" }, ["shèliè"] = { "射獵", "涉獵" }, ["shěnchá"] = { "審察", "審查" }, ["shēncháng"] = { "伸長", "深長", "身長" }, ["shěndìng"] = { "審定", "審訂" }, ["shēnfèn"] = { "身份", "身分" }, ["shēngbiàn"] = { "生變", "聲辯" }, ["shèngdé"] = { "盛德", "聖德" }, ["shèngdì"] = { "勝地", "聖地", "聖諦" }, ["shèngdiǎn"] = { "盛典", "聖典" }, ["shēngēng"] = { "深更", "深耕" }, ["shèngfù"] = { "勝負", "聖父" }, ["shèngjié"] = { "勝捷", "聖潔" }, ["shèngjǐng"] = { "勝景", "盛景" }, ["shēngjiù"] = { "生就", "生路" }, ["shēnglǐ"] = { "牲禮", "生理" }, ["shèngmǎlìnuò"] = { "聖馬利諾", "聖馬力諾" }, ["shèngmíng"] = { "盛名", "聖明" }, ["shēngmíng"] = { "聲名", "聲明" }, ["shèngmǔ'mǎlìyà"] = { "聖母瑪利亞", "聖母瑪麗亞" }, ["shèngmǔ'mǎlìyǎ"] = { "聖母瑪利亞", "聖母瑪麗亞" }, ["shēngmǔ"] = { "生母", "聲母" }, ["shèngmǔmǎlìyà"] = { "聖母瑪利亞", "聖母瑪麗亞" }, ["shèngmǔmǎlìyǎ"] = { "聖母瑪利亞", "聖母瑪麗亞" }, ["shēngnà"] = { "聲吶", "聲納" }, ["shēngpíng"] = { "升平", "生平" }, ["shēngqì"] = { "生氣", "聲氣" }, ["shēngrèn"] = { "勝任", "升任" }, ["shēngsè"] = { "生澀", "生色", "聲色" }, ["shēngshì"] = { "生事", "聲勢" }, ["shèngshì"] = { "盛世", "盛事" }, ["shèngtáng"] = { "盛唐", "聖堂" }, ["shèngwénsēnjígéruìnàdīng"] = { "聖文森及格瑞納丁", "聖文森及格瑞那丁" }, ["shēngxí"] = { "生息", "聲息" }, ["shēngxī"] = { "生息", "聲息" }, ["shēngxiào"] = { "生效", "生肖" }, ["shēngxiāo"] = { "生肖", "笙簫" }, ["shèngyú"] = { "剩餘", "勝於" }, ["shēngyù"] = { "生育", "聲域", "聲譽" }, ["shēngyuán"] = { "生員", "聲援", "聲源", "生源" }, ["shèngzhàng"] = { "勝仗", "聖障" }, ["shēngzhí"] = { "升值", "升職", "生殖" }, ["shēngzǐ"] = { "生子", "聲子" }, ["shēnhòu"] = { "深厚", "身後" }, ["shénhuà"] = { "神化", "神話" }, ["shénjīng"] = { "神京", "神經" }, ["shénmiào"] = { "神妙", "神廟" }, ["shēnmìngjì"] = { "申命紀", "申命記" }, ["shénqì"] = { "神器", "神氣" }, ["shénqí"] = { "神奇", "神祇" }, ["shēnrù"] = { "伸入", "深入" }, ["shēnshēn"] = { "深深", "莘莘" }, ["shēnshì"] = { "紳士", "身世" }, ["shēnshǒu"] = { "伸手", "身手" }, ["shēnwén"] = { "申文", "申聞" }, ["shēnxǐng"] = { "深省", "深醒" }, ["shènyán"] = { "腎炎", "腎癌" }, ["shényì"] = { "神意", "神異" }, ["shēnyuān"] = { "深淵", "申冤" }, ["shēnyùn"] = { "身孕", "身韻" }, ["shénzhì"] = { "神志", "神智" }, ["shèshǔ"] = { "社鼠", "麝鼠" }, ["shèxiàn"] = { "射線", "歙縣" }, ["shèyǐng"] = { "射影", "攝影" }, ["shíbǎn"] = { "石板", "石版" }, ["shíběn"] = { "石本", "蝕本" }, ["shìbì"] = { "世弊", "勢必" }, ["shíbì"] = { "時弊", "石壁" }, ["shìbié"] = { "士別", "識別" }, ["shícái"] = { "石材", "食材" }, ["shìcháng"] = { "市場", "試嘗", "試場" }, ["shìchǎng"] = { "市場", "試場" }, ["shícháng"] = { "時常", "時長" }, ["shǐchū"] = { "使出", "始初" }, ["shìchuān"] = { "市川", "試穿" }, ["shìcóng"] = { "侍從", "適從" }, ["shídài"] = { "時代", "石埭", "石黛", "食帶" }, ["shìdé"] = { "世德", "識得" }, ["shìde"] = { "似的", "是的" }, ["shīdé"] = { "失德", "師德" }, ["shídé"] = { "拾得", "識得" }, ["shīdì"] = { "失地", "師弟", "濕地" }, ["shìdiǎn"] = { "事典", "視點", "試點" }, ["shìfēi"] = { "是非", "飾非" }, ["shífēn"] = { "十分", "時分" }, ["shìfèng"] = { "事奉", "侍奉" }, ["shīfu"] = { "師傅", "師父" }, ["shígé"] = { "時隔", "食閣" }, ["shìgōng"] = { "事工", "試工" }, ["shīgōng"] = { "師公", "施工" }, ["shìgù"] = { "世故", "事故" }, ["shìguān"] = { "事關", "士官" }, ["shǐguān"] = { "史官", "史觀" }, ["shìhǎo"] = { "世好", "示好" }, ["shìhào"] = { "嗜好", "謚號" }, ["shìhé"] = { "噬嗑", "適合" }, ["shìhòu"] = { "事後", "侍候" }, ["shíhuà"] = { "實話", "石化" }, ["shǐhuáng"] = { "始皇", "史皇", "屎黃" }, ["shìjì"] = { "世紀", "事濟", "事蹟", "試劑" }, ["shìjí"] = { "事急", "市集" }, ["shìjī"] = { "事機", "事蹟" }, ["shǐjì"] = { "史記", "史跡" }, ["shíjī"] = { "實機", "時機", "石雞" }, ["shíjì"] = { "實際", "時計" }, ["shìjiā"] = { "世家", "釋迦" }, ["shìjià"] = { "事假", "市價", "試駕" }, ["shìjiān"] = { "世間", "適間", "視姦" }, ["shíjiàn"] = { "實踐", "石箭", "識見" }, ["shìjiè"] = { "世界", "事界", "視界" }, ["shíjiē"] = { "石階", "食街" }, ["shìjièjìlù"] = { "世界紀錄", "世界記錄" }, ["shījīng"] = { "失驚", "詩經" }, ["shìjuàn"] = { "試卷", "釋卷" }, ["shìjué"] = { "視覺", "試掘" }, ["shíkè"] = { "時刻", "石刻", "蝕刻", "食客" }, ["shìlì"] = { "事例", "侍立", "勢利", "勢力", "市立", "示例", "視力", "釋例" }, ["shìlǐ"] = { "事理", "市里" }, ["shīlǐ"] = { "失禮", "施禮" }, ["shílì"] = { "實例", "實力" }, ["shǐliào"] = { "史料", "始料" }, ["shíliào"] = { "石料", "食料" }, ["shíliú"] = { "時流", "石榴" }, ["shīlùlù"] = { "濕淥淥", "濕漉漉" }, ["shìlùn"] = { "世論", "試論" }, ["shìmiàn"] = { "世面", "市面", "識面" }, ["shímián"] = { "石棉", "石綿" }, ["shìmín"] = { "士民", "市民" }, ["shímò"] = { "石墨", "石磨" }, ["shìnèi"] = { "室內", "市內" }, ["shìnǚ"] = { "仕女", "侍女", "士女", "室女" }, ["shípǔ"] = { "食譜", "識譜" }, ["shìpǔ"] = { "氏譜", "識譜" }, ["shíqī"] = { "十七", "時期" }, ["shíqì"] = { "石器", "食器" }, ["shǐqián"] = { "使錢", "史前" }, ["shìqiè"] = { "侍妾", "適切" }, ["shìqíng"] = { "世情", "事情" }, ["shìqù"] = { "拭去", "識趣", "逝去" }, ["shìrén"] = { "世人", "士人", "示人", "使人" }, ["shìrèn"] = { "識認", "適任" }, ["shìshēn"] = { "士紳", "試身" }, ["shīshēng"] = { "失聲", "師生" }, ["shìshì"] = { "世世", "世事", "事事", "事勢", "筮仕", "視事", "逝世" }, ["shìshí"] = { "事實", "侍食", "嗜食", "是時", "試食", "適時" }, ["shǐshí"] = { "史實", "矢石" }, ["shìshī"] = { "士師", "誓師" }, ["shīshì"] = { "失事", "失勢", "失恃", "師事", "施事" }, ["shīshí"] = { "失實", "失時", "施食", "蓍實" }, ["shíshì"] = { "實事", "實是", "時世", "時事", "時勢", "時式", "石室" }, ["shíshí"] = { "實實", "實時", "時時", "食時" }, ["shíshī"] = { "實施", "石獅" }, ["shíshǐ"] = { "石室", "石屎", "食始" }, ["shīshǒu"] = { "失守", "失手", "屍首" }, ["shíshù"] = { "實數", "時數" }, ["shìsūn"] = { "世孫", "士孫" }, ["shìtài"] = { "世態", "事態" }, ["shítáng"] = { "食堂", "食糖" }, ["shìtóu"] = { "事頭", "勢頭" }, ["shìtú"] = { "仕途", "視圖", "試圖" }, ["shìwèi"] = { "世衛", "侍衛" }, ["shìwéi"] = { "室韋", "式微", "視為" }, ["shìwēi"] = { "式微", "示威" }, ["shíwěi"] = { "石葦", "石韋" }, ["shìwù"] = { "世務", "事務", "事物", "飾物" }, ["shíwù"] = { "什物", "實務", "實物", "拾物", "時務", "食物" }, ["shīwù"] = { "失物", "失誤" }, ["shíxiàn"] = { "實現", "時限" }, ["shìxiàng"] = { "事項", "事象", "識相" }, ["shíxiàng"] = { "石像", "識相" }, ["shīxiào"] = { "失效", "失笑" }, ["shíxiào"] = { "實效", "時效" }, ["shíxīn"] = { "實心", "時新", "時薪" }, ["shíxíng"] = { "實行", "石刑" }, ["shīxué"] = { "失學", "詩學" }, ["shìyàn"] = { "勢焰", "試驗" }, ["shíyàn"] = { "十堰", "實驗" }, ["shìyǎn"] = { "試演", "飾演" }, ["shíyán"] = { "食言", "食鹽" }, ["shìyàng"] = { "式樣", "試樣" }, ["shíyànshì"] = { "實驗室", "實驗式" }, ["shìyè"] = { "世業", "事業" }, ["shíyè"] = { "實業", "時夜" }, ["shìyě"] = { "是也", "視野" }, ["shìyī"] = { "世醫", "試衣" }, ["shìyí"] = { "事宜", "適宜", "釋疑" }, ["shíyì"] = { "十億", "實意" }, ["shīyì"] = { "失意", "失憶", "詩意" }, ["shíyí"] = { "拾遺", "時宜", "食宜" }, ["shìyì"] = { "示意", "視譯", "釋義" }, ["shìyìng"] = { "侍應", "適應" }, ["shíyòng"] = { "實用", "食用" }, ["shìyòng"] = { "試用", "適用" }, ["shíyóu"] = { "石油", "食油" }, ["shíyuán"] = { "石原", "石垣" }, ["shízhèng"] = { "實症", "實證", "時政" }, ["shìzhèng"] = { "市政", "是正" }, ["shīzhì"] = { "失志", "失智" }, ["shízhí"] = { "實質", "時值" }, ["shízhì"] = { "實質", "時制" }, ["shìzhì"] = { "市制", "試製" }, ["shìzhōng"] = { "侍中", "適中" }, ["shìzhǔ"] = { "世主", "事主" }, ["shīzhǔ"] = { "失主", "施主" }, ["shízhù"] = { "石柱", "食住" }, ["shìzǐ"] = { "世子", "士子", "釋子" }, ["shízì"] = { "十字", "識字" }, ["shīzi"] = { "獅子", "蝨子" }, ["shìzú"] = { "世族", "士卒", "氏族" }, ["shǒucè"] = { "手冊", "手策" }, ["shǒuchuàng"] = { "手創", "首創" }, ["shǒufǎ"] = { "守法", "手法" }, ["shǒufù"] = { "首付", "首富" }, ["shǒugōng"] = { "守宮", "手工", "首功" }, ["shǒugǔ"] = { "守谷", "手骨", "手鼓" }, ["shòuhuì"] = { "受惠", "受賄" }, ["shōuhuò"] = { "收穫", "收貨" }, ["shǒujì"] = { "手記", "首季" }, ["shōují"] = { "收籍", "收集" }, ["shòujiǎng"] = { "受獎", "授獎" }, ["shòujīng"] = { "受精", "受驚", "授精" }, ["shòulǐ"] = { "受理", "壽禮" }, ["shōuliàn"] = { "收斂", "收殮" }, ["shòumiàn"] = { "壽麵", "獸面" }, ["shòumìng"] = { "受命", "壽命", "授命" }, ["shòuquán"] = { "受權", "授權" }, ["shòurǔ"] = { "受辱", "授乳" }, ["shǒushì"] = { "守勢", "手勢", "首事", "首飾" }, ["shōushì"] = { "收市", "收視" }, ["shóushì"] = { "熟視", "熟識" }, ["shǒuwèi"] = { "守衛", "首位" }, ["shǒuxiàng"] = { "手相", "首相" }, ["shǒuxìn"] = { "守信", "手信" }, ["shòuxíng"] = { "受刑", "獸行" }, ["shòuyè"] = { "受業", "授業" }, ["shǒuyè"] = { "守夜", "守業", "首頁" }, ["shòuyì"] = { "受益", "授意" }, ["shòuyī"] = { "壽衣", "獸醫" }, ["shǒuyì"] = { "手藝", "首邑" }, ["shòuyǔ"] = { "授予", "授與" }, ["shǒuzhá"] = { "手札", "手閘" }, ["shǒuzhǎng"] = { "手掌", "首長" }, ["shǒuzhàng"] = { "手杖", "手帳" }, ["shòuzhì"] = { "受制", "受質" }, ["shǒuzhǐ"] = { "手指", "手紙" }, ["shuàixiān"] = { "帥先", "率先" }, ["shuāngchéng"] = { "雙城", "雙成" }, ["shuāngshēng"] = { "雙生", "雙聲" }, ["shūchéng"] = { "書城", "舒城" }, ["shùdí"] = { "樹敵", "豎笛" }, ["shūhū"] = { "倏忽", "疏忽" }, ["shūhuǎn"] = { "紓緩", "舒緩" }, ["shuǐchéng"] = { "水城", "水程" }, ["shuǐdào"] = { "水稻", "水道" }, ["shuǐjǐng"] = { "水井", "水景", "水警" }, ["shuǐlì"] = { "水利", "水力" }, ["shuǐlù"] = { "水路", "水陸" }, ["shuǐpào"] = { "水泡", "水炮", "水疱" }, ["shuǐpíng"] = { "水平", "水瓶" }, ["shuǐqì"] = { "水氣", "水汽" }, ["shuǐtǎ"] = { "水塔", "水獺" }, ["shuǐwén"] = { "水文", "水紋" }, ["shuǐyuán"] = { "水原", "水源" }, ["shuǐzǎo"] = { "水藻", "水蚤" }, ["shuǐzhì"] = { "水蛭", "水質" }, ["shūjì"] = { "叔季", "書記" }, ["shūjiā"] = { "書家", "輸家" }, ["shūlǐ"] = { "梳理", "疏理" }, ["shǔlǐ"] = { "署理", "鼠李" }, ["shùlì"] = { "樹立", "豎立" }, ["shùmù"] = { "數目", "樹木" }, ["shùnbiàn"] = { "順便", "順變" }, ["shúnǚ"] = { "淑女", "熟女" }, ["shuōcí"] = { "說詞", "說辭" }, ["shuōdào"] = { "說到", "說道" }, ["shuòguǒ"] = { "碩果", "蒴果" }, ["shǔqī"] = { "暑期", "鼠蹊" }, ["shùrén"] = { "庶人", "樹人" }, ["shūshì"] = { "書市", "舒適" }, ["shúshí"] = { "熟識", "熟食" }, ["shūxiě"] = { "抒寫", "書寫", "輸血" }, ["shùyīn"] = { "樹蔭", "樹陰" }, ["shùyǔ"] = { "術語", "述語" }, ["shūzhǎn"] = { "書展", "舒展" }, ["shùzhí"] = { "數值", "豎直", "述職" }, ["shùzhī"] = { "樹枝", "樹汁", "樹脂" }, ["shùzǐ"] = { "庶子", "豎子" }, ["sī'ānsuān"] = { "絲氨酸", "絲胺酸" }, ["sībiàn"] = { "思變", "思辨", "思辩", "思辯" }, ["sīchóu"] = { "私仇", "私讎", "絲綢" }, ["sīfǎ"] = { "司法", "私法" }, ["sìfú"] = { "伺服", "賜福" }, ["sǐjì"] = { "死寂", "死記" }, ["sījiā"] = { "思家", "私家" }, ["sīlì"] = { "司隸", "私利", "私立" }, ["sīlù"] = { "思路", "絲路" }, ["sīniàn"] = { "思念", "私念" }, ["sīrén"] = { "私人", "斯人" }, ["sīshì"] = { "司事", "私事" }, ["sìshí"] = { "四十", "四時", "巳時" }, ["sīshū"] = { "司書", "私書" }, ["sìshuǐ"] = { "汜水", "泗水" }, ["sīsī"] = { "嘶嘶", "絲絲" }, ["sìwéi"] = { "四圍", "四維" }, ["sǐxiàng"] = { "死巷", "死相", "死象" }, ["sìyì"] = { "四藝", "肆意" }, ["sīyì"] = { "思議", "私意", "私議" }, ["sōngshān"] = { "嵩山", "松山" }, ["sòngzhōng"] = { "送終", "送中" }, ["sōuguā"] = { "搜刮", "搜身" }, ["sōují"] = { "搜集", "蒐集" }, ["sū'ānsuān"] = { "蘇氨酸", "蘇胺酸" }, ["suànshù"] = { "算數", "算術" }, ["suānzhī"] = { "提胡", "酸枝" }, ["sūfēi"] = { "蘇菲", "蘇非" }, ["suíhé"] = { "綏和", "隨和" }, ["suìshí"] = { "燧石", "碎石", "歲時" }, ["suíxìng"] = { "隨性", "隨興" }, ["súlì"] = { "俗例", "俗吏" }, ["suǒfēiyà"] = { "索菲亞", "索非亞" }, ["suǒfēiyǎ"] = { "索菲亞", "索非亞" }, ["suǒluóménqúndǎo"] = { "所羅門群島", "索羅門群島" }, ["suǒxìng"] = { "所幸", "索性" }, ["sùshè"] = { "宿舍", "速射" }, ["sùshí"] = { "素食", "速食" }, ["sùsù"] = { "宿宿", "簌簌" }, ["súyàn"] = { "俗諺", "俗豔" }, ["sùyǎng"] = { "素仰", "素養" }, ["sùyuán"] = { "夙緣", "溯源" }, ["sùyuàn"] = { "宿怨", "宿願" }, ["sùzhì"] = { "夙志", "素質" }, ["sùzhū"] = { "數珠", "訴諸" }, ["tāfāng"] = { "他方", "塌方" }, ["táifēng"] = { "臺風", "颱風" }, ["tàigǔ"] = { "太古", "太鼓" }, ["tàiyuán"] = { "太元", "太原" }, ["tāmen"] = { "他們", "她們", "它們", "牠們", "祂們" }, ["tǎnchéng"] = { "坦承", "坦誠" }, ["tāngchí"] = { "湯匙", "湯池" }, ["tángdì"] = { "唐棣", "堂弟", "棠棣" }, ["tánghuà"] = { "唐話", "糖化" }, ["tángrén"] = { "唐人", "糖人" }, ["tāngshuǐ"] = { "湯水", "趟水", "蹚水" }, ["tánhé"] = { "彈劾", "痰盒" }, ["tànhuà"] = { "炭化", "炭畫", "碳化" }, ["tànqì"] = { "嘆氣", "炭氣" }, ["tántán"] = { "曇曇", "談談" }, ["tànxī"] = { "嘆息", "嘆惜" }, ["tánzhǐ"] = { "彈指", "潭祉" }, ["tānzi"] = { "攤子", "癱子" }, ["táodùn"] = { "逃匿", "逃遁" }, ["táoqì"] = { "淘氣", "陶器" }, ["táoyì"] = { "逃逸", "陶藝" }, ["táoyuán"] = { "桃園", "桃源" }, ["táozuì"] = { "逃罪", "陶醉" }, ["tègōng"] = { "特供", "特工" }, ["tèjí"] = { "特急", "特級", "特輯", "特集" }, ["tèyì"] = { "特意", "特異" }, ["tèzhì"] = { "特製", "特質" }, ["tí'àn"] = { "堤岸", "提案" }, ["tiāndōng'ānsuān"] = { "天冬氨酸", "天冬胺酸" }, ["tiānfù"] = { "天父", "天賦" }, ["tiānfùluó"] = { "天婦羅", "天富羅" }, ["tiāngōng"] = { "天公", "天宮", "天工" }, ["tiānhòu"] = { "天候", "天后" }, ["tiānjiè"] = { "天戒", "天界" }, ["tiánjìng"] = { "恬靜", "田徑" }, ["tiānméndōng'ānsuān"] = { "天門冬氨酸", "天門冬胺酸" }, ["tiánmì"] = { "恬謐", "甜蜜" }, ["tiānmù"] = { "天幕", "天目" }, ["tiānpíng"] = { "天平", "天秤" }, ["tiānshēngwǒcáibìyǒuyòng"] = { "天生我才必有用", "天生我材必有用" }, ["tiānshí"] = { "天時", "天識", "天食" }, ["tiánshǔ"] = { "甜薯", "田鼠" }, ["tiāntái"] = { "天台", "天臺" }, ["tiāntáishān"] = { "天台山", "天臺山" }, ["tiānwáng"] = { "天亡", "天王" }, ["tiányuán"] = { "田原", "田園" }, ["tiānzhú"] = { "天竹", "天竺" }, ["tiānzī"] = { "天姿", "天資" }, ["tiáofú"] = { "條幅", "調幅" }, ["tiáohé"] = { "調合", "調和" }, ["tiáolǐ"] = { "條理", "調理" }, ["tiáoshì"] = { "調試", "調適" }, ["tiáowén"] = { "條文", "條紋" }, ["tiáozhì"] = { "調治", "調制", "調製" }, ["tíbá"] = { "提拔", "題跋" }, ["tící"] = { "提詞", "題詞" }, ["tiěqiāo"] = { "鐵橇", "鐵鍬" }, ["tiězhēn"] = { "鐵砧", "鐵針" }, ["tífáng"] = { "堤防", "提防" }, ["tíhú"] = { "提壺", "提胡", "醍醐", "鵜鶘" }, ["tíkuǎn"] = { "提款", "題款" }, ["tǐlì"] = { "體例", "體力" }, ["tǐliàng"] = { "體諒", "體量" }, ["tímíng"] = { "提名", "題名" }, ["tíngbó"] = { "停搏", "停泊" }, ["tíngbù"] = { "停步", "廷布" }, ["tīngzhèng"] = { "聽政", "聽證" }, ["tíngzhù"] = { "停住", "庭柱" }, ["tǐwàishòujīng"] = { "體外受精", "體外授精" }, ["tǐwèi"] = { "體位", "體味" }, ["tǐxíng"] = { "體型", "體形" }, ["tǐzhì"] = { "體制", "體質" }, ["tízi"] = { "提子", "蹄子" }, ["tóngbǎn"] = { "銅板", "銅版" }, ["tǒngcāng"] = { "筒倉", "統艙" }, ["tónggōng"] = { "桐宮", "童工" }, ["tónggǔ"] = { "同鼓", "銅鼓" }, ["tónghuà"] = { "同化", "童話" }, ["tōnghuà"] = { "通化", "通話" }, ["tōngjī"] = { "追緝", "通緝" }, ["tòngkū"] = { "慟哭", "痛哭" }, ["tōnglì"] = { "通例", "通力" }, ["tónglíng"] = { "同齡", "銅陵" }, ["tóngméng"] = { "同盟", "朣朦" }, ["tōngmíng"] = { "通名", "通明" }, ["tóngnián"] = { "同年", "童年" }, ["tōngqì"] = { "追緝", "通氣", "通緝" }, ["tóngqián"] = { "同前", "銅錢" }, ["tóngrén"] = { "同人", "同仁", "瞳人", "瞳仁", "銅仁" }, ["tóngshēng"] = { "同生", "同聲", "桐生", "童生", "童聲" }, ["tǒngshuài"] = { "統帥", "統率" }, ["tóngxīn"] = { "同心", "童心" }, ["tóngxìng"] = { "同姓", "同性" }, ["tóngyì"] = { "同意", "同異", "同義" }, ["tóngzhēn"] = { "童真", "童貞" }, ["tóngzhì"] = { "同志", "同治", "同質", "童稚" }, ["tǒngzhì"] = { "統制", "統治" }, ["tóngzǐ"] = { "桐梓", "瞳子", "童子" }, ["tōu'ān"] = { "偷安", "偷襲" }, ["tóushī"] = { "投師", "頭蝨" }, ["tóusù"] = { "投宿", "投訴" }, ["tóuyī"] = { "投醫", "頭一" }, ["tóuyóu"] = { "頭油", "頭由", "投郵" }, ["tóuzi"] = { "頭子", "骰子" }, ["tuányuán"] = { "團員", "團圓" }, ["tú'àn"] = { "圖案", "屠岸" }, ["túchéng"] = { "屠城", "途程" }, ["tūchū"] = { "凸出", "突出" }, ["tǔféiyuán"] = { "土肥原", "土肥圓" }, ["tuìcháo"] = { "退朝", "退潮" }, ["tuīdǎo"] = { "推倒", "推導" }, ["tuìhuà"] = { "蛻化", "退化" }, ["tuījiàn"] = { "推薦", "推見" }, ["tuītuō"] = { "推脫", "推託" }, ["tuīxiè"] = { "推卸", "推謝" }, ["tújí"] = { "圖集", "突擊" }, ["túnjī"] = { "囤積", "屯積" }, ["túnzhù"] = { "屯住", "屯駐" }, ["tuōyán"] = { "拖延", "脫鹽", "託言" }, ["túpiàn"] = { "圖片", "塗片" }, ["tūqǐ"] = { "凸起", "突起" }, ["tǔqì"] = { "吐棄", "吐氣", "土氣" }, ["túrán"] = { "徒然", "突然" }, ["tǔsī"] = { "吐司", "土司" }, ["túxíng"] = { "圖形", "徒刑" }, ["tǔzhì"] = { "土製", "土質" }, ["wàijiā"] = { "外加", "外家" }, ["wàimào"] = { "外貌", "外貿" }, ["wàishāng"] = { "外傷", "外商" }, ["wàixíng"] = { "外型", "外形" }, ["wǎn'ān"] = { "晚安", "晩安" }, ["wánbì"] = { "完璧", "完畢" }, ["wǎncí"] = { "婉詞", "婉辭" }, ["wángguó"] = { "亡國", "王國" }, ["wǎngjī"] = { "往績", "往跡" }, ["wǎngjì"] = { "往績", "往跡", "網際" }, ["wàngjì"] = { "忘記", "旺季" }, ["wàngjiǎo"] = { "旺角", "望角" }, ["wǎngláizhànghù"] = { "往來帳戶", "往來賬戶" }, ["wángmìng"] = { "亡命", "王命" }, ["wángmǔ"] = { "亡母", "王母" }, ["wàngshì"] = { "旺勢", "旺市" }, ["wángshì"] = { "王事", "王室" }, ["wàngǔ"] = { "腕骨", "萬古" }, ["wǎngwǎng"] = { "往往", "惘惘" }, ["wánshì"] = { "完事", "玩世" }, ["wànshì"] = { "玩世", "萬世", "萬事" }, ["wānwān"] = { "彎彎", "灣灣" }, ["wǎnzhuǎn"] = { "婉轉", "宛轉" }, ["wēi'érgāng"] = { "威而剛", "威而鋼" }, ["wèibì"] = { "偽幣", "未必", "畏避", "胃壁" }, ["wéibó"] = { "圍脖", "微博", "微薄", "韋伯" }, ["wēibó"] = { "微博", "微薄" }, ["wèicháng"] = { "未嘗", "胃腸" }, ["wéichén"] = { "微塵", "微臣" }, ["wēichén"] = { "微塵", "微臣" }, ["wèichéng"] = { "渭城", "衛城" }, ["wéicí"] = { "微詞", "微辭" }, ["wēicí"] = { "微詞", "微辭" }, ["wéifáng"] = { "危房", "濰坊" }, ["wēifēng"] = { "威風", "微風" }, ["wéigān"] = { "桅杆", "桅桿" }, ["wéiguān"] = { "圍觀", "微觀" }, ["wèiguó"] = { "衛國", "魏國" }, ["wéihài"] = { "危害", "為害" }, ["wéihé"] = { "圍合", "維和", "違和" }, ["wèihé"] = { "渭河", "為何" }, ["wéijí"] = { "危及", "危急" }, ["wēijí"] = { "危及", "危急" }, ["wēijī"] = { "危機", "微機" }, ["wéijī"] = { "危機", "微機", "維基" }, ["wèijí"] = { "未及", "蝟集" }, ["wèijīng"] = { "味精", "未經" }, ["wēimǐ"] = { "微米", "萎靡" }, ["wèimiǎn"] = { "慰勉", "未免", "衛冕" }, ["wèinán"] = { "渭南", "畏難" }, ["wěiqì"] = { "偉器", "尾氣" }, ["wéiqí"] = { "圍棋", "為期" }, ["wěishēng"] = { "尾聲", "偽聲" }, ["wéishēng"] = { "維生", "為生" }, ["wèishí"] = { "未時", "餵食", "胃石" }, ["wèishì"] = { "衛士", "衛視" }, ["wèishù"] = { "位數", "衛戍" }, ["wèisuō"] = { "畏縮", "蝟縮" }, ["wěiwěi"] = { "唯唯", "娓娓" }, ["wéiwéi"] = { "唯唯", "巍巍" }, ["wēiwēi"] = { "巍巍", "微微" }, ["wéiwǔ"] = { "為伍", "違忤" }, ["wéixì"] = { "微細", "維繫" }, ["wéixiàn"] = { "為限", "違憲" }, ["wéixīn"] = { "唯心", "惟心", "維新", "違心" }, ["wēixìn"] = { "威信", "微信" }, ["wēiyán"] = { "威嚴", "微言" }, ["wèiyán"] = { "胃炎", "胃癌" }, ["wéiyī"] = { "唯一", "韋衣" }, ["wēiyí"] = { "委蛇", "威儀", "逶迤" }, ["wèiyǒu"] = { "偽友", "未有", "畏友" }, ["wèizhī"] = { "未知", "胃汁" }, ["wěizi"] = { "尾子", "葦子" }, ["wéncí"] = { "文詞", "文辭" }, ["wèndá"] = { "問答", "聞達" }, ["wéndú"] = { "文牘", "文讀" }, ["wéngé"] = {"文革", "文蛤" }, ["wénhuà"] = { "文化", "文話" }, ["wénjù"] = { " 文具", "文句" }, ["wénlái"] = { "文萊", "汶萊" }, ["wénlǐ"] = { "文理", "紋理" }, ["wénmíng"] = { "文名", "文明", "聞名" }, ["wénrén"] = { "文人", "聞人" }, ["wénshēn"] = { "文身", "紋身" }, ["wènshì"] = { "問世", "文飾" }, ["wénshì"] = { "文士", "文飾" }, ["wénshū"] = { "文書", "文殊" }, ["wényú"] = { "文娛", "文魚" }, ["wénzhāng"] = { "文章", "紋章" }, ["wòsībǎo"] = { "沃思堡", "沃斯堡" }, ["wǔ'èrlíng"] = { "520", "五二零" }, ["wǔbà"] = { "五伯", "五霸" }, ["wǔcháng"] = { "五常", "武場" }, ["wúcháng"] = { "無償", "無常" }, ["wǔdà"] = { "五大", "武大" }, ["wǔdǎo"] = { "五島", "舞蹈" }, ["wǔdào"] = { "武道", "舞蹈" }, ["wùdǎo"] = { "誤導", "霧島" }, ["wǔdé"] = { "五德", "武德", "舞德" }, ["wǔfú"] = { "五服", "五福" }, ["wūdōng"] = { "烏冬", "烏鶇" }, ["wǔgōng"] = { "仵工", "武功" }, ["wǔguān"] = { "五官", "武官", "武關" }, ["wūjī"] = { "污跡", "烏雞" }, ["wújí"] = { "無及", "無極" }, ["wújì"] = { "無忌", "無計" }, ["wùjiàn"] = { "晤見", "物件" }, ["wǔjiè"] = { "五戒", "五誡", "武界" }, ["wùjiě"] = { "悟解", "誤解" }, ["wújǐng"] = { "吳景", "吳璟" }, ["wújīngdǎcǎi"] = { "無精打彩", "無精打采" }, ["wúlǐ"] = { "無理", "無禮" }, ["wǔlíng"] = { "五陵", "武陵" }, ["wūmiè"] = { "污蔑", "誣蔑" }, ["wúmíng"] = { "無名", "無明" }, ["wúrén"] = { "吾人", "無人" }, ["wūrǔ"] = { "侮辱", "污辱" }, ["wúshēng"] = { "無聲", "無生" }, ["wǔshí"] = { "五十", "午時" }, ["wùshí"] = { "務實", "物什" }, ["wúshì"] = { "無事", "無視" }, ["wùshì"] = { "物事", "誤事" }, ["wǔshù"] = { "武術", "舞術" }, ["wúwàng"] = { "無妄", "無望" }, ["wúwèi"] = { "無味", "無畏", "無謂" }, ["wúwù"] = { "無物", "無誤" }, ["wúxí"] = { "無息", "無錫" }, ["wúxī"] = { "無息", "無錫" }, ["wúxiàn"] = { "吳縣", "無線", "無限" }, ["wúxū"] = { "毋須", "無須", "無需" }, ["wúyán"] = { "無言", "無顏", "無鹽" }, ["wúyì"] = { "無意", "無異", "無益", "無義" }, ["wùyì"] = { "物議", "誤譯" }, ["wúyīn"] = { "吳音", "無音" }, ["wúyǔ"] = { "吳語", "無語" }, ["wūyǔ"] = { "屋宇", "巫語" }, ["wǔyuè"] = { "五岳", "五嶽", "五月" }, ["wùzhí"] = { "物質", "誤植" }, } return export 206j0r7pfq6uwrgo3lo5tafoklv5ho1 Modul:zh/data/cmn-hom/2 828 160418 628904 2024-11-06T16:00:27Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.list = { ["hǎibào"] = { "海報", "海豹" }, ["hǎidài"] = { "海帶", "海待" }, ["hǎifēng"] = { "海風", "海豐" }, ["hǎiguī"] = { "海歸", "海龜" }, ["hǎijǐng"] = { "海景", "海警" }, ["hǎijīnshā"] = { "海金沙", "海金砂" }, ["hǎiyáng"] = { "海洋", "海陽" }, ["hǎiyīng"] = { "海鷹", "海鸚" }, ["hǎizǎo"] = { "海棗", "海藻" }, ["hāluó"] = { "哈囉", "哈羅" }, ["h...“ yozuvi orqali yangi sahifa yaratildi 628904 Scribunto text/plain local export = {} export.list = { ["hǎibào"] = { "海報", "海豹" }, ["hǎidài"] = { "海帶", "海待" }, ["hǎifēng"] = { "海風", "海豐" }, ["hǎiguī"] = { "海歸", "海龜" }, ["hǎijǐng"] = { "海景", "海警" }, ["hǎijīnshā"] = { "海金沙", "海金砂" }, ["hǎiyáng"] = { "海洋", "海陽" }, ["hǎiyīng"] = { "海鷹", "海鸚" }, ["hǎizǎo"] = { "海棗", "海藻" }, ["hāluó"] = { "哈囉", "哈羅" }, ["hánchen"] = { "寒傖", "寒磣" }, ["hánguó"] = { "汗國", "韓國" }, ["hànhuà"] = { "漢化", "漢話" }, ["hánliú"] = { "寒流", "韓流" }, ["hànshì"] = { "憾事", "漢室" }, ["hánshòu"] = { "函售", "函授" }, ["hánshuǐ"] = { "含水", "寒水" }, ["hànshuǐ"] = { "汗水", "漢水" }, ["hānshuì"] = { "酣睡", "鼾睡" }, ["hányì"] = { "含意", "含義", "寒意" }, ["hányǒu"] = { "含有", "涵有" }, ["hànzì"] = { "汗漬", "漢字" }, ["hàodà"] = { "好大", "浩大" }, ["háofǎ"] = { "毫法", "毫髮" }, ["hàojié"] = { "浩劫", "耗竭" }, ["hǎojiǔ"] = { "好久", "好酒" }, ["hàohàn"] = { "浩瀚", "浩汗", "浩涆", "晧旰", "皓旰", "㵆旰", "滈汗" }, ["hàohào"] = { "昊昊", "浩浩", "皓皓", "晧晧", "滈滈", "㵆㵆", "鎬鎬", "皞皞", "顥顥", "灝灝", "號號" }, ["hàorán"] = { "浩然", "昊然", "皓然", "晧然" }, ["háoqì"] = { "號泣", "豪氣" }, ["hàoqì"] = { "浩氣", "顥氣", "灝氣" }, ["hàozi"] = { "耗子", "號子" }, ["háozi"] = { "蠔子", "貉子" }, ["hècǎoyá"] = { "鶴草牙", "鶴草芽" }, ["hécháng"] = { "何嘗", "禾場" }, ["héchàng"] = { "合唱", "和暢" }, ["héchéngqì"] = { "合成器", "合成氣" }, ["hédào"] = { "河道", "禾稻" }, ["hédelái"] = { "合得來", "和得來" }, ["hégān"] = { "何干", "核苷" }, ["hégǔ"] = { "合股", "和鼓", "河谷", "頜骨" }, ["héhòu"] = { "何后", "合後" }, ["hēihé"] = { "黑河", "黑盒" }, ["hēizhì"] = { "黑痣", "黑質" }, ["hélì"] = { "合力", "核力" }, ["héliú"] = { "合流", "河流" }, ["hémǎ"] = { "河馬", "荷馬" }, ["hémiáo"] = { "何苗", "禾苗" }, ["hénggémó"] = { "橫膈膜", "橫隔膜" }, ["hénggémò"] = { "橫膈膜", "橫隔膜" }, ["héngliáng"] = { "橫樑", "衡量" }, ["héngshān"] = { "恆山", "衡山" }, ["héngxīn"] = { "恆心", "橫心" }, ["hépíng"] = { "和平", "核平" }, ["hérén"] = { "何人", "核仁" }, ["héshān"] = { "合山", "河山" }, ["héshì"] = { "何事", "合適", "核示", "核試" }, ["héshí"] = { "何時", "和食", "核實" }, ["hésuàn"] = { "合算", "核算" }, ["hétáng"] = { "核糖", "河塘", "荷塘" }, ["héxī"] = { "和息", "河西", "荷西" }, ["héxiān"] = { "合纖", "河鮮" }, ["héxǔ"] = { "何許", "和煦" }, ["héyì"] = { "何意", "合意" }, ["héyuè"] = { "合樂", "荷月" }, ["héyuē"] = { "合約", "和約" }, ["hézhǐ"] = { "何止", "和紙" }, ["hézì"] = { "何自", "合字" }, ["hézǐ"] = { "合子", "核子" }, ["hézi"] = { "合子", "盒子" }, ["hóngcháng"] = { "紅場", "紅腸" }, ["hóngcháo"] = { "紅潮", "鴻巢" }, ["hóngdà"] = { "宏大", "洪大" }, ["hōngdòng"] = { "哄動", "轟動" }, ["hóngdūlāsī"] = { "宏都拉斯", "洪都拉斯" }, ["hóngmáo"] = { "紅毛", "鴻毛" }, ["hōngpéijī"] = { "烘培機", "烘培雞" }, ["hóngzǎo"] = { "紅棗", "紅藻", "鴻藻" }, ["hòubèi"] = { "後備", "後背", "後輩" }, ["hòubù"] = { "後步", "後部" }, ["hòudài"] = { "厚待", "後代" }, ["hòujì"] = { "後繼", "後記" }, ["hòuliáng"] = { "後梁", "後涼" }, ["hòuqī"] = { "後妻", "後期" }, ["hòuqín"] = { "後勤", "後秦" }, ["hòushēng"] = { "厚生", "後生" }, ["hòushì"] = { "後世", "後事" }, ["hòusòng"] = { "候送", "後送" }, ["hòutáng"] = { "後唐", "後堂" }, ["hòuwèi"] = { "厚味", "後衛" }, ["hòuyì"] = { "厚意", "后羿", "後裔" }, ["hòuyuán"] = { "後園", "後援" }, ["hóuzi"] = { "猴子", "瘊子" }, ["hòuzuò"] = { "后座", "後座" }, ["huàcè"] = { "畫冊", "畫策" }, ["huādiàn"] = { "花店", "花鈿" }, ["huàfēn"] = { "劃分", "化分" }, ["huàfēng"] = { "畫風", "話鋒" }, ["huàgōng"] = { "化工", "畫供", "畫工" }, ["huāhuì"] = { "花卉", "花會" }, ["huáigǔ"] = { "懷古", "踝骨" }, ["huājiàn"] = { "花劍", "花見" }, ["huājiāo"] = { "花椒", "花膠" }, ["huājuǎn"] = { "花卷", "花捲" }, ["huàméi"] = { "畫眉", "話梅" }, ["huánbào"] = { "環抱", "還報" }, ["huángdì"] = { "皇帝", "黃帝" }, ["huánggāng"] = { "皇綱", "黃岡" }, ["huánghuò"] = { "惶惑", "黃禍" }, ["huángjīn"] = { "黃巾", "黃金" }, ["huángjūn"] = { "皇軍", "蝗軍", "黃軍" }, ["huánglí"] = { "黃梨", "黃鸝" }, ["huánglián"] = { "黃蓮", "黃連" }, ["huāngluàn"] = { "慌亂", "荒亂" }, ["huángqí"] = { "黃旗", "黃芪" }, ["huángquán"] = { "皇權", "黃泉" }, ["huángshū"] = { "皇叔", "黃書" }, ["huángtiān"] = { "皇天", "黃天" }, ["huánqiú"] = { "寰球", "環球" }, ["huànshù"] = { "宦豎", "幻術" }, ["huānxīn"] = { "歡心", "歡欣" }, ["huànyī"] = { "換衣", "浣衣" }, ["huányuán"] = { "轘轅", "還原" }, ["huāqí"] = { "花旗", "花期" }, ["huāshì"] = { "花市", "花式" }, ["huáshuǐ"] = { "划水", "滑水" }, ["huāxù"] = { "花序", "花絮" }, ["huāyào"] = { "花葯", "花藥" }, ["huàyīn"] = { "華陰", "話音" }, ["huàyǔ"] = { "化雨", "話語" }, ["huàyuán"] = {"畫圓", "化緣"}, ["huàzhuāng"] = { "化妝", "化裝" }, ["huàzhuāngshì"] = { "化妝室", "化裝室" }, ["huàzhuāngshǐ"] = { "化妝室", "化裝室" }, ["huàzuò"] = { "化作", "畫作" }, ["húchòu"] = { "狐臭", "胡臭" }, ["húfēng"] = { "胡峰", "胡蜂" }, ["hūhū"] = { "乎乎", "呼呼" }, ["huì'ān"] = { "惠安", "會安" }, ["huícháo"] = { "回朝", "回潮" }, ["huìdōng"] = { "惠東", "會東" }, ["huìfēng"] = { "惠風", "匯豐" }, ["huífù"] = { "回復", "回覆" }, ["huìhé"] = { "匯合", "會合", "彗核" }, ["huíhé"] = { "回合", "回紇" }, ["huìhuà"] = { "匯劃", "會話", "繪畫" }, ["huìjí"] = { "會籍", "會集", "彙集", "匯集" }, ["huìjù"] = { "匯聚", "會聚" }, ["huījūn"] = { "揮軍", "麾軍" }, ["huíshēng"] = { "回升", "回生", "回聲" }, ["huìwù"] = { "會務", "會悟", "會晤", "穢物" }, ["huíxiǎng"] = { "回想", "迴響" }, ["huíxiāng"] = { "回鄉", "茴香" }, ["huìyǎn"] = { "匯演", "慧眼", "會演" }, ["huíyì"] = { "回憶", "回譯" }, ["huìyì"] = { "會意", "會議" }, ["húláng"] = { "狐狼", "胡狼" }, ["hūlāquān"] = { "呼啦圈", "呼拉圈" }, ["hūléi"] = { "呼雷", "忽雷" }, ["hùndùn"] = { "混沌", "混淪" }, ["hùnhé"] = { "混合", "混和" }, ["húnshuǐmōyú"] = { "混水摸魚", "渾水摸魚" }, ["huǒbàn"] = { "伙伴", "火伴" }, ["huǒbào"] = { "火暴", "火爆" }, ["huǒjì"] = { "夥計", "夥記" }, ["huǒjù"] = { "火具", "火炬", "火鋸" }, ["huòluàn"] = { "禍亂", "霍亂" }, ["huǒqì"] = { "火器", "火氣" }, ["huòrán"] = { "或然", "砉然" }, ["huǒshí"] = { "伙食", "火石" }, ["huòshì"] = { "或是", "獲釋", "禍事" }, ["hūshào"] = { "呼哨", "唿哨", "忽哨" }, ["hùshì"] = { "怙恃", "護士" }, ["hǔshì"] = { "虎勢", "虎視" }, ["hútú"] = { "糊塗", "胡塗" }, ["húwéi"] = { "胡为", "胡為" }, ["hūyù"] = { "呼籲", "淴浴" }, ["hùzhào"] = { "護照", "護罩" }, ["húzhōu"] = { "湖州", "胡謅" }, ["jī'ānsuān"] = { "肌氨酸", "肌胺酸" }, ["jī'è"] = { "積惡", "飢餓" }, ["jì'ér"] = { "既而", "繼而" }, ["jiābīn"] = { "佳賓", "嘉賓" }, ["jiācháng"] = { "加長", "家常" }, ["jiāfǎ"] = { "加法", "家法" }, ["jiāfǎng"] = { "家紡", "家訪" }, ["jiāfèng"] = { "加俸", "夾縫" }, ["jiāgōng"] = { "加工", "夾攻", "家公" }, ["jiágǔ"] = { "夾谷", "頰骨" }, ["jiǎgǔ"] = { "甲骨", "胛骨" }, ["jiājī"] = { "佳績", "夾擊" }, ["jiājì"] = { "佳績", "家伎" }, ["jiājù"] = { "佳句", "加劇", "夾具", "家具" }, ["jiàlǎo"] = { "㗎佬", "架佬" }, ["jiālìlüè"] = { "伽利略", "加利略" }, ["jiǎliú'ānsuān"] = { "甲硫氨酸", "甲硫胺酸" }, ["jiāmiǎn"] = { "加冕", "嘉勉" }, ["jiānà"] = { "加納", "迦納" }, ["jiànbié"] = { "鑑別", "鑒別", "餞別" }, ["jiǎncè"] = { "檢測", "簡冊" }, ["jiǎnchá"] = { "檢察", "檢查" }, ["jiàncháng"] = { "見長", "鍵長" }, ["jiǎnchú"] = { "剪除", "減除" }, ["jiàndǎng"] = { "建檔", "建黨" }, ["jiàndào"] = { "劍道", "見到" }, ["jiàndé"] = { "建德", "見得" }, ["jiǎnfǎ"] = { "剪髮", "減法" }, ["jiānfù"] = { "肩負", "姦婦" }, ["jiǎngdào"] = { "講到", "講道" }, ["jiàngé"] = { "劍閣", "間隔" }, ["jiānghú"] = { "江湖", "漿糊" }, ["jiānghuáng"] = { "姜黃", "薑黃" }, ["jiāngjiè"] = { "江界", "疆界" }, ["jiǎnglǐ"] = { "講理", "講禮" }, ["jiàngshì"] = { "將士", "降世" }, ["jiāngù"] = { "兼顧", "堅固" }, ["jiānguǒ"] = { "堅果", "尖果" }, ["jiāngyuán"] = { "江源", "江原" }, ["jiāngyù"] = { "將欲", "疆域" }, ["jiǎnhuà"] = { "簡化", "鹼化" }, ["jiànhuò"] = { "間或", "賤貨" }, ["jiànjī"] = { "劍擊", "見機" }, ["jiànjí"] = { "劍擊", "鍵級" }, ["jiànjiàn"] = { "件件", "僭建", "漸漸", "濺濺" }, ["jiānjiān"] = { "尖尖", "戔戔", "濺濺" }, ["jiànjiàng"] = { "健將", "賤降" }, ["jiānjiè"] = { "尲尬", "尷尬" }, ["jiǎnjié"] = { "簡捷", "簡潔" }, ["jiànjìn"] = { "漸近", "漸進" }, ["jiānjù"] = { "兼具", "艱巨", "間距" }, ["jiānláo"] = { "堅牢", "監牢", "艱勞" }, ["jiānlì"] = { "尖利", "尖厲" }, ["jiànlì"] = { "建立", "監利" }, ["jiǎnpǔ"] = { "儉樸", "簡樸", "簡譜" }, ["jiānrèn"] = { "兼任", "堅韌" }, ["jiǎnshěng"] = { "儉省", "減省" }, ["jiànshì"] = { "建市", "漸逝", "見識", "鑑識" }, ["jiànshí"] = { "見識", "鑑識" }, ["jiānshǒu"] = { "堅守", "監守" }, ["jiànshù"] = { "劍術", "建樹" }, ["jiǎnsù"] = { "減速", "簡素" }, ["jiǎnsuō"] = { "減縮", "簡縮" }, ["jiànwàng"] = { "健忘", "健旺" }, ["jiànwǔgūniang"] = { "見五姑娘", "見伍姑娘" }, ["jiànwǔgūniáng"] = { "見五姑娘", "見伍姑娘" }, ["jiānxiǎn"] = { "奸險", "艱險" }, ["jiànxiào"] = { "見效", "見笑" }, ["jiànxíng"] = { "間行", "餞行" }, ["jiànyán"] = { "建言", "諫言", "腱炎", "踐言" }, ["jiànyì"] = { "建議", "諫議" }, ["jiǎnyì"] = { "檢疫", "簡易" }, ["jiànyú"] = { "劍魚", "箭魚", "見於", "鑒於" }, ["jiǎnyuē"] = { "儉約", "簡約" }, ["jiànzài"] = { "健在", "艦載" }, ["jiànzhèng"] = { "見證", "鑒證", "諫諍", "建政", "鍵政" }, ["jiānzhí"] = { "兼職", "堅執" }, ["jiànzhú"] = { "建築", "箭竹" }, ["jiǎnzi"] = { "剪子", "繭子", "趼子" }, ["jiàochē"] = { "叫車", "轎車" }, ["jiǎochē"] = { "絞車", "腳車" }, ["jiāodài"] = { "交代", "交待", "膠帶", "膠袋" }, ["jiāodiǎn"] = { "交點", "焦點" }, ["jiāoguàn"] = { "嬌慣", "澆灌" }, ["jiāohǎo"] = { "交好", "姣好" }, ["jiāohuì"] = { "交匯", "交會" }, ["jiàohuì"] = { "教會", "教誨" }, ["jiāojí"] = { "交集", "焦急" }, ["jiǎojià"] = { "絞架", "腳架" }, ["jiàomǔ"] = { "教母", "酵母" }, ["jiāoqì"] = { "嬌氣", "驕氣" }, ["jiǎoqiú"] = { "腳球", "角球" }, ["jiǎosè"] = { "腳色", "角色" }, ["jiàoshì"] = { "教士", "教室" }, ["jiàoshòu"] = { "叫獸", "教授" }, ["jiāoshuǐ"] = { "澆水", "膠水" }, ["jiāotán"] = { "交談", "跤壇" }, ["jiāoxīn"] = { "交心", "焦心" }, ["jiāoyì"] = { "交易", "交誼" }, ["jiàoyì"] = { "教益", "教義" }, ["jiāoyóu"] = { "交遊", "焦油", "郊遊" }, ["jiàoyù"] = { "教育", "教諭" }, ["jiāozào"] = { "焦躁", "驕躁" }, ["jiàozhèng"] = { "教正", "校正" }, ["jiāozhǐ"] = { "交趾", "交阯" }, ["jiǎozhǐ"] = { "腳指", "腳趾" }, ["jiāozhuó"] = { "焦灼", "膠著" }, ["jiǎozi"] = { "角子", "餃子" }, ["jiàozuò"] = { "叫作", "叫做" }, ["jiāpéng"] = { "加彭", "加蓬" }, ["jiārén"] = { "佳人", "家人" }, ["jiāsāir"] = { "加塞兒", "夾塞兒" }, ["jiāshā"] = { "加沙", "袈裟" }, ["jiāshēng"] = { "夾生", "家生" }, ["jiǎshì"] = { "假釋", "甲士" }, ["jiāshì"] = { "家世", "家事", "家室" }, ["jiāshǐ"] = { "家史", "家室" }, ["jiāshǔ"] = { "家屬", "家鼠" }, ["jiātíngyǐngyuàn"] = { "家庭劇院", "家庭影院" }, ["jiāxīn"] = { "加薪", "夾心" }, ["jiāyā"] = { "加壓", "家鴨" }, ["jiāyáo"] = { "佳餚", "嘉殽" }, ["jiāyīn"] = { "佳音", "加音" }, ["jiàzhí"] = { "價值", "價直" }, ["jiāzi"] = { "夾子", "家子" }, ["jiázi"] = { "夾子", "鋏子" }, ["jiāzī"] = { "家貲", "家資" }, ["jíbiàn"] = { "即便", "急所", "急變" }, ["jībiàn"] = { "機變", "激變", "畸變" }, ["jīcháng"] = { "機場", "雞腸", "飢腸" }, ["jìchéng"] = { "既成", "繼承", "計程" }, ["jídà"] = { "吉大", "極大" }, ["jídì"] = { "及第", "極地", "吉地" }, ["jīdì"] = { "基地", "跡地" }, ["jīdiǎn"] = { "基點", "績點" }, ["jīdiàn"] = { "機電", "積澱" }, ["jìdiǎn"] = { "祭典", "績點" }, ["jīdòng"] = { "機動", "激動" }, ["jídù"] = { "嫉妒", "極度" }, ["jìdù"] = { "季度", "忌妒" }, ["jīdú"] = { "機讀", "緝毒" }, ["jiéchéng"] = { "竭誠", "結城", "結成" }, ["jiècí"] = { "介詞", "借詞" }, ["jiēdào"] = { "接到", "街道" }, ["jièdì"] = { "借地", "芥蒂" }, ["jiědú"] = { "解毒", "解瀆", "解讀" }, ["jièdú"] = { "戒毒", "借讀" }, ["jiěfū"] = { "姊夫", "姐夫" }, ["jiégòu"] = { "結搆", "結構" }, ["jiéhé"] = { "結合", "結核" }, ["jiéjiǎn"] = { "節儉", "節減" }, ["jiéjī"] = { "劫機", "截擊" }, ["jiéjí"] = { "結集", "截擊", "捷急", "捷疾", "節級" }, ["jiéjié"] = { "孑孑", "節節", "結節" }, ["jiéjìng"] = { "捷徑", "潔淨" }, ["jiējǐng"] = { "街井", "街景" }, ["jiékè"] = { "傑克", "捷克" }, ["jièkǒu"] = { "戒口", "界口", "藉口" }, ["jiēkǒu"] = { "接口", "街口" }, ["jièlán"] = { "芥藍", "芥蘭" }, ["jiélù"] = { "截路", "節錄" }, ["jiēlù"] = { "揭露", "街路" }, ["jiěmèi"] = { "姊妹", "姐妹" }, ["jièmiàn"] = { "介面", "界面" }, ["jiémó"] = { "結膜", "羯磨" }, ["jiérán"] = { "孑然", "截然" }, ["jièrù"] = { "介入", "借入" }, ["jiēshì"] = { "揭示", "皆是", "街市" }, ["jiéshí"] = { "潔食", "碣石", "節食", "結石", "結識" }, ["jiētóu"] = { "接頭", "街頭" }, ["jièxiàn"] = { "界線", "界限" }, ["jièyì"] = { "介意", "借譯" }, ["jièyǐ"] = { "借以", "藉以" }, ["jiéyíng"] = { "劫營", "結營" }, ["jiéyú"] = { "節餘", "結餘" }, ["jièzhǐ"] = { "戒指", "界址" }, ["jiézhì"] = { "截至", "節制" }, ["jièzhù"] = { "借住", "借助" }, ["jièzǐ"] = { "介子", "芥子" }, ["jìfǎ"] = { "技法", "記法" }, ["jīfā"] = { "擊發", "激發" }, ["jīfèn"] = { "激奮", "激憤" }, ["jīfěn"] = { "虀粉", "雞粉" }, ["jìgōng"] = { "技工", "祭宮" }, ["jīgǔ"] = { "雞骨", "擊鼓", "稽古" }, ["jīguān"] = { "機關", "箕關", "雞冠" }, ["jìhèn"] = { "忌恨", "記恨" }, ["jìhuì"] = { "季會", "忌諱", "濟惠", "計會", "際會" }, ["jíjí"] = { "伋伋", "岌岌" }, ["jījī"] = { "唧唧", "雞雞", "GG" }, ["jījí"] = { "基極", "積極" }, ["jījiàn"] = { "基建", "擊劍", "機件", "肌腱" }, ["jíjiàn"] = { "急件", "擊劍" }, ["jījiǎo"] = { "犄角", "雞腳" }, ["jījiǎozhīshì"] = { "掎角之勢", "犄角之勢" }, ["jíjù"] = { "急劇", "急遽", "極具", "集句", "集聚" }, ["jīkǎo"] = { "機考", "稽考" }, ["jíkè"] = { "即刻", "極客" }, ["jīlè"] = { "羈勒", "雞肋" }, ["jílì"] = { "吉利", "極力" }, ["jīlǐ"] = { "機理", "肌理" }, ["jīlì"] = { "激勵", "肌力" }, ["jìliàng"] = { "劑量", "計量" }, ["jīliú"] = { "激流", "稽留", "羈留", "肌瘤" }, ["jīlǜ"] = { "幾率", "機率" }, ["jìlù"] = { "紀錄", "記錄" }, ["jílù"] = { "輯錄", "集錄" }, ["jìlùpiàn"] = { "紀錄片", "記錄片" }, ["jìlùpiān"] = { "紀錄片", "記錄片" }, ["jímáng"] = { "急忙", "疾忙" }, ["jímò"] = { "寂寞", "籍沒" }, ["jīnbó"] = { "金帛", "金箔" }, ["jīnchán"] = { "金蟬", "金蟾" }, ["jìncháo"] = { "晉朝", "進朝" }, ["jìnchéng"] = { "晉城", "進城", "進程" }, ["jìndài"] = { "晉代", "近代" }, ["jīng'ānsuān"] = { "精氨酸", "精胺酸" }, ["jīngchéng"] = { "京城", "精誠" }, ["jìngcí"] = { "敬詞", "敬辭" }, ["jīngdòng"] = { "晶洞", "驚動" }, ["jīngdù"] = { "精度", "經度" }, ["jǐngguān"] = { "景觀", "警官" }, ["jīnghuá"] = { "京華", "精華" }, ["jìngjì"] = { "競技", "靜寂" }, ["jīngjì"] = { "經濟", "經紀", "驚悸" }, ["jīngjí"] = { "經籍", "荊棘" }, ["jīngjīng"] = { "京京", "晶晶" }, ["jīngjù"] = { "京劇", "驚懼" }, ["jīngjué"] = { "驚厥", "驚覺" }, ["jìngkuàng"] = { "境況", "鏡框" }, ["jīnglì"] = { "晶粒", "精力", "經歷" }, ["jīngliàn"] = { "精煉", "精練" }, ["jìngluán"] = { "痙攣", "鏡鸞" }, ["jīnglún"] = { "經綸", "腈綸" }, ["jìngmài"] = { "競賣", "靜脈" }, ["jìngōng"] = { "進宮", "進攻" }, ["jīngqí"] = { "旌旗", "經期", "驚奇" }, ["jǐngqū"] = { "景區", "警區" }, ["jīngquè"] = { "京闕", "精確" }, ["jīngshòu"] = { "精瘦", "經受", "經售" }, ["jīngshū"] = { "經書", "驚輸" }, ["jìngtóu"] = { "勁頭", "鏡頭" }, ["jīngǔ"] = { "今古", "筋骨", "金鼓" }, ["jīnguì"] = { "矜貴", "金貴" }, ["jīngwèi"] = { "精衛", "驚畏" }, ["jǐngwù"] = { "丼物", "井物", "景物" }, ["jīngxì"] = { "晶系", "京戲", "精細" }, ["jīngxiàn"] = { "涇縣", "經線" }, ["jǐngxiàng"] = { "景象", "頸項" }, ["jīngxīn"] = { "精心", "經心", "驚心" }, ["jīngxué"] = { "經穴", "經學" }, ["jīngyàn"] = { "經驗", "驚豔" }, ["jìngyǎng"] = { "敬仰", "靜養" }, ["jīngyè"] = { "兢業", "精液" }, ["jīngyì"] = { "京邑", "精液", "驚異" }, ["jīngyíng"] = { "晶瑩", "經營" }, ["jīngyīng"] = { "精英", "菁英" }, ["jīngyóu"] = { "精油", "經由", "鯨油" }, ["jìngyù"] = { "境域", "境遇" }, ["jìngyǔ"] = { "敬語", "靖宇" }, ["jǐngyuán"] = { "井原", "警員" }, ["jìngzhí"] = { "徑直", "淨值" }, ["jīngzhì"] = { "晶質", "精緻", "精製" }, ["jīngzhí"] = { "晶質", "驚蟄" }, ["jìngzhòng"] = { "敬重", "淨重" }, ["jīngzú"] = { "京族", "晶族" }, ["jìnjí"] = { "晉級", "進擊" }, ["jìnjī"] = { "近畿", "進擊" }, ["jìnjiàn"] = { "勁健", "晉見", "覲見", "進見", "進諫" }, ["jǐnjǐn"] = { "僅僅", "緊緊" }, ["jīnjīn"] = { "斤斤", "津津" }, ["jìnjiǔ"] = { "禁酒", "進酒" }, ["jìnjù"] = { "晉劇", "進據" }, ["jīnjú"] = { "金桔", "金橘" }, ["jìnjūn"] = { "禁軍", "進軍" }, ["jìnkěnéng"] = { "儘可能", "盡可能" }, ["jǐnkěnéng"] = { "儘可能", "盡可能" }, ["jìnlái"] = { "近來", "進來" }, ["jìnlì"] = { "盡力", "禁例" }, ["jìnlǐ"] = { "近理", "浸禮" }, ["jìnliàng"] = { "儘量", "盡量" }, ["jìnnián"] = { "盡年", "近年" }, ["jìnqián"] = { "近前", "進前" }, ["jīnquè"] = { "金闕", "金雀" }, ["jìnrù"] = { "浸入", "進入" }, ["jīnshān"] = { "津山", "金山" }, ["jīnshì"] = { "今世", "今市", "津市" }, ["jìnshí"] = { "浸蝕", "禁食", "進食" }, ["jìnshì"] = { "近世", "近侍", "近視", "進士" }, ["jīnshǔ"] = { "金屬", "金薯" }, ["jìnshuǐ"] = { "浸水", "進水" }, ["jìntóu"] = { "勁頭", "盡頭" }, ["jìnǚ"] = { "妓女", "繼女" }, ["jìnxíng"] = { "盡行", "禁行", "進行" }, ["jīnyào"] = { "津要", "金鑰" }, ["jìnyīn"] = { "近因", "近音" }, ["jìnyù"] = { "浸浴", "禁慾", "禁欲" }, ["jìnzǎo"] = { "儘早", "尽早", "盡早" }, ["jìnzhǐ"] = { "禁指", "禁止" }, ["jìnzhōng"] = { "晉中", "盡忠" }, ["jípò"] = { "急迫", "擊破" }, ["jíqí"] = { "及其", "極其" }, ["jīqíng"] = { "基情", "激情" }, ["jíquán"] = { "極權", "集權" }, ["jírì"] = { "即日", "吉日", "集日" }, ["jìrì"] = { "忌日", "祭日" }, ["jīròu"] = { "肌肉", "雞肉" }, ["jīsè"] = { "基色", "飢色" }, ["jīshēn"] = { "機身", "躋身" }, ["jìshēng"] = { "寄生", "計生" }, ["jíshì"] = { "即事", "即是", "吉事", "吉士", "急事", "集市" }, ["jíshí"] = { "即時", "即食", "及時" }, ["jìshí"] = { "寄食", "紀實", "計時", "記實" }, ["jǐshí"] = { "幾十", "幾時" }, ["jìshì"] = { "既是", "濟事", "記事" }, ["jíshǒu"] = { "棘手", "疾首" }, ["jīshù"] = { "基數", "奇數" }, ["jìshù"] = { "技術", "紀述", "計數", "記述" }, ["jǐshuǐ"] = { "濟水", "給水" }, ["jísù"] = { "即速", "急速" }, ["jītǐ"] = { "機體", "肌體" }, ["jītū"] = { "激凸", "激突" }, ["jiǔcài"] = { "酒菜", "韭菜" }, ["jiùfàn"] = { "就範", "就飯" }, ["jiǔjià"] = { "酒架", "酒駕" }, ["jiūjiū"] = { "啾啾", "赳赳" }, ["jiǔpù"] = { "酒舖", "酒鋪" }, ["jiǔquán"] = { "九泉", "酒泉" }, ["jiǔshí"] = { "九十", "酒石", "酒食" }, ["jiùshì"] = { "就事", "就勢", "就是", "就試", "救世", "救市", "舊事", "舊市", "舊式" }, ["jiùshí"] = { "就食", "舊時" }, ["jiùyè"] = { "就業", "舊業" }, ["jiùyì"] = { "就義", "舊譯" }, ["jiùyī"] = { "就醫", "舊衣" }, ["jiùzhì"] = { "救治", "舊制" }, ["jiǔzuò"] = { "久坐", "酒坐" }, ["jìwàng"] = { "冀望", "寄望" }, ["jíwéi"] = { "即為", "極為" }, ["jíwù"] = { "及物", "急務" }, ["jìwù"] = { "祭物", "霽霧" }, ["jíxí"] = { "即席", "急襲" }, ["jíxián"] = { "嫉賢", "集賢" }, ["jìxiào"] = { "技校", "績效" }, ["jīxiào"] = { "積效", "績效", "譏笑" }, ["jíxìng"] = { "即興", "急性", "極性" }, ["jíxíng"] = { "急行", "極刑", "疾行" }, ["jīxíng"] = { "機型", "畸形" }, ["jìxù"] = { "繼續", "記敘" }, ["jīxuě"] = { "積雪", "雞血" }, ["jīyā"] = { "積壓", "羈押", "雞鴨" }, ["jíyè"] = { "即夜", "極夜" }, ["jìyì"] = { "寄意", "技藝", "計議", "記憶" }, ["jīyì"] = { "機翼", "機譯" }, ["jīyīn"] = { "基因", "基音" }, ["jìyǒu"] = { "既有", "計有" }, ["jīyù"] = { "機遇", "積鬱" }, ["jǐyǔ"] = { "給予", "給與" }, ["jìyú"] = { "覬覦", "鯽魚" }, ["jízǎo"] = { "即早", "及早" }, ["jìzhě"] = { "妓者", "記者" }, ["jízhì"] = { "及至", "極致" }, ["jīzhì"] = { "基質", "機制", "機製", "機智" }, ["jìzhōu"] = { "冀州", "濟州" }, ["jízhòu"] = { "急驟", "極晝" }, ["jǐzi"] = { "蟣子", "麂子" }, ["jùbiàn"] = { "劇變", "巨變", "聚變" }, ["jùdiǎn"] = { "句點", "據點" }, ["jùdú"] = { "劇毒", "句讀" }, ["juébù"] = { "決不", "絕不" }, ["juédòu"] = { "決鬥", "角鬥" }, ["juéjì"] = { "決計", "絕技", "絕跡" }, ["juékǒu"] = { "決口", "絕口" }, ["juésè"] = { "絕色", "腳色", "角色" }, ["juéshì"] = { "爵士", "絕世" }, ["juétí"] = { "駃騠", "決堤" }, ["juéyì"] = { "決意", "決議" }, ["juēzuǐ"] = { "噘嘴", "撅嘴" }, ["jūgōng"] = { "居功", "鞠躬" }, ["jùjí"] = { "劇集", "聚集", "巨集" }, ["jùjiāo"] = { "聚焦", "鋸鮫" }, ["jūliú"] = { "居留", "拘留" }, ["jùlù"] = { "巨鹿", "鉅鹿" }, ["jǔmù"] = { "櫸木", "舉目" }, ["jūnfāng"] = { "均方", "軍方" }, ["jūngōng"] = { "軍功", "軍工" }, ["jūnlǐ"] = { "君理", "軍禮" }, ["jūnlì"] = { "軍力", "軍吏" }, ["jūnliè"] = { "皸裂", "龜裂" }, ["jūnqí"] = { "軍旗", "軍棋" }, ["jùnqiào"] = { "俊俏", "峻峭" }, ["jūnshì"] = { "均勢", "軍事", "軍勢", "軍士" }, ["jūnyī"] = { "軍衣", "軍醫" }, ["jūshì"] = { "居士", "居室" }, ["jǔshì"] = { "舉世", "舉事" }, ["jùwúbà"] = { "巨毋霸", "巨無霸" }, ["jùxíng"] = { "句型", "巨型" }, ["jǔxíng"] = { "矩形", "舉行" }, ["jùyě"] = { "巨野", "鉅野" }, ["jūzhù"] = { "居住", "拘住" }, ["jùzi"] = { "句子", "鋸子" }, ["júzi"] = { "局子", "橘子" }, ["kǎbùqínuò"] = { "卡布其諾", "卡布奇諾" }, ["kāfēiwū"] = { "咖啡屋", "咖啡烏" }, ["kāidòng"] = { "開凍", "開動" }, ["kāigōng"] = { "開工", "開弓" }, ["kāiluó"] = { "開羅", "開鑼" }, ["kāiqiāng"] = { "開槍", "開腔" }, ["kāishì"] = { "揩拭", "開市", "開示", "開釋" }, ["kāishǐ"] = { "開始", "開駛" }, ["kāiyǎn"] = { "開演", "開眼" }, ["kānchá"] = { "勘察", "勘查" }, ["kànghàn"] = { "亢旱", "抗旱" }, ["kànglì"] = { "伉儷", "抗力" }, ["kàngyán"] = { "抗炎", "抗癌" }, ["kàngyányào"] = { "抗炎藥", "抗癌藥" }, ["kǎnjià"] = { "侃價", "砍價" }, ["kānwù"] = { "刊物", "刊誤", "勘誤" }, ["kānwùbiǎo"] = { "刊誤表", "勘誤表" }, ["kànzhòng"] = { "看中", "看重" }, ["kànzuò"] = { "看作", "看做" }, ["kǎobèi"] = { "拷貝", "考背" }, ["kǎochá"] = { "考察", "考查" }, ["kǎoshì"] = { "考試", "考釋" }, ["kǎpéngtè"] = { "卡彭特", "卡朋特" }, ["kèbǎn"] = { "刻板", "刻版" }, ["kèběn"] = { "刻本", "課本" }, ["kěbǐ"] = { "可比", "可鄙" }, ["kèfú"] = { "克服", "客服" }, ["kèhuà"] = { "刻畫", "客話" }, ["kējì"] = { "科技", "科際" }, ["kějìng"] = { "可勁", "可敬" }, ["kēlì"] = { "苛吏", "顆粒" }, ["kěnqǐng"] = { "懇請", "肯綮" }, ["kèshí"] = { "刻石", "課時" }, ["kèshì"] = { "客室", "課室" }, ["kèshǐ"] = { "客室", "課室" }, ["kètáng"] = { "客堂", "課堂" }, ["kěwàng"] = { "可望", "渴望" }, ["kèzuò"] = { "客坐", "客座" }, ["kǒngbùfènzǐ"] = { "恐怖份子", "恐怖分子" }, ["kōngchéng"] = { "空乘", "空城" }, ["kōngdǎng"] = { "空擋", "空檔" }, ["kōngdàng"] = { "空檔", "空蕩" }, ["kōngyùn"] = { "空運", "空韻" }, ["kǒngjù"] = { "孔鋸", "恐懼" }, ["kōngtóu"] = { "空投", "空頭" }, ["kòngxián"] = { "控弦", "空閒" }, ["kǒngzhòu"] = { "孔伷", "孔宙" }, ["kǒubēi"] = { "口杯", "口碑" }, ["kǒufú"] = { "口服", "口福" }, ["kǒuxián"] = { "口弦", "口涎" }, ["kuāndài"] = { "寬帶", "寬待", "寬貸" }, ["kuànggōng"] = { "曠工", "礦工" }, ["kuānhóng"] = { "寬宏", "寬洪" }, ["kuāshì"] = { "誇示", "誇飾" }, ["kǔliàn"] = { "苦楝", "苦練" }, ["kùlún"] = { "庫倫", "庫侖" }, ["kuòyīnqì"] = { "擴陰器", "擴音器" }, ["kǔxīn"] = { "苦心", "苦辛" }, ["lài'ānsuān"] = { "賴氨酸", "賴胺酸" }, ["láicháo"] = { "來潮", "來朝" }, ["láifúzǐ"] = { "萊服子", "萊菔子" }, ["láishì"] = { "來世", "來勢" }, ["làjiāojiǎn"] = { "辣椒硷", "辣椒鹼" }, ["lājīdài"] = { "垃圾袋", "垃圾帶" }, ["lāliàn"] = { "拉練", "拉鏈" }, ["làméi"] = { "臘梅", "蠟梅" }, ["lán'gān"] = { "欄杆", "闌干" }, ["lángān"] = { "欄杆", "闌干" }, ["làngdàng"] = { "浪蕩", "莨菪" }, ["lángzhōng"] = { "郎中", "閬中" }, ["lánlǚ"] = { "藍縷", "藍褸", "襤縷", "襤褸" }, ["lánquān"] = { "欄圈", "籃圈" }, ["lánsè"] = { "藍色", "蘭色" }, ["lǎogē"] = { "老哥", "老歌" }, ["lǎohuà"] = { "老化", "老話" }, ["láojì"] = { " 牢記", "勞績" }, ["lǎolao"] = { "姥姥", "老老" }, ["lǎomào"] = { "老眊", "老耄" }, ["lǎopǔ"] = { "老圃", "老譜" }, ["lǎoshì"] = { "老事", "老式", "老是", "老視" }, ["lǎoyāo"] = { "老妖", "老幺" }, ["lǎoye"] = { "姥爺", "老爺" }, ["léishè"] = { "鐳射", "雷射" }, ["léixiè"] = { "縲絏", "纍紲" }, ["léizhuì"] = { "累墜", "累贅" }, ["lěngmiàn"] = { "冷面", "冷麵" }, ["lèyì"] = { "勒抑", "樂意", "樂易" }, ["liáncí"] = { "聯詞", "連詞" }, ["liánduì"] = { "聯隊", "連隊" }, ["liánfáng"] = { "聯防", "蓮房" }, ["liàng'ānsuān"] = { "亮氨酸", "亮胺酸" }, ["liángjiàng"] = { "良匠", "良將" }, ["liànglì"] = { "亮麗", "量力" }, ["liánguàn"] = { "聯貫", "連貫" }, ["liángzhōu"] = { "梁州", "涼州" }, ["liánjié"] = { "廉潔", "聯結", "連結" }, ["liánhé"] = { "聯合", "連合" }, ["liánjiē"] = { "聯接", "連接" }, ["liánlián"] = { "漣漣", "連連" }, ["liánluò"] = { "聯絡", "連絡" }, ["liánmèi"] = { "聯袂", "連袂" }, ["liánmián"] = { "聯綿", "連綿" }, ["liánmiáncí"] = { "聯綿詞", "連綿詞" }, ["liánmiánzì"] = { "聯綿字", "連綿字" }, ["liánmíng"] = { "聯名", "連名" }, ["liánpiān"] = { "聯翩", "連篇", "連翩" }, ["liántōng"] = { "連通", "聯通" }, ["liánxì"] = { "聯繫", "連繫" }, ["liánxiāng"] = { "蓮厢", "蓮湘" }, ["liánxù"] = { "憐恤", "連續" }, ["liányīn"] = { "聯姻", "連音" }, ["liánzhèng"] = { "廉政", "廉正" }, ["liánzhuì"] = { "聯綴", "連綴" }, ["liánzòu"] = { "聯奏", "連奏" }, ["liáochéng"] = { "療程", "聊城" }, ["liáokuò"] = { "寥廓", "遼闊" }, ["liáoliáo"] = { "寥寥", "遼遼" }, ["liáoyuán"] = { "燎原", "遼源" }, ["lǐbàisì"] = { "禮拜四", "禮拜寺" }, ["lǐchéng"] = { "禮成", "里程" }, ["lìdìng"] = { "立定", "隸定" }, ["lìdōng"] = { "栗東", "立冬" }, ["liègǒu"] = { "獵狗", "鬣狗" }, ["lièshì"] = { "劣勢", "烈士" }, ["lìfǎ"] = { "曆法", "立法" }, ["lìhài"] = { "利害", "厲害" }, ["lìhuì"] = { "例會", "立繪", "立會" }, ["lìjí"] = { "痢疾", "立即" }, ["lìjiè"] = { "歷屆", "力戒" }, ["lìjiàn"] = { "利劍", "力薦" }, ["lìkè"] = { "力克", "立刻" }, ["līliluōluō"] = { "哩哩囉囉", "哩哩羅羅" }, ["lìmǎ"] = { "利馬", "立馬" }, ["lǐmào"] = { "禮貌", "禮帽" }, ["lìmù"] = { "栃木", "櫪木" }, ["líncháng"] = { "林場", "臨場" }, ["línchǎng"] = { "林場", "臨場" }, ["línglíng"] = { "泠泠", "零陵" }, ["língmù"] = { "鈴木", "陵墓" }, ["língqǐn"] = { "陵寢", "靈寢" }, ["língrén"] = { "伶人", "凌人" }, ["lǐngshǔ"] = { "領屬", "領水" }, ["línguāng"] = { "燐光", "磷光" }, ["língyǔ"] = { "囹圄", "靈雨", "陵雨" }, ["língyuán"] = { "陵園", "靈園" }, ["línhǎi"] = { "林海", "臨海" }, ["línhuǒ"] = { "林火", "磷火" }, ["línjìn"] = { "臨近", "鄰近" }, ["línjīng"] = { "鱗莖", "麟經" }, ["línlín"] = { "磷磷", "粼粼" }, ["línzhī"] = { "林芝", "磷脂" }, ["lìqì"] = { "利器", "立契" }, ["lìrì"] = { "曆日", "歷日" }, ["lìsè"] = { "厲色", "栗色" }, ["lìshān"] = { "立山", "酈山" }, ["lìshì"] = { "例示", "利市", "力士", "立式", "立誓" }, ["lìshí"] = { "歷時", "礫石" }, ["lìshū"] = { "曆書", "隸書" }, ["lǐshù"] = { "李樹", "禮數" }, ["lìshǔ"] = { "栗鼠", "隸屬" }, ["líshù"] = { "梨樹", "黎庶" }, ["lìsuǒ"] = { "俐索", "利索" }, ["lǐtáng"] = { "禮堂", "理塘" }, ["liúbiàn"] = { "流便", "流變" }, ["liúbù"] = { "流布", "留步" }, ["liúhuà"] = { "留話", "硫化" }, ["liúlí"] = { "流離", "琉璃" }, ["liúlián"] = { "榴槤", "榴蓮", "榴連", "流連" }, ["liúliánguǒ"] = { "榴槤果", "榴蓮果", "榴連果" }, ["liúliúqiú"] = { "溜溜球", "遛遛球" }, ["liúmíng"] = { "流明", "留名" }, ["liúsù"] = { "流速", "留宿" }, ["liúxià"] = { "流下", "留下" }, ["liúyán"] = { "流言", "留言" }, ["liúyí"] = { "流移", "留遺" }, ["liǔyīn"] = { "柳蔭", "柳陰" }, ["liúzhì"] = { "流質", "留置" }, ["lìxià"] = { "立下", "立夏" }, ["lìxíng"] = { "例行", "力行", "厲行" }, ["lìyǎdé"] = { "利雅得", "利雅德" }, ["lìyì"] = { "利益", "立意" }, ["lǐyù"] = { "理喻", "禮遇" }, ["líyuán"] = { "梨園", "黎元" }, ["lìzhèng"] = { "例證", "立正" }, ["lìzhì"] = { "勵志", "吏治", "立志", "麗質" }, ["lǐzhì"] = { "理智", "禮制" }, ["lìzi"] = { "例子", "栗子" }, ["lóngchuān"] = { "瀧川", "龍川" }, ["lóngfèngtāi"] = { "龍鳳", "龍鳳胎" }, ["lóngniǎo"] = { "籠鳥", "隆鳥" }, ["lóngpánhǔjù"] = { "龍盤虎踞", "龍蟠虎踞" }, ["lóngyán"] = { "龍岩", "龍顏" }, ["lóngzhōng"] = { "隆中", "龍鍾" }, ["lóngzhōu"] = { "龍州", "龍舟" }, ["lóngzi"] = { "籠子", "聾子" }, ["lòusháo"] = { "漏勺", "漏杓" }, ["luànshì"] = { "亂世", "亂視" }, ["lùdǎo"] = { "鹿島", "鹿嶋" }, ["lùdé"] = { "路得", "路德" }, ["lüèguò"] = { "掠過", "略過" }, ["lùfēng"] = { "陸風", "陸豐" }, ["lúgānsīkè"] = { "盧干斯克", "盧甘斯克" }, ["lǜhuà"] = { "氯化", "綠化" }, ["lúhuì"] = { "盧會", "蘆薈" }, ["lùkǒu"] = { "路口", "祿口" }, ["lùkuàng"] = { "路況", "路礦" }, ["lǚlì"] = { "履歷", "膂力" }, ["lùlù"] = { "碌碌", "轆轆", "陸路" }, ["lùmiàn"] = { "路面", "露面" }, ["luò'ānsuān"] = { "酪氨酸", "酪胺酸" }, ["luódédǎo"] = { "羅得島", "羅德島" }, ["luòdì"] = { "落地", "落第" }, ["luòjiāng"] = { "洛江", "酪漿" }, ["luólì"] = { "羅利", "蘿莉" }, ["luómǎ"] = { "羅馬", "騾馬" }, ["luòmǎ"] = { "落馬", "駱馬" }, ["luómǔ"] = { "羅姆", "螺母" }, ["luòmù"] = { "落幕", "落木" }, ["luòpán"] = { "落盤", "落磐" }, ["luòshuǐ"] = { "洛水", "落水" }, ["luósī"] = { "羅斯", "螺絲", "螺螄" }, ["lǜqì"] = { "氯氣", "濾器" }, ["lùshàng"] = { "路上", "陸上" }, ["lǚshè"] = { "旅社", "旅舍" }, ["lǜshī"] = { "律師", "律詩" }, ["lǔshuǐ"] = { "滷水", "鹵水" }, ["lǚtú"] = { "捋荼", "旅途" }, ["lǚxíng"] = { "履行", "旅行" }, ["lǜyīn"] = { "綠茵", "綠陰" }, ["lùyòng"] = { "路用", "錄用" }, ["mǎ'ěrtā"] = { "馬爾他", "馬耳他" }, ["mǎ'ěrtārén"] = { "馬爾他人", "馬耳他人" }, ["mǎ'ěrtāyǔ"] = { "馬爾他語", "馬耳他語" }, ["mǎbù"] = { "馬布", "馬步" }, ["mǎdèng"] = { "馬蹬", "馬鐙" }, ["máfēngbìng"] = { "痲瘋病", "麻風病" }, ["mǎfū"] = { "馬伕", "馬夫" }, ["màichōng"] = { "脈沖", "脈衝" }, ["màichū"] = { "賣出", "邁出" }, ["màijiā"] = { "賣家", "麥加" }, ["màijìn"] = { "賣勁", "邁進" }, ["májiàng"] = { "麻將", "麻醬" }, ["mǎlì"] = { "瑪利", "瑪莉", "瑪麗", "馬利", "馬力" }, ["mǎliè"] = { "馬列", "馬鬣" }, ["mǎlù"] = { "馬路", "馬陸", "馬鹿" }, ["mǎluó"] = { "馬鑼", "馬騾" }, ["māma"] = { "媽媽", "嬤嬤" }, ["mángmáng"] = { "忙忙", "茫茫" }, ["mángrén"] = { "忙人", "盲人" }, ["mànmà"] = { "漫罵", "謾罵" }, ["mànmàn"] = { "慢慢", "漫漫" }, ["mànyóu"] = { "漫游", "漫遊" }, ["mǎnzú"] = { "滿族", "滿足" }, ["màomíng"] = { "冒名", "茂名" }, ["máotóu"] = { "毛頭", "矛頭" }, ["máozéi"] = { "毛賊", "蟊賊" }, ["mǎyǎ"] = { "瑪雅", "馬雅" }, ["méicài"] = { "梅菜", "霉菜" }, ["měidì"] = { "美帝", "美的" }, ["méigāncài"] = { "梅乾菜", "霉乾菜" }, ["méijīngdǎcǎi"] = { "沒精打彩", "沒精打采" }, ["měilúnměihuàn"] = { "美倫美煥", "美輪美奐" }, ["méiméi"] = { "枚枚", "沒沒" }, ["méiqì"] = { "沒氣", "煤氣", "霉氣" }, ["měirén"] = { "每人", "美人" }, ["měishì"] = { "每事", "美事", "美式" }, ["měitóng"] = { "美桐", "美瞳" }, ["měiyì"] = { "美意", "美裔" }, ["měiyīnhépànfǎlánkèfú"] = { "美因河畔法蘭克福", "美茵河畔法蘭克福" }, ["méiyǔ"] = { "梅雨", "眉宇" }, ["měiyù"] = { "美玉", "美譽" }, ["měiyuán"] = { "美元", "美圓" }, ["měizhōu"] = { "每週", "美洲" }, ["méndì"] = { "門地", "門第" }, ["ménglóng"] = { "朦朧", "矇矓" }, ["méngméng"] = { "懞懞", "濛濛", "矇矇", "蒙蒙" }, ["měngrán"] = { "懵然", "猛然" }, ["méngtóng"] = { "艨艟", "蒙童" }, ["ménjìng"] = { "門徑", "門鏡" }, ["ménlián"] = { "門簾", "門聯" }, ["mì'ěr"] = { "密爾", "密耳" }, ["miànbǎn"] = { "面板", "麵板" }, ["miànfěn"] = { "面粉", "麵粉" }, ["miànjī"] = { "面積", "面肌", "面基", "面姬" }, ["miànjīn"] = { "面巾", "麵筋" }, ["miǎnlì"] = { "勉力", "勉勵" }, ["miánlián"] = { "綿聯", "綿連" }, ["miànpí"] = { "面皮", "麵皮" }, ["miànshì"] = { "面世", "面市", "面試" }, ["miàntān"] = { "面癱", "麵攤" }, ["miànxiàng"] = { "面向", "面相" }, ["miányáng"] = { "綿羊", "綿陽" }, ["miǎnyì"] = { "免役", "免疫" }, ["miàoyǔ"] = { "妙語", "廟宇" }, ["mìfēng"] = { "密封", "蜜蜂" }, ["mìjí"] = { "密集", "秘笈", "秘籍" }, ["mìjiàn"] = { "密件", "蜜餞" }, ["mílù"] = { "迷路", "麋鹿" }, ["mímàn"] = { "彌漫", "迷漫" }, ["mìmì"] = { "密密", "密祕", "汨汨", "祕密", "秘密" }, ["mínfáng"] = { "民房", "民防" }, ["míng'é"] = { "名額", "螟蛾" }, ["míngchá"] = { "明察", "茗茶" }, ["míngcì"] = { "名刺", "名次" }, ["míngjì"] = { "名妓", "名寄", "銘記" }, ["míngjiào"] = { "名叫", "鳴叫" }, ["míngjiǎoxiāo"] = { "鳴角梟", "鳴角鴞" }, ["míngjìng"] = { "明淨", "明鏡" }, ["mínglíng"] = { "名伶", "明靈", "螟蛉" }, ["míngmén"] = { "名門", "鳴門" }, ["míngmíng"] = { "明明", "溟溟" }, ["míngmù"] = { "名目", "明目", "瞑目" }, ["míngqì"] = { "冥器", "名氣", "明器" }, ["míngqǔ"] = { "名取", "名曲" }, ["míngr"] = { "名兒", "明兒" }, ["míngrén"] = { "名人", "明人" }, ["míngshì"] = { "名士", "明世", "明示", "盟誓" }, ["míngwén"] = { "明文", "銘文" }, ["míngxiǎng"] = { "冥想", "鳴響" }, ["míngxīng"] = { "明星", "明興" }, ["míngyán"] = { "名言", "明言" }, ["míngyù"] = { "名譽", "明喻" }, ["míngyuán"] = { "名園", "名媛" }, ["míngzhì"] = { "明智", "明治" }, ["míngzi"] = { "名字", "明子" }, ["mínjiāng"] = { "岷江", "閩江" }, ["mínshēng"] = { "民生", "民聲" }, ["mínyuè"] = { "民樂", "閩越" }, ["mìshǐ"] = { "密使", "密室", "秘史" }, ["mìshì"] = { "密室", "密市" }, ["mìshū"] = { "密書", "秘書" }, ["mìsīfótuó"] = { "蜜斯佛陀", "蜜絲佛陀" }, ["míwù"] = { "迷誤", "迷霧" }, ["mízhú"] = { "糜竺", "麋竺" }, ["móbǎn"] = { "模板", "模版" }, ["móběn"] = { "模本", "摹本" }, ["mócā"] = { "摩擦", "磨擦" }, ["mòdì"] = { "末帝", "驀地" }, ["mòfáng"] = { "磨坊", "磨房" }, ["mòhé"] = { "墨盒", "漠河", "靺鞨" }, ["mólì"] = { "磨礪", "魔力" }, ["mòlín"] = { "墨林", "默林" }, ["mòlù"] = { "末路", "陌路" }, ["mòluò"] = { "沒落", "脈絡" }, ["mòmíngqímiào"] = { "莫名其妙", "莫明其妙" }, ["mómo"] = { "嬤嬤", "饃饃" }, ["mòmò"] = { "沒沒", "漠漠", "脈脈", "默默" }, ["mónàn"] = { "磨難", "魔難" }, ["mòqí"] = { "万俟", "末期" }, ["mòrán"] = { "漠然", "驀然", "默然" }, ["mòshì"] = { "末世", "沒世", "漠視", "默示" }, ["móshù"] = { "模數", "魔術" }, ["mòshuǐ"] = { "墨水", "沒水" }, ["móuqǔ"] = { "牟取", "謀取" }, ["móushì"] = { "謀事", "謀士" }, ["móxíng"] = { "模型", "模形" }, ["móyá"] = { "摩崖", "磨牙" }, ["mòyè"] = { "末頁", "末葉", "末業" }, ["mózhàng"] = { "魔杖", "魔障" }, ["mùbǎn"] = { "木板", "木版" }, ["múbǎn"] = { "模板", "模版" }, ["mùcháng"] = { "墓場", "牧場" }, ["mùchǎng"] = { "墓場", "牧場" }, ["mùdì"] = { "墓地", "目的" }, ["mùjī"] = { "木屐", "目擊" }, ["mǔjī"] = { "母機", "母雞" }, ["mùlín"] = { "睦鄰", "穆林" }, ["mùpái"] = { "木排", "木牌" }, ["mùqì"] = { "暮氣", "木器" }, ["mùqún"] = { "墓群", "牧群" }, ["mùshí"] = { "墓石", "木石" }, ["mùshī"] = { "木虱", "木蝨", "牧師" }, ["mùxiāng"] = { "木箱", "木香" }, ["mùyè"] = { "暮夜", "牧業", "木業", "木葉" }, ["mùzhì"] = { "墓誌", "木製" }, ["mǔzhǐ"] = { "拇指", "拇趾" }, } return export per47f5135dxny84vei9qv307lo85f2 Modul:Hrkt-translit/data/ja 828 160419 628905 2024-11-06T16:01:43Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „-- [[Yaponcha]] transliteration data return require("Module:Hrkt-translit").process_data{ digraph = { ["゚"] = { ["to"] = "tu", } }, }“ yozuvi orqali yangi sahifa yaratildi 628905 Scribunto text/plain -- [[Yaponcha]] transliteration data return require("Module:Hrkt-translit").process_data{ digraph = { ["゚"] = { ["to"] = "tu", } }, } 8t6ve2ckhv5ctbtomefxr1rzmqlfp50 Modul:zh-generateforms 828 160420 628906 2024-11-06T16:03:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local data = mw.loadData("Module:zh/data/ts") function export.generateForms(text, lang, sc) if sc == "Hant" then return {text, (text:gsub("[\194-\244][\128-\191]*", data))} end return {text} end return export“ yozuvi orqali yangi sahifa yaratildi 628906 Scribunto text/plain local export = {} local data = mw.loadData("Module:zh/data/ts") function export.generateForms(text, lang, sc) if sc == "Hant" then return {text, (text:gsub("[\194-\244][\128-\191]*", data))} end return {text} end return export mu8jhxf2f7w0sshged38bde74u51k9q Modul:yue-pron/Taishanese 828 160421 628914 2024-11-06T16:17:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local hsv_initial = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "ᵐb", ["f"] = "f", ["v"] = "v", ["d"] = "t", ["t"] = "tʰ", ["n"] = "ⁿd", ["l"] = "l", ["lh"] = "ɬ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ᵑɡ", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["y"] = "j", ["s"] = "s", ["h"] = "h", [""] = "" } local hsv_final = { ["a"] = "a", ["ai"] = "ai", ["au"] = "au", ["am"] = "am", ["an"] = "an", ["ang"] = "aŋ", ["ap"] = "ap̚", ["...“ yozuvi orqali yangi sahifa yaratildi 628914 Scribunto text/plain local export = {} local hsv_initial = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "ᵐb", ["f"] = "f", ["v"] = "v", ["d"] = "t", ["t"] = "tʰ", ["n"] = "ⁿd", ["l"] = "l", ["lh"] = "ɬ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ᵑɡ", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["y"] = "j", ["s"] = "s", ["h"] = "h", [""] = "" } local hsv_final = { ["a"] = "a", ["ai"] = "ai", ["au"] = "au", ["am"] = "am", ["an"] = "an", ["ang"] = "aŋ", ["ap"] = "ap̚", ["at"] = "at̚", ["ak"] = "ak̚", ["i"] = "i", ["iu"] = "iu", ["im"] = "im", ["in"] = "in", ["ip"] = "ip̚", ["it"] = "it̚", ["ie"] = "iɛ", ["iau"] = "iau", ["iam"] = "iam", ["iang"] = "iaŋ", ["iap"] = "iap̚", ["iak"] = "iak̚", ["u"] = "u", ["ui"] = "ui", ["un"] = "un", ["ut"] = "ut̚", ["e"] = "ə", ["ei"] = "ei", ["eu"] = "eu", ["em"] = "em", ["en"] = "en", ["uung"] = "ɵŋ", ["ep"] = "ep̚", ["et"] = "et̚", ["uuk"] = "ɵk̚", ["uut"] = "ɵt̚", ["o"] = "ᵘɔ", ["oi"] = "ᵘɔi", ["on"] = "ᵘɔn", ["ong"] = "ɔŋ", ["ot"] = "ᵘɔt̚", ["ok"] = "ɔk̚", ["m"] = "m̩" } local hsv_tone = { ["1"]="³³", ["2"]="⁵⁵", ["3"]="²²", ["4"]="²¹", ["5"]="³²" } function export.hoisanva_to_ipa(text) if text:match("2%*") or text:match("([1-5])%-%1") then error("Invalid Taishanese tone.") end text = text:gsub("[^ ,]+",function(syllable) local initial, final, tone, tone_ch = syllable:match("^([^aeiou]*)([^1-5]*)([1-5])([%*%-]?[1-5]?%*?)$") if final == "" then initial, final = "", initial end initial, final, tone = hsv_initial[initial], hsv_final[final], hsv_tone[tone] if not initial or not final then error("Invalid Taishanese syllable: " .. syllable) end local tone2 = false if tone_ch == "*" then tone2 = tone .. "⁵" elseif tone_ch:match("^%-[1-5]%*?$") then tone2 = hsv_tone[tone_ch:sub(2,2)] .. (tone_ch:sub(3,3) == "*" and "⁵" or "") elseif tone_ch ~= "" then error("Invalid Taishanese syllable: " .. syllable) end return initial..final..tone..(tone2 and ("⁻"..tone2) or "") end) :gsub(",","/, /") return "/" .. text .. "/" end return export qj5c5osqed2l8z9wsy9421zyql18rz6 Modul:gan-pron 828 160422 628917 2024-11-06T16:19:39Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local sub = m_string_utils.sub local len = m_string_utils.len local match = m_string_utils.match local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["d"] = "t", ["t"] = "tʰ", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["ny"] = "n̠ʲ", ["g"]...“ yozuvi orqali yangi sahifa yaratildi 628917 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local sub = m_string_utils.sub local len = m_string_utils.len local match = m_string_utils.match local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["d"] = "t", ["t"] = "tʰ", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["ny"] = "n̠ʲ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", [""] = "" } local finalConv = { ["z"] = "z̩", ["i"] = "i", ["u"] = "u", ["y"] = "y", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["o"] = "o", ["uo"] = "uo", ["e"] = "e", ["ie"] = "ie", ["ue"] = "ue", ["ye"] = "ye", ["eo"] = "ɵ", ["ai"] = "ai", ["uai"] = "uai", ["oi"] = "oi", ["ei"] = "ei", ["ii"] = "ɨi", ["ui"] = "ui", ["au"] = "au", ["eu"] = "ɛu", ["ieu"] = "iɛu", ["iu"] = "iu", ["iiu"] = "ɨu", ["an"] = "an", ["uan"] = "uan", ["on"] = "ɵn", ["uon"] = "uɵn", ["yon"] = "yɵn", ["en"] = "ɛn", ["ien"] = "iɛn", ["in"] = "in", ["iin"] = "ɨn", ["un"] = "un", ["yn"] = "yn", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["ong"] = "ɔŋ", ["iong"] = "iɔŋ", ["uong"] = "uɔŋ", ["ung"] = "uŋ", ["iung"] = "iuŋ", ["at"] = "at̚", ["uat"] = "uat̚", ["ot"] = "ɵt̚", ["uot"] = "uɵt̚", ["yot"] = "yɵt̚", ["et"] = "ɛt̚", ["iet"] = "iɛt̚", ["uet"] = "uɛt̚", ["it"] = "it̚", ["iit"] = "ɨt̚", ["ut"] = "ut̚", ["yt"] = "yt̚", ["ah"] = "aʔ", ["iah"] = "iaʔ", ["uah"] = "uaʔ", ["oh"] = "ɔʔ", ["ioh"] = "iɔʔ", ["uoh"] = "uɔʔ", ["uh"] = "uʔ", ["iuh"] = "iuʔ", ["m"] = "m̩", ["n"] = "n̩", ["ng"] = "ŋ̍" } local toneConv = { ["1"] = "⁴²", ["2"] = "²⁴", ["3"] = "²¹³", ["4"] = "³⁵", ["5"] = "¹¹", ["6"] = "⁵", ["7"] = "²", ["8-1"] = "¹", ["8-2"] = "²", ["3-1"] = "²¹³⁻¹³", ["3-2"] = "²¹³⁻²⁴", ["3-3"] = "²¹³⁻²¹", [""] = "", } function export.ipa(text) if type(text) == "table" then text = text.args[1] end local syllables, stress, initial, final, tone, ipa, result = {}, {}, {}, {}, {}, {}, {} local has_stress, has_neutral, attention = false, false, "" local words = mw.text.split(text, "/") for _, word in ipairs(words) do syllables = mw.text.split(word, " ") for index, syllable in ipairs(syllables) do stress[index] = match(syllable, "^'") and "ˈ" or "" has_stress = has_stress or stress[index] == "ˈ" syllable = gsub(syllable, "^'", "") initial[index] = match(syllable, "^[bpmfdtlnzcsjqxgkh]?[gy]?") if match(initial[index], "^.y$") and initial[index] ~= "ny" then initial[index] = sub(initial[index], 1, 1) end initial[index] = initial[index] == "y" and "" or initial[index] final[index] = match(sub(syllable, len(initial[index]) + 1, -1), "^[^1-8%*]*") if final[index] == "" then final[index] = initial[index] initial[index] = "" end tone[index] = match(syllable, "[1-7]+$") or (index ~= 1 and "8" or "") has_neutral = has_neutral or tone[index] == "8" -- checks validity of the syllable local aspirated = match(initial[index], "^[ptcqkh]$") local checked = match(final[index], "[th]$") if tone[index] == "2" and not aspirated then error("The 2nd tone can only go with aspirated initials. Use the 4th tone instead.") elseif tone[index] == "4" and aspirated then error("The 4th tone can only go with unaspirated initials. Use the 2nd tone instead.") elseif match(tone[index], "^[67]$") and not checked then error(string.format("Tone %s can only go with checked finals.", tone[index])) elseif match(tone[index], "^[12345]$") and checked then error(string.format("Tone %s cannot go with a checked final.", tone[index])) end end for index = 1, #syllables do initial[index] = initialConv[initial[index]] or error(("Unrecognised initial: \"%s\""):format(initial[index])) final[index] = (match(initial[index], "s") and final[index] == "i") and "z" or final[index] final[index] = (initial[index] == "f" and final[index] == "i") and "ii" or final[index] final[index] = (match(initial[index], "s") and final[index] == "iu") and "iiu" or final[index] final[index] = finalConv[final[index]] or error(("Unrecognised final: \"%s\""):format(final[index])) if tone[index] == "3" then if match(tone[index+1] or "", "[1246]") then tone[index] = "3-1" elseif match(tone[index+1] or "", "[357]") then tone[index] = "3-2" elseif tone[index+1] then -- tone[index+1] == "8" tone[index] = "3-3" end elseif tone[index] == "8" then if tone[index-1] == "²¹³⁻²¹" or tone[index-1] == "¹¹" or tone[index-1] == "²" then tone[index] = "8-1" else tone[index] = "8-2" end end tone[index] = toneConv[tone[index]] or error(("Unrecognised tone: \"%s\""):format(tone[index])) ipa[index] = stress[index] .. initial[index] .. final[index] .. tone[index] end table.insert(result, table.concat(ipa, " ")) end -- check for stress if needed if #syllables > 1 and not has_neutral and not has_stress then attention = "[[Category:Gan terms needing pronunciation attention|*]]" end return table.concat(result, "/, /") .. attention end function export.rom(text) return (text :gsub("/", " / ") :gsub("([%d-]+)", "<sup>%1</sup>")) end return export kqcbobtyx12ksvkwhmoyivw5scv1yfj Modul:cjy-pron 828 160423 628918 2024-11-06T16:20:25Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local sub = mw.ustring.sub local len = m_string_utils.len local match = m_string_utils.match local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "v", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["r"] = "ʐ", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x...“ yozuvi orqali yangi sahifa yaratildi 628918 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local sub = mw.ustring.sub local len = m_string_utils.len local match = m_string_utils.match local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "v", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["r"] = "ʐ", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["g"] = "k", ["k"] = "kʰ", ["gh"] = "ɣ", ["ng"] = "ŋ", ["h"] = "x", [""] = "" } local finalConv = { ["r"] = "z̩", ["i"] = "i", ["u"] = "u", ["y"] = "y", ["er"] = "əɻ", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["e"] = "ɤ", ["ue"] = "uɤ", ["ie"] = "ie", ["ye"] = "ye", ["ai"] = "ai", ["uai"] = "uai", ["ei"] = "ei", ["ui"] = "uei", ["au"] = "au", ["iau"] = "iau", ["ou"] = "əu", ["iou"] = "iəu", ["an"] = "æ̃", ["uan"] = "uæ̃", ["on"] = "ɒ̃", ["ion"] = "iɒ̃", ["uon"] = "uɒ̃", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["eng"] = "ə̃ŋ", ["ing"] = "ĩŋ", ["ung"] = "ũŋ", ["yng"] = "ỹŋ", ["ah"] = "aʔ", ["iah"] = "iaʔ", ["uah"] = "uaʔ", ["eh"] = "əʔ", ["ieh"] = "iəʔ", ["ueh"] = "uəʔ", ["yeh"] = "yəʔ", ["rr"] = "z̩ɻ", ["ir"] = "iɻ", ["ur"] = "uɻ", ["yr"] = "yɻ", ["ar"] = "ɑɻ", ["iar"] = "iɑɻ", ["uar"] = "uɑɻ", ["e'r"] = "ɤɻ", ["uer"] = "uɤɻ", ["ier"] = "ieɻ", ["yer"] = "yeɻ", ["air"] = "ɐɻ", ["uair"] = "uɐɻ", ["eir"] = "əɻ", ["uir"] = "uəɻ", ["aur"] = "ɒoɻ", ["iaur"] = "iɒoɻ", ["our"] = "əuɻ", ["iour"] = "iəuɻ", ["anr"] = "æ̃ɻ", ["uanr"] = "uæ̃ɻ", ["onr"] = "ɒ̃ɻ", ["ionr"] = "iɒ̃ɻ", ["uonr"] = "uɒ̃ɻ", ["engr"] = "ʌ̃ɻ", ["ingr"] = "ĩɻ", ["ungr"] = "ũɻ", ["yngr"] = "ỹɻ", ["ahr"] = "ɐɻ", ["iahr"] = "iɐɻ", ["uahr"] = "uɐɻ", ["ehr"] = "əɻ", ["iehr"] = "ieɻ", ["uehr"] = "uəɻ", ["yehr"] = "yeɻ", } local toneConv = { ["1"] = "¹¹", ["2"] = "⁵³", ["3"] = "⁴⁵", ["4"] = "²", ["5"] = "⁵⁴", ["6"] = "¹", ["-"] = "⁻" } local toneSandhi = { ["2+2"] = "2-1", ["2+5"] = "2-1", ["4+1"] = "4-5", ["4+4"] = "4-5", ["4+2"] = "4-3", ["4+5"] = "4-3", ["5+2"] = "5-4", ["5+3"] = "5-4", } local neutral = { ["⁴⁵"] = "⁴", ["²"] = "³", ["¹¹"] = "²" } function export.ipa(text, feature) if type(text) == "table" then text = text.args[1] end local syllables, initial, final, tone, ipa, result = {}, {}, {}, {}, {}, {} local words = mw.text.split(text, "/") for _, word in ipairs(words) do syllables = mw.text.split(word, " ") for index, syllable in ipairs(syllables) do initial[index] = match(syllable, "^[bpmfvdtnlzcsrjqxgkh]?[hg]?") final[index] = match(sub(syllable, len(initial[index]) + 1, -1), "^[^1-6%-]*") tone[index] = match(syllable, "[1-5%-]+$") or (index ~= 1 and "6" or "") end for index = 1, #syllables do initial[index] = initialConv[initial[index]] or error(("Unrecognised initial: \"%s\""):format(initial[index])) final[index] = (match(initial[index], "[sz]") and final[index] == "i") and "r" or final[index] final[index] = finalConv[final[index]] or error(("Unrecognised final: \"%s\""):format(final[index])) tone[index] = tone[index] == "6" and neutral[tone[index-1]] or tone[index] tone[index] = feature ~= "no_sandhi" and toneSandhi[tone[index].."+"..(tone[index+1] or "")] or tone[index] tone[index] = gsub(tone[index], "[1-6%-]", toneConv) ipa[index] = initial[index] .. final[index] .. tone[index] end table.insert(result, table.concat(ipa, " ")) end return table.concat(result, "/, /") end function export.rom(text) return (text :gsub("/", " / ") :gsub("([%d-]+)", "<sup>%1</sup>")) end return export rlo13ixtibvy4mb4rq0aks4041dbeye Modul:hsn-pron 828 160424 628919 2024-11-06T16:21:11Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local m_str_utils = require("Module:string utilities") local sub = m_str_utils.sub local find = m_str_utils.find local match = m_str_utils.match local export = {} local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "ɸ", ["d"] = "t", ["t"] = "tʰ", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["zh"] = "ʈ͡ʂ", ["ch"] = "ʈ͡ʂʰ", ["sh"] = "ʂ", ["r"] = "ʐ", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] =...“ yozuvi orqali yangi sahifa yaratildi 628919 Scribunto text/plain local m_str_utils = require("Module:string utilities") local sub = m_str_utils.sub local find = m_str_utils.find local match = m_str_utils.match local export = {} local initialConv = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "ɸ", ["d"] = "t", ["t"] = "tʰ", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s", ["zh"] = "ʈ͡ʂ", ["ch"] = "ʈ͡ʂʰ", ["sh"] = "ʂ", ["r"] = "ʐ", ["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ", ["ny"] = "n̠ʲ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "x", [""] = "" } local finalConv = { ["r"] = "z̩", ["rr"] = "ʐ̩", ["i"] = "i", ["u"] = "u", ["y"] = "y", ["a"] = "a̠", ["ia"] = "i̯a̠", ["ua"] = "u̯a̠", ["ya"] = "y̯a̠", ["o"] = "o", ["io"] = "i̯o", ["e"] = "ɤ̞", ["ue"] = "u̯ɤ̞", ["ai"] = "ai̯", ["uai"] = "u̯ai̯", ["yai"] = "y̯ai̯", ["ei"] = "e̞i̯", ["uei"] = "u̯e̞i̯", ["yei"] = "y̯e̞i̯", ["au"] = "ɒu̯", ["iau"] = "i̯ɒu̯", ["ou"] = "əu̯", ["iou"] = "i̯əu̯", ["ie"] = "i̯e̞", ["ye"] = "y̯e̞", ["onn"] = "õ", ["enn"] = "ə̃", ["ienn"] = "i̯ẽ", ["yenn"] = "y̯ẽ", ["en"] = "ən", ["un"] = "u̯ən", ["in"] = "in", ["yn"] = "yn", ["an"] = "an", ["ian"] = "i̯æn", ["uan"] = "u̯an", ["yan"] = "y̯æn", ["ong"] = "ʊŋ", ["iong"] = "i̯ʊŋ", ["m"] = "m̩", ["n"] = "n̩", } local toneConv = { ["1"] = "³³", ["2"] = "¹³", ["3"] = "⁴¹", ["4"] = "⁴⁵", ["5"] = "²¹", ["6"] = "²⁴", ["7"] = "³", ["5-ts"] = "²¹⁻¹¹", ["6-high"] = "²⁴⁻⁴⁴", ["6-low"] = "²⁴⁻²²", ["6*"] = "²⁴", [""] = "" } function export.ipa(text, style) if type(text) == "table" then text = text.args[1] end local result = {} for word in mw.text.gsplit(text, "/") do local syllables = mw.text.split(word, " ") local ipa, tone = {}, {} for index, syllable in ipairs(syllables) do local initial, final initial = syllable:match("^([bpmfdtlnzcsrjqxgkh]?([hgy]?))") if initial:match("^.y") and initial ~= "ny" then initial = sub(initial, 1, 1) elseif initial == "y" then initial = "" end final = syllable:match("^" .. initial .. "([^1-7%*]*)") if final == "" then final = initial initial = "" end if (find(initial, "^[zcs]h$") and find(final, "^i")) or (find(initial, "^[jqx]$") and find(final, "^[aeou]")) or (find(final, "^r$") and not (initial == "" or find(initial, "^[zcs]h?$"))) or (find(final, "^u") and not (initial == "" or find(initial, "^[bpfgk]$"))) or (find(final, "^y") and not (initial == "" or initial == "ny" or find(initial, "^[jqx]$"))) then error("Invalid input \"" .. syllable .. "\": initial " .. initial .. " cannot go with final " .. final .. ".") end tone[index] = syllable:match("[1-7%*]+$") or (index ~= 1 and "7" or "") if style == "new" then initial = initial:gsub("([zcs])h", "%1") if final:match("^i") then initial = initial:gsub("[zcs]$", { ["z"] = "j", ["c"] = "q", ["s"] = "x" }) end final = final:gsub("(i?ong)", { ["iong"] = "in", ["ong"] = "en" }) end initial = initialConv[initial] or error(("Unrecognised initial: \"%s\""):format(initial)) if (initial == "" or match(initial, "[ʂʐ]")) and final == "r" then final = "rr" end final = finalConv[final] or error(("Unrecognised final: \"%s\""):format(final)) if initial == "l" and ((final ~= "ən" and not final:match("^[ii]") and match(final, "[ŋ̃n]")) or final:match("^[ii].*̃")) then initial = "l̃" end if tone[index] == "5" and #syllables > 1 then tone[index] = "5-ts" elseif tone[index] == "6" then if match(tone[index-1] or "", "[126]") then tone[index] = "6-high" elseif match(tone[index-1] or "", "[345]") then tone[index] = "6-low" end end tone[index] = toneConv[tone[index]] or error(("Unrecognised tone: \"%s\""):format(tone[index])) ipa[index] = initial .. final .. tone[index] end table.insert(result, table.concat(ipa, " ")) end return table.concat(result, "/, /") end function export.rom(text) return (text :gsub("/", " / ") :gsub("([%d-]+)", "<sup>%1</sup>")) end function export.stylediff(text) if match(text, "[zcs]h") or match(text, "[zcs]i") or match(text, "i?ong") then return true end return false end return export gjianxnimd39x0b2gfl7sf72v2iq2un Modul:zh/data/cmn-hom/1 828 160425 628920 2024-11-06T16:22:35Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.list = { ["ābà"] = { "阿壩", "阿爸" }, ["àidài"] = { "愛戴", "靉靆" }, ["āidào"] = { "哀悼", "挨到" }, ["àidíshēng"] = { "愛迪生", "艾狄生", "艾迪生" }, ["āiháo"] = { "哀嚎", "哀號" }, ["àikǒu"] = { "礙口", "隘口" }, ["àilìsī"] = { "愛麗絲", "艾麗絲" }, ["àiróng"] = { "艾絨", "艾茸" }, ["àixī"] = { "愛惜", "愛西" }, ["āiyāo"] = { "哎唷", "哎喲"...“ yozuvi orqali yangi sahifa yaratildi 628920 Scribunto text/plain local export = {} export.list = { ["ābà"] = { "阿壩", "阿爸" }, ["àidài"] = { "愛戴", "靉靆" }, ["āidào"] = { "哀悼", "挨到" }, ["àidíshēng"] = { "愛迪生", "艾狄生", "艾迪生" }, ["āiháo"] = { "哀嚎", "哀號" }, ["àikǒu"] = { "礙口", "隘口" }, ["àilìsī"] = { "愛麗絲", "艾麗絲" }, ["àiróng"] = { "艾絨", "艾茸" }, ["àixī"] = { "愛惜", "愛西" }, ["āiyāo"] = { "哎唷", "哎喲" }, ["āiyō"] = { "哎唷", "哎喲" }, ["àizībìng"] = { "愛滋病", "艾滋病" }, ["ājiě"] = { "阿姊", "阿姐" }, ["āmǔ"] = { "阿姆", "阿母" }, ["ānbù"] = { "安瓿", "安部"}, ["ānchún"] = { "安純", "鵪鶉" }, ["àndànwúguāng"] = { "暗淡無光", "黯淡無光" }, ["ānjí"] = { "安吉", "安輯" }, ["ànjì"] = { "暗計", "暗記" }, ["ānjī"] = { "氨基", "胺基" }, ["ànjiàn"] = { "按劍", "按鍵", "暗劍", "暗箭", "案件" }, ["ānjìng"] = { "安靖", "安靜" }, ["ānjīsuān"] = { "氨基酸", "胺基酸" }, ["ānjīyǐsuān"] = { "氨基乙酸", "胺基乙酸" }, ["ānkāng"] = { "安康", "鮟鱇" }, ["ānpèi"] = { "安沛", "鞍轡" }, ["ànqì"] = { "暗器", "暗泣" }, ["ànrán"] = { "岸然", "黯然" }, ["ànshā"] = { "暗殺", "暗沙" }, ["ānshān"] = { "安山", "鞍山" }, ["ānshì"] = { "安士", "安適" }, ["ànshì"] = { "暗事", "暗室", "暗示" }, ["ānsuān"] = { "氨酸", "胺酸" }, ["ānxí"] = { "安息", "諳習" }, ["ànxiāng"] = { "暗箱", "暗香" }, ["ānyì"] = { "安藝", "安逸", "安邑" }, ["ànyǔ"] = { "按語", "暗語", "案語" }, ["àokè"] = { "奧客", "拗客" }, ["àoményuán"] = { "澳門元", "澳門圓" }, ["āoxiàn"] = { "凹線", "凹陷" }, ["àozhōu"] = { "奧州", "澳洲" }, ["āsīpǐlín"] = { "阿司匹林", "阿斯匹林" }, ["āxì"] = { "錒系", "阿細" }, ["bābā"] = { "巴巴", "粑粑" }, ["bābālā"] = { "巴巴拉", "芭芭拉" }, ["bābǐ"] = { "巴比", "芭比" }, ["bái'ānsuān"] = { "白氨酸", "白胺酸" }, ["báibān"] = { "白斑", "白班" }, ["bǎibù"] = { "擺佈", "百步", "百部" }, ["báichī"] = { "白吃", "白痴" }, ["bǎidù"] = { "擺渡", "百度" }, ["báifán"] = { "白帆", "白礬" }, ["báihú"] = { "白狐", "白鵠" }, ["báihuà"] = { "白化", "白樺", "白話" }, ["báijí"] = { "白及", "白芨" }, ["báijī"] = { "白芨", "白雞" }, ["báilù"] = { "白露", "白鷺", "白鹿" }, ["báimiàn"] = { "白面", "白麵" }, ["báishí"] = { "白石", "白食" }, ["bǎishì"] = { "百世", "百事" }, ["báiyáng"] = { "白楊", "白羊" }, ["bàiyè"] = { "拜謁", "敗葉" }, ["báizhǐ"] = { "白紙", "白芷" }, ["bālí"] = { "巴厘", "巴黎" }, ["bàlíng"] = { "霸凌", "霸陵" }, ["bālù"] = { "八路", "巴錄" }, ["bǎnběn"] = { "坂本", "板本", "版本" }, ["bànchéng"] = { "半程", "扮成" }, ["bāncì"] = { "班次", "頒賜" }, ["bàndǎo"] = { "半島", "絆倒" }, ["bāndòng"] = { "扳動", "搬動" }, ["bànfàn"] = { "伴飯", "拌飯" }, ["bāngdí"] = { "梆笛", "邦廸", "邦迪" }, ["bànguāng'ānsuān"] = { "半胱氨酸", "半胱胺酸" }, ["bāngzi"] = { "幫子", "梆子" }, ["bǎnhuà"] = { "板話", "版畫" }, ["bānjī"] = { "扳機", "班基", "班機" }, ["bānjí"] = { "班吉", "班級" }, ["bǎnkuài"] = { "板塊", "版塊" }, ["bǎnmiàn"] = { "板麵", "版面" }, ["bànshì"] = { "半世", "辦事" }, ["bǎnzhǔ"] = { "板主", "版主" }, ["bānzi"] = { "扳子", "班子" }, ["bǎo'ān"] = { "保安", "寶安" }, ["bǎobǎo"] = { "保保", "寶寶" }, ["bǎobiāo"] = { "保鏢", "保鑣" }, ["bàobiǎo"] = { "報表", "爆錶" }, ["bàobìng"] = { "抱病", "暴病" }, ["bàochóu"] = { "報仇", "報讎", "報酬" }, ["bàochóuxuěhèn"] = { "報仇雪恨", "報讎雪恨" }, ["bàodào"] = { "報到", "報道" }, ["bàofā"] = { "暴發", "爆發" }, ["bàofù"] = { "報復", "抱腹", "抱負", "暴富" }, ["bāogān"] = { "包乾", "胞苷" }, ["bàoguāng"] = { "暴光", "曝光" }, ["bāohán"] = { "包含", "包涵" }, ["bǎohé"] = { "寶盒", "飽和" }, ["bàohèn"] = { "報恨", "抱恨" }, ["bàohóng"] = { "暴洪", "爆紅" }, ["bàojià"] = { "報價", "報架" }, ["bǎojiàn"] = { "保健", "保薦", "寶劍", "寶鑑" }, ["bàolì"] = { "暴利", "暴力", "暴厲", "暴吏", "暴戾" }, ["bàoliè"] = { "暴烈", "爆烈", "爆裂" }, ["bǎomǔ"] = { "保姆", "保母" }, ["bǎonuǎn"] = { "保暖", "飽暖" }, ["bàoshí"] = { "報時", "暴食" }, ["bǎoshí"] = { "寶石", "飽食" }, ["bàoxiào"] = { "報效", "爆笑" }, ["bǎoyù"] = { "保育", "寶玉" }, ["bǎozhí"] = { "保值", "保質" }, ["bàozi"] = { "刨子", "報子", "豹子", "鉋子" }, ["bǎshì"] = { "把勢", "把式" }, ["bǎshǒu"] = { "把守", "把手" }, ["bāxiān"] = { "八仙", "巴仙" }, ["bàyè"] = { "伯業", "霸業" }, ["bāzhá"] = { "巴扎", "巴紮" }, ["bāzhā"] = { "巴扎", "巴紮" }, ["bàzhàn"] = { "罷戰", "霸佔" }, ["bēicuī"] = { "悲催", "悲摧" }, ["bèidào"] = { "倍道", "背道" }, ["bèifèn"] = { "備份", "輩分" }, ["bèifú"] = { "被俘", "被服" }, ["bēiguān"] = { "卑官", "悲觀" }, ["běijiāng"] = { "北江", "北疆" }, ["bēijù"] = { "悲劇", "杯具" }, ["běikǎluóláinà"] = { "北卡羅來納", "北卡羅萊納" }, ["bèikǎo"] = { "備考", "焙烤" }, ["bèimiàn"] = { "背面", "被面" }, ["bēimíng"] = { "悲鳴", "杯茗", "碑銘" }, ["bèimiù"] = { "悖謬", "背謬" }, ["bèináng"] = { "背囊", "被囊" }, ["bēiqiè"] = { "卑怯", "悲切" }, ["bèishū"] = { "背書", "貝書" }, ["bèisī"] = { "貝司", "貝斯" }, ["bèitāi"] = { "備胎", "被胎" }, ["bèizi"] = { "被子", "輩子" }, ["běnbǐng'ānsuān"] = { "苯丙氨酸", "苯丙胺酸" }, ["běndìhuà"] = { "本地化", "本地話" }, ["běnshì"] = { "本事", "本市", "本是" }, ["běnxī"] = { "本息", "本溪" }, ["běnyì"] = { "本意", "本義" }, ["běnzhì"] = { "本志", "本質" }, ["běnzhí"] = { "本職", "本質" }, ["biànchéng"] = { "汴城", "變成" }, ["biānchéng"] = { "編成", "編程", "邊城" }, ["biānfú"] = { "蝙蝠", "邊幅" }, ["biàngé"] = { "變格", "變革" }, ["biànhuàn"] = { "變幻", "變換" }, ["biānjí"] = { "編輯", "編集" }, ["biànjié"] = { "便捷", "變節" }, ["biànlì"] = { "便利", "遍歷" }, ["biànqiān"] = { "便籤", "變遷" }, ["biànshì"] = { "便士", "便是", "辨識", "遍視" }, ["biànwèi"] = { "變位", "變味" }, ["biànxíng"] = { "變形", "遍行" }, ["biànyì"] = { "變易", "變異", "辨義" }, ["biǎnyì"] = { "貶抑", "貶義" }, ["biànyú"] = { "便於", "編餘", "遍於" }, ["biànzhèng"] = { "辨證", "辯證", "辯正", "辨正", "辨症" }, ["biānzhì"] = { "編制", "編製" }, ["biǎnzhí"] = { "貶值", "貶職" }, ["biāogāo"] = { "標高", "飆高" }, ["biāohàn"] = { "彪悍", "飆汗" }, ["biǎoyì"] = { "表意", "表義" }, ["biǎoyìwénzì"] = { "表意文字", "表義文字" }, ["biǎozhāng"] = { "表彰", "表章" }, ["biāozhì"] = { "標緻", "標誌" }, ["biǎozi"] = { "婊子", "表子" }, ["biéguǎn"] = { "別管", "別館" }, ["biējiǎ"] = { "鱉甲", "鼈甲" }, ["bǐhuà"] = { "比畫", "筆畫" }, ["bìhuì"] = { "避諱", "閉會" }, ["bǐjì"] = { "筆記", "筆跡" }, ["bǐjià"] = { "比價", "筆架" }, ["bǐjiān"] = { "比肩", "筆尖" }, ["bìlì"] = { "壁立", "篳篥", "薜荔", "觱栗", "觱篥" }, ["bǐlì"] = { "比例", "筆力" }, ["bǐlù"] = { "筆路", "筆錄" }, ["bìmǎwēn"] = { "弼馬溫", "避馬瘟" }, ["bìmén"] = { "篳門", "閉門" }, ["bìmìng"] = { "斃命", "畢命" }, ["bǐng'ānsuān"] = { "丙氨酸", "丙胺酸" }, ["bīngdòng"] = { "冰凍", "冰洞" }, ["bǐngfù"] = { "秉賦", "稟复", "稟復", "稟複", "稟覆", "稟賦" }, ["bǐnggān"] = { "丙肝", "餅乾" }, ["bīnghé"] = { "冰核", "冰河" }, ["bīngjiàn"] = { "兵艦", "兵諫", "冰見" }, ["bìnglì"] = { "並立", "併力", "病例", "病歷" }, ["bǐngqì"] = { "屏棄", "屏氣" }, ["bīngshì"] = { "兵事", "兵勢", "兵士", "冰室", "冰釋" }, ["bìngshǐ"] = { "病史", "病室", "並矢" }, ["bǐngxìng"] = { "秉性", "稟性" }, ["bīngyuán"] = { "兵員", "兵源", "冰原" }, ["bìngyuán"] = { "病原", "病員", "病源" }, ["bìngzhēng"] = { "病徵", "病癥" }, ["bìngzhòng"] = { "並重", "病重" }, ["bīnzhōu"] = { "濱州", "賓舟" }, ["bǐsà"] = { "彼薩", "比薩" }, ["bǐsàbǐng"] = { "彼薩餅", "比薩餅" }, ["bìsè"] = { "蔽塞", "閉塞" }, ["bǐshì"] = { "比試", "筆勢", "筆式", "筆試", "鄙視" }, ["bìshì"] = { "避世", "壁飾", "閉市", "幣市", "避事", "拂士" }, ["bǐshǒuhuàjiǎo"] = { "比手劃腳", "比手畫腳" }, ["bìxié"] = { "辟邪", "避邪" }, ["bìxiù"] = { "壁宿", "畢宿" }, ["bìxū"] = { "必需", "必須" }, ["bíyān"] = { "鼻咽", "鼻煙" }, ["bìyì"] = { "敝邑", "裨益", "辟易", "避役" }, ["bǐyì"] = { "比翼", "筆意", "筆譯", "鄙意" }, ["bìyù"] = { "碧玉", "璧玉", "閉域", "斃獄"}, ["bǐzhí"] = { "比值", "筆直" }, ["bǐzuò"] = { "吡唑", "比作" }, ["bōchū"] = { "撥出", "播出" }, ["bōdòng"] = { "撥動", "波動" }, ["bōfú"] = { "播幅", "波幅" }, ["bógǔ"] = { "薄古", "薄姑", "博古" }, ["bókè"] = { "博客", "搏克" }, ["bōlán"] = { "波瀾", "波蘭" }, ["bólì"] = { "伯力", "薄利" }, ["bōluó"] = { "波羅", "菠蘿" }, ["bōluómì"] = { "波羅蜜", "菠蘿蜜" }, ["bómù"] = { "柏木", "薄暮" }, ["bōnong"] = { "撥弄", "播弄" }, ["bóqí"] = { "荸薺", "葧薺" }, ["bóshì"] = { "博士", "博識" }, ["bōshù"] = { "波束", "波數" }, ["bówén"] = { "僰文", "博文", "博聞" }, ["bówù"] = { "博物", "薄霧" }, ["bóxīng"] = { "勃興", "孛星" }, ["bóyì"] = { "博弈", "駁議" }, ["bōyīn"] = { "播音", "波音" }, ["bōzhǒng"] = { "嶓冢", "播種" }, ["bùbì"] = { "不必", "不避" }, ["bùbiàn"] = { "不便", "不變", "不辨" }, ["bùchéng"] = { "不成", "布城" }, ["bùdān"] = { "不丹", "不單" }, ["bùdào"] = { "佈道", "布道", "步道" }, ["bùdiàn"] = { "布店", "布甸" }, ["bùfá"] = { "不乏", "步伐" }, ["bùfǎ"] = { "不法", "步法" }, ["bùfáng"] = { "不妨", "布防" }, ["bùfù"] = { "不復", "不赴" }, ["bùfú"] = { "不服", "不符", "步幅" }, ["bùgān"] = { "不乾", "不干", "不甘" }, ["bùgōng"] = { "不公", "不恭" }, ["bùhé"] = { "不合", "不和" }, ["búhuì"] = { "不會", "不諱" }, ["bùjí"] = { "不及", "不吉", "布吉", "簿籍" }, ["bùjué"] = { "不絕", "不覺" }, ["bǔkè"] = { "卜課", "補課" }, ["bùlì"] = { "不利", "不力" }, ["bùmǎn"] = { "不滿", "布滿" }, ["bùqū"] = { "不屈", "部曲" }, ["bùshèn"] = { "不慎", "不甚" }, ["bùshì"] = { "不世", "不是", "不識", "不適" }, ["bùshí"] = { "不實", "不時", "不識", "布什" }, ["bùshǔ"] = { "部屬", "部署" }, ["bùxiáng"] = { "不祥", "不詳" }, ["bùxiào"] = { "不孝", "不肖" }, ["bùxiè"] = { "不屑", "不懈", "不謝" }, ["bùxíng"] = { "不形", "不行", "步行" }, ["bǔyǎng"] = { "哺養", "補養" }, ["bùyī"] = { "不一", "不依", "布依", "布衣" }, ["bùyì"] = { "不亦", "不意", "不易", "不義" }, ["bùyí"] = { "不宜", "不移", "不遺" }, ["bùyǔ"] = { "不予", "不語" }, ["bùzài"] = { "不再", "不在" }, ["bùzhèn"] = { "布陣", "部陣" }, ["bùzhǐ"] = { "不只", "不止" }, ["bùzhī"] = { "不支", "不知" }, ["bùzhì"] = { "佈置", "部置" }, ["búzhì"] = { "不治", "不致" }, ["bùzhìyú"] = { "不至於", "不致於" }, ["bùzhǔn"] = { "不准", "不準" }, ["bùzi"] = { "步子", "簿子", "餔子" }, ["bùzú"] = { "不足", "步卒", "部族" }, ["cáiduó"] = { "裁奪", "裁度" }, ["cǎifēng"] = { "採風", "采風" }, ["cáifù"] = { "才賦", "財富" }, ["cáijiǎn"] = { "裁剪", "裁減" }, ["cǎiléi"] = { "彩雷", "踩雷" }, ["cáilì"] = { "才力", "財力" }, ["cáiliáng"] = { "裁量", "財糧" }, ["càipǔ"] = { "菜圃", "菜譜" }, ["cáiwù"] = { "財務", "財物" }, ["cáiyuán"] = { "裁員", "財源" }, ["cáizhì"] = { "才智", "材質", "裁製" }, ["cǎndàn"] = { "慘淡", "慘澹", "黲淡" }, ["cānghuáng"] = { "倉惶", "倉皇", "蒼黃" }, ["cānyù"] = { "參與", "參預" }, ["cáozi"] = { "槽子", "艚子" }, ["cēncī"] = { "參差", "嵾嵳" }, ["cèshì"] = { "側室", "側視", "測試", "策士" }, ["chāchí"] = { "叉匙", "差池" }, ["chádào"] = { "查到", "茶道" }, ["chádiǎn"] = { "查點", "茶點" }, ["cháfǎng"] = { "察訪", "查訪" }, ["cháfáng"] = { "查房", "茶房" }, ["chāhuà"] = { "插畫", "插話" }, ["chájī"] = { "查緝", "茶几" }, ["chájué"] = { "察覺", "查覺" }, ["chákān"] = { "察勘", "查勘" }, ["chákàn"] = { "察看", "查看" }, ["chángdì"] = { "場地", "常棣" }, ["chǎngdì"] = { "場地", "敞地" }, ["chángdù"] = { "腸肚", "長度" }, ["chángdùn"] = { "長噸", "長盾" }, ["chángguǎn"] = { "場館", "腸管" }, ["chánghé"] = { "場合", "長河" }, ["chángjǐng"] = { "場景", "常景", "長井" }, ["chángjiǔ"] = { "常久", "長久" }, ["chángmìng"] = { "償命", "長命" }, ["chángnián"] = { "常年", "長年" }, ["chángqí"] = { "長崎", "長期" }, ["chángshān"] = { "常山", "長山", "長衫" }, ["chángshè"] = { "常設", "長社" }, ["chángshì"] = { "嘗試", "常事", "常侍", "常是", "常識", "長逝" }, ["chángshí"] = { "常時", "常識", "常食", "長時", "長石" }, ["chángshòu"] = { "嘗受", "長壽" }, ["chángtǒngwà"] = { "長筒襪", "長統襪" }, ["chángwěi"] = { "常委", "長尾" }, ["chángyán"] = { "常言", "腸炎", "腸癌" }, ["chángyè"] = { "腸液", "長夜" }, ["chǎngzhǎng"] = { "場長", "廠長" }, ["chángzhōu"] = { "常州", "長洲" }, ["chǎngzi"] = { "場子", "廠子" }, ["chángzi"] = { "場子", "腸子" }, ["chǎnqián"] = { "產前", "產鉗" }, ["chányán"] = { "讒言", "饞言" }, ["cháo'ěr"] = { "朝爾", "潮爾" }, ["cháofèng"] = { "嘲諷", "朝奉" }, ["chāojí"] = { "抄擊", "抄籍", "超級" }, ["chāojíběn"] = { "超極本", "超級本" }, ["chāoshēng"] = { "超升", "超生", "超聲" }, ["chāoxí"] = { "剿襲", "抄襲" }, ["chāoxiě"] = { "抄寫", "鈔寫" }, ["cháoxué"] = { "巢穴", "潮學" }, ["cháoyáng"] = { "朝陽", "潮陽" }, ["chāshǒu"] = { "叉手", "插手" }, ["chātóu"] = { "差頭", "插頭" }, ["chāyāo"] = { "叉腰", "插腰" }, ["cháyè"] = { "查夜", "茶業", "茶葉" }, ["chàzi"] = { "岔子", "杈子" }, ["chēchén"] = { "車塵", "車臣" }, ["chējiàn"] = { "車前", "車葥" }, ["chénfú"] = { "沉浮", "臣服" }, ["chéngbàn"] = { "懲辦", "承辦" }, ["chéngcái"] = { "成才", "成材" }, ["chéngdé"] = { "成德", "承德" }, ["chēnggāntiàogāo"] = { "撐桿跳高", "撐竿跳高" }, ["chénghuáng"] = { "城隍", "橙黃" }, ["chéngjī"] = { "乘機", "乘積", "成績" }, ["chéngjiàn"] = { "乘間", "城建", "成見", "承建" }, ["chéngjiāo"] = { "城郊", "成交" }, ["chénglì"] = { "成例", "成立" }, ["chéngmǎ"] = { "乘馬", "成馬" }, ["chéngrén"] = { "成人", "成仁" }, ["chéngsè"] = { "成色", "橙色" }, ["chéngshì"] = { "乘勢", "呈示", "城事", "城市", "成事", "承事", "程式", "誠是" }, ["chéngshí"] = { "乘時", "誠實" }, ["chéngshù"] = { "乘數", "橙樹" }, ["chénguāng"] = { "晨光", "辰光" }, ["chéngwén"] = { "呈文", "成文" }, ["chéngxiàn"] = { "呈獻", "呈現" }, ["chéngxiàng"] = { "丞相", "成像", "成象" }, ["chéngxìn"] = { "乘釁", "誠信" }, ["chéngxīn"] = { "成心", "誠心" }, ["chéngxíng"] = { "成型", "成形", "成行" }, ["chéngxùyuán"] = { "程序員", "程序猿", "程序媛" }, ["chéngyì"] = { "城邑", "懲役", "誠意" }, ["chéngyuán"] = { "城垣", "成員" }, ["chéngzhì"] = { "懲治", "承製", "誠摯" }, ["chéngzhōu"] = { "乘舟", "成周", "成州" }, ["chéngzhǔ"] = { "城主" , "盛貯" }, ["chénmò"] = { "沉沒", "沉默" }, ["chènqián"] = { "稱錢", "趁錢" }, ["chénshì"] = { "塵世", "塵事", "臣事" }, ["chénwù"] = { "塵務", "塵霧" }, ["chènxīn"] = { "稱心", "趁心" }, ["chényín"] = { "沈吟", "沉吟" }, ["chēpéng"] = { "車棚", "車篷" }, ["chēqián"] = { "車前", "車葥", "車錢" }, ["chèxiāo"] = { "徹消", "撤消", "撤銷" }, ["chēzhǎng"] = { "車掌", "車長" }, ["chídào"] = { "遲到", "馳道" }, ["chìdì"] = { "斥地", "赤地", "赤帝" }, ["chǐdù"] = { "尺度", "齒蠹" }, ["chìfēng"] = { "敕封", "赤峰" }, ["chǐgǔ"] = { "尺骨", "恥骨", "齒骨" }, ["chíhuǎn"] = { "弛緩", "遲緩" }, ["chìlì"] = { "斥力", "赤痢" }, ["chìliè"] = { "熾烈", "赤鴷" }, ["chīxiào"] = { "嗤笑", "痴笑" }, ["chíyán"] = { "池鹽", "遲延" }, ["chìzé"] = { "叱責", "斥責", "赤幘" }, ["chízi"] = { "匙子", "池子" }, ["chōngchōng"] = { "忡忡", "憧憧", "衝衝" }, ["chōngcì"] = { "沖刺", "衝刺" }, ["chōngfèn"] = { "充份", "充分" }, ["chóngfù"] = { "重復", "重複" }, ["chōngjī"] = { "充飢", "冲激", "沖積", "衝擊" }, ["chóngmíng"] = { "崇明", "重明", "重名" }, ["chōngshí"] = { "充實", "沖蝕" }, ["chōngxǐ"] = { "沖喜", "沖洗" }, ["chóngyáng"] = { "崇洋", "重洋", "重陽" }, ["chóngzhì"] = { "蟲豸", "重置" }, ["chóuchàng"] = { "惆悵", "酬唱" }, ["chóuhuà"] = { "籌劃", "籌畫" }, ["chǒuhuà"] = { "醜化", "醜話" }, ["chóurén"] = { "仇人", "稠人" }, ["chōuxiànghuà"] = { "抽象化", "抽象畫" }, ["chóuzi"] = { "籌子", "綢子" }, ["chuàngjiàn"] = { "創建", "創見" }, ["chuǎngjìn"] = { "闖勁", "闖進" }, ["chuāngkǒu"] = { "創口", "瘡口", "窗口" }, ["chuànglì"] = { "創利", "創立" }, ["chuàngshìjì"] = { "創世紀", "創世記" }, ["chuángzhào"] = { "床照", "床罩" }, ["chuánpiào"] = { "傳票", "船票" }, ["chuánshì"] = { "傳世", "傳示", "傳貰" }, ["chuánsòng"] = { "傳誦", "傳送", "傳頌" }, ["chuányì"] = { "傳意", "傳譯" }, ["chuānyuè"] = { "川越", "穿越" }, ["chūbǎn"] = { "出版", "初版" }, ["chúcǎo"] = { "鋤草", "除草" }, ["chūchǎng"] = { "出場", "出廠" }, ["chūgé"] = { "出格", "出閣" }, ["chūgōng"] = { "出宮", "出工", "出恭" }, ["chūguǐ"] = { "出軌", "出鬼" }, ["chūháng"] = { "出航", "初航" }, ["chuílián"] = { "垂憐", "垂簾" }, ["chūjí"] = { "出擊", "初級" }, ["chūjià"] = { "出價", "出嫁" }, ["chūjiè"] = { "出借", "出界" }, ["chùlì"] = { "畜力", "矗立" }, ["chǔncái"] = { "蠢才", "蠢材" }, ["chúnhòu"] = { "淳厚", "純厚", "醇厚" }, ["chūnhuà"] = { "春化", "春畫" }, ["chūnjì"] = { "春季", "春祭" }, ["chǔnǚzuò"] = { "處女作", "處女座" }, ["chūshēng"] = { "出生", "出聲", "初升", "初生", "初聲" }, ["chùsheng"] = { "畜牲", "畜生" }, ["chùshēng"] = { "畜牲", "畜生" }, ["chūshì"] = { "出世", "出事", "出仕", "出示", "初試" }, ["chūshǐ"] = { "出使", "初始" }, ["chúshī"] = { "廚師", "除濕" }, ["chǔshì"] = { "處世", "處事", "處士", "處室" }, ["chūshǒu"] = { "出手", "出首" }, ["chūtóu"] = { "出頭", "初頭" }, ["chūxiàn"] = { "出現", "出線" }, ["chúxíng"] = { "雛型", "雛形" }, ["chūxuě"] = { "出血", "初雪" }, ["chūzhěn"] = { "出診", "初診" }, ["chǔzhì"] = { "處治", "處置" }, ["chūzhōng"] = { "初中", "初衷" }, ["cíchén"] = { "詞臣", "辭塵" }, ["cíchéng"] = { "茨城", "辭呈" }, ["cígū"] = { "慈姑", "慈菇", "茨菰" }, ["cìhòu"] = { "伺候", "次後" }, ["címù"] = { "茨木", "詞目" }, ["cíqì"] = { "瓷器", "磁器", "辭氣" }, ["cìshēn"] = { "刺參", "刺身" }, ["císhí"] = { "瓷實", "磁石" }, ["cítóu"] = { "磁頭", "詞頭" }, ["cíxìng"] = { "磁性", "詞性", "雌性" }, ["cíxíng"] = { "詞形", "辭行" }, ["cíyì"] = { "詞意", "詞義" }, ["cíyuán"] = { "詞源", "辭源" }, ["cízǔ"] = { "詞組", "磁阻" }, ["cōngcōng"] = { "匆匆", "蔥蔥", "鏦鏦" }, ["cuàngǎi"] = { "竄改", "篡改" }, ["cuànnì"] = { "竄匿", "篡逆" }, ["cùjìn"] = { "促進", "醋勁" }, ["cūlǔ"] = { "粗魯", "粗鹵" }, ["cuòshī"] = { "措施", "錯失" }, ["cùxīn"] = { "簇新", "醋心" }, ["dǎbāo"] = { "打包", "打苞" }, ["dàbiàn"] = { "大便", "大變" }, ["dábiàn"] = { "答辨", "答辯" }, ["dàbù"] = { "大埔", "大步" }, ["dǎchà"] = { "打岔", "打杈" }, ["dàchéng"] = { "大乘", "大城", "大成" }, ["dàdì"] = { "大地", "大帝" }, ["dǎdòu"] = { "打逗", "打鬥" }, ["dàdù"] = { "大度", "大肚" }, ["dǎdǔn"] = { "打盹", "打躉" }, ["dǎdǔnr"] = { "打盹兒", "打躉兒" }, ["dàfú"] = { "大幅", "大福" }, ["dàgōng"] = { "大公", "大功", "大工" }, ["dǎgōng"] = { "打工", "打恭", "打躬" }, ["dàgū"] = { "大姑", "小姑" }, ["dàgǔ"] = { "大谷", "大鼓" }, ["dǎgǔ"] = { "打穀", "打鼓" }, ["dàguān"] = { "大官", "大觀" }, ["dàguǎn"] = { "大管", "大館" }, ["dàhé"] = { "大和", "大河" }, ["dàhuǒ"] = { "大夥", "大火" }, ["dǎhuǒ"] = { "打夥", "打火" }, ["dàidiàn"] = { "代墊", "代電", "帶電" }, ["dàijià"] = { "代價", "代駕" }, ["dàijìn"] = { "帶勁", "帶進", "殆盡" }, ["dàikè"] = { "代課", "待客" }, ["dàilǐng"] = { "代領", "帶領" }, ["dǎishì"] = { "歹事", "歹勢" }, ["dàizi"] = { "帶子", "袋子" }, ["dàjì"] = { "大薊", "大計" }, ["dàjiàng"] = { "大將", "大醬" }, ["dàjiě"] = { "大姐", "大解" }, ["dàjūn"] = { "大君", "大軍" }, ["dàlǎo"] = { "大佬", "大老" }, ["dàlù"] = { "大路", "大陸", "大鹿" }, ["dàmá"] = { "大蔴", "大麻" }, ["dàn'ānsuān"] = { "蛋氨酸", "蛋胺酸" }, ["dànbó"] = { "淡泊", "淡薄" }, ["dānchéng"] = { "丹誠", "單程" }, ["dāndān"] = { "單單", "眈眈" }, ["dàndìng"] = { "淡定", "蛋腚" }, ["dāndú"] = { "丹毒", "單獨" }, ["dàngfù"] = { "蕩婦", "蕩覆" }, ["dāngshì"] = { "當世", "當事" }, ["dāngshí"] = { "當實", "當時" }, ["dǎngyǔ"] = { "擋雨", "黨羽", "黨與" }, ["dǎngzhèng"] = { "黨政", "黨證" }, ["dàngzuò"] = { "當作", "當做" }, ["dànhuà"] = { "淡化", "淡話", "氮化" }, ["dànhuáng"] = { "淡黃", "蛋黃" }, ["dānjià"] = { "單價", "擔架" }, ["dānjù"] = { "丹劇", "單句", "單據" }, ["dànké"] = { "彈殼", "蛋殼" }, ["dānkǒngmù"] = { "单孔目", "單孔目" }, ["dānníng"] = { "丹寧", "單寧" }, ["dànqīng"] = { "淡青", "蛋清" }, ["dānshēn"] = { "丹參", "丹蔘", "單身" }, ["dǎnshí"] = { "膽石", "膽識" }, ["dāntiāo"] = { "單挑", "擔挑" }, ["dànxī"] = { "旦夕", "氮烯" }, ["dānxiàng"] = { "單向", "單相" }, ["dānxīn"] = { "丹心", "擔心", "殫心" }, ["dānyī"] = { "單一", "單衣" }, ["dànzi"] = { "彈子", "擔子" }, ["dǎnzi"] = { "撣子", "膽子" }, ["dào'àn"] = { "到案", "盜案" }, ["dàocháng"] = { "到場", "道場" }, ["dàochǎng"] = { "到場", "道場" }, ["dàocí"] = { "悼詞", "悼辭" }, ["dǎodàn"] = { "導彈", "搗蛋" }, ["dàodé"] = { "到得", "道德" }, ["dǎogé"] = { "倒戈", "倒閣" }, ["dàogē"] = { "倒戈", "悼歌" }, ["dàoguàn"] = { "倒灌", "道觀" }, ["dàojiā"] = { "到家", "道家" }, ["dāojiàn"] = { "刀劍", "刀箭" }, ["dǎojiào"] = { "倒嚼", "倒噍" }, ["dāojù"] = { "刀具", "刀鋸" }, ["dàomù"] = { "盜墓", "道木" }, ["dàoqí"] = { "到期", "到齊" }, ["dàoshì"] = { "倒是", "道士" }, ["dàoxíng"] = { "倒行", "道行" }, ["dàpáidàng"] = { "大排檔", "大牌檔" }, ["dàpáidǎng"] = { "大排檔", "大牌檔" }, ["dàqì"] = { "大器", "大氣" }, ["dàquán"] = { "大全", "大權" }, ["dàrén"] = { "大人", "大仁" }, ["dàrénbùjìxiǎorénguò"] = { "大人不計小人過", "大人不記小人過" }, ["dàshèng"] = { "大乘", "大勝", "大聖" }, ["dàshì"] = { "大事", "大勢", "大士" }, ["dàshū"] = { "大叔", "大書" }, ["dàshù"] = { "大數", "大樹" }, ["dàsì"] = { "大四", "大肆" }, ["dàtǒng"] = { "大桶", "大筒", "大統" }, ["dàwèi"] = { "大位", "大衛" }, ["dàwù"] = { "大務", "大悟" }, ["dàxià"] = { "大夏", "大廈" }, ["dàyáng"] = { "大洋", "大陽" }, ["dǎyàng"] = { "打樣", "打烊" }, ["dàyī"] = { "大一", "大衣", "大醫" }, ["dàyì"] = { "大意", "大義" }, ["dàyú"] = { "大庾", "大於" }, ["dàyǔ"] = { "大禹", "大語", "大雨" }, ["dàzhì"] = { "大志", "大智", "大致" }, ["dàzhǐ"] = { "大旨", "大趾" }, ["dédào"] = { "得到", "得道" }, ["dékèsàsī"] = { "得克薩斯", "德克薩斯" }, ["délì"] = { "得利", "得力" }, ["délǜfēng"] = { "得律風", "德律風" }, ["délǔyī"] = { "德魯伊", "德鲁伊" }, ["déméiyīn"] = { "得梅因", "德梅因" }, ["dēngjī"] = { "登基", "登機" }, ["dēnglù"] = { "登錄", "登陸" }, ["dèngzi"] = { "凳子", "鐙子" }, ["déshì"] = { "得勢", "得士", "德士" }, ["déxìng"] = { "德性", "德行" }, ["déyǐ"] = { "得以", "德乙" }, ["déyì"] = { "得意", "得益" }, ["diǎnbō"] = { "點撥", "點播" }, ["diànchǎng"] = { "電場", "電廠" }, ["diàngǎn"] = { "電感", "電桿" }, ["diànhuà"] = { "電化", "電話" }, ["diǎnjí"] = { "典籍", "點擊" }, ["diànjī"] = { "奠基", "電擊", "電機" }, ["diànjì"] = { "奠祭", "惦記" }, ["diànjí"] = { "電擊", "電極" }, ["diǎnjī"] = { "點擊", "點飢", "點積" }, ["diānkuáng"] = { "顛狂", "癲狂" }, ["diànmén"] = { "店門", "電門" }, ["diǎnmíng"] = { "點名", "點明" }, ["diànqì"] = { "電器", "電氣" }, ["diànshì"] = { "殿試", "電勢", "電視" }, ["diànwū"] = { "店屋", "玷污" }, ["diànxià"] = { "奠下", "殿下" }, ["diànyóu"] = { "電郵", "靛油" }, ["diànyuán"] = { "店員", "電源" }, ["diàodài"] = { "吊帶", "吊袋" }, ["diàoxiàn"] = { "吊線", "掉線", "釣線" }, ["diàoyútáiqúndǎo"] = { "釣魚台群島", "釣魚臺群島" }, ["diàozhēn"] = { "吊針", "掉幀" }, ["diàozi"] = { "吊子", "調子", "銚子" }, ["dìbǎo"] = { "地保", "地堡" }, ["dìdào"] = { "地道", "帝道" }, ["dìdòng"] = { "地動", "地洞" }, ["diéxuè"] = { "啑血", "喋血" }, ["dīfáng"] = { "堤防", "提防" }, ["dìjī"] = { "地基", "地積" }, ["dìjiāo"] = { "締交", "遞交" }, ["dìlì"] = { "地利", "地力", "地栗", "帝力" }, ["dìngdān"] = { "定單", "訂單" }, ["dīngdāng"] = { "丁當", "叮噹", "叮當" }, ["dìngdìng"] = { "定定", "訂定" }, ["dīngdōng"] = { "丁冬", "叮咚" }, ["dǐngfēng"] = { "頂峰", "頂風" }, ["dìnggòu"] = { "定購", "訂購" }, ["dìnghuò"] = { "定貨", "訂貨" }, ["dìnglì"] = { "定例", "定力", "訂立" }, ["dìnglǐ"] = { "定理", "定禮" }, ["dǐnglì"] = { "鼎力", "鼎立" }, ["dìngshūjī"] = { "訂書機", "釘書機" }, ["dìngwèi"] = { "定位", "訂位" }, ["dìngxíng"] = { "定型", "定形" }, ["dǐngzhēn"] = { "頂真", "頂針" }, ["dìqì"] = { "地契", "地氣" }, ["dìshì"] = { "地勢", "帝室", "諦視" }, ["díshì"] = { "敵視", "的士" }, ["dìwèi"] = { "地位", "帝位" }, ["dǐxiàn"] = { "底線", "底限" }, ["dìxiàn"] = { "地線", "地陷" }, ["dìyī"] = { "地衣", "第一" }, ["díyì"] = { "嫡裔", "敵意" }, ["dìyù"] = { "地域", "地獄" }, ["dìzhì"] = { "地質", "帝制", "遞質" }, ["dìzhí"] = { "地質", "遞質" }, ["dòngbīng"] = { "凍冰", "動兵" }, ["dōngbùzhōu"] = { "東㳍洲", "東布洲" }, ["dōngdōng"] = { "東東", "鼕鼕" }, ["dōngguā"] = { "冬瓜", "東瓜" }, ["dònghè"] = { "恫喝", "恫嚇" }, ["dōngjiā"] = { "東加", "東家" }, ["dōngjīng"] = { "東京", "東經" }, ["dòngliáng"] = { "棟梁", "棟樑" }, ["dǒngshì"] = { "懂事", "董事" }, ["dòngtǔ"] = { "凍土", "動土" }, ["dōngyíng"] = { "東瀛", "東營" }, ["dòngyuán"] = { "凍原", "動員" }, ["dōngyuè"] = { "冬月", "東嶽" }, ["dòujī"] = { "豆雞", "鬥雞" }, ["dòumiáo"] = { "痘苗", "豆苗" }, ["dòushì"] = { "豆豉", "鬥士" }, ["dòuzhì"] = { "鬥志", "鬥智" }, ["duàndài"] = { "斷代", "緞帶" }, ["duānlì"] = { "端粒", "端麗" }, ["duànzi"] = { "段子", "緞子" }, ["dùguò"] = { "度過", "渡過" }, ["duìbù"] = { "對簿", "隊部" }, ["duìhuàn"] = { "兌換", "對換" }, ["duìyì"] = { "對奕", "對譯" }, ["duìyuán"] = { "對圓", "隊員" }, ["duìzhèng"] = { "對症", "對證" }, ["duìzhì"] = { "對峙", "對治", "對置", "對質" }, ["dújiǎoxì"] = { "獨腳戲", "獨角戲" }, ["dùkǒu"] = { "杜口", "渡口" }, ["dúlì"] = { "獨力", "獨立" }, ["dùnhépànluósītuōfū"] = { "頓河畔羅斯托夫", "頓河畔羅斯託夫" }, ["duōshì"] = { "多事", "多士", "多市" }, ["duòshǒu"] = { "剁手", "舵手" }, ["duōyú"] = { "多於", "多餘" }, ["dúshé"] = { "毒舌", "毒蛇" }, ["dúwù"] = { "毒物", "毒霧", "讀物" }, ["dúyán"] = { "毒言", "讀研" }, ["dǔzhù"] = { "堵住", "賭注" }, ["èguǐ"] = { "惡鬼", "餓鬼" }, ["èguó"] = { "俄國", "鄂國" }, ["èhuà"] = { "惡化", "顎化", "齶化" }, ["èliè"] = { "惡劣", "齶裂" }, ["éméi"] = { "峨嵋", "峨眉", "蛾眉" }, ["éméishān"] = { "峨嵋山", "峨眉山" }, ["èmèng"] = { "噩夢", "惡夢" }, ["ēnshī"] = { "恩師", "恩施" }, ["èxìng"] = { "惡性", "惡行" }, ["éyán"] = { "俄延", "訛言" }, ["èyì"] = { "惡意", "遏抑" }, ["éyǔ"] = { "俄語", "俄雨" }, ["èyùn"] = { "惡運", "噩運", "厄運" }, ["ézi"] = { "蛾子", "額子" }, ["fāfèn"] = { "發奮", "發憤" }, ["fǎgǔ"] = { "法古" , "法鼓" }, ["fǎjì"] = { "法紀", "髮髻" }, ["fājué"] = { "發掘", "發覺" }, ["fàláng"] = { "法郎", "髮廊" }, ["fǎláng"] = { "法郎", "髮廊" }, ["fànběn"] = { "梵本", "範本" }, ["fǎncháng"] = { "反常", "返場" }, ["fǎnchǎng"] = { "返場", "返廠" }, ["fànchóu"] = { "犯愁", "範疇" }, ["fānchuán"] = { "帆船", "翻船" }, ["fǎnchúnxiāngjī"] = { "反脣相稽", "反脣相譏" }, ["fǎnfù"] = { "反復", "反覆" }, ["fāngcè"] = { "方冊", "方策" }, ["fángfǔ"] = { "防府", "防腐" }, ["fāngjì"] = { "方劑", "方技" }, ["fāngjīn"] = { "方今", "方巾" }, ["fǎngōng"] = { "反攻", "返工" }, ["fàngqì"] = { "放棄", "放氣" }, ["fàngshēng"] = { "放生", "放聲" }, ["fángshì"] = { "坊市", "妨事", "房事", "房室", "房市", "防蝕" }, ["fāngshì"] = { "坊市", "方士", "方式" }, ["fāngtīng"] = { "方亭", "芳烴" }, ["fǎngǔ"] = { "反古", "反骨" }, ["fāngwèi"] = { "方位", "芳味" }, ["fánlí"] = { "樊籬", "藩籬" }, ["fànlì"] = { "範例", "飯粒" }, ["fánrén"] = { "凡人", "煩人" }, ["fánshì"] = { "凡事", "凡是", "繁峙" }, ["fánsuǒ"] = { "煩瑣", "繁瑣" }, ["fànwén"] = { "梵文", "範文" }, ["fànyì"] = { "梵譯", "泛溢", "犯意" }, ["fànyīn"] = { "梵音", "泛音" }, ["fǎnyìng"] = { "反應", "反映" }, ["fànyǔ"] = { "梵宇", "梵語" }, ["fānyuè"] = { "翻越", "翻閱" }, ["fǎnzhèng"] = { "反正", "反證" }, ["fārénshēnxǐng"] = { "發人深省", "發人深醒" }, ["fāshēng"] = { "發生", "發聲" }, ["fǎshī"] = { "法師", "法施" }, ["fāxiàn"] = { "發現", "發見" }, ["fǎxiàng"] = { "法相", "法像", "法象" }, ["fāxiào"] = { "發笑", "發酵" }, ["fāyán"] = { "發炎", "發言" }, ["fǎyī"] = { "法衣", "法醫" }, ["fǎzhì"] = { "法制", "法治" }, ["fēidàn"] = { "非但", "飛彈" }, ["fèidiǎn"] = { "廢典", "沸點" }, ["fèilì"] = { "廢立", "費力" }, ["féilì"] = { "肥力", "腓利" }, ["fēilǜbīn"] = { "菲律濱", "菲律賓" }, ["fèiqì"] = { "廢棄", "廢氣" }, ["fēishāzǒushí"] = { "飛沙走石", "飛砂走石" }, ["fèiyán"] = { "肺炎", "肺癌" }, ["fēiyì"] = { "非裔", "非議" }, ["fēiyú"] = { "飛魚", "鯡魚" }, ["fēiyuè"] = { "飛越", "飛躍" }, ["fèizhǐ"] = { "廢址", "廢止", "廢紙" }, ["fēnbiàn"] = { "分辨", "分辯" }, ["fēnbù"] = { "分佈", "分部" }, ["fēnchà"] = { "分叉", "分岔", "分杈" }, ["fènfèn"] = { "忿忿", "憤憤" }, ["fēnfù"] = { "分付", "吩咐" }, ["fēngcǎi"] = { "丰采", "風采" }, ["fēngcháo"] = { "蜂巢", "風潮" }, ["fēngchén"] = { "封臣", "風塵" }, ["fēngchéng"] = { "豐成", "封城" }, ["fēngchuān"] = { "封川", "豐川" }, ["fēngdiào"] = { "瘋掉", "風調" }, ["fēngdù"] = { "豐度", "風度" }, ["fēngháng"] = { "封航", "風航" }, ["fēnghòu"] = { "封后", "蜂后", "豐厚" }, ["fēnghuà"] = { "瘋話", "風化" }, ["fēnghuǒ"] = { "烽火", "風火" }, ["fēngkǒu"] = { "封口", "風口" }, ["fēnglì"] = { "鋒利", "風力" }, ["fēngmào"] = { "豐茂", "風帽", "風貌" }, ["fēngniǎo"] = { "蜂鳥", "風鳥" }, ["fēngqiáo"] = { "楓橋", "豐橋" }, ["fēngshā"] = { "封殺", "風沙" }, ["fēngshàn"] = { "封禪", "風扇" }, ["fēngshén"] = { "封神", "風神" }, ["fēngshèng"] = { "封聖", "豐盛" }, ["fēngtáng"] = { "楓糖", "蜂糖" }, ["fēngtǔ"] = { "封土", "風土" }, ["fēngxiàng"] = { "封相", "風向" }, ["fēngxiāng"] = { "蜂箱", "風箱" }, ["fēngyùn"] = { "丰韻", "風韻" }, ["fēngzī"] = { "豐姿", "風姿" }, ["fēnhóng"] = { "分洪", "分紅" }, ["fēnliè"] = { "分列", "分裂" }, ["fēnliú"] = { "分流", "分餾" }, ["fěnmiàn"] = { "粉面", "粉麵" }, ["fènnù"] = { "奮怒", "忿怒", "憤怒" }, ["fēnqí"] = { "分期", "分歧" }, ["fēnwéi"] = { "分為", "氛圍" }, ["fēnzhēng"] = { "分爭", "紛爭" }, ["fēnzhī"] = { "分之", "分支", "分枝" }, ["fǔbài"] = { "俯拜", "腐敗" }, ["fùběn"] = { "副本", "複本", "附本" }, ["fùbì"] = { "復辟", "腹壁" }, ["fǔbì"] = { "撫髀", "輔幣", "輔弼" }, ["fúbīng"] = { "伏兵", "浮冰" }, ["fùchá"] = { "復查", "複查" }, ["fúchén"] = { "拂塵", "浮塵", "浮沉" }, ["fùchū"] = { "付出", "復出" }, ["fúdì"] = { "伏地", "福地" }, ["fùdiàn"] = { "複電", "負電" }, ["fùdú"] = { "複讀", "復讀" }, ["fúfèn"] = { "福分", "蝠鱝" }, ["fǔfú"] = { "俯伏", "黼黻" }, ["fùguó"] = { "富國", "復國" }, ["fùhé"] = { "復合", "複合", "複核", "覆核" }, ["fùhè"] = { "負荷", "附和" }, ["fùhuì"] = { "傅會", "赴會", "附會" }, ["fùjì"] = { "附寄", "附記", "附驥" }, ["fùjiā"] = { "富家", "附加" }, ["fùjiàn"] = { "復健", "附件" }, ["fǔjūn"] = { "府君", "撫軍" }, ["fùkān"] = { "副刊", "復刊" }, ["fùkē"] = { "婦科", "副科", "傅科" }, ["fùlǐ"] = { "富里", "腹裏" }, ["fùlì"] = { "富麗", "複利" }, ["fúlì"] = { "扶立", "浮力", "福利" }, ["fúlíng"] = { "扶靈", "茯苓", "涪陵" }, ["fúlù"] = { "伏路", "福祿" }, ["fùmò"] = { "腹膜", "覆沒" }, ["fūpí"] = { "膚皮", "麩皮" }, ["fùqì"] = { "付訖", "負氣" }, ["fúqì"] = { "服氣", "福氣" }, ["fúqiǎn"] = { "浮淺", "浮潛" }, ["fùrén"] = { "婦人", "富人" }, ["fùshāng"] = { "富商", "負傷" }, ["fùshěn"] = { "复审", "復審" }, ["fúshì"] = { "伏事", "拂拭", "服事", "服侍", "服式", "服飾", "浮世" }, ["fùshí"] = { "副食", "富實" }, ["fùshì"] = { "富士", "複式", "複試" }, ["fúshí"] = { "服食", "浮石" }, ["fǔshí"] = { "腐蝕", "釜石" }, ["fùshǒu"] = { "副手", "覆手" }, ["fùshù"] = { "复述", "富庶", "復述", "複數", "複述", "負數" }, ["fúshū"] = { "扶疏", "服輸" }, ["fùshǔ"] = { "負鼠", "附屬" }, ["fùshuǐ"] = { "洑水", "腹水" }, ["fútè"] = { "伏特", "福特" }, ["fútú"] = { "浮圖", "浮屠" }, ["fùxí"] = { "複習", "赴席" }, ["fúxiàn"] = { "伏線", "浮現" }, ["fùxīn"] = { "腹心", "負心", "負薪", "阜新" }, ["fùxìng"] = { "複姓", "複性", "覆姓", "負性", "賦性" }, ["fùyán"] = { "附言", "複鹽", "副研" }, ["fǔyǎng"] = { "俯仰", "撫養" }, ["fùyáng"] = { "阜陽", "富陽", "復陽" }, ["fùyè"] = { "副業", "父業", "複葉" }, ["fùyì"] = { "復議", "負義", "附議" }, ["fúyì"] = { "扶翼", "服役" }, ["fùyìn"] = { "付印", "複印" }, ["fùyǒu"] = { "富友", "富有", "複有", "負有", "賦有", "附有" }, ["fúyóu"] = { "浮游", "蜉蝣" }, ["fùyǔ"] = { "付與", "腹語", "賦予" }, ["fùyú"] = { "富於", "富餘", "負於", "負隅", "附於", "鮒愚", "鰒魚" }, ["fùyù"] = { "富裕", "馥郁" }, ["fǔyù"] = { "撫喻", "撫育", "撫諭" }, ["fùyuán"] = { "富源", "復原", "復員" }, ["fùyuē"] = { "負約", "赴約" }, ["fùzé"] = { "負責", "附則" }, ["fǔzhèng"] = { "斧正", "輔政" }, ["fùzhí"] = { "副職", "復執", "復職", "父執", "負值", "賦值" }, ["fúzhí"] = { "扶植", "扶直" }, ["fùzhòng"] = { "複種", "負重" }, ["fúzhù"] = { "扶助", "縛住" }, ["fùzhù"] = { "縛住", "附注" }, ["fùzǐ"] = { "付梓", "父子", "附子" }, ["gába"] = { "嘎叭", "嘎巴" }, ["gǎidìng"] = { "改定", "改訂" }, ["gàilán"] = { "芥藍", "芥蘭" }, ["gàilüè"] = { "概略", "概要" }, ["gàimá"] = { "幹嗎", "幹嘛" }, ["gàishù"] = { "概數", "概述" }, ["gàmá"] = { "幹嗎", "幹嘛" }, ["gān'ānsuān"] = { "甘氨酸", "甘胺酸" }, ["gāncǎo"] = { "乾草", "甘草" }, ["gǎndào"] = { "感到", "趕到" }, ["gānfàn"] = { "乾飯", "干犯" }, ["gāngà"] = { "尲尬", "尷尬" }, ["gāngcái"] = { "剛才", "鋼材" }, ["gāngguǎn"] = { "缸管", "鋼管" }, ["gāngmáo"] = { "剛毛", "肛毛" }, ["gǎngshì"] = { "港市", "港式" }, ["gānguǒ"] = { "乾果", "柑果" }, ["gānguō"] = { "乾鍋", "坩堝" }, ["gāngyào"] = { "剛要", "綱要" }, ["gānjiāng"] = { "乾薑", "干將" }, ["gānjú"] = { "柑橘", "甘菊" }, ["gǎnkǎi"] = { "感嘅", "感慨" }, ["gànmá"] = { "幹嗎", "幹嘛" }, ["gānsù"] = { "甘肅", "肝素" }, ["gānxīn"] = { "乾薪", "甘心" }, ["gānyán"] = { "肝炎", "肝癌" }, ["gānyóu"] = { "甘油", "肝油" }, ["gānzhè"] = { "甘蔗", "竿蔗" }, ["gānzi"] = { "杆子", "柑子", "竿子" }, ["gāofēng"] = { "高峰", "高風" }, ["gāojià"] = { "高價", "高架" }, ["gǎojiàn"] = { "稿件", "稿薦" }, ["gāoliáng"] = { "膏粱", "高梁", "高樑", "高粱", "高涼" }, ["gāolú"] = { "高爐", "高盧" }, ["gāomén"] = { "皋門", "高門" }, ["gāoqiáng"] = { "高牆", "高強" }, ["gāoshēng"] = { "高升", "高聲" }, ["gāotáng"] = { "高唐", "高堂" }, ["gāoxiào"] = { "高效", "高校" }, ["gāoyáng"] = { "羔羊", "高陽" }, ["gāoyào"] = { "膏藥" }, ["gāoyú"] = { "膏腴", "高於" }, ["gāozi"] = { "篙子", "羔子", "膏子" }, ["gāoyú"] = { "膏腴", "高於" }, ["gāzhiwō"] = { "夾肢窩", "胳肢窩" }, ["gèbié"] = { "個別", "各別" }, ["gègè"] = { "個個", "各個", "各各" }, ["gēge"] = { "咯咯", "哥哥" }, ["gējù"] = { "割據", "歌劇" }, ["gélí"] = { "蛤蜊", "隔離" }, ["gémó"] = { "膈膜", "隔膜" }, ["gémò"] = { "膈膜", "隔膜" }, ["gēngshēn"] = { "庚申", "更深" }, ["gēr"] = { "哥兒", "歌兒" }, ["gér"] = { "嗝兒", "格兒" }, ["gèrén"] = { "個人", "各人" }, ["géshì"] = { "格式", "隔世" }, ["gèwèi"] = { "個位", "各位" }, ["gēzhī"] = { "咯吱", "胳肢" }, ["gèzi"] = { "個子", "各子" }, ["gézi"] = { "格子", "閣子" }, ["gēzi"] = { "歌子", "鴿子" }, ["gōngbù"] = { "公佈", "公布", "工部" }, ["gōngchǎng"] = { "工場", "工廠" }, ["gōngchéng"] = { "宮城", "工程", "攻城", "功成", "恭城" }, ["gōngdào"] = { "公道", "弓道" }, ["gōngdé"] = { "公德", "功德" }, ["gōngdì"] = { "公地", "工地" }, ["gōngdiàn"] = { "供電", "宮殿" }, ["gōngdú"] = { "公牘", "工讀", "攻讀" }, ["gōngduàn"] = { "公斷", "工段" }, ["gōngfā"] = { "攻伐", "攻發" }, ["gōngfáng"] = { "公房", "工房", "攻防" }, ["gōngfēn"] = { "公分", "工分" }, ["gōngfu"] = { "功夫", "工夫" }, ["gōnggǔ"] = { "宮古", "肱骨" }, ["gōngguān"] = { "公關", "攻關" }, ["gōnghuì"] = { "公會", "工會" }, ["gōngjì"] = { "公祭", "功績" }, ["gōngjī"] = { "公積", "公雞", "功績", "攻擊" }, ["gōngjià"] = { "功架", "工價", "工架" }, ["gōngjiàn"] = { "公建", "工件", "工建", "弓箭" }, ["gōngjiāo"] = { "公交", "工交" }, ["gōngjīn"] = { "公斤", "宮津" }, ["gōngjué"] = { "公決", "公爵" }, ["gōngkè"] = { "公克", "功課", "攻克" }, ["gōnglì"] = { "公例", "公曆", "公立", "功利", "功力", "工力" }, ["gōnglǐ"] = { "公理", "公里" }, ["gōngmíng"] = { "公明", "功名" }, ["gōngmǔ"] = { "公母", "公畝" }, ["gòngpǐn"] = { "供品", "貢品" }, ["gōngqí"] = { "宮崎", "工期" }, ["gōngrèn"] = { "供認", "公認" }, ["gōngrén"] = { "公人", "宮人", "工人", "弓人", "恭人" }, ["gōngshāng"] = { "工傷", "工商" }, ["gōngshè"] = { "公社", "公設" }, ["gōngshí"] = { "工時", "供石", "供食" }, ["gōngshǐ"] = { "公使", "宮室", "弓矢" }, ["gōngshì"] = { "公事", "公室", "公式", "公示", "宮室", "工事", "攻勢" }, ["gòngshí"] = { "共時", "共識" }, ["gòngshì"] = { "共事", "共識" }, ["gōngshǒu"] = { "弓手", "攻守" }, ["gōngshù"] = { "供述", "公署" }, ["gōngsī"] = { "公司", "公私" }, ["gōngtóu"] = { "公投", "工頭" }, ["gōngwéi"] = { "宮闈", "恭維", "攻圍" }, ["gōngwù"] = { "公務", "公物", "工務" }, ["gōngxiào"] = { "功效", "工效" }, ["gōngxīn"] = { "公心", "工薪", "攻心" }, ["gōngxíng"] = { "宮刑", "弓形", "躬行" }, ["gōngyè"] = { "公業", "功業", "宮掖", "工業", "恭謁" }, ["gōngyì"] = { "公意", "公益", "公義", "公議", "工役", "工藝" }, ["gōngyìng"] = { "供應", "公映" }, ["gōngyòng"] = { "供用", "公用", "功用" }, ["gōngyǒu"] = { "公有", "工友" }, ["gōngyú"] = { "公餘", "工於", "工餘" }, ["gōngyuán"] = { "公元", "公園" }, ["gōngzhèng"] = { "公正", "公證", "工正" }, ["gòubìng"] = { "詬病", "購併" }, ["gòubuzháo"] = { "夠不著/够不着", "構不著/构不着" }, ["gòudezháo"] = { "夠得著/够得着", "搆得著/构得着" }, ["gòujiàn"] = { "構件", "構建" }, ["gōulián"] = { "勾聯", "勾連" }, ["gōutōng"] = { "勾通", "溝通" }, ["gǔ'ānsuān"] = { "穀氨酸", "穀胺酸" }, ["guàbāo"] = { "刈包", "割包" }, ["guāhúdāo"] = { "刮胡刀", "刮鬍刀" }, ["guǎigùn"] = { "拐棍", "枴棍", "柺棍" }, ["guǎizhàng"] = { "拐杖", "枴杖", "柺杖" }, ["guān'ài"] = { "關愛", "關礙", "關隘" }, ["guàncháng"] = { "慣常", "灌腸" }, ["guāndǎo"] = { "官倒", "關島" }, ["guānghé"] = { "光合", "光和" }, ["guānghuá"] = { "光滑", "光華" }, ["guǎngxīzhuàngzúzìzhìqū"] = { "廣西壯族自治區", "廣西僮族自治區" }, ["guānjì"] = { "官紀", "官騎" }, ["guānlián"] = { "關聯", "關連" }, ["guānyuán"] = { "官員", "關員" }, ["guānzhào"] = { "觀照", "關照" }, ["guànzhù"] = { "灌注", "貫注" }, ["guànzi"] = { "冠子", "罐子" }, ["guǎnzi"] = { "管子", "館子" }, ["guāpí"] = { "刮皮", "瓜皮" }, ["guàxiàn"] = { "掛線", "卦限" }, ["gǔbǎn"] = { "古板", "鼓板" }, ["gǔběn"] = { "古本", "股本" }, ["gūdān"] = { "估單", "孤單" }, ["gǔdìng"] = { "古定", "古錠" }, ["gǔdìngdāo"] = { "古定刀", "古錠刀" }, ["gūfù"] = { "姑父", "辜負" }, ["gǔgé"] = { "骨格", "骨骼" }, ["gùgōng"] = { "僱工", "故宮" }, ["gǔgǔ"] = { "汩汩", "股股", "股骨", "鼓鼓" }, ["gǔhuà"] = { "古畫", "古話", "骨化" }, ["gǔhuò"] = { "蠱惑", "鼓惑" }, ["guīchéng"] = { "歸程", "規程", "龜城" }, ["guǐdào"] = { "軌道", "鬼道" }, ["guīfàn"] = { "規範", "閨範" }, ["guīfèi"] = { "硅肺", "規費" }, ["guīgāng"] = { "硅鋼", "龜岡" }, ["guīgé"] = { "規格", "閨閣" }, ["guǐguài"] = { "詭怪", "鬼怪" }, ["guīhuà"] = { "歸化", "硅化", "規劃", "規化" }, ["guǐjì"] = { "詭計", "軌跡", "鬼計" }, ["guījiàn"] = { "規諫", "龜鑒" }, ["guīlì"] = { "瑰麗", "規例" }, ["guǐmèi"] = { "鬼妹", "鬼魅" }, ["guīnà"] = { "歸納", "規那" }, ["guìyuán"] = { "桂圓", "櫃員" }, ["guīzhāng"] = { "規章", "圭璋", "珪璋" }, ["guǐzi"] = { "鬼仔", "鬼子" }, ["gūjì"] = { "估計", "孤寂" }, ["gǔjī"] = { "古跡", "滑稽" }, ["gùjí"] = { "固疾", "痼疾", "錮疾", "顧及" }, ["gùjì"] = { "故伎", "顧忌" }, ["gǔjià"] = { "股價", "骨架" }, ["gǔkē"] = { "古柯", "骨科" }, ["gǔlì"] = { "古力", "古麗", "穀粒", "股利", "骨力", "鼓勵" }, ["gūlu"] = { "咕嚕", "軲轆", "骨碌" }, ["gǔmó"] = { "骨膜", "鼓膜" }, ["gǔnzi"] = { "滾子", "磙子", "輥子" }, ["guòdù"] = { "過度", "過渡" }, ["guójì"] = { "國祭", "國紀", "國計", "國際" }, ["guójūn"] = { "國君", "國軍" }, ["guólì"] = { "國利", "國力", "國曆", "國立" }, ["guòlǜ"] = { "過慮", "過濾" }, ["guóshì"] = { "國事", "國勢", "國是" }, ["guǒzi"] = { "果子", "餜子" }, ["gǔqì"] = { "骨器", "骨氣", "鼓氣" }, ["gǔshì"] = { "古式", "股市" }, ["gǔshí"] = { "古時", "穀食" }, ["gǔshū"] = { "古書", "鼓書" }, ["gùtài"] = { "固態", "故態" }, ["gǔwù"] = { "古物", "穀物" }, ["gǔxī"] = { "古稀", "股息" }, ["gùyōngbīng"] = { "僱傭兵", "雇佣兵", "雇傭兵" }, ["gùyǒu"] = { "固友", "固有", "故友", "故有" }, ["gǔyǔ"] = { "古語", "穀雨" }, ["gùyuán"] = { "僱員", "固原" }, ["gǔzhǎng"] = { "股掌", "股長", "鼓掌" }, ["gǔzhì"] = { "古制", "骨質" }, ["gùzhǔ"] = { "僱主", "故主", "顧主" }, ["gǔzi"] = { "穀子", "股子", "骨子" }, } return export h5eifltw2a20yjzufwdamnsxg48azic Modul:ja-kanji-readings 828 160426 628923 2024-11-06T16:28:26Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_ja = require("Module:ja") local m_str_utils = require("Module:string utilities") local concat = table.concat local find = m_str_utils.find local get_script = require("Module:scripts").getByCode local hira_to_kata = m_ja.hira_to_kata local insert = table.insert local kana_to_romaji = require("Module:Hrkt-translit").tr local kata_to_hira = m_ja.kata_to_hira local gmatch = m_str_utils.gmatch local match = m_str_utils.match...“ yozuvi orqali yangi sahifa yaratildi 628923 Scribunto text/plain local export = {} local m_ja = require("Module:ja") local m_str_utils = require("Module:string utilities") local concat = table.concat local find = m_str_utils.find local get_script = require("Module:scripts").getByCode local hira_to_kata = m_ja.hira_to_kata local insert = table.insert local kana_to_romaji = require("Module:Hrkt-translit").tr local kata_to_hira = m_ja.kata_to_hira local gmatch = m_str_utils.gmatch local match = m_str_utils.match local split = m_str_utils.split local Jpan = get_script("Jpan") -- local katakana_script = get_script("Kana") local Hira = get_script("Hira") local PAGENAME = mw.loadData("Module:headword/data").pagename local NAMESPACE = mw.title.getCurrentTitle().nsText -- Only used by commented-out code. -- local data = mw.loadData("Module:ja/data") local CONCAT_SEP = ', ' local labels = { { text = "Go-on", text2 = "goon", classification = "on", }, { text = "Kan-on", text2 = "kan'on", classification = "on", }, { text = "Sō-on", text2 = "sōon", classification = "on", }, { text = "Tō-on", text2 = "tōon", classification = "on", }, { text = "Kan’yō-on", text2 = "kan'yōon", classification = "on", }, { entry = "on'yomi", text = "On", text2 = "on", classification = "on", unclassified = " (unclassified)", }, { entry = "kun'yomi", text = "Kun", text2 = "kun", classification = "kun", }, { text = "Nanori", text2 = "nanori", classification = "nanori", }, } local function track(code) require("Module:debug").track("ja-kanji-readings/" .. code) end local function plain_link(data) data.term = data.term:gsub('[%.%- ]', '') -- 「かな-し.い」→「かなしい」, 「も-しく は」→「もしくは」 data.tr = data.tr and data.tr:gsub('[%.%-]', '') or '-' data.sc = match(data.term:gsub('[%z\1-\127]', ''), '[^' .. Hira:getCharacters() .. ']') and Jpan or Hira data.pos = data.pos ~= '' and data.pos or nil return require("Module:links").full_link(data, "term") --"term" makes italic end --[=[ Copied from [[Module:ja]] on 2017/6/14. Replaces the code in Template:ja-readings which accepted kanji readings, and displayed them in a consistent format. Substantial change in function was introduced in https://en.wiktionary.org/w/index.php?diff=46057625 ]=] function export.show(frame) local args = require("Module:parameters").process(frame:getParent().args, { ["goon"] = {}, ["kanon"] = {}, ["soon"] = {}, ["toon"] = {}, ["on"] = {}, ["kanyoon"] = {}, ["kun"] = {}, ["nanori"] = {}, ["pagename"] = {}, }) local lang_code = frame.args[1] or 'ja' local lang = require'Module:tili'.getByCode(lang_code) local lang_name = lang:getCanonicalName() if args.pagename and NAMESPACE == "" then error("The pagename parameter should not be used in entries, as it is only for testing.") end local pagename = args.pagename or PAGENAME local yomi_data = mw.loadData("Module:ja/data/jouyou-yomi").yomi -- this holds the finished product composed of wikilinks to be displayed -- in the Readings section under the Kanji section local links, categories = {}, {} local is_old_format = false -- We need a separate kanji sortkey module. local sortkey = (require("Module:Hani-sortkey").makeSortKey(pagename, lang_code, "Jpan")) local function add_reading_category(reading, subtype, period) reading = kata_to_hira(reading:gsub("[%. ]+", ""):gsub("%-$", ""):gsub("%-", "・")) if subtype then return insert(categories, '[[Category:' .. lang_name .. ' kanji with ' .. (period or '') .. ' ' .. subtype .. ' reading ' .. reading .. '|' .. sortkey .. ']]') else return insert(categories, '[[Category:' .. lang_name .. ' kanji read as ' .. reading .. '|' .. sortkey .. ']]') end end local unclassified_on = {} local classified_on = {} local kun = {} local kana = "[ぁ-ー]" for _, label in ipairs(labels) do local readings = args[label.text2:gsub('ō', 'o'):gsub('\'', '')] if readings then local unclassified = "" if label.unclassified then if not (args.goon or args.kanon or args.soon or args.toon or args.kanyoon) then unclassified = label.unclassified end end if find(readings, '%[%[' .. kana) then is_old_format = true if label.classification == 'on' then for reading in gmatch(readings, kana .. '+') do add_reading_category(reading) end end readings = readings:gsub("%[%[([^%]|]+)%]%]", function(entry) if find(entry, "^[" .. Jpan:getCharacters() .. "]+$") then return plain_link{ lang = lang, term = entry, } else return "[[" .. entry .. "]]" end end) else readings = split(readings, "%s*[,、]%s*") for i, reading in ipairs(readings) do local is_jouyou = false local pos, pos_hist, pos_oldest = { }, { '[[w:Historical kana orthography|historical]]' }, { 'ancient' } -- check for formatting indicating presence of historical kana spelling local reading_mod, reading_hist, reading_oldest, reading_surplus = reading:match'^(.-)%f[<%z]<?(.-)%f[<%z]<?(.-)%f[<%z]<?(.*)$' if reading_surplus ~= '' then error("The reading " .. reading .. " contains too many historical readings. The maximum is 3: modern, historical, ancient.") end if label.text2 == "on" then unclassified_on[reading_mod] = true insert(unclassified_on, reading_mod) elseif label.text2 == "kun" then kun[reading_mod] = true insert(kun, reading_mod) elseif label.classification == "on" then classified_on[reading_mod] = true insert(classified_on, reading_mod) end -- test if reading contains katakana if find(reading_mod .. reading_hist .. reading_oldest, '[ァ-ヺ]') then insert(categories, '[[Category:Requests for attention concerning ' .. lang_name .. '|1]]') -- sometimes legit, like 「頁(ページ)」 end if reading_hist ~= '' or reading_oldest ~= '' then -- test if historical readings contain small kana (anachronistic) if find(reading_hist .. reading_oldest, '[ぁぃぅぇぉゃゅょ]') then insert(categories, '[[Category:Requests for attention concerning ' .. lang_name .. '|2]]') -- end -- test if reading contains kun'yomi delimiter thing but historical readings don't if reading_mod:find("-", 1, true) then if reading_hist ~= '' and not reading_hist:find("-", 1, true) or reading_oldest ~= '' and not reading_oldest:find("-", 1, true) then insert(categories, '[[Category:Requests for attention concerning ' .. lang_name .. '|3]]') end end end -- check if there is data indicating that our kanji is a jouyou kanji if yomi_data[pagename] then local reading = (label.classification == 'on' and hira_to_kata(reading_mod) or reading_mod) reading = reading:gsub('%.', '') -- 「あたら-し.い」→「あたら-しい」 local yomi_type = yomi_data[pagename][reading] if yomi_type then is_jouyou = true if yomi_type == 1 or yomi_type == 2 then insert(pos, '[[w:Jōyō kanji|<abbr title="This reading is listed in the Jōyō kanji table. Click for the Wikipedia article about the Jōyō kanji.">Jōyō</abbr>]]') elseif yomi_type == 3 or yomi_type == 4 then insert(pos, '[[w:Jōyō kanji|<abbr title="This reading is listed in the Jōyō kanji table, but is marked as restricted or rare. Click for the Wikipedia article about the Jōyō kanji.">Jōyō <sup>†</sup></abbr>]]') end end end local subtype = label.text2 if reading_mod then add_reading_category(reading_mod, subtype) end if reading_hist ~= '' then add_reading_category(reading_hist, subtype, 'historical') end if reading_oldest ~= '' then add_reading_category(reading_oldest, subtype, 'ancient') end -- process kun readings with okurigana, create kanji-okurigana links if reading:find("-", 1, true) then insert(pos, 1, plain_link{ lang = lang, term = reading_mod:gsub('^.+%-', pagename), }) if reading_hist ~= '' then insert(pos_hist, 1, plain_link{ lang = lang, term = reading_hist:gsub('^.+%-', pagename), }) end if reading_oldest ~= '' then insert(pos_oldest, 1, plain_link{ lang = lang, term = reading_oldest:gsub('^.+%-', pagename), }) end elseif label.classification == 'kun' then insert(categories, '[[Category:' .. lang_name .. ' kanji with kun readings missing okurigana designation|' .. sortkey .. ']]') end local rom = kana_to_romaji((reading_mod), lang_code):gsub('^(.+)(%-)', '<u>%1</u>') local rom_hist = kana_to_romaji((reading_hist:gsub('^(.+)(%-)', '<u>%1</u>')), lang_code, nil, {hist = true}) local rom_oldest = kana_to_romaji((reading_oldest:gsub('^(.+)(%-)', '<u>%1</u>')), lang_code, nil, {hist = true}) local mod_link = plain_link{ lang = lang, term = reading_mod, tr = rom, pos = concat(pos, CONCAT_SEP), } if is_jouyou then mod_link = '<mark class="jouyou-reading">' .. mod_link .. '</mark>' end readings[i] = mod_link .. (reading_hist ~= '' and '<sup>←' .. plain_link{ lang = lang, term = reading_hist, tr = rom_hist, pos = concat(pos_hist, CONCAT_SEP), } .. '</sup>' or '') .. (reading_oldest ~= '' and '<sup>←' .. plain_link{ lang = lang, term = reading_oldest, tr = rom_oldest, pos = concat(pos_oldest, CONCAT_SEP), } .. '</sup>' or '') end readings = concat(readings, "、") end -- Add "on-yomi", "kun-yomi", or "nanori-yomi" class around list of -- readings to allow JavaScript to locate them. insert(links, "* '''[[Appendix:Japanese glossary#" .. (label.entry or label.text2) .. '|'.. label.text .. "]]'''" .. unclassified .. ': <span class="' .. label.classification .. '-yomi">' .. readings .. '</span>') end end for _, reading in ipairs(unclassified_on) do -- [[Special:WhatLinksHere/Wiktionary:Tracking/ja-kanji-readings/duplicate reading]] if classified_on[reading] then track("duplicate reading") end track("unclassified reading") -- Track unclassified readings for later classification end if not next(classified_on) and not next(unclassified_on) then if next(kun) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/ja-kanji-readings/kun only]] track("kun only") end elseif not next(kun) then -- [[Special:WhatLinksHere/Wiktionary:Tracking/ja-kanji-readings/on only]] track("on only") end if is_old_format then insert(categories, '[[Category:Japanese kanji using old ja-readings format|' .. sortkey .. ']]') end return concat(links, '\n') .. (NAMESPACE == '' and concat(categories) or '') .. require("Module:TemplateStyles")("Template:ja-readings/style.css") end return export 651d018f0n6z01e2uun2s5kdg7hllxi Modul:ja/data/jouyou-yomi 828 160427 628924 2024-11-06T16:30:50Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} --[=[ [[w:ja:常用漢字一覧]]&oldid=64184027 1 = on 2 = kun 3 = on, uncommon reading (see 「括弧でくくられた音訓」 sentence @ ja.wp) 4 = kun, uncommon 𠮟 has been replaced with 叱 to match modern computing reality ]=] export.yomi = { ['亜']={['ア']=1}, ['哀']={['アイ']=1, ['あわ-れ']=2, ['あわ-れむ']=2}, ['挨']={['アイ']=1}, ['愛']={['アイ']=1}, ['曖']={['アイ']=1}, ['悪']={['...“ yozuvi orqali yangi sahifa yaratildi 628924 Scribunto text/plain local export = {} --[=[ [[w:ja:常用漢字一覧]]&oldid=64184027 1 = on 2 = kun 3 = on, uncommon reading (see 「括弧でくくられた音訓」 sentence @ ja.wp) 4 = kun, uncommon 𠮟 has been replaced with 叱 to match modern computing reality ]=] export.yomi = { ['亜']={['ア']=1}, ['哀']={['アイ']=1, ['あわ-れ']=2, ['あわ-れむ']=2}, ['挨']={['アイ']=1}, ['愛']={['アイ']=1}, ['曖']={['アイ']=1}, ['悪']={['アク']=1, ['オ']=1, ['わる-い']=2}, ['握']={['アク']=1, ['にぎ-る']=2}, ['圧']={['アツ']=1}, ['扱']={['あつか-う']=2}, ['宛']={['あ-てる']=2}, ['嵐']={['あらし-']=2}, ['安']={['アン']=1, ['やす-い']=2}, ['案']={['アン']=1}, ['暗']={['アン']=1, ['くら-い']=2}, ['以']={['イ']=1}, ['衣']={['イ']=1, ['ころも-']=2}, ['位']={['イ']=1, ['くらい-']=2}, ['囲']={['イ']=1, ['かこ-む']=2, ['かこ-う']=2}, ['医']={['イ']=1}, ['依']={['イ']=1, ['エ']=3}, ['委']={['イ']=1, ['ゆだ-ねる']=2}, ['威']={['イ']=1}, ['為']={['イ']=1}, ['畏']={['イ']=1, ['おそ-れる']=2}, ['胃']={['イ']=1}, ['尉']={['イ']=1}, ['異']={['イ']=1, ['こと-']=2}, ['移']={['イ']=1, ['うつ-る']=2, ['うつ-す']=2}, ['萎']={['イ']=1, ['な-える']=2}, ['偉']={['イ']=1, ['えら-い']=2}, ['椅']={['イ']=1}, ['彙']={['イ']=1}, ['意']={['イ']=1}, ['違']={['イ']=1, ['ちが-う']=2, ['ちが-える']=2}, ['維']={['イ']=1}, ['慰']={['イ']=1, ['なぐさ-める']=2, ['なぐさ-む']=2}, ['遺']={['イ']=1, ['ユイ']=3}, ['緯']={['イ']=1}, ['域']={['イキ']=1}, ['育']={['イク']=1, ['そだ-つ']=2, ['そだ-てる']=2, ['はぐく-む']=2}, ['一']={['イチ']=1, ['イツ']=1, ['ひと-']=2, ['ひと-つ']=2}, ['壱']={['イチ']=1}, ['逸']={['イツ']=1}, ['茨']={['いばら-']=4}, ['芋']={['いも-']=2}, ['引']={['イン']=1, ['ひ-く']=2, ['ひ-ける']=2}, ['印']={['イン']=1, ['しるし-']=2}, ['因']={['イン']=1, ['よ-る']=2}, ['咽']={['イン']=1}, ['姻']={['イン']=1}, ['員']={['イン']=1}, ['院']={['イン']=1}, ['淫']={['イン']=1, ['みだ-ら']=2}, ['陰']={['イン']=1, ['かげ-']=2, ['かげ-る']=2}, ['飲']={['イン']=1, ['の-む']=2}, ['隠']={['イン']=1, ['かく-す']=2, ['かく-れる']=2}, ['韻']={['イン']=1}, ['右']={['ウ']=1, ['ユウ']=1, ['みぎ-']=2}, ['宇']={['ウ']=1}, ['羽']={['ウ']=1, ['は-']=2, ['はね-']=2}, ['雨']={['ウ']=1, ['あめ-']=2, ['あま-']=4}, ['唄']={['うた-']=4}, ['鬱']={['ウツ']=1}, ['畝']={['うね-']=2}, ['浦']={['うら-']=2}, ['運']={['ウン']=1, ['はこ-ぶ']=2}, ['雲']={['ウン']=1, ['くも-']=2}, ['永']={['エイ']=1, ['なが-い']=2}, ['泳']={['エイ']=1, ['およ-ぐ']=2}, ['英']={['エイ']=1}, ['映']={['エイ']=1, ['うつ-る']=2, ['うつ-す']=2, ['は-える']=2}, ['栄']={['エイ']=1, ['さか-える']=2, ['は-え']=2, ['は-える']=2}, ['営']={['エイ']=1, ['いとな-む']=2}, ['詠']={['エイ']=1, ['よ-む']=2}, ['影']={['エイ']=1, ['かげ-']=2}, ['鋭']={['エイ']=1, ['するど-い']=2}, ['衛']={['エイ']=1}, ['易']={['エキ']=1, ['イ']=1, ['やさ-しい']=2}, ['疫']={['エキ']=1, ['ヤク']=3}, ['益']={['エキ']=1, ['ヤク']=3}, ['液']={['エキ']=1}, ['駅']={['エキ']=1}, ['悦']={['エツ']=1}, ['越']={['エツ']=1, ['こ-す']=2, ['こ-える']=2}, ['謁']={['エツ']=1}, ['閲']={['エツ']=1}, ['円']={['エン']=1, ['まる-い']=2}, ['延']={['エン']=1, ['の-びる']=2, ['の-べる']=2, ['の-ばす']=2}, ['沿']={['エン']=1, ['そ-う']=2}, ['炎']={['エン']=1, ['ほのお-']=2}, ['怨']={['エン']=1, ['オン']=1}, ['宴']={['エン']=1}, ['媛']={['エン']=1}, ['援']={['エン']=1}, ['園']={['エン']=1, ['その-']=2}, ['煙']={['エン']=1, ['けむ-る']=2, ['けむり-']=2, ['けむ-い']=2}, ['猿']={['エン']=1, ['さる-']=2}, ['遠']={['エン']=1, ['オン']=3, ['とお-い']=2}, ['鉛']={['エン']=1, ['なまり-']=2}, ['塩']={['エン']=1, ['しお-']=2}, ['演']={['エン']=1}, ['縁']={['エン']=1, ['ふち-']=2}, ['艶']={['エン']=1, ['つや-']=2}, ['汚']={['オ']=1, ['けが-す']=2, ['けが-れる']=2, ['けが-らわしい']=2, ['よご-す']=2, ['よご-れる']=2, ['きたな-い']=2}, ['王']={['オウ']=1}, ['凹']={['オウ']=1}, ['央']={['オウ']=1}, ['応']={['オウ']=1, ['こた-える']=2}, ['往']={['オウ']=1}, ['押']={['オウ']=1, ['お-す']=2, ['お-さえる']=2}, ['旺']={['オウ']=1}, ['欧']={['オウ']=1}, ['殴']={['オウ']=1, ['なぐ-る']=2}, ['桜']={['オウ']=1, ['さくら-']=2}, ['翁']={['オウ']=1}, ['奥']={['オウ']=1, ['おく-']=2}, ['横']={['オウ']=1, ['よこ-']=2}, ['岡']={['おか-']=4}, ['屋']={['オク']=1, ['や-']=2}, ['億']={['オク']=1}, ['憶']={['オク']=1}, ['臆']={['オク']=1}, ['虞']={['おそれ-']=2}, ['乙']={['オツ']=1}, ['俺']={['おれ-']=2}, ['卸']={['おろ-す']=2, ['おろし-']=2}, ['音']={['オン']=1, ['イン']=1, ['おと-']=2, ['ね-']=2}, ['恩']={['オン']=1}, ['温']={['オン']=1, ['あたた-か']=2, ['あたた-かい']=2, ['あたた-まる']=2, ['あたた-める']=2}, ['穏']={['オン']=1, ['おだ-やか']=2}, ['下']={['カ']=1, ['ゲ']=1, ['した-']=2, ['しも-']=2, ['もと-']=2, ['さ-げる']=2, ['さ-がる']=2, ['くだ-る']=2, ['くだ-す']=2, ['くだ-さる']=2, ['お-ろす']=2, ['お-りる']=2}, ['化']={['カ']=1, ['ケ']=1, ['ば-ける']=2, ['ば-かす']=2}, ['火']={['カ']=1, ['ひ-']=2, ['ほ-']=4}, ['加']={['カ']=1, ['くわ-える']=2, ['くわ-わる']=2}, ['可']={['カ']=1}, ['仮']={['カ']=1, ['ケ']=3, ['かり-']=2}, ['何']={['カ']=1, ['なに-']=2, ['なん-']=4}, ['花']={['カ']=1, ['はな-']=2}, ['佳']={['カ']=1}, ['価']={['カ']=1, ['あたい-']=2}, ['果']={['カ']=1, ['は-たす']=2, ['は-てる']=2, ['は-て']=2}, ['河']={['カ']=1, ['かわ-']=2}, ['苛']={['カ']=1}, ['科']={['カ']=1}, ['架']={['カ']=1, ['か-ける']=2, ['か-かる']=2}, ['夏']={['カ']=1, ['ゲ']=3, ['なつ-']=2}, ['家']={['カ']=1, ['ケ']=1, ['いえ-']=2, ['や-']=2}, ['荷']={['カ']=1, ['に-']=2}, ['華']={['カ']=1, ['ケ']=3, ['はな-']=2}, ['菓']={['カ']=1}, ['貨']={['カ']=1}, ['渦']={['カ']=1, ['うず-']=2}, ['過']={['カ']=1, ['す-ぎる']=2, ['す-ごす']=2, ['あやま-つ']=2, ['あやま-ち']=2}, ['嫁']={['カ']=1, ['よめ-']=2, ['とつ-ぐ']=2}, ['暇']={['カ']=1, ['ひま-']=2}, ['禍']={['カ']=1}, ['靴']={['カ']=1, ['くつ-']=2}, ['寡']={['カ']=1}, ['歌']={['カ']=1, ['うた-']=2, ['うた-う']=2}, ['箇']={['カ']=1}, ['稼']={['カ']=1, ['かせ-ぐ']=2}, ['課']={['カ']=1}, ['蚊']={['か-']=2}, ['牙']={['ガ']=1, ['ゲ']=3, ['きば-']=2}, ['瓦']={['ガ']=1, ['かわら-']=2}, ['我']={['ガ']=1, ['われ-']=2, ['わ-']=2}, ['画']={['ガ']=1, ['カク']=1}, ['芽']={['ガ']=1, ['め-']=2}, ['賀']={['ガ']=1}, ['雅']={['ガ']=1}, ['餓']={['ガ']=1}, ['介']={['カイ']=1}, ['回']={['カイ']=1, ['エ']=3, ['まわ-る']=2, ['まわ-す']=2}, ['灰']={['カイ']=1, ['はい-']=2}, ['会']={['カイ']=1, ['エ']=1, ['あ-う']=2}, ['快']={['カイ']=1, ['こころよ-い']=2}, ['戒']={['カイ']=1, ['いまし-める']=2}, ['改']={['カイ']=1, ['あらた-める']=2, ['あらた-まる']=2}, ['怪']={['カイ']=1, ['あや-しい']=2, ['あや-しむ']=2}, ['拐']={['カイ']=1}, ['悔']={['カイ']=1, ['く-いる']=2, ['く-やむ']=2, ['くや-しい']=2}, ['海']={['カイ']=1, ['うみ-']=2}, ['界']={['カイ']=1}, ['皆']={['カイ']=1, ['みな-']=2}, ['械']={['カイ']=1}, ['絵']={['カイ']=1, ['エ']=1}, ['開']={['カイ']=1, ['ひら-く']=2, ['ひら-ける']=2, ['あ-く']=2, ['あ-ける']=2}, ['階']={['カイ']=1}, ['塊']={['カイ']=1, ['かたまり-']=2}, ['楷']={['カイ']=1}, ['解']={['カイ']=1, ['ゲ']=1, ['と-く']=2, ['と-かす']=2, ['と-ける']=2}, ['潰']={['カイ']=1, ['つぶ-す']=2, ['つぶ-れる']=2}, ['壊']={['カイ']=1, ['こわ-す']=2, ['こわ-れる']=2}, ['懐']={['カイ']=1, ['ふところ-']=2, ['なつ-かしい']=2, ['なつ-かしむ']=2, ['なつ-く']=2, ['なつ-ける']=2}, ['諧']={['カイ']=1}, ['貝']={['かい-']=2}, ['外']={['ガイ']=1, ['ゲ']=1, ['そと-']=2, ['ほか-']=2, ['はず-す']=2, ['はず-れる']=2}, ['劾']={['ガイ']=1}, ['害']={['ガイ']=1}, ['崖']={['ガイ']=1, ['がけ-']=2}, ['涯']={['ガイ']=1}, ['街']={['ガイ']=1, ['カイ']=3, ['まち-']=2}, ['慨']={['ガイ']=1}, ['蓋']={['ガイ']=1, ['ふた-']=2}, ['該']={['ガイ']=1}, ['概']={['ガイ']=1}, ['骸']={['ガイ']=1}, ['垣']={['かき-']=2}, ['柿']={['かき-']=2}, ['各']={['カク']=1, ['おのおの-']=2}, ['角']={['カク']=1, ['かど-']=2, ['つの-']=2}, ['拡']={['カク']=1}, ['革']={['カク']=1, ['かわ-']=2}, ['格']={['カク']=1, ['コウ']=3}, ['核']={['カク']=1}, ['殻']={['カク']=1, ['から-']=2}, ['郭']={['カク']=1}, ['覚']={['カク']=1, ['おぼ-える']=2, ['さ-ます']=2, ['さ-める']=2}, ['較']={['カク']=1}, ['隔']={['カク']=1, ['へだ-てる']=2, ['へだ-たる']=2}, ['閣']={['カク']=1}, ['確']={['カク']=1, ['たし-か']=2, ['たし-かめる']=2}, ['獲']={['カク']=1, ['え-る']=2}, ['嚇']={['カク']=1}, ['穫']={['カク']=1}, ['学']={['ガク']=1, ['まな-ぶ']=2}, ['岳']={['ガク']=1, ['たけ-']=2}, ['楽']={['ガク']=1, ['ラク']=1, ['たの-しい']=2, ['たの-しむ']=2}, ['額']={['ガク']=1, ['ひたい-']=2}, ['顎']={['ガク']=1, ['あご-']=2}, ['掛']={['か-ける']=2, ['か-かる']=2, ['かかり-']=2}, ['潟']={['かた-']=2}, ['括']={['カツ']=1}, ['活']={['カツ']=1}, ['喝']={['カツ']=1}, ['渇']={['カツ']=1, ['かわ-く']=2}, ['割']={['カツ']=1, ['わ-る']=2, ['わり-']=2, ['わ-れる']=2, ['さ-く']=2}, ['葛']={['カツ']=1, ['くず-']=2}, ['滑']={['カツ']=1, ['コツ']=1, ['すべ-る']=2, ['なめ-らか']=2}, ['褐']={['カツ']=1}, ['轄']={['カツ']=1}, ['且']={['か-つ']=2}, ['株']={['かぶ-']=2}, ['釜']={['かま-']=2}, ['鎌']={['かま-']=2}, ['刈']={['か-る']=2}, ['干']={['カン']=1, ['ほ-す']=2, ['ひ-る']=2}, ['刊']={['カン']=1}, ['甘']={['カン']=1, ['あま-い']=2, ['あま-える']=2, ['あま-やかす']=2}, ['汗']={['カン']=1, ['あせ-']=2}, ['缶']={['カン']=1}, ['完']={['カン']=1}, ['肝']={['カン']=1, ['きも-']=2}, ['官']={['カン']=1}, ['冠']={['カン']=1, ['かんむり-']=2}, ['巻']={['カン']=1, ['ま-く']=2, ['まき-']=2}, ['看']={['カン']=1}, ['陥']={['カン']=1, ['おちい-る']=2, ['おとしい-れる']=2}, ['乾']={['カン']=1, ['かわ-く']=2, ['かわ-かす']=2}, ['勘']={['カン']=1}, ['患']={['カン']=1, ['わずら-う']=2}, ['貫']={['カン']=1, ['つらぬ-く']=2}, ['寒']={['カン']=1, ['さむ-い']=2}, ['喚']={['カン']=1}, ['堪']={['カン']=1, ['た-える']=2}, ['換']={['カン']=1, ['か-える']=2, ['か-わる']=2}, ['敢']={['カン']=1}, ['棺']={['カン']=1}, ['款']={['カン']=1}, ['間']={['カン']=1, ['ケン']=1, ['あいだ-']=2, ['ま-']=2}, ['閑']={['カン']=1}, ['勧']={['カン']=1, ['すす-める']=2}, ['寛']={['カン']=1}, ['幹']={['カン']=1, ['みき-']=2}, ['感']={['カン']=1}, ['漢']={['カン']=1}, ['慣']={['カン']=1, ['な-れる']=2, ['な-らす']=2}, ['管']={['カン']=1, ['くだ-']=2}, ['関']={['カン']=1, ['せき-']=2, ['かか-わる']=2}, ['歓']={['カン']=1}, ['監']={['カン']=1}, ['緩']={['カン']=1, ['ゆる-い']=2, ['ゆる-やか']=2, ['ゆる-む']=2, ['ゆる-める']=2}, ['憾']={['カン']=1}, ['還']={['カン']=1}, ['館']={['カン']=1, ['やかた-']=2}, ['環']={['カン']=1}, ['簡']={['カン']=1}, ['観']={['カン']=1}, ['韓']={['カン']=1}, ['艦']={['カン']=1}, ['鑑']={['カン']=1, ['かんが-みる']=2}, ['丸']={['ガン']=1, ['まる-']=2, ['まる-い']=2, ['まる-める']=2}, ['含']={['ガン']=1, ['ふく-む']=2, ['ふく-める']=2}, ['岸']={['ガン']=1, ['きし-']=2}, ['岩']={['ガン']=1, ['いわ-']=2}, ['玩']={['ガン']=1}, ['眼']={['ガン']=1, ['ゲン']=3, ['まなこ-']=2}, ['頑']={['ガン']=1}, ['顔']={['ガン']=1, ['かお-']=2}, ['願']={['ガン']=1, ['ねが-う']=2}, ['企']={['キ']=1, ['くわだ-てる']=2}, ['伎']={['キ']=1}, ['危']={['キ']=1, ['あぶ-ない']=2, ['あや-うい']=2, ['あや-ぶむ']=2}, ['机']={['キ']=1, ['つくえ-']=2}, ['気']={['キ']=1, ['ケ']=1}, ['岐']={['キ']=1}, ['希']={['キ']=1}, ['忌']={['キ']=1, ['い-む']=2, ['い-まわしい']=2}, ['汽']={['キ']=1}, ['奇']={['キ']=1}, ['祈']={['キ']=1, ['いの-る']=2}, ['季']={['キ']=1}, ['紀']={['キ']=1}, ['軌']={['キ']=1}, ['既']={['キ']=1, ['すで-に']=2}, ['記']={['キ']=1, ['しる-す']=2}, ['起']={['キ']=1, ['お-きる']=2, ['お-こる']=2, ['お-こす']=2}, ['飢']={['キ']=1, ['う-える']=2}, ['鬼']={['キ']=1, ['おに-']=2}, ['帰']={['キ']=1, ['かえ-る']=2, ['かえ-す']=2}, ['基']={['キ']=1, ['もと-']=2, ['もとい-']=2}, ['寄']={['キ']=1, ['よ-る']=2, ['よ-せる']=2}, ['規']={['キ']=1}, ['亀']={['キ']=1, ['かめ-']=2}, ['喜']={['キ']=1, ['よろこ-ぶ']=2}, ['幾']={['キ']=1, ['いく-']=2}, ['揮']={['キ']=1}, ['期']={['キ']=1, ['ゴ']=3}, ['棋']={['キ']=1}, ['貴']={['キ']=1, ['たっと-い']=2, ['とうと-い']=2, ['たっと-ぶ']=2, ['とうと-ぶ']=2}, ['棄']={['キ']=1}, ['毀']={['キ']=1}, ['旗']={['キ']=1, ['はた-']=2}, ['器']={['キ']=1, ['うつわ-']=2}, ['畿']={['キ']=1}, ['輝']={['キ']=1, ['かがや-く']=2}, ['機']={['キ']=1, ['はた-']=2}, ['騎']={['キ']=1}, ['技']={['ギ']=1, ['わざ-']=2}, ['宜']={['ギ']=1}, ['偽']={['ギ']=1, ['いつわ-る']=2, ['にせ-']=2}, ['欺']={['ギ']=1, ['あざむ-く']=2}, ['義']={['ギ']=1}, ['疑']={['ギ']=1, ['うたが-う']=2}, ['儀']={['ギ']=1}, ['戯']={['ギ']=1, ['たわむ-れる']=2}, ['擬']={['ギ']=1}, ['犠']={['ギ']=1}, ['議']={['ギ']=1}, ['菊']={['キク']=1}, ['吉']={['キチ']=1, ['キツ']=1}, ['喫']={['キツ']=1}, ['詰']={['キツ']=1, ['つ-める']=2, ['つ-まる']=2, ['つ-む']=2}, ['却']={['キャク']=1}, ['客']={['キャク']=1, ['カク']=1}, ['脚']={['キャク']=1, ['キャ']=3, ['あし-']=2}, ['逆']={['ギャク']=1, ['さか-']=2, ['さか-らう']=2}, ['虐']={['ギャク']=1, ['しいた-げる']=2}, ['九']={['キュウ']=1, ['ク']=1, ['ここの-']=2, ['ここの-つ']=2}, ['久']={['キュウ']=1, ['ク']=3, ['ひさ-しい']=2}, ['及']={['キュウ']=1, ['およ-ぶ']=2, ['およ-び']=2, ['およ-ぼす']=2}, ['弓']={['キュウ']=1, ['ゆみ-']=2}, ['丘']={['キュウ']=1, ['おか-']=2}, ['旧']={['キュウ']=1}, ['休']={['キュウ']=1, ['やす-む']=2, ['やす-まる']=2, ['やす-める']=2}, ['吸']={['キュウ']=1, ['す-う']=2}, ['朽']={['キュウ']=1, ['く-ちる']=2}, ['臼']={['キュウ']=1, ['うす-']=2}, ['求']={['キュウ']=1, ['もと-める']=2}, ['究']={['キュウ']=1, ['きわ-める']=2}, ['泣']={['キュウ']=1, ['な-く']=2}, ['急']={['キュウ']=1, ['いそ-ぐ']=2}, ['級']={['キュウ']=1}, ['糾']={['キュウ']=1}, ['宮']={['キュウ']=1, ['グウ']=1, ['ク']=3, ['みや-']=2}, ['救']={['キュウ']=1, ['すく-う']=2}, ['球']={['キュウ']=1, ['たま-']=2}, ['給']={['キュウ']=1}, ['嗅']={['キュウ']=1, ['か-ぐ']=2}, ['窮']={['キュウ']=1, ['きわ-める']=2, ['きわ-まる']=2}, ['牛']={['ギュウ']=1, ['うし-']=2}, ['去']={['キョ']=1, ['コ']=1, ['さ-る']=2}, ['巨']={['キョ']=1}, ['居']={['キョ']=1, ['い-る']=2}, ['拒']={['キョ']=1, ['こば-む']=2}, ['拠']={['キョ']=1, ['コ']=1}, ['挙']={['キョ']=1, ['あ-げる']=2, ['あ-がる']=2}, ['虚']={['キョ']=1, ['コ']=3}, ['許']={['キョ']=1, ['ゆる-す']=2}, ['距']={['キョ']=1}, ['魚']={['ギョ']=1, ['うお-']=2, ['さかな-']=2}, ['御']={['ギョ']=1, ['ゴ']=1, ['おん-']=2}, ['漁']={['ギョ']=1, ['リョウ']=1}, ['凶']={['キョウ']=1}, ['共']={['キョウ']=1, ['とも-']=2}, ['叫']={['キョウ']=1, ['さけ-ぶ']=2}, ['狂']={['キョウ']=1, ['くる-う']=2, ['くる-おしい']=2}, ['京']={['キョウ']=1, ['ケイ']=1}, ['享']={['キョウ']=1}, ['供']={['キョウ']=1, ['ク']=3, ['そな-える']=2, ['とも-']=2}, ['協']={['キョウ']=1}, ['況']={['キョウ']=1}, ['峡']={['キョウ']=1}, ['挟']={['キョウ']=1, ['はさ-む']=2, ['はさ-まる']=2}, ['狭']={['キョウ']=1, ['せま-い']=2, ['せば-める']=2, ['せば-まる']=2}, ['恐']={['キョウ']=1, ['おそ-れる']=2, ['おそ-ろしい']=2}, ['恭']={['キョウ']=1, ['うやうや-しい']=2}, ['胸']={['キョウ']=1, ['むね-']=2, ['むな-']=4}, ['脅']={['キョウ']=1, ['おびや-かす']=2, ['おど-す']=2, ['おど-かす']=2}, ['強']={['キョウ']=1, ['ゴウ']=1, ['つよ-い']=2, ['つよ-まる']=2, ['つよ-める']=2, ['し-いる']=2}, ['教']={['キョウ']=1, ['おし-える']=2, ['おそ-わる']=2}, ['郷']={['キョウ']=1, ['ゴウ']=1}, ['境']={['キョウ']=1, ['ケイ']=3, ['さかい-']=2}, ['橋']={['キョウ']=1, ['はし-']=2}, ['矯']={['キョウ']=1, ['た-める']=2}, ['鏡']={['キョウ']=1, ['かがみ-']=2}, ['競']={['キョウ']=1, ['ケイ']=1, ['きそ-う']=2, ['せ-る']=2}, ['響']={['キョウ']=1, ['ひび-く']=2}, ['驚']={['キョウ']=1, ['おどろ-く']=2, ['おどろ-かす']=2}, ['仰']={['ギョウ']=1, ['コウ']=3, ['あお-ぐ']=2, ['おお-せ']=2}, ['暁']={['ギョウ']=1, ['あかつき-']=2}, ['業']={['ギョウ']=1, ['ゴウ']=1, ['わざ-']=2}, ['凝']={['ギョウ']=1, ['こ-る']=2, ['こ-らす']=2}, ['曲']={['キョク']=1, ['ま-がる']=2, ['ま-げる']=2}, ['局']={['キョク']=1}, ['極']={['キョク']=1, ['ゴク']=1, ['きわ-める']=2, ['きわ-まる']=2, ['きわ-み']=2}, ['玉']={['ギョク']=1, ['たま-']=2}, ['巾']={['キン']=1}, ['斤']={['キン']=1}, ['均']={['キン']=1}, ['近']={['キン']=1, ['ちか-い']=2}, ['金']={['キン']=1, ['コン']=1, ['かね-']=2, ['かな-']=4}, ['菌']={['キン']=1}, ['勤']={['キン']=1, ['ゴン']=3, ['つと-める']=2, ['つと-まる']=2}, ['琴']={['キン']=1, ['こと-']=2}, ['筋']={['キン']=1, ['すじ-']=2}, ['僅']={['キン']=1, ['わず-か']=2}, ['禁']={['キン']=1}, ['緊']={['キン']=1}, ['錦']={['キン']=1, ['にしき-']=2}, ['謹']={['キン']=1, ['つつし-む']=2}, ['襟']={['キン']=1, ['えり-']=2}, ['吟']={['ギン']=1}, ['銀']={['ギン']=1}, ['区']={['ク']=1}, ['句']={['ク']=1}, ['苦']={['ク']=1, ['くる-しい']=2, ['くる-しむ']=2, ['くる-しめる']=2, ['にが-い']=2, ['にが-る']=2}, ['駆']={['ク']=1, ['か-ける']=2, ['か-る']=2}, ['具']={['グ']=1}, ['惧']={['グ']=1}, ['愚']={['グ']=1, ['おろ-か']=2}, ['空']={['クウ']=1, ['そら-']=2, ['あ-く']=2, ['あ-ける']=2, ['から-']=2}, ['偶']={['グウ']=1}, ['遇']={['グウ']=1}, ['隅']={['グウ']=1, ['すみ-']=2}, ['串']={['くし-']=2}, ['屈']={['クツ']=1}, ['掘']={['クツ']=1, ['ほ-る']=2}, ['窟']={['クツ']=1}, ['熊']={['くま-']=2}, ['繰']={['く-る']=2}, ['君']={['クン']=1, ['きみ-']=2}, ['訓']={['クン']=1}, ['勲']={['クン']=1}, ['薫']={['クン']=1, ['かお-る']=2}, ['軍']={['グン']=1}, ['郡']={['グン']=1}, ['群']={['グン']=1, ['む-れる']=2, ['む-れ']=2, ['むら-']=4}, ['兄']={['ケイ']=1, ['キョウ']=3, ['あに-']=2}, ['刑']={['ケイ']=1}, ['形']={['ケイ']=1, ['ギョウ']=1, ['かた-']=2, ['かたち-']=2}, ['系']={['ケイ']=1}, ['径']={['ケイ']=1}, ['茎']={['ケイ']=1, ['くき-']=2}, ['係']={['ケイ']=1, ['かか-る']=2, ['かかり-']=2}, ['型']={['ケイ']=1, ['かた-']=2}, ['契']={['ケイ']=1, ['ちぎ-る']=2}, ['計']={['ケイ']=1, ['はか-る']=2, ['はか-らう']=2}, ['恵']={['ケイ']=1, ['エ']=1, ['めぐ-む']=2}, ['啓']={['ケイ']=1}, ['掲']={['ケイ']=1, ['かか-げる']=2}, ['渓']={['ケイ']=1}, ['経']={['ケイ']=1, ['キョウ']=1, ['へ-る']=2}, ['蛍']={['ケイ']=1, ['ほたる-']=2}, ['敬']={['ケイ']=1, ['うやま-う']=2}, ['景']={['ケイ']=1}, ['軽']={['ケイ']=1, ['かる-い']=2, ['かろ-やか']=2}, ['傾']={['ケイ']=1, ['かたむ-く']=2, ['かたむ-ける']=2}, ['携']={['ケイ']=1, ['たずさ-える']=2, ['たずさ-わる']=2}, ['継']={['ケイ']=1, ['つ-ぐ']=2}, ['詣']={['ケイ']=1, ['もう-でる']=2}, ['慶']={['ケイ']=1}, ['憬']={['ケイ']=1}, ['稽']={['ケイ']=1}, ['憩']={['ケイ']=1, ['いこ-い']=2, ['いこ-う']=2}, ['警']={['ケイ']=1}, ['鶏']={['ケイ']=1, ['にわとり-']=2}, ['芸']={['ゲイ']=1}, ['迎']={['ゲイ']=1, ['むか-える']=2}, ['鯨']={['ゲイ']=1, ['くじら-']=2}, ['隙']={['ゲキ']=1, ['すき-']=2}, ['劇']={['ゲキ']=1}, ['撃']={['ゲキ']=1, ['う-つ']=2}, ['激']={['ゲキ']=1, ['はげ-しい']=2}, ['桁']={['けた-']=2}, ['欠']={['ケツ']=1, ['か-ける']=2, ['か-く']=2}, ['穴']={['ケツ']=1, ['あな-']=2}, ['血']={['ケツ']=1, ['ち-']=2}, ['決']={['ケツ']=1, ['き-める']=2, ['き-まる']=2}, ['結']={['ケツ']=1, ['むす-ぶ']=2, ['ゆ-う']=2, ['ゆ-わえる']=2}, ['傑']={['ケツ']=1}, ['潔']={['ケツ']=1, ['いさぎよ-い']=2}, ['月']={['ゲツ']=1, ['ガツ']=1, ['つき-']=2}, ['犬']={['ケン']=1, ['いぬ-']=2}, ['件']={['ケン']=1}, ['見']={['ケン']=1, ['み-る']=2, ['み-える']=2, ['み-せる']=2}, ['券']={['ケン']=1}, ['肩']={['ケン']=1, ['かた-']=2}, ['建']={['ケン']=1, ['コン']=3, ['た-てる']=2, ['た-つ']=2}, ['研']={['ケン']=1, ['と-ぐ']=2}, ['県']={['ケン']=1}, ['倹']={['ケン']=1}, ['兼']={['ケン']=1, ['か-ねる']=2}, ['剣']={['ケン']=1, ['つるぎ-']=2}, ['拳']={['ケン']=1, ['こぶし-']=2}, ['軒']={['ケン']=1, ['のき-']=2}, ['健']={['ケン']=1, ['すこ-やか']=2}, ['険']={['ケン']=1, ['けわ-しい']=2}, ['圏']={['ケン']=1}, ['堅']={['ケン']=1, ['かた-い']=2}, ['検']={['ケン']=1}, ['嫌']={['ケン']=1, ['ゲン']=3, ['きら-う']=2, ['いや-']=2}, ['献']={['ケン']=1, ['コン']=3}, ['絹']={['ケン']=1, ['きぬ-']=2}, ['遣']={['ケン']=1, ['つか-う']=2, ['つか-わす']=2}, ['権']={['ケン']=1, ['ゴン']=3}, ['憲']={['ケン']=1}, ['賢']={['ケン']=1, ['かしこ-い']=2}, ['謙']={['ケン']=1}, ['鍵']={['ケン']=1, ['かぎ-']=2}, ['繭']={['ケン']=1, ['まゆ-']=2}, ['顕']={['ケン']=1}, ['験']={['ケン']=1, ['ゲン']=3}, ['懸']={['ケン']=1, ['ケ']=3, ['か-ける']=2, ['か-かる']=2}, ['元']={['ゲン']=1, ['ガン']=1, ['もと-']=2}, ['幻']={['ゲン']=1, ['まぼろし-']=2}, ['玄']={['ゲン']=1}, ['言']={['ゲン']=1, ['ゴン']=1, ['い-う']=2, ['こと-']=2}, ['弦']={['ゲン']=1, ['つる-']=2}, ['限']={['ゲン']=1, ['かぎ-る']=2}, ['原']={['ゲン']=1, ['はら-']=2}, ['現']={['ゲン']=1, ['あらわ-れる']=2, ['あらわ-す']=2}, ['舷']={['ゲン']=1}, ['減']={['ゲン']=1, ['へ-る']=2, ['へ-らす']=2}, ['源']={['ゲン']=1, ['みなもと-']=2}, ['厳']={['ゲン']=1, ['ゴン']=3, ['おごそ-か']=2, ['きび-しい']=2}, ['己']={['コ']=1, ['キ']=1, ['おのれ-']=2}, ['戸']={['コ']=1, ['と-']=2}, ['古']={['コ']=1, ['ふる-い']=2, ['ふる-す']=2}, ['呼']={['コ']=1, ['よ-ぶ']=2}, ['固']={['コ']=1, ['かた-める']=2, ['かた-まる']=2, ['かた-い']=2}, ['股']={['コ']=1, ['また-']=2}, ['虎']={['コ']=1, ['とら-']=2}, ['孤']={['コ']=1}, ['弧']={['コ']=1}, ['故']={['コ']=1, ['ゆえ-']=2}, ['枯']={['コ']=1, ['か-れる']=2, ['か-らす']=2}, ['個']={['コ']=1}, ['庫']={['コ']=1, ['ク']=3}, ['湖']={['コ']=1, ['みずうみ-']=2}, ['雇']={['コ']=1, ['やと-う']=2}, ['誇']={['コ']=1, ['ほこ-る']=2}, ['鼓']={['コ']=1, ['つづみ-']=2}, ['錮']={['コ']=1}, ['顧']={['コ']=1, ['かえり-みる']=2}, ['五']={['ゴ']=1, ['いつ-']=2, ['いつ-つ']=2}, ['互']={['ゴ']=1, ['たが-い']=2}, ['午']={['ゴ']=1}, ['呉']={['ゴ']=1}, ['後']={['ゴ']=1, ['コウ']=1, ['のち-']=2, ['うし-ろ']=2, ['あと-']=2, ['おく-れる']=2}, ['娯']={['ゴ']=1}, ['悟']={['ゴ']=1, ['さと-る']=2}, ['碁']={['ゴ']=1}, ['語']={['ゴ']=1, ['かた-る']=2, ['かた-らう']=2}, ['誤']={['ゴ']=1, ['あやま-る']=2}, ['護']={['ゴ']=1}, ['口']={['コウ']=1, ['ク']=1, ['くち-']=2}, ['工']={['コウ']=1, ['ク']=1}, ['公']={['コウ']=1, ['おおやけ-']=2}, ['勾']={['コウ']=1}, ['孔']={['コウ']=1}, ['功']={['コウ']=1, ['ク']=3}, ['巧']={['コウ']=1, ['たく-み']=2}, ['広']={['コウ']=1, ['ひろ-い']=2, ['ひろ-まる']=2, ['ひろ-める']=2, ['ひろ-がる']=2, ['ひろ-げる']=2}, ['甲']={['コウ']=1, ['カン']=1}, ['交']={['コウ']=1, ['まじ-わる']=2, ['まじ-える']=2, ['ま-じる']=2, ['ま-ざる']=2, ['ま-ぜる']=2, ['か-う']=2, ['か-わす']=2}, ['光']={['コウ']=1, ['ひか-る']=2, ['ひかり-']=2}, ['向']={['コウ']=1, ['む-く']=2, ['む-ける']=2, ['む-かう']=2, ['む-こう']=2}, ['后']={['コウ']=1}, ['好']={['コウ']=1, ['この-む']=2, ['す-く']=2}, ['江']={['コウ']=1, ['え-']=2}, ['考']={['コウ']=1, ['かんが-える']=2}, ['行']={['コウ']=1, ['ギョウ']=1, ['アン']=3, ['い-く']=2, ['ゆ-く']=2, ['おこな-う']=2}, ['坑']={['コウ']=1}, ['孝']={['コウ']=1}, ['抗']={['コウ']=1}, ['攻']={['コウ']=1, ['せ-める']=2}, ['更']={['コウ']=1, ['さら-']=2, ['ふ-ける']=2, ['ふ-かす']=2}, ['効']={['コウ']=1, ['き-く']=2}, ['幸']={['コウ']=1, ['さいわ-い']=2, ['さち-']=2, ['しあわ-せ']=2}, ['拘']={['コウ']=1}, ['肯']={['コウ']=1}, ['侯']={['コウ']=1}, ['厚']={['コウ']=1, ['あつ-い']=2}, ['恒']={['コウ']=1}, ['洪']={['コウ']=1}, ['皇']={['コウ']=1, ['オウ']=1}, ['紅']={['コウ']=1, ['ク']=3, ['べに-']=2, ['くれない-']=2}, ['荒']={['コウ']=1, ['あら-い']=2, ['あ-れる']=2, ['あ-らす']=2}, ['郊']={['コウ']=1}, ['香']={['コウ']=1, ['キョウ']=3, ['か-']=2, ['かお-り']=2, ['かお-る']=2}, ['候']={['コウ']=1, ['そうろう-']=2}, ['校']={['コウ']=1}, ['耕']={['コウ']=1, ['たがや-す']=2}, ['航']={['コウ']=1}, ['貢']={['コウ']=1, ['ク']=3, ['みつ-ぐ']=2}, ['降']={['コウ']=1, ['お-りる']=2, ['お-ろす']=2, ['ふ-る']=2}, ['高']={['コウ']=1, ['たか-い']=2, ['たか-']=2, ['たか-まる']=2, ['たか-める']=2}, ['康']={['コウ']=1}, ['控']={['コウ']=1, ['ひか-える']=2}, ['梗']={['コウ']=1}, ['黄']={['コウ']=1, ['オウ']=1, ['き-']=2, ['こ-']=4}, ['喉']={['コウ']=1, ['のど-']=2}, ['慌']={['コウ']=1, ['あわ-てる']=2, ['あわ-ただしい']=2}, ['港']={['コウ']=1, ['みなと-']=2}, ['硬']={['コウ']=1, ['かた-い']=2}, ['絞']={['コウ']=1, ['しぼ-る']=2, ['し-める']=2, ['し-まる']=2}, ['項']={['コウ']=1}, ['溝']={['コウ']=1, ['みぞ-']=2}, ['鉱']={['コウ']=1}, ['構']={['コウ']=1, ['かま-える']=2, ['かま-う']=2}, ['綱']={['コウ']=1, ['つな-']=2}, ['酵']={['コウ']=1}, ['稿']={['コウ']=1}, ['興']={['コウ']=1, ['キョウ']=1, ['おこ-る']=2, ['おこ-す']=2}, ['衡']={['コウ']=1}, ['鋼']={['コウ']=1, ['はがね-']=2}, ['講']={['コウ']=1}, ['購']={['コウ']=1}, ['乞']={['こ-う']=2}, ['号']={['ゴウ']=1}, ['合']={['ゴウ']=1, ['ガッ']=1, ['カッ']=3, ['あ-う']=2, ['あ-わす']=2, ['あ-わせる']=2}, ['拷']={['ゴウ']=1}, ['剛']={['ゴウ']=1}, ['傲']={['ゴウ']=1}, ['豪']={['ゴウ']=1}, ['克']={['コク']=1}, ['告']={['コク']=1, ['つ-げる']=2}, ['谷']={['コク']=1, ['たに-']=2}, ['刻']={['コク']=1, ['きざ-む']=2}, ['国']={['コク']=1, ['くに-']=2}, ['黒']={['コク']=1, ['くろ-']=2, ['くろ-い']=2}, ['穀']={['コク']=1}, ['酷']={['コク']=1}, ['獄']={['ゴク']=1}, ['骨']={['コツ']=1, ['ほね-']=2}, ['駒']={['こま-']=2}, ['込']={['こ-む']=2, ['こ-める']=2}, ['頃']={['ころ-']=2}, ['今']={['コン']=1, ['キン']=1, ['いま-']=2}, ['困']={['コン']=1, ['こま-る']=2}, ['昆']={['コン']=1}, ['恨']={['コン']=1, ['うら-む']=2, ['うら-めしい']=2}, ['根']={['コン']=1, ['ね-']=2}, ['婚']={['コン']=1}, ['混']={['コン']=1, ['ま-じる']=2, ['ま-ざる']=2, ['ま-ぜる']=2, ['こ-む']=2}, ['痕']={['コン']=1, ['あと-']=2}, ['紺']={['コン']=1}, ['魂']={['コン']=1, ['たましい-']=2}, ['墾']={['コン']=1}, ['懇']={['コン']=1, ['ねんご-ろ']=2}, ['左']={['サ']=1, ['ひだり-']=2}, ['佐']={['サ']=1}, ['沙']={['サ']=1}, ['査']={['サ']=1}, ['砂']={['サ']=1, ['シャ']=1, ['すな-']=2}, ['唆']={['サ']=1, ['そそのか-す']=2}, ['差']={['サ']=1, ['さ-す']=2}, ['詐']={['サ']=1}, ['鎖']={['サ']=1, ['くさり-']=2}, ['座']={['ザ']=1, ['すわ-る']=2}, ['挫']={['ザ']=1}, ['才']={['サイ']=1}, ['再']={['サイ']=1, ['サ']=3, ['ふたた-び']=2}, ['災']={['サイ']=1, ['わざわ-い']=2}, ['妻']={['サイ']=1, ['つま-']=2}, ['采']={['サイ']=1}, ['砕']={['サイ']=1, ['くだ-く']=2, ['くだ-ける']=2}, ['宰']={['サイ']=1}, ['栽']={['サイ']=1}, ['彩']={['サイ']=1, ['いろど-る']=2}, ['採']={['サイ']=1, ['と-る']=2}, ['済']={['サイ']=1, ['す-む']=2, ['す-ます']=2}, ['祭']={['サイ']=1, ['まつ-る']=2, ['まつ-り']=2}, ['斎']={['サイ']=1}, ['細']={['サイ']=1, ['ほそ-い']=2, ['ほそ-る']=2, ['こま-か']=2, ['こま-かい']=2}, ['菜']={['サイ']=1, ['な-']=2}, ['最']={['サイ']=1, ['もっと-も']=2}, ['裁']={['サイ']=1, ['た-つ']=2, ['さば-く']=2}, ['債']={['サイ']=1}, ['催']={['サイ']=1, ['もよお-す']=2}, ['塞']={['サイ']=1, ['ソク']=1, ['ふさ-ぐ']=2, ['ふさ-がる']=2}, ['歳']={['サイ']=1, ['セイ']=3}, ['載']={['サイ']=1, ['の-せる']=2, ['の-る']=2}, ['際']={['サイ']=1, ['きわ-']=2}, ['埼']={['さい-']=4}, ['在']={['ザイ']=1, ['あ-る']=2}, ['材']={['ザイ']=1}, ['剤']={['ザイ']=1}, ['財']={['ザイ']=1, ['サイ']=3}, ['罪']={['ザイ']=1, ['つみ-']=2}, ['崎']={['さき-']=2}, ['作']={['サク']=1, ['サ']=1, ['つく-る']=2}, ['削']={['サク']=1, ['けず-る']=2}, ['昨']={['サク']=1}, ['柵']={['サク']=1}, ['索']={['サク']=1}, ['策']={['サク']=1}, ['酢']={['サク']=1, ['す-']=2}, ['搾']={['サク']=1, ['しぼ-る']=2}, ['錯']={['サク']=1}, ['咲']={['さ-く']=2}, ['冊']={['サツ']=1, ['サク']=1}, ['札']={['サツ']=1, ['ふだ-']=2}, ['刷']={['サツ']=1, ['す-る']=2}, ['刹']={['サツ']=1, ['セツ']=1}, ['拶']={['サツ']=1}, ['殺']={['サツ']=1, ['サイ']=3, ['セツ']=3, ['ころ-す']=2}, ['察']={['サツ']=1}, ['撮']={['サツ']=1, ['と-る']=2}, ['擦']={['サツ']=1, ['す-る']=2, ['す-れる']=2}, ['雑']={['ザツ']=1, ['ゾウ']=1}, ['皿']={['さら-']=2}, ['三']={['サン']=1, ['み-']=2, ['み-つ']=2, ['みっ-つ']=2}, ['山']={['サン']=1, ['やま-']=2}, ['参']={['サン']=1, ['まい-る']=2}, ['桟']={['サン']=1}, ['蚕']={['サン']=1, ['かいこ-']=2}, ['惨']={['サン']=1, ['ザン']=1, ['みじ-め']=2}, ['産']={['サン']=1, ['う-む']=2, ['う-まれる']=2, ['うぶ-']=2}, ['傘']={['サン']=1, ['かさ-']=2}, ['散']={['サン']=1, ['ち-る']=2, ['ち-らす']=2, ['ち-らかす']=2, ['ち-らかる']=2}, ['算']={['サン']=1}, ['酸']={['サン']=1, ['す-い']=2}, ['賛']={['サン']=1}, ['残']={['ザン']=1, ['のこ-る']=2, ['のこ-す']=2}, ['斬']={['ザン']=1, ['き-る']=2}, ['暫']={['ザン']=1}, ['士']={['シ']=1}, ['子']={['シ']=1, ['ス']=1, ['こ-']=2}, ['支']={['シ']=1, ['ささ-える']=2}, ['止']={['シ']=1, ['と-まる']=2, ['と-める']=2}, ['氏']={['シ']=1, ['うじ-']=2}, ['仕']={['シ']=1, ['ジ']=3, ['つか-える']=2}, ['史']={['シ']=1}, ['司']={['シ']=1}, ['四']={['シ']=1, ['よ-']=2, ['よ-つ']=2, ['よっ-つ']=2, ['よん-']=2}, ['市']={['シ']=1, ['いち-']=2}, ['矢']={['シ']=1, ['や-']=2}, ['旨']={['シ']=1, ['むね-']=2}, ['死']={['シ']=1, ['し-ぬ']=2}, ['糸']={['シ']=1, ['いと-']=2}, ['至']={['シ']=1, ['いた-る']=2}, ['伺']={['シ']=1, ['うかが-う']=2}, ['志']={['シ']=1, ['こころざ-す']=2, ['こころざし-']=2}, ['私']={['シ']=1, ['わたくし-']=2, ['わたし-']=2}, ['使']={['シ']=1, ['つか-う']=2}, ['刺']={['シ']=1, ['さ-す']=2, ['さ-さる']=2}, ['始']={['シ']=1, ['はじ-める']=2, ['はじ-まる']=2}, ['姉']={['シ']=1, ['あね-']=2}, ['枝']={['シ']=1, ['えだ-']=2}, ['祉']={['シ']=1}, ['肢']={['シ']=1}, ['姿']={['シ']=1, ['すがた-']=2}, ['思']={['シ']=1, ['おも-う']=2}, ['指']={['シ']=1, ['ゆび-']=2, ['さ-す']=2}, ['施']={['シ']=1, ['セ']=1, ['ほどこ-す']=2}, ['師']={['シ']=1}, ['恣']={['シ']=1}, ['紙']={['シ']=1, ['かみ-']=2}, ['脂']={['シ']=1, ['あぶら-']=2}, ['視']={['シ']=1}, ['紫']={['シ']=1, ['むらさき-']=2}, ['詞']={['シ']=1}, ['歯']={['シ']=1, ['は-']=2}, ['嗣']={['シ']=1}, ['試']={['シ']=1, ['こころ-みる']=2, ['ため-す']=2}, ['詩']={['シ']=1}, ['資']={['シ']=1}, ['飼']={['シ']=1, ['か-う']=2}, ['誌']={['シ']=1}, ['雌']={['シ']=1, ['め-']=2, ['めす-']=2}, ['摯']={['シ']=1}, ['賜']={['シ']=1, ['たまわ-る']=2}, ['諮']={['シ']=1, ['はか-る']=2}, ['示']={['ジ']=1, ['シ']=1, ['しめ-す']=2}, ['字']={['ジ']=1, ['あざ-']=2}, ['寺']={['ジ']=1, ['てら-']=2}, ['次']={['ジ']=1, ['シ']=1, ['つ-ぐ']=2, ['つぎ-']=2}, ['耳']={['ジ']=1, ['みみ-']=2}, ['自']={['ジ']=1, ['シ']=1, ['みずか-ら']=2}, ['似']={['ジ']=1, ['に-る']=2}, ['児']={['ジ']=1, ['ニ']=3}, ['事']={['ジ']=1, ['ズ']=3, ['こと-']=2}, ['侍']={['ジ']=1, ['さむらい-']=2}, ['治']={['ジ']=1, ['チ']=1, ['おさ-める']=2, ['おさ-まる']=2, ['なお-る']=2, ['なお-す']=2}, ['持']={['ジ']=1, ['も-つ']=2}, ['時']={['ジ']=1, ['とき-']=2}, ['滋']={['ジ']=1}, ['慈']={['ジ']=1, ['いつく-しむ']=2}, ['辞']={['ジ']=1, ['や-める']=2}, ['磁']={['ジ']=1}, ['餌']={['ジ']=1, ['えさ-']=2, ['え-']=2}, ['璽']={['ジ']=1}, ['鹿']={['しか-']=2, ['か-']=4}, ['式']={['シキ']=1}, ['識']={['シキ']=1}, ['軸']={['ジク']=1}, ['七']={['シチ']=1, ['なな-']=2, ['なな-つ']=2, ['なの-']=4}, ['叱']={['シツ']=1, ['しか-る']=2}, ['失']={['シツ']=1, ['うしな-う']=2}, ['室']={['シツ']=1, ['むろ-']=2}, ['疾']={['シツ']=1}, ['執']={['シツ']=1, ['シュウ']=1, ['と-る']=2}, ['湿']={['シツ']=1, ['しめ-る']=2, ['しめ-す']=2}, ['嫉']={['シツ']=1}, ['漆']={['シツ']=1, ['うるし-']=2}, ['質']={['シツ']=1, ['シチ']=1, ['チ']=3}, ['実']={['ジツ']=1, ['み-']=2, ['みの-る']=2}, ['芝']={['しば-']=2}, ['写']={['シャ']=1, ['うつ-す']=2, ['うつ-る']=2}, ['社']={['シャ']=1, ['やしろ-']=2}, ['車']={['シャ']=1, ['くるま-']=2}, ['舎']={['シャ']=1}, ['者']={['シャ']=1, ['もの-']=2}, ['射']={['シャ']=1, ['い-る']=2}, ['捨']={['シャ']=1, ['す-てる']=2}, ['赦']={['シャ']=1}, ['斜']={['シャ']=1, ['なな-め']=2}, ['煮']={['シャ']=1, ['に-る']=2, ['に-える']=2, ['に-やす']=2}, ['遮']={['シャ']=1, ['さえぎ-る']=2}, ['謝']={['シャ']=1, ['あやま-る']=2}, ['邪']={['ジャ']=1}, ['蛇']={['ジャ']=1, ['ダ']=1, ['へび-']=2}, ['尺']={['シャク']=1}, ['借']={['シャク']=1, ['か-りる']=2}, ['酌']={['シャク']=1, ['く-む']=2}, ['釈']={['シャク']=1}, ['爵']={['シャク']=1}, ['若']={['ジャク']=1, ['ニャク']=3, ['わか-い']=2, ['も-しくは']=2}, ['弱']={['ジャク']=1, ['よわ-い']=2, ['よわ-る']=2, ['よわ-まる']=2, ['よわ-める']=2}, ['寂']={['ジャク']=1, ['セキ']=3, ['さび-']=2, ['さび-しい']=2, ['さび-れる']=2}, ['手']={['シュ']=1, ['て-']=2, ['た-']=4}, ['主']={['シュ']=1, ['ス']=3, ['ぬし-']=2, ['おも-']=2}, ['守']={['シュ']=1, ['ス']=3, ['まも-る']=2, ['も-り']=2}, ['朱']={['シュ']=1}, ['取']={['シュ']=1, ['と-る']=2}, ['狩']={['シュ']=1, ['か-る']=2, ['か-り']=2}, ['首']={['シュ']=1, ['くび-']=2}, ['殊']={['シュ']=1, ['こと-']=2}, ['珠']={['シュ']=1}, ['酒']={['シュ']=1, ['さけ-']=2, ['さか-']=4}, ['腫']={['シュ']=1, ['は-れる']=2, ['は-らす']=2}, ['種']={['シュ']=1, ['たね-']=2}, ['趣']={['シュ']=1, ['おもむき-']=2}, ['寿']={['ジュ']=1, ['ことぶき-']=2}, ['受']={['ジュ']=1, ['う-ける']=2, ['う-かる']=2}, ['呪']={['ジュ']=1, ['のろ-う']=2}, ['授']={['ジュ']=1, ['さず-ける']=2, ['さず-かる']=2}, ['需']={['ジュ']=1}, ['儒']={['ジュ']=1}, ['樹']={['ジュ']=1}, ['収']={['シュウ']=1, ['おさ-める']=2, ['おさ-まる']=2}, ['囚']={['シュウ']=1}, ['州']={['シュウ']=1, ['す-']=2}, ['舟']={['シュウ']=1, ['ふね-']=2, ['ふな-']=4}, ['秀']={['シュウ']=1, ['ひい-でる']=2}, ['周']={['シュウ']=1, ['まわ-り']=2}, ['宗']={['シュウ']=1, ['ソウ']=1}, ['拾']={['シュウ']=1, ['ジュウ']=1, ['ひろ-う']=2}, ['秋']={['シュウ']=1, ['あき-']=2}, ['臭']={['シュウ']=1, ['くさ-い']=2, ['にお-う']=2}, ['修']={['シュウ']=1, ['シュ']=3, ['おさ-める']=2, ['おさ-まる']=2}, ['袖']={['シュウ']=1, ['そで-']=2}, ['終']={['シュウ']=1, ['お-わる']=2, ['お-える']=2}, ['羞']={['シュウ']=1}, ['習']={['シュウ']=1, ['なら-う']=2}, ['週']={['シュウ']=1}, ['就']={['シュウ']=1, ['ジュ']=3, ['つ-く']=2, ['つ-ける']=2}, ['衆']={['シュウ']=1, ['シュ']=3}, ['集']={['シュウ']=1, ['あつ-まる']=2, ['あつ-める']=2, ['つど-う']=2}, ['愁']={['シュウ']=1, ['うれ-える']=2, ['うれ-い']=2}, ['酬']={['シュウ']=1}, ['醜']={['シュウ']=1, ['みにく-い']=2}, ['蹴']={['シュウ']=1, ['け-る']=2}, ['襲']={['シュウ']=1, ['おそ-う']=2}, ['十']={['ジュウ']=1, ['ジッ']=1, ['とお-']=2, ['と-']=2}, ['汁']={['ジュウ']=1, ['しる-']=2}, ['充']={['ジュウ']=1, ['あ-てる']=2}, ['住']={['ジュウ']=1, ['す-む']=2, ['す-まう']=2}, ['柔']={['ジュウ']=1, ['ニュウ']=1, ['やわ-らか']=2, ['やわ-らかい']=2}, ['重']={['ジュウ']=1, ['チョウ']=1, ['え-']=2, ['おも-い']=2, ['かさ-ねる']=2, ['かさ-なる']=2}, ['従']={['ジュウ']=1, ['ショウ']=3, ['ジュ']=3, ['したが-う']=2, ['したが-える']=2}, ['渋']={['ジュウ']=1, ['しぶ-']=2, ['しぶ-い']=2, ['しぶ-る']=2}, ['銃']={['ジュウ']=1}, ['獣']={['ジュウ']=1, ['けもの-']=2}, ['縦']={['ジュウ']=1, ['たて-']=2}, ['叔']={['シュク']=1}, ['祝']={['シュク']=1, ['シュウ']=3, ['いわ-う']=2}, ['宿']={['シュク']=1, ['やど-']=2, ['やど-る']=2, ['やど-す']=2}, ['淑']={['シュク']=1}, ['粛']={['シュク']=1}, ['縮']={['シュク']=1, ['ちぢ-む']=2, ['ちぢ-まる']=2, ['ちぢ-める']=2, ['ちぢ-れる']=2, ['ちぢ-らす']=2}, ['塾']={['ジュク']=1}, ['熟']={['ジュク']=1, ['う-れる']=2}, ['出']={['シュツ']=1, ['スイ']=3, ['で-る']=2, ['だ-す']=2}, ['述']={['ジュツ']=1, ['の-べる']=2}, ['術']={['ジュツ']=1}, ['俊']={['シュン']=1}, ['春']={['シュン']=1, ['はる-']=2}, ['瞬']={['シュン']=1, ['またた-く']=2}, ['旬']={['ジュン']=1, ['シュン']=3}, ['巡']={['ジュン']=1, ['めぐ-る']=2}, ['盾']={['ジュン']=1, ['たて-']=2}, ['准']={['ジュン']=1}, ['殉']={['ジュン']=1}, ['純']={['ジュン']=1}, ['循']={['ジュン']=1}, ['順']={['ジュン']=1}, ['準']={['ジュン']=1}, ['潤']={['ジュン']=1, ['うるお-う']=2, ['うるお-す']=2, ['うる-む']=2}, ['遵']={['ジュン']=1}, ['処']={['ショ']=1}, ['初']={['ショ']=1, ['はじ-め']=2, ['はじ-めて']=2, ['はつ-']=2, ['うい-']=2, ['そ-める']=2}, ['所']={['ショ']=1, ['ところ-']=2}, ['書']={['ショ']=1, ['か-く']=2}, ['庶']={['ショ']=1}, ['暑']={['ショ']=1, ['あつ-い']=2}, ['署']={['ショ']=1}, ['緒']={['ショ']=1, ['チョ']=3, ['お-']=2}, ['諸']={['ショ']=1}, ['女']={['ジョ']=1, ['ニョ']=1, ['ニョウ']=3, ['おんな-']=2, ['め-']=2}, ['如']={['ジョ']=1, ['ニョ']=1}, ['助']={['ジョ']=1, ['たす-ける']=2, ['たす-かる']=2, ['すけ-']=2}, ['序']={['ジョ']=1}, ['叙']={['ジョ']=1}, ['徐']={['ジョ']=1}, ['除']={['ジョ']=1, ['ジ']=3, ['のぞ-く']=2}, ['小']={['ショウ']=1, ['ちい-さい']=2, ['こ-']=2, ['お-']=2}, ['升']={['ショウ']=1, ['ます-']=2}, ['少']={['ショウ']=1, ['すく-ない']=2, ['すこ-し']=2}, ['召']={['ショウ']=1, ['め-す']=2}, ['匠']={['ショウ']=1}, ['床']={['ショウ']=1, ['とこ-']=2, ['ゆか-']=2}, ['抄']={['ショウ']=1}, ['肖']={['ショウ']=1}, ['尚']={['ショウ']=1}, ['招']={['ショウ']=1, ['まね-く']=2}, ['承']={['ショウ']=1, ['うけたまわ-る']=2}, ['昇']={['ショウ']=1, ['のぼ-る']=2}, ['松']={['ショウ']=1, ['まつ-']=2}, ['沼']={['ショウ']=1, ['ぬま-']=2}, ['昭']={['ショウ']=1}, ['宵']={['ショウ']=1, ['よい-']=2}, ['将']={['ショウ']=1}, ['消']={['ショウ']=1, ['き-える']=2, ['け-す']=2}, ['症']={['ショウ']=1}, ['祥']={['ショウ']=1}, ['称']={['ショウ']=1}, ['笑']={['ショウ']=1, ['わら-う']=2, ['え-む']=2}, ['唱']={['ショウ']=1, ['とな-える']=2}, ['商']={['ショウ']=1, ['あきな-う']=2}, ['渉']={['ショウ']=1}, ['章']={['ショウ']=1}, ['紹']={['ショウ']=1}, ['訟']={['ショウ']=1}, ['勝']={['ショウ']=1, ['か-つ']=2, ['まさ-る']=2}, ['掌']={['ショウ']=1}, ['晶']={['ショウ']=1}, ['焼']={['ショウ']=1, ['や-く']=2, ['や-ける']=2}, ['焦']={['ショウ']=1, ['こ-げる']=2, ['こ-がす']=2, ['こ-がれる']=2, ['あせ-る']=2}, ['硝']={['ショウ']=1}, ['粧']={['ショウ']=1}, ['詔']={['ショウ']=1, ['みことのり-']=2}, ['証']={['ショウ']=1}, ['象']={['ショウ']=1, ['ゾウ']=1}, ['傷']={['ショウ']=1, ['きず-']=2, ['いた-む']=2, ['いた-める']=2}, ['奨']={['ショウ']=1}, ['照']={['ショウ']=1, ['て-る']=2, ['て-らす']=2, ['て-れる']=2}, ['詳']={['ショウ']=1, ['くわ-しい']=2}, ['彰']={['ショウ']=1}, ['障']={['ショウ']=1, ['さわ-る']=2}, ['憧']={['ショウ']=1, ['あこが-れる']=2}, ['衝']={['ショウ']=1}, ['賞']={['ショウ']=1}, ['償']={['ショウ']=1, ['つぐな-う']=2}, ['礁']={['ショウ']=1}, ['鐘']={['ショウ']=1, ['かね-']=2}, ['上']={['ジョウ']=1, ['ショウ']=3, ['うえ-']=2, ['うわ-']=4, ['かみ-']=2, ['あ-げる']=2, ['あ-がる']=2, ['のぼ-る']=2, ['のぼ-せる']=2, ['のぼ-す']=2}, ['丈']={['ジョウ']=1, ['たけ-']=2}, ['冗']={['ジョウ']=1}, ['条']={['ジョウ']=1}, ['状']={['ジョウ']=1}, ['乗']={['ジョウ']=1, ['の-る']=2, ['の-せる']=2}, ['城']={['ジョウ']=1, ['しろ-']=2}, ['浄']={['ジョウ']=1}, ['剰']={['ジョウ']=1}, ['常']={['ジョウ']=1, ['つね-']=2, ['とこ-']=2}, ['情']={['ジョウ']=1, ['セイ']=3, ['なさ-け']=2}, ['場']={['ジョウ']=1, ['ば-']=2}, ['畳']={['ジョウ']=1, ['たた-む']=2, ['たたみ-']=2}, ['蒸']={['ジョウ']=1, ['む-す']=2, ['む-れる']=2, ['む-らす']=2}, ['縄']={['ジョウ']=1, ['なわ-']=2}, ['壌']={['ジョウ']=1}, ['嬢']={['ジョウ']=1}, ['錠']={['ジョウ']=1}, ['譲']={['ジョウ']=1, ['ゆず-る']=2}, ['醸']={['ジョウ']=1, ['かも-す']=2}, ['色']={['ショク']=1, ['シキ']=1, ['いろ-']=2}, ['拭']={['ショク']=1, ['ふ-く']=2, ['ぬぐ-う']=2}, ['食']={['ショク']=1, ['ジキ']=3, ['く-う']=2, ['く-らう']=2, ['た-べる']=2}, ['植']={['ショク']=1, ['う-える']=2, ['う-わる']=2}, ['殖']={['ショク']=1, ['ふ-える']=2, ['ふ-やす']=2}, ['飾']={['ショク']=1, ['かざ-る']=2}, ['触']={['ショク']=1, ['ふ-れる']=2, ['さわ-る']=2}, ['嘱']={['ショク']=1}, ['織']={['ショク']=1, ['シキ']=1, ['お-る']=2}, ['職']={['ショク']=1}, ['辱']={['ジョク']=1, ['はずかし-める']=2}, ['尻']={['しり-']=2}, ['心']={['シン']=1, ['こころ-']=2}, ['申']={['シン']=1, ['もう-す']=2}, ['伸']={['シン']=1, ['の-びる']=2, ['の-ばす']=2, ['の-べる']=2}, ['臣']={['シン']=1, ['ジン']=1}, ['芯']={['シン']=1}, ['身']={['シン']=1, ['み-']=2}, ['辛']={['シン']=1, ['から-い']=2}, ['侵']={['シン']=1, ['おか-す']=2}, ['信']={['シン']=1}, ['津']={['シン']=1, ['つ-']=2}, ['神']={['シン']=1, ['ジン']=1, ['かみ-']=2, ['かん-']=4, ['こう-']=4}, ['唇']={['シン']=1, ['くちびる-']=2}, ['娠']={['シン']=1}, ['振']={['シン']=1, ['ふ-る']=2, ['ふ-るう']=2, ['ふ-れる']=2}, ['浸']={['シン']=1, ['ひた-す']=2, ['ひた-る']=2}, ['真']={['シン']=1, ['ま-']=2}, ['針']={['シン']=1, ['はり-']=2}, ['深']={['シン']=1, ['ふか-い']=2, ['ふか-まる']=2, ['ふか-める']=2}, ['紳']={['シン']=1}, ['進']={['シン']=1, ['すす-む']=2, ['すす-める']=2}, ['森']={['シン']=1, ['もり-']=2}, ['診']={['シン']=1, ['み-る']=2}, ['寝']={['シン']=1, ['ね-る']=2, ['ね-かす']=2}, ['慎']={['シン']=1, ['つつし-む']=2}, ['新']={['シン']=1, ['あたら-しい']=2, ['あら-た']=2, ['にい-']=2}, ['審']={['シン']=1}, ['震']={['シン']=1, ['ふる-う']=2, ['ふる-える']=2}, ['薪']={['シン']=1, ['たきぎ-']=2}, ['親']={['シン']=1, ['おや-']=2, ['した-しい']=2, ['した-しむ']=2}, ['人']={['ジン']=1, ['ニン']=1, ['ひと-']=2}, ['刃']={['ジン']=1, ['は-']=2}, ['仁']={['ジン']=1, ['ニ']=3}, ['尽']={['ジン']=1, ['つ-くす']=2, ['つ-きる']=2, ['つ-かす']=2}, ['迅']={['ジン']=1}, ['甚']={['ジン']=1, ['はなは-だ']=2, ['はなは-だしい']=2}, ['陣']={['ジン']=1}, ['尋']={['ジン']=1, ['たず-ねる']=2}, ['腎']={['ジン']=1}, ['須']={['ス']=1}, ['図']={['ズ']=1, ['ト']=1, ['はか-る']=2}, ['水']={['スイ']=1, ['みず-']=2}, ['吹']={['スイ']=1, ['ふ-く']=2}, ['垂']={['スイ']=1, ['た-れる']=2, ['た-らす']=2}, ['炊']={['スイ']=1, ['た-く']=2}, ['帥']={['スイ']=1}, ['粋']={['スイ']=1, ['いき-']=2}, ['衰']={['スイ']=1, ['おとろ-える']=2}, ['推']={['スイ']=1, ['お-す']=2}, ['酔']={['スイ']=1, ['よ-う']=2}, ['遂']={['スイ']=1, ['と-げる']=2}, ['睡']={['スイ']=1}, ['穂']={['スイ']=1, ['ほ-']=2}, ['随']={['ズイ']=1}, ['髄']={['ズイ']=1}, ['枢']={['スウ']=1}, ['崇']={['スウ']=1}, ['数']={['スウ']=1, ['ス']=3, ['かず-']=2, ['かぞ-える']=2}, ['据']={['す-える']=2, ['す-わる']=2}, ['杉']={['すぎ-']=2}, ['裾']={['すそ-']=2}, ['寸']={['スン']=1}, ['瀬']={['せ-']=2}, ['是']={['ゼ']=1}, ['井']={['セイ']=1, ['ショウ']=3, ['い-']=2}, ['世']={['セイ']=1, ['セ']=1, ['よ-']=2}, ['正']={['セイ']=1, ['ショウ']=1, ['ただ-しい']=2, ['ただ-す']=2, ['まさ-']=2}, ['生']={['セイ']=1, ['ショウ']=1, ['い-きる']=2, ['い-かす']=2, ['い-ける']=2, ['う-まれる']=2, ['う-む']=2, ['お-う']=2, ['は-える']=2, ['は-やす']=2, ['き-']=2, ['なま-']=2}, ['成']={['セイ']=1, ['ジョウ']=3, ['な-る']=2, ['な-す']=2}, ['西']={['セイ']=1, ['サイ']=1, ['にし-']=2}, ['声']={['セイ']=1, ['ショウ']=3, ['こえ-']=2, ['こわ-']=4}, ['制']={['セイ']=1}, ['姓']={['セイ']=1, ['ショウ']=1}, ['征']={['セイ']=1}, ['性']={['セイ']=1, ['ショウ']=1}, ['青']={['セイ']=1, ['ショウ']=3, ['あお-']=2, ['あお-い']=2}, ['斉']={['セイ']=1}, ['政']={['セイ']=1, ['ショウ']=3, ['まつりごと-']=2}, ['星']={['セイ']=1, ['ショウ']=3, ['ほし-']=2}, ['牲']={['セイ']=1}, ['省']={['セイ']=1, ['ショウ']=1, ['かえり-みる']=2, ['はぶ-く']=2}, ['凄']={['セイ']=1}, ['逝']={['セイ']=1, ['ゆ-く']=2, ['い-く']=2}, ['清']={['セイ']=1, ['ショウ']=3, ['きよ-い']=2, ['きよ-まる']=2, ['きよ-める']=2}, ['盛']={['セイ']=1, ['ジョウ']=3, ['も-る']=2, ['さか-る']=2, ['さか-ん']=2}, ['婿']={['セイ']=1, ['むこ-']=2}, ['晴']={['セイ']=1, ['は-れる']=2, ['は-らす']=2}, ['勢']={['セイ']=1, ['いきお-い']=2}, ['聖']={['セイ']=1}, ['誠']={['セイ']=1, ['まこと-']=2}, ['精']={['セイ']=1, ['ショウ']=3}, ['製']={['セイ']=1}, ['誓']={['セイ']=1, ['ちか-う']=2}, ['静']={['セイ']=1, ['ジョウ']=3, ['しず-']=2, ['しず-か']=2, ['しず-まる']=2, ['しず-める']=2}, ['請']={['セイ']=1, ['シン']=3, ['こ-う']=2, ['う-ける']=2}, ['整']={['セイ']=1, ['ととの-える']=2, ['ととの-う']=2}, ['醒']={['セイ']=1}, ['税']={['ゼイ']=1}, ['夕']={['セキ']=1, ['ゆう-']=2}, ['斥']={['セキ']=1}, ['石']={['セキ']=1, ['シャク']=3, ['コク']=3, ['いし-']=2}, ['赤']={['セキ']=1, ['シャク']=3, ['あか-']=2, ['あか-い']=2, ['あか-らむ']=2, ['あか-らめる']=2}, ['昔']={['セキ']=1, ['シャク']=3, ['むかし-']=2}, ['析']={['セキ']=1}, ['席']={['セキ']=1}, ['脊']={['セキ']=1}, ['隻']={['セキ']=1}, ['惜']={['セキ']=1, ['お-しい']=2, ['お-しむ']=2}, ['戚']={['セキ']=1}, ['責']={['セキ']=1, ['せ-める']=2}, ['跡']={['セキ']=1, ['あと-']=2}, ['積']={['セキ']=1, ['つ-む']=2, ['つ-もる']=2}, ['績']={['セキ']=1}, ['籍']={['セキ']=1}, ['切']={['セツ']=1, ['サイ']=3, ['き-る']=2, ['き-れる']=2}, ['折']={['セツ']=1, ['お-る']=2, ['おり-']=2, ['お-れる']=2}, ['拙']={['セツ']=1, ['つたな-い']=2}, ['窃']={['セツ']=1}, ['接']={['セツ']=1, ['つ-ぐ']=2}, ['設']={['セツ']=1, ['もう-ける']=2}, ['雪']={['セツ']=1, ['ゆき-']=2}, ['摂']={['セツ']=1}, ['節']={['セツ']=1, ['セチ']=3, ['ふし-']=2}, ['説']={['セツ']=1, ['ゼイ']=3, ['と-く']=2}, ['舌']={['ゼツ']=1, ['した-']=2}, ['絶']={['ゼツ']=1, ['た-える']=2, ['た-やす']=2, ['た-つ']=2}, ['千']={['セン']=1, ['ち-']=2}, ['川']={['セン']=1, ['かわ-']=2}, ['仙']={['セン']=1}, ['占']={['セン']=1, ['し-める']=2, ['うらな-う']=2}, ['先']={['セン']=1, ['さき-']=2}, ['宣']={['セン']=1}, ['専']={['セン']=1, ['もっぱ-ら']=2}, ['泉']={['セン']=1, ['いずみ-']=2}, ['浅']={['セン']=1, ['あさ-い']=2}, ['洗']={['セン']=1, ['あら-う']=2}, ['染']={['セン']=1, ['そ-める']=2, ['そ-まる']=2, ['し-みる']=2, ['し-み']=2}, ['扇']={['セン']=1, ['おうぎ-']=2}, ['栓']={['セン']=1}, ['旋']={['セン']=1}, ['船']={['セン']=1, ['ふね-']=2, ['ふな-']=4}, ['戦']={['セン']=1, ['いくさ-']=2, ['たたか-う']=2}, ['煎']={['セン']=1, ['い-る']=2}, ['羨']={['セン']=1, ['うらや-む']=2, ['うらや-ましい']=2}, ['腺']={['セン']=1}, ['詮']={['セン']=1}, ['践']={['セン']=1}, ['箋']={['セン']=1}, ['銭']={['セン']=1, ['ぜに-']=2}, ['潜']={['セン']=1, ['ひそ-む']=2, ['もぐ-る']=2}, ['線']={['セン']=1}, ['遷']={['セン']=1}, ['選']={['セン']=1, ['えら-ぶ']=2}, ['薦']={['セン']=1, ['すす-める']=2}, ['繊']={['セン']=1}, ['鮮']={['セン']=1, ['あざ-やか']=2}, ['全']={['ゼン']=1, ['まった-く']=2, ['すべ-て']=2}, ['前']={['ゼン']=1, ['まえ-']=2}, ['善']={['ゼン']=1, ['よ-い']=2}, ['然']={['ゼン']=1, ['ネン']=1}, ['禅']={['ゼン']=1}, ['漸']={['ゼン']=1}, ['膳']={['ゼン']=1}, ['繕']={['ゼン']=1, ['つくろ-う']=2}, ['狙']={['ソ']=1, ['ねら-う']=2}, ['阻']={['ソ']=1, ['はば-む']=2}, ['祖']={['ソ']=1}, ['租']={['ソ']=1}, ['素']={['ソ']=1, ['ス']=1}, ['措']={['ソ']=1}, ['粗']={['ソ']=1, ['あら-い']=2}, ['組']={['ソ']=1, ['く-む']=2, ['くみ-']=2}, ['疎']={['ソ']=1, ['うと-い']=2, ['うと-む']=2}, ['訴']={['ソ']=1, ['うった-える']=2}, ['塑']={['ソ']=1}, ['遡']={['ソ']=1, ['さかのぼ-る']=2}, ['礎']={['ソ']=1, ['いしずえ-']=2}, ['双']={['ソウ']=1, ['ふた-']=2}, ['壮']={['ソウ']=1}, ['早']={['ソウ']=1, ['サッ']=3, ['はや-い']=2, ['はや-まる']=2, ['はや-める']=2}, ['争']={['ソウ']=1, ['あらそ-う']=2}, ['走']={['ソウ']=1, ['はし-る']=2}, ['奏']={['ソウ']=1, ['かな-でる']=2}, ['相']={['ソウ']=1, ['ショウ']=1, ['あい-']=2}, ['荘']={['ソウ']=1}, ['草']={['ソウ']=1, ['くさ-']=2}, ['送']={['ソウ']=1, ['おく-る']=2}, ['倉']={['ソウ']=1, ['くら-']=2}, ['捜']={['ソウ']=1, ['さが-す']=2}, ['挿']={['ソウ']=1, ['さ-す']=2}, ['桑']={['ソウ']=1, ['くわ-']=2}, ['巣']={['ソウ']=1, ['す-']=2}, ['掃']={['ソウ']=1, ['は-く']=2}, ['曹']={['ソウ']=1}, ['曽']={['ソウ']=1, ['ゾ']=3}, ['爽']={['ソウ']=1, ['さわ-やか']=2}, ['窓']={['ソウ']=1, ['まど-']=2}, ['創']={['ソウ']=1, ['つく-る']=2}, ['喪']={['ソウ']=1, ['も-']=2}, ['痩']={['ソウ']=1, ['や-せる']=2}, ['葬']={['ソウ']=1, ['ほうむ-る']=2}, ['装']={['ソウ']=1, ['ショウ']=1, ['よそお-う']=2}, ['僧']={['ソウ']=1}, ['想']={['ソウ']=1, ['ソ']=3}, ['層']={['ソウ']=1}, ['総']={['ソウ']=1}, ['遭']={['ソウ']=1, ['あ-う']=2}, ['槽']={['ソウ']=1}, ['踪']={['ソウ']=1}, ['操']={['ソウ']=1, ['みさお-']=2, ['あやつ-る']=2}, ['燥']={['ソウ']=1}, ['霜']={['ソウ']=1, ['しも-']=2}, ['騒']={['ソウ']=1, ['さわ-ぐ']=2}, ['藻']={['ソウ']=1, ['も-']=2}, ['造']={['ゾウ']=1, ['つく-る']=2}, ['像']={['ゾウ']=1}, ['増']={['ゾウ']=1, ['ま-す']=2, ['ふ-える']=2, ['ふ-やす']=2}, ['憎']={['ゾウ']=1, ['にく-む']=2, ['にく-い']=2, ['にく-らしい']=2, ['にく-しみ']=2}, ['蔵']={['ゾウ']=1, ['くら-']=2}, ['贈']={['ゾウ']=1, ['ソウ']=3, ['おく-る']=2}, ['臓']={['ゾウ']=1}, ['即']={['ソク']=1}, ['束']={['ソク']=1, ['たば-']=2}, ['足']={['ソク']=1, ['あし-']=2, ['た-りる']=2, ['た-る']=2, ['た-す']=2}, ['促']={['ソク']=1, ['うなが-す']=2}, ['則']={['ソク']=1}, ['息']={['ソク']=1, ['いき-']=2}, ['捉']={['ソク']=1, ['とら-える']=2}, ['速']={['ソク']=1, ['はや-い']=2, ['はや-める']=2, ['はや-まる']=2, ['すみ-やか']=2}, ['側']={['ソク']=1, ['がわ-']=2}, ['測']={['ソク']=1, ['はか-る']=2}, ['俗']={['ゾク']=1}, ['族']={['ゾク']=1}, ['属']={['ゾク']=1}, ['賊']={['ゾク']=1}, ['続']={['ゾク']=1, ['つづ-く']=2, ['つづ-ける']=2}, ['卒']={['ソツ']=1}, ['率']={['ソツ']=1, ['リツ']=1, ['ひき-いる']=2}, ['存']={['ソン']=1, ['ゾン']=1}, ['村']={['ソン']=1, ['むら-']=2}, ['孫']={['ソン']=1, ['まご-']=2}, ['尊']={['ソン']=1, ['たっと-い']=2, ['とうと-い']=2, ['たっと-ぶ']=2, ['とうと-ぶ']=2}, ['損']={['ソン']=1, ['そこ-なう']=2, ['そこ-ねる']=2}, ['遜']={['ソン']=1}, ['他']={['タ']=1, ['ほか-']=2}, ['多']={['タ']=1, ['おお-い']=2}, ['汰']={['タ']=1}, ['打']={['ダ']=1, ['う-つ']=2}, ['妥']={['ダ']=1}, ['唾']={['ダ']=1, ['つば-']=2}, ['堕']={['ダ']=1}, ['惰']={['ダ']=1}, ['駄']={['ダ']=1}, ['太']={['タイ']=1, ['タ']=1, ['ふと-い']=2, ['ふと-る']=2}, ['対']={['タイ']=1, ['ツイ']=1}, ['体']={['タイ']=1, ['テイ']=1, ['からだ-']=2}, ['耐']={['タイ']=1, ['た-える']=2}, ['待']={['タイ']=1, ['ま-つ']=2}, ['怠']={['タイ']=1, ['おこた-る']=2, ['なま-ける']=2}, ['胎']={['タイ']=1}, ['退']={['タイ']=1, ['しりぞ-く']=2, ['しりぞ-ける']=2}, ['帯']={['タイ']=1, ['お-びる']=2, ['おび-']=2}, ['泰']={['タイ']=1}, ['堆']={['タイ']=1}, ['袋']={['タイ']=1, ['ふくろ-']=2}, ['逮']={['タイ']=1}, ['替']={['タイ']=1, ['か-える']=2, ['か-わる']=2}, ['貸']={['タイ']=1, ['か-す']=2}, ['隊']={['タイ']=1}, ['滞']={['タイ']=1, ['とどこお-る']=2}, ['態']={['タイ']=1}, ['戴']={['タイ']=1}, ['大']={['ダイ']=1, ['タイ']=1, ['おお-']=2, ['おお-きい']=2, ['おお-いに']=2}, ['代']={['ダイ']=1, ['タイ']=1, ['か-わる']=2, ['か-える']=2, ['よ-']=2, ['しろ-']=2}, ['台']={['ダイ']=1, ['タイ']=1}, ['第']={['ダイ']=1}, ['題']={['ダイ']=1}, ['滝']={['たき-']=2}, ['宅']={['タク']=1}, ['択']={['タク']=1}, ['沢']={['タク']=1, ['さわ-']=2}, ['卓']={['タク']=1}, ['拓']={['タク']=1}, ['託']={['タク']=1}, ['濯']={['タク']=1}, ['諾']={['ダク']=1}, ['濁']={['ダク']=1, ['にご-る']=2, ['にご-す']=2}, ['但']={['ただ-し']=2}, ['達']={['タツ']=1}, ['脱']={['ダツ']=1, ['ぬ-ぐ']=2, ['ぬ-げる']=2}, ['奪']={['ダツ']=1, ['うば-う']=2}, ['棚']={['たな-']=2}, ['誰']={['だれ-']=2}, ['丹']={['タン']=1}, ['旦']={['タン']=1, ['ダン']=1}, ['担']={['タン']=1, ['かつ-ぐ']=2, ['にな-う']=2}, ['単']={['タン']=1}, ['炭']={['タン']=1, ['すみ-']=2}, ['胆']={['タン']=1}, ['探']={['タン']=1, ['さぐ-る']=2, ['さが-す']=2}, ['淡']={['タン']=1, ['あわ-い']=2}, ['短']={['タン']=1, ['みじか-い']=2}, ['嘆']={['タン']=1, ['なげ-く']=2, ['なげ-かわしい']=2}, ['端']={['タン']=1, ['はし-']=2, ['は-']=2, ['はた-']=2}, ['綻']={['タン']=1, ['ほころ-びる']=2}, ['誕']={['タン']=1}, ['鍛']={['タン']=1, ['きた-える']=2}, ['団']={['ダン']=1, ['トン']=3}, ['男']={['ダン']=1, ['ナン']=1, ['おとこ-']=2}, ['段']={['ダン']=1}, ['断']={['ダン']=1, ['た-つ']=2, ['ことわ-る']=2}, ['弾']={['ダン']=1, ['ひ-く']=2, ['はず-む']=2, ['たま-']=2}, ['暖']={['ダン']=1, ['あたた-か']=2, ['あたた-かい']=2, ['あたた-まる']=2, ['あたた-める']=2}, ['談']={['ダン']=1}, ['壇']={['ダン']=1, ['タン']=3}, ['地']={['チ']=1, ['ジ']=1}, ['池']={['チ']=1, ['いけ-']=2}, ['知']={['チ']=1, ['し-る']=2}, ['値']={['チ']=1, ['ね-']=2, ['あたい-']=2}, ['恥']={['チ']=1, ['は-じる']=2, ['はじ-']=2, ['は-じらう']=2, ['は-ずかしい']=2}, ['致']={['チ']=1, ['いた-す']=2}, ['遅']={['チ']=1, ['おく-れる']=2, ['おく-らす']=2, ['おそ-い']=2}, ['痴']={['チ']=1}, ['稚']={['チ']=1}, ['置']={['チ']=1, ['お-く']=2}, ['緻']={['チ']=1}, ['竹']={['チク']=1, ['たけ-']=2}, ['畜']={['チク']=1}, ['逐']={['チク']=1}, ['蓄']={['チク']=1, ['たくわ-える']=2}, ['築']={['チク']=1, ['きず-く']=2}, ['秩']={['チツ']=1}, ['窒']={['チツ']=1}, ['茶']={['チャ']=1, ['サ']=1}, ['着']={['チャク']=1, ['ジャク']=3, ['き-る']=2, ['き-せる']=2, ['つ-く']=2, ['つ-ける']=2}, ['嫡']={['チャク']=1}, ['中']={['チュウ']=1, ['ジュウ']=3, ['なか-']=2}, ['仲']={['チュウ']=1, ['なか-']=2}, ['虫']={['チュウ']=1, ['むし-']=2}, ['沖']={['チュウ']=1, ['おき-']=2}, ['宙']={['チュウ']=1}, ['忠']={['チュウ']=1}, ['抽']={['チュウ']=1}, ['注']={['チュウ']=1, ['そそ-ぐ']=2}, ['昼']={['チュウ']=1, ['ひる-']=2}, ['柱']={['チュウ']=1, ['はしら-']=2}, ['衷']={['チュウ']=1}, ['酎']={['チュウ']=1}, ['鋳']={['チュウ']=1, ['い-る']=2}, ['駐']={['チュウ']=1}, ['著']={['チョ']=1, ['あらわ-す']=2, ['いちじる-しい']=2}, ['貯']={['チョ']=1}, ['丁']={['チョウ']=1, ['テイ']=1}, ['弔']={['チョウ']=1, ['とむら-う']=2}, ['庁']={['チョウ']=1}, ['兆']={['チョウ']=1, ['きざ-す']=2, ['きざ-し']=2}, ['町']={['チョウ']=1, ['まち-']=2}, ['長']={['チョウ']=1, ['なが-い']=2}, ['挑']={['チョウ']=1, ['いど-む']=2}, ['帳']={['チョウ']=1}, ['張']={['チョウ']=1, ['は-る']=2}, ['彫']={['チョウ']=1, ['ほ-る']=2}, ['眺']={['チョウ']=1, ['なが-める']=2}, ['釣']={['チョウ']=1, ['つ-る']=2}, ['頂']={['チョウ']=1, ['いただ-く']=2, ['いただき-']=2}, ['鳥']={['チョウ']=1, ['とり-']=2}, ['朝']={['チョウ']=1, ['あさ-']=2}, ['貼']={['チョウ']=1, ['は-る']=2}, ['超']={['チョウ']=1, ['こ-える']=2, ['こ-す']=2}, ['腸']={['チョウ']=1}, ['跳']={['チョウ']=1, ['は-ねる']=2, ['と-ぶ']=2}, ['徴']={['チョウ']=1}, ['嘲']={['チョウ']=1, ['あざけ-る']=2}, ['潮']={['チョウ']=1, ['しお-']=2}, ['澄']={['チョウ']=1, ['す-む']=2, ['す-ます']=2}, ['調']={['チョウ']=1, ['しら-べる']=2, ['ととの-う']=2, ['ととの-える']=2}, ['聴']={['チョウ']=1, ['き-く']=2}, ['懲']={['チョウ']=1, ['こ-りる']=2, ['こ-らす']=2, ['こ-らしめる']=2}, ['直']={['チョク']=1, ['ジキ']=1, ['ただ-ちに']=2, ['なお-す']=2, ['なお-る']=2}, ['勅']={['チョク']=1}, ['捗']={['チョク']=1}, ['沈']={['チン']=1, ['しず-む']=2, ['しず-める']=2}, ['珍']={['チン']=1, ['めずら-しい']=2}, ['朕']={['チン']=1}, ['陳']={['チン']=1}, ['賃']={['チン']=1}, ['鎮']={['チン']=1, ['しず-める']=2, ['しず-まる']=2}, ['追']={['ツイ']=1, ['お-う']=2}, ['椎']={['ツイ']=1}, ['墜']={['ツイ']=1}, ['通']={['ツウ']=1, ['ツ']=3, ['とお-る']=2, ['とお-す']=2, ['かよ-う']=2}, ['痛']={['ツウ']=1, ['いた-い']=2, ['いた-む']=2, ['いた-める']=2}, ['塚']={['つか-']=2}, ['漬']={['つ-ける']=2, ['つ-かる']=2}, ['坪']={['つぼ-']=2}, ['爪']={['つめ-']=2, ['つま-']=4}, ['鶴']={['つる-']=2}, ['低']={['テイ']=1, ['ひく-い']=2, ['ひく-める']=2, ['ひく-まる']=2}, ['呈']={['テイ']=1}, ['廷']={['テイ']=1}, ['弟']={['テイ']=1, ['ダイ']=3, ['デ']=3, ['おとうと-']=2}, ['定']={['テイ']=1, ['ジョウ']=1, ['さだ-める']=2, ['さだ-まる']=2, ['さだ-か']=2}, ['底']={['テイ']=1, ['そこ-']=2}, ['抵']={['テイ']=1}, ['邸']={['テイ']=1}, ['亭']={['テイ']=1}, ['貞']={['テイ']=1}, ['帝']={['テイ']=1}, ['訂']={['テイ']=1}, ['庭']={['テイ']=1, ['にわ-']=2}, ['逓']={['テイ']=1}, ['停']={['テイ']=1}, ['偵']={['テイ']=1}, ['堤']={['テイ']=1, ['つつみ-']=2}, ['提']={['テイ']=1, ['さ-げる']=2}, ['程']={['テイ']=1, ['ほど-']=2}, ['艇']={['テイ']=1}, ['締']={['テイ']=1, ['し-まる']=2, ['し-める']=2}, ['諦']={['テイ']=1, ['あきら-める']=2}, ['泥']={['デイ']=1, ['どろ-']=2}, ['的']={['テキ']=1, ['まと-']=2}, ['笛']={['テキ']=1, ['ふえ-']=2}, ['摘']={['テキ']=1, ['つ-む']=2}, ['滴']={['テキ']=1, ['しずく-']=2, ['したた-る']=2}, ['適']={['テキ']=1}, ['敵']={['テキ']=1, ['かたき-']=2}, ['溺']={['デキ']=1, ['おぼ-れる']=2}, ['迭']={['テツ']=1}, ['哲']={['テツ']=1}, ['鉄']={['テツ']=1}, ['徹']={['テツ']=1}, ['撤']={['テツ']=1}, ['天']={['テン']=1, ['あめ-']=2, ['あま-']=4}, ['典']={['テン']=1}, ['店']={['テン']=1, ['みせ-']=2}, ['点']={['テン']=1}, ['展']={['テン']=1}, ['添']={['テン']=1, ['そ-える']=2, ['そ-う']=2}, ['転']={['テン']=1, ['ころ-がる']=2, ['ころ-げる']=2, ['ころ-がす']=2, ['ころ-ぶ']=2}, ['塡']={['テン']=1}, ['田']={['デン']=1, ['た-']=2}, ['伝']={['デン']=1, ['つた-わる']=2, ['つた-える']=2, ['つた-う']=2}, ['殿']={['デン']=1, ['テン']=1, ['との-']=2, ['どの-']=2}, ['電']={['デン']=1}, ['斗']={['ト']=1}, ['吐']={['ト']=1, ['は-く']=2}, ['妬']={['ト']=1, ['ねた-む']=2}, ['徒']={['ト']=1}, ['途']={['ト']=1}, ['都']={['ト']=1, ['ツ']=1, ['みやこ-']=2}, ['渡']={['ト']=1, ['わた-る']=2, ['わた-す']=2}, ['塗']={['ト']=1, ['ぬ-る']=2}, ['賭']={['ト']=1, ['か-ける']=2}, ['土']={['ド']=1, ['ト']=1, ['つち-']=2}, ['奴']={['ド']=1}, ['努']={['ド']=1, ['つと-める']=2}, ['度']={['ド']=1, ['ト']=3, ['タク']=3, ['たび-']=2}, ['怒']={['ド']=1, ['いか-る']=2, ['おこ-る']=2}, ['刀']={['トウ']=1, ['かたな-']=2}, ['冬']={['トウ']=1, ['ふゆ-']=2}, ['灯']={['トウ']=1, ['ひ-']=2}, ['当']={['トウ']=1, ['あ-たる']=2, ['あ-てる']=2}, ['投']={['トウ']=1, ['な-げる']=2}, ['豆']={['トウ']=1, ['ズ']=3, ['まめ-']=2}, ['東']={['トウ']=1, ['ひがし-']=2}, ['到']={['トウ']=1}, ['逃']={['トウ']=1, ['に-げる']=2, ['に-がす']=2, ['のが-す']=2, ['のが-れる']=2}, ['倒']={['トウ']=1, ['たお-れる']=2, ['たお-す']=2}, ['凍']={['トウ']=1, ['こお-る']=2, ['こご-える']=2}, ['唐']={['トウ']=1, ['から-']=2}, ['島']={['トウ']=1, ['しま-']=2}, ['桃']={['トウ']=1, ['もも-']=2}, ['討']={['トウ']=1, ['う-つ']=2}, ['透']={['トウ']=1, ['す-く']=2, ['す-かす']=2, ['す-ける']=2}, ['党']={['トウ']=1}, ['悼']={['トウ']=1, ['いた-む']=2}, ['盗']={['トウ']=1, ['ぬす-む']=2}, ['陶']={['トウ']=1}, ['塔']={['トウ']=1}, ['搭']={['トウ']=1}, ['棟']={['トウ']=1, ['むね-']=2, ['むな-']=4}, ['湯']={['トウ']=1, ['ゆ-']=2}, ['痘']={['トウ']=1}, ['登']={['トウ']=1, ['ト']=1, ['のぼ-る']=2}, ['答']={['トウ']=1, ['こた-える']=2, ['こた-え']=2}, ['等']={['トウ']=1, ['ひと-しい']=2}, ['筒']={['トウ']=1, ['つつ-']=2}, ['統']={['トウ']=1, ['す-べる']=2}, ['稲']={['トウ']=1, ['いね-']=2, ['いな-']=4}, ['踏']={['トウ']=1, ['ふ-む']=2, ['ふ-まえる']=2}, ['糖']={['トウ']=1}, ['頭']={['トウ']=1, ['ズ']=1, ['ト']=3, ['あたま-']=2, ['かしら-']=2}, ['謄']={['トウ']=1}, ['藤']={['トウ']=1, ['ふじ-']=2}, ['闘']={['トウ']=1, ['たたか-う']=2}, ['騰']={['トウ']=1}, ['同']={['ドウ']=1, ['おな-じ']=2}, ['洞']={['ドウ']=1, ['ほら-']=2}, ['胴']={['ドウ']=1}, ['動']={['ドウ']=1, ['うご-く']=2, ['うご-かす']=2}, ['堂']={['ドウ']=1}, ['童']={['ドウ']=1, ['わらべ-']=2}, ['道']={['ドウ']=1, ['トウ']=3, ['みち-']=2}, ['働']={['ドウ']=1, ['はたら-く']=2}, ['銅']={['ドウ']=1}, ['導']={['ドウ']=1, ['みちび-く']=2}, ['瞳']={['ドウ']=1, ['ひとみ-']=2}, ['峠']={['とうげ-']=2}, ['匿']={['トク']=1}, ['特']={['トク']=1}, ['得']={['トク']=1, ['え-る']=2, ['う-る']=2}, ['督']={['トク']=1}, ['徳']={['トク']=1}, ['篤']={['トク']=1}, ['毒']={['ドク']=1}, ['独']={['ドク']=1, ['ひと-り']=2}, ['読']={['ドク']=1, ['トク']=1, ['トウ']=3, ['よ-む']=2}, ['栃']={['とち-']=4}, ['凸']={['トツ']=1}, ['突']={['トツ']=1, ['つ-く']=2}, ['届']={['とど-ける']=2, ['とど-く']=2}, ['屯']={['トン']=1}, ['豚']={['トン']=1, ['ぶた-']=2}, ['頓']={['トン']=1}, ['貪']={['ドン']=1, ['むさぼ-る']=2}, ['鈍']={['ドン']=1, ['にぶ-い']=2, ['にぶ-る']=2}, ['曇']={['ドン']=1, ['くも-る']=2}, ['丼']={['どんぶり-']=2, ['どん-']=4}, ['那']={['ナ']=1}, ['奈']={['ナ']=1}, ['内']={['ナイ']=1, ['ダイ']=3, ['うち-']=2}, ['梨']={['なし-']=2}, ['謎']={['なぞ-']=2}, ['鍋']={['なべ-']=2}, ['南']={['ナン']=1, ['ナ']=3, ['みなみ-']=2}, ['軟']={['ナン']=1, ['やわ-らか']=2, ['やわ-らかい']=2}, ['難']={['ナン']=1, ['かた-い']=2, ['むずか-しい']=2}, ['二']={['ニ']=1, ['ふた-']=2, ['ふた-つ']=2}, ['尼']={['ニ']=1, ['あま-']=2}, ['弐']={['ニ']=1}, ['匂']={['にお-う']=2}, ['肉']={['ニク']=1}, ['虹']={['にじ-']=2}, ['日']={['ニチ']=1, ['ジツ']=1, ['ひ-']=2, ['か-']=2}, ['入']={['ニュウ']=1, ['い-る']=2, ['い-れる']=2, ['はい-る']=2}, ['乳']={['ニュウ']=1, ['ちち-']=2, ['ち-']=2}, ['尿']={['ニョウ']=1}, ['任']={['ニン']=1, ['まか-せる']=2, ['まか-す']=2}, ['妊']={['ニン']=1}, ['忍']={['ニン']=1, ['しの-ぶ']=2, ['しの-ばせる']=2}, ['認']={['ニン']=1, ['みと-める']=2}, ['寧']={['ネイ']=1}, ['熱']={['ネツ']=1, ['あつ-い']=2}, ['年']={['ネン']=1, ['とし-']=2}, ['念']={['ネン']=1}, ['捻']={['ネン']=1}, ['粘']={['ネン']=1, ['ねば-る']=2}, ['燃']={['ネン']=1, ['も-える']=2, ['も-やす']=2, ['も-す']=2}, ['悩']={['ノウ']=1, ['なや-む']=2, ['なや-ます']=2}, ['納']={['ノウ']=1, ['ナッ']=3, ['ナ']=3, ['ナン']=3, ['トウ']=3, ['おさ-める']=2, ['おさ-まる']=2}, ['能']={['ノウ']=1}, ['脳']={['ノウ']=1}, ['農']={['ノウ']=1}, ['濃']={['ノウ']=1, ['こ-い']=2}, ['把']={['ハ']=1}, ['波']={['ハ']=1, ['なみ-']=2}, ['派']={['ハ']=1}, ['破']={['ハ']=1, ['やぶ-る']=2, ['やぶ-れる']=2}, ['覇']={['ハ']=1}, ['馬']={['バ']=1, ['うま-']=2, ['ま-']=4}, ['婆']={['バ']=1}, ['罵']={['バ']=1, ['ののし-る']=2}, ['拝']={['ハイ']=1, ['おが-む']=2}, ['杯']={['ハイ']=1, ['さかずき-']=2}, ['背']={['ハイ']=1, ['せ-']=2, ['せい-']=2, ['そむ-く']=2, ['そむ-ける']=2}, ['肺']={['ハイ']=1}, ['俳']={['ハイ']=1}, ['配']={['ハイ']=1, ['くば-る']=2}, ['排']={['ハイ']=1}, ['敗']={['ハイ']=1, ['やぶ-れる']=2}, ['廃']={['ハイ']=1, ['すた-れる']=2, ['すた-る']=2}, ['輩']={['ハイ']=1}, ['売']={['バイ']=1, ['う-る']=2, ['う-れる']=2}, ['倍']={['バイ']=1}, ['梅']={['バイ']=1, ['うめ-']=2}, ['培']={['バイ']=1, ['つちか-う']=2}, ['陪']={['バイ']=1}, ['媒']={['バイ']=1}, ['買']={['バイ']=1, ['か-う']=2}, ['賠']={['バイ']=1}, ['白']={['ハク']=1, ['ビャク']=1, ['しろ-']=2, ['しら-']=4, ['しろ-い']=2}, ['伯']={['ハク']=1}, ['拍']={['ハク']=1, ['ヒョウ']=3}, ['泊']={['ハク']=1, ['と-まる']=2, ['と-める']=2}, ['迫']={['ハク']=1, ['せま-る']=2}, ['剝']={['ハク']=1, ['は-がす']=2, ['は-ぐ']=2, ['は-がれる']=2, ['は-げる']=2}, ['舶']={['ハク']=1}, ['博']={['ハク']=1, ['バク']=3}, ['薄']={['ハク']=1, ['うす-い']=2, ['うす-める']=2, ['うす-まる']=2, ['うす-らぐ']=2, ['うす-れる']=2}, ['麦']={['バク']=1, ['むぎ-']=2}, ['漠']={['バク']=1}, ['縛']={['バク']=1, ['しば-る']=2}, ['爆']={['バク']=1}, ['箱']={['はこ-']=2}, ['箸']={['はし-']=2}, ['畑']={['はた-']=2, ['はたけ-']=2}, ['肌']={['はだ-']=2}, ['八']={['ハチ']=1, ['や-']=2, ['や-つ']=2, ['やっ-つ']=2, ['よう-']=4}, ['鉢']={['ハチ']=1, ['ハツ']=3}, ['発']={['ハツ']=1, ['ホツ']=1}, ['髪']={['ハツ']=1, ['かみ-']=2}, ['伐']={['バツ']=1}, ['抜']={['バツ']=1, ['ぬ-く']=2, ['ぬ-ける']=2, ['ぬ-かす']=2, ['ぬ-かる']=2}, ['罰']={['バツ']=1, ['バチ']=1}, ['閥']={['バツ']=1}, ['反']={['ハン']=1, ['ホン']=3, ['タン']=3, ['そ-る']=2, ['そ-らす']=2}, ['半']={['ハン']=1, ['なか-ば']=2}, ['氾']={['ハン']=1}, ['犯']={['ハン']=1, ['おか-す']=2}, ['帆']={['ハン']=1, ['ほ-']=2}, ['汎']={['ハン']=1}, ['伴']={['ハン']=1, ['バン']=1, ['ともな-う']=2}, ['判']={['ハン']=1, ['バン']=1}, ['坂']={['ハン']=1, ['さか-']=2}, ['阪']={['ハン']=1}, ['板']={['ハン']=1, ['バン']=1, ['いた-']=2}, ['版']={['ハン']=1}, ['班']={['ハン']=1}, ['畔']={['ハン']=1}, ['般']={['ハン']=1}, ['販']={['ハン']=1}, ['斑']={['ハン']=1}, ['飯']={['ハン']=1, ['めし-']=2}, ['搬']={['ハン']=1}, ['煩']={['ハン']=1, ['ボン']=3, ['わずら-う']=2, ['わずら-わす']=2}, ['頒']={['ハン']=1}, ['範']={['ハン']=1}, ['繁']={['ハン']=1}, ['藩']={['ハン']=1}, ['晩']={['バン']=1}, ['番']={['バン']=1}, ['蛮']={['バン']=1}, ['盤']={['バン']=1}, ['比']={['ヒ']=1, ['くら-べる']=2}, ['皮']={['ヒ']=1, ['かわ-']=2}, ['妃']={['ヒ']=1}, ['否']={['ヒ']=1, ['いな-']=2}, ['批']={['ヒ']=1}, ['彼']={['ヒ']=1, ['かれ-']=2, ['かの-']=4}, ['披']={['ヒ']=1}, ['肥']={['ヒ']=1, ['こ-える']=2, ['こえ-']=2, ['こ-やす']=2, ['こ-やし']=2}, ['非']={['ヒ']=1}, ['卑']={['ヒ']=1, ['いや-しい']=2, ['いや-しむ']=2, ['いや-しめる']=2}, ['飛']={['ヒ']=1, ['と-ぶ']=2, ['と-ばす']=2}, ['疲']={['ヒ']=1, ['つか-れる']=2}, ['秘']={['ヒ']=1, ['ひ-める']=2}, ['被']={['ヒ']=1, ['こうむ-る']=2}, ['悲']={['ヒ']=1, ['かな-しい']=2, ['かな-しむ']=2}, ['扉']={['ヒ']=1, ['とびら-']=2}, ['費']={['ヒ']=1, ['つい-やす']=2, ['つい-える']=2}, ['碑']={['ヒ']=1}, ['罷']={['ヒ']=1}, ['避']={['ヒ']=1, ['さ-ける']=2}, ['尾']={['ビ']=1, ['お-']=2}, ['眉']={['ビ']=1, ['ミ']=3, ['まゆ-']=2}, ['美']={['ビ']=1, ['うつく-しい']=2}, ['備']={['ビ']=1, ['そな-える']=2, ['そな-わる']=2}, ['微']={['ビ']=1}, ['鼻']={['ビ']=1, ['はな-']=2}, ['膝']={['ひざ-']=2}, ['肘']={['ひじ-']=2}, ['匹']={['ヒツ']=1, ['ひき-']=2}, ['必']={['ヒツ']=1, ['かなら-ず']=2}, ['泌']={['ヒツ']=1, ['ヒ']=1}, ['筆']={['ヒツ']=1, ['ふで-']=2}, ['姫']={['ひめ-']=2}, ['百']={['ヒャク']=1}, ['氷']={['ヒョウ']=1, ['こおり-']=2, ['ひ-']=2}, ['表']={['ヒョウ']=1, ['おもて-']=2, ['あらわ-す']=2, ['あらわ-れる']=2}, ['俵']={['ヒョウ']=1, ['たわら-']=2}, ['票']={['ヒョウ']=1}, ['評']={['ヒョウ']=1}, ['漂']={['ヒョウ']=1, ['ただよ-う']=2}, ['標']={['ヒョウ']=1}, ['苗']={['ビョウ']=1, ['なえ-']=2, ['なわ-']=4}, ['秒']={['ビョウ']=1}, ['病']={['ビョウ']=1, ['ヘイ']=3, ['や-む']=2, ['やまい-']=2}, ['描']={['ビョウ']=1, ['えが-く']=2, ['か-く']=2}, ['猫']={['ビョウ']=1, ['ねこ-']=2}, ['品']={['ヒン']=1, ['しな-']=2}, ['浜']={['ヒン']=1, ['はま-']=2}, ['貧']={['ヒン']=1, ['ビン']=1, ['まず-しい']=2}, ['賓']={['ヒン']=1}, ['頻']={['ヒン']=1}, ['敏']={['ビン']=1}, ['瓶']={['ビン']=1}, ['不']={['フ']=1, ['ブ']=1}, ['夫']={['フ']=1, ['フウ']=3, ['おっと-']=2}, ['父']={['フ']=1, ['ちち-']=2}, ['付']={['フ']=1, ['つ-ける']=2, ['つ-く']=2}, ['布']={['フ']=1, ['ぬの-']=2}, ['扶']={['フ']=1}, ['府']={['フ']=1}, ['怖']={['フ']=1, ['こわ-い']=2}, ['阜']={['フ']=3}, ['附']={['フ']=1}, ['訃']={['フ']=1}, ['負']={['フ']=1, ['ま-ける']=2, ['ま-かす']=2, ['お-う']=2}, ['赴']={['フ']=1, ['おもむ-く']=2}, ['浮']={['フ']=1, ['う-く']=2, ['う-かれる']=2, ['う-かぶ']=2, ['う-かべる']=2}, ['婦']={['フ']=1}, ['符']={['フ']=1}, ['富']={['フ']=1, ['フウ']=3, ['と-む']=2, ['とみ-']=2}, ['普']={['フ']=1}, ['腐']={['フ']=1, ['くさ-る']=2, ['くさ-れる']=2, ['くさ-らす']=2}, ['敷']={['フ']=1, ['し-く']=2}, ['膚']={['フ']=1}, ['賦']={['フ']=1}, ['譜']={['フ']=1}, ['侮']={['ブ']=1, ['あなど-る']=2}, ['武']={['ブ']=1, ['ム']=1}, ['部']={['ブ']=1}, ['舞']={['ブ']=1, ['ま-う']=2, ['まい-']=2}, ['封']={['フウ']=1, ['ホウ']=1}, ['風']={['フウ']=1, ['フ']=3, ['かぜ-']=2, ['かざ-']=4}, ['伏']={['フク']=1, ['ふ-せる']=2, ['ふ-す']=2}, ['服']={['フク']=1}, ['副']={['フク']=1}, ['幅']={['フク']=1, ['はば-']=2}, ['復']={['フク']=1}, ['福']={['フク']=1}, ['腹']={['フク']=1, ['はら-']=2}, ['複']={['フク']=1}, ['覆']={['フク']=1, ['おお-う']=2, ['くつがえ-す']=2, ['くつがえ-る']=2}, ['払']={['フツ']=1, ['はら-う']=2}, ['沸']={['フツ']=1, ['わ-く']=2, ['わ-かす']=2}, ['仏']={['ブツ']=1, ['ほとけ-']=2}, ['物']={['ブツ']=1, ['モツ']=1, ['もの-']=2}, ['粉']={['フン']=1, ['こ-']=2, ['こな-']=2}, ['紛']={['フン']=1, ['まぎ-れる']=2, ['まぎ-らす']=2, ['まぎ-らわす']=2, ['まぎ-らわしい']=2}, ['雰']={['フン']=1}, ['噴']={['フン']=1, ['ふ-く']=2}, ['墳']={['フン']=1}, ['憤']={['フン']=1, ['いきどお-る']=2}, ['奮']={['フン']=1, ['ふる-う']=2}, ['分']={['ブン']=1, ['フン']=1, ['ブ']=1, ['わ-ける']=2, ['わ-かれる']=2, ['わ-かる']=2, ['わ-かつ']=2}, ['文']={['ブン']=1, ['モン']=1, ['ふみ-']=2}, ['聞']={['ブン']=1, ['モン']=1, ['き-く']=2, ['き-こえる']=2}, ['丙']={['ヘイ']=1}, ['平']={['ヘイ']=1, ['ビョウ']=1, ['たい-ら']=2, ['ひら-']=2}, ['兵']={['ヘイ']=1, ['ヒョウ']=1}, ['併']={['ヘイ']=1, ['あわ-せる']=2}, ['並']={['ヘイ']=1, ['なみ-']=2, ['なら-べる']=2, ['なら-ぶ']=2, ['なら-びに']=2}, ['柄']={['ヘイ']=1, ['がら-']=2, ['え-']=2}, ['陛']={['ヘイ']=1}, ['閉']={['ヘイ']=1, ['と-じる']=2, ['と-ざす']=2, ['し-める']=2, ['し-まる']=2}, ['塀']={['ヘイ']=1}, ['幣']={['ヘイ']=1}, ['弊']={['ヘイ']=1}, ['蔽']={['ヘイ']=1}, ['餅']={['ヘイ']=1, ['もち-']=2}, ['米']={['ベイ']=1, ['マイ']=1, ['こめ-']=2}, ['壁']={['ヘキ']=1, ['かべ-']=2}, ['璧']={['ヘキ']=1}, ['癖']={['ヘキ']=1, ['くせ-']=2}, ['別']={['ベツ']=1, ['わか-れる']=2}, ['蔑']={['ベツ']=1, ['さげす-む']=2}, ['片']={['ヘン']=1, ['かた-']=2}, ['辺']={['ヘン']=1, ['あた-り']=2, ['べ-']=2}, ['返']={['ヘン']=1, ['かえ-す']=2, ['かえ-る']=2}, ['変']={['ヘン']=1, ['か-わる']=2, ['か-える']=2}, ['偏']={['ヘン']=1, ['かたよ-る']=2}, ['遍']={['ヘン']=1}, ['編']={['ヘン']=1, ['あ-む']=2}, ['弁']={['ベン']=1}, ['便']={['ベン']=1, ['ビン']=1, ['たよ-り']=2}, ['勉']={['ベン']=1}, ['歩']={['ホ']=1, ['ブ']=1, ['フ']=3, ['ある-く']=2, ['あゆ-む']=2}, ['保']={['ホ']=1, ['たも-つ']=2}, ['哺']={['ホ']=1}, ['捕']={['ホ']=1, ['と-らえる']=2, ['と-らわれる']=2, ['と-る']=2, ['つか-まえる']=2, ['つか-まる']=2}, ['補']={['ホ']=1, ['おぎな-う']=2}, ['舗']={['ホ']=1}, ['母']={['ボ']=1, ['はは-']=2}, ['募']={['ボ']=1, ['つの-る']=2}, ['墓']={['ボ']=1, ['はか-']=2}, ['慕']={['ボ']=1, ['した-う']=2}, ['暮']={['ボ']=1, ['く-れる']=2, ['く-らす']=2}, ['簿']={['ボ']=1}, ['方']={['ホウ']=1, ['かた-']=2}, ['包']={['ホウ']=1, ['つつ-む']=2}, ['芳']={['ホウ']=1, ['かんば-しい']=2}, ['邦']={['ホウ']=1}, ['奉']={['ホウ']=1, ['ブ']=3, ['たてまつ-る']=2}, ['宝']={['ホウ']=1, ['たから-']=2}, ['抱']={['ホウ']=1, ['だ-く']=2, ['いだ-く']=2, ['かか-える']=2}, ['放']={['ホウ']=1, ['はな-す']=2, ['はな-つ']=2, ['はな-れる']=2, ['ほう-る']=2}, ['法']={['ホウ']=1, ['ハッ']=3, ['ホッ']=3}, ['泡']={['ホウ']=1, ['あわ-']=2}, ['胞']={['ホウ']=1}, ['俸']={['ホウ']=1}, ['倣']={['ホウ']=1, ['なら-う']=2}, ['峰']={['ホウ']=1, ['みね-']=2}, ['砲']={['ホウ']=1}, ['崩']={['ホウ']=1, ['くず-れる']=2, ['くず-す']=2}, ['訪']={['ホウ']=1, ['おとず-れる']=2, ['たず-ねる']=2}, ['報']={['ホウ']=1, ['むく-いる']=2}, ['蜂']={['ホウ']=1, ['はち-']=2}, ['豊']={['ホウ']=1, ['ゆた-か']=2}, ['飽']={['ホウ']=1, ['あ-きる']=2, ['あ-かす']=2}, ['褒']={['ホウ']=1, ['ほ-める']=2}, ['縫']={['ホウ']=1, ['ぬ-う']=2}, ['亡']={['ボウ']=1, ['モウ']=3, ['な-い']=2}, ['乏']={['ボウ']=1, ['とぼ-しい']=2}, ['忙']={['ボウ']=1, ['いそが-しい']=2}, ['坊']={['ボウ']=1, ['ボッ']=3}, ['妨']={['ボウ']=1, ['さまた-げる']=2}, ['忘']={['ボウ']=1, ['わす-れる']=2}, ['防']={['ボウ']=1, ['ふせ-ぐ']=2}, ['房']={['ボウ']=1, ['ふさ-']=2}, ['肪']={['ボウ']=1}, ['某']={['ボウ']=1}, ['冒']={['ボウ']=1, ['おか-す']=2}, ['剖']={['ボウ']=1}, ['紡']={['ボウ']=1, ['つむ-ぐ']=2}, ['望']={['ボウ']=1, ['モウ']=1, ['のぞ-む']=2}, ['傍']={['ボウ']=1, ['かたわ-ら']=2}, ['帽']={['ボウ']=1}, ['棒']={['ボウ']=1}, ['貿']={['ボウ']=1}, ['貌']={['ボウ']=1}, ['暴']={['ボウ']=1, ['バク']=3, ['あば-く']=2, ['あば-れる']=2}, ['膨']={['ボウ']=1, ['ふく-らむ']=2, ['ふく-れる']=2}, ['謀']={['ボウ']=1, ['ム']=3, ['はか-る']=2}, ['頰']={['ほお-']=2}, ['北']={['ホク']=1, ['きた-']=2}, ['木']={['ボク']=1, ['モク']=1, ['き-']=2, ['こ-']=4}, ['朴']={['ボク']=1}, ['牧']={['ボク']=1, ['まき-']=2}, ['睦']={['ボク']=1}, ['僕']={['ボク']=1}, ['墨']={['ボク']=1, ['すみ-']=2}, ['撲']={['ボク']=1}, ['没']={['ボツ']=1}, ['勃']={['ボツ']=1}, ['堀']={['ほり-']=2}, ['本']={['ホン']=1, ['もと-']=2}, ['奔']={['ホン']=1}, ['翻']={['ホン']=1, ['ひるがえ-る']=2, ['ひるがえ-す']=2}, ['凡']={['ボン']=1, ['ハン']=3}, ['盆']={['ボン']=1}, ['麻']={['マ']=1, ['あさ-']=2}, ['摩']={['マ']=1}, ['磨']={['マ']=1, ['みが-く']=2}, ['魔']={['マ']=1}, ['毎']={['マイ']=1}, ['妹']={['マイ']=1, ['いもうと-']=2}, ['枚']={['マイ']=1}, ['昧']={['マイ']=1}, ['埋']={['マイ']=1, ['う-める']=2, ['う-まる']=2, ['う-もれる']=2}, ['幕']={['マク']=1, ['バク']=1}, ['膜']={['マク']=1}, ['枕']={['まくら-']=2}, ['又']={['また-']=2}, ['末']={['マツ']=1, ['バツ']=1, ['すえ-']=2}, ['抹']={['マツ']=1}, ['万']={['マン']=1, ['バン']=1}, ['満']={['マン']=1, ['み-ちる']=2, ['み-たす']=2}, ['慢']={['マン']=1}, ['漫']={['マン']=1}, ['未']={['ミ']=1}, ['味']={['ミ']=1, ['あじ-']=2, ['あじ-わう']=2}, ['魅']={['ミ']=1}, ['岬']={['みさき-']=2}, ['密']={['ミツ']=1}, ['蜜']={['ミツ']=1}, ['脈']={['ミャク']=1}, ['妙']={['ミョウ']=1}, ['民']={['ミン']=1, ['たみ-']=2}, ['眠']={['ミン']=1, ['ねむ-る']=2, ['ねむ-い']=2}, ['矛']={['ム']=1, ['ほこ-']=2}, ['務']={['ム']=1, ['つと-める']=2, ['つと-まる']=2}, ['無']={['ム']=1, ['ブ']=1, ['な-い']=2}, ['夢']={['ム']=1, ['ゆめ-']=2}, ['霧']={['ム']=1, ['きり-']=2}, ['娘']={['むすめ-']=2}, ['名']={['メイ']=1, ['ミョウ']=1, ['な-']=2}, ['命']={['メイ']=1, ['ミョウ']=1, ['いのち-']=2}, ['明']={['メイ']=1, ['ミョウ']=1, ['あ-かり']=2, ['あか-るい']=2, ['あか-るむ']=2, ['あか-らむ']=2, ['あき-らか']=2, ['あ-ける']=2, ['あ-く']=2, ['あ-くる']=2, ['あ-かす']=2}, ['迷']={['メイ']=1, ['まよ-う']=2}, ['冥']={['メイ']=1, ['ミョウ']=1}, ['盟']={['メイ']=1}, ['銘']={['メイ']=1}, ['鳴']={['メイ']=1, ['な-く']=2, ['な-る']=2, ['な-らす']=2}, ['滅']={['メツ']=1, ['ほろ-びる']=2, ['ほろ-ぼす']=2}, ['免']={['メン']=1, ['まぬか-れる']=2}, ['面']={['メン']=1, ['おも-']=2, ['おもて-']=2, ['つら-']=2}, ['綿']={['メン']=1, ['わた-']=2}, ['麺']={['メン']=1}, ['茂']={['モ']=1, ['しげ-る']=2}, ['模']={['モ']=1, ['ボ']=1}, ['毛']={['モウ']=1, ['け-']=2}, ['妄']={['モウ']=1, ['ボウ']=1}, ['盲']={['モウ']=1}, ['耗']={['モウ']=1, ['コウ']=3}, ['猛']={['モウ']=1}, ['網']={['モウ']=1, ['あみ-']=2}, ['目']={['モク']=1, ['ボク']=3, ['め-']=2, ['ま-']=4}, ['黙']={['モク']=1, ['だま-る']=2}, ['門']={['モン']=1, ['かど-']=2}, ['紋']={['モン']=1}, ['問']={['モン']=1, ['と-う']=2, ['と-い']=2, ['とん-']=4}, ['冶']={['ヤ']=1}, ['夜']={['ヤ']=1, ['よ-']=2, ['よる-']=2}, ['野']={['ヤ']=1, ['の-']=2}, ['弥']={['や-']=2}, ['厄']={['ヤク']=1}, ['役']={['ヤク']=1, ['エキ']=1}, ['約']={['ヤク']=1}, ['訳']={['ヤク']=1, ['わけ-']=2}, ['薬']={['ヤク']=1, ['くすり-']=2}, ['躍']={['ヤク']=1, ['おど-る']=2}, ['闇']={['やみ-']=2}, ['由']={['ユ']=1, ['ユウ']=1, ['ユイ']=3, ['よし-']=2}, ['油']={['ユ']=1, ['あぶら-']=2}, ['喩']={['ユ']=1}, ['愉']={['ユ']=1}, ['諭']={['ユ']=1, ['さと-す']=2}, ['輸']={['ユ']=1}, ['癒']={['ユ']=1, ['い-える']=2, ['い-やす']=2}, ['唯']={['ユイ']=1, ['イ']=3}, ['友']={['ユウ']=1, ['とも-']=2}, ['有']={['ユウ']=1, ['ウ']=1, ['あ-る']=2}, ['勇']={['ユウ']=1, ['いさ-む']=2}, ['幽']={['ユウ']=1}, ['悠']={['ユウ']=1}, ['郵']={['ユウ']=1}, ['湧']={['ユウ']=1, ['わ-く']=2}, ['猶']={['ユウ']=1}, ['裕']={['ユウ']=1}, ['遊']={['ユウ']=1, ['ユ']=3, ['あそ-ぶ']=2}, ['雄']={['ユウ']=1, ['お-']=2, ['おす-']=2}, ['誘']={['ユウ']=1, ['さそ-う']=2}, ['憂']={['ユウ']=1, ['うれ-える']=2, ['うれ-い']=2, ['う-い']=2}, ['融']={['ユウ']=1}, ['優']={['ユウ']=1, ['やさ-しい']=2, ['すぐ-れる']=2}, ['与']={['ヨ']=1, ['あた-える']=2}, ['予']={['ヨ']=1}, ['余']={['ヨ']=1, ['あま-る']=2, ['あま-す']=2}, ['誉']={['ヨ']=1, ['ほま-れ']=2}, ['預']={['ヨ']=1, ['あず-ける']=2, ['あず-かる']=2}, ['幼']={['ヨウ']=1, ['おさな-い']=2}, ['用']={['ヨウ']=1, ['もち-いる']=2}, ['羊']={['ヨウ']=1, ['ひつじ-']=2}, ['妖']={['ヨウ']=1, ['あや-しい']=2}, ['洋']={['ヨウ']=1}, ['要']={['ヨウ']=1, ['かなめ-']=2, ['い-る']=2}, ['容']={['ヨウ']=1}, ['庸']={['ヨウ']=1}, ['揚']={['ヨウ']=1, ['あ-げる']=2, ['あ-がる']=2}, ['揺']={['ヨウ']=1, ['ゆ-れる']=2, ['ゆ-る']=2, ['ゆ-らぐ']=2, ['ゆ-るぐ']=2, ['ゆ-する']=2, ['ゆ-さぶる']=2, ['ゆ-すぶる']=2}, ['葉']={['ヨウ']=1, ['は-']=2}, ['陽']={['ヨウ']=1}, ['溶']={['ヨウ']=1, ['と-ける']=2, ['と-かす']=2, ['と-く']=2}, ['腰']={['ヨウ']=1, ['こし-']=2}, ['様']={['ヨウ']=1, ['さま-']=2}, ['瘍']={['ヨウ']=1}, ['踊']={['ヨウ']=1, ['おど-る']=2, ['おど-り']=2}, ['窯']={['ヨウ']=1, ['かま-']=2}, ['養']={['ヨウ']=1, ['やしな-う']=2}, ['擁']={['ヨウ']=1}, ['謡']={['ヨウ']=1, ['うたい-']=2, ['うた-う']=2}, ['曜']={['ヨウ']=1}, ['抑']={['ヨク']=1, ['おさ-える']=2}, ['沃']={['ヨク']=1}, ['浴']={['ヨク']=1, ['あ-びる']=2, ['あ-びせる']=2}, ['欲']={['ヨク']=1, ['ほっ-する']=2, ['ほ-しい']=2}, ['翌']={['ヨク']=1}, ['翼']={['ヨク']=1, ['つばさ-']=2}, ['拉']={['ラ']=1}, ['裸']={['ラ']=1, ['はだか-']=2}, ['羅']={['ラ']=1}, ['来']={['ライ']=1, ['く-る']=2, ['きた-る']=2, ['きた-す']=2}, ['雷']={['ライ']=1, ['かみなり-']=2}, ['頼']={['ライ']=1, ['たの-む']=2, ['たの-もしい']=2, ['たよ-る']=2}, ['絡']={['ラク']=1, ['から-む']=2, ['から-まる']=2, ['から-める']=2}, ['落']={['ラク']=1, ['お-ちる']=2, ['お-とす']=2}, ['酪']={['ラク']=1}, ['辣']={['ラツ']=1}, ['乱']={['ラン']=1, ['みだ-れる']=2, ['みだ-す']=2}, ['卵']={['ラン']=1, ['たまご-']=2}, ['覧']={['ラン']=1}, ['濫']={['ラン']=1}, ['藍']={['ラン']=1, ['あい-']=2}, ['欄']={['ラン']=1}, ['吏']={['リ']=1}, ['利']={['リ']=1, ['き-く']=2}, ['里']={['リ']=1, ['さと-']=2}, ['理']={['リ']=1}, ['痢']={['リ']=1}, ['裏']={['リ']=1, ['うら-']=2}, ['履']={['リ']=1, ['は-く']=2}, ['璃']={['リ']=1}, ['離']={['リ']=1, ['はな-れる']=2, ['はな-す']=2}, ['陸']={['リク']=1}, ['立']={['リツ']=1, ['リュウ']=3, ['た-つ']=2, ['た-てる']=2}, ['律']={['リツ']=1, ['リチ']=3}, ['慄']={['リツ']=1}, ['略']={['リャク']=1}, ['柳']={['リュウ']=1, ['やなぎ-']=2}, ['流']={['リュウ']=1, ['ル']=3, ['なが-れる']=2, ['なが-す']=2}, ['留']={['リュウ']=1, ['ル']=3, ['と-める']=2, ['と-まる']=2}, ['竜']={['リュウ']=1, ['たつ-']=2}, ['粒']={['リュウ']=1, ['つぶ-']=2}, ['隆']={['リュウ']=1}, ['硫']={['リュウ']=1}, ['侶']={['リョ']=1}, ['旅']={['リョ']=1, ['たび-']=2}, ['虜']={['リョ']=1}, ['慮']={['リョ']=1}, ['了']={['リョウ']=1}, ['両']={['リョウ']=1}, ['良']={['リョウ']=1, ['よ-い']=2}, ['料']={['リョウ']=1}, ['涼']={['リョウ']=1, ['すず-しい']=2, ['すず-む']=2}, ['猟']={['リョウ']=1}, ['陵']={['リョウ']=1, ['みささぎ-']=2}, ['量']={['リョウ']=1, ['はか-る']=2}, ['僚']={['リョウ']=1}, ['領']={['リョウ']=1}, ['寮']={['リョウ']=1}, ['療']={['リョウ']=1}, ['瞭']={['リョウ']=1}, ['糧']={['リョウ']=1, ['ロウ']=3, ['かて-']=2}, ['力']={['リョク']=1, ['リキ']=1, ['ちから-']=2}, ['緑']={['リョク']=1, ['ロク']=3, ['みどり-']=2}, ['林']={['リン']=1, ['はやし-']=2}, ['厘']={['リン']=1}, ['倫']={['リン']=1}, ['輪']={['リン']=1, ['わ-']=2}, ['隣']={['リン']=1, ['とな-る']=2, ['となり-']=2}, ['臨']={['リン']=1, ['のぞ-む']=2}, ['瑠']={['ル']=1}, ['涙']={['ルイ']=1, ['なみだ-']=2}, ['累']={['ルイ']=1}, ['塁']={['ルイ']=1}, ['類']={['ルイ']=1, ['たぐ-い']=2}, ['令']={['レイ']=1}, ['礼']={['レイ']=1, ['ライ']=1}, ['冷']={['レイ']=1, ['つめ-たい']=2, ['ひ-える']=2, ['ひ-や']=2, ['ひ-やす']=2, ['ひ-やかす']=2, ['さ-める']=2, ['さ-ます']=2}, ['励']={['レイ']=1, ['はげ-む']=2, ['はげ-ます']=2}, ['戻']={['レイ']=1, ['もど-す']=2, ['もど-る']=2}, ['例']={['レイ']=1, ['たと-える']=2}, ['鈴']={['レイ']=1, ['リン']=1, ['すず-']=2}, ['零']={['レイ']=1}, ['霊']={['レイ']=1, ['リョウ']=1, ['たま-']=2}, ['隷']={['レイ']=1}, ['齢']={['レイ']=1}, ['麗']={['レイ']=1, ['うるわ-しい']=2}, ['暦']={['レキ']=1, ['こよみ-']=2}, ['歴']={['レキ']=1}, ['列']={['レツ']=1}, ['劣']={['レツ']=1, ['おと-る']=2}, ['烈']={['レツ']=1}, ['裂']={['レツ']=1, ['さ-く']=2, ['さ-ける']=2}, ['恋']={['レン']=1, ['こ-う']=2, ['こい-']=2, ['こい-しい']=2}, ['連']={['レン']=1, ['つら-なる']=2, ['つら-ねる']=2, ['つ-れる']=2}, ['廉']={['レン']=1}, ['練']={['レン']=1, ['ね-る']=2}, ['錬']={['レン']=1}, ['呂']={['ロ']=1}, ['炉']={['ロ']=1}, ['賂']={['ロ']=1}, ['路']={['ロ']=1, ['じ-']=2}, ['露']={['ロ']=1, ['ロウ']=3, ['つゆ-']=2}, ['老']={['ロウ']=1, ['お-いる']=2, ['ふ-ける']=2}, ['労']={['ロウ']=1}, ['弄']={['ロウ']=1, ['もてあそ-ぶ']=2}, ['郎']={['ロウ']=1}, ['朗']={['ロウ']=1, ['ほが-らか']=2}, ['浪']={['ロウ']=1}, ['廊']={['ロウ']=1}, ['楼']={['ロウ']=1}, ['漏']={['ロウ']=1, ['も-る']=2, ['も-れる']=2, ['も-らす']=2}, ['籠']={['ロウ']=1, ['かご-']=2, ['こ-もる']=2}, ['六']={['ロク']=1, ['む-']=2, ['む-つ']=2, ['むっ-つ']=2, ['むい-']=4}, ['録']={['ロク']=1}, ['麓']={['ロク']=1, ['ふもと-']=2}, ['論']={['ロン']=1}, ['和']={['ワ']=1, ['オ']=3, ['やわ-らぐ']=2, ['やわ-らげる']=2, ['なご-む']=2, ['なご-やか']=2}, ['話']={['ワ']=1, ['はな-す']=2, ['はなし-']=2}, ['賄']={['ワイ']=1, ['まかな-う']=2}, ['脇']={['わき-']=2}, ['惑']={['ワク']=1, ['まど-う']=2}, ['枠']={['わく-']=2}, ['湾']={['ワン']=1}, ['腕']={['ワン']=1, ['うで-']=2}, }; return export 7zaaharkes3m0074bw5o9vre5g420w1 Andoza:ja-readings/style.css 10 160428 628927 2024-11-06T16:34:48Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „.jouyou-reading { background-color: rgb(224, 255, 255); /* fallback */ background-color: rgba(224, 255, 255, 0.5); } /* dark mode colors; styles need to be duplicated exactly between these two media blocks */ @media screen { .jouyou-reading { background-color: rgb(41, 44, 44); background-color: rgba(224, 255, 255, 0.15); } } @media screen and (prefers-color-scheme: dark) { .jouyou-reading { background-color: rgb(41, 44, 44); background-c...“ yozuvi orqali yangi sahifa yaratildi 628927 sanitized-css text/css .jouyou-reading { background-color: rgb(224, 255, 255); /* fallback */ background-color: rgba(224, 255, 255, 0.5); } /* dark mode colors; styles need to be duplicated exactly between these two media blocks */ @media screen { .jouyou-reading { background-color: rgb(41, 44, 44); background-color: rgba(224, 255, 255, 0.15); } } @media screen and (prefers-color-scheme: dark) { .jouyou-reading { background-color: rgb(41, 44, 44); background-color: rgba(224, 255, 255, 0.15); } } mu0b3iim6a1vh482a0ug7n0y6pwuqwf Modul:zh/data/cmn-hom/4 828 160429 628929 2024-11-06T16:41:05Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.list = { ["xī'ān"] = { "西安", "醯胺" }, ["xī'àn"] = { "西岸", "醯胺" }, ["xiàjí"] = { "下極", "下級", "下集" }, ["xiàjià"] = { "下嫁", "下架" }, ["xiàliè"] = { "下列", "下劣" }, ["xiàlìng"] = { "下令", "夏令" }, ["xiàmén"] = { "下門", "廈門" }, ["xiàmiàn"] = { "下面", "下麵" }, ["xiānbèi"] = { "先輩", "仙貝" }, ["xiànchéng"] = { "現成", "線程", "縣...“ yozuvi orqali yangi sahifa yaratildi 628929 Scribunto text/plain local export = {} export.list = { ["xī'ān"] = { "西安", "醯胺" }, ["xī'àn"] = { "西岸", "醯胺" }, ["xiàjí"] = { "下極", "下級", "下集" }, ["xiàjià"] = { "下嫁", "下架" }, ["xiàliè"] = { "下列", "下劣" }, ["xiàlìng"] = { "下令", "夏令" }, ["xiàmén"] = { "下門", "廈門" }, ["xiàmiàn"] = { "下面", "下麵" }, ["xiānbèi"] = { "先輩", "仙貝" }, ["xiànchéng"] = { "現成", "線程", "縣城" }, ["xiàndài"] = { "現代", "線代" }, ["xiánfàn"] = { "嫌犯", "鹹飯" }, ["xiāngbào"] = { "相報", "相抱" }, ["xiāngcài"] = { "湘菜", "香菜" }, ["xiāngchéng"] = { "相承", "香橙" }, ["xiāngchóu"] = { "相酬", "鄉愁" }, ["xiàngdǎo"] = { "向導", "嚮導" }, ["xiángfú"] = { "降伏", "降服" }, ["xiāngjiàn"] = { "相見", "相間" }, ["xiāngjiāo"] = { "相交", "香蕉" }, ["xiàngjiào"] = { "相較", "象教" }, ["xiāngjù"] = { "湘劇", "相聚", "相距", "薌劇" }, ["xiàngliàng"] = { "向量", "相量" }, ["xiàngmào"] = { "像貌", "相貌" }, ["xiàngmù"] = { "嚮慕", "橡木", "項目" }, ["xiàngpí"] = { "橡皮", "象皮" }, ["xiàngpiàn"] = { "像片", "相片" }, ["xiàngpiān"] = { "像片", "相片" }, ["xiāngqīn"] = { "相親", "鄉親" }, ["xiāngrú"] = { "香茹", "香薷" }, ["xiāngshì"] = { "相視", "相識", "鄉試" }, ["xiàngshù"] = { "橡樹", "相術" }, ["xiāngsī"] = { "相思", "鄉思" }, ["xiāngtán"] = { "湘潭", "相談", "鄉談" }, ["xiāngwéi"] = { "相為", "相違" }, ["xiǎngxiàng"] = { "想像", "想象" }, ["xiǎngxiànglì"] = { "想像力", "想象力" }, ["xiāngyīn"] = { "相因", "鄉音" }, ["xiāngyìng"] = { "相應", "相映" }, ["xiāngyǔ"] = { "湘語", "相與" }, ["xiàngzhě"] = { "向者", "相者" }, ["xiāngzhī"] = { "相知", "香脂", "香芝" }, ["xiánhuì"] = { "賢惠", "賢慧" }, ["xiànjì"] = { "獻技", "獻計" }, ["xiànjiè"] = { "縣界", "限界" }, ["xiànjīn"] = { "獻金", "現今", "現金" }, ["xiánjìng"] = { "咸鏡", "嫻靜" }, ["xiānlì"] = { "先例", "暹粒", "鮮麗" }, ["xiānliè"] = { "先烈", "鮮烈" }, ["xiànlìng"] = { "縣令", "限令" }, ["xiānqín"] = { "仙禽", "先秦" }, ["xiānrén"] = { "仙人", "先人" }, ["xiánrén"] = { "賢人", "閒人" }, ["xiànshàng"] = { "獻上", "線上" }, ["xiànshēn"] = { "獻身", "現身", "陷身" }, ["xiānshì"] = { "仙逝", "先世", "先是" }, ["xiánshī"] = { "弦詩", "鹹濕" }, ["xiànshì"] = { "現世", "縣市" }, ["xiànshí"] = { "現實", "現時", "限時", "霰石" }, ["xiánshì"] = { "賢士", "閒事", "閒適" }, ["xiánshú"] = { "嫻熟", "賢淑" }, ["xiánshuǐ"] = { "涎水", "鹹水" }, ["xiànxià"] = { "現下", "線下" }, ["xiànxíng"] = { "現形", "現行", "線形", "限行" }, ["xiǎnyào"] = { "險要", "顯要" }, ["xiányí"] = { "咸宜", "嫌疑" }, ["xiànzài"] = { "現在", "見在" }, ["xiànzhì"] = { "縣志", "限制" }, ["xiāobāng"] = { "肖邦", "蕭邦" }, ["xiǎochéng"] = { "小乘", "小城" }, ["xiǎode"] = { "小的", "曉得" }, ["xiàofú"] = { "孝服", "校服" }, ["xiāohuà"] = { "消化", "硝化" }, ["xiǎojiāhuǒ"] = { "小傢伙", "小家伙" }, ["xiǎojiě"] = { "小姐", "小解" }, ["xiǎojié"] = { "小節", "小結" }, ["xiǎojìng"] = { "小徑", "小淨" }, ["xiàolì"] = { "效力", "校曆" }, ["xiǎoqì"] = { "小憩", "小氣" }, ["xiǎoshān"] = { "小山", "篠山" }, ["xiǎoshēng"] = { "小生", "小聲" }, ["xiǎoshì"] = { "小事", "小視" }, ["xiǎoshí"] = { "小時", "小食" }, ["xiāoshì"] = { "消逝", "消釋" }, ["xiāoshí"] = { "消食", "硝石", "銷蝕" }, ["xiāoshòu"] = { "消受", "消瘦", "銷售" }, ["xiǎoshǔ"] = { "小暑", "小鼠" }, ["xiàosǐ"] = { "效死", "笑死" }, ["xiǎotídàzuò"] = { "小題大作", "小題大做" }, ["xiàoyì"] = { "孝義", "效益", "笑意" }, ["xiǎoyí"] = { "小姨", "小遺" }, ["xiǎoyú"] = { "小於", "小魚" }, ["xiàoyuán"] = { "孝元", "校園" }, ["xiǎoxué"] = { "小學", "小穴" }, ["xiǎozhàng"] = { "小帳", "小賬" }, ["xiǎozhū"] = { "小諸", "小豬" }, ["xiǎozhuàn"] = { "小傳", "小篆" }, ["xiàrén"] = { "下人", "嚇人" }, ["xiàshì"] = { "下世", "下士" }, ["xiàxiàn"] = { "下線", "下限" }, ["xiáyì"] = { "俠義", "狹義" }, ["xiàyǔ"] = { "下雨", "廈語" }, ["xiàzǎi"] = { "下崽", "下載" }, ["xiázhì"] = { "挾制", "轄制", "黠智" }, ["xībó"] = { "稀薄", "錫伯", "錫箔" }, ["xíbó"] = { "錫伯", "錫箔" }, ["xībù"] = { "膝部", "西部" }, ["xīchuān"] = { "熙川", "西川" }, ["xìcí"] = { "係詞", "系詞" }, ["xié'ānsuān"] = { "纈氨酸", "纈胺酸" }, ["xiěběn"] = { "寫本", "血本" }, ["xiédài"] = { "攜帶", "鞋帶", "挾帶" }, ["xiéhé"] = { "協和", "諧和", "鞋盒" }, ["xièlòu"] = { "泄露", "洩漏", "洩露" }, ["xiélù"] = { "斜路", "邪路" }, ["xièlù"] = { "泄露", "洩露" }, ["xièqì"] = { "洩氣", "懈氣" }, ["xiéshì"] = { "斜視", "邪視" }, ["xiétóng"] = { "協同", "攜同" }, ["xiěyì"] = { "寫意", "血液" }, ["xièzhuāng"] = { "卸妝", "卸裝" }, ["xiēzi"] = { "楔子", "蠍子" }, ["xīfú"] = { "西弗", "西服" }, ["xīhǎi"] = { "*醯醢", "西海", "醯醢" }, ["xījìn"] = { "西晉", "西進" }, ["xījīng"] = { "吸睛", "西京", "西經" }, ["xìjūn"] = { "細君", "細菌" }, ["xīlán"] = { "西蘭", "錫蘭" }, ["xīlánhuā"] = { "西藍花", "西蘭花" }, ["xīlì"] = { "吸力", "悉力", "惜力", "淅瀝", "犀利", "西曆" }, ["xílì"] = { "惜力", "習例" }, ["xīluò"] = { "奚落", "稀落" }, ["xìmù"] = { "戲目", "細目" }, ["xīnán"] = { "息男", "西南" }, ["xīncái"] = { "心材", "心裁" }, ["xīncháo"] = { "心潮", "新朝", "新潮" }, ["xīndì"] = { "心地", "新地" }, ["xīnfáng"] = { "心房", "新房" }, ["xìnfēng"] = { "信封", "信風" }, ["xīnfù"] = { "心腹", "新婦" }, ["xīngān"] = { "心甘", "心肝" }, ["xíngbiàn"] = { "形便", "形變" }, ["xíngbù"] = { "刑部", "行部" }, ["xíngchéng"] = { "形成", "行程" }, ["xíngfáng"] = { "刑房", "行房" }, ["xíngjì"] = { "形跡", "行跡" }, ["xíngjī"] = { "形跡", "行跡" }, ["xínglǐ"] = { "行李", "行禮" }, ["xínglù"] = { "型錄", "行路" }, ["xíngqī"] = { "刑期", "行期" }, ["xíngqí"] = { "刑期", "行期", "行棋" }, ["xíngqiè"] = { "行竊", "行篋" }, ["xíngrén"] = { "刑人", "行人" }, ["xíngshì"] = { "刑事", "型式", "形勢", "形式", "行事" }, ["xìngshì"] = { "姓氏", "幸事" }, ["xíngshǐ"] = { "行使", "行駛" }, ["xíngtài"] = { "型態", "形態" }, ["xíngtiān"] = { "刑天", "形天", "形夭" }, ["xīngwèi"] = { "腥味", "興味" }, ["xǐngwù"] = { "省悟", "醒悟" }, ["xíngxiàng"] = { "形像", "形象" }, ["xīngxiàng"] = { "星相", "星象" }, ["xīngxīng"] = { "惺惺", "星星" }, ["xīngyè"] = { "星夜", "興業" }, ["xíngzhèngqūhuà"] = { "行政區劃", "行政區畫" }, ["xìngzhì"] = { "性質", "興致" }, ["xíngzhuàng"] = { "形狀", "行狀" }, ["xìngzhuàng"] = { "性狀", "行狀" }, ["xìngzi"] = { "性子", "杏子" }, ["xīnhuǒ"] = { "心火", "薪火" }, ["xīnjì"] = { "心悸", "心計", "心跡" }, ["xīnjī"] = { "心機", "心肌", "心跡" }, ["xīnjiàn"] = { "新建", "新見" }, ["xīnjiāpō"] = { "新加坡", "新嘉坡" }, ["xīnjīn"] = { "新津", "薪金" }, ["xīnlì"] = { "心力", "新曆" }, ["xīnlǜ"] = { "心律", "心率", "新綠" }, ["xīnmù"] = { "心目", "欣慕", "歆慕" }, ["xīnpiàn"] = { "新片", "芯片" }, ["xīnqí"] = { "新奇", "辛奇" }, ["xīnshēng"] = { "心聲", "新生" }, ["xìnshǐ"] = { "信使", "信史" }, ["xìnshí"] = { "信實", "信石" }, ["xīnshì"] = { "心事", "心室", "新式" }, ["xìnshǒu"] = { "信守", "信手" }, ["xīnshuǐ"] = { "心水", "薪水" }, ["xīnsuān"] = { "心酸", "辛酸" }, ["xīntián"] = { "心田", "新田" }, ["xīnwén"] = { "新聞", "欣聞" }, ["xīnxǐ"] = { "忻喜", "新禧", "欣喜" }, ["xīnxì"] = { "心細", "新潟" }, ["xīnxiàn"] = { "欣羨", "歆羨" }, ["xīnxiǎng"] = { "心想", "薪餉" }, ["xīnxiāng"] = { "新鄉", "馨香" }, ["xīnxīn"] = { "欣欣", "莘莘" }, ["xīnxīng"] = { "新星", "新興" }, ["xīnyí"] = { "心儀", "心疑", "辛夷", "新沂" }, ["xīnyì"] = { "心意", "新意", "新異" }, ["xīnyuán"] = { "新元", "新垣" }, ["xīnzhì"] = { "心志", "心智" }, ["xīnzhōu"] = { "忻州", "新州" }, ["xīnzhuāng"] = { "新庄", "新莊" }, ["xīnzi"] = { "心子", "芯子" }, ["xīnzuò"] = { "新作", "新座" }, ["xióngfēng"] = { "熊蜂", "雄蜂", "雄風" }, ["xiōngqì"] = { "凶器", "胸器" }, ["xiōngzhào"] = { "凶兆", "胸罩" }, ["xīpí"] = { "嬉皮", "西皮" }, ["xīqì"] = { "吸氣", "錫器" }, ["xīqí"] = { "希奇", "稀奇" }, ["xíqì"] = { "習氣", "錫器" }, ["xīqín"] = { "奚琴", "西秦" }, ["xīrén"] = { "昔人", "西人", "錫人" }, ["xírén"] = { "昔人", "錫人" }, ["xīrì"] = { "夕日", "昔日" }, ["xīshēng"] = { "吸聲", "犧牲" }, ["xīshí"] = { "吸食", "昔時", "錫石" }, ["xíshí"] = { "昔時", "錫石" }, ["xīshì"] = { "稀世", "稀釋", "西式" }, ["xìshù"] = { "係數", "系數" }, ["xītǎ'ěrqín"] = { "西塔爾琴", "錫塔爾琴" }, ["xītóu"] = { "膝頭", "西頭" }, ["xiùjué"] = { "嗅覺", "臭覺" }, ["xiūkè"] = { "休克", "修課" }, ["xiūqī"] = { "休妻", "休戚" }, ["xiūqì"] = { "休憩", "修葺" }, ["xiūshì"] = { "修士", "修飾" }, ["xiūyǎng"] = { "休養", "修養" }, ["xiūyè"] = { "休業", "修業" }, ["xiūzhěng"] = { "休整", "修整" }, ["xiūzhú"] = { "修竹", "修築" }, ["xīxī"] = { "兮兮", "嘻嘻", "夕夕", "昔昔", "栖栖", "西溪", "西西", "恓恓", "淅淅" }, ["xīxià"] = { "膝下", "西夏" }, ["xìxīn"] = { "細心", "細辛" }, ["xìyáng"] = { "夕陽", "細陽" }, ["xīyáng"] = { "夕陽", "西洋" }, ["xīyǒu"] = { "希有", "稀有" }, ["xīyǔ"] = { "西予", "西語" }, ["xǐyuè"] = { "喜悅", "喜躍" }, ["xīyuè"] = { "西嶽", "西樂" }, ["xīzhōu"] = { "稀粥", "西周", "西州" }, ["xuānbù"] = { "宣佈", "宣布" }, ["xuánguān"] = { "懸棺", "玄關" }, ["xuānshì"] = { "宣示", "宣誓" }, ["xuányōngchuí"] = { "懸壅垂", "懸雍垂" }, ["xuānzhǐ"] = { "宣旨", "宣紙" }, ["xuěbào"] = { "雪暴", "雪豹" }, ["xuébù"] = { "學步", "學部" }, ["xuěchéng"] = { "血橙", "雪城" }, ["xuéjiū"] = { "學究", "鷽鳩" }, ["xuélì"] = { "學力", "學歷" }, ["xuělǐhóng"] = { "雪裡紅", "雪裡蕻" }, ["xuěqiú"] = { "血球", "雪球" }, ["xuéshì"] = { "學士", "學識" }, ["xuéshí"] = { "學時", "學識" }, ["xuéwèi"] = { "學位", "穴位" }, ["xuéxiào"] = { "學效", "學校" }, ["xuèyè"] = { "血業", "血液", "血葉" }, ["xuěyè"] = { "血業", "血液", "血葉", "雪夜" }, ["xuěyú"] = { "雪魚", "鱈魚" }, ["xuěyuán"] = { "血緣", "雪原" }, ["xūjīng"] = { "虛驚", "鬚鯨" }, ["xūlǐ"] = { "墟里", "虛禮" }, ["xùmù"] = { "序幕", "序目", "畜牧" }, ["xùnhuà"] = { "訓話", "馴化" }, ["xúnluó"] = { "巡邏", "巡邏車" }, ["xùnqíng"] = { "殉情", "汛情" }, ["xúnwèn"] = { "尋問", "詢問" }, ["xùnxí"] = { "訊息", "訓習" }, ["xūshì"] = { "墟市", "虛室" }, ["xūshí"] = { "戌時", "虛實" }, ["xùshù"] = { "序數", "敘述" }, ["xùyán"] = { "序言", "緒言" }, ["xùyǎng"] = { "畜養", "蓄養" }, ["xūyào"] = { "需要", "須要" }, ["yá'àn"] = { "崖岸", "涯岸" }, ["yābà"] = { "壓霸", "鴨霸" }, ["yábān"] = { "牙斑", "牙班" }, ["yáguān"] = { "牙冠", "牙關" }, ["yājià"] = { "壓價", "鴨架" }, ["yàmián"] = { "亞眠", "軋棉" }, ["yǎnbì"] = { "掩蔽", "掩閉" }, ["yǎnbiàn"] = { "演變", "衍變" }, ["yáncháng"] = { "延長", "鹽場" }, ["yánchéng"] = { "嚴懲", "鹽城" }, ["yánchí"] = { "延遲", "鹽池" }, ["yánchǔ"] = { "嚴處", "研杵" }, ["yándú"] = { "研讀", "鹽瀆" }, ["yángbù"] = { "洋布", "陽部" }, ["yángchéng"] = { "羊城", "陽城" }, ["yángé"] = { "嚴格", "沿革" }, ["yángguān"] = { "羊倌", "陽關" }, ["yāngjí"] = { "央及", "殃及" }, ["yángmíng"] = { "揚名", "陽明" }, ["yángqì"] = { "揚棄", "洋氣" }, ["yángqín"] = { "揚琴", "洋琴" }, ["yángtáo"] = { "楊桃", "洋桃", "羊桃", "陽桃" }, ["yángyán"] = { "揚言", "陽炎", "佯言" }, ["yàngyàng"] = { "怏怏", "樣樣" }, ["yángzhuāng"] = { "佯裝", "洋裝" }, ["yánhú"] = { "沿湖", "鹽湖" }, ["yǎnhuà"] = { "演化", "衍化" }, ["yánjiāng"] = { "岩漿", "沿江" }, ["yánjǐn"] = { "嚴緊", "嚴謹" }, ["yánmíng"] = { "嚴明", "言明" }, ["yànqì"] = { "厭棄", "嚥氣" }, ["yánshāng"] = { "研商", "鹽商" }, ["yǎnshēng"] = { "眼生", "衍生" }, ["yánshí"] = { "岩石", "巖石", "延時" }, ["yǎnshì"] = { "掩飾", "演示" }, ["yànshī"] = { "艷詩", "豔詩", "驗屍" }, ["yāntóu"] = { "咽頭", "煙頭" }, ["yánxí"] = { "沿襲", "研習", "筵席" }, ["yánxíng"] = { "嚴刑", "言行" }, ["yánxìng"] = { "延性", "言行" }, ["yányì"] = { "岩邑", "嵒邑" }, ["yányī"] = { "延醫", "研一" }, ["yǎnyì"] = { "演繹", "演義", "演藝" }, ["yànyuè"] = { "宴樂", "燕樂" }, ["yánzhèng"] = { "嚴正", "炎症", "癌症" }, ["yānzhī"] = { "焉知", "胭脂", "閼氏" }, ["yàodiǎn"] = { "藥典", "要點" }, ["yàofàn"] = { "要犯", "要飯" }, ["yāogǔ"] = { "腰骨", "腰鼓" }, ["yāomó"] = { "妖魔", "幺麼" }, ["yàoshi"] = { "要是", "鑰匙" }, ["yàoshì"] = { "要是", "要事", "藥室" }, ["yāoxié"] = { "妖邪", "要挾" }, ["yáoyì"] = { "徭役", "搖曳" }, ["yāpiàn"] = { "雅片", "鴉片" }, ["yātou"] = { "丫頭", "押頭" }, ["yàyì"] = { "亞裔", "訝異" }, ["yǎyì"] = { "亞裔", "雅意" }, ["yāyùn"] = { "壓韻", "押運", "押韻" }, ["yāzhà"] = { "啞吒", "壓榨" }, ["yāzhì"] = { "壓制", "壓製" }, ["yǎzhì"] = { "雅緻", "雅致" }, ["yāzi"] = { "丫子", "鴨子" }, ["yēchéng"] = { "耶城", "椰城" }, ["yèguǒ"] = { "業果", "液果" }, ["yèjīng"] = { "業經", "液晶" }, ["yèwù"] = { "夜霧", "業務" }, ["yèxiāo"] = { "夜宵", "夜梟" }, ["yìbái'ānsuān"] = { "異白氨酸", "異白胺酸" }, ["yībān"] = { "一斑", "一般" }, ["yìbāo"] = { "刈包", "液胞" }, ["yíbiǎo"] = { "儀表", "儀錶", "姨表", "遺表" }, ["yìbìng"] = { "疫病", "癔病" }, ["yībù"] = { "一步", "一部" }, ["yìcái"] = { "異才", "逸才" }, ["yìcè"] = { "翼側", "臆測" }, ["yīchéng"] = { "一成", "一程" }, ["yīdài"] = { "衣帶", "衣袋" }, ["yídài"] = { "一代", "一帶" }, ["yìdàlì'miàntiáo"] = { "意大利麵條", "義大利麵條" }, ["yìdàlì"] = { "意大利", "義大利" }, ["yìdàlìfěn"] = { "意大利粉", "義大利粉" }, ["yìdàlìmiàn"] = { "意大利麵", "義大利麵" }, ["yìdàlìmiàntiáo"] = { "意大利麵條", "義大利麵條" }, ["yìdàlìshìchángmiàntiáo"] = { "意大利式長麵條", "義大利式長麵條" }, ["yìdàn"] = { "液氮", "藝旦" }, ["yìdì"] = { "異地", "義帝", "義弟" }, ["yífàn"] = { "疑犯", "儀範", "遺範" }, ["yìfěn"] = { "意粉", "義粉" }, ["yífù"] = { "姨父", "遺腹" }, ["yīgǔ"] = { "一股", "一鼓" }, ["yígǔ"] = { "疑古", "遺骨" }, ["yǐgù"] = { "已故", "以故" }, ["yīguān"] = { "一關", "衣冠", "醫官" }, ["yìhuà"] = { "液化", "異化", "逸話" }, ["yìhuì"] = { "意會", "議會" }, ["yìhuò"] = { "抑或", "異或" }, ["yíjì"] = { "疑忌", "遺記", "遺跡" }, ["yìjì"] = { "藝伎", "藝妓" }, ["yījiā"] = { "衣夾", "醫家" }, ["yìjiàn"] = { "意見", "異見" }, ["yījīng"] = { "一經", "一驚" }, ["yǐjīng"] = { "乙腈", "已經" }, ["yìjīng"] = { "易經", "譯經" }, ["yījiù"] = { "依舊", "一……就……" }, ["yíjū"] = { "宜居", "移居" }, ["yìláng"] = { "藝廊", "議郎" }, ["yìlì"] = { "屹立", "毅力", "疫癘" }, ["yìliàng'ānsuān"] = { "異亮氨酸", "異亮胺酸" }, ["yìmiàn"] = { "意麵", "義麵" }, ["yímín"] = { "移民", "遺民" }, ["yìmíng"] = { "佚名", "異名", "藝名", "譯名" }, ["yìmǔ"] = { "異母", "益母", "義母" }, ["yīnbù"] = { "音步", "陰部" }, ["yīndú"] = { "陰毒", "音讀" }, ["yīnfù"] = { "殷富", "陰阜" }, ["yīngbàng"] = { "英磅", "英鎊" }, ["yīngdàn"] = { "英擔", "英石" }, ["yīngdé"] = { "應得", "英德" }, ["yíngguāng"] = { "熒光", "萤光", "螢光" }, ["yínghuǒ"] = { "營火", "螢火" }, ["yìngjǐng"] = { "應景", "硬頸" }, ["yínglì"] = { "營利", "盈利", "贏利" }, ["yīngmíng"] = { "英名", "英明" }, ["yìngmù"] = { "應募", "硬木" }, ["yíngmù"] = { "熒幕", "螢幕" }, ["yīngōng"] = { "陰公", "陰功" }, ["yíngqǔ"] = { "贏取", "迎娶" }, ["yìngshì"] = { "應試", "硬是" }, ["yīngwǔ"] = { "英武", "鸚鵡" }, ["yǐngxiàng"] = { "影像", "影象" }, ["yíngyǎng"] = { "營養", "迎養" }, ["yíngyè"] = { "營業", "迎謁" }, ["yǐngyīn"] = { "影音", "穎陰" }, ["yíngyíng"] = { "熒熒", "盈盈" }, ["yìngzhào"] = { "應召", "應詔", "映照", "硬照" }, ["yǐnhuì"] = { "隱晦", "隱諱" }, ["yǐnjiàn"] = { "引薦", "引見" }, ["yǐnmì"] = { "隱密", "隱秘" }, ["yìnní"] = { "印尼", "印泥" }, ["yīnqín"] = { "慇勤", "殷勤" }, ["yǐnqíng"] = { "引擎", "隱情" }, ["yǐnshēn"] = { "引申", "隱身" }, ["yīnshī"] = { "陰濕", "陰虱", "陰蝨" }, ["yǐnshuǐ"] = { "引水", "飲水" }, ["yīnsù"] = { "因素", "音素", "音速" }, ["yǐntuì"] = { "引退", "隐退", "隱退" }, ["yīnwèi"] = { "因為", "音位" }, ["yīnxiào"] = { "陰笑", "音效" }, ["yīnxùn"] = { "音訊", "音訓" }, ["yīnyì"] = { "音義", "音譯" }, ["yǐnyòng"] = { "引用", "飲用" }, ["yīnyōu"] = { "陰幽", "殷憂" }, ["yǐnyǔ"] = { "引語", "隱語" }, ["yínyǔ"] = { "淫語", "淫雨" }, ["yīnyù"] = { "陰鬱", "音域" }, ["yīnyuán"] = { "因緣", "姻緣" }, ["yínyuán"] = { "銀元", "銀圓" }, ["yīnzhí"] = { "音值", "音質" }, ["yīqí"] = { "一期", "壹岐" }, ["yíqì"] = { "儀器", "彝器", "彞器", "遺棄" }, ["yíqíng"] = { "移情", "怡情", "夷情", "疑情" }, ["yìqì"] = { "意氣", "疫氣", "義氣" }, ["yìrán"] = { "亦然", "易燃", "毅然" }, ["yírén"] = { "夷人", "宜人", "怡人" }, ["yìrén"] = { "義人", "藝人", "邑人" }, ["yìrì"] = { "異日", "翌日" }, ["yíróng"] = { "儀容", "遺容" }, ["yīshēng"] = { "一聲", "醫生" }, ["yīshì"] = { "一世", "伊勢", "醫士" }, ["yǐshì"] = { "以是", "倚勢", "倚恃" }, ["yìshǐ"] = { "役使", "逸史", "驛使" }, ["yìshì"] = { "意識", "抑是", "易事", "異事", "義士", "藝事", "藝士", "譯釋", "議事", "軼事", "逸事" }, ["yíshǐ"] = { "遺史", "遺矢" }, ["yǐsuān"] = { "乙酸", "蟻酸" }, ["yǐtàiwǎng"] = { "乙太網", "以太網" }, ["yìtǐ"] = { "液體", "異體" }, ["yǐwǎng"] = { "以往", "已往" }, ["yìwèi"] = { "意味", "異味", "義位" }, ["yìwén"] = { "譯文", "逸聞" }, ["yīwù"] = { "衣物", "醫務" }, ["yìwù"] = { "異物", "義務" }, ["yíwù"] = { "一物", "貽誤", "遺物" }, ["yìxí"] = { "一席", "議席" }, ["yǐxī"] = { "乙烯", "以西" }, ["yíxiàn"] = { "彝憲", "胰腺" }, ["yìxiàng"] = { "意向", "意象", "液相", "異象", "義項" }, ["yìxiǎng"] = { "意想", "臆想" }, ["yíxiànyán"] = { "胰腺炎", "胰腺癌" }, ["yīxiē"] = { "一些", "一歇" }, ["yīxīn"] = { "一心", "一新" }, ["yìxìng"] = { "意興", "異姓", "異性", "義行" }, ["yìyáng"] = { "抑揚", "益陽" }, ["yīyì"] = { "一億", "一意", "一義" }, ["yìyì"] = { "仡仡", "奕奕", "悒悒", "意義", "意譯", "熠熠", "異義", "異議", "翼翼", "譯意" }, ["yìyù"] = { "悒鬱", "意欲", "抑鬱", "異域" }, ["yīyuán"] = { "一元", "一員" }, ["yìyuàn"] = { "意願", "藝苑", "議院" }, ["yìyuán"] = { "譯員", "議員" }, ["yìzhàn"] = { "義戰", "驛站" }, ["yízhàng"] = { "儀仗", "姨丈" }, ["yǐzhì"] = { "以至", "以致" }, ["yìzhì"] = { "意志", "抑制", "易幟", "異志", "異質", "益智", "譯製" }, ["yìzhǐ"] = { "意旨", "懿旨", "抑止" }, ["yízhí"] = { "移植", "移殖" }, ["yīzhōu"] = { "伊周", "伊州" }, ["yìzhù"] = { "挹注", "譯著", "譯註" }, ["yìzhuāng"] = { "義莊", "異裝", "易裝" }, ["yízú"] = { "彝族", "遺族" }, ["yōngbīng"] = { "傭兵", "擁兵" }, ["yònggōng"] = { "用功", "用工" }, ["yòngjìn"] = { "用勁", "用盡" }, ["yǒnglì"] = { "勇力", "擁立" }, ["yònglì"] = { "用例", "用力" }, ["yōngrén"] = { "傭人", "庸人" }, ["yòngrén"] = { "傭人", "用人" }, ["yǒngshì"] = { "勇士", "永世", "永逝" }, ["yòngzuò"] = { "用作", "用做" }, ["yóubiāo"] = { "游標", "遊標" }, ["yóubù"] = { "油布", "由布" }, ["yóuchuán"] = { "油船", "游船", "遊船", "郵船" }, ["yóufèi"] = { "油費", "郵費" }, ["yóuguǎn"] = { "油管", "郵館" }, ["yōuhuì"] = { "優惠", "幽會" }, ["yǒujī"] = { "有奇", "有機" }, ["yóujī"] = { "油跡", "遊擊" }, ["yóujì"] = { "油跡", "遊記", "郵寄" }, ["yóulè"] = { "游樂", "遊樂" }, ["yǒulì"] = { "有利", "有力" }, ["yǒulǐ"] = { "有理", "有禮" }, ["yǒulíng"] = { "有零", "有靈" }, ["yóulún"] = { "油輪", "遊輪", "郵輪" }, ["yóumàicài"] = { "油麥菜", "莜麥菜" }, ["yóupǐn"] = { "油品", "郵品" }, ["yóuqì"] = { "油氣", "遊憩" }, ["yǒuqíng"] = { "友情", "有情" }, ["yóurán"] = { "油然", "猶然" }, ["yǒurén"] = { "友人", "有人" }, ["yǒushén"] = { "有甚", "有神" }, ["yǒushēng"] = { "有生", "有聲" }, ["yǒushì"] = { "有事", "有識" }, ["yǒushí"] = { "有時", "有識", "酉時" }, ["yòushǒu"] = { "右手", "右首" }, ["yóushuǐ"] = { "油水", "游水" }, ["yōusī"] = { "幽思", "憂思" }, ["yǒusī"] = { "有司", "有私" }, ["yǒuxiàn"] = { "有線", "有限" }, ["yǒuxíng"] = { "有型", "有形" }, ["yǒuxìng"] = { "有幸", "有性" }, ["yóuxìng"] = { "油性", "遊興" }, ["yōuyǎ"] = { "優雅", "幽雅" }, ["yǒuyì"] = { "友誼", "有意", "有益" }, ["yóuyì"] = { "游弋", "遊藝" }, ["yōuyōu"] = { "呦呦", "悠悠" }, ["yōuyù"] = { "優裕", "優遇", "憂鬱" }, ["yòuyú"] = { "囿於", "幼魚" }, ["yóuyú"] = { "游魚", "由於", "魷魚" }, ["yòuzhì"] = { "幼稚", "誘致" }, ["yóuzì"] = { "油漬", "猶自" }, ["yuánběn"] = { "元本", "原本", "源本" }, ["yuáncháng"] = { "元常", "圓場" }, ["yuánfèn"] = { "猿糞", "緣份", "緣分" }, ["yuángù"] = { "原故", "緣故" }, ["yuánhào"] = { "元號", "圓號" }, ["yuánjiàn"] = { "元件", "原件", "援建" }, ["yuánjiāng"] = { "元江", "沅江" }, ["yuánqū"] = { "原曲", "園區" }, ["yuánshēngdài"] = { "原生代", "原聲帶" }, ["yuánshū"] = { "原書", "爰書" }, ["yuánsù"] = { "元素", "原宿" }, ["yuántián"] = { "原田", "園田" }, ["yuánwài"] = { "員外", "援外" }, ["yuànwàng"] = { "願望", "怨望" }, ["yuánxíng"] = { "原型", "原形", "圓形" }, ["yuányì"] = { "原意", "園藝" }, ["yuànyì"] = { "怨艾", "願意" }, ["yuányīn"] = { "元音", "原因" }, ["yuányóu"] = { "原油", "緣由" }, ["yuányuán"] = { "圓圓", "源源" }, ["yuányuè"] = { "元月", "圓月" }, ["yuánzhù"] = { "原著", "圓柱", "援助" }, ["yùbó"] = { "玉帛", "鬱勃" }, ["yùchí"] = { "尉遲", "浴池" }, ["yùdài"] = { "欲待", "玉帶" }, ["yùdào"] = { "御道", "遇到" }, ["yùdí"] = { "禦敵", "遇敵" }, ["yùdìng"] = { "預定", "預訂" }, ["yuèdōng"] = { "粵東", "越冬" }, ["yuèjīng"] = { "月經", "樂經" }, ["yuèjù"] = { "樂句", "粵劇", "越劇" }, ["yuèlì"] = { "月例", "月利", "月曆", "閱歷" }, ["yuēmo"] = { "約摸", "約莫" }, ["yuēpào"] = { "約炮", "約砲", "约炮" }, ["yuèshí"] = { "月蝕", "月食" }, ["yuèshì"] = { "月事" , "月貰", "越是" , "閱世" }, ["yuēshù"] = { "約數", "約束" }, ["yuèxī"] = { "月息", "粵西" }, ["yuèzhàng"] = { "岳丈", "月賬" }, ["yuèzhī"] = { "月支", "月氏" }, ["yuèzhōng"] = { "月中", "月終", "越中" }, ["yùfáng"] = { "御坊", "預防" }, ["yúfū"] = { "漁夫", "魚夫" }, ["yùfūzuò"] = { "御夫座", "玉夫座" }, ["yúhuī"] = { "餘暉", "餘輝" }, ["yùjī"] = { "玉肌", "鬱積" }, ["yújiā"] = { "漁家", "瑜伽" }, ["yùjiàn"] = { "遇見", "預見" }, ["yùjiāzhīzuìhéhuànwúcí"] = { "欲加之罪,何患無詞", "欲加之罪,何患無辭" }, ["yùjīn"] = { "浴巾", "鬱金" }, ["yùjǐng"] = { "獄警", "玉井", "預警" }, ["yǔjù"] = { "語句", "雨具" }, ["yùkē"] = { "預科", "鷸科" }, ["yúkuài"] = { "愉快", "魚塊", "魚膾" }, ["yùlǎn"] = { "御覽", "預覽" }, ["yúlì"] = { "漁利", "餘利", "餘力" }, ["yúlín"] = { "榆林", "魚鱗" }, ["yùlín"] = { "玉林", "鬱林" }, ["yǔlù"] = { "語錄", "雨露" }, ["yúmín"] = { "愚民", "漁民" }, ["yùmíng"] = { "域名", "玉名" }, ["yùmóu"] = { "與謀", "預謀" }, ["yùndòng"] = { "暈動", "運動" }, ["yúndòu"] = { "芸豆", "雲豆" }, ["yùnfù"] = { "孕婦", "韻腹" }, ["yúnshān"] = { "雲山", "雲杉" }, ["yùnshū"] = { "運輸", "韻書" }, ["yùnǚ"] = { "慾女", "玉女" }, ["yúpiāo"] = { "漁漂", "魚漂" }, ["yǔqí"] = { "與其", "雨期" }, ["yúqí"] = { "逾期", "魚鰭" }, ["yúqián"] = { "於潛", "榆錢" }, ["yùqiúbùmǎn"] = { "慾求不滿", "欲求不滿" }, ["yùrè"] = { "預熱", "鬱熱" }, ["yúrén"] = { "愚人", "漁人", "餘人" }, ["yúshēng"] = { "餘生", "魚生" }, ["yùshǐ"] = { "御史", "浴室", "獄室" }, ["yùshì"] = { "浴室", "獄室", "遇事", "預示", "預試" }, ["yúshù"] = { "榆樹", "餘數" }, ["yùsuǒ"] = { "寓所", "御所" }, ["yùtáng"] = { "浴堂", "玉堂" }, ["yúwán"] = { "愚頑", "魚丸" }, ["yúwǎng"] = { "漁網", "魚網" }, ["yǔwén"] = { "宇文", "語文" }, ["yùxí"] = { "遇襲", "預習" }, ["yúxián"] = { "餘弦", "餘閒" }, ["yùxiǎng"] = { "豫想", "預想" }, ["yùxiě"] = { "浴血", "鬱血" }, ["yūxiě"] = { "淤血", "瘀血" }, ["yùxuè"] = { "浴血", "鬱血" }, ["yùxuě"] = { "浴血", "鬱血" }, ["yūxuè"] = { "淤血", "瘀血" }, ["yūxuě"] = { "淤血", "瘀血" }, ["yùyán"] = { "寓言", "預言", "浴鹽" }, ["yúyáng"] = { "揄揚", "漁陽" }, ["yùyì"] = { "喻義", "寓意", "愈益", "浴液", "煜熠", "鬱抑" }, ["yùyī"] = { "御醫", "浴衣" }, ["yǔyì"] = { "羽翼", "語意", "語義", "雨意" }, ["yǔyī"] = { "羽衣", "雨衣" }, ["yúyóu"] = { "娛游", "魚油" }, ["yùyù"] = { "郁郁", "鬱鬱" }, ["yúyuè"] = { "愉悅", "逾越" }, ["yùzhī"] = { "預支", "預知" }, ["yùzhǔn"] = { "御準", "禦準" }, ["yùzú"] = { "獄卒", "鬱卒" }, ["yùzuò"] = { "御座", "玉座" }, ["zàijiàn"] = { "再建", "再見", "在建" }, ["zàirèn"] = { "再任", "在任" }, ["zàishēng"] = { "再生", "在生" }, ["zàixiàn"] = { "再現", "在線" }, ["zàiyì"] = { "再議", "在意" }, ["zànzhù"] = { "暫住", "贊助" }, ["zàogān"] = { "皂甘", "皂苷" }, ["zàohuà"] = { "皂化", "造化" }, ["zàojù"] = { "灶具", "造句" }, ["zǎoshì"] = { "早市", "早逝" }, ["zàoxíng"] = { "造型", "造形" }, ["zàoxuē"] = { "皁靴", "皂靴" }, ["záwù"] = { "雜務", "雜物" }, ["zázhì"] = { "雜誌", "雜質" }, ["zébèi"] = { "澤被", "責備" }, ["zēngchǎn"] = { "增產", "增産" }, ["zēngzhí"] = { "增值", "增殖" }, ["zháidì"] = { "宅地", "宅第" }, ["zhàndì"] = { "佔地", "戰地" }, ["zhàndǒu"] = { "戰抖", "顫抖" }, ["zhàngmù"] = { "帳幕", "賬目" }, ["zhàngpéng"] = { "帳棚", "帳篷" }, ["zhàngqì"] = { "瘴氣", "脹氣" }, ["zhǎngshì"] = { "漲勢", "長勢" }, ["zhǎngzǐ"] = { "長姊", "長子" }, ["zhànhuǒ"] = { "戰火", "蘸火" }, ["zhànjī"] = { "戰機", "戰績" }, ["zhànlì"] = { "戰力", "戰慄", "站立" }, ["zhǎnlù"] = { "展露", "嶄露" }, ["zhǎnshì"] = { "展室", "展示" }, ["zhànshì"] = { "戰事", "戰士" }, ["zhànshí"] = { "戰時", "暫時" }, ["zhānwàng"] = { "瞻望", "譫妄" }, ["zhànxiàn"] = { "佔線", "戰線" }, ["zhǎnxīn"] = { "嶄新", "斬新" }, ["zhànyǒu"] = { "佔有", "戰友" }, ["zhànzhù"] = { "佔住", "暫住", "站住" }, ["zhāogōng"] = { "招供", "招工" }, ["zhāojí"] = { "招集", "著急/着急" }, ["zhāolái"] = { "招來", "朝來" }, ["zhǎoshì"] = { "找事", "爪士" }, ["zhāoshōu"] = { "招手", "招收" }, ["zhàoshū"] = { "召書", "詔書" }, ["zhāoshù"] = { "招數", "著數/着数" }, ["zhāozhǎn"] = { "招展", "招颭" }, ["zhàqǔ"] = { "榨取", "詐取" }, ["zhéfú"] = { "懾服", "折服" }, ["zhēn'ài"] = { "珍愛", "真愛" }, ["zhēnchá"] = { "偵察", "偵查", "斟茶" }, ["zhèndàn"] = { "震旦", "震蛋", "振旦" }, ["zhèndàng"] = { "振盪", "震盪" }, ["zhèndòng"] = { "振動", "震動" }, ["zhèngdà"] = { "正大", "鄭大" }, ["zhēngfā"] = { "征伐", "徵發", "蒸發" }, ["zhèngfǎ"] = { "政法", "正法" }, ["zhènggē"] = { "正割", "正歌" }, ["zhèngjī"] = { "政績", "正畸" }, ["zhèngjiàn"] = { "政見", "證件" }, ["zhèngjiào"] = { "政教", "正教" }, ["zhèngjīng"] = { "政經", "正經" }, ["zhèngjuàn"] = { "證券", "證卷" }, ["zhèngmíng"] = { "正名", "證明" }, ["zhèngmìng"] = { "正命", "掙命" }, ["zhēngqì"] = { "爭氣", "蒸氣", "蒸汽" }, ["zhèngqì"] = { "正氣", "證訖" }, ["zhèngrén"] = { "正人", "證人" }, ["zhèngshì"] = { "政事", "正事", "正室", "正式", "正是", "正視" }, ["zhèngshǐ"] = { "正史", "正室", "正矢" }, ["zhèngtǐ"] = { "政體", "正體" }, ["zhèngwèi"] = { "正味", "正位", "證偽" }, ["zhèngwù"] = { "政務", "正誤", "證物" }, ["zhèngyán"] = { "證言", "諍言" }, ["zhèngyào"] = { "政要", "正要" }, ["zhēngzhào"] = { "徵兆", "徵召" }, ["zhēngzhēng"] = { "丁丁", "錚錚" }, ["zhèngzhì"] = { "政治", "正治" }, ["zhèngzhí"] = { "正值", "正直", "正職" }, ["zhèngzì"] = { "正字", "正自" }, ["zhēnjī"] = { "偵緝", "真跡" }, ["zhēnjì"] = { "真跡", "針劑" }, ["zhènjiǎo"] = { "陣腳", "陣角" }, ["zhēnjié"] = { "貞潔", "貞節" }, ["zhènjìng"] = { "鎮静", "鎮靜" }, ["zhēnjiǔ"] = { "斟酒", "針灸" }, ["zhēnrén"] = { "真人", "貞人" }, ["zhēnshì"] = { "珍視", "甄試", "真事", "真是", "貞士" }, ["zhèntòng"] = { "鎮痛", "陣痛" }, ["zhēnwèi"] = { "珍味", "真偽" }, ["zhēnxī"] = { "珍惜", "珍稀" }, ["zhènxīng"] = { "振興", "鎮星" }, ["zhēnyán"] = { "真言", "箴言" }, ["zhēnyǎn"] = { "針眼", "針鼴" }, ["zhènyuán"] = { "陣圓", "震源" }, ["zhènzāi"] = { "賑災", "震災" }, ["zhēnzhī"] = { "真知", "針織" }, ["zhézhōng"] = { "折中", "折衷" }, ["zhíbǐ"] = { "執筆", "直筆" }, ["zhìbìng"] = { "治病", "致病" }, ["zhíbō"] = { "直撥", "直播" }, ["zhībù"] = { "支部", "織布" }, ["zhìcái"] = { "制裁", "製裁" }, ["zhícháng"] = { "直腸", "職場" }, ["zhìchéng"] = { "至誠", "製成" }, ["zhìcí"] = { "致詞", "致辭" }, ["zhídào"] = { "直到", "直道" }, ["zhìdìng"] = { "制定", "制訂" }, ["zhīfāng"] = { "汁方", "汁邡" }, ["zhìfú"] = { "制服", "至福" }, ["zhìfù"] = { "秩父", "致富" }, ["zhígēn"] = { "植根", "直根" }, ["zhígōng"] = { "執公", "職工" }, ["zhǐgǔ"] = { "指骨", "趾骨" }, ["zhìhǎo"] = { "治好", "至好" }, ["zhíjǐ"] = { "執戟", "直己" }, ["zhìjí"] = { "至急", "至極" }, ["zhìjì"] = { "致祭", "製劑" }, ["zhǐjiǎ"] = { "指甲", "趾甲" }, ["zhǐjiào"] = { "只教", "指教" }, ["zhījié"] = { "支節", "枝節" }, ["zhījiě"] = { "支解", "肢解" }, ["zhíjié"] = { "直截", "直捷" }, ["zhǐjīn"] = { "只今", "紙巾" }, ["zhìlěng"] = { "致冷", "製冷" }, ["zhìlì"] = { "智利", "智力", "致力", "質粒" }, ["zhílì"] = { "直立", "直隸", "質粒" }, ["zhīliú"] = { "之流", "支流" }, ["zhìliú"] = { "志留", "滯留" }, ["zhìlòu"] = { "痔漏", "痔瘻" }, ["zhìluàn"] = { "治亂", "致亂" }, ["zhǐméi"] = { "紙媒", "酯酶" }, ["zhǐmíng"] = { "指名", "指明" }, ["zhìnéng"] = { "智能", "質能" }, ["zhínéng"] = { "職能", "質能" }, ["zhìpǔ"] = { "質樸", "質譜" }, ["zhìqì"] = { "志氣", "稚氣" }, ["zhīqián"] = { "之前", "支前" }, ["zhíqín"] = { "值勤", "執勤" }, ["zhírù"] = { "植入", "直入" }, ["zhǐshì"] = { "只是", "指事", "指示" }, ["zhíshì"] = { "執事", "直視" }, ["zhìshì"] = { "志士", "智士", "智識", "治世" }, ["zhìshí"] = { "智識", "蛭石" }, ["zhīshì"] = { "知事", "知識", "芝士" }, ["zhíshǒu"] = { "執手", "職守", "值守" }, ["zhíshù"] = { "植樹", "質數" }, ["zhīshūdálǐ"] = { "知書達禮", "知書達理" }, ["zhìshuǐ"] = { "制水", "治水" }, ["zhìsǐ"] = { "治死", "至死", "致死" }, ["zhǐsù"] = { "指宿", "止宿" }, ["zhìsù"] = { "窒素", "質素" }, ["zhǐtóu"] = { "指頭", "趾頭" }, ["zhíwù"] = { "植物", "職務" }, ["zhīxiàn"] = { "支線", "知縣" }, ["zhǐxiè"] = { "止瀉", "紙屑" }, ["zhíxíng"] = { "執行", "直行" }, ["zhǐyā"] = { "指壓", "紙壓" }, ["zhǐyào"] = { "只要", "紙鷂" }, ["zhīyè"] = { "枝葉", "汁液" }, ["zhìyè"] = { "置業", "膣液" }, ["zhìyí"] = { "制宜", "置疑", "質疑" }, ["zhíyì"] = { "執意", "直譯" }, ["zhīyí"] = { "支移", "支頤" }, ["zhìyǒu"] = { "摯友", "至友" }, ["zhìyù"] = { "智育", "治癒" }, ["zhìyú"] = { "治愚", "至於" }, ["zhǐzài"] = { "只在", "旨在" }, ["zhìzhàng"] = { "智障", "滯漲" }, ["zhǐzhèng"] = { "指正", "指證" }, ["zhǐzhí"] = { "紙質", "脂質" }, ["zhǐzhì"] = { "紙質", "脂質" }, ["zhīzi"] = { "枝子", "梔子" }, ["zhōngbǎo"] = { "中保", "中飽" }, ["zhōngbiǎo"] = { "中表", "鐘錶" }, ["zhōngcháng"] = { "中場", "中常", "終場", "衷腸" }, ["zhōngchǎng"] = { "中場", "終場" }, ["zhōngchéng"] = { "中程", "忠誠" }, ["zhòngdàn"] = { "中彈", "重擔" }, ["zhòngdì"] = { "中的", "種地", "重地" }, ["zhōngdiǎn"] = { "中點", "終點", "鐘點" }, ["zhòngdú"] = { "中毒", "重讀" }, ["zhōnggǔ"] = { "中古", "鐘鼓" }, ["zhōngguóhuà"] = { "中國化", "中國畫", "中國話" }, ["zhōngjí"] = { "中級", "終極" }, ["zhōngjiān"] = { "中堅", "中間" }, ["zhòngjiàn"] = { "中箭", "重劍" }, ["zhōngjié"] = { "忠節", "終結" }, ["zhōnglì"] = { "中壢", "中立" }, ["zhònglì"] = { "重利", "重力" }, ["zhōngnián"] = { "中年", "終年" }, ["zhōngqíng"] = { "衷情", "鍾情" }, ["zhōngrì"] = { "中日", "終日" }, ["zhōngshān"] = { "中山", "鍾山" }, ["zhòngshāng"] = { "中傷", "重傷" }, ["zhōngshì"] = { "中世", "中式" }, ["zhōngshū"] = { "中書", "中樞" }, ["zhòngshù"] = { "種樹", "眾數" }, ["zhōngwèi"] = { "中位", "中尉", "中衛" }, ["zhōngxīn"] = { "中心", "忠心", "衷心" }, ["zhòngyì"] = { "中意", "眾議" }, ["zhōngyì"] = { "中譯", "忠義", "鍾意" }, ["zhòngyòng"] = { "中用", "重用" }, ["zhōngyóu"] = { "中油", "中游" }, ["zhōngyú"] = { "忠於", "終於" }, ["zhōngzhǐ"] = { "中指", "中止", "終止" }, ["zhǒngzǐ"] = { "冢子", "種子" }, ["zhòuwén"] = { "咒文", "皺紋", "籀文" }, ["zhòuyǔ"] = { "咒語", "驟雨" }, ["zhōuzhì"] = { "周至", "盩厔" }, ["zhuāncháng"] = { "專場", "專長" }, ["zhuāngjiǎ"] = { "裝假", "裝甲" }, ["zhuàngjiàn"] = { "壯健", "撞見" }, ["zhuāngōng"] = { "專供", "專攻" }, ["zhuāngshì"] = { "妝飾", "裝飾" }, ["zhuàngyǔ"] = { "壯語", "狀語" }, ["zhuāngyuán"] = { "庄原", "莊園" }, ["zhuàngzú"] = { "僮族", "壯族" }, ["zhuānjí"] = { "專輯", "專集" }, ["zhuānjiā"] = { "專家", "磚家" }, ["zhuānlì"] = { "專利", "專力" }, ["zhuānzhù"] = { "專注", "專著" }, ["zhùbō"] = { "筑波", "駐波" }, ["zhǔfàn"] = { "主犯", "煮飯" }, ["zhùfáng"] = { "住房", "駐防" }, ["zhǔfù"] = { "主婦", "囑咐" }, ["zhùhòu"] = { "佇候", "筑後" }, ["zhuīsù"] = { "追溯", "追訴" }, ["zhǔjiǎo"] = { "主腳", "主角" }, ["zhǔjué"] = { "主腳", "主角" }, ["zhǔlì"] = { "主力", "主曆" }, ["zhùlì"] = { "佇立", "助力" }, ["zhūlù"] = { "朱鷺", "誅戮" }, ["zhùmíng"] = { "注明", "著名" }, ["zhuójiàn"] = { "卓見", "拙見", "灼見" }, ["zhuójiǔ"] = { "濁酒", "酌酒" }, ["zhūrú"] = { "侏儒", "諸如" }, ["zhūshā"] = { "朱砂", "誅殺" }, ["zhúshēng"] = { "竹升", "竹笙" }, ["zhùshì"] = { "助勢", "柱式", "注視", "注釋", "築室" }, ["zhùshǒu"] = { "住手", "助手", "駐守" }, ["zhútái"] = { "燭臺", "築臺" }, ["zhùwén"] = { "注文", "祝文" }, ["zhǔyè"] = { "主業", "主頁" }, ["zhǔyì"] = { "主意", "主義", "屬意" }, ["zhùyì"] = { "助益", "注意" }, ["zhǔyīn"] = { "主因", "主音" }, ["zhùyuàn"] = { "住院", "祝願" }, ["zhùzào"] = { "鑄造", "築造" }, ["zhūzhōu"] = { "株洲", "珠洲" }, ["zhùzi"] = { "柱子", "箸子" }, ["zìbào"] = { "自報", "自爆" }, ["zìbì"] = { "自斃", "自閉", "自必" }, ["zīcái"] = { "資材", "資財" }, ["zìgě"] = { "自個", "自各" }, ["zìgěr"] = { "自個兒", "自各兒" }, ["zìgòng"] = { "自供", "自貢" }, ["zìhào"] = { "字號", "自號" }, ["zìjǐ"] = { "自己", "自給" }, ["zìjīn"] = { "自矜", "自今" }, ["zìjù"] = { "字句", "字據" }, ["zìjué"] = { "自決", "自絕", "自覺" }, ["zìlì"] = { "自力", "自立" }, ["zīlì"] = { "資力", "資歷" }, ["zìqiáng"] = { "自強", "自戕" }, ["zìrán"] = { "自然", "自燃" }, ["zìrèn"] = { "自任", "自認" }, ["zīshēng"] = { "孳生", "滋生" }, ["zīshì"] = { "姿勢", "滋事" }, ["zìshì"] = { "自恃", "自是" }, ["zìshù"] = { "字數", "自述" }, ["zìtǐ"] = { "字體", "自體" }, ["zǐwēi"] = { "紫微", "紫薇" }, ["zìwèi"] = { "自慰", "自衛" }, ["zìwèiduì"] = { "自慰隊", "自衛隊" }, ["zìxíng"] = { "字型", "字形", "自行" }, ["zǐyè"] = { "子夜", "子葉" }, ["zìyì"] = { "字義", "字譯", "恣意", "自縊" }, ["zìyóuxíng"] = { "自由行", "自由刑" }, ["zìyuàn"] = { "自怨", "自願" }, ["zīzhí"] = { "姿質", "資質" }, ["zīzhì"] = { "姿質", "資質" }, ["zìzhì"] = { "自制", "自治", "自製" }, ["zìzhuàn"] = { "自傳", "自轉" }, ["zòngguān"] = { "綜觀", "縱觀" }, ["zǒnghuì"] = { "總匯", "總會" }, ["zǒnglǎn"] = { "總攬", "總覽" }, ["zōngzhèng"] = { "宗政", "宗正" }, ["zǒudiào"] = { "走掉", "走調" }, ["zǒujìn"] = { "走近", "走進" }, ["zǔ'ānsuān"] = { "組氨酸", "組胺酸" }, ["zǔgé"] = { "組閣", "阻隔" }, ["zuìrén"] = { "罪人", "醉人" }, ["zuìxīn"] = { "最新", "醉心" }, ["zuìxíng"] = { "罪刑", "罪行" }, ["zǔjí"] = { "祖籍", "阻擊" }, ["zújì"] = { "足跡", "足蹟" }, ["zǔjiàn"] = { "組件", "組建" }, ["zūjiè"] = { "租借", "租界" }, ["zūnmìng"] = { "尊命", "遵命" }, ["zūnyán"] = { "尊嚴", "尊顏" }, ["zūnyì"] = { "尊意", "遵義" }, ["zuòbàn"] = { "作伴", "做伴" }, ["zuòchéng"] = { "作成", "做成" }, ["zuòchū"] = { "作出", "做出" }, ["zuòfǎ"] = { "作法", "做法" }, ["zuòfàn"] = { "作飯", "做飯" }, ["zuògōng"] = { "作供", "做工" }, ["zuògǔ"] = { "作古", "坐骨" }, ["zuòguān"] = { "作官", "做官" }, ["zuòhǎo"] = { "作好", "做好" }, ["zuòjiān"] = { "坐監", "座間" }, ["zuòkè"] = { "作客", "做客" }, ["zuòshì"] = { "作事", "作勢", "做事", "坐視" }, ["zuòshī"] = { "作詩", "坐失" }, ["zuǒshǒu"] = { "左手", "左首" }, ["zuòwéi"] = { "作為", "做為" }, ["zuòwèi"] = { "坐位", "座位" }, ["zuòxí"] = { "作息", "坐席", "座席" }, ["zuòxuéwèn"] = { "作學問", "做學問" }, ["zuòzhǔ"] = { "作主", "做主" }, ["zǔwū"] = { "祖屋", "組屋" }, } return export 02p6rmvdmykc76eha02bye2jt6u8e8u Modul:zh/extract 828 160430 628930 2024-11-06T16:41:49Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_template_parser = require("Module:template parser") local class_else_type = m_template_parser.class_else_type local find = mw.ustring.find local gsub = mw.ustring.gsub local match = mw.ustring.match local parse = m_template_parser.parse local cmn_pron function export.extract_pron(title, variety, cap) -- if title contains the asterisk "*" that disables everything fancy -- like [[t:ltc-l]] -- then stop early instead of...“ yozuvi orqali yangi sahifa yaratildi 628930 Scribunto text/plain local export = {} local m_template_parser = require("Module:template parser") local class_else_type = m_template_parser.class_else_type local find = mw.ustring.find local gsub = mw.ustring.gsub local match = mw.ustring.match local parse = m_template_parser.parse local cmn_pron function export.extract_pron(title, variety, cap) -- if title contains the asterisk "*" that disables everything fancy -- like [[t:ltc-l]] -- then stop early instead of trying to :getContent() -- (wtf?) if string.find(title, "*") then return end local tr = nil local title = mw.title.new(title) local content = title:getContent() local cat = nil if content then content = gsub(content, ",([^ ])", ";%1") local template = match(content, "{{zh%-pron[^}]*| ?" .. variety .. "=([^};|\n]+)") cap = cap or find(content, "{{zh%-pron[^}]*| ?" .. variety .. "=([^}|\n]+);cap%=y") if template and template ~= "" then if cmn_pron == nil then cmn_pron = require("Module:cmn-pron") end tr = cmn_pron.str_analysis(template, 'link') end else cat = "[[Category:Chinese redlinks/zh-l]]" end if cap then tr = gsub(tr, '^(.)', mw.ustring.upper) end return tr, cat end function export.extract_gloss(content, useetc) local senses = {} local len = mw.ustring.len local literally = match(content, 'zh%-forms[^}]*|lit=([^{|}]+)[|}]') local sense_id = 0 local etc = false local translingual_section, zh_section, j, pos, section while true do -- Find language sections beginning with ==...== and ending with the same -- or an empty string. Grab the Chinese and Translingual ones. _, j, language_name, section = content:find("%f[=]==%s*([^=]+)%s*==(\n.-)\n==%f[^=]", pos) if j == nil then i, j, language_name, section = content:find("%f[=]==%s*([^=]+)%s*==(\n.+)", pos) end if j == nil then break else -- Move to the beginning of "==" at the end of the current match. pos = j - 1 end if language_name == 'Translingual' then translingual_section = section elseif language_name == 'Chinese' then zh_section = section break end end if not zh_section then zh_section = translingual_section if not zh_section then return "" end elseif translingual_section then -- also use translingual section if Chinese section contains only rfdef zh_section = zh_section..translingual_section end -- Delete etymology and glyph origin sections, -- because they sometimes contain ordered lists, -- which would then be interpreted as definitions. zh_section = zh_section:gsub("\n===+Etymology.-(\n==)", "%1") zh_section = zh_section:gsub("\n===+Glyph origin.-(\n==)", "%1") for sense in zh_section:gmatch('\n# ([^\n]+)') do if not sense:match('rfdef') and not sense:match('defn') then sense_id = sense_id + 1 if sense_id > 2 then etc = true break end table.insert(senses, sense) end end local gloss_text = (literally and literally .. "; " or "") .. (senses[1] or "") local gloss_text_extend = gloss_text .. (senses[2] and "; " .. senses[2] or "") gloss_text = (len(gloss_text) < 80 and len(gloss_text_extend) < 160) and gloss_text_extend or gloss_text if gloss_text ~= gloss_text_extend then etc = true end local function replace_gloss(text) local function replace_wp(text) return text:gsub('{{w|([^|}]+)|?([^|}]*)}}', function(w_link, w_display) return '[[w:'..w_link..'|'..(w_display~='' and w_display or w_link)..']]' end) end if text:find("{{") then text = replace_wp(text) text = text:gsub(' %({{taxlink[^}%)]+}}%)', '') :gsub('{{zh%-l|%*([^}]*)}}', '%1') :gsub('{{lb|zh|[^}]*}}', '') :gsub('{{zh%-erhua form of|word=[^}]+}}', '') :gsub('{{zh%-erhua form of|([^}]+)}}', '%1') :gsub('{{zh%-alt%-name|[^}]+|([^\n]+)}}', '%1') :gsub('{{zh%-short%-comp|[^}]+|t=([^\n}|]+)[^}]*}}', '%1') :gsub('{{zh%-short%-comp|[^}]+}}', '') :gsub('{{zh%-classifier|[^}]+|t=([^\n}|]+)[^}]*}}', '%1') :gsub('{{zh%-classifier|[^}]+}}', '') :gsub('{{zh%-alt%-form|[^}]+}}', '') :gsub('{{zh%-[^dm|}][^|}]+|[^|}]+|([^\n}|]+)}}', '%1') :gsub('{{vern', '{{w') :gsub('%b{}', function(matched_braces) if matched_braces:find("^{{place|zh|") then local template = parse(matched_braces) if class_else_type(template) == "template" then local template_args = template:get_arguments() return template_args.t or template_args.t1 end end end) :gsub('|', "|") end text = text:gsub('( ?)([{%(]+[^}%){%(]+[}%)]+)', function(space, captured) local taxlink = captured:match("{{taxlink|([^|}]+)") local wiki_link = taxlink and "''" .. taxlink .. "''" or (match(captured, "({{w|.+}})") or false) return wiki_link and space..wiki_link or "" end) text = mw.text.split(text, ';') local text_sec = {} for _, s in ipairs(text) do if s:find'%w' then table.insert(text_sec, (s:gsub('^%s+',''):gsub('%s+$',''))) end end return table.concat(text_sec, '; ') end gloss_text = replace_gloss(gloss_text) gloss_text = replace_gloss(gloss_text) if etc and useetc and gloss_text ~= "" then gloss_text = gloss_text .. "; etc." end if gloss_text:find("{{") or gloss_text:find("}}") or gloss_text:find("=") then --temporary solution to suppress wikitext issues gloss_text = "" end return gloss_text end return export 4bkowo4lqipjlgirngrta4fjosh9oet Modul:palindromes 828 160431 628933 2024-11-06T16:47:33Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local data = mw.loadData("Module:palindromes/data") local function ignoreCharacters(term, lang, sc, langdata) term = mw.ustring.lower(term) term = mw.ustring.gsub(term, "[ ,%.%?!%%%-'\"]", "") -- Language-specific substitutions -- Ignore entire scripts (e.g. romaji in Japanese) if langdata.ignore then sc_name = sc and sc:getCode() or lang:findBestScript(term):getCode() for _, script in ipairs(langdata.ignore) do i...“ yozuvi orqali yangi sahifa yaratildi 628933 Scribunto text/plain local export = {} local data = mw.loadData("Module:palindromes/data") local function ignoreCharacters(term, lang, sc, langdata) term = mw.ustring.lower(term) term = mw.ustring.gsub(term, "[ ,%.%?!%%%-'\"]", "") -- Language-specific substitutions -- Ignore entire scripts (e.g. romaji in Japanese) if langdata.ignore then sc_name = sc and sc:getCode() or lang:findBestScript(term):getCode() for _, script in ipairs(langdata.ignore) do if script == sc_name then return "" end end end for i, from in ipairs(langdata.from or {}) do term = mw.ustring.gsub(term, from, langdata.to[i] or "") end return term end function export.is_palindrome(term, lang, sc) local langdata = data[lang:getCode()] or data[lang:getFullCode()] or {} -- Affixes aren't palindromes if mw.ustring.find(term, "^%-") or mw.ustring.find(term, "%-$") then return false end -- Remove punctuation and casing term = ignoreCharacters(term, lang, sc, langdata) local len = mw.ustring.len(term) if langdata.allow_repeated_char then -- Ignore single-character terms if len < 2 then return false end else -- Ignore terms that consist of just one character repeated -- This also excludes terms consisting of fewer than 3 characters if term == mw.ustring.rep(mw.ustring.sub(term, 1, 1), len) then return false end end local charlist = {} for c in mw.ustring.gmatch(term, ".") do table.insert(charlist, c) end for i = 1, math.floor(len / 2) do if charlist[i] ~= charlist[len - i + 1] then return false end end return true end return export ms2gvz5ktlkntyfgy8vn9mt955uxqdg Modul:palindromes/data 828 160432 628934 2024-11-06T16:48:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = { ["ar"] = { allow_repeated_char = true, from = { "[أإآ]", "ؤ", "[ئى]", "ة", "ء", }, to = { "ا", "و", "ي", "ه", }, }, ["arc"] = { allow_repeated_char = true, from = { "ם", "ן", "ך", "ף", "ץ", "ﭏ", "װ", "ױ", "ײ", "[״׳־]", }, to = { "מ", "נ", "כ", "פ", "צ", "אל", "וו", "וי", "יי", } }, ["axm"...“ yozuvi orqali yangi sahifa yaratildi 628934 Scribunto text/plain local data = { ["ar"] = { allow_repeated_char = true, from = { "[أإآ]", "ؤ", "[ئى]", "ة", "ء", }, to = { "ا", "و", "ي", "ه", }, }, ["arc"] = { allow_repeated_char = true, from = { "ם", "ן", "ך", "ף", "ץ", "ﭏ", "װ", "ױ", "ײ", "[״׳־]", }, to = { "מ", "נ", "כ", "פ", "צ", "אל", "וו", "וי", "יי", } }, ["axm"] = { from = {"ու"}, to = {"ŭ"}, }, ["ca"] = { from = {"à", "[èé]", "[íï]", "[òó]", "[úü]", "ç", "l·l"}, to = {"a", "e", "i", "o", "u", "c", "ll"}, }, ["cmn"] = {ignore = {"Latn"}}, ["cs"] = { from = {"á", "é", "í", "ó", "[úů]", "ý", "ch"}, to = {"a", "e", "i", "o", "u", "y", "χ"}, }, ["de"] = { from = {"ä", "ö", "ü", "[ßẞ]"}, to = {"a", "o", "u", "ss"}, }, ["el"] = { from = { "[ᾳάᾴὰᾲᾶᾷἀᾀἄᾄἂᾂἆᾆἁᾁἅᾅἃᾃἇᾇᾱᾰἈᾈἌᾌἊᾊἎᾎἉᾉἍᾍἋᾋἏᾏᾹᾸ]", --uppercase characters are included due to this bug: https://bugs.php.net/bug.php?id=69267 "[έὲἐἔἒἑἕἓἘἜἚἙἝἛ]", "[ῃήῄὴῂῆῇἠᾐἤᾔἢᾒἦᾖἡᾑἥᾕἣᾓἧᾗἨᾘἬᾜἪᾚἮᾞἩᾙἭᾝἫᾛἯᾟ]", "[ίὶῖἰἴἲἶἱἵἳἷϊΐῒῗῑῐἸἼἺἾἹἽἻἿῙῘ]", "[όὸὀὄὂὁὅὃὈὌὊὉὍὋ]", "[ύὺῦὐὔὒὖὑὕὓὗϋΰῢῧῡῠὙὝὛὟῩῨ]", "[ῳώῴὼῲῶῷὠᾠὤᾤὢᾢὦᾦὡᾡὥᾥὣᾣὧᾧὨᾨὬᾬὪᾪὮᾮὩᾩὭᾭὫᾫὯᾯ]", "[ῥῤῬ]", "[ς]", "[́͂]" }, to = { "α", "ε", "η", "ι", "ο", "υ", "ω", "ρ", "σ" }, }, ["en"] = { from = {"[äàáâåā]", "[ëèéêē]", "[ïìíîī]", "[öòóôō]", "[üùúûū]", "æ" , "œ" , "[çč]", "ñ", "'"}, to = {"a", "e", "i", "o", "u", "ae", "oe", "c", "n"}, }, ["fr"] = { from = {"[áàâä]", "[éèêë]", "[íìîï]", "[óòôö]", "[úùûü]", "[ýỳŷÿ]", "ç", "æ", "œ", "'"}, to = {"a", "e", "i", "o", "u", "y", "c", "ae", "oe"}, }, ["fy"] = { from = {"[áàâä]", "[éèêë]", "[íìîï]", "[óòôö]", "[úùûü]", "[ýỳŷÿ]", "æ", "'"}, to = {"a", "e", "i", "o", "u", "y", "ae"}, }, ["grc"] = { from = { "[ᾳάᾴὰᾲᾶᾷἀᾀἄᾄἂᾂἆᾆἁᾁἅᾅἃᾃἇᾇᾱᾰἈᾈἌᾌἊᾊἎᾎἉᾉἍᾍἋᾋἏᾏᾹᾸ]", --uppercase characters are included due to this bug: https://bugs.php.net/bug.php?id=69267 "[έὲἐἔἒἑἕἓἘἜἚἙἝἛ]", "[ῃήῄὴῂῆῇἠᾐἤᾔἢᾒἦᾖἡᾑἥᾕἣᾓἧᾗἨᾘἬᾜἪᾚἮᾞἩᾙἭᾝἫᾛἯᾟ]", "[ίὶῖἰἴἲἶἱἵἳἷϊΐῒῗῑῐἸἼἺἾἹἽἻἿῙῘ]", "[όὸὀὄὂὁὅὃὈὌὊὉὍὋ]", "[ύὺῦὐὔὒὖὑὕὓὗϋΰῢῧῡῠὙὝὛὟῩῨ]", "[ῳώῴὼῲῶῷὠᾠὤᾤὢᾢὦᾦὡᾡὥᾥὣᾣὧᾧὨᾨὬᾬὪᾪὮᾮὩᾩὭᾭὫᾫὯᾯ]", "[ῥῤῬ]", "[ς]", "[́͂]" }, to = { "α", "ε", "η", "ι", "ο", "υ", "ω", "ρ", "σ" } }, ["he"] = { allow_repeated_char = true, from = { "ם", "ן", "ך", "ף", "ץ", "ﭏ", "װ", "ױ", "ײ", "[״׳־]", }, to = { "מ", "נ", "כ", "פ", "צ", "אל", "וו", "וי", "יי", } }, ["hu"] = { from = {"í", "ó", "ú", "ő", "ű", "ccs", "cs", "ggy", "gy", "lly", "ly", "nny", "ny", "ssz", "sz", "tty", "ty", "zzs", "zs", "ddzs", "dzs"}, to = {"i", "o", "u", "ö", "ü", "čč", "č", "ǰǰ", "ǰ", "ľľ", "ľ", "ňň", "ň", "šš", "š", "ťť", "ť", "žž", "ž", "ddž", "dž"}, }, ["hy"] = { from = {"ու", "եւ"}, to = {"ŭ", "և"}, }, ["ja"] = { allow_repeated_char = true, from = {'が', 'ぎ', 'ぐ', 'げ', 'ご', 'ざ', 'じ', 'ず', 'ぜ', 'ぞ', 'だ', 'ぢ', 'づ', 'で', 'ど', 'ば', 'び', 'ぶ', 'べ', 'ぼ', 'ぱ', 'ぴ', 'ぷ', 'ぺ', 'ぽ', 'ゔ'}, to = {'か', 'き', 'く', 'け', 'こ', 'さ', 'し', 'す', 'せ', 'そ', 'た', 'ち', 'つ', 'て', 'と', 'は', 'ひ', 'ふ', 'へ', 'ほ', 'は', 'ひ', 'ふ', 'へ', 'ほ', 'う'}, ignore = {"Latn"}, }, ["la"] = { from = {"v", "j"}, to = {"u", "i"} }, ["nl"] = { from = {"[áàä]", "[éèë]", "[íìï]", "[óòö]", "[úùü]"}, to = {"a", "e", "i", "o", "u"}, }, ["pl"] = { from = {"ć", "ę", "ł", "ń", "ó", "ś", "[źż]"}, to = {"c", "e", "l", "n", "o", "s", "z"}, }, ["ru"] = { from = {"ё"}, to = {"е"}, }, ["xcl"] = { from = {"ու"}, to = {"ŭ"}, }, ["yi"] = { allow_repeated_char = true, from = { "ם", "ן", "ך", "ף", "ץ", "ﭏ", "װ", "ױ", "ײ", "[״׳־]", "[ִַָּֿׁׂ]", }, to = { "מ", "נ", "כ", "פ", "צ", "אל", "וו", "וי", "יי", } }, ["zh"] = { ignore = {"Latn"}, }, } return data lnfzz4yt7hlswzgb8pzp3idlrgkcnyk Modul:tili/cache 828 160433 628939 2024-11-06T17:06:18Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local getByCode = require("Module:tili").getByCode local langs = {} -- Auto-create language objects: langs.en -> language object for English. setmetatable(langs, { __index = function(self, key) local lang = getByCode(key, nil, true, true) or false self[key] = lang return lang end }) return langs“ yozuvi orqali yangi sahifa yaratildi 628939 Scribunto text/plain local getByCode = require("Module:tili").getByCode local langs = {} -- Auto-create language objects: langs.en -> language object for English. setmetatable(langs, { __index = function(self, key) local lang = getByCode(key, nil, true, true) or false self[key] = lang return lang end }) return langs 62t7wxflrcp0bpc0vf210ti9blmbb15 Modul:zh/data/dial-pron/凡 828 160434 628943 2024-11-06T17:14:53Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „return { { "凡", { "fan35", "fan24下~|fan53~是", "fan45", "fã42", "fã42", "fan42", "fã24", "fã24", "fan53", "fɛ̃n53", "fan51", "fan213", "fan31", "fan21", "fã̠31", "faŋ24", "fæ̃55", "fæ̃11", "xuɑŋ13", "fæ̃31", "ve13", "ve̞13", "vẽ̞213", "va31", "fɛ44", "fuːə44", "fan13", "ɸan12", "fan45", "fan11", "fɑm11", "fan21", "fan21", "fan21", "huan35", "huaŋ53", "uaiŋ21", "huaŋ55", "faŋ31" } }, }“ yozuvi orqali yangi sahifa yaratildi 628943 Scribunto text/plain return { { "凡", { "fan35", "fan24下~|fan53~是", "fan45", "fã42", "fã42", "fan42", "fã24", "fã24", "fan53", "fɛ̃n53", "fan51", "fan213", "fan31", "fan21", "fã̠31", "faŋ24", "fæ̃55", "fæ̃11", "xuɑŋ13", "fæ̃31", "ve13", "ve̞13", "vẽ̞213", "va31", "fɛ44", "fuːə44", "fan13", "ɸan12", "fan45", "fan11", "fɑm11", "fan21", "fan21", "fan21", "huan35", "huaŋ53", "uaiŋ21", "huaŋ55", "faŋ31" } }, } bnc15ezn0it9d59dvatuz0ej4zyvgzg Modul:ltc-pron/data 828 160435 628948 2024-11-06T17:19:36Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = {} data.init_type = { ["幫"] = 1, ["帮"] = 1, ["非"] = 1, ["滂"] = 2, ["敷"] = 2, ["並"] = 3, ["并"] = 3, ["奉"] = 3, ["明"] = 4, ["微"] = 4, ["端"] = 5, ["透"] = 6, ["定"] = 7, ["泥"] = 8, ["知"] = 9, ["徹"] = 10, ["澄"] = 11, ["孃"] = 12, ["娘"] = 12, ["精"] = 13, ["清"] = 14, ["從"] = 15, ["从"] = 15, ["心"] = 16, ["邪"] = 17, ["莊"] = 18, ["庄"] = 18, ["初"] = 19, ["崇"] = 20, ["生"] = 21, ["...“ yozuvi orqali yangi sahifa yaratildi 628948 Scribunto text/plain local data = {} data.init_type = { ["幫"] = 1, ["帮"] = 1, ["非"] = 1, ["滂"] = 2, ["敷"] = 2, ["並"] = 3, ["并"] = 3, ["奉"] = 3, ["明"] = 4, ["微"] = 4, ["端"] = 5, ["透"] = 6, ["定"] = 7, ["泥"] = 8, ["知"] = 9, ["徹"] = 10, ["澄"] = 11, ["孃"] = 12, ["娘"] = 12, ["精"] = 13, ["清"] = 14, ["從"] = 15, ["从"] = 15, ["心"] = 16, ["邪"] = 17, ["莊"] = 18, ["庄"] = 18, ["初"] = 19, ["崇"] = 20, ["生"] = 21, ["俟"] = 22, ["章"] = 23, ["昌"] = 24, ["常"] = 25, ["禪"] = 25, ["禅"] = 25, ["書"] = 26, ["书"] = 26, ["船"] = 27, ["見"] = 28, ["见"] = 28, ["溪"] = 29, ["谿"] = 29, ["羣"] = 30, ["群"] = 30, ["疑"] = 31, ["曉"] = 32, ["晓"] = 32, ["匣"] = 33, ["影"] = 34, ["于"] = 35, ["云"] = 35, ["雲"] = 35, ["以"] = 36, ["來"] = 37, ["来"] = 37, ["日"] = 38 } data.fin_conv = { ["冬"] = "沃", ["東"] = "屋", ["江"] = "覺", ["鍾"] = "燭", ["眞"] = "質", ["臻"] = "櫛", ["諄"] = "術", ["痕"] = "麧", ["魂"] = "沒", ["欣"] = "迄", ["文"] = "物", ["寒"] = "曷", ["桓"] = "末", ["元"] = "月", ["刪"] = "黠", ["山"] = "鎋", ["仙"] = "薛", ["先"] = "屑", ["唐"] = "鐸", ["陽"] = "藥", ["庚"] = "陌", ["耕"] = "麥", ["清"] = "昔", ["青"] = "錫", ["登"] = "德", ["蒸"] = "職", ["侵"] = "緝", ["談"] = "盍", ["嚴"] = "業", ["凡"] = "乏", ["銜"] = "狎", ["咸"] = "洽", ["鹽"] = "葉", ["添"] = "怗", ["覃"] = "合" } data.fin_type = { ["冬"] = 5, ["沃"] = 6, ["鍾"] = 7, ["燭"] = 8, ["江"] = 9, ["覺"] = 10, ["之"] = 19, ["魚"] = 22, ["模"] = 23, ["虞"] = 24, ["咍"] = 41, ["灰"] = 42, ["臻"] = 46, ["諄"] = 47, ["櫛"] = 51, ["術"] = 52, ["痕"] = 53, ["麧"] = 54, ["魂"] = 55, ["沒"] = 56, ["欣"] = 57, ["迄"] = 58, ["文"] = 59, ["物"] = 60, ["寒"] = 61, ["桓"] = 62, ["曷"] = 63, ["末"] = 64, ["豪"] = 89, ["肴"] = 90, ["蕭"] = 93, ["歌"] = 94, ["蒸"] = 133, ["尤"] = 136, ["侯"] = 137, ["幽"] = 138, ["談"] = 143, ["盍"] = 144, ["嚴"] = 145, ["凡"] = 146, ["業"] = 147, ["乏"] = 148, ["銜"] = 149, ["狎"] = 150, ["咸"] = 151, ["洽"] = 152, ["添"] = 157, ["怗"] = 158, ["帖"] = 158, ["覃"] = 159, ["合"] = 160 } data.fin_type_open = { ["微開"] = 20, ["微合"] = 21, ["泰開"] = 25, ["泰合"] = 26, ["廢開"] = 27, ["廢合"] = 28, ["夬開"] = 29, ["夬合"] = 30, ["佳開"] = 31, ["佳合"] = 32, ["皆開"] = 33, ["皆合"] = 34, ["齊開"] = 39, ["齊合"] = 40, ["元開"] = 65, ["元合"] = 66, ["月開"] = 67, ["月合"] = 68, ["刪開"] = 69, ["刪合"] = 70, ["黠開"] = 71, ["黠合"] = 72, ["山開"] = 73, ["山合"] = 74, ["鎋開"] = 75, ["鎋合"] = 76, ["先開"] = 85, ["先合"] = 86, ["屑開"] = 87, ["屑合"] = 88, ["唐開"] = 101, ["唐合"] = 102, ["鐸開"] = 103, ["鐸合"] = 104, ["陽開"] = 105, ["陽合"] = 106, ["藥開"] = 107, ["藥合"] = 108, ["耕開"] = 117, ["耕合"] = 118, ["麥開"] = 119, ["麥合"] = 120, ["清開"] = 121, ["清合"] = 122, ["昔開"] = 123, ["昔合"] = 124, ["青開"] = 125, ["青合"] = 126, ["錫開"] = 127, ["錫合"] = 128, ["登開"] = 129, ["登合"] = 130, ["德開"] = 131, ["德合"] = 132, ["職開"] = 134, ["職合"] = 135 } data.fin_type_deng_open = { ["支三開"] = 11, ["支三合"] = 12, ["支重鈕三開"] = 13, ["支重鈕三合"] = 14, ["脂三開"] = 15, ["脂三合"] = 16, ["脂重鈕四開"] = 15, ["脂重鈕四合"] = 16, ["脂重鈕三開"] = 17, ["脂重鈕三合"] = 18, ["祭三開"] = 35, ["祭三合"] = 36, ["祭重鈕四開"] = 35, ["祭重鈕四合"] = 36, ["祭重鈕三開"] = 37, ["祭重鈕三合"] = 38, ["戈一合"] = 95, ["戈三開"] = 96, ["戈三合"] = 97, ["仙三開"] = 77, ["仙三合"] = 78, ["仙重鈕三開"] = 79, ["仙重鈕三合"] = 80, ["薛三開"] = 81, ["薛三合"] = 82, ["薛重鈕三開"] = 83, ["薛重鈕三合"] = 84, ["麻二開"] = 98, ["麻二合"] = 99, ["麻三開"] = 100, ["陌二開"] = 113, ["陌二合"] = 114, ["陌三開"] = 115, ["陌三合"] = 116, ["庚二開"] = 109, ["庚二合"] = 110, ["庚三開"] = 111, ["庚三合"] = 112, ["庚重鈕三開"] = 111, ["庚重鈕三合"] = 112 } data.initialConv = { ["Zhengzhang"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" }, ["Karlgren"] = { [1] = "p", [2] = "pʰ", [3] = "bʱ", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "dʱ", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡʱ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡zʱ", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐʱ", [21] = "ʂ", [22] = "ɖ͡ʐʰ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑʰ", [28] = "k", [29] = "kʰ", [30] = "g", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "", [36] = "", [37] = "l", [38] = "ȵʑ" }, ["Li"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "ɣ", [36] = "", [37] = "l", [38] = "ȵ" }, ["Pan"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐ", [21] = "ʃ", [22] = "ʐ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" }, ["Pulleyblank"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐ", [21] = "ʂ", [22] = "ʐ", [23] = "c", [24] = "cʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "g", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" }, ["Wang"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "", [35] = "ɣ", [36] = "j", [37] = "l", [38] = "ȵʑ" }, ["Shao"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "ɣ", [36] = "", [37] = "l", [38] = "ȵʑ" }, } data.finalConv = { ["Zhengzhang"] = { [1] = "uŋ", [2] = "ɨuŋ", [3] = "uk̚", [4] = "ɨuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ɨoŋ", [8] = "ɨok̚", [9] = "ˠʌŋ", [10] = "ˠʌk̚", [11] = "iᴇ", [12] = "iuᴇ", [13] = "ˠiᴇ", [14] = "ˠiuᴇ", [15] = "iɪ", [16] = "iuɪ", [17] = "ˠiɪ", [18] = "ˠiuɪ", [19] = "ɨ", [20] = "ɨi", [21] = "ʉi", [22] = "ɨʌ", [23] = "uo", [24] = "ɨo", [25] = "ɑi", [26] = "uɑi", [27] = "ɨɐi", [28] = "ʉɐi", [29] = "ˠai", [30] = "ˠuai", [31] = "ˠɛ", [32] = "ˠuɛ", [33] = "ˠɛi", [34] = "ˠuɛi", [35] = "iᴇi", [36] = "iuᴇi", [37] = "ˠiᴇi", [38] = "ˠiuᴇi", [39] = "ei", [40] = "wei", [41] = "ʌi", [42] = "uʌi", [43] = "iɪn", [44] = "ˠiɪn", [45] = "ˠiuɪn", [46] = "ɪn", [47] = "iuɪn", [48] = "iɪt̚", [49] = "ˠiɪt̚", [50] = "ˠiuɪt̚", [51] = "ɪt̚", [52] = "iuɪt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "ɨun", [60] = "ɨut̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ɨɐn", [66] = "ʉɐn", [67] = "ɨɐt̚", [68] = "ʉɐt̚", [69] = "ˠan", [70] = "ˠuan", [71] = "ˠat̚", [72] = "ˠuat̚", [73] = "ˠɛn", [74] = "ˠuɛn", [75] = "ˠɛt̚", [76] = "ˠuɛt̚", [77] = "iᴇn", [78] = "iuᴇn", [79] = "ˠiᴇn", [80] = "ˠiuᴇn", [81] = "iᴇt̚", [82] = "iuᴇt̚", [83] = "ˠiᴇt̚", [84] = "ˠiuᴇt̚", [85] = "en", [86] = "wen", [87] = "et̚", [88] = "wet̚", [89] = "ɑu", [90] = "ˠau", [91] = "iᴇu", [92] = "ˠiᴇu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "ɨɑ", [97] = "ɨuɑ", [98] = "ˠa", [99] = "ˠua", [100] = "ia", [101] = "ɑŋ", [102] = "wɑŋ", [103] = "ɑk̚", [104] = "wɑk̚", [105] = "ɨɐŋ", [106] = "ʉɐŋ", [107] = "ɨɐk̚", [108] = "ʉɐk̚", [109] = "ˠæŋ", [110] = "ˠwæŋ", [111] = "ˠiæŋ", [112] = "ˠwiæŋ", [113] = "ˠæk̚", [114] = "ˠwæk̚", [115] = "ˠiæk̚", [116] = "ˠwiæk̚", [117] = "ˠɛŋ", [118] = "ˠwɛŋ", [119] = "ˠɛk̚", [120] = "ˠwɛk̚", [121] = "iᴇŋ", [122] = "wiᴇŋ", [123] = "iᴇk̚", [124] = "wiᴇk̚", [125] = "eŋ", [126] = "weŋ", [127] = "ek̚", [128] = "wek̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "ɨŋ", [134] = "ɨk̚", [135] = "wɨk̚", [136] = "ɨu", [137] = "əu", [138] = "iɪu", [139] = "iɪm", [140] = "ˠiɪm", [141] = "iɪp̚", [142] = "ˠiɪp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "ɨɐm", [146] = "ɨɐm", [147] = "ɨɐp̚", [148] = "ɨɐp̚", [149] = "ˠam", [150] = "ˠap̚", [151] = "ˠɛm", [152] = "ˠɛp̚", [153] = "iᴇm", [154] = "ˠiᴇm", [155] = "iᴇp̚", [156] = "ˠiᴇp̚", [157] = "em", [158] = "ep̚", [159] = "ʌm", [160] = "ʌp̚" }, ["Karlgren"] = { [1] = "uŋ", [2] = "i̯uŋ", [3] = "uk̚", [4] = "i̯uk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "i̯woŋ", [8] = "i̯wok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ie̯", [12] = "wie̯", [13] = "ie̯", [14] = "wie̯", [15] = "i", [16] = "wi", [17] = "i", [18] = "wi", [19] = "i", [20] = "e̯i", [21] = "we̯i", [22] = "i̯wo", [23] = "uo", [24] = "i̯u", [25] = "ɑi", [26] = "uɑi", [27] = "i̯ɐi", [28] = "i̯wɐi", [29] = "ai", [30] = "wai", [31] = "ai", [32] = "wai", [33] = "ăi", [34] = "wăi", [35] = "i̯ɛi", [36] = "i̯wɛi", [37] = "i̯ɛi", [38] = "i̯wɛi", [39] = "iei", [40] = "iwei", [41] = "ɑ̆i", [42] = "uɑ̆i", [43] = "i̯ĕn", [44] = "i̯ĕn", [45] = "i̯ĕn", [46] = "i̯æn", [47] = "i̯uĕn", [48] = "i̯ĕt̚", [49] = "i̯ĕt̚", [50] = "i̯ĕt̚", [51] = "i̯æt̚", [52] = "i̯uĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "i̯ən", [58] = "i̯ət̚", [59] = "i̯uən", [60] = "i̯uət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ɨ̯ɐn", [66] = "i̯wɐn", [67] = "ɨ̯ɐt̚", [68] = "i̯wɐt̚", [69] = "an", [70] = "wan", [71] = "ăt̚", [72] = "wăt̚", [73] = "ăn", [74] = "wăn", [75] = "at̚", [76] = "wat̚", [77] = "i̯ɛn", [78] = "i̯wɛn", [79] = "i̯ɛn", [80] = "i̯wɛn", [81] = "i̯ɛt̚", [82] = "i̯wɛt̚", [83] = "i̯ɛt̚", [84] = "i̯wɛt̚", [85] = "ien", [86] = "iwen", [87] = "iet̚", [88] = "iwet̚", [89] = "ɑu", [90] = "au", [91] = "i̯ɛu", [92] = "i̯ɛu", [93] = "ieu", [94] = "ɑ", [95] = "uɑ", [96] = "i̯ɑ", [97] = "i̯wɑ", [98] = "a", [99] = "wa", [100] = "i̯a", [101] = "ɑŋ", [102] = "wɑŋ", [103] = "ɑk̚", [104] = "wɑk̚", [105] = "i̯aŋ", [106] = "iwaŋ", [107] = "i̯ak̚", [108] = "iwak̚", [109] = "ɐŋ", [110] = "wɐŋ", [111] = "i̯ɐŋ", [112] = "i̯wɐŋ", [113] = "ɐk̚", [114] = "wɐk̚", [115] = "iɐk̚", [116] = "iwɐk̚", [117] = "æŋ", [118] = "wæŋ", [119] = "æk̚", [120] = "wæk̚", [121] = "i̯ɛŋ", [122] = "i̯wɛŋ", [123] = "i̯ɛk̚", [124] = "i̯wɛk̚", [125] = "ieŋ", [126] = "iweŋ", [127] = "iek̚", [128] = "iwek̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "i̯əŋ", [134] = "i̯ək̚", [135] = "i̯wək̚", [136] = "i̯ə̯u", [137] = "ə̯u", [138] = "ieu", [139] = "i̯əm", [140] = "i̯əm", [141] = "i̯əp̚", [142] = "i̯əp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "i̯ɐm", [146] = "i̯wɐm", [147] = "i̯ɐp̚", [148] = "i̯wɐp̚", [149] = "am", [150] = "ap̚", [151] = "ăm", [152] = "ăp̚", [153] = "i̯ɛm", [154] = "i̯ɛm", [155] = "i̯ɛp̚", [156] = "i̯ɛp̚", [157] = "iem", [158] = "iep̚", [159] = "ăm", [160] = "ăp̚" }, ["Li"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "oŋ", [6] = "ok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ie", [12] = "iue", [13] = "je", [14] = "jue", [15] = "i", [16] = "ui", [17] = "ji", [18] = "jui", [19] = "iə", [20] = "iəi", [21] = "iuəi", [22] = "iɔ", [23] = "o", [24] = "io", [25] = "ɑi", [26] = "uɑi", [27] = "iɐi", [28] = "iuɐi", [29] = "ai", [30] = "uai", [31] = "ɛ", [32] = "uɛ", [33] = "ɛi", [34] = "uɛi", [35] = "iɛi", [36] = "iuɛi", [37] = "jɛi", [38] = "juɛi", [39] = "ei", [40] = "uei", [41] = "ᴀi", [42] = "uᴀi", [43] = "iĕn", [44] = "jĕn", [45] = "juĕn", [46] = "iĕn", [47] = "iuĕn", [48] = "iĕt̚", [49] = "jĕt̚", [50] = "juĕt̚", [51] = "iĕt̚", [52] = "iuĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "iən", [58] = "iət̚", [59] = "iuən", [60] = "iuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "iɐn", [66] = "iuɐn", [67] = "iɐt̚", [68] = "iuɐt̚", [69] = "an", [70] = "uan", [71] = "at̚", [72] = "uat̚", [73] = "ɛn", [74] = "uɛn", [75] = "ɛt̚", [76] = "uɛt̚", [77] = "iɛn", [78] = "iuɛn", [79] = "jɛn", [80] = "juɛn", [81] = "iɛt̚", [82] = "iuɛt̚", [83] = "jɛt̚", [84] = "juɛt̚", [85] = "en", [86] = "uen", [87] = "et̚", [88] = "uet̚", [89] = "ɑu", [90] = "au", [91] = "iɛu", [92] = "jɛu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "iuɑ", [98] = "a", [99] = "ua", [100] = "ia", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "iaŋ", [106] = "iuaŋ", [107] = "iak̚", [108] = "iuak̚", [109] = "ɐŋ", [110] = "uɐŋ", [111] = "iɐŋ", [112] = "iuɐŋ", [113] = "ɐk̚", [114] = "uɐk̚", [115] = "iɐk̚", [116] = "iuɐk̚", [117] = "ɛŋ", [118] = "uɛŋ", [119] = "ɛk̚", [120] = "uɛk̚", [121] = "iɛŋ", [122] = "iuɛŋ", [123] = "iɛk̚", [124] = "iuɛk̚", [125] = "eŋ", [126] = "ueŋ", [127] = "ek̚", [128] = "uek̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "iəŋ", [134] = "iək̚", [135] = "iuək̚", [136] = "iu", [137] = "u", [138] = "iĕu", [139] = "iəm", [140] = "jəm", [141] = "iəp̚", [142] = "jəp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iap̚", [148] = "iɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "iɛm", [154] = "jɛm", [155] = "iɛp̚", [156] = "jɛp̚", [157] = "em", [158] = "ep̚", [159] = "ᴀm", [160] = "ᴀp̚" }, ["Pan"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ᵚɔŋ", [10] = "ᵚɔk̚", [11] = "iɛ", [12] = "ʷiɛ", [13] = "ᵚiɛ", [14] = "ʷᵚiɛ", [15] = "i", [16] = "ʷi", [17] = "ᵚi", [18] = "ʷᵚi", [19] = "ɨ", [20] = "ɨi", [21] = "ʷɨi", [22] = "iɔ", [23] = "uo", [24] = "io", [25] = "ɑi", [26] = "ʷɑi", [27] = "iɐi", [28] = "ʷiɐi", [29] = "ᵚai", [30] = "ʷᵚai", [31] = "ᵚæ", [32] = "ʷᵚæ", [33] = "ᵚæi", [34] = "ʷᵚæi", [35] = "iɛi", [36] = "ʷiɛi", [37] = "ᵚiɛi", [38] = "ʷᵚiei", [39] = "ei", [40] = "ʷei", [41] = "əi", [42] = "uoi", [43] = "in", [44] = "ᵚin", [45] = "ʷᵚin", [46] = "ɪn", [47] = "ʷin", [48] = "it̚", [49] = "ᵚit̚", [50] = "ʷᵚit̚", [51] = "ɪt̚", [52] = "ʷit̚", [53] = "ən", [54] = "ət̚", [55] = "uon", [56] = "uot̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "iun", [60] = "iut̚", [61] = "ɑn", [62] = "ʷɑn", [63] = "ɑt̚", [64] = "ʷɑt̚", [65] = "iɐn", [66] = "ʷiɐn", [67] = "iɐt̚", [68] = "ʷiɐt̚", [69] = "ᵚan", [70] = "ʷᵚan", [71] = "ᵚat̚", [72] = "ʷᵚat̚", [73] = "ᵚæn", [74] = "ʷᵚæn", [75] = "ᵚæt̚", [76] = "ʷᵚæt̚", [77] = "iɛn", [78] = "ʷiɛn", [79] = "ᵚiɛn", [80] = "ʷᵚiɛn", [81] = "iɛt̚", [82] = "ʷiɛt̚", [83] = "ᵚiɛt̚", [84] = "ʷᵚiet̚", [85] = "en", [86] = "ʷen", [87] = "et̚", [88] = "ʷet̚", [89] = "ɑu", [90] = "ᵚau", [91] = "iɛu", [92] = "ᵚiɛu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "ʷiɑ", [98] = "ᵚa", [99] = "ʷᵚa", [100] = "ia", [101] = "ɑŋ", [102] = "ʷɑŋ", [103] = "ɑk̚", [104] = "ʷɑk̚", [105] = "iɐŋ", [106] = "ʷiɐŋ", [107] = "iɐk̚", [108] = "ʷiɐk̚", [109] = "ᵚaŋ", [110] = "ʷᵚaŋ", [111] = "ᵚiaŋ", [112] = "ʷᵚiaŋ", [113] = "ᵚak̚", [114] = "ʷᵚak̚", [115] = "ᵚiak̚", [116] = "ʷᵚiak̚", [117] = "ᵚæŋ", [118] = "ʷᵚæŋ", [119] = "ᵚæk̚", [120] = "ʷᵚæk̚", [121] = "iɛŋ", [122] = "ʷiɛŋ", [123] = "iɛk̚", [124] = "ʷiɛk̚", [125] = "eŋ", [126] = "ʷeŋ", [127] = "ek̚", [128] = "ʷek̚", [129] = "əŋ", [130] = "ʷəŋ", [131] = "ək̚", [132] = "ʷək̚", [133] = "ɨŋ", [134] = "ɨk̚", [135] = "ʷɨk̚", [136] = "iu", [137] = "əu", [138] = "ɨu", [139] = "im", [140] = "ᵚim", [141] = "ip̚", [142] = "ᵚip̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iɐp̚", [148] = "iɐp̚", [149] = "ᵚam", [150] = "ᵚap̚", [151] = "ᵚæm", [152] = "ᵚæp̚", [153] = "iɛm", [154] = "ᵚiɛm", [155] = "iɛp̚", [156] = "ᵚiɛp̚", [157] = "em", [158] = "ep̚", [159] = "əm", [160] = "əp̚" }, ["Pulleyblank"] = { [1] = "əwŋ", [2] = "uwŋ", [3] = "əwk̚", [4] = "uwk̚", [5] = "awŋ", [6] = "awk̚", [7] = "uawŋ", [8] = "uawk̚", [9] = "aɨwŋ", [10] = "aɨwk̚", [11] = "iə̆", [12] = "wiə̆", [13] = "jiə̆", [14] = "jwiə̆", [15] = "i", [16] = "wi", [17] = "ji", [18] = "jwi", [19] = "ɨ", [20] = "ɨj", [21] = "uj", [22] = "ɨə̆", [23] = "ɔ", [24] = "uə̆", [25] = "aj", [26] = "waj", [27] = "ɨaj", [28] = "uaj", [29] = "aɨjs", [30] = "waɨjs", [31] = "aɨj", [32] = "waɨj", [33] = "əɨj", [34] = "wəɨj", [35] = "iaj", [36] = "wiaj", [37] = "jiaj", [38] = "jwiaj", [39] = "ɛj", [40] = "wɛj", [41] = "əj", [42] = "wəj", [43] = "in", [44] = "jin", [45] = "jin", [46] = "in", [47] = "win", [48] = "it̚", [49] = "jit̚", [50] = "jit̚", [51] = "it̚", [52] = "wit̚", [53] = "ən", [54] = "ət̚", [55] = "wən", [56] = "wət̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "un", [60] = "ut̚", [61] = "an", [62] = "wan", [63] = "at̚", [64] = "wat̚", [65] = "ɨan", [66] = "uan", [67] = "ɨat̚", [68] = "uat̚", [69] = "aɨn", [70] = "waɨn", [71] = "aɨt̚", [72] = "waɨt̚", [73] = "əɨn", [74] = "wəɨn", [75] = "əɨt̚", [76] = "wəɨt̚", [77] = "ian", [78] = "wian", [79] = "ian", [80] = "wian", [81] = "iat̚", [82] = "wiat̚", [83] = "iat̚", [84] = "wiat̚", [85] = "ɛn", [86] = "wɛn", [87] = "ɛt̚", [88] = "wɛt̚", [89] = "aw", [90] = "aɨw", [91] = "iaw", [92] = "iaw", [93] = "ɛw", [94] = "a", [95] = "wa", [96] = "ɨa", [97] = "ua", [98] = "aɨ", [99] = "waɨ", [100] = "ia", [101] = "aŋ", [102] = "waŋ", [103] = "ak̚", [104] = "wak̚", [105] = "ɨaŋ", [106] = "uaŋ", [107] = "ɨak̚", [108] = "uak̚", [109] = "aɨjŋ", [110] = "waɨjŋ", [111] = "iajŋ", [112] = "wiajŋ", [113] = "aɨjk̚", [114] = "waɨjk̚", [115] = "iajk̚", [116] = "wiajk̚", [117] = "əɨjŋ", [118] = "wəɨjŋ", [119] = "əɨjk̚", [120] = "wəɨjk̚", [121] = "iajŋ", [122] = "wiajŋ", [123] = "iajk̚", [124] = "wiajk̚", [125] = "ɛjŋ", [126] = "wɛjŋ", [127] = "ɛjk̚", [128] = "wɛjk̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "iŋ", [134] = "ik̚", [135] = "wik̚", [136] = "uw", [137] = "əw", [138] = "jiw", [139] = "im", [140] = "jim", [141] = "ip̚", [142] = "jip̚", [143] = "am", [144] = "ap̚", [145] = "ɨam", [146] = "uam", [147] = "ɨap̚", [148] = "uap̚", [149] = "aɨm", [150] = "aɨp̚", [151] = "əɨm", [152] = "əɨp̚", [153] = "iam", [154] = "jiam", [155] = "iap̚", [156] = "jiap̚", [157] = "ɛm", [158] = "ɛp̚", [159] = "əm", [160] = "əp̚" }, ["Wang"] = { [1] = "uŋ", [2] = "ĭuŋ", [3] = "uk̚", [4] = "ĭuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ĭwoŋ", [8] = "ĭwok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ǐe", [12] = "ǐwe", [13] = "ǐe", [14] = "ǐwe", [15] = "i", [16] = "wi", [17] = "i", [18] = "wi", [19] = "ĭə", [20] = "ĭəi", [21] = "ĭwəi", [22] = "ĭo", [23] = "u", [24] = "ĭu", [25] = "ɑi", [26] = "uɑi", [27] = "ĭɐi", [28] = "ĭwɐi", [29] = "æi", [30] = "wæi", [31] = "ai", [32] = "wai", [33] = "ɐi", [34] = "wɐi", [35] = "ĭɛi", [36] = "ĭwɛi", [37] = "ĭɛi", [38] = "ĭwɛi", [39] = "iei", [40] = "iwei", [41] = "ɒi", [42] = "uɒi", [43] = "ĭĕn", [44] = "ǐĕn", [45] = "ǐĕn", [46] = "ĭen", [47] = "ĭuĕn", [48] = "ĭĕt̚", [49] = "ĭĕt̚", [50] = "ĭĕt̚", [51] = "ĭet̚", [52] = "ĭuĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "ĭən", [58] = "ĭət̚", [59] = "ĭuən", [60] = "ĭuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ĭɐn", [66] = "ĭwɐn", [67] = "ĭɐt̚", [68] = "ĭwɐt̚", [69] = "an", [70] = "wan", [71] = "at̚", [72] = "wat̚", [73] = "æn", [74] = "wæn", [75] = "æt̚", [76] = "wæt̚", [77] = "ĭɛn", [78] = "ĭwɛn", [79] = "ĭɛn", [80] = "ĭwɛn", [81] = "ĭɛt̚", [82] = "ĭuɛt̚", [83] = "ĭɛt̚", [84] = "ĭuɛt̚", [85] = "ien", [86] = "iwen", [87] = "iet̚", [88] = "iwet̚", [89] = "ɑu", [90] = "au", [91] = "ĭɛu", [92] = "ĭɛu", [93] = "ieu", [94] = "ɑ", [95] = "uɑ", [96] = "ǐɑ", [97] = "ĭuɑ", [98] = "a", [99] = "wa", [100] = "ĭa", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "ĭaŋ", [106] = "ĭwaŋ", [107] = "ĭak̚", [108] = "ĭak̚", [109] = "ɐŋ", [110] = "wɐŋ", [111] = "ĭɐŋ", [112] = "ĭwɐŋ", [113] = "ɐk̚", [114] = "wɐk̚", [115] = "ĭɐk̚", [116] = "ĭwɐk̚", [117] = "æŋ", [118] = "wæŋ", [119] = "æk̚", [120] = "wæk̚", [121] = "ĭɛŋ", [122] = "ĭwɛŋ", [123] = "ĭɛk̚", [124] = "ĭwɛk̚", [125] = "ieŋ", [126] = "iweŋ", [127] = "iek̚", [128] = "iwek̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "ĭəŋ", [134] = "ĭək̚", [135] = "ĭwək̚", [136] = "ĭəu", [137] = "əu", [138] = "iəu", [139] = "ĭĕm", [140] = "ĭĕm", [141] = "ĭĕp̚", [142] = "ĭĕp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "ĭɐm", [146] = "ĭwɐm", [147] = "ĭɐp̚", [148] = "ĭwɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "ĭɛm", [154] = "ĭɛm", [155] = "ĭɛp̚", [156] = "ĭɛp̚", [157] = "iem", [158] = "iep̚", [159] = "ɒm", [160] = "ɒp̚" }, ["Shao"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "oŋ", [6] = "ok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "jɛ", [12] = "juɛ", [13] = "iɛ", [14] = "iuɛ", [15] = "jɪ", [16] = "juɪ", [17] = "iɪ", [18] = "iuɪ", [19] = "ie", [20] = "iəi", [21] = "iuəi", [22] = "iɔ", [23] = "o", [24] = "io", [25] = "ɑi", [26] = "uɑi", [27] = "iɐi", [28] = "iuɐi", [29] = "ai", [30] = "uai", [31] = "æi", [32] = "uæi", [33] = "ɐi", [34] = "uɐi", [35] = "jæi", [36] = "iuæi", [37] = "iæi", [38] = "iuæi", [39] = "ɛi", [40] = "uɛi", [41] = "ɒi", [42] = "uɒi", [43] = "jen", [44] = "ien", [45] = "iuen", [46] = "ien", [47] = "juen", [48] = "jet̚", [49] = "iet̚", [50] = "iuet̚", [51] = "iet̚", [52] = "juet̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "iən", [58] = "iət̚", [59] = "iuən", [60] = "iuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "iɐn", [66] = "iuɐn", [67] = "iɐt̚", [68] = "iuɐt̚", [69] = "ɐn", [70] = "uɐn", [71] = "ɐt̚", [72] = "uɐt̚", [73] = "æn", [74] = "uæn", [75] = "æt̚", [76] = "uæt̚", [77] = "jæn", [78] = "juæn", [79] = "iæn", [80] = "iuæn", [81] = "jæt̚", [82] = "juæt̚", [83] = "iæt̚", [84] = "iuæt̚", [85] = "ɛn", [86] = "uɛn", [87] = "ɛt̚", [88] = "uɛt̚", [89] = "ɑu", [90] = "au", [91] = "jæu", [92] = "iæu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "iuɑ", [98] = "a", [99] = "ua", [100] = "ia", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "iɑŋ", [106] = "iuɑŋ", [107] = "iɑk̚", [108] = "iuɑk̚", [109] = "aŋ", [110] = "uaŋ", [111] = "iaŋ", [112] = "iuaŋ", [113] = "ak̚", [114] = "uak̚", [115] = "iak̚", [116] = "iuak̚", [117] = "ɐŋ", [118] = "uɐŋ", [119] = "ɐk̚", [120] = "uɐk̚", [121] = "iæŋ", [122] = "iuæŋ", [123] = "iæk̚", [124] = "iuæk̚", [125] = "ɛŋ", [126] = "uɛŋ", [127] = "ɛk̚", [128] = "uɛk̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "ieŋ", [134] = "iek̚", [135] = "iuek̚", [136] = "iəu", [137] = "əu", [138] = "ieu", [139] = "jem", [140] = "iem", [141] = "jep̚", [142] = "iep̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iɐp̚", [148] = "iɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "jæm", [154] = "iæm", [155] = "jæp̚", [156] = "iæp̚", [157] = "ɛm", [158] = "ɛp̚", [159] = "ɒm", [160] = "ɒp̚" }, } data.final_deng = { ["東一"] = 1, ["東三"] = 2, ["屋一"] = 3, ["屋三"] = 4, ["宵三"] = 91, ["宵重鈕四"] = 91, ["宵重鈕三"] = 92, ["侵三"] = 139, ["侵重鈕三"] = 140, ["緝三"] = 141, ["緝重鈕三"] = 142, ["葉三"] = 155, ["葉重鈕三"] = 156, ["鹽三"] = 153, ["鹽重鈕三"] = 154, ["真三"] = 43, ["真重鈕四"] = 43, ["眞三"] = 43, ["眞重鈕四"] = 43, ["質三"] = 48, ["質重鈕四"] = 48 } data.division = { ["一"] = 'I', ["二"] = 'II', ["三"] = 'III', ["四"] = 'IV', ["重鈕三"]="''Chongniu'' III", ["重鈕四"]="''Chongniu'' IV" } data.open_closed = { ["開"] = "Open", ["合"] = "Closed" } data.tonality = { ["上"] = "Rising (X)", ["去"] = "Departing (H)", ["平"] = "Level (Ø)", ["入"] = "Checked (Ø)" } data.tone_symbol = { ["平"] = "", ["上"] = "X", ["去"] = "H", ["入"] = "" } data.tone_number = { ["平"] = 1, ["上"] = 2, ["去"] = 3, ["入"] = 4 } data.final_openness = { ["真開"] = 44, ["真合"] = 45, ["眞開"] = 44, ["眞合"] = 45, ["質開"] = 49, ["質合"] = 50 } data.final_type_1 = "[微泰廢夬佳皆齊元月刪黠山鎋先屑唐鐸陽藥耕麥清昔青錫登德職]" data.final_type_2 = "[東屋宵侵緝葉鹽]" data.final_type_3 = "[支脂祭戈仙薛麻陌庚]" data.final_type_4 = "[真眞質]" data.final_type_5 = "[冬沃鍾燭江覺之魚模虞咍灰臻諄櫛術痕麧魂沒欣迄文物寒桓曷末豪肴蕭歌蒸尤侯幽談盍嚴凡業乏銜狎咸洽添怗帖覃合]" data.colour_1 = "var(--wikt-palette-lightblue, #d9ebff)" data.colour_2 = "var(--wikt-palette-cyan, #eaffff)" data.colour_3 = "var(--wikt-palette-paleblue, #f8f9fa)" return data dufy0biu7k3wbaixd44dip92a4xi8q9 Modul:ltc-pron/baxter 828 160436 628950 2024-11-06T17:20:39Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local match = m_string_utils.match local baxter_initial = { [1] = "p", [2] = "ph", [3] = "b", [4] = "m", [5] = "t", [6] = "th", [7] = "d", [8] = "n", [9] = "tr", [10] = "trh", [11] = "dr", [12] = "nr", [13] = "ts", [14] = "tsh", [15] = "dz", [16] = "s", [17] = "z", [18] = "tsr", [19] = "tsrh", [20] = "dzr", [21] = "sr", [22] = "zr", [...“ yozuvi orqali yangi sahifa yaratildi 628950 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local match = m_string_utils.match local baxter_initial = { [1] = "p", [2] = "ph", [3] = "b", [4] = "m", [5] = "t", [6] = "th", [7] = "d", [8] = "n", [9] = "tr", [10] = "trh", [11] = "dr", [12] = "nr", [13] = "ts", [14] = "tsh", [15] = "dz", [16] = "s", [17] = "z", [18] = "tsr", [19] = "tsrh", [20] = "dzr", [21] = "sr", [22] = "zr", [23] = "tsy", [24] = "tsyh", [25] = "dzy", [26] = "sy", [27] = "zy", [28] = "k", [29] = "kh", [30] = "g", [31] = "ng", [32] = "x", [33] = "h", [34] = "ʔ", [35] = "h", [36] = "y", [37] = "l", [38] = "ny" } local baxter_final = { [1] = "uwng", [2] = "juwng", [3] = "uwk", [4] = "juwk", [5] = "owng", [6] = "owk", [7] = "jowng", [8] = "jowk", [9] = "æwng", [10] = "æwk", [11] = "jie", [12] = "jwie", [13] = "je", [14] = "jwe", [15] = "jij", [16] = "jwij", [17] = "ij", [18] = "wij", [19] = "i", [20] = "jɨj", [21] = "jwɨj", [22] = "jo", [23] = "u", [24] = "ju", [25] = "aj", [26] = "waj", [27] = "joj", [28] = "jwoj", [29] = "æj", [30] = "wæj", [31] = "ɛɨ", [32] = "wɛɨ", [33] = "ɛj", [34] = "wɛj", [35] = "jiej", [36] = "jwiej", [37] = "jej", [38] = "jwej", [39] = "ej", [40] = "wej", [41] = "oj", [42] = "woj", [43] = "jin", [44] = "in", [45] = "win", [46] = "in", [47] = "jwin", [48] = "jit", [49] = "it", [50] = "wit", [51] = "it", [52] = "jwit", [53] = "on", [54] = "ot", [55] = "won", [56] = "wot", [57] = "jɨn", [58] = "jɨt", [59] = "jun", [60] = "jut", [61] = "an", [62] = "wan", [63] = "at", [64] = "wat", [65] = "jon", [66] = "jwon", [67] = "jot", [68] = "jwot", [69] = "æn", [70] = "wæn", [71] = "æt", [72] = "wæt", [73] = "ɛn", [74] = "wɛn", [75] = "ɛt", [76] = "wɛt", [77] = "jien", [78] = "jwien", [79] = "jen", [80] = "jwen", [81] = "jiet", [82] = "jwiet", [83] = "jet", [84] = "jwet", [85] = "en", [86] = "wen", [87] = "et", [88] = "wet", [89] = "aw", [90] = "æw", [91] = "jiew", [92] = "jew", [93] = "ew", [94] = "a", [95] = "wa", [96] = "ja", [97] = "jwa", [98] = "æ", [99] = "wæ", [100] = "jæ", [101] = "ang", [102] = "wang", [103] = "ak", [104] = "wak", [105] = "jang", [106] = "jwang", [107] = "jak", [108] = "jwak", [109] = "æng", [110] = "wæng", [111] = "jæng", [112] = "jwæng", [113] = "æk", [114] = "wæk", [115] = "jæk", [116] = "jwæk", [117] = "ɛng", [118] = "wɛng", [119] = "ɛk", [120] = "wɛk", [121] = "jieng", [122] = "jwieng", [123] = "jiek", [124] = "jwiek", [125] = "eng", [126] = "weng", [127] = "ek", [128] = "wek", [129] = "ong", [130] = "wong", [131] = "ok", [132] = "wok", [133] = "ing", [134] = "ik", [135] = "wik", [136] = "juw", [137] = "uw", [138] = "jiw", [139] = "jim", [140] = "im", [141] = "jip", [142] = "ip", [143] = "am", [144] = "ap", [145] = "jæm", [146] = "jom", [147] = "jæp", [148] = "jop", [149] = "æm", [150] = "æp", [151] = "ɛm", [152] = "ɛp", [153] = "jiem", [154] = "jem", [155] = "jiep", [156] = "jep", [157] = "em", [158] = "ep", [159] = "om", [160] = "op" } local reverse_drjowngX_nrjuwX = { [11] = "je", [12] = "jwe", [15] = "ij", [16] = "wij", [35] = "jej", [36] = "jwej", [43] = "in", [47] = "win", [48] = "it", [52] = "wit", [77] = "jen", [78] = "jwen", [81] = "jet", [82] = "jwet", [91] = "jew", [121] = "jeng", [122] = "jweng", [123] = "jek", [124] = "jwek", [138] = "iw", [139] = "im", [141] = "ip", [153] = "jem", [155] = "jep" } local function is_coronal(initial_type) return (initial_type >= 5 and initial_type <= 27) or (initial_type >= 36 and initial_type <= 38) end local function is_labial(initial_type) return (initial_type >= 1 and initial_type <= 4) end local function is_palatal(initial_type) return (initial_type >= 23 and initial_type <= 27) or (initial_type == 36) or (initial_type == 38) end function export.baxter_1992(initial_type, final_type, tone_label) local initial = baxter_initial[initial_type] local final = baxter_final[final_type] if is_coronal(initial_type) then final = reverse_drjowngX_nrjuwX[final_type] or final end if is_palatal(initial_type) then final = string.gsub(final, "^j", "") elseif is_labial(initial_type) then if (final_type ~= 42) and (final_type ~= 55) and (final_type ~= 56) then final = string.gsub(final, "^w", "") final = string.gsub(final, "^jw", "j") end end return initial .. final .. tone_label end local baxter_1992_to_2014_map = { {pattern = "ɛɨ", replace = "ɛ"}, {pattern = "ɛ", replace = "ea"}, {pattern = "æ", replace = "ae"}, {pattern = "ɨ", replace = "+"}, {pattern = "ʔ", replace = "'"}, } function export.baxter_2014(initial_type, final_type, tone_label) local output = export.baxter_1992(initial_type, final_type, tone_label) for _, item in ipairs(baxter_1992_to_2014_map) do output = output:gsub(item.pattern, item.replace) end return output end export.baxter = export.baxter_2014 export.baxter_initial = baxter_initial export.baxter_final = baxter_final return export acip4odrr9ecnkxoq18v90o2mkezwx4 Modul:zh/data/ltc-pron/凡 828 160437 628953 2024-11-06T17:23:35Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „return { "並凡三合 平符咸" }“ yozuvi orqali yangi sahifa yaratildi 628953 Scribunto text/plain return { "並凡三合 平符咸" } kjyz588io4ziahdqeh0kf3hrmqxtrky Modul:ar-nominals 828 160438 628965 2024-11-06T17:38:54Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „-- Author: Benwing, based on early version by CodeCat. --[[ FIXME: Nouns/adjectives to create to exemplify complex declensions: -- riḍan (رِضًا or رِضًى) --]] local m_utilities = require("Module:utilities") local m_links = require("Module:links") local ar_utilities = require("Module:ar-utilities") local lang = require("Module:tili").getByCode("ar") local u = require("Module:string/char") local rfind = mw.ustring.find local rsubn = mw...“ yozuvi orqali yangi sahifa yaratildi 628965 Scribunto text/plain -- Author: Benwing, based on early version by CodeCat. --[[ FIXME: Nouns/adjectives to create to exemplify complex declensions: -- riḍan (رِضًا or رِضًى) --]] local m_utilities = require("Module:utilities") local m_links = require("Module:links") local ar_utilities = require("Module:ar-utilities") local lang = require("Module:tili").getByCode("ar") local u = require("Module:string/char") local rfind = mw.ustring.find local rsubn = mw.ustring.gsub local rmatch = mw.ustring.match local rsplit = mw.text.split -- This is used in place of a transliteration when no manual -- translit is specified and we're unable to automatically generate -- one (typically because some vowel diacritics are missing). local BOGUS_CHAR = u(0xFFFD) -- hamza variants local HAMZA = u(0x0621) -- hamza on the line (stand-alone hamza) = ء local HAMZA_ON_ALIF = u(0x0623) local HAMZA_ON_W = u(0x0624) local HAMZA_UNDER_ALIF = u(0x0625) local HAMZA_ON_Y = u(0x0626) local HAMZA_ANY = "[" .. HAMZA .. HAMZA_ON_ALIF .. HAMZA_UNDER_ALIF .. HAMZA_ON_W .. HAMZA_ON_Y .. "]" local HAMZA_PH = u(0xFFF0) -- hamza placeholder -- various letters local ALIF = u(0x0627) -- ʾalif = ا local AMAQ = u(0x0649) -- ʾalif maqṣūra = ى local AMAD = u(0x0622) -- ʾalif madda = آ local TAM = u(0x0629) -- tāʾ marbūṭa = ة local T = u(0x062A) -- tāʾ = ت local HYPHEN = u(0x0640) local N = u(0x0646) -- nūn = ن local W = u(0x0648) -- wāw = و local Y = u(0x064A) -- yā = ي -- diacritics local A = u(0x064E) -- fatḥa local AN = u(0x064B) -- fatḥatān (fatḥa tanwīn) local U = u(0x064F) -- ḍamma local UN = u(0x064C) -- ḍammatān (ḍamma tanwīn) local I = u(0x0650) -- kasra local IN = u(0x064D) -- kasratān (kasra tanwīn) local SK = u(0x0652) -- sukūn = no vowel local SH = u(0x0651) -- šadda = gemination of consonants local DAGGER_ALIF = u(0x0670) local DIACRITIC_ANY_BUT_SH = "[" .. A .. I .. U .. AN .. IN .. UN .. SK .. DAGGER_ALIF .. "]" -- common combinations local NA = N .. A local NI = N .. I local AH = A .. TAM local AT = A .. T local AA = A .. ALIF local AAMAQ = A .. AMAQ local AAH = AA .. TAM local AAT = AA .. T local II = I .. Y local IIN = II .. N local IINA = II .. NA local IY = II local UU = U .. W local UUN = UU .. N local UUNA = UU .. NA local AY = A .. Y local AW = A .. W local AYSK = AY .. SK local AWSK = AW .. SK local AAN = AA .. N local AANI = AA .. NI local AYN = AYSK .. N local AYNI = AYSK .. NI local AWN = AWSK .. N local AWNA = AWSK .. NA local AYNA = AYSK .. NA local AYAAT = AY .. AAT local UNU = "[" .. UN .. U .. "]" -- optional diacritics/letters local AOPT = A .. "?" local AOPTA = A .. "?" .. ALIF local IOPT = I .. "?" local UOPT = U .. "?" local UNOPT = UN .. "?" local UNUOPT = UNU .. "?" local SKOPT = SK .. "?" -- lists of consonants -- exclude tāʾ marbūṭa because we don't want it treated as a consonant -- in patterns like أَفْعَل local consonants_needing_vowels_no_tam = "بتثجحخدذرزسشصضطظعغفقكلمنهپچڤگڨڧأإؤئء" -- consonants on the right side; includes alif madda local rconsonants_no_tam = consonants_needing_vowels_no_tam .. "ويآ" -- consonants on the left side; does not include alif madda local lconsonants_no_tam = consonants_needing_vowels_no_tam .. "وي" local CONS = "[" .. lconsonants_no_tam .. "]" local CONSPAR = "([" .. lconsonants_no_tam .. "])" local LRM = u(0x200E) --left-to-right mark -- First syllable or so of elative/color-defect adjective local ELCD_START = "^" .. HAMZA_ON_ALIF .. AOPT .. CONSPAR local export = {} -------------------- -- Utility functions -------------------- function ine(x) -- If Not Empty if x == nil then return nil elseif rfind(x, '^".*"$') then local ret = rmatch(x, '^"(.*)"$') return ret elseif rfind(x, "^'.*'$") then local ret = rmatch(x, "^'(.*)'$") return ret elseif x == "" then return nil else return x end end -- Compare two items, recursively comparing arrays. -- FIXME, doesn't work for tables that aren't arrays. function equals(x, y) if type(x) == "table" and type(y) == "table" then if #x ~= #y then return false end for key, value in ipairs(x) do if not equals(value, y[key]) then return false end end return true end return x == y end -- true if array contains item function contains(tab, item) for _, value in pairs(tab) do if equals(value, item) then return true end end return false end -- append to array if element not already present function insert_if_not(tab, item) if not contains(tab, item) then table.insert(tab, item) end end -- version of rsubn() that discards all but the first return value function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end -- version of rsub() that asserts that a match occurred function assert_rsub(term, foo, bar) local retval, numsub = rsubn(term, foo, bar) assert(numsub > 0) return retval end function make_link(arabic) --return m_links.full_link(nil, arabic, lang, nil, "term", nil, {tr = "-"}, false) return m_links.full_link({lang = lang, alt = arabic}, "term") end function track(page) require("Module:debug").track("ar-nominals/" .. page) return true end ------------------------------------- -- Functions for building inflections ------------------------------------- -- Functions that do the actual inflecting by creating the forms of a basic term. local inflections = {} local max_mods = 9 -- maximum number of modifiers local mod_list = {"mod"} -- list of "mod", "mod2", "mod3", ... for i=2,max_mods do table.insert(mod_list, "mod" .. i) end -- Create and return the 'data' structure that will hold all of the -- generated declensional forms, as well as other ancillary information -- such as the possible numbers, genders and cases the the actual numbers -- and states to store (in 'data.numbers' and 'data.states' respectively). function init_data() -- FORMS contains a table of forms for each inflectional category, -- e.g. "nom_sg_ind" for nouns or "nom_m_sg_ind" for adjectives. The value -- of an entry is an array of alternatives (e.g. different plurals), where -- each alternative is either a string of the form "ARABIC" or -- "ARABIC/TRANSLIT", or an array of such strings (this is used for -- alternative spellings involving different hamza seats, -- e.g. مُبْتَدَؤُون or مُبْتَدَأُون). Alternative hamza spellings are separated -- in display by an "inner separator" (/), while alternatives on -- the level of different plurals are separated by an "outer separator" (;). return {forms = {}, title = nil, categories = {}, allgenders = {"m", "f"}, allstates = {"ind", "def", "con"}, allnumbers = {"sg", "du", "pl"}, states = {}, -- initialized later numbers = {}, -- initialized later engnumbers = {sg="singular", du="dual", pl="plural", coll="collective", sing="singulative", pauc="paucal"}, engnumberscap = {sg="Singular", du="Dual", pl="Plural", coll="Collective", sing="Singulative", pauc="Paucal (3-10)"}, allcases = {"nom", "acc", "gen", "inf"}, allcases_with_lemma = {"nom", "acc", "gen", "inf", "lemma"}, -- index into endings array indicating correct ending for given -- combination of state and case statecases = { ind = {nom = 1, acc = 2, gen = 3, inf = 10, lemma = 13}, def = {nom = 4, acc = 5, gen = 6, inf = 11, lemma = 14}, -- used for a definite adjective modifying a construct-state noun defcon = {nom = 4, acc = 5, gen = 6, inf = 11, lemma = 14}, con = {nom = 7, acc = 8, gen = 9, inf = 12, lemma = 15}, }, } end -- Initialize and return ARGS, ORIGARGS and DATA (see init_data()). -- ARGS is a table of user-supplied arguments, massaged from the original -- arguments by converting empty-string arguments to nil and appending -- translit arguments to their base arguments with a separating slash. -- ORIGARGS is the original table of arguments. function init(origargs) -- Massage arguments by converting empty arguments to nil, and -- "" or '' arguments to empty. local args = {} for k, v in pairs(origargs) do args[k] = ine(v) end -- Further massage arguments by appending translit arguments to the -- corresponding base arguments, with a slash separator, as is expected -- in the rest of the code. -- -- FIXME: We should consider separating translit and base arguments by the -- separators ; , | (used in overrides; see handle_lemma_and_overrides()) -- and matching up individual parts, to allow separate translit arguments -- to be specified for overrides. But maybe not; the point of allowing -- separate translit arguments is for compatibility with headword -- templates such as "ar-noun" and "ar-adj", and those templates don't -- handle override arguments. local function dotr(arg, argtr) if not args[arg] then error("Argument '" .. argtr .."' specified but not corresponding base argument '" .. arg .. "'") end args[arg] = args[arg] .. "/" .. args[argtr] end -- By convention, corresponding to arg 1 is tr; corresponding to -- head2, head3, ... is tr2, tr3, ...; corresponding to -- modhead2, modhead3, ... is modtr2, modtr3, ...; corresponding to -- modNhead2, modNhead3, ... is modNtr2, modNtr3, ..; corresponding to -- all other arguments FOO, FOO2, ... is FOOtr, FOO2tr, ... for k, v in pairs(args) do if k == "tr" then dotr(1, "tr") elseif rfind(k, "tr[0-9]+$") then dotr(assert_rsub(k, "tr([0-9]+)$", "head%1"), k) elseif rfind(k, "tr$") then dotr(assert_rsub(k, "tr$", ""), k) end end -- Construct data. local data = init_data() return args, origargs, data end -- Parse the user-specified state spec and other related arguments. The -- user can specify, using idafaN=, how modifiers are related to previous -- words. The user can also manually specify which states are to appear; -- whether to omit the definite article in the definite state; and -- how/whether to restrict modifiers to a particular state, case or number. -- Normally the modN_* parameters and basestate= do not need to be set -- directly; instead, use idafaN=. It may be necessary to explicitly -- specify state= in the presence of proper nouns or definite-only -- adjectival expressions. NOTE: At the time this function is called, -- data.numbers has not yet been initialized. function parse_state_etc_spec(data, args) local function check(arg, dataval, allvalues) if args[arg] then if not contains(allvalues, args[arg]) then error("For " .. arg .. "=, value '" .. args[arg] .. "' should be one of " .. table.concat(allvalues, ", ")) end data[dataval] = args[arg] end end local function check_boolean(arg, dataval) check(arg, dataval, {"yes", "no"}) if data[dataval] == "yes" then data[dataval] = true elseif data[dataval] == "no" then data[dataval] = false end end -- Make sure no holes in mod values for i=1,(#mod_list)-1 do if args[mod_list[i+1]] and not args[mod_list[i]] then error("Hole in modifier arguments -- " .. mod_list[i+1] .. " present but not " .. mod_list[i]) end end -- FIXME! Remove this once we're sure there are no instances of mod2 -- that haven't been converted to modhead2. if args["mod2"] then track("mod2") end -- Set default value; may be overridden e.g. by arg["state"] or -- by idafaN=. data.states = data.allstates -- List of pairs of idafaN/modN parameters local idafa_mod_list = {{"idafa", "mod"}} for i=2,max_mods do table.insert(idafa_mod_list, {"idafa" .. i, "mod" .. i}) end -- True if the value of an |idafa= param is a valid adjectival modifier -- value. local function valid_adjectival_idafaval(idafaval) return idafaval == "adj" or idafaval == "adj-base" or idafaval == "adj-mod" or rfind(idafaval, "^adj%-mod[0-9]+$") end -- Extract the referent (base or modifier) of an adjectival |idafa= param. -- Assumes the value is valid. local function adjectival_idafaval_referent(idafaval) if idafaval == "adj" then return "base" end return assert_rsub(idafaval, "^adj%-", "") end -- Convert a base/mod spec to an index: 0=base, 1=mod, 2=mod2, etc. local function basemod_to_index(basemod) if basemod == "base" then return 0 end if basemod == "mod" then return 1 end return tonumber(assert_rsub(basemod, "^mod", "")) end -- Recognize idafa spec and handle it. -- We do the following: -- (1) Check that if idafaN= is given, then modN= is also given. -- (2) Check that adjectival modifiers aren't followed by idafa modifiers. -- (3) Check that adjectival modifiers are modifying the base or an -- ʾidāfa modifier, not another adjectival modifier. -- (4) Support idafa values "adj-base", "adj-mod", "adj-mod2", "adj" -- (="adj-base") etc. and check that we're referring to an earlier -- word. -- (5) For ʾidāfa modifiers, set basestate=con, set modN_case=gen, -- set modN_idafa=true, and set modN_number to the number specified -- in the parameter value (e.g. 'sg' or 'def-pl'); and if the -- parameter value specifies a state (e.g. 'def' or 'ind-du'), -- set modN_state= to this value, and if this is the last ʾidāfa -- modifier, also set state= to this value; if this is not the last -- ʾidāfa modifier, set modN_state=con and disallow a state to be -- specified in the parameter value. -- (6) For adjectival modifiers of the base, do nothing. -- (7) For adjectival modifiers of ʾidāfa modifiers, set modN_case=gen; -- set modN_idafa=false; and set modN_number=, modN_numgen= and -- modN_state= to match the values of the idafa modifier. -- error checking and find last ʾidāfa modifier local last_is_idafa = true local last_idafa_mod = "base" for _, idafa_mod in ipairs(idafa_mod_list) do local idafaparam = idafa_mod[1] local mod = idafa_mod[2] local idafaval = args[idafaparam] if idafaval then local paramval = idafaparam .. "=" .. idafaval if not args[mod] then error("'" .. idafaparam .. "' parameter without corresponding '" .. mod .. "' parameter") end if not valid_adjectival_idafaval(idafaval) then -- We're a construct (ʾidāfa) modifier if not last_is_idafa then error("ʾidāfa modifier " .. paramval .. " follows adjectival modifier") end last_idafa_mod = mod else last_is_idafa = false local adjref = adjectival_idafaval_referent(idafaval) if adjref ~= "base" then if basemod_to_index(adjref) >= basemod_to_index(mod) then error(paramval .. " can only refer to an earlier element") end local idafaref = assert_rsub(adjref, "^mod", "idafa") if not args[idafaref] then error(paramval .. " cannot refer to a missing modifier") elseif valid_adjectival_idafaval(args[idafaref]) then error(paramval .. " cannot refer to an adjectival modifier") end end end end end -- Now go through and set all the modN_ data values appropriately. for _, idafa_mod in ipairs(idafa_mod_list) do local idafaparam = idafa_mod[1] local mod = idafa_mod[2] local idafaval = args[idafaparam] if idafaval then local paramval = idafaparam .. "=" .. idafaval local bad_idafa = true if idafaval == "yes" then idafaval = "sg" end if idafaval == "ind-def" or contains(data.allstates, idafaval) then idafaval = idafaval .. "-sg" end if not idafaval then bad_idafa = false elseif valid_adjectival_idafaval(idafaval) then local adjref = adjectival_idafaval_referent(idafaval) if adjref ~= "base" then data[mod .. "_case"] = "gen" data[mod .. "_state"] = data[adjref .. "_state"] -- if agreement is with ind-def, make it def if data[mod .. "_state"] == "ind-def" then data[mod .. "_state"] = "def" end data[mod .. "_number"] = data[adjref .. "_number"] data[mod .. "_numgen"] = data[adjref .. "_numgen"] data[mod .. "_idafa"] = false end bad_idafa = false elseif contains(data.allnumbers, idafaval) then data.basestate = "con" data[mod .. "_case"] = "gen" data[mod .. "_number"] = idafaval data[mod .. "_idafa"] = true if mod ~= last_idafa_mod then data[mod .. "_state"] = "con" end bad_idafa = false elseif rfind(idafaval, "%-") then local state_num = rsplit(idafaval, "%-") -- Support ind-def as a possible value. We set modstate to -- ind-def, which will signal definite agreement with adjectival -- modifiers; then later on we change the value to ind. if #state_num == 3 and state_num[1] == "ind" and state_num[2] == "def" then state_num[1] = "ind-def" state_num[2] = state_num[3] table.remove(state_num) end if #state_num == 2 then local state = state_num[1] local num = state_num[2] if (state == "ind-def" or contains(data.allstates, state)) and contains(data.allnumbers, num) then if mod == last_idafa_mod then if state == "ind-def" then data.states = {"def"} else data.states = {state} end else error(paramval .. " cannot specify a state because it is not the last ʾidāfa modifier") end data.basestate = "con" data[mod .. "_case"] = "gen" data[mod .. "_state"] = state data[mod .. "_number"] = num data[mod .. "_idafa"] = true bad_idafa = false end end end if bad_idafa then error(paramval .. " should be one of yes, def, sg, def-sg, adj, adj-base, adj-mod, adj-mod2 or similar") end end end if args["state"] == "ind-def" then data.states = {"def"} data.basestate = "ind" elseif args["state"] then data.states = rsplit(args["state"], ",") for _, state in ipairs(data.states) do if not contains(data.allstates, state) then error("For state=, value '" .. state .. "' should be one of " .. table.concat(data.allstates, ", ")) end end end -- Now process explicit settings, so that they can override the -- settings based on idafaN=. check("basestate", "basestate", data.allstates) check_boolean("noirreg", "noirreg") check_boolean("omitarticle", "omitarticle") data.prefix = args.prefix for _, mod in ipairs(mod_list) do check(mod .. "state", mod .. "_state", data.allstates) check(mod .. "case", mod .. "_case", data.allcases) check(mod .. "number", mod .. "_number", data.allnumgens) check(mod .. "numgen", mod .. "_numgen", data.allnumgens) check_boolean(mod .. "idafa", mod .. "_idafa") check_boolean(mod .. "omitarticle", mod .. "_omitarticle") data[mod .. "_prefix"] = args[mod .. "prefix"] end -- Make sure modN_numgen is initialized, to modN_number if necessary. -- This simplifies logic in certain places, e.g. call_inflections(). -- Also convert ind-def to ind. for _, mod in ipairs(mod_list) do data[mod .. "_numgen"] = data[mod .. "_numgen"] or data[mod .. "_number"] if data[mod .. "_state"] == "ind-def" then data[mod.. "_state"] = "ind" end end end -- Parse the user-specified number spec. The user can manually specify which -- numbers are to appear. Return true if |number= was specified. function parse_number_spec(data, args) if args["number"] then data.numbers = rsplit(args["number"], ",") for _, num in ipairs(data.numbers) do if not contains(data.allnumbers, num) then error("For number=, value '" .. num .. "' should be one of " .. table.concat(data.allnumbers, ", ")) end end return true else data.numbers = data.allnumbers return false end end -- Determine which numbers will appear using the logic for nouns. -- See comment just below. function determine_noun_numbers(data, args, pls) -- Can manually specify which numbers are to appear, and exactly those -- numbers will appear. Otherwise, if any plurals given, duals and plurals -- appear; else, only singular (on the assumption that the word is a proper -- noun or abstract noun that exists only in the singular); however, -- singular won't appear if "-" given for singular, and similarly for dual. if not parse_number_spec(data, args) then data.numbers = {} local sgarg1 = args[1] local duarg1 = args["d"] if sgarg1 ~= "-" then table.insert(data.numbers, "sg") end if #pls["base"] > 0 then -- Dual appears if either: explicit dual stem (not -) is given, or -- default dual is used and explicit singular stem (not -) is given. if (duarg1 and duarg1 ~= "-") or (not duarg1 and sgarg1 ~= "-") then table.insert(data.numbers, "du") end table.insert(data.numbers, "pl") elseif duarg1 and duarg1 ~= "-" then -- If explicit dual but no plural given, include it. Useful for -- dual tantum words. table.insert(data.numbers, "du") end end end -- For stem STEM, convert to stem-and-type format and insert stem and type -- into RESULTS, checking to make sure it's not already there. SGS is the -- list of singular items to base derived forms off of (masculine or feminine -- as appropriate), an array of length-two arrays of {COMBINED_STEM, TYPE} as -- returned by stem_and_type(); ISFEM is true if this is feminine gender; -- NUM is "sg", "du" or "pl". POS is the part of speech, generally "noun" or -- "adjective". function insert_stems(stem, results, sgs, isfem, num, pos) if stem == "-" then return end for _, sg in ipairs(sgs) do local combined_stem, ty = export.stem_and_type(stem, sg[1], sg[2], isfem, num, pos) insert_if_not(results, {combined_stem, ty}) end end -- Handle manually specified overrides of individual forms. Separate -- outer-level alternants with ; or , or the Arabic equivalents; separate -- inner-level alternants with | (we can't use / because it's already in -- use separating Arabic from translit). -- -- Also determine lemma and allow it to be overridden. -- Also allow POS (part of speech) to be overridden. function handle_lemma_and_overrides(data, args) local function handle_override(arg) if args[arg] then local ovval = {} local alts1 = rsplit(args[arg], "[;,؛،]") for _, alt1 in ipairs(alts1) do local alts2 = rsplit(alt1, "|") table.insert(ovval, alts2) end data.forms[arg] = ovval end end local function do_overrides(mod) for _, numgen in ipairs(data.allnumgens) do for _, state in ipairs(data.allstates) do for _, case in ipairs(data.allcases) do local arg = mod .. case .. "_" .. numgen .. "_" .. state handle_override(arg) if args[arg] and not data.noirreg then insert_cat(data, mod, numgen, "Arabic NOUNs with irregular SINGULAR", "SINGULAR of irregular NOUN") end end end end end do_overrides("") for _, mod in ipairs(mod_list) do do_overrides(mod .. "_") end local function get_lemma(mod) for _, numgen in ipairs(data.numgens()) do for _, state in ipairs(data.states) do local arg = mod .. "lemma_" .. numgen .. "_" .. state if data.forms[arg] and #data.forms[arg] > 0 then return data.forms[arg] end end end return nil end data.forms["lemma"] = get_lemma("") for _, mod in ipairs(mod_list) do data.forms[mod .. "_lemma"] = get_lemma(mod .. "_") end handle_override("lemma") for _, mod in ipairs(mod_list) do handle_override(mod .. "_lemma") end end -- Return the part of speech based on the part of speech contained in -- data.pos and MOD (either "", "mod_", "mod2_", etc., same as in -- do_gender_number_1()). If we're a modifier, don't use data.pos but -- instead choose based on whether modifier is adjectival or nominal -- (ʾiḍāfa). function get_pos(data, mod) local ismod = mod ~= "" if not ismod then return data.pos elseif data[mod .. "idafa"] then return "noun" else return "adjective" end end -- Find the stems associated with a particular gender/number combination. -- ARGS is the set of all arguments. ARGPREFS is an array of argument prefixes -- (e.g. "f" for the actual arguments "f", "f2", ..., for the feminine -- singular; we allow more than one to handle "cpl"). SGS is a -- "stem-type list" (see do_gender_number()), and is the list of stems to -- base derived forms off of (masculine or feminine as appropriate), an array -- of length-two arrays of {COMBINED_STEM, TYPE} as returned by -- stem_and_type(). DEFAULT, ISFEM and NUM are as in do_gender_number(). -- MOD is either "", "mod_", "mod2_", etc. depending if we're working on a -- base or modifier argument (in the latter case, basically if the argument -- begins with "mod"). function do_gender_number_1(data, args, argprefs, sgs, default, isfem, num, mod) local results = {} local function handle_stem(stem) insert_stems(stem, results, sgs, isfem, num, get_pos(data, mod)) end -- If no arguments specified, use the default instead. need_default = true for _, argpref in ipairs(argprefs) do if args[argpref] then need_default = false break end end if need_default then if not default then return results end handle_stem(default) return results end -- For explicitly specified arguments, make sure there's at least one -- stem to generate off of; otherwise specifying e.g. 'sing=- pauc=فُلَان' -- won't override paucal. if #sgs == 0 then sgs = {{"", ""}} end for _, argpref in ipairs(argprefs) do if args[argpref] then handle_stem(args[argpref]) end local i = 2 while args[argpref .. i] do handle_stem(args[argpref .. i]) i = i + 1 end end return results end -- For a given gender/number combination, parse and return the full set -- of stems for both base and modifier. The return value is a -- "stem specification", i.e. table with a "base" key for the base, a -- "mod" key for the first modifier (see below), a "mod2" key for the -- second modifier, etc. listing all stems for both the base and modifier(s). -- The value of each key is a "stem-type list", i.e. an array of stem-type -- pairs, where each element is a size-two array of {COMBINED_STEM, STEM_TYPE}. -- COMBINED_STEM is a stem with attached transliteration in the form -- STEM/TRANSLIT (where the transliteration is either manually specified in -- the stem argument, e.g. 'pl=لُورْدَات/lordāt', or auto-transliterated from -- the Arabic, with BOGUS_CHAR substituting for the transliteration if -- auto-translit fails). STEM_TYPE is the declension of the stem, either -- manually specified, e.g. 'بَبَّغَاء:di' for manually-specified diptote, or -- auto-detected (see stem_and_type() and detect_type()). -- -- DATA and ARGS are as in init(). ARGPREFS is an array of the prefixes for -- the argument(s) specifying the stem (and optional translit and declension -- type). For a given ARGPREF, we check ARGPREF, ARGPREF2, ARGPREF3, ... in -- turn for the base, and modARGPREF, modARGPREF2, modARGPREF3, ... in turn -- for the first modifier, and mod2ARGPREF, mod2ARGPREF2, mod2ARGPREF3, ... -- for the second modifier, etc. SGS is a stem specification (see above), -- giving the stems that are used to base derived forms off of (e.g. if a stem -- type "smp" appears in place of a stem, the sound masculine plural of the -- stems in SGS will be derived). DEFAULT is a single stem (i.e. a string) that -- is used when no stems were explicitly given by the user (typically either -- "f", "m", "d" or "p"), or nil for no default. ISFEM is true if we're -- accumulating stems for a feminine number/gender category, and NUM is the -- number (expected to be "sg", "du" or "pl") of the number/gender category -- we're accumulating stems for. -- -- About bases and modifiers: Note that e.g. in the noun phrase يَوْم الاِثْنَيْن -- the head noun يَوْم is the base and the noun الاِثْنَيْن is the modifier. -- In a noun phrase like البَحْر الأَبْيَض المُتَوَسِّط, there are two modifiers. -- Note that modifiers come in two varieties, adjectival modifiers and -- construct (ʾidāfa) modifiers. The first above noun phrase is an example -- of a noun phrase with a construct modifier, where the base is fixed in -- the construct state and the modifier is fixed in number and case -- (which is always genitive) and possibly in state. The second above noun -- phrase is an example of a noun phrase with two adjectival modifiers. -- A construct modifier is generally a noun, whereas an adjectival modifier -- is an adjective that usually agrees in state, number and case with the -- base noun. (Note that in the case of multiple modifiers, it is possible -- for e.g. the second modifier to be an adjectival modifier that agrees -- with the first, construct, modifier, in which case its case will be fixed -- to genitive, its number will be fixed to the same number as the first -- modifier and its state will vary or not depending on whether the first -- modifier's state varies. It is not possible in general to distinguish -- adjectival and construct modifiers by looking at the values of -- modN_state, modN_case or modN_number, since e.g. a third modifier could -- have all of them specified and be either kind. Thus we have modN_idafa, -- which is true for a construct modifier, false otherwise.) function do_gender_number(data, args, argprefs, sgs, default, isfem, num) local results = do_gender_number_1(data, args, argprefs, sgs["base"], default, isfem, num, "") basemodtable = {base=results} for _, mod in ipairs(mod_list) do local modn_argprefs = {} for _, argpref in ipairs(argprefs) do table.insert(modn_argprefs, mod .. argpref) end local modn_results = do_gender_number_1(data, args, modn_argprefs, sgs[mod] or {}, default, isfem, num, mod .. "_") basemodtable[mod] = modn_results end return basemodtable end -- Generate inflections for the given combined stem and type, for MOD -- (either "" if we're working on the base or "mod_", "mod2_", etc. if we're -- working on a modifier) and NUMGEN (number or number-gender combination, -- of the sort that forms part of the keys in DATA.FORMS). function call_inflection(combined_stem, ty, data, mod, numgen) if ty == "-" then return end if not inflections[ty] then error("Unknown inflection type '" .. ty .. "'") end local ar, tr = split_arabic_tr(combined_stem) inflections[ty](ar, tr, data, mod, numgen) end -- Generate inflections for the stems of a given number/gender combination -- and for either the base or the modifier. STEMTYPES is a stem-type list -- (see do_gender_number()), listing all the stems and corresponding -- declension types. MOD is either "", "mod_", "mod2_", etc. depending on -- whether we're working on the base or a modifier. NUMGEN is the number or -- number-gender combination we're working on, of the sort that forms part -- of the keys in DATA.FORMS, e.g. "sg" or "m_sg". function call_inflections(stemtypes, data, mod, numgen) local mod_with_modnumgen = mod ~= "" and data[mod .. "numgen"] -- If modN_numgen= is given, do nothing if NUMGEN isn't the same if mod_with_modnumgen and data[mod .. "numgen"] ~= numgen then return end -- always call inflection() if mod_with_modnumgen since it may affect -- other numbers (cf. يَوْم الاِثْنَيْن) if mod_with_modnumgen or contains(data.numbers, rsub(numgen, "^.*_", "")) then for _, stemtype in ipairs(stemtypes) do call_inflection(stemtype[1], stemtype[2], data, mod, numgen) end end end -- Generate the entire set of inflections for a noun or adjective. -- Also handle any manually-specified part of speech and any manual -- inflection overrides. The value of INFLECTIONS is an array of stem -- specifications, one per number, where each element is a size-two -- array of a stem specification (containing the set of stems and -- corresponding declension types for the base and any modifiers; -- see do_gender_number()) and a NUMGEN string, i.e. a string identifying -- the number or number/gender in question (e.g. "sg", "du", "pl", -- "m_sg", "f_pl", etc.). function do_inflections_and_overrides(data, args, inflections) -- do this before generating inflections so POS change is reflected in -- categories if args["pos"] then data.pos = args["pos"] end for _, inflection in ipairs(inflections) do call_inflections(inflection[1]["base"] or {}, data, "", inflection[2]) for _, mod in ipairs(mod_list) do call_inflections(inflection[1][mod] or {}, data, mod .. "_", inflection[2]) end end handle_lemma_and_overrides(data, args) end -- Helper function for get_heads(). Parses the stems for either the -- base or the modifier (see do_gender_number()). ARG1 is the argument -- for the first stem and ARGN is the prefix of the arguments for the -- remaining stems. For example, for the singular base, ARG1=1 and -- ARGN="head"; for the first singular modifier, ARG1="mod" and -- ARGN="modhead"; for the plural base, ARG1=ARGN="pl". The arguments -- other than the first are numbered 2, 3, ..., which is appended to -- ARGN. MOD is either "", "mod_", "mod2_", etc. depending if we're -- working on a base or modifier argument. The returned value is an -- array of stems, where each element is a size-two array of -- {COMBINED_STEM, STEM_TYPE}. See do_gender_number(). function get_heads_1(data, args, arg1, argn, mod) if not args[arg1] then return {} end local heads if args[arg1] == "-" then heads = {{"", "-"}} else heads = {} insert_stems(args[arg1], heads, {{args[arg1], ""}}, false, "sg", get_pos(data, mod)) end local i = 2 while args[argn .. i] do local arg = args[argn .. i] insert_stems(arg, heads, {{arg, ""}}, false, "sg", get_pos(data, mod)) i = i + 1 end return heads end -- Very similar to do_gender_number(), and returns the same type of -- structure, but works specifically for the stems of the head (the -- most basic gender/number combiation, e.g. singular for nouns, -- masculine singular for adjectives and gendered nouns, collective -- for collective nouns, etc.), including both base and modifier. -- See do_gender_number(). Note that the actual return value is -- two items, the first of which is the same type of structure -- returned by do_gender_number() and the second of which is a boolean -- indicating whether we were called from within a template documentation -- page (in which case no user-specified arguments exist and we -- substitute sample ones). The reason for this boolean is to indicate -- whether sample arguments need to be substituted for other numbers -- as well. function get_heads(data, args, headtype) if not args[1] and mw.title.getCurrentTitle().nsText == "Template" then return {base={{"{{{1}}}", "tri"}}}, true end if not args[1] then error("Parameter 1 (" .. headtype .. " stem) may not be empty.") end local base = get_heads_1(data, args, 1, "head", "") basemodtable = {base=base} for _, mod in ipairs(mod_list) do local modn = get_heads_1(data, args, mod, mod .. "head", mod .. "_") basemodtable[mod] = modn end return basemodtable, false end -- The main entry point for noun tables. function export.show_noun(frame) local args, origargs, data = init(frame:getParent().args) data.pos = "noun" data.numgens = function() return data.numbers end data.allnumgens = data.allnumbers local sgs, is_template = get_heads(data, args, "singular") local pls = is_template and {base={{"{{{pl}}}", "tri"}}} or do_gender_number(data, args, {"pl", "cpl"}, sgs, nil, false, "pl") -- always do dual so cases like يَوْم الاِثْنَيْن work -- a singular with -- a dual modifier, where data.number refers only the singular -- but we need to go ahead and compute the dual so it parses the -- "modd" modifier dual argument. When the modifier dual argument -- is parsed, it will store the resulting dual declension for اِثْنَيْن -- in the modifier slot for all numbers, including specifically -- the singular. local dus = do_gender_number(data, args, {"d"}, sgs, "d", false, "du") parse_state_etc_spec(data, args) determine_noun_numbers(data, args, pls) do_inflections_and_overrides(data, args, {{sgs, "sg"}, {dus, "du"}, {pls, "pl"}}) -- Make the table return make_noun_table(data) end function any_feminine(data, stem_spec) for basemod, stemtypelist in pairs(stem_spec) do -- Only check modifiers if modN_numgen= not given. If not given, the -- modifier needs to be declined for all numgens; else only for the -- given numgen, which should be explicitly specified. if not (basemod ~= "base" and data[basemod .. "_numgen"]) then for _, stemtype in ipairs(stemtypelist) do if rfind(stemtype[1], TAM .. UNUOPT .. "/") then return true end end end end return false end function all_feminine(data, stem_spec) for basemod, stemtypelist in pairs(stem_spec) do -- Only check modifiers if modN_numgen= not given. If not given, the -- modifier needs to be declined for all numgens; else only for the -- given numgen, which should be explicitly specified. if not (basemod ~= "base" and data[basemod .. "_numgen"]) then for _, stemtype in ipairs(stemtypelist) do if not rfind(stemtype[1], TAM .. UNUOPT .. "/") then return false end end end end return true end -- The main entry point for collective noun tables. function export.show_coll_noun(frame) local args, origargs, data = init(frame:getParent().args) data.pos = "noun" data.allnumbers = {"coll", "sing", "du", "pauc", "pl"} data.engnumberscap["pl"] = "Plural of variety" data.numgens = function() return data.numbers end data.allnumgens = data.allnumbers local colls, is_template = get_heads(data, args, "collective") local pls = is_template and {base={{"{{{pl}}}", "tri"}}} or do_gender_number(data, args, {"pl", "cpl"}, colls, nil, false, "pl") parse_state_etc_spec(data, args) -- If collective noun is already feminine in form, don't try to -- form a feminine singulative local collfem = any_feminine(data, colls) local sings = do_gender_number(data, args, {"sing"}, colls, not already_feminine and "f" or nil, true, "sg") local singfem = all_feminine(data, sings) local dus = do_gender_number(data, args, {"d"}, sings, "d", singfem, "du") local paucs = do_gender_number(data, args, {"pauc"}, sings, "paucp", singfem, "pl") -- Can manually specify which numbers are to appear, and exactly those -- numbers will appear. Otherwise, if any plurals given, plurals appear, -- and if singulative given, dual and paucal appear. if not parse_number_spec(data, args) then data.numbers = {} if args[1] ~= "-" then table.insert(data.numbers, "coll") end if #sings["base"] > 0 then table.insert(data.numbers, "sing") end if #dus["base"] > 0 then table.insert(data.numbers, "du") end if #paucs["base"] > 0 then table.insert(data.numbers, "pauc") end if #pls["base"] > 0 then table.insert(data.numbers, "pl") end end -- Generate the collective, singulative, dual, paucal and plural forms do_inflections_and_overrides(data, args, {{colls, "coll"}, {sings, "sing"}, {dus, "du"}, {paucs, "pauc"}, {pls, "pl"}}) -- Make the table return make_noun_table(data) end -- The main entry point for singulative noun tables. function export.show_sing_noun(frame) local args, origargs, data = init(frame:getParent().args) data.pos = "noun" data.allnumbers = {"sing", "coll", "du", "pauc", "pl"} data.engnumberscap["pl"] = "Plural of variety" data.numgens = function() return data.numbers end data.allnumgens = data.allnumbers parse_state_etc_spec(data, args) local sings, is_template = get_heads(data, args, "singulative") -- If all singulative nouns feminine in form, form a masculine collective local singfem = all_feminine(data, sings) local colls = do_gender_number(data, args, {"coll"}, sings, singfem and "m" or nil, false, "sg") local dus = do_gender_number(data, args, {"d"}, sings, "d", singfem, "du") local paucs = do_gender_number(data, args, {"pauc"}, sings, "paucp", singfem, "pl") local pls = is_template and {base={{"{{{pl}}}", "tri"}}} or do_gender_number(data, args, {"pl", "cpl"}, colls, nil, false, "pl") -- Can manually specify which numbers are to appear, and exactly those -- numbers will appear. Otherwise, if any plurals given, plurals appear; -- if singulative given or derivable, it and dual and paucal will appear. if not parse_number_spec(data, args) then data.numbers = {} if args[1] ~= "-" then table.insert(data.numbers, "sing") end if #colls["base"] > 0 then table.insert(data.numbers, "coll") end if #dus["base"] > 0 then table.insert(data.numbers, "du") end if #paucs["base"] > 0 then table.insert(data.numbers, "pauc") end if #pls["base"] > 0 then table.insert(data.numbers, "pl") end end -- Generate the singulative, collective, dual, paucal and plural forms do_inflections_and_overrides(data, args, {{sings, "sing"}, {colls, "coll"}, {dus, "du"}, {paucs, "pauc"}, {pls, "pl"}}) -- Make the table return make_noun_table(data) end -- The implementation of the main entry point for adjective and -- gendered noun tables. function show_gendered(frame, isadj, pos) local args, origargs, data = init(frame:getParent().args) data.pos = pos data.numgens = function() local numgens = {} for _, gender in ipairs(data.allgenders) do for _, number in ipairs(data.numbers) do table.insert(numgens, gender .. "_" .. number) end end return numgens end data.allnumgens = {} for _, gender in ipairs(data.allgenders) do for _, number in ipairs(data.allnumbers) do table.insert(data.allnumgens, gender .. "_" .. number) end end parse_state_etc_spec(data, args) local msgs = get_heads(data, args, 'masculine singular') -- Always do all of these so cases like يَوْم الاِثْنَيْن work. -- See comment in show_noun(). local fsgs = do_gender_number(data, args, {"f"}, msgs, "f", true, "sg") local mdus = do_gender_number(data, args, {"d"}, msgs, "d", false, "du") local fdus = do_gender_number(data, args, {"fd"}, fsgs, "d", true, "du") local mpls = do_gender_number(data, args, {"pl", "cpl"}, msgs, isadj and "p" or nil, false, "pl") local fpls = do_gender_number(data, args, {"fpl", "cpl"}, fsgs, "fp", true, "pl") if isadj then parse_number_spec(data, args) else determine_noun_numbers(data, args, mpls) end -- Generate the singular, dual and plural forms do_inflections_and_overrides(data, args, {{msgs, "m_sg"}, {fsgs, "f_sg"}, {mdus, "m_du"}, {fdus, "f_du"}, {mpls, "m_pl"}, {fpls, "f_pl"}}) -- Make the table if isadj then return make_adj_table(data) else return make_gendered_noun_table(data) end end -- The main entry point for gendered noun tables. function export.show_gendered_noun(frame) return show_gendered(frame, false, "noun") end -- The main entry point for numeral tables. Same as using show_gendered_noun() -- with pos=numeral. function export.show_numeral(frame) return show_gendered(frame, false, "numeral") end -- The main entry point for adjective tables. function export.show_adj(frame) return show_gendered(frame, true, "adjective") end -- Inflection functions function do_translit(term) return (lang:transliterate(term)) or track("cant-translit") and BOGUS_CHAR end function split_arabic_tr(term) if term == "" then return "", "" elseif not rfind(term, "/") then return term, do_translit(term) else splitvals = rsplit(term, "/") if #splitvals ~= 2 then error("Must have at most one slash in a combined Arabic/translit expr: '" .. term .. "'") end return splitvals[1], splitvals[2] end end function reorder_shadda(word) -- shadda+short-vowel (including tanwīn vowels, i.e. -an -in -un) gets -- replaced with short-vowel+shadda during NFC normalisation, which -- MediaWiki does for all Unicode strings; however, it makes the -- detection process inconvenient, so undo it. word = rsub(word, "(" .. DIACRITIC_ANY_BUT_SH .. ")" .. SH, SH .. "%1") return word end -- Combine PREFIX, AR/TR, and ENDING in that order. PREFIX and ENDING -- can be of the form ARABIC/TRANSLIT. The Arabic and translit parts are -- separated out and grouped together, resulting in a string of the -- form ARABIC/TRANSLIT (TRANSLIT will always be present, computed -- automatically if not present in the source). The return value is actually a -- list of ARABIC/TRANSLIT strings because hamza resolution is applied to -- ARABIC, which may produce multiple outcomes (all of which will have the -- same TRANSLIT). function combine_with_ending(prefix, ar, tr, ending) local prefixar, prefixtr = split_arabic_tr(prefix) local endingar, endingtr = split_arabic_tr(ending) -- When calling hamza_seat(), leave out prefixes, which we expect to be -- clitics like وَ. (In case the prefix is a separate word, it won't matter -- whether we include it in the text passed to hamza_seat().) allar = hamza_seat(ar .. endingar) -- Convert ...īān to ...iyān in case of stems ending in -ī or -ū -- (e.g. kubrī "bridge"). if rfind(endingtr, "^[aeiouāēīōū]") then if rfind(tr, "ī$") then tr = rsub(tr, "ī$", "iy") elseif rfind(tr, "ū$") then tr = rsub(tr, "ū$", "uw") end end tr = prefixtr .. tr .. endingtr allartr = {} for _, arval in ipairs(allar) do table.insert(allartr, prefixar .. arval .. "/" .. tr) end return allartr end -- Combine PREFIX, STEM/TR and ENDING in that order and insert into the -- list of items in DATA[KEY], initializing it if empty and making sure -- not to insert duplicates. ENDING can be a list of endings, will be -- distributed over the remaining parts. PREFIX and/or ENDING can be -- of the form ARABIC/TRANSLIT (the stem is already split into Arabic STEM -- and Latin TR). Note that what's inserted into DATA[KEY] is actually a -- list of ARABIC/TRANSLIT strings; if more than one is present in the list, -- they represent hamza variants, i.e. different ways of writing a hamza -- sound, such as مُبْتَدَؤُون vs. مُبْتَدَأُون (see init_data()). function add_inflection(data, key, prefix, stem, tr, ending) if data.forms[key] == nil then data.forms[key] = {} end if type(ending) ~= "table" then ending = {ending} end for _, endingval in ipairs(ending) do insert_if_not(data.forms[key], combine_with_ending(prefix, stem, tr, endingval)) end end -- Form inflections from combination of STEM, with transliteration TR, -- and ENDINGS (and definite article where necessary, plus any specified -- prefixes) and store in DATA, for the number or gender/number -- determined by MOD ("", "mod_", "mod2_", etc.; see call_inflection()) and -- NUMGEN ("sg", "du", "pl", or "m_sg", "f_pl", etc. for adjectives). ENDINGS -- is an array of 15 values, each of which is a string or array of -- alternatives. The order of ENDINGS is indefinite nom, acc, gen; definite -- nom, acc, gen; construct-state nom, acc, gen; informal indefinite, definite, -- construct; lemma indefinite, definite, construct. (Normally the lemma is -- based off of the indefinite, but if the inflection has been restricted to -- particular states, it comes from one of those states, in the order -- indefinite, definite, construct.) See also add_inflection() for more info -- on exactly what is inserted into DATA. function add_inflections(stem, tr, data, mod, numgen, endings) stem = canon_hamza(stem) assert(#endings == 15) local ismod = mod ~= "" -- If working on modifier and modN_numgen= is given, it better agree with -- NUMGEN; the case where it doesn't agree should have been caught in -- call_inflections(). if ismod and data[mod .. "numgen"] then assert(data[mod .. "numgen"] == numgen) end -- Return a list of combined of ar/tr forms, with the ending tacked on. -- There may be more than one form because of alternative hamza seats that -- may be supplied, e.g. مُبْتَدَؤُون or مُبْتَدَأُون (mubtadaʾūn "(grammatical) subjects"). local defstem, deftr if stem == "?" or data[mod .. "omitarticle"] then defstem = stem deftr = tr else -- apply sun-letter assimilation and hamzat al-wasl elision defstem = rsub("الْ" .. stem, "^الْ([سشصتثطدذضزژظنرل])", "ال%1ّ") defstem = rsub(defstem, "^الْ([اٱ])([ًٌٍَُِ])", "ال%2%1") deftr = rsub("al-" .. tr, "^al%-([sšṣtṯṭdḏḍzžẓnrḷ])", "a%1-%1") end -- For a given MOD spec, is the previous word (base or modifier) a noun? -- We assume the base is always a noun in this case, and otherwise -- look at the value of modN_idafa. local function prev_mod_is_noun(mod) if mod == "mod_" then return true end if mod == "mod2_" then return data["mod_idafa"] end modnum = assert_rsub(mod, "^mod([0-9]+)_$", "%1") modnum = modnum - 1 return data["mod" .. modnum .. "_idafa"] end local numgens = ismod and data[mod .. "numgen"] and data.numgens() or {numgen} -- "defcon" means definite adjective modifying construct state noun. We -- add a ... before the adjective (and after the construct-state noun) to -- indicate that a nominal modifier would go between noun and adjective. local stems = {ind = stem, def = defstem, con = stem, defcon = "... " .. defstem} local trs = {ind = tr, def = deftr, con = tr, defcon = "... " .. deftr} for _, ng in ipairs(numgens) do for _, state in ipairs(data.allstates) do for _, case in ipairs(data.allcases_with_lemma) do -- We are generating the inflections for STATE, but sometimes -- we want to use the inflected form of a different state, e.g. -- if modN_state= or basestate= is set to some particular state. -- If we're dealing with an adjectival modifier, then in -- place of "con" we use "defcon" if immediately after a noun -- (see comment above), else "def". local thestate = ismod and data[mod .. "state"] or ismod and not data[mod .. "idafa"] and state == "con" and (prev_mod_is_noun(mod) and "defcon" or "def") or not ismod and data.basestate or state local is_lemmainf = case == "lemma" or case == "inf" -- Don't substitute value of modcase for lemma/informal "cases" local thecase = is_lemmainf and case or ismod and data[mod .. "case"] or case add_inflection(data, mod .. case .. "_" .. ng .. "_" .. state, data[mod .. "prefix"] or "", stems[thestate], trs[thestate], endings[data.statecases[thestate][thecase]]) end end end end -- Insert into a category and a type variable (e.g. m_sg_type) for the -- declension type of a particular declension (e.g. masculine singular for -- adjectives). MOD and NUMGEN are as in call_inflection(). CATVALUE is the -- category and ENGVALUE is the English description of the declension type. -- In these values, NOUN is replaced with either "noun" or "adjective", -- SINGULAR is replaced with the English equivalent of the number in NUMGEN -- (e.g. "singular", "dual" or "plural") while BROKSING is the same but uses -- "broken plural" in place of "plural" and "broken paucal" in place of -- "paucal". function insert_cat(data, mod, numgen, catvalue, engvalue) local singpl = data.engnumbers[rsub(numgen, "^.*_", "")] assert(singpl ~= nil) local broksingpl = rsub(singpl, "plural", "broken plural") broksingpl = rsub(broksingpl, "paucal", "broken paucal") if rfind(broksingpl, "broken plural") and (rfind(catvalue, "BROKSING") or rfind(engvalue, "BROKSING")) then table.insert(data.categories, "Arabic " .. data.pos .. "s with broken plural") end if rfind(catvalue, "irregular") or rfind(engvalue, "irregular") then table.insert(data.categories, "Arabic irregular " .. data.pos .. "s") end catvalue = rsub(catvalue, "NOUN", data.pos) catvalue = rsub(catvalue, "SINGULAR", singpl) catvalue = rsub(catvalue, "BROKSING", broksingpl) engvalue = rsub(engvalue, "NOUN", data.pos) engvalue = rsub(engvalue, "SINGULAR", singpl) engvalue = rsub(engvalue, "BROKSING", broksingpl) if mod == "" and catvalue ~= "" then insert_if_not(data.categories, catvalue) end if engvalue ~= "" then local key = mod .. numgen .. "_type" if data.forms[key] == nil then data.forms[key] = {} end insert_if_not(data.forms[key], engvalue) end if contains(data.states, "def") and not contains(data.states, "ind") then insert_if_not(data.categories, "Arabic definite " .. data.pos .. "s") end end -- Return true if we're handling modifier inflections and the modifier's -- case is limited to an oblique case (gen or acc; typically genitive, -- in an ʾidāfa construction). This is used when returning lemma -- inflections -- the modifier part of the lemma should agree in case -- with modifier's case if it's restricted in case. function mod_oblique(mod, data) return mod ~= "" and data[mod .. "case"] and ( data[mod .. "case"] == "acc" or data[mod .. "case"] == "gen") end -- Similar to mod_oblique but specifically when the modifier case is -- limited to the accusative (which is rare or nonexistent in practice). function mod_acc(mod, data) return mod ~= "" and data[mod .. "case"] and data[mod .. "case"] == "acc" end -- Handle triptote and diptote inflections function triptote_diptote(stem, tr, data, mod, numgen, is_dip, lc) -- Remove any case ending if rfind(stem, "[" .. UN .. U .. "]$") then stem = rsub(stem, "[" .. UN .. U .. "]$", "") tr = rsub(tr, "un?$", "") end -- special-case for صلوة pronounced ṣalāh; check translit local is_aah = rfind(stem, TAM .. "$") and rfind(tr, "āh$") if rfind(stem, TAM .. "$") then if rfind(tr, "h$") then tr = rsub(tr, "h$", "t") elseif not rfind(tr, "t$") then tr = tr .. "t" end end add_inflections(stem, tr, data, mod, numgen, {is_dip and U or UN, is_dip and A or AN .. ((rfind(stem, "[" .. HAMZA_ON_ALIF .. TAM .. "]$") or rfind(stem, "[" .. AMAD .. ALIF .. "]" .. HAMZA .. "$") ) and "" or ALIF), is_dip and A or IN, U, A, I, lc and UU or U, lc and AA or A, lc and II or I, {}, {}, {}, -- omit informal inflections {}, {}, {}, -- omit lemma inflections }) -- add category and informal and lemma inflections local tote = lc and "long construct" or is_dip and "diptote" or "triptote" local singpl_tote = "BROKSING " .. tote local cat_prefix = "Arabic NOUNs with " .. tote .. " BROKSING" -- since we're checking translit for -āh we probably don't need to -- check stem too if is_aah or rfind(stem, "[" .. AMAD .. ALIF .. "]" .. TAM .. "$") then add_inflections(stem, rsub(tr, "t$", ""), data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, "/t", "/t", "/t", -- informal pron. is -āt "/h", "/h", "/t", -- lemma uses -āh }) insert_cat(data, mod, numgen, cat_prefix .. " in -āh", singpl_tote .. " in " .. make_link(HYPHEN .. AAH)) elseif rfind(stem, TAM .. "$") then add_inflections(stem, rsub(tr, "t$", ""), data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, "", "", "/t", "", "", "/t", }) insert_cat(data, mod, numgen, cat_prefix .. " in -a", singpl_tote .. " in " .. make_link(HYPHEN .. AH)) elseif lc then add_inflections(stem, tr, data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, "", "", UU, "", "", UU, }) insert_cat(data, mod, numgen, cat_prefix, singpl_tote) else -- also special-case the nisba ending, which has an informal -- pronunciation. if rfind(stem, IY .. SH .. "$") then local infstem = rsub(stem, SH .. "$", "") local inftr = rsub(tr, "iyy$", "ī") -- add informal and lemma inflections separately add_inflections(infstem, inftr, data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, "", "", "", {}, {}, {}, }) add_inflections(stem, tr, data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, "", "", "", }) else add_inflections(stem, tr, data, mod, numgen, {{}, {}, {}, {}, {}, {}, {}, {}, {}, "", "", "", "", "", "", }) end insert_cat(data, mod, numgen, "Arabic NOUNs with basic " .. tote .. " BROKSING", "basic " .. singpl_tote) end end -- Regular triptote inflections["tri"] = function(stem, tr, data, mod, numgen) triptote_diptote(stem, tr, data, mod, numgen, false) end -- Regular diptote inflections["di"] = function(stem, tr, data, mod, numgen) triptote_diptote(stem, tr, data, mod, numgen, true) end -- Elative and color/defect adjective: usually same as diptote, -- might be invariable function elative_color_defect(stem, tr, data, mod, numgen) if rfind(stem, "[" .. ALIF .. AMAQ .. "]$") then invariable(stem, tr, data, mod, numgen) else triptote_diptote(stem, tr, data, mod, numgen, true) end end -- Elative: usually same as diptote, might be invariable inflections["el"] = function(stem, tr, data, mod, numgen) elative_color_defect(stem, tr, data, mod, numgen) end -- Color/defect adjective: Same as elative inflections["cd"] = function(stem, tr, data, mod, numgen) elative_color_defect(stem, tr, data, mod, numgen) end -- Triptote with lengthened ending in the construct state inflections["lc"] = function(stem, tr, data, mod, numgen) triptote_diptote(stem, tr, data, mod, numgen, false, true) end function in_defective(stem, tr, data, mod, numgen, tri) if not rfind(stem, IN .. "$") then error("'in' declension stem should end in -in: '" .. stem .. "'") end stem = rsub(stem, IN .. "$", "") tr = rsub(tr, "in$", "") local acc_ind_ending = tri and IY .. AN .. ALIF or IY .. A add_inflections(stem, tr, data, mod, numgen, {IN, acc_ind_ending, IN, II, IY .. A, II, II, IY .. A, II, II, II, II, -- FIXME: What should happen with the lemma when modifier case -- is limited to the accusative and modifier state is e.g. definite? -- Should the lemma end in -iya or -ī? In practice this will rarely -- if ever happen. mod_acc(mod, data) and acc_ind_ending or IN, II, II, }) local tote = tri and "triptote" or "diptote" insert_cat(data, mod, numgen, "Arabic NOUNs with " .. tote .. " BROKSING in -in", "BROKSING " .. tote .. " in " .. make_link(HYPHEN .. IN)) end function detect_in_type(stem, ispl) if ispl and rfind(stem, "^" .. CONS .. AOPT .. CONS .. AOPTA .. CONS .. IN .. "$") then -- layālin return "diin" else -- other -in words return "triin" end end -- Defective in -in inflections["in"] = function(stem, tr, data, mod, numgen) in_defective(stem, tr, data, mod, numgen, detect_in_type(stem, rfind(numgen, "pl")) == "triin") end -- Defective in -in, force "triptote" variant inflections["triin"] = function(stem, tr, data, mod, numgen) in_defective(stem, tr, data, mod, numgen, true) end -- Defective in -in, force "diptote" variant inflections["diin"] = function(stem, tr, data, mod, numgen) in_defective(stem, tr, data, mod, numgen, false) end -- Defective in -an (comes in two variants, depending on spelling with tall alif or alif maqṣūra) inflections["an"] = function(stem, tr, data, mod, numgen) local tall_alif if rfind(stem, AN .. ALIF .. "$") then tall_alif = true stem = rsub(stem, AN .. ALIF .. "$", "") elseif rfind(stem, AN .. AMAQ .. "$") then tall_alif = false stem = rsub(stem, AN .. AMAQ .. "$", "") else error("Invalid stem for 'an' declension type: " .. stem) end tr = rsub(tr, "an$", "") if tall_alif then add_inflections(stem, tr, data, mod, numgen, {AN .. ALIF, AN .. ALIF, AN .. ALIF, AA, AA, AA, AA, AA, AA, AA, AA, AA, AN .. ALIF, AA, AA, }) else add_inflections(stem, tr, data, mod, numgen, {AN .. AMAQ, AN .. AMAQ, AN .. AMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AAMAQ, AN .. AMAQ, AAMAQ, AAMAQ, }) end -- FIXME: Should we distinguish between tall alif and alif maqṣūra? insert_cat(data, mod, numgen, "Arabic NOUNs with BROKSING in -an", "BROKSING in " .. make_link(HYPHEN .. AN .. (tall_alif and ALIF or AMAQ))) end function invariable(stem, tr, data, mod, numgen) add_inflections(stem, tr, data, mod, numgen, {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", }) insert_cat(data, mod, numgen, "Arabic NOUNs with invariable BROKSING", "BROKSING invariable") end -- Invariable in -ā (non-loanword type) inflections["inv"] = function(stem, tr, data, mod, numgen) invariable(stem, tr, data, mod, numgen) end -- Invariable in -ā (loanword type, behaving in the dual as if ending in -a, I think!) inflections["lwinv"] = function(stem, tr, data, mod, numgen) invariable(stem, tr, data, mod, numgen) end -- Duals inflections["d"] = function(stem, tr, data, mod, numgen) if rfind(stem, ALIF .. NI .. "?$") then stem = rsub(stem, AOPTA .. NI .. "?$", "") elseif rfind(stem, AMAD .. NI .. "?$") then stem = rsub(stem, AMAD .. NI .. "?$", HAMZA_PH) else error("Dual stem should end in -ān(i): '" .. stem .. "'") end tr = rsub(tr, "āni?$", "") local mo = mod_oblique(mod, data) add_inflections(stem, tr, data, mod, numgen, {AANI, AYNI, AYNI, AANI, AYNI, AYNI, AA, AYSK, AYSK, AYN, AYN, AYSK, mo and AYN or AAN, mo and AYN or AAN, mo and AYSK or AA, }) insert_cat(data, mod, numgen, "", "dual in " .. make_link(HYPHEN .. AANI)) end -- Sound masculine plural inflections["smp"] = function(stem, tr, data, mod, numgen) if not rfind(stem, UUNA .. "?$") then error("Sound masculine plural stem should end in -ūn(a): '" .. stem .. "'") end stem = rsub(stem, UUNA .. "?$", "") tr = rsub(tr, "ūna?$", "") local mo = mod_oblique(mod, data) add_inflections(stem, tr, data, mod, numgen, {UUNA, IINA, IINA, UUNA, IINA, IINA, UU, II, II, IIN, IIN, II, mo and IIN or UUN, mo and IIN or UUN, mo and II or UU, }) -- use SINGULAR because conceivably this might be used with the paucal -- instead of plural insert_cat(data, mod, numgen, "Arabic NOUNs with sound masculine SINGULAR", "sound masculine SINGULAR") end -- Sound feminine plural inflections["sfp"] = function(stem, tr, data, mod, numgen) if not rfind(stem, "[" .. ALIF .. AMAD .. "]" .. T .. UN .. "?$") then error("Sound feminine plural stem should end in -āt(un): '" .. stem .. "'") end stem = rsub(stem, UN .. "$", "") tr = rsub(tr, "un$", "") add_inflections(stem, tr, data, mod, numgen, {UN, IN, IN, U, I, I, U, I, I, "", "", "", "", "", "", }) -- use SINGULAR because this might be used with the paucal -- instead of plural insert_cat(data, mod, numgen, "Arabic NOUNs with sound feminine SINGULAR", "sound feminine SINGULAR") end -- Plural of defective in -an inflections["awnp"] = function(stem, tr, data, mod, numgen) if not rfind(stem, AWNA .. "?$") then error("'awnp' plural stem should end in -awn(a): '" .. stem .. "'") end stem = rsub(stem, AWNA .. "?$", "") tr = rsub(tr, "awna?$", "") local mo = mod_oblique(mod, data) add_inflections(stem, tr, data, mod, numgen, {AWNA, AYNA, AYNA, AWNA, AYNA, AYNA, AWSK, AYSK, AYSK, AYN, AYN, AYSK, mo and AYN or AWN, mo and AYN or AWN, mo and AYSK or AWSK, }) -- use SINGULAR because conceivably this might be used with the paucal -- instead of plural insert_cat(data, mod, numgen, "Arabic NOUNs with sound SINGULAR in -awna", "sound SINGULAR in " .. make_link(HYPHEN .. AWNA)) end -- Unknown inflections["?"] = function(stem, tr, data, mod, numgen) add_inflections("?", "?", data, mod, numgen, {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", }) insert_cat(data, mod, numgen, "Arabic NOUNs with unknown SINGULAR", "SINGULAR unknown") end -- Detect declension of noun or adjective stem or lemma. We allow triptotes, -- diptotes and sound plurals to either come with ʾiʿrāb or not. We detect -- some cases where vowels are missing, when it seems fairly unambiguous to -- do so. ISFEM is true if we are dealing with a feminine stem (not -- currently used and needs to be rethought). NUM is "sg", "du", or "pl", -- depending on the number of the stem. -- -- POS is the part of speech, generally "noun" or "adjective". Used to -- distinguish nouns and adjectives of the فَعْلَان type. There are nouns of -- this type and they generally are triptotes, e.g. قَطْرَان "tar" -- and شَيْطَان "devil". An additional complication is that the user can set -- the POS to something else, like "numeral". We don't use this POS for -- modifiers, where we determine whether they are noun-like or adjective-like -- according to whether mod_idafa= is true. -- -- Some unexpectedly diptote nouns/adjectives: -- -- jiʿrān in ʾabū jiʿrān "dung beetle" -- distributive numbers: ṯunāʾ "two at a time", ṯulāṯ/maṯlaṯ "three at a time", -- rubāʿ "four at a time" (not a regular diptote pattern, cf. triptote -- junāḥ "misdemeanor, sin", nujār "origin, root", nuḥām "flamingo") -- jahannam (f.) "hell" -- many names: jilliq/jillaq "Damascus", judda/jidda "Jedda", jibrīl (and -- variants) "Gabriel", makka "Mecca", etc. -- jibriyāʾ "pride" -- kibriyāʾ "glory, pride" -- babbaḡāʾ "parrot" -- ʿayāyāʾ "incapable, tired" -- suwaidāʾ "black bile, melancholy" -- Note also: ʾajhar "day-blind" (color-defect) and ʾajhar "louder" (elative) function export.detect_type(stem, isfem, num, pos) local function dotrack(word) track(word) track(word .. "/" .. pos) return true end -- Not strictly necessary because the caller (stem_and_type) already -- reorders, but won't hurt, and may be necessary if this function is -- called from an external caller. stem = reorder_shadda(stem) local origstem = stem -- So that we don't get tripped up by alif madda, we replace alif madda -- with the sequence hamza + fatḥa + alif before the regexps below. stem = rsub(stem, AMAD, HAMZA .. AA) if num == "du" then if rfind(stem, ALIF .. NI .. "?$") then return "d" else error("Malformed stem for dual, should end in the nominative dual ending -ān(i): '" .. origstem .. "'") end end if rfind(stem, IN .. "$") then -- -in words return detect_in_type(stem, num == "pl") elseif rfind(stem, AN .. "[" .. ALIF .. AMAQ .. "]$") then return "an" elseif rfind(stem, AN .. "$") then error("Malformed stem, fatḥatan should be over second-to-last letter: " .. origstem) elseif num == "pl" and rfind(stem, AW .. SKOPT .. N .. AOPT .. "$") then return "awnp" elseif num == "pl" and rfind(stem, ALIF .. T .. UNOPT .. "$") and -- Avoid getting tripped up by plurals like ʾawqāt "times", -- ʾaḥwāt "fishes", ʾabyāt "verses", ʾazyāt "oils", ʾaṣwāt "voices", -- ʾamwāt "dead (pl.)". not rfind(stem, HAMZA_ON_ALIF .. A .. CONS .. SK .. CONS .. AAT .. UNOPT .. "$") then return "sfp" elseif num == "pl" and rfind(stem, W .. N .. AOPT .. "$") and -- Avoid getting tripped up by plurals like ʿuyūn "eyes", -- qurūn "horns" (note we check for U between first two consonants -- so we correctly ignore cases like sinūn "hours" (from sana), -- riʾūn "lungs" (from riʾa) and banūn "sons" (from ibn). not rfind(stem, "^" .. CONS .. U .. CONS .. UUN .. AOPT .. "$") then return "smp" elseif rfind(stem, UN .. "$") then -- explicitly specified triptotes (we catch sound feminine plurals above) return "tri" elseif rfind(stem, U .. "$") then -- explicitly specified diptotes return "di" elseif -- num == "pl" and ( -- various diptote plural patterns; these are diptote even in the singular (e.g. yanāyir "January", falāfil "falafel", tuʾabāʾ "yawn, fatigue" -- currently we sometimes end up with such plural patterns in the "singular" in a singular -- ʾidāfa construction with plural modifier. (FIXME: These should be fixed to the correct number.) rfind(stem, "^" .. CONS .. AOPT .. CONS .. AOPTA .. CONS .. IOPT .. Y .. "?" .. CONS .. "$") and dotrack("fawaakih") or -- fawākih, daqāʾiq, makātib, mafātīḥ rfind(stem, "^" .. CONS .. AOPT .. CONS .. AOPTA .. CONS .. SH .. "$") and not rfind(stem, "^" .. T) and dotrack("mawaadd") or -- mawādd, maqāmm, ḍawāll; exclude t- so we don't catch form-VI verbal nouns like taḍādd (HACK!!!) rfind(stem, "^" .. CONS .. U .. CONS .. AOPT .. CONS .. AOPTA .. HAMZA .. "$") and dotrack("wuzaraa") or -- wuzarāʾ "ministers", juhalāʾ "ignorant (pl.)" rfind(stem, ELCD_START .. SKOPT .. CONS .. IOPT .. CONS .. AOPTA .. HAMZA .. "$") and dotrack("asdiqaa") or -- ʾaṣdiqāʾ rfind(stem, ELCD_START .. IOPT .. CONS .. SH .. AOPTA .. HAMZA .. "$") and dotrack("aqillaa") -- ʾaqillāʾ, ʾajillāʾ "important (pl.)", ʾaḥibbāʾ "lovers" ) then return "di" elseif num == "sg" and ( -- diptote singular patterns (nouns/adjectives) rfind(stem, "^" .. CONS .. A .. CONS .. SK .. CONS .. AOPTA .. HAMZA .. "$") and dotrack("qamraa") or -- qamrāʾ "moon-white, moonlight"; baydāʾ "desert"; ṣaḥrāʾ "desert-like, desert"; tayhāʾ "trackless, desolate region"; not pl. to avoid catching e.g. ʾabnāʾ "sons", ʾaḥmāʾ "fathers-in-law", ʾamlāʾ "steppes, deserts" (pl. of malan), ʾanbāʾ "reports" (pl. of nabaʾ) rfind(stem, ELCD_START .. SK .. CONS .. A .. CONS .. "$") and dotrack("abyad") or -- ʾabyaḍ "white", ʾakbar "greater"; FIXME nouns like ʾaʿzab "bachelor", ʾaḥmad "Ahmed" but not ʾarnab "rabbit", ʾanjar "anchor", ʾabjad "abjad", ʾarbaʿ "four", ʾandar "threshing floor" (cf. diptote ʾandar "rarer") rfind(stem, ELCD_START .. A .. CONS .. SH .. "$") and dotrack("alaff") or -- ʾalaff "plump", ʾaḥabb "more desirable" -- do the following on the origstem so we can check specifically for alif madda rfind(origstem, "^" .. AMAD .. CONS .. A .. CONS .. "$") and dotrack("aalam") -- ʾālam "more painful", ʾāḵar "other" ) then return "di" elseif num == "sg" and pos == "adjective" and ( -- diptote singular patterns (adjectives) rfind(stem, "^" .. CONS .. A .. CONS .. SK .. CONS .. AOPTA .. N .. "$") and dotrack("kaslaan") or -- kaslān "lazy", ʿaṭšān "thirsty", jawʿān "hungry", ḡaḍbān "angry", tayhān "wandering, perplexed"; but not nouns like qaṭrān "tar", šayṭān "devil", mawtān "plague", maydān "square" -- rfind(stem, "^" .. CONS .. A .. CONS .. SH .. AOPTA .. N .. "$") and dotrack("laffaa") -- excluded because of too many false positives e.g. ḵawwān "disloyal", not to mention nouns like jannān "gardener"; only diptote example I can find is ʿayyān "incapable, weary" (diptote per Lane but not Wehr) rfind(stem, "^" .. CONS .. A .. CONS .. SH .. AOPTA .. HAMZA .. "$") and dotrack("laffaa") -- laffāʾ "plump (fem.)"; but not nouns like jarrāʾ "runner", ḥaddāʾ "camel driver", lawwāʾ "wryneck" ) then return "di" elseif rfind(stem, AMAQ .. "$") then -- kaslā, ḏikrā (spelled with alif maqṣūra) return "inv" elseif rfind(stem, "[" .. ALIF .. SK .. "]" .. Y .. AOPTA .. "$") then -- dunyā, hadāyā (spelled with tall alif after yāʾ) return "inv" elseif rfind(stem, ALIF .. "$") then -- kāmērā, lībiyā (spelled with tall alif; we catch dunyā and hadāyā above) return "lwinv" elseif rfind(stem, II .. "$") then -- cases like كُوبْرِي kubrī "bridge" and صَوَانِي ṣawānī pl. of ṣīniyya; modern words that would probably end with -in dotrack("ii") return "inv" elseif rfind(stem, UU .. "$") then -- FIXME: Does this occur? Check the tracking dotrack("uu") return "inv" else return "tri" end end -- Replace hamza (of any sort) at the end of a word, possibly followed by -- a nominative case ending or -in or -an, with HAMZA_PH, and replace alif -- madda at the end of a word with HAMZA_PH plus fatḥa + alif. To undo these -- changes, use hamza_seat(). function canon_hamza(word) word = rsub(word, AMAD .. "$", HAMZA_PH .. AA) word = rsub(word, HAMZA_ANY .. "([" .. UN .. U .. IN .. "]?)$", HAMZA_PH .. "%1") word = rsub(word, HAMZA_ANY .. "(" .. AN .. "[" .. ALIF .. AMAQ .. "])$", HAMZA_PH .. "%1") return word end -- Supply the appropriate hamza seat(s) for a placeholder hamza. function hamza_seat(word) if rfind(word, HAMZA_PH) then -- optimization to avoid many regexp substs return ar_utilities.process_hamza(word) end return {word} end --[[ -- Supply the appropriate hamza seat for a placeholder hamza in a combined -- Arabic/translation expression. function split_and_hamza_seat(word) if rfind(word, HAMZA_PH) then -- optimization to avoid many regexp substs local ar, tr = split_arabic_tr(word) -- FIXME: Do something with all values returned ar = ar_utilities.process_hamza(ar)[1] return ar .. "/" .. tr end return word end --]] -- Return stem and type of an argument given the singular stem and whether -- this is a plural argument. WORD may be of the form ARABIC, ARABIC/TR, -- ARABIC:TYPE, ARABIC/TR:TYPE, or TYPE, for Arabic stem ARABIC with -- transliteration TR and of type (i.e. declension) TYPE. If the type -- is omitted, it is auto-detected using detect_type(). If the transliteration -- is omitted, it is auto-transliterated from the Arabic. If only the type -- is present, it is a sound plural type ("sf", "sm" or "awn"), -- in which case the stem and translit are generated from the singular by -- regular rules. SG may be of the form ARABIC/TR or ARABIC. ISFEM is true -- if WORD is a feminine stem. NUM is either "sg", "du" or "pl" according to -- the number of the stem. The return value will be in the ARABIC/TR format. -- -- POS is the part of speech, generally "noun" or "adjective". Used to -- distinguish nouns and adjectives of the فَعْلَان type. There are nouns of -- this type and they generally are triptotes, e.g. قَطْرَان "tar" -- and شَيْطَان "devil". An additional complication is that the user can set -- the POS to something else, like "numeral". We don't use this POS for -- modifiers, where we determine whether they are noun-like or adjective-like -- according to whether mod_idafa= is true. function export.stem_and_type(word, sg, sgtype, isfem, num, pos) local rettype = nil if rfind(word, ":") then local split = rsplit(word, ":") if #split > 2 then error("More than one colon found in argument: '" .. word .. "'") end word, rettype = split[1], split[2] end local ar, tr = split_arabic_tr(word) -- Need to reorder shaddas here so that shadda at the end of a stem -- followed by ʾiʿrāb or a plural ending or whatever can get processed -- correctly. This processing happens in various places so make sure -- we return the reordered Arabic in all circumstances. ar = reorder_shadda(ar) local artr = ar .. "/" .. tr -- Now return split-out ARABIC/TR and TYPE, with shaddas reordered in -- the Arabic. if rettype then return artr, rettype end -- Likewise, do shadda reordering for the singular. local sgar, sgtr = split_arabic_tr(sg) sgar = reorder_shadda(sgar) -- Apply a substitution to the singular Arabic and translit. If a -- substitution could be made, return the combined ARABIC/TR with -- substitutions made; else, return nil. The Arabic has ARFROM -- replaced with ARTO, while the translit has TRFROM replaced with -- TRTO, and if that doesn't match, replace TRFROM2 with TRTO2. local function sub(arfrom, arto, trfrom, trto, trfrom2, trto2, trfrom3, trto3) if rfind(sgar, arfrom) then local arret = rsub(sgar, arfrom, arto) local trret = sgtr if rfind(sgtr, trfrom) then trret = rsub(sgtr, trfrom, trto) elseif trfrom2 and rfind(sgtr, trfrom2) then trret = rsub(sgtr, trfrom2, trto2) elseif trfrom3 and rfind(sgtr, trfrom3) then trret = rsub(sgtr, trfrom3, trto3) elseif not rfind(sgtr, BOGUS_CHAR) then error("Transliteration '" .. sgtr .."' does not have same ending as Arabic '" .. sgar .. "'") end return arret .. "/" .. trret else return nil end end if (num ~= "sg" or not isfem) and (word == "elf" or word == "cdf" or word == "intf" or word == "rf" or word == "f") then error("Inference of form for inflection type '" .. word .. "' only allowed in singular feminine") end if num ~= "du" and word == "d" then error("Inference of form for inflection type '" .. word .. "' only allowed in dual") end if num ~= "pl" and (word == "sfp" or word == "smp" or word == "awnp" or word == "cdp" or word == "sp" or word == "fp" or word == "p") then error("Inference of form for inflection type '" .. word .. "' only allowed in plural") end local function is_intensive_adj(ar) return rfind(ar, "^" .. CONS .. A .. CONS .. SK .. CONS .. AOPTA .. N .. UOPT .. "$") or rfind(ar, "^" .. CONS .. A .. CONS .. SK .. AMAD .. N .. UOPT .. "$") or rfind(ar, "^" .. CONS .. A .. CONS .. SH .. AOPTA .. N .. UOPT .. "$") end local function is_feminine_cd_adj(ar) return pos == "adjective" and (rfind(ar, "^" .. CONS .. A .. CONS .. SK .. CONS .. AOPTA .. HAMZA .. UOPT .. "$") or -- ʾḥamrāʾ/ʿamyāʾ/bayḍāʾ rfind(ar, "^" .. CONS .. A .. CONS .. SH .. AOPTA .. HAMZA .. UOPT .. "$") -- laffāʾ ) end local function is_elcd_adj(ar) return rfind(ar, ELCD_START .. SK .. CONS .. A .. CONS .. UOPT .. "$") or -- ʾabyaḍ "white", ʾakbar "greater" rfind(ar, ELCD_START .. A .. CONS .. SH .. UOPT .. "$") or -- ʾalaff "plump", ʾaqall "fewer" rfind(ar, ELCD_START .. SK .. CONS .. AAMAQ .. "$") or -- ʾaʿmā "blind", ʾadnā "lower" rfind(ar, "^" .. AMAD .. CONS .. A .. CONS .. UOPT .. "$") -- ʾālam "more painful", ʾāḵar "other" end if word == "?" or (rfind(word, "^[a-z][a-z]*$") and sgtype == "?") then --if 'word' is a type, actual value inferred from sg; if sgtype is ?, --propagate it to all derived types return "", "?" end if word == "intf" then if not is_intensive_adj(sgar) then error("Singular stem not in CACCān form: " .. sgar) end local ret = ( sub(AMAD .. N .. UOPT .. "$", AMAD, "nu?$", "") or -- ends in -ʾān sub(AOPTA .. N .. UOPT .. "$", AMAQ, "nu?$", "") -- ends in -ān ) return ret, "inv" end if word == "elf" then local ret = ( sub(ELCD_START .. SK .. "[" .. Y .. W .. "]" .. A .. CONSPAR .. UOPT .. "$", "%1" .. UU .. "%2" .. AMAQ, "ʔa(.)[yw]a(.)u?", "%1ū%2ā") or -- ʾajyad sub(ELCD_START .. SK .. CONSPAR .. A .. CONSPAR .. UOPT .. "$", "%1" .. U .. "%2" .. SK .. "%3" .. AMAQ, "ʔa(.)(.)a(.)u?", "%1u%2%3ā") or -- ʾakbar sub(ELCD_START .. A .. CONSPAR .. SH .. UOPT .. "$", "%1" .. U .. "%2" .. SH .. AMAQ, "ʔa(.)a(.)%2u?", "%1u%2%2ā") or -- ʾaqall sub(ELCD_START .. SK .. CONSPAR .. AAMAQ .. "$", "%1" .. U .. "%2" .. SK .. Y .. ALIF, "ʔa(.)(.)ā", "%1u%2yā") or -- ʾadnā sub("^" .. AMAD .. CONSPAR .. A .. CONSPAR .. UOPT .. "$", HAMZA_ON_ALIF .. U .. "%1" .. SK .. "%2" .. AMAQ, "ʔā(.)a(.)u?", "ʔu%1%2ā") -- ʾālam "more painful", ʾāḵar "other" ) if not ret then error("Singular stem not an elative adjective: " .. sgar) end return ret, "inv" end if word == "cdf" then local ret = ( sub(ELCD_START .. SK .. CONSPAR .. A .. CONSPAR .. UOPT .. "$", "%1" .. A .. "%2" .. SK .. "%3" .. AA .. HAMZA, "ʔa(.)(.)a(.)u?", "%1a%2%3āʔ") or -- ʾaḥmar sub(ELCD_START .. A .. CONSPAR .. SH .. UOPT .. "$", "%1" .. A .. "%2" .. SH .. AA .. HAMZA, "ʔa(.)a(.)%2u?", "%1a%2%2āʔ") or -- ʾalaff sub(ELCD_START .. SK .. CONSPAR .. AAMAQ .. "$", "%1" .. A .. "%2" .. SK .. Y .. AA .. HAMZA, "ʔa(.)(.)ā", "%1a%2yāʔ") -- ʾaʿmā ) if not ret then error("Singular stem not a color/defect adjective: " .. sgar) end return ret, "cd" -- so plural will be correct end -- Regular feminine -- add ة, possibly with stem modifications if word == "rf" then sgar = canon_hamza(sgar) if rfind(sgar, TAM .. UNUOPT .. "$") then --Don't do this or we have problems when forming singulative from --collective with a construct modifier that's feminine --error("Singular stem is already feminine: " .. sgar) return sgar .. "/" .. sgtr, "tri" end local ret = ( sub(AN .. "[" .. ALIF .. AMAQ .. "]$", AAH, "an$", "āh") or -- ends in -an sub(IN .. "$", IY .. AH, "in$", "iya") or -- ends in -in sub(AOPT .. "[" .. ALIF .. AMAQ .. "]$", AAH, "ā$", "āh") or -- ends in alif or alif maqṣūra -- We separate the ʾiʿrāb and no-ʾiʿrāb cases even though we can -- do a single Arabic regexp to cover both because we want to -- remove u(n) from the translit only when ʾiʿrāb is present to -- lessen the risk of removing -un in the actual stem. We also -- allow for cases where the ʾiʿrāb is present in Arabic but not -- in translit. sub(UNU .. "$", AH, "un?$", "a", "$", "a") or -- anything else + -u(n) sub("$", AH, "$", "a") -- anything else ) return ret, "tri" end if word == "f" then if sgtype == "cd" then return export.stem_and_type("cdf", sg, sgtype, true, "sg", pos) elseif sgtype == "el" then return export.stem_and_type("elf", sg, sgtype, true, "sg", pos) elseif sgtype =="di" and is_intensive_adj(sgar) then return export.stem_and_type("intf", sg, sgtype, true, "sg", pos) elseif sgtype == "di" and is_elcd_adj(sgar) then -- If form is elative or color-defect, we don't know which of -- the two it is, and each has a special feminine which isn't -- the regular "just add ة", so shunt to unknown. This will -- ensure that ?'s appear in place of the inflection -- also -- for dual and plural. return export.stem_and_type("?", sg, sgtype, true, "sg", pos) else return export.stem_and_type("rf", sg, sgtype, true, "sg", pos) end end if word == "rm" then sgar = canon_hamza(sgar) --Don't do this or we have problems when forming collective from --singulative with a construct modifier that's not feminine, --e.g. شَجَرَة التُفَّاح --if not rfind(sgar, TAM .. UNUOPT .. "$") then -- error("Singular stem is not feminine: " .. sgar) --end local ret = ( sub(AAH .. UNUOPT .. "$", AN .. AMAQ, "ātun?$", "an", "ā[ht]$", "an") or -- in -āh sub(IY .. AH .. UNUOPT .. "$", IN, "iyatun?$", "in", "iya$", "in") or -- ends in -iya sub(AOPT .. TAM .. UNUOPT .. "$", "", "atun?$", "", "a$", "") or --ends in -a sub("$", "", "$", "") -- do nothing ) return ret, "tri" end if word == "m" then -- FIXME: handle cd (color-defect) -- FIXME: handle el (elative) -- FIXME: handle int (intensive) return export.stem_and_type("rm", sg, sgtype, false, "sg", pos) end -- The plural used for feminine adjectives. If the singular type is -- color/defect or it looks like a feminine color/defect adjective, -- use color/defect plural. Otherwise shunt to sound feminine plural. if word == "fp" then if sgtype == "cd" or is_feminine_cd_adj(sgar) then return export.stem_and_type("cdp", sg, sgtype, true, "pl", pos) else return export.stem_and_type("sfp", sg, sgtype, true, "pl", pos) end end if word == "sp" then if sgtype == "cd" then return export.stem_and_type("cdp", sg, sgtype, isfem, "pl", pos) elseif isfem then return export.stem_and_type("sfp", sg, sgtype, true, "pl", pos) elseif sgtype == "an" then return export.stem_and_type("awnp", sg, sgtype, false, "pl", pos) else return export.stem_and_type("smp", sg, sgtype, false, "pl", pos) end end -- Conservative plural, as used for masculine plural adjectives. -- If singular type is color-defect, shunt to color-defect plural; else -- shunt to unknown, so ? appears in place of the inflections. if word == "p" then if sgtype == "cd" then return export.stem_and_type("cdp", sg, sgtype, isfem, "pl", pos) else return export.stem_and_type("?", sg, sgtype, isfem, "pl", pos) end end -- Special plural used for paucal plurals of singulatives. If ends in -ة -- (most common), use strong feminine plural; if ends with -iyy (next -- most common), use strong masculine plural; ends default to "p" -- (conservative plural). if word == "paucp" then if rfind(sgar, TAM .. UNUOPT .. "$") then return export.stem_and_type("sfp", sg, sgtype, true, "pl", pos) elseif rfind(sgar, IY .. SH .. UNUOPT .. "$") then return export.stem_and_type("smp", sg, sgtype, false, "pl", pos) else return export.stem_and_type("p", sg, sgtype, isfem, "pl", pos) end end if word == "d" then sgar = canon_hamza(sgar) local ret = ( sub(AN .. "[" .. ALIF .. AMAQ .. "]$", AY .. AAN, "an$", "ayān") or -- ends in -an sub(IN .. "$", IY .. AAN, "in$", "iyān") or -- ends in -in sgtype == "lwinv" and sub(AOPTA .. "$", AT .. AAN, "[āa]$", "atān") or -- lwinv, ends in alif; allow translit with short -a sub(AOPT .. "[" .. ALIF .. AMAQ .. "]$", AY .. AAN, "ā$", "ayān") or -- ends in alif or alif maqṣūra -- We separate the ʾiʿrāb and no-ʾiʿrāb cases even though we can -- do a single Arabic regexp to cover both because we want to -- remove u(n) from the translit only when ʾiʿrāb is present to -- lessen the risk of removing -un in the actual stem. We also -- allow for cases where the ʾiʿrāb is present in Arabic but not -- in translit. -- -- NOTE: Collapsing the "h$" and "$" cases into "h?$" doesn't work -- in the case of words ending in -āh, which end up having the -- translit end in -tāntān. sub(TAM .. UNU .. "$", T .. AAN, "[ht]un?$", "tān", "h$", "tān", "$", "tān") or -- ends in tāʾ marbuṭa + -u(n) sub(TAM .. "$", T .. AAN, "h$", "tān", "$", "tān") or -- ends in tāʾ marbuṭa -- Same here as above sub(UNU .. "$", AAN, "un?$", "ān", "$", "ān") or -- anything else + -u(n) sub("$", AAN, "$", "ān") -- anything else ) return ret, "d" end -- Strong feminine plural in -āt, possibly with stem modifications if word == "sfp" then sgar = canon_hamza(sgar) sgar = rsub(sgar, AMAD .. "(" .. TAM .. UNUOPT .. ")$", HAMZA_PH .. AA .. "%1") sgar = rsub(sgar, HAMZA_ANY .. "(" .. AOPT .. TAM .. UNUOPT .. ")$", HAMZA_PH .. "%1") local ret = ( sub(AOPTA .. TAM .. UNUOPT .. "$", AYAAT, "ā[ht]$", "ayāt", "ātun?$", "ayāt") or -- ends in -āh sub(AOPT .. TAM .. UNUOPT .. "$", AAT, "a$", "āt", "atun?$", "āt") or -- ends in -a sub(AN .. "[" .. ALIF .. AMAQ .. "]$", AYAAT, "an$", "ayāt") or -- ends in -an sub(IN .. "$", IY .. AAT, "in$", "iyāt") or -- ends in -in sgtype == "inv" and ( sub(AOPT .. "[" .. ALIF .. AMAQ .. "]$", AYAAT, "ā$", "ayāt") -- ends in alif or alif maqṣūra ) or sgtype == "lwinv" and ( sub(AOPTA .. "$", AAT, "[āa]$", "āt") -- loanword ending in tall alif; allow translit with short -a ) or -- We separate the ʾiʿrāb and no-ʾiʿrāb cases even though we can -- do a single Arabic regexp to cover both because we want to -- remove u(n) from the translit only when ʾiʿrāb is present to -- lessen the risk of removing -un in the actual stem. We also -- allow for cases where the ʾiʿrāb is present in Arabic but not -- in translit. sub(UNU .. "$", AAT, "un?$", "āt", "$", "āt") or -- anything else + -u(n) sub("$", AAT, "$", "āt") -- anything else ) return ret, "sfp" end if word == "smp" then sgar = canon_hamza(sgar) local ret = ( sub(IN .. "$", UUN, "in$", "ūn") or -- ends in -in -- See comments above for why we have two cases, one for UNU and -- one for non-UNU sub(UNU .. "$", UUN, "un?$", "ūn", "$", "ūn") or -- anything else + -u(n) sub("$", UUN, "$", "ūn") -- anything else ) return ret, "smp" end -- Color/defect plural; singular must be masculine or feminine -- color/defect adjective if word == "cdp" then local ret = ( sub(ELCD_START .. SK .. W .. A .. CONSPAR .. UOPT .. "$", "%1" .. UU .. "%2", "ʔa(.)wa(.)u?", "%1ū%2") or -- ʾaswad sub(ELCD_START .. SK .. Y .. A .. CONSPAR .. UOPT .. "$", "%1" .. II .. "%2", "ʔa(.)ya(.)u?", "%1ī%2") or -- ʾabyaḍ sub(ELCD_START .. SK .. CONSPAR .. A .. CONSPAR .. UOPT .. "$", "%1" .. U .. "%2" .. SK .. "%3", "ʔa(.)(.)a(.)u?", "%1u%2%3") or -- ʾaḥmar sub(ELCD_START .. A .. CONSPAR .. SH .. UOPT .. "$", "%1" .. U .. "%2" .. SH, "ʔa(.)a(.)%2u?", "%1u%2%2") or -- ʾalaff sub(ELCD_START .. SK .. CONSPAR .. AAMAQ .. "$", "%1" .. U .. "%2" .. Y, "ʔa(.)(.)ā", "%1u%2y") or -- ʾaʿmā sub("^" .. CONSPAR .. A .. W .. SKOPT .. CONSPAR .. AA .. HAMZA .. UOPT .. "$", "%1" .. UU .. "%2", "(.)aw(.)āʔu?", "%1ū%2") or -- sawdāʾ sub("^" .. CONSPAR .. A .. Y .. SKOPT .. CONSPAR .. AA .. HAMZA .. UOPT .. "$", "%1" .. II .. "%2", "(.)ay(.)āʔu?", "%1ī%2") or -- bayḍāʾ sub("^" .. CONSPAR .. A .. CONSPAR .. SK .. CONSPAR .. AA .. HAMZA .. UOPT .. "$", "%1" .. U .. "%2" .. SK .. "%3", "(.)a(.)(.)āʔu?", "%1u%2%3") or -- ʾḥamrāʾ/ʿamyāʾ sub("^" .. CONSPAR .. A .. CONSPAR .. SH .. AA .. HAMZA .. UOPT .. "$", "%1" .. U .. "%2" .. SH, "(.)a(.)%2āʔu?", "%1u%2%2") -- laffāʾ ) if not ret then error("For 'cdp', singular must be masculine or feminine color/defect adjective: " .. sgar) end return ret, "tri" end if word == "awnp" then local ret = ( sub(AN .. "[" .. ALIF .. AMAQ .. "]$", AWSK .. N, "an$", "awn") -- ends in -an ) if not ret then error("For 'awnp', singular must end in -an: " .. sgar) end return ret, "awnp" end return artr, export.detect_type(ar, isfem, num, pos) end -- local outersep = " <small style=\"color: #888\">or</small> " -- need LRM here so multiple Arabic plurals end up agreeing in order with -- the transliteration local outersep = LRM .. "; " local innersep = LRM .. "/" -- Subfunction of show_form(), used to implement recursively generating -- all combinations of elements from FORM and from each of the items in -- LIST_OF_MODS, both of which are either arrays of strings or arrays of -- arrays of strings, where the strings are in the form ARABIC/TRANSLIT, -- as described in show_form(). TRAILING_ARTRMODS is an array of ARTRMOD -- items, each of which is a two-element array of ARMOD (Arabic) and TRMOD -- (transliteration), accumulating all of the suffixes generated so far -- in the recursion process. Each time we recur we take the last MOD item -- off of LIST_OF_MODS, separate each element in MOD into its Arabic and -- Latin parts and to each Arabic/Latin pair we add all elements in -- TRAILING_ARTRMODS, passing the newly generated list of ARTRMOD items -- down the next recursion level with the shorter LIST_OF_MODS. We end up -- returning a string to insert into the Wiki-markup table. function show_form_1(form, list_of_mods, trailing_artrmods, use_parens) if #list_of_mods == 0 then local arabicvals = {} local latinvals = {} local parenvals = {} -- Accumulate separately the Arabic and transliteration into -- ARABICVALS and LATINVALS, then concatenate each down below. -- However, if USE_PARENS, we put each transliteration directly -- after the corresponding Arabic, in parens, and put the results -- in PARENVALS, which get concatenated below. (This is used in the -- title of the declension table.) for _, artrmod in ipairs(trailing_artrmods) do assert(#artrmod == 2) local armod = artrmod[1] local trmod = artrmod[2] for _, subform in ipairs(form) do local ar_span, tr_span local ar_subspan, tr_subspan local ar_subspans = {} local tr_subspans = {} if type(subform) ~= "table" then subform = {subform} end for _, subsubform in ipairs(subform) do local arabic, translit = split_arabic_tr(subsubform) if arabic == "-" then ar_subspan = "&mdash;" tr_subspan = "&mdash;" else tr_subspan = (rfind(translit, BOGUS_CHAR) or rfind(trmod, BOGUS_CHAR)) and "?" or require("Module:script utilities").tag_translit(translit .. trmod, lang, "default", 'style="color: #888;"') -- implement elision of al- after vowel tr_subspan = rsub(tr_subspan, "([aeiouāēīōū][ %-])a([sšṣtṯṭdḏḍzžẓnrḷl]%-)", "%1%2") tr_subspan = rsub(tr_subspan, "([aeiouāēīōū][ %-])a(llāh)", "%1%2") ar_subspan = m_links.full_link({lang = lang, term = arabic .. armod, tr = "-"}) end insert_if_not(ar_subspans, ar_subspan) insert_if_not(tr_subspans, tr_subspan) end ar_span = table.concat(ar_subspans, innersep) tr_span = table.concat(tr_subspans, innersep) if use_parens then table.insert(parenvals, ar_span .. " (" .. tr_span .. ")") else table.insert(arabicvals, ar_span) table.insert(latinvals, tr_span) end end end if use_parens then return table.concat(parenvals, outersep) else local arabic_span = table.concat(arabicvals, outersep) local latin_span = table.concat(latinvals, outersep) return arabic_span .. "<br />" .. latin_span end else local last_mods = table.remove(list_of_mods) local artrmods = {} for _, mod in ipairs(last_mods) do if type(mod) ~= "table" then mod = {mod} end for _, submod in ipairs(mod) do local armod, trmod = split_arabic_tr(submod) -- If the value is -, we need to create a blank entry -- rather than skipping it; if we have no entries at any -- level, then there will be no overall entries at all -- because the inside of the loop at the next level will -- never be executed. if armod == "-" then armod = "" trmod = "" end if armod ~= "" then armod = ' ' .. armod end if trmod ~= "" then trmod = ' ' .. trmod end for _, trailing_artrmod in ipairs(trailing_artrmods) do local trailing_armod = trailing_artrmod[1] local trailing_trmod = trailing_artrmod[2] armod = armod .. trailing_armod trmod = trmod .. trailing_trmod artrmod = {armod, trmod} table.insert(artrmods, artrmod) end end end return show_form_1(form, list_of_mods, artrmods, use_parens) end end -- Generate a string to substitute into a particular form in a Wiki-markup -- table. FORM is the set of inflected forms corresponding to the base, -- either an array of strings (referring e.g. to different possible plurals) -- or an array of arrays of strings (the first level referring e.g. to -- different possible plurals and the inner level referring typically to -- hamza-spelling variants). LIST_OF_MODS is an array of MODS elements, one -- per modifier. Each MODS element is the set of inflected forms corresponding -- to the modifier and is of the same form as FORM, i.e. an array of strings -- or an array of arrays of strings. Each string is typically of the form -- "ARABIC/TRANSLIT", i.e. an Arabic string and a Latin string separated -- by a slash. We loop over all possible combinations of elements from -- each array; this requires recursion. function show_form(form, list_of_mods, use_parens) if not form then return "&mdash;" elseif type(form) ~= "table" then error("a non-table value was given in the list of inflected forms.") end if #form == 0 then return "&mdash;" end -- We need to start the recursion with the third parameter containing -- one blank element rather than no elements, otherwise no elements -- will be propagated to the next recursion level. return show_form_1(form, list_of_mods, {{"", ""}}, use_parens) end -- Create a Wiki-markup table using the values in DATA and the template in -- WIKICODE. function make_table(data, wikicode) -- Function used as replace arg of call to rsub(). Replace the -- specified param with its (HTML) value. The param references appear -- as {{{PARAM}}} in the wikicode. local function repl(param) if param == "pos" then return data.pos elseif param == "info" then return data.title and " (" .. data.title .. ")" or "" elseif rfind(param, "type$") then return table.concat(data.forms[param] or {"&mdash;"}, outersep) else local list_of_mods = {} for _, mod in ipairs(mod_list) do local mods = data.forms[mod .. "_" .. param] if not mods or #mods == 0 then -- We need one blank element rather than no element, -- otherwise no elements will be propagated from one -- recursion level to the next. mods = {""} end table.insert(list_of_mods, mods) end return show_form(data.forms[param], list_of_mods, param == "lemma") end end -- For states not in the list of those to be displayed, clear out the -- corresponding inflections so they appear as a dash. for _, state in ipairs(data.allstates) do if not contains(data.states, state) then for _, numgen in ipairs(data.numgens()) do for _, case in ipairs(data.allcases) do data.forms[case .. "_" .. numgen .. "_" .. state] = {} end end end end return rsub(wikicode, "{{{([a-z_]+)}}}", repl) .. m_utilities.format_categories(data.categories, lang) end -- Generate part of the noun table for a given number spec NUM (e.g. sg) function generate_noun_num(num) return [=[! style="background: #CDCDCD;" | Indefinite ! style="background: #CDCDCD;" | Definite ! style="background: #CDCDCD;" | Construct |- ! style="background: #EFEFEF;" | Informal | {{{inf_]=] .. num .. [=[_ind}}} | {{{inf_]=] .. num .. [=[_def}}} | {{{inf_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Nominative | {{{nom_]=] .. num .. [=[_ind}}} | {{{nom_]=] .. num .. [=[_def}}} | {{{nom_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Accusative | {{{acc_]=] .. num .. [=[_ind}}} | {{{acc_]=] .. num .. [=[_def}}} | {{{acc_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Genitive | {{{gen_]=] .. num .. [=[_ind}}} | {{{gen_]=] .. num .. [=[_def}}} | {{{gen_]=] .. num .. [=[_con}}} ]=] end -- Make the noun table function make_noun_table(data) local wikicode = [=[<div class="NavFrame"> <div class="NavHead">Declension of {{{pos}}} {{{lemma}}}</div> <div class="NavContent"> {| class="inflection-table" style="border-width: 1px; border-collapse: collapse; background:#F9F9F9; text-align:center; width:100%;" ]=] for _, num in ipairs(data.numbers) do if num == "du" then wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" | Dual ]=] .. generate_noun_num("du") else wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=2 | ]=] .. data.engnumberscap[num] .. "\n" .. [=[ ! style="background: #CDCDCD;" colspan=3 | {{{]=] .. num .. [=[_type}}} |- ]=] .. generate_noun_num(num) end end wikicode = wikicode .. [=[|} </div> </div>]=] return make_table(data, wikicode) end -- Generate part of the gendered-noun table for a given numgen spec -- NUM (e.g. m_sg) function generate_gendered_noun_num(num) return [=[|- ! style="background: #CDCDCD;" | Indefinite ! style="background: #CDCDCD;" | Definite ! style="background: #CDCDCD;" | Construct ! style="background: #CDCDCD;" | Indefinite ! style="background: #CDCDCD;" | Definite ! style="background: #CDCDCD;" | Construct |- ! style="background: #EFEFEF;" | Informal | {{{inf_m_]=] .. num .. [=[_ind}}} | {{{inf_m_]=] .. num .. [=[_def}}} | {{{inf_m_]=] .. num .. [=[_con}}} | {{{inf_f_]=] .. num .. [=[_ind}}} | {{{inf_f_]=] .. num .. [=[_def}}} | {{{inf_f_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Nominative | {{{nom_m_]=] .. num .. [=[_ind}}} | {{{nom_m_]=] .. num .. [=[_def}}} | {{{nom_m_]=] .. num .. [=[_con}}} | {{{nom_f_]=] .. num .. [=[_ind}}} | {{{nom_f_]=] .. num .. [=[_def}}} | {{{nom_f_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Accusative | {{{acc_m_]=] .. num .. [=[_ind}}} | {{{acc_m_]=] .. num .. [=[_def}}} | {{{acc_m_]=] .. num .. [=[_con}}} | {{{acc_f_]=] .. num .. [=[_ind}}} | {{{acc_f_]=] .. num .. [=[_def}}} | {{{acc_f_]=] .. num .. [=[_con}}} |- ! style="background: #EFEFEF;" | Genitive | {{{gen_m_]=] .. num .. [=[_ind}}} | {{{gen_m_]=] .. num .. [=[_def}}} | {{{gen_m_]=] .. num .. [=[_con}}} | {{{gen_f_]=] .. num .. [=[_ind}}} | {{{gen_f_]=] .. num .. [=[_def}}} | {{{gen_f_]=] .. num .. [=[_con}}} ]=] end -- Make the gendered noun table function make_gendered_noun_table(data) local wikicode = [=[<div class="NavFrame"> <div class="NavHead">Declension of {{{pos}}} {{{lemma}}}</div> <div class="NavContent"> {| class="inflection-table" style="border-width: 1px; border-collapse: collapse; background:#F9F9F9; text-align:center; width:100%;" ]=] for _, num in ipairs(data.numbers) do if num == "du" then wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=2 | Dual ! style="background: #CDCDCD;" colspan=3 | Masculine ! style="background: #CDCDCD;" colspan=3 | Feminine ]=] .. generate_gendered_noun_num("du") else wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=3 | ]=] .. data.engnumberscap[num] .. "\n" .. [=[ ! style="background: #CDCDCD;" colspan=3 | Masculine ! style="background: #CDCDCD;" colspan=3 | Feminine |- ! style="background: #CDCDCD;" colspan=3 | {{{m_]=] .. num .. [=[_type}}} ! style="background: #CDCDCD;" colspan=3 | {{{f_]=] .. num .. [=[_type}}} ]=] .. generate_gendered_noun_num(num) end end wikicode = wikicode .. [=[|} </div> </div>]=] return make_table(data, wikicode) end -- Generate part of the adjective table for a given numgen spec NUM (e.g. m_sg) function generate_adj_num(num) return [=[|- ! style="background: #CDCDCD;" | Indefinite ! style="background: #CDCDCD;" | Definite ! style="background: #CDCDCD;" | Indefinite ! style="background: #CDCDCD;" | Definite |- ! style="background: #EFEFEF;" | Informal | {{{inf_m_]=] .. num .. [=[_ind}}} | {{{inf_m_]=] .. num .. [=[_def}}} | {{{inf_f_]=] .. num .. [=[_ind}}} | {{{inf_f_]=] .. num .. [=[_def}}} |- ! style="background: #EFEFEF;" | Nominative | {{{nom_m_]=] .. num .. [=[_ind}}} | {{{nom_m_]=] .. num .. [=[_def}}} | {{{nom_f_]=] .. num .. [=[_ind}}} | {{{nom_f_]=] .. num .. [=[_def}}} |- ! style="background: #EFEFEF;" | Accusative | {{{acc_m_]=] .. num .. [=[_ind}}} | {{{acc_m_]=] .. num .. [=[_def}}} | {{{acc_f_]=] .. num .. [=[_ind}}} | {{{acc_f_]=] .. num .. [=[_def}}} |- ! style="background: #EFEFEF;" | Genitive | {{{gen_m_]=] .. num .. [=[_ind}}} | {{{gen_m_]=] .. num .. [=[_def}}} | {{{gen_f_]=] .. num .. [=[_ind}}} | {{{gen_f_]=] .. num .. [=[_def}}} ]=] end -- Make the adjective table function make_adj_table(data) local wikicode = [=[<div class="NavFrame"> <div class="NavHead">Declension of {{{pos}}} {{{lemma}}}</div> <div class="NavContent"> {| class="inflection-table" style="border-width: 1px; border-collapse: collapse; background:#F9F9F9; text-align:center; width:100%;" ]=] if contains(data.numbers, "sg") then wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=3 | Singular ! style="background: #CDCDCD;" colspan=2 | Masculine ! style="background: #CDCDCD;" colspan=2 | Feminine |- ! style="background: #CDCDCD;" colspan=2 | {{{m_sg_type}}} ! style="background: #CDCDCD;" colspan=2 | {{{f_sg_type}}} ]=] .. generate_adj_num("sg") end if contains(data.numbers, "du") then wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=2 | Dual ! style="background: #CDCDCD;" colspan=2 | Masculine ! style="background: #CDCDCD;" colspan=2 | Feminine ]=] .. generate_adj_num("du") end if contains(data.numbers, "pl") then wikicode = wikicode .. [=[|- ! style="background: #CDCDCD;" rowspan=3 | Plural ! style="background: #CDCDCD;" colspan=2 | Masculine ! style="background: #CDCDCD;" colspan=2 | Feminine |- ! style="background: #CDCDCD;" colspan=2 | {{{m_pl_type}}} ! style="background: #CDCDCD;" colspan=2 | {{{f_pl_type}}} ]=] .. generate_adj_num("pl") end wikicode = wikicode .. [=[|} </div> </div>]=] return make_table(data, wikicode) end return export -- For Vim, so we get 4-space tabs -- vim: set ts=4 sw=4 noet: 96v82roh3lphesnep9q8uq2owulgltb Modul:zh/link 828 160439 628972 2024-11-06T17:53:52Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local M = {} local len = mw.ustring.len local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local find = mw.ustring.find local function format_Chinese_text(text) return '<span class="Hani" lang="zh">' .. text .. '</span>' end local function format_Chinese_text_trad(text) return '<span class="Hant" lang="zh-Hant">' .. text .. '</span>' end local function format_Chinese_text_simp(text) return '<span class="Hans" l...“ yozuvi orqali yangi sahifa yaratildi 628972 Scribunto text/plain local M = {} local len = mw.ustring.len local sub = mw.ustring.sub local gsub = mw.ustring.gsub local match = mw.ustring.match local find = mw.ustring.find local function format_Chinese_text(text) return '<span class="Hani" lang="zh">' .. text .. '</span>' end local function format_Chinese_text_trad(text) return '<span class="Hant" lang="zh-Hant">' .. text .. '</span>' end local function format_Chinese_text_simp(text) return '<span class="Hans" lang="zh-Hans">' .. text .. '</span>' end local function format_rom(text) return text and '<i><span class="tr Latn" lang="zh-Latn">' .. text .. '</span></i>' or nil end local function format_gloss(text) return text and '“' .. text .. '”' or nil end function M.link(frame, mention, args, pagename, no_transcript) if (args and args[1] == '') or (frame and frame:getParent().args and frame:getParent().args[1] == '') then return '' end local params = { [1] = {}, [2] = {}, [3] = {}, [4] = {}, ['gloss'] = {}, ['tr'] = {}, ['lit'] = {}, ['t'] = { alias_of = 'gloss' }, } if mention then params['note'] = {} end local moduleCalled if args then moduleCalled = true end args = args or frame:getParent().args if not moduleCalled then params[1].required = true end args = require("Module:parameters").process(args, params) if moduleCalled then if not args[1] then return "" end end if not pagename then pagename = mw.loadData("Module:headword/data").pagename end local text, tr, gloss, cat if args[2] and match(args[2], '[一-龯㐀-䶵]') then gloss = args[4] tr = args[3] text = args[1] .. '/' .. args[2] else text = args[1] if args['gloss'] then tr = args[2] gloss = args['gloss'] else if args[3] or (args[2] and (match(args[2], '[āōēīūǖáóéíúǘǎǒěǐǔǚàòèìùǜâêîôû̍ⁿ]') or match(args[2], '[bcdfghjklmnpqrstwz]h?y?[aeiou][aeiou]?[iumnptk]?g?[1-9]'))) then tr = args[2] gloss = args[3] else gloss = args[2] end end end if args['tr'] then tr = args['tr'] gloss = gloss or args[2] end if text then if not text:match'%[%[.+%]%]' then local m_zh = require("Module:zh") local words = mw.text.split(text, "/", true) if #words == 1 and m_zh.ts_determ(words[1]) == 'trad' and not match(words[1], '%*') then table.insert(words, m_zh.ts(words[1])) end if not tr and not no_transcript and words[1] then cap = find(words[1], "^%^") words[1] = gsub(words[1], "^%^", "") if words[2] then words[2] = gsub(words[2], "^%^", "") end tr, cat = require("Module:zh/extract").extract_pron(words[1], "m", cap) end for i, word in ipairs(words) do word = gsub(word, '%*', '') if mention then if m_zh.ts_determ(words[i]) == 'both' then words[i] = '<i class="Hani mention" lang="zh">[[' .. word .. '#Chinese|' .. word .. ']]</i>' elseif m_zh.ts_determ(words[i]) == 'trad' then words[i] = '<i class="Hant mention" lang="zh-Hant">[[' .. word .. '#Chinese|' .. word .. ']]</i>' else words[i] = '<i class="Hans mention" lang="zh-Hans">[[' .. word .. '#Chinese|' .. word .. ']]</i>' end --[[ (disabled to allow links to, for example, a link to 冥王星#Chinese from 冥王星#Japanese. 18 May, 2016) elseif word == pagename then word = format_Chinese_text('<b>' .. word .. '</b>') ]] else if m_zh.ts_determ(words[i]) == 'both' then words[i] = format_Chinese_text('[[' .. word .. '#Chinese|' .. word .. ']]') elseif m_zh.ts_determ(words[i]) == 'trad' then words[i] = format_Chinese_text_trad('[[' .. word .. '#Chinese|' .. word .. ']]') else words[i] = format_Chinese_text_simp('[[' .. word .. '#Chinese|' .. word .. ']]') end end end text = table.concat(words, format_Chinese_text('/')) else text = require("Module:links").language_link{ term = text, lang = require("Module:tili").getByCode("zh"), } if mention then text = '<i class="Hani mention" lang="zh">' .. gsub(text, "%*", "") .. '</i>' else text = format_Chinese_text(gsub(text, "%*", "")) end end end if tr == '-' or no_transcript then tr = nil -- allow translit to be disabled: remove translit if it is "-", just like normal {{l}} end local notes = args['note'] local lit = args['lit'] if tr or gloss or notes or lit then local annotations = {} if tr then tr = format_rom(tr) tr = gsub(tr, "&#39;", "'") tr = gsub(tr, "#", "") table.insert(annotations, tr) end if gloss then table.insert(annotations, format_gloss(gloss)) end table.insert(annotations, notes) if lit then table.insert(annotations, "literally " .. format_gloss(lit)) end annotations = table.concat(annotations, ", ") text = text .. " (" .. annotations .. ")" end return text .. (cat or "") end -- we cannot just return the function here because this is also invoked by a template. return M jdhgz68wbohl41z78cddby46o62pvmq Modul:data/entities 828 160440 628974 2024-11-06T17:58:09Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „return { aacute = "\195\161", -- á Aacute = "\195\129", -- Á abreve = "\196\131", -- ă Abreve = "\196\130", -- Ă ac = "\226\136\190", -- ∾ acd = "\226\136\191", -- ∿ acE = "\226\136\190\204\179", -- ∾̳ acirc = "\195\162", -- â Acirc = "\195\130", --  acute = "\194\180", -- ´ acy = "\208\176", -- а Acy = "\208\144", -- А aelig = "\195\166", -- æ AElig = "\195\134", -- Æ af = "\226\129\161", -- [function application]...“ yozuvi orqali yangi sahifa yaratildi 628974 Scribunto text/plain return { aacute = "\195\161", -- á Aacute = "\195\129", -- Á abreve = "\196\131", -- ă Abreve = "\196\130", -- Ă ac = "\226\136\190", -- ∾ acd = "\226\136\191", -- ∿ acE = "\226\136\190\204\179", -- ∾̳ acirc = "\195\162", -- â Acirc = "\195\130", --  acute = "\194\180", -- ´ acy = "\208\176", -- а Acy = "\208\144", -- А aelig = "\195\166", -- æ AElig = "\195\134", -- Æ af = "\226\129\161", -- [function application] afr = "\240\157\148\158", -- 𝔞 Afr = "\240\157\148\132", -- 𝔄 agrave = "\195\160", -- à Agrave = "\195\128", -- À alefsym = "\226\132\181", -- ℵ aleph = "\226\132\181", -- ℵ alpha = "\206\177", -- α Alpha = "\206\145", -- Α amacr = "\196\129", -- ā Amacr = "\196\128", -- Ā amalg = "\226\168\191", -- ⨿ amp = "\38", -- & AMP = "\38", -- & ["and"] = "\226\136\167", -- ∧ And = "\226\169\147", -- ⩓ andand = "\226\169\149", -- ⩕ andd = "\226\169\156", -- ⩜ andslope = "\226\169\152", -- ⩘ andv = "\226\169\154", -- ⩚ ang = "\226\136\160", -- ∠ ange = "\226\166\164", -- ⦤ angle = "\226\136\160", -- ∠ angmsd = "\226\136\161", -- ∡ angmsdaa = "\226\166\168", -- ⦨ angmsdab = "\226\166\169", -- ⦩ angmsdac = "\226\166\170", -- ⦪ angmsdad = "\226\166\171", -- ⦫ angmsdae = "\226\166\172", -- ⦬ angmsdaf = "\226\166\173", -- ⦭ angmsdag = "\226\166\174", -- ⦮ angmsdah = "\226\166\175", -- ⦯ angrt = "\226\136\159", -- ∟ angrtvb = "\226\138\190", -- ⊾ angrtvbd = "\226\166\157", -- ⦝ angsph = "\226\136\162", -- ∢ angst = "\195\133", -- Å angzarr = "\226\141\188", -- ⍼ aogon = "\196\133", -- ą Aogon = "\196\132", -- Ą aopf = "\240\157\149\146", -- 𝕒 Aopf = "\240\157\148\184", -- 𝔸 ap = "\226\137\136", -- ≈ apacir = "\226\169\175", -- ⩯ ape = "\226\137\138", -- ≊ apE = "\226\169\176", -- ⩰ apid = "\226\137\139", -- ≋ apos = "\39", -- ' ApplyFunction = "\226\129\161", -- [function application] approx = "\226\137\136", -- ≈ approxeq = "\226\137\138", -- ≊ aring = "\195\165", -- å Aring = "\195\133", -- Å ascr = "\240\157\146\182", -- 𝒶 Ascr = "\240\157\146\156", -- 𝒜 Assign = "\226\137\148", -- ≔ ast = "\42", -- * asymp = "\226\137\136", -- ≈ asympeq = "\226\137\141", -- ≍ atilde = "\195\163", -- ã Atilde = "\195\131", -- à auml = "\195\164", -- ä Auml = "\195\132", -- Ä awconint = "\226\136\179", -- ∳ awint = "\226\168\145", -- ⨑ backcong = "\226\137\140", -- ≌ backepsilon = "\207\182", -- ϶ backprime = "\226\128\181", -- ‵ backsim = "\226\136\189", -- ∽ backsimeq = "\226\139\141", -- ⋍ Backslash = "\226\136\150", -- ∖ Barv = "\226\171\167", -- ⫧ barvee = "\226\138\189", -- ⊽ barwed = "\226\140\133", -- ⌅ Barwed = "\226\140\134", -- ⌆ barwedge = "\226\140\133", -- ⌅ bbrk = "\226\142\181", -- ⎵ bbrktbrk = "\226\142\182", -- ⎶ bcong = "\226\137\140", -- ≌ bcy = "\208\177", -- б Bcy = "\208\145", -- Б bdquo = "\226\128\158", -- „ becaus = "\226\136\181", -- ∵ because = "\226\136\181", -- ∵ Because = "\226\136\181", -- ∵ bemptyv = "\226\166\176", -- ⦰ bepsi = "\207\182", -- ϶ bernou = "\226\132\172", -- ℬ Bernoullis = "\226\132\172", -- ℬ beta = "\206\178", -- β Beta = "\206\146", -- Β beth = "\226\132\182", -- ℶ between = "\226\137\172", -- ≬ bfr = "\240\157\148\159", -- 𝔟 Bfr = "\240\157\148\133", -- 𝔅 bigcap = "\226\139\130", -- ⋂ bigcirc = "\226\151\175", -- ◯ bigcup = "\226\139\131", -- ⋃ bigodot = "\226\168\128", -- ⨀ bigoplus = "\226\168\129", -- ⨁ bigotimes = "\226\168\130", -- ⨂ bigsqcup = "\226\168\134", -- ⨆ bigstar = "\226\152\133", -- ★ bigtriangledown = "\226\150\189", -- ▽ bigtriangleup = "\226\150\179", -- △ biguplus = "\226\168\132", -- ⨄ bigvee = "\226\139\129", -- ⋁ bigwedge = "\226\139\128", -- ⋀ bkarow = "\226\164\141", -- ⤍ blacklozenge = "\226\167\171", -- ⧫ blacksquare = "\226\150\170", -- ▪ blacktriangle = "\226\150\180", -- ▴ blacktriangledown = "\226\150\190", -- ▾ blacktriangleleft = "\226\151\130", -- ◂ blacktriangleright = "\226\150\184", -- ▸ blank = "\226\144\163", -- ␣ blk12 = "\226\150\146", -- ▒ blk14 = "\226\150\145", -- ░ blk34 = "\226\150\147", -- ▓ block = "\226\150\136", -- █ bne = "\61\226\131\165", -- =⃥ bnequiv = "\226\137\161\226\131\165", -- ≡⃥ bnot = "\226\140\144", -- ⌐ bNot = "\226\171\173", -- ⫭ bopf = "\240\157\149\147", -- 𝕓 Bopf = "\240\157\148\185", -- 𝔹 bot = "\226\138\165", -- ⊥ bottom = "\226\138\165", -- ⊥ bowtie = "\226\139\136", -- ⋈ boxbox = "\226\167\137", -- ⧉ boxdl = "\226\148\144", -- ┐ boxdL = "\226\149\149", -- ╕ boxDl = "\226\149\150", -- ╖ boxDL = "\226\149\151", -- ╗ boxdr = "\226\148\140", -- ┌ boxdR = "\226\149\146", -- ╒ boxDr = "\226\149\147", -- ╓ boxDR = "\226\149\148", -- ╔ boxh = "\226\148\128", -- ─ boxH = "\226\149\144", -- ═ boxhd = "\226\148\172", -- ┬ boxhD = "\226\149\165", -- ╥ boxHd = "\226\149\164", -- ╤ boxHD = "\226\149\166", -- ╦ boxhu = "\226\148\180", -- ┴ boxhU = "\226\149\168", -- ╨ boxHu = "\226\149\167", -- ╧ boxHU = "\226\149\169", -- ╩ boxminus = "\226\138\159", -- ⊟ boxplus = "\226\138\158", -- ⊞ boxtimes = "\226\138\160", -- ⊠ boxul = "\226\148\152", -- ┘ boxuL = "\226\149\155", -- ╛ boxUl = "\226\149\156", -- ╜ boxUL = "\226\149\157", -- ╝ boxur = "\226\148\148", -- └ boxuR = "\226\149\152", -- ╘ boxUr = "\226\149\153", -- ╙ boxUR = "\226\149\154", -- ╚ boxv = "\226\148\130", -- │ boxV = "\226\149\145", -- ║ boxvh = "\226\148\188", -- ┼ boxvH = "\226\149\170", -- ╪ boxVh = "\226\149\171", -- ╫ boxVH = "\226\149\172", -- ╬ boxvl = "\226\148\164", -- ┤ boxvL = "\226\149\161", -- ╡ boxVl = "\226\149\162", -- ╢ boxVL = "\226\149\163", -- ╣ boxvr = "\226\148\156", -- ├ boxvR = "\226\149\158", -- ╞ boxVr = "\226\149\159", -- ╟ boxVR = "\226\149\160", -- ╠ bprime = "\226\128\181", -- ‵ breve = "\203\152", -- ˘ Breve = "\203\152", -- ˘ brvbar = "\194\166", -- ¦ bscr = "\240\157\146\183", -- 𝒷 Bscr = "\226\132\172", -- ℬ bsemi = "\226\129\143", -- ⁏ bsim = "\226\136\189", -- ∽ bsime = "\226\139\141", -- ⋍ bsol = "\92", -- \ bsolb = "\226\167\133", -- ⧅ bsolhsub = "\226\159\136", -- ⟈ bull = "\226\128\162", -- • bullet = "\226\128\162", -- • bump = "\226\137\142", -- ≎ bumpe = "\226\137\143", -- ≏ bumpE = "\226\170\174", -- ⪮ bumpeq = "\226\137\143", -- ≏ Bumpeq = "\226\137\142", -- ≎ cacute = "\196\135", -- ć Cacute = "\196\134", -- Ć cap = "\226\136\169", -- ∩ Cap = "\226\139\146", -- ⋒ capand = "\226\169\132", -- ⩄ capbrcup = "\226\169\137", -- ⩉ capcap = "\226\169\139", -- ⩋ capcup = "\226\169\135", -- ⩇ capdot = "\226\169\128", -- ⩀ CapitalDifferentialD = "\226\133\133", -- ⅅ caps = "\226\136\169\239\184\128", -- ∩︀ caret = "\226\129\129", -- ⁁ caron = "\203\135", -- ˇ Cayleys = "\226\132\173", -- ℭ ccaps = "\226\169\141", -- ⩍ ccaron = "\196\141", -- č Ccaron = "\196\140", -- Č ccedil = "\195\167", -- ç Ccedil = "\195\135", -- Ç ccirc = "\196\137", -- ĉ Ccirc = "\196\136", -- Ĉ Cconint = "\226\136\176", -- ∰ ccups = "\226\169\140", -- ⩌ ccupssm = "\226\169\144", -- ⩐ cdot = "\196\139", -- ċ Cdot = "\196\138", -- Ċ cedil = "\194\184", -- ¸ Cedilla = "\194\184", -- ¸ cemptyv = "\226\166\178", -- ⦲ cent = "\194\162", -- ¢ centerdot = "\194\183", -- · CenterDot = "\194\183", -- · cfr = "\240\157\148\160", -- 𝔠 Cfr = "\226\132\173", -- ℭ chcy = "\209\135", -- ч CHcy = "\208\167", -- Ч check = "\226\156\147", -- ✓ checkmark = "\226\156\147", -- ✓ chi = "\207\135", -- χ Chi = "\206\167", -- Χ cir = "\226\151\139", -- ○ circ = "\203\134", -- ˆ circeq = "\226\137\151", -- ≗ circlearrowleft = "\226\134\186", -- ↺ circlearrowright = "\226\134\187", -- ↻ circledast = "\226\138\155", -- ⊛ circledcirc = "\226\138\154", -- ⊚ circleddash = "\226\138\157", -- ⊝ CircleDot = "\226\138\153", -- ⊙ circledR = "\194\174", -- ® circledS = "\226\147\136", -- Ⓢ CircleMinus = "\226\138\150", -- ⊖ CirclePlus = "\226\138\149", -- ⊕ CircleTimes = "\226\138\151", -- ⊗ cire = "\226\137\151", -- ≗ cirE = "\226\167\131", -- ⧃ cirfnint = "\226\168\144", -- ⨐ cirmid = "\226\171\175", -- ⫯ cirscir = "\226\167\130", -- ⧂ ClockwiseContourIntegral = "\226\136\178", -- ∲ CloseCurlyDoubleQuote = "\226\128\157", -- ” CloseCurlyQuote = "\226\128\153", -- ’ clubs = "\226\153\163", -- ♣ clubsuit = "\226\153\163", -- ♣ colon = "\58", -- : Colon = "\226\136\183", -- ∷ colone = "\226\137\148", -- ≔ Colone = "\226\169\180", -- ⩴ coloneq = "\226\137\148", -- ≔ comma = "\44", -- , commat = "\64", -- @ comp = "\226\136\129", -- ∁ compfn = "\226\136\152", -- ∘ complement = "\226\136\129", -- ∁ complexes = "\226\132\130", -- ℂ cong = "\226\137\133", -- ≅ congdot = "\226\169\173", -- ⩭ Congruent = "\226\137\161", -- ≡ conint = "\226\136\174", -- ∮ Conint = "\226\136\175", -- ∯ ContourIntegral = "\226\136\174", -- ∮ copf = "\240\157\149\148", -- 𝕔 Copf = "\226\132\130", -- ℂ coprod = "\226\136\144", -- ∐ Coproduct = "\226\136\144", -- ∐ copy = "\194\169", -- © COPY = "\194\169", -- © copysr = "\226\132\151", -- ℗ CounterClockwiseContourIntegral = "\226\136\179", -- ∳ crarr = "\226\134\181", -- ↵ cross = "\226\156\151", -- ✗ Cross = "\226\168\175", -- ⨯ cscr = "\240\157\146\184", -- 𝒸 Cscr = "\240\157\146\158", -- 𝒞 csub = "\226\171\143", -- ⫏ csube = "\226\171\145", -- ⫑ csup = "\226\171\144", -- ⫐ csupe = "\226\171\146", -- ⫒ ctdot = "\226\139\175", -- ⋯ cudarrl = "\226\164\184", -- ⤸ cudarrr = "\226\164\181", -- ⤵ cuepr = "\226\139\158", -- ⋞ cuesc = "\226\139\159", -- ⋟ cularr = "\226\134\182", -- ↶ cularrp = "\226\164\189", -- ⤽ cup = "\226\136\170", -- ∪ Cup = "\226\139\147", -- ⋓ cupbrcap = "\226\169\136", -- ⩈ cupcap = "\226\169\134", -- ⩆ CupCap = "\226\137\141", -- ≍ cupcup = "\226\169\138", -- ⩊ cupdot = "\226\138\141", -- ⊍ cupor = "\226\169\133", -- ⩅ cups = "\226\136\170\239\184\128", -- ∪︀ curarr = "\226\134\183", -- ↷ curarrm = "\226\164\188", -- ⤼ curlyeqprec = "\226\139\158", -- ⋞ curlyeqsucc = "\226\139\159", -- ⋟ curlyvee = "\226\139\142", -- ⋎ curlywedge = "\226\139\143", -- ⋏ curren = "\194\164", -- ¤ curvearrowleft = "\226\134\182", -- ↶ curvearrowright = "\226\134\183", -- ↷ cuvee = "\226\139\142", -- ⋎ cuwed = "\226\139\143", -- ⋏ cwconint = "\226\136\178", -- ∲ cwint = "\226\136\177", -- ∱ cylcty = "\226\140\173", -- ⌭ dagger = "\226\128\160", -- † Dagger = "\226\128\161", -- ‡ daleth = "\226\132\184", -- ℸ darr = "\226\134\147", -- ↓ dArr = "\226\135\147", -- ⇓ Darr = "\226\134\161", -- ↡ dash = "\226\128\144", -- ‐ dashv = "\226\138\163", -- ⊣ Dashv = "\226\171\164", -- ⫤ dbkarow = "\226\164\143", -- ⤏ dblac = "\203\157", -- ˝ dcaron = "\196\143", -- ď Dcaron = "\196\142", -- Ď dcy = "\208\180", -- д Dcy = "\208\148", -- Д dd = "\226\133\134", -- ⅆ DD = "\226\133\133", -- ⅅ ddagger = "\226\128\161", -- ‡ ddarr = "\226\135\138", -- ⇊ DDotrahd = "\226\164\145", -- ⤑ ddotseq = "\226\169\183", -- ⩷ deg = "\194\176", -- ° Del = "\226\136\135", -- ∇ delta = "\206\180", -- δ Delta = "\206\148", -- Δ demptyv = "\226\166\177", -- ⦱ dfisht = "\226\165\191", -- ⥿ dfr = "\240\157\148\161", -- 𝔡 Dfr = "\240\157\148\135", -- 𝔇 dHar = "\226\165\165", -- ⥥ dharl = "\226\135\131", -- ⇃ dharr = "\226\135\130", -- ⇂ DiacriticalAcute = "\194\180", -- ´ DiacriticalDot = "\203\153", -- ˙ DiacriticalDoubleAcute = "\203\157", -- ˝ DiacriticalGrave = "\96", -- ` DiacriticalTilde = "\203\156", -- ˜ diam = "\226\139\132", -- ⋄ diamond = "\226\139\132", -- ⋄ Diamond = "\226\139\132", -- ⋄ diamondsuit = "\226\153\166", -- ♦ diams = "\226\153\166", -- ♦ die = "\194\168", -- ¨ DifferentialD = "\226\133\134", -- ⅆ digamma = "\207\157", -- ϝ disin = "\226\139\178", -- ⋲ div = "\195\183", -- ÷ divide = "\195\183", -- ÷ divideontimes = "\226\139\135", -- ⋇ divonx = "\226\139\135", -- ⋇ djcy = "\209\146", -- ђ DJcy = "\208\130", -- Ђ dlcorn = "\226\140\158", -- ⌞ dlcrop = "\226\140\141", -- ⌍ dollar = "\36", -- $ dopf = "\240\157\149\149", -- 𝕕 Dopf = "\240\157\148\187", -- 𝔻 dot = "\203\153", -- ˙ Dot = "\194\168", -- ¨ DotDot = "\226\131\156", -- ⃜ doteq = "\226\137\144", -- ≐ doteqdot = "\226\137\145", -- ≑ DotEqual = "\226\137\144", -- ≐ dotminus = "\226\136\184", -- ∸ dotplus = "\226\136\148", -- ∔ dotsquare = "\226\138\161", -- ⊡ doublebarwedge = "\226\140\134", -- ⌆ DoubleContourIntegral = "\226\136\175", -- ∯ DoubleDot = "\194\168", -- ¨ DoubleDownArrow = "\226\135\147", -- ⇓ DoubleLeftArrow = "\226\135\144", -- ⇐ DoubleLeftRightArrow = "\226\135\148", -- ⇔ DoubleLeftTee = "\226\171\164", -- ⫤ DoubleLongLeftArrow = "\226\159\184", -- ⟸ DoubleLongLeftRightArrow = "\226\159\186", -- ⟺ DoubleLongRightArrow = "\226\159\185", -- ⟹ DoubleRightArrow = "\226\135\146", -- ⇒ DoubleRightTee = "\226\138\168", -- ⊨ DoubleUpArrow = "\226\135\145", -- ⇑ DoubleUpDownArrow = "\226\135\149", -- ⇕ DoubleVerticalBar = "\226\136\165", -- ∥ downarrow = "\226\134\147", -- ↓ Downarrow = "\226\135\147", -- ⇓ DownArrow = "\226\134\147", -- ↓ DownArrowBar = "\226\164\147", -- ⤓ DownArrowUpArrow = "\226\135\181", -- ⇵ DownBreve = "\204\145", -- ̑ downdownarrows = "\226\135\138", -- ⇊ downharpoonleft = "\226\135\131", -- ⇃ downharpoonright = "\226\135\130", -- ⇂ DownLeftRightVector = "\226\165\144", -- ⥐ DownLeftTeeVector = "\226\165\158", -- ⥞ DownLeftVector = "\226\134\189", -- ↽ DownLeftVectorBar = "\226\165\150", -- ⥖ DownRightTeeVector = "\226\165\159", -- ⥟ DownRightVector = "\226\135\129", -- ⇁ DownRightVectorBar = "\226\165\151", -- ⥗ DownTee = "\226\138\164", -- ⊤ DownTeeArrow = "\226\134\167", -- ↧ drbkarow = "\226\164\144", -- ⤐ drcorn = "\226\140\159", -- ⌟ drcrop = "\226\140\140", -- ⌌ dscr = "\240\157\146\185", -- 𝒹 Dscr = "\240\157\146\159", -- 𝒟 dscy = "\209\149", -- ѕ DScy = "\208\133", -- Ѕ dsol = "\226\167\182", -- ⧶ dstrok = "\196\145", -- đ Dstrok = "\196\144", -- Đ dtdot = "\226\139\177", -- ⋱ dtri = "\226\150\191", -- ▿ dtrif = "\226\150\190", -- ▾ duarr = "\226\135\181", -- ⇵ duhar = "\226\165\175", -- ⥯ dwangle = "\226\166\166", -- ⦦ dzcy = "\209\159", -- џ DZcy = "\208\143", -- Џ dzigrarr = "\226\159\191", -- ⟿ eacute = "\195\169", -- é Eacute = "\195\137", -- É easter = "\226\169\174", -- ⩮ ecaron = "\196\155", -- ě Ecaron = "\196\154", -- Ě ecir = "\226\137\150", -- ≖ ecirc = "\195\170", -- ê Ecirc = "\195\138", -- Ê ecolon = "\226\137\149", -- ≕ ecy = "\209\141", -- э Ecy = "\208\173", -- Э eDDot = "\226\169\183", -- ⩷ edot = "\196\151", -- ė eDot = "\226\137\145", -- ≑ Edot = "\196\150", -- Ė ee = "\226\133\135", -- ⅇ efDot = "\226\137\146", -- ≒ efr = "\240\157\148\162", -- 𝔢 Efr = "\240\157\148\136", -- 𝔈 eg = "\226\170\154", -- ⪚ egrave = "\195\168", -- è Egrave = "\195\136", -- È egs = "\226\170\150", -- ⪖ egsdot = "\226\170\152", -- ⪘ el = "\226\170\153", -- ⪙ Element = "\226\136\136", -- ∈ elinters = "\226\143\167", -- ⏧ ell = "\226\132\147", -- ℓ els = "\226\170\149", -- ⪕ elsdot = "\226\170\151", -- ⪗ emacr = "\196\147", -- ē Emacr = "\196\146", -- Ē empty = "\226\136\133", -- ∅ emptyset = "\226\136\133", -- ∅ EmptySmallSquare = "\226\151\187", -- ◻ emptyv = "\226\136\133", -- ∅ EmptyVerySmallSquare = "\226\150\171", -- ▫ emsp = "\226\128\131", -- [em space] emsp13 = "\226\128\132", -- [three-per-em space] emsp14 = "\226\128\133", -- [four-per-em space] eng = "\197\139", -- ŋ ENG = "\197\138", -- Ŋ ensp = "\226\128\130", -- [en space] eogon = "\196\153", -- ę Eogon = "\196\152", -- Ę eopf = "\240\157\149\150", -- 𝕖 Eopf = "\240\157\148\188", -- 𝔼 epar = "\226\139\149", -- ⋕ eparsl = "\226\167\163", -- ⧣ eplus = "\226\169\177", -- ⩱ epsi = "\206\181", -- ε epsilon = "\206\181", -- ε Epsilon = "\206\149", -- Ε epsiv = "\207\181", -- ϵ eqcirc = "\226\137\150", -- ≖ eqcolon = "\226\137\149", -- ≕ eqsim = "\226\137\130", -- ≂ eqslantgtr = "\226\170\150", -- ⪖ eqslantless = "\226\170\149", -- ⪕ Equal = "\226\169\181", -- ⩵ equals = "\61", -- = EqualTilde = "\226\137\130", -- ≂ equest = "\226\137\159", -- ≟ Equilibrium = "\226\135\140", -- ⇌ equiv = "\226\137\161", -- ≡ equivDD = "\226\169\184", -- ⩸ eqvparsl = "\226\167\165", -- ⧥ erarr = "\226\165\177", -- ⥱ erDot = "\226\137\147", -- ≓ escr = "\226\132\175", -- ℯ Escr = "\226\132\176", -- ℰ esdot = "\226\137\144", -- ≐ esim = "\226\137\130", -- ≂ Esim = "\226\169\179", -- ⩳ eta = "\206\183", -- η Eta = "\206\151", -- Η eth = "\195\176", -- ð ETH = "\195\144", -- Ð euml = "\195\171", -- ë Euml = "\195\139", -- Ë euro = "\226\130\172", -- € excl = "\33", -- ! exist = "\226\136\131", -- ∃ Exists = "\226\136\131", -- ∃ expectation = "\226\132\176", -- ℰ exponentiale = "\226\133\135", -- ⅇ ExponentialE = "\226\133\135", -- ⅇ fallingdotseq = "\226\137\146", -- ≒ fcy = "\209\132", -- ф Fcy = "\208\164", -- Ф female = "\226\153\128", -- ♀ ffilig = "\239\172\131", -- ffi fflig = "\239\172\128", -- ff ffllig = "\239\172\132", -- ffl ffr = "\240\157\148\163", -- 𝔣 Ffr = "\240\157\148\137", -- 𝔉 filig = "\239\172\129", -- fi FilledSmallSquare = "\226\151\188", -- ◼ FilledVerySmallSquare = "\226\150\170", -- ▪ fjlig = "\102\106", -- fj flat = "\226\153\173", -- ♭ fllig = "\239\172\130", -- fl fltns = "\226\150\177", -- ▱ fnof = "\198\146", -- ƒ fopf = "\240\157\149\151", -- 𝕗 Fopf = "\240\157\148\189", -- 𝔽 forall = "\226\136\128", -- ∀ ForAll = "\226\136\128", -- ∀ fork = "\226\139\148", -- ⋔ forkv = "\226\171\153", -- ⫙ Fouriertrf = "\226\132\177", -- ℱ fpartint = "\226\168\141", -- ⨍ frac12 = "\194\189", -- ½ frac13 = "\226\133\147", -- ⅓ frac14 = "\194\188", -- ¼ frac15 = "\226\133\149", -- ⅕ frac16 = "\226\133\153", -- ⅙ frac18 = "\226\133\155", -- ⅛ frac23 = "\226\133\148", -- ⅔ frac25 = "\226\133\150", -- ⅖ frac34 = "\194\190", -- ¾ frac35 = "\226\133\151", -- ⅗ frac38 = "\226\133\156", -- ⅜ frac45 = "\226\133\152", -- ⅘ frac56 = "\226\133\154", -- ⅚ frac58 = "\226\133\157", -- ⅝ frac78 = "\226\133\158", -- ⅞ frasl = "\226\129\132", -- ⁄ frown = "\226\140\162", -- ⌢ fscr = "\240\157\146\187", -- 𝒻 Fscr = "\226\132\177", -- ℱ gacute = "\199\181", -- ǵ gamma = "\206\179", -- γ Gamma = "\206\147", -- Γ gammad = "\207\157", -- ϝ Gammad = "\207\156", -- Ϝ gap = "\226\170\134", -- ⪆ gbreve = "\196\159", -- ğ Gbreve = "\196\158", -- Ğ Gcedil = "\196\162", -- Ģ gcirc = "\196\157", -- ĝ Gcirc = "\196\156", -- Ĝ gcy = "\208\179", -- г Gcy = "\208\147", -- Г gdot = "\196\161", -- ġ Gdot = "\196\160", -- Ġ ge = "\226\137\165", -- ≥ gE = "\226\137\167", -- ≧ gel = "\226\139\155", -- ⋛ gEl = "\226\170\140", -- ⪌ geq = "\226\137\165", -- ≥ geqq = "\226\137\167", -- ≧ geqslant = "\226\169\190", -- ⩾ ges = "\226\169\190", -- ⩾ gescc = "\226\170\169", -- ⪩ gesdot = "\226\170\128", -- ⪀ gesdoto = "\226\170\130", -- ⪂ gesdotol = "\226\170\132", -- ⪄ gesl = "\226\139\155\239\184\128", -- ⋛︀ gesles = "\226\170\148", -- ⪔ gfr = "\240\157\148\164", -- 𝔤 Gfr = "\240\157\148\138", -- 𝔊 gg = "\226\137\171", -- ≫ Gg = "\226\139\153", -- ⋙ ggg = "\226\139\153", -- ⋙ gimel = "\226\132\183", -- ℷ gjcy = "\209\147", -- ѓ GJcy = "\208\131", -- Ѓ gl = "\226\137\183", -- ≷ gla = "\226\170\165", -- ⪥ glE = "\226\170\146", -- ⪒ glj = "\226\170\164", -- ⪤ gnap = "\226\170\138", -- ⪊ gnapprox = "\226\170\138", -- ⪊ gne = "\226\170\136", -- ⪈ gnE = "\226\137\169", -- ≩ gneq = "\226\170\136", -- ⪈ gneqq = "\226\137\169", -- ≩ gnsim = "\226\139\167", -- ⋧ gopf = "\240\157\149\152", -- 𝕘 Gopf = "\240\157\148\190", -- 𝔾 grave = "\96", -- ` GreaterEqual = "\226\137\165", -- ≥ GreaterEqualLess = "\226\139\155", -- ⋛ GreaterFullEqual = "\226\137\167", -- ≧ GreaterGreater = "\226\170\162", -- ⪢ GreaterLess = "\226\137\183", -- ≷ GreaterSlantEqual = "\226\169\190", -- ⩾ GreaterTilde = "\226\137\179", -- ≳ gscr = "\226\132\138", -- ℊ Gscr = "\240\157\146\162", -- 𝒢 gsim = "\226\137\179", -- ≳ gsime = "\226\170\142", -- ⪎ gsiml = "\226\170\144", -- ⪐ gt = "\62", -- > Gt = "\226\137\171", -- ≫ GT = "\62", -- > gtcc = "\226\170\167", -- ⪧ gtcir = "\226\169\186", -- ⩺ gtdot = "\226\139\151", -- ⋗ gtlPar = "\226\166\149", -- ⦕ gtquest = "\226\169\188", -- ⩼ gtrapprox = "\226\170\134", -- ⪆ gtrarr = "\226\165\184", -- ⥸ gtrdot = "\226\139\151", -- ⋗ gtreqless = "\226\139\155", -- ⋛ gtreqqless = "\226\170\140", -- ⪌ gtrless = "\226\137\183", -- ≷ gtrsim = "\226\137\179", -- ≳ gvertneqq = "\226\137\169\239\184\128", -- ≩︀ gvnE = "\226\137\169\239\184\128", -- ≩︀ Hacek = "\203\135", -- ˇ hairsp = "\226\128\138", -- [hair space] half = "\194\189", -- ½ hamilt = "\226\132\139", -- ℋ hardcy = "\209\138", -- ъ HARDcy = "\208\170", -- Ъ harr = "\226\134\148", -- ↔ hArr = "\226\135\148", -- ⇔ harrcir = "\226\165\136", -- ⥈ harrw = "\226\134\173", -- ↭ Hat = "\94", -- ^ hbar = "\226\132\143", -- ℏ hcirc = "\196\165", -- ĥ Hcirc = "\196\164", -- Ĥ hearts = "\226\153\165", -- ♥ heartsuit = "\226\153\165", -- ♥ hellip = "\226\128\166", -- … hercon = "\226\138\185", -- ⊹ hfr = "\240\157\148\165", -- 𝔥 Hfr = "\226\132\140", -- ℌ HilbertSpace = "\226\132\139", -- ℋ hksearow = "\226\164\165", -- ⤥ hkswarow = "\226\164\166", -- ⤦ hoarr = "\226\135\191", -- ⇿ homtht = "\226\136\187", -- ∻ hookleftarrow = "\226\134\169", -- ↩ hookrightarrow = "\226\134\170", -- ↪ hopf = "\240\157\149\153", -- 𝕙 Hopf = "\226\132\141", -- ℍ horbar = "\226\128\149", -- ― HorizontalLine = "\226\148\128", -- ─ hscr = "\240\157\146\189", -- 𝒽 Hscr = "\226\132\139", -- ℋ hslash = "\226\132\143", -- ℏ hstrok = "\196\167", -- ħ Hstrok = "\196\166", -- Ħ HumpDownHump = "\226\137\142", -- ≎ HumpEqual = "\226\137\143", -- ≏ hybull = "\226\129\131", -- ⁃ hyphen = "\226\128\144", -- ‐ iacute = "\195\173", -- í Iacute = "\195\141", -- Í ic = "\226\129\163", -- [invisible separator] icirc = "\195\174", -- î Icirc = "\195\142", -- Î icy = "\208\184", -- и Icy = "\208\152", -- И Idot = "\196\176", -- İ iecy = "\208\181", -- е IEcy = "\208\149", -- Е iexcl = "\194\161", -- ¡ iff = "\226\135\148", -- ⇔ ifr = "\240\157\148\166", -- 𝔦 Ifr = "\226\132\145", -- ℑ igrave = "\195\172", -- ì Igrave = "\195\140", -- Ì ii = "\226\133\136", -- ⅈ iiiint = "\226\168\140", -- ⨌ iiint = "\226\136\173", -- ∭ iinfin = "\226\167\156", -- ⧜ iiota = "\226\132\169", -- ℩ ijlig = "\196\179", -- ij IJlig = "\196\178", -- IJ Im = "\226\132\145", -- ℑ imacr = "\196\171", -- ī Imacr = "\196\170", -- Ī image = "\226\132\145", -- ℑ ImaginaryI = "\226\133\136", -- ⅈ imagline = "\226\132\144", -- ℐ imagpart = "\226\132\145", -- ℑ imath = "\196\177", -- ı imof = "\226\138\183", -- ⊷ imped = "\198\181", -- Ƶ Implies = "\226\135\146", -- ⇒ ["in"] = "\226\136\136", -- ∈ incare = "\226\132\133", -- ℅ infin = "\226\136\158", -- ∞ infintie = "\226\167\157", -- ⧝ inodot = "\196\177", -- ı int = "\226\136\171", -- ∫ Int = "\226\136\172", -- ∬ intcal = "\226\138\186", -- ⊺ integers = "\226\132\164", -- ℤ Integral = "\226\136\171", -- ∫ intercal = "\226\138\186", -- ⊺ Intersection = "\226\139\130", -- ⋂ intlarhk = "\226\168\151", -- ⨗ intprod = "\226\168\188", -- ⨼ InvisibleComma = "\226\129\163", -- [invisible separator] InvisibleTimes = "\226\129\162", -- [invisible times] iocy = "\209\145", -- ё IOcy = "\208\129", -- Ё iogon = "\196\175", -- į Iogon = "\196\174", -- Į iopf = "\240\157\149\154", -- 𝕚 Iopf = "\240\157\149\128", -- 𝕀 iota = "\206\185", -- ι Iota = "\206\153", -- Ι iprod = "\226\168\188", -- ⨼ iquest = "\194\191", -- ¿ iscr = "\240\157\146\190", -- 𝒾 Iscr = "\226\132\144", -- ℐ isin = "\226\136\136", -- ∈ isindot = "\226\139\181", -- ⋵ isinE = "\226\139\185", -- ⋹ isins = "\226\139\180", -- ⋴ isinsv = "\226\139\179", -- ⋳ isinv = "\226\136\136", -- ∈ it = "\226\129\162", -- [invisible times] itilde = "\196\169", -- ĩ Itilde = "\196\168", -- Ĩ iukcy = "\209\150", -- і Iukcy = "\208\134", -- І iuml = "\195\175", -- ï Iuml = "\195\143", -- Ï jcirc = "\196\181", -- ĵ Jcirc = "\196\180", -- Ĵ jcy = "\208\185", -- й Jcy = "\208\153", -- Й jfr = "\240\157\148\167", -- 𝔧 Jfr = "\240\157\148\141", -- 𝔍 jmath = "\200\183", -- ȷ jopf = "\240\157\149\155", -- 𝕛 Jopf = "\240\157\149\129", -- 𝕁 jscr = "\240\157\146\191", -- 𝒿 Jscr = "\240\157\146\165", -- 𝒥 jsercy = "\209\152", -- ј Jsercy = "\208\136", -- Ј jukcy = "\209\148", -- є Jukcy = "\208\132", -- Є kappa = "\206\186", -- κ Kappa = "\206\154", -- Κ kappav = "\207\176", -- ϰ kcedil = "\196\183", -- ķ Kcedil = "\196\182", -- Ķ kcy = "\208\186", -- к Kcy = "\208\154", -- К kfr = "\240\157\148\168", -- 𝔨 Kfr = "\240\157\148\142", -- 𝔎 kgreen = "\196\184", -- ĸ khcy = "\209\133", -- х KHcy = "\208\165", -- Х kjcy = "\209\156", -- ќ KJcy = "\208\140", -- Ќ kopf = "\240\157\149\156", -- 𝕜 Kopf = "\240\157\149\130", -- 𝕂 kscr = "\240\157\147\128", -- 𝓀 Kscr = "\240\157\146\166", -- 𝒦 lAarr = "\226\135\154", -- ⇚ lacute = "\196\186", -- ĺ Lacute = "\196\185", -- Ĺ laemptyv = "\226\166\180", -- ⦴ lagran = "\226\132\146", -- ℒ lambda = "\206\187", -- λ Lambda = "\206\155", -- Λ lang = "\226\159\168", -- ⟨ Lang = "\226\159\170", -- ⟪ langd = "\226\166\145", -- ⦑ langle = "\226\159\168", -- ⟨ lap = "\226\170\133", -- ⪅ Laplacetrf = "\226\132\146", -- ℒ laquo = "\194\171", -- « larr = "\226\134\144", -- ← lArr = "\226\135\144", -- ⇐ Larr = "\226\134\158", -- ↞ larrb = "\226\135\164", -- ⇤ larrbfs = "\226\164\159", -- ⤟ larrfs = "\226\164\157", -- ⤝ larrhk = "\226\134\169", -- ↩ larrlp = "\226\134\171", -- ↫ larrpl = "\226\164\185", -- ⤹ larrsim = "\226\165\179", -- ⥳ larrtl = "\226\134\162", -- ↢ lat = "\226\170\171", -- ⪫ latail = "\226\164\153", -- ⤙ lAtail = "\226\164\155", -- ⤛ late = "\226\170\173", -- ⪭ lates = "\226\170\173\239\184\128", -- ⪭︀ lbarr = "\226\164\140", -- ⤌ lBarr = "\226\164\142", -- ⤎ lbbrk = "\226\157\178", -- ❲ lbrace = "\123", -- { lbrack = "\91", -- [ lbrke = "\226\166\139", -- ⦋ lbrksld = "\226\166\143", -- ⦏ lbrkslu = "\226\166\141", -- ⦍ lcaron = "\196\190", -- ľ Lcaron = "\196\189", -- Ľ lcedil = "\196\188", -- ļ Lcedil = "\196\187", -- Ļ lceil = "\226\140\136", -- ⌈ lcub = "\123", -- { lcy = "\208\187", -- л Lcy = "\208\155", -- Л ldca = "\226\164\182", -- ⤶ ldquo = "\226\128\156", -- “ ldquor = "\226\128\158", -- „ ldrdhar = "\226\165\167", -- ⥧ ldrushar = "\226\165\139", -- ⥋ ldsh = "\226\134\178", -- ↲ le = "\226\137\164", -- ≤ lE = "\226\137\166", -- ≦ LeftAngleBracket = "\226\159\168", -- ⟨ leftarrow = "\226\134\144", -- ← Leftarrow = "\226\135\144", -- ⇐ LeftArrow = "\226\134\144", -- ← LeftArrowBar = "\226\135\164", -- ⇤ LeftArrowRightArrow = "\226\135\134", -- ⇆ leftarrowtail = "\226\134\162", -- ↢ LeftCeiling = "\226\140\136", -- ⌈ LeftDoubleBracket = "\226\159\166", -- ⟦ LeftDownTeeVector = "\226\165\161", -- ⥡ LeftDownVector = "\226\135\131", -- ⇃ LeftDownVectorBar = "\226\165\153", -- ⥙ LeftFloor = "\226\140\138", -- ⌊ leftharpoondown = "\226\134\189", -- ↽ leftharpoonup = "\226\134\188", -- ↼ leftleftarrows = "\226\135\135", -- ⇇ leftrightarrow = "\226\134\148", -- ↔ Leftrightarrow = "\226\135\148", -- ⇔ LeftRightArrow = "\226\134\148", -- ↔ leftrightarrows = "\226\135\134", -- ⇆ leftrightharpoons = "\226\135\139", -- ⇋ leftrightsquigarrow = "\226\134\173", -- ↭ LeftRightVector = "\226\165\142", -- ⥎ LeftTee = "\226\138\163", -- ⊣ LeftTeeArrow = "\226\134\164", -- ↤ LeftTeeVector = "\226\165\154", -- ⥚ leftthreetimes = "\226\139\139", -- ⋋ LeftTriangle = "\226\138\178", -- ⊲ LeftTriangleBar = "\226\167\143", -- ⧏ LeftTriangleEqual = "\226\138\180", -- ⊴ LeftUpDownVector = "\226\165\145", -- ⥑ LeftUpTeeVector = "\226\165\160", -- ⥠ LeftUpVector = "\226\134\191", -- ↿ LeftUpVectorBar = "\226\165\152", -- ⥘ LeftVector = "\226\134\188", -- ↼ LeftVectorBar = "\226\165\146", -- ⥒ leg = "\226\139\154", -- ⋚ lEg = "\226\170\139", -- ⪋ leq = "\226\137\164", -- ≤ leqq = "\226\137\166", -- ≦ leqslant = "\226\169\189", -- ⩽ les = "\226\169\189", -- ⩽ lescc = "\226\170\168", -- ⪨ lesdot = "\226\169\191", -- ⩿ lesdoto = "\226\170\129", -- ⪁ lesdotor = "\226\170\131", -- ⪃ lesg = "\226\139\154\239\184\128", -- ⋚︀ lesges = "\226\170\147", -- ⪓ lessapprox = "\226\170\133", -- ⪅ lessdot = "\226\139\150", -- ⋖ lesseqgtr = "\226\139\154", -- ⋚ lesseqqgtr = "\226\170\139", -- ⪋ LessEqualGreater = "\226\139\154", -- ⋚ LessFullEqual = "\226\137\166", -- ≦ LessGreater = "\226\137\182", -- ≶ lessgtr = "\226\137\182", -- ≶ LessLess = "\226\170\161", -- ⪡ lesssim = "\226\137\178", -- ≲ LessSlantEqual = "\226\169\189", -- ⩽ LessTilde = "\226\137\178", -- ≲ lfisht = "\226\165\188", -- ⥼ lfloor = "\226\140\138", -- ⌊ lfr = "\240\157\148\169", -- 𝔩 Lfr = "\240\157\148\143", -- 𝔏 lg = "\226\137\182", -- ≶ lgE = "\226\170\145", -- ⪑ lHar = "\226\165\162", -- ⥢ lhard = "\226\134\189", -- ↽ lharu = "\226\134\188", -- ↼ lharul = "\226\165\170", -- ⥪ lhblk = "\226\150\132", -- ▄ ljcy = "\209\153", -- љ LJcy = "\208\137", -- Љ ll = "\226\137\170", -- ≪ Ll = "\226\139\152", -- ⋘ llarr = "\226\135\135", -- ⇇ llcorner = "\226\140\158", -- ⌞ Lleftarrow = "\226\135\154", -- ⇚ llhard = "\226\165\171", -- ⥫ lltri = "\226\151\186", -- ◺ lmidot = "\197\128", -- ŀ Lmidot = "\196\191", -- Ŀ lmoust = "\226\142\176", -- ⎰ lmoustache = "\226\142\176", -- ⎰ lnap = "\226\170\137", -- ⪉ lnapprox = "\226\170\137", -- ⪉ lne = "\226\170\135", -- ⪇ lnE = "\226\137\168", -- ≨ lneq = "\226\170\135", -- ⪇ lneqq = "\226\137\168", -- ≨ lnsim = "\226\139\166", -- ⋦ loang = "\226\159\172", -- ⟬ loarr = "\226\135\189", -- ⇽ lobrk = "\226\159\166", -- ⟦ longleftarrow = "\226\159\181", -- ⟵ Longleftarrow = "\226\159\184", -- ⟸ LongLeftArrow = "\226\159\181", -- ⟵ longleftrightarrow = "\226\159\183", -- ⟷ Longleftrightarrow = "\226\159\186", -- ⟺ LongLeftRightArrow = "\226\159\183", -- ⟷ longmapsto = "\226\159\188", -- ⟼ longrightarrow = "\226\159\182", -- ⟶ Longrightarrow = "\226\159\185", -- ⟹ LongRightArrow = "\226\159\182", -- ⟶ looparrowleft = "\226\134\171", -- ↫ looparrowright = "\226\134\172", -- ↬ lopar = "\226\166\133", -- ⦅ lopf = "\240\157\149\157", -- 𝕝 Lopf = "\240\157\149\131", -- 𝕃 loplus = "\226\168\173", -- ⨭ lotimes = "\226\168\180", -- ⨴ lowast = "\226\136\151", -- ∗ lowbar = "\95", -- _ LowerLeftArrow = "\226\134\153", -- ↙ LowerRightArrow = "\226\134\152", -- ↘ loz = "\226\151\138", -- ◊ lozenge = "\226\151\138", -- ◊ lozf = "\226\167\171", -- ⧫ lpar = "\40", -- ( lparlt = "\226\166\147", -- ⦓ lrarr = "\226\135\134", -- ⇆ lrcorner = "\226\140\159", -- ⌟ lrhar = "\226\135\139", -- ⇋ lrhard = "\226\165\173", -- ⥭ lrm = "\226\128\142", -- [left-to-right mark] lrtri = "\226\138\191", -- ⊿ lsaquo = "\226\128\185", -- ‹ lscr = "\240\157\147\129", -- 𝓁 Lscr = "\226\132\146", -- ℒ lsh = "\226\134\176", -- ↰ Lsh = "\226\134\176", -- ↰ lsim = "\226\137\178", -- ≲ lsime = "\226\170\141", -- ⪍ lsimg = "\226\170\143", -- ⪏ lsqb = "\91", -- [ lsquo = "\226\128\152", -- ‘ lsquor = "\226\128\154", -- ‚ lstrok = "\197\130", -- ł Lstrok = "\197\129", -- Ł lt = "\60", -- < Lt = "\226\137\170", -- ≪ LT = "\60", -- < ltcc = "\226\170\166", -- ⪦ ltcir = "\226\169\185", -- ⩹ ltdot = "\226\139\150", -- ⋖ lthree = "\226\139\139", -- ⋋ ltimes = "\226\139\137", -- ⋉ ltlarr = "\226\165\182", -- ⥶ ltquest = "\226\169\187", -- ⩻ ltri = "\226\151\131", -- ◃ ltrie = "\226\138\180", -- ⊴ ltrif = "\226\151\130", -- ◂ ltrPar = "\226\166\150", -- ⦖ lurdshar = "\226\165\138", -- ⥊ luruhar = "\226\165\166", -- ⥦ lvertneqq = "\226\137\168\239\184\128", -- ≨︀ lvnE = "\226\137\168\239\184\128", -- ≨︀ macr = "\194\175", -- ¯ male = "\226\153\130", -- ♂ malt = "\226\156\160", -- ✠ maltese = "\226\156\160", -- ✠ map = "\226\134\166", -- ↦ Map = "\226\164\133", -- ⤅ mapsto = "\226\134\166", -- ↦ mapstodown = "\226\134\167", -- ↧ mapstoleft = "\226\134\164", -- ↤ mapstoup = "\226\134\165", -- ↥ marker = "\226\150\174", -- ▮ mcomma = "\226\168\169", -- ⨩ mcy = "\208\188", -- м Mcy = "\208\156", -- М mdash = "\226\128\148", -- — mDDot = "\226\136\186", -- ∺ measuredangle = "\226\136\161", -- ∡ MediumSpace = "\226\129\159", -- [medium mathematical space] Mellintrf = "\226\132\179", -- ℳ mfr = "\240\157\148\170", -- 𝔪 Mfr = "\240\157\148\144", -- 𝔐 mho = "\226\132\167", -- ℧ micro = "\194\181", -- µ mid = "\226\136\163", -- ∣ midast = "\42", -- * midcir = "\226\171\176", -- ⫰ middot = "\194\183", -- · minus = "\226\136\146", -- − minusb = "\226\138\159", -- ⊟ minusd = "\226\136\184", -- ∸ minusdu = "\226\168\170", -- ⨪ MinusPlus = "\226\136\147", -- ∓ mlcp = "\226\171\155", -- ⫛ mldr = "\226\128\166", -- … mnplus = "\226\136\147", -- ∓ models = "\226\138\167", -- ⊧ mopf = "\240\157\149\158", -- 𝕞 Mopf = "\240\157\149\132", -- 𝕄 mp = "\226\136\147", -- ∓ mscr = "\240\157\147\130", -- 𝓂 Mscr = "\226\132\179", -- ℳ mstpos = "\226\136\190", -- ∾ mu = "\206\188", -- μ Mu = "\206\156", -- Μ multimap = "\226\138\184", -- ⊸ mumap = "\226\138\184", -- ⊸ nabla = "\226\136\135", -- ∇ nacute = "\197\132", -- ń Nacute = "\197\131", -- Ń nang = "\226\136\160\226\131\146", -- ∠⃒ nap = "\226\137\137", -- ≉ napE = "\226\169\176\204\184", -- ⩰̸ napid = "\226\137\139\204\184", -- ≋̸ napos = "\197\137", -- ʼn napprox = "\226\137\137", -- ≉ natur = "\226\153\174", -- ♮ natural = "\226\153\174", -- ♮ naturals = "\226\132\149", -- ℕ nbsp = "\194\160", -- [no-break space] nbump = "\226\137\142\204\184", -- ≎̸ nbumpe = "\226\137\143\204\184", -- ≏̸ ncap = "\226\169\131", -- ⩃ ncaron = "\197\136", -- ň Ncaron = "\197\135", -- Ň ncedil = "\197\134", -- ņ Ncedil = "\197\133", -- Ņ ncong = "\226\137\135", -- ≇ ncongdot = "\226\169\173\204\184", -- ⩭̸ ncup = "\226\169\130", -- ⩂ ncy = "\208\189", -- н Ncy = "\208\157", -- Н ndash = "\226\128\147", -- – ne = "\226\137\160", -- ≠ nearhk = "\226\164\164", -- ⤤ nearr = "\226\134\151", -- ↗ neArr = "\226\135\151", -- ⇗ nearrow = "\226\134\151", -- ↗ nedot = "\226\137\144\204\184", -- ≐̸ NegativeMediumSpace = "\226\128\139", -- [zero width space] NegativeThickSpace = "\226\128\139", -- [zero width space] NegativeThinSpace = "\226\128\139", -- [zero width space] NegativeVeryThinSpace = "\226\128\139", -- [zero width space] nequiv = "\226\137\162", -- ≢ nesear = "\226\164\168", -- ⤨ nesim = "\226\137\130\204\184", -- ≂̸ NestedGreaterGreater = "\226\137\171", -- ≫ NestedLessLess = "\226\137\170", -- ≪ NewLine = "\n", -- [new line] nexist = "\226\136\132", -- ∄ nexists = "\226\136\132", -- ∄ nfr = "\240\157\148\171", -- 𝔫 Nfr = "\240\157\148\145", -- 𝔑 nge = "\226\137\177", -- ≱ ngE = "\226\137\167\204\184", -- ≧̸ ngeq = "\226\137\177", -- ≱ ngeqq = "\226\137\167\204\184", -- ≧̸ ngeqslant = "\226\169\190\204\184", -- ⩾̸ nges = "\226\169\190\204\184", -- ⩾̸ nGg = "\226\139\153\204\184", -- ⋙̸ ngsim = "\226\137\181", -- ≵ ngt = "\226\137\175", -- ≯ nGt = "\226\137\171\226\131\146", -- ≫⃒ ngtr = "\226\137\175", -- ≯ nGtv = "\226\137\171\204\184", -- ≫̸ nharr = "\226\134\174", -- ↮ nhArr = "\226\135\142", -- ⇎ nhpar = "\226\171\178", -- ⫲ ni = "\226\136\139", -- ∋ nis = "\226\139\188", -- ⋼ nisd = "\226\139\186", -- ⋺ niv = "\226\136\139", -- ∋ njcy = "\209\154", -- њ NJcy = "\208\138", -- Њ nlarr = "\226\134\154", -- ↚ nlArr = "\226\135\141", -- ⇍ nldr = "\226\128\165", -- ‥ nle = "\226\137\176", -- ≰ nlE = "\226\137\166\204\184", -- ≦̸ nleftarrow = "\226\134\154", -- ↚ nLeftarrow = "\226\135\141", -- ⇍ nleftrightarrow = "\226\134\174", -- ↮ nLeftrightarrow = "\226\135\142", -- ⇎ nleq = "\226\137\176", -- ≰ nleqq = "\226\137\166\204\184", -- ≦̸ nleqslant = "\226\169\189\204\184", -- ⩽̸ nles = "\226\169\189\204\184", -- ⩽̸ nless = "\226\137\174", -- ≮ nLl = "\226\139\152\204\184", -- ⋘̸ nlsim = "\226\137\180", -- ≴ nlt = "\226\137\174", -- ≮ nLt = "\226\137\170\226\131\146", -- ≪⃒ nltri = "\226\139\170", -- ⋪ nltrie = "\226\139\172", -- ⋬ nLtv = "\226\137\170\204\184", -- ≪̸ nmid = "\226\136\164", -- ∤ NoBreak = "\226\129\160", -- [word joiner] NonBreakingSpace = "\194\160", -- [no-break space] nopf = "\240\157\149\159", -- 𝕟 Nopf = "\226\132\149", -- ℕ ["not"] = "\194\172", -- ¬ Not = "\226\171\172", -- ⫬ NotCongruent = "\226\137\162", -- ≢ NotCupCap = "\226\137\173", -- ≭ NotDoubleVerticalBar = "\226\136\166", -- ∦ NotElement = "\226\136\137", -- ∉ NotEqual = "\226\137\160", -- ≠ NotEqualTilde = "\226\137\130\204\184", -- ≂̸ NotExists = "\226\136\132", -- ∄ NotGreater = "\226\137\175", -- ≯ NotGreaterEqual = "\226\137\177", -- ≱ NotGreaterFullEqual = "\226\137\167\204\184", -- ≧̸ NotGreaterGreater = "\226\137\171\204\184", -- ≫̸ NotGreaterLess = "\226\137\185", -- ≹ NotGreaterSlantEqual = "\226\169\190\204\184", -- ⩾̸ NotGreaterTilde = "\226\137\181", -- ≵ NotHumpDownHump = "\226\137\142\204\184", -- ≎̸ NotHumpEqual = "\226\137\143\204\184", -- ≏̸ notin = "\226\136\137", -- ∉ notindot = "\226\139\181\204\184", -- ⋵̸ notinE = "\226\139\185\204\184", -- ⋹̸ notinva = "\226\136\137", -- ∉ notinvb = "\226\139\183", -- ⋷ notinvc = "\226\139\182", -- ⋶ NotLeftTriangle = "\226\139\170", -- ⋪ NotLeftTriangleBar = "\226\167\143\204\184", -- ⧏̸ NotLeftTriangleEqual = "\226\139\172", -- ⋬ NotLess = "\226\137\174", -- ≮ NotLessEqual = "\226\137\176", -- ≰ NotLessGreater = "\226\137\184", -- ≸ NotLessLess = "\226\137\170\204\184", -- ≪̸ NotLessSlantEqual = "\226\169\189\204\184", -- ⩽̸ NotLessTilde = "\226\137\180", -- ≴ NotNestedGreaterGreater = "\226\170\162\204\184", -- ⪢̸ NotNestedLessLess = "\226\170\161\204\184", -- ⪡̸ notni = "\226\136\140", -- ∌ notniva = "\226\136\140", -- ∌ notnivb = "\226\139\190", -- ⋾ notnivc = "\226\139\189", -- ⋽ NotPrecedes = "\226\138\128", -- ⊀ NotPrecedesEqual = "\226\170\175\204\184", -- ⪯̸ NotPrecedesSlantEqual = "\226\139\160", -- ⋠ NotReverseElement = "\226\136\140", -- ∌ NotRightTriangle = "\226\139\171", -- ⋫ NotRightTriangleBar = "\226\167\144\204\184", -- ⧐̸ NotRightTriangleEqual = "\226\139\173", -- ⋭ NotSquareSubset = "\226\138\143\204\184", -- ⊏̸ NotSquareSubsetEqual = "\226\139\162", -- ⋢ NotSquareSuperset = "\226\138\144\204\184", -- ⊐̸ NotSquareSupersetEqual = "\226\139\163", -- ⋣ NotSubset = "\226\138\130\226\131\146", -- ⊂⃒ NotSubsetEqual = "\226\138\136", -- ⊈ NotSucceeds = "\226\138\129", -- ⊁ NotSucceedsEqual = "\226\170\176\204\184", -- ⪰̸ NotSucceedsSlantEqual = "\226\139\161", -- ⋡ NotSucceedsTilde = "\226\137\191\204\184", -- ≿̸ NotSuperset = "\226\138\131\226\131\146", -- ⊃⃒ NotSupersetEqual = "\226\138\137", -- ⊉ NotTilde = "\226\137\129", -- ≁ NotTildeEqual = "\226\137\132", -- ≄ NotTildeFullEqual = "\226\137\135", -- ≇ NotTildeTilde = "\226\137\137", -- ≉ NotVerticalBar = "\226\136\164", -- ∤ npar = "\226\136\166", -- ∦ nparallel = "\226\136\166", -- ∦ nparsl = "\226\171\189\226\131\165", -- ⫽⃥ npart = "\226\136\130\204\184", -- ∂̸ npolint = "\226\168\148", -- ⨔ npr = "\226\138\128", -- ⊀ nprcue = "\226\139\160", -- ⋠ npre = "\226\170\175\204\184", -- ⪯̸ nprec = "\226\138\128", -- ⊀ npreceq = "\226\170\175\204\184", -- ⪯̸ nrarr = "\226\134\155", -- ↛ nrArr = "\226\135\143", -- ⇏ nrarrc = "\226\164\179\204\184", -- ⤳̸ nrarrw = "\226\134\157\204\184", -- ↝̸ nrightarrow = "\226\134\155", -- ↛ nRightarrow = "\226\135\143", -- ⇏ nrtri = "\226\139\171", -- ⋫ nrtrie = "\226\139\173", -- ⋭ nsc = "\226\138\129", -- ⊁ nsccue = "\226\139\161", -- ⋡ nsce = "\226\170\176\204\184", -- ⪰̸ nscr = "\240\157\147\131", -- 𝓃 Nscr = "\240\157\146\169", -- 𝒩 nshortmid = "\226\136\164", -- ∤ nshortparallel = "\226\136\166", -- ∦ nsim = "\226\137\129", -- ≁ nsime = "\226\137\132", -- ≄ nsimeq = "\226\137\132", -- ≄ nsmid = "\226\136\164", -- ∤ nspar = "\226\136\166", -- ∦ nsqsube = "\226\139\162", -- ⋢ nsqsupe = "\226\139\163", -- ⋣ nsub = "\226\138\132", -- ⊄ nsube = "\226\138\136", -- ⊈ nsubE = "\226\171\133\204\184", -- ⫅̸ nsubset = "\226\138\130\226\131\146", -- ⊂⃒ nsubseteq = "\226\138\136", -- ⊈ nsubseteqq = "\226\171\133\204\184", -- ⫅̸ nsucc = "\226\138\129", -- ⊁ nsucceq = "\226\170\176\204\184", -- ⪰̸ nsup = "\226\138\133", -- ⊅ nsupe = "\226\138\137", -- ⊉ nsupE = "\226\171\134\204\184", -- ⫆̸ nsupset = "\226\138\131\226\131\146", -- ⊃⃒ nsupseteq = "\226\138\137", -- ⊉ nsupseteqq = "\226\171\134\204\184", -- ⫆̸ ntgl = "\226\137\185", -- ≹ ntilde = "\195\177", -- ñ Ntilde = "\195\145", -- Ñ ntlg = "\226\137\184", -- ≸ ntriangleleft = "\226\139\170", -- ⋪ ntrianglelefteq = "\226\139\172", -- ⋬ ntriangleright = "\226\139\171", -- ⋫ ntrianglerighteq = "\226\139\173", -- ⋭ nu = "\206\189", -- ν Nu = "\206\157", -- Ν num = "\35", -- # numero = "\226\132\150", -- № numsp = "\226\128\135", -- [figure space] nvap = "\226\137\141\226\131\146", -- ≍⃒ nvdash = "\226\138\172", -- ⊬ nvDash = "\226\138\173", -- ⊭ nVdash = "\226\138\174", -- ⊮ nVDash = "\226\138\175", -- ⊯ nvge = "\226\137\165\226\131\146", -- ≥⃒ nvgt = "\62\226\131\146", -- >⃒ nvHarr = "\226\164\132", -- ⤄ nvinfin = "\226\167\158", -- ⧞ nvlArr = "\226\164\130", -- ⤂ nvle = "\226\137\164\226\131\146", -- ≤⃒ nvlt = "\60\226\131\146", -- <⃒ nvltrie = "\226\138\180\226\131\146", -- ⊴⃒ nvrArr = "\226\164\131", -- ⤃ nvrtrie = "\226\138\181\226\131\146", -- ⊵⃒ nvsim = "\226\136\188\226\131\146", -- ∼⃒ nwarhk = "\226\164\163", -- ⤣ nwarr = "\226\134\150", -- ↖ nwArr = "\226\135\150", -- ⇖ nwarrow = "\226\134\150", -- ↖ nwnear = "\226\164\167", -- ⤧ oacute = "\195\179", -- ó Oacute = "\195\147", -- Ó oast = "\226\138\155", -- ⊛ ocir = "\226\138\154", -- ⊚ ocirc = "\195\180", -- ô Ocirc = "\195\148", -- Ô ocy = "\208\190", -- о Ocy = "\208\158", -- О odash = "\226\138\157", -- ⊝ odblac = "\197\145", -- ő Odblac = "\197\144", -- Ő odiv = "\226\168\184", -- ⨸ odot = "\226\138\153", -- ⊙ odsold = "\226\166\188", -- ⦼ oelig = "\197\147", -- œ OElig = "\197\146", -- Œ ofcir = "\226\166\191", -- ⦿ ofr = "\240\157\148\172", -- 𝔬 Ofr = "\240\157\148\146", -- 𝔒 ogon = "\203\155", -- ˛ ograve = "\195\178", -- ò Ograve = "\195\146", -- Ò ogt = "\226\167\129", -- ⧁ ohbar = "\226\166\181", -- ⦵ ohm = "\206\169", -- Ω oint = "\226\136\174", -- ∮ olarr = "\226\134\186", -- ↺ olcir = "\226\166\190", -- ⦾ olcross = "\226\166\187", -- ⦻ oline = "\226\128\190", -- ‾ olt = "\226\167\128", -- ⧀ omacr = "\197\141", -- ō Omacr = "\197\140", -- Ō omega = "\207\137", -- ω Omega = "\206\169", -- Ω omicron = "\206\191", -- ο Omicron = "\206\159", -- Ο omid = "\226\166\182", -- ⦶ ominus = "\226\138\150", -- ⊖ oopf = "\240\157\149\160", -- 𝕠 Oopf = "\240\157\149\134", -- 𝕆 opar = "\226\166\183", -- ⦷ OpenCurlyDoubleQuote = "\226\128\156", -- “ OpenCurlyQuote = "\226\128\152", -- ‘ operp = "\226\166\185", -- ⦹ oplus = "\226\138\149", -- ⊕ ["or"] = "\226\136\168", -- ∨ Or = "\226\169\148", -- ⩔ orarr = "\226\134\187", -- ↻ ord = "\226\169\157", -- ⩝ order = "\226\132\180", -- ℴ orderof = "\226\132\180", -- ℴ ordf = "\194\170", -- ª ordm = "\194\186", -- º origof = "\226\138\182", -- ⊶ oror = "\226\169\150", -- ⩖ orslope = "\226\169\151", -- ⩗ orv = "\226\169\155", -- ⩛ oS = "\226\147\136", -- Ⓢ oscr = "\226\132\180", -- ℴ Oscr = "\240\157\146\170", -- 𝒪 oslash = "\195\184", -- ø Oslash = "\195\152", -- Ø osol = "\226\138\152", -- ⊘ otilde = "\195\181", -- õ Otilde = "\195\149", -- Õ otimes = "\226\138\151", -- ⊗ Otimes = "\226\168\183", -- ⨷ otimesas = "\226\168\182", -- ⨶ ouml = "\195\182", -- ö Ouml = "\195\150", -- Ö ovbar = "\226\140\189", -- ⌽ OverBar = "\226\128\190", -- ‾ OverBrace = "\226\143\158", -- ⏞ OverBracket = "\226\142\180", -- ⎴ OverParenthesis = "\226\143\156", -- ⏜ par = "\226\136\165", -- ∥ para = "\194\182", -- ¶ parallel = "\226\136\165", -- ∥ parsim = "\226\171\179", -- ⫳ parsl = "\226\171\189", -- ⫽ part = "\226\136\130", -- ∂ PartialD = "\226\136\130", -- ∂ pcy = "\208\191", -- п Pcy = "\208\159", -- П percnt = "\37", -- % period = "\46", -- . permil = "\226\128\176", -- ‰ perp = "\226\138\165", -- ⊥ pertenk = "\226\128\177", -- ‱ pfr = "\240\157\148\173", -- 𝔭 Pfr = "\240\157\148\147", -- 𝔓 phi = "\207\134", -- φ Phi = "\206\166", -- Φ phiv = "\207\149", -- ϕ phmmat = "\226\132\179", -- ℳ phone = "\226\152\142", -- ☎ pi = "\207\128", -- π Pi = "\206\160", -- Π pitchfork = "\226\139\148", -- ⋔ piv = "\207\150", -- ϖ planck = "\226\132\143", -- ℏ planckh = "\226\132\142", -- ℎ plankv = "\226\132\143", -- ℏ plus = "\43", -- + plusacir = "\226\168\163", -- ⨣ plusb = "\226\138\158", -- ⊞ pluscir = "\226\168\162", -- ⨢ plusdo = "\226\136\148", -- ∔ plusdu = "\226\168\165", -- ⨥ pluse = "\226\169\178", -- ⩲ PlusMinus = "\194\177", -- ± plusmn = "\194\177", -- ± plussim = "\226\168\166", -- ⨦ plustwo = "\226\168\167", -- ⨧ pm = "\194\177", -- ± Poincareplane = "\226\132\140", -- ℌ pointint = "\226\168\149", -- ⨕ popf = "\240\157\149\161", -- 𝕡 Popf = "\226\132\153", -- ℙ pound = "\194\163", -- £ pr = "\226\137\186", -- ≺ Pr = "\226\170\187", -- ⪻ prap = "\226\170\183", -- ⪷ prcue = "\226\137\188", -- ≼ pre = "\226\170\175", -- ⪯ prE = "\226\170\179", -- ⪳ prec = "\226\137\186", -- ≺ precapprox = "\226\170\183", -- ⪷ preccurlyeq = "\226\137\188", -- ≼ Precedes = "\226\137\186", -- ≺ PrecedesEqual = "\226\170\175", -- ⪯ PrecedesSlantEqual = "\226\137\188", -- ≼ PrecedesTilde = "\226\137\190", -- ≾ preceq = "\226\170\175", -- ⪯ precnapprox = "\226\170\185", -- ⪹ precneqq = "\226\170\181", -- ⪵ precnsim = "\226\139\168", -- ⋨ precsim = "\226\137\190", -- ≾ prime = "\226\128\178", -- ′ Prime = "\226\128\179", -- ″ primes = "\226\132\153", -- ℙ prnap = "\226\170\185", -- ⪹ prnE = "\226\170\181", -- ⪵ prnsim = "\226\139\168", -- ⋨ prod = "\226\136\143", -- ∏ Product = "\226\136\143", -- ∏ profalar = "\226\140\174", -- ⌮ profline = "\226\140\146", -- ⌒ profsurf = "\226\140\147", -- ⌓ prop = "\226\136\157", -- ∝ Proportion = "\226\136\183", -- ∷ Proportional = "\226\136\157", -- ∝ propto = "\226\136\157", -- ∝ prsim = "\226\137\190", -- ≾ prurel = "\226\138\176", -- ⊰ pscr = "\240\157\147\133", -- 𝓅 Pscr = "\240\157\146\171", -- 𝒫 psi = "\207\136", -- ψ Psi = "\206\168", -- Ψ puncsp = "\226\128\136", -- [punctuation space] qfr = "\240\157\148\174", -- 𝔮 Qfr = "\240\157\148\148", -- 𝔔 qint = "\226\168\140", -- ⨌ qopf = "\240\157\149\162", -- 𝕢 Qopf = "\226\132\154", -- ℚ qprime = "\226\129\151", -- ⁗ qscr = "\240\157\147\134", -- 𝓆 Qscr = "\240\157\146\172", -- 𝒬 quaternions = "\226\132\141", -- ℍ quatint = "\226\168\150", -- ⨖ quest = "\63", -- ? questeq = "\226\137\159", -- ≟ quot = "\34", -- " QUOT = "\34", -- " rAarr = "\226\135\155", -- ⇛ race = "\226\136\189\204\177", -- ∽̱ racute = "\197\149", -- ŕ Racute = "\197\148", -- Ŕ radic = "\226\136\154", -- √ raemptyv = "\226\166\179", -- ⦳ rang = "\226\159\169", -- ⟩ Rang = "\226\159\171", -- ⟫ rangd = "\226\166\146", -- ⦒ range = "\226\166\165", -- ⦥ rangle = "\226\159\169", -- ⟩ raquo = "\194\187", -- » rarr = "\226\134\146", -- → rArr = "\226\135\146", -- ⇒ Rarr = "\226\134\160", -- ↠ rarrap = "\226\165\181", -- ⥵ rarrb = "\226\135\165", -- ⇥ rarrbfs = "\226\164\160", -- ⤠ rarrc = "\226\164\179", -- ⤳ rarrfs = "\226\164\158", -- ⤞ rarrhk = "\226\134\170", -- ↪ rarrlp = "\226\134\172", -- ↬ rarrpl = "\226\165\133", -- ⥅ rarrsim = "\226\165\180", -- ⥴ rarrtl = "\226\134\163", -- ↣ Rarrtl = "\226\164\150", -- ⤖ rarrw = "\226\134\157", -- ↝ ratail = "\226\164\154", -- ⤚ rAtail = "\226\164\156", -- ⤜ ratio = "\226\136\182", -- ∶ rationals = "\226\132\154", -- ℚ rbarr = "\226\164\141", -- ⤍ rBarr = "\226\164\143", -- ⤏ RBarr = "\226\164\144", -- ⤐ rbbrk = "\226\157\179", -- ❳ rbrace = "\125", -- } rbrack = "\93", -- ] rbrke = "\226\166\140", -- ⦌ rbrksld = "\226\166\142", -- ⦎ rbrkslu = "\226\166\144", -- ⦐ rcaron = "\197\153", -- ř Rcaron = "\197\152", -- Ř rcedil = "\197\151", -- ŗ Rcedil = "\197\150", -- Ŗ rceil = "\226\140\137", -- ⌉ rcub = "\125", -- } rcy = "\209\128", -- р Rcy = "\208\160", -- Р rdca = "\226\164\183", -- ⤷ rdldhar = "\226\165\169", -- ⥩ rdquo = "\226\128\157", -- ” rdquor = "\226\128\157", -- ” rdsh = "\226\134\179", -- ↳ Re = "\226\132\156", -- ℜ real = "\226\132\156", -- ℜ realine = "\226\132\155", -- ℛ realpart = "\226\132\156", -- ℜ reals = "\226\132\157", -- ℝ rect = "\226\150\173", -- ▭ reg = "\194\174", -- ® REG = "\194\174", -- ® ReverseElement = "\226\136\139", -- ∋ ReverseEquilibrium = "\226\135\139", -- ⇋ ReverseUpEquilibrium = "\226\165\175", -- ⥯ rfisht = "\226\165\189", -- ⥽ rfloor = "\226\140\139", -- ⌋ rfr = "\240\157\148\175", -- 𝔯 Rfr = "\226\132\156", -- ℜ rHar = "\226\165\164", -- ⥤ rhard = "\226\135\129", -- ⇁ rharu = "\226\135\128", -- ⇀ rharul = "\226\165\172", -- ⥬ rho = "\207\129", -- ρ Rho = "\206\161", -- Ρ rhov = "\207\177", -- ϱ RightAngleBracket = "\226\159\169", -- ⟩ rightarrow = "\226\134\146", -- → Rightarrow = "\226\135\146", -- ⇒ RightArrow = "\226\134\146", -- → RightArrowBar = "\226\135\165", -- ⇥ RightArrowLeftArrow = "\226\135\132", -- ⇄ rightarrowtail = "\226\134\163", -- ↣ RightCeiling = "\226\140\137", -- ⌉ RightDoubleBracket = "\226\159\167", -- ⟧ RightDownTeeVector = "\226\165\157", -- ⥝ RightDownVector = "\226\135\130", -- ⇂ RightDownVectorBar = "\226\165\149", -- ⥕ RightFloor = "\226\140\139", -- ⌋ rightharpoondown = "\226\135\129", -- ⇁ rightharpoonup = "\226\135\128", -- ⇀ rightleftarrows = "\226\135\132", -- ⇄ rightleftharpoons = "\226\135\140", -- ⇌ rightrightarrows = "\226\135\137", -- ⇉ rightsquigarrow = "\226\134\157", -- ↝ RightTee = "\226\138\162", -- ⊢ RightTeeArrow = "\226\134\166", -- ↦ RightTeeVector = "\226\165\155", -- ⥛ rightthreetimes = "\226\139\140", -- ⋌ RightTriangle = "\226\138\179", -- ⊳ RightTriangleBar = "\226\167\144", -- ⧐ RightTriangleEqual = "\226\138\181", -- ⊵ RightUpDownVector = "\226\165\143", -- ⥏ RightUpTeeVector = "\226\165\156", -- ⥜ RightUpVector = "\226\134\190", -- ↾ RightUpVectorBar = "\226\165\148", -- ⥔ RightVector = "\226\135\128", -- ⇀ RightVectorBar = "\226\165\147", -- ⥓ ring = "\203\154", -- ˚ risingdotseq = "\226\137\147", -- ≓ rlarr = "\226\135\132", -- ⇄ rlhar = "\226\135\140", -- ⇌ rlm = "\226\128\143", -- [right-to-left mark] rmoust = "\226\142\177", -- ⎱ rmoustache = "\226\142\177", -- ⎱ rnmid = "\226\171\174", -- ⫮ roang = "\226\159\173", -- ⟭ roarr = "\226\135\190", -- ⇾ robrk = "\226\159\167", -- ⟧ ropar = "\226\166\134", -- ⦆ ropf = "\240\157\149\163", -- 𝕣 Ropf = "\226\132\157", -- ℝ roplus = "\226\168\174", -- ⨮ rotimes = "\226\168\181", -- ⨵ RoundImplies = "\226\165\176", -- ⥰ rpar = "\41", -- ) rpargt = "\226\166\148", -- ⦔ rppolint = "\226\168\146", -- ⨒ rrarr = "\226\135\137", -- ⇉ Rrightarrow = "\226\135\155", -- ⇛ rsaquo = "\226\128\186", -- › rscr = "\240\157\147\135", -- 𝓇 Rscr = "\226\132\155", -- ℛ rsh = "\226\134\177", -- ↱ Rsh = "\226\134\177", -- ↱ rsqb = "\93", -- ] rsquo = "\226\128\153", -- ’ rsquor = "\226\128\153", -- ’ rthree = "\226\139\140", -- ⋌ rtimes = "\226\139\138", -- ⋊ rtri = "\226\150\185", -- ▹ rtrie = "\226\138\181", -- ⊵ rtrif = "\226\150\184", -- ▸ rtriltri = "\226\167\142", -- ⧎ RuleDelayed = "\226\167\180", -- ⧴ ruluhar = "\226\165\168", -- ⥨ rx = "\226\132\158", -- ℞ sacute = "\197\155", -- ś Sacute = "\197\154", -- Ś sbquo = "\226\128\154", -- ‚ sc = "\226\137\187", -- ≻ Sc = "\226\170\188", -- ⪼ scap = "\226\170\184", -- ⪸ scaron = "\197\161", -- š Scaron = "\197\160", -- Š sccue = "\226\137\189", -- ≽ sce = "\226\170\176", -- ⪰ scE = "\226\170\180", -- ⪴ scedil = "\197\159", -- ş Scedil = "\197\158", -- Ş scirc = "\197\157", -- ŝ Scirc = "\197\156", -- Ŝ scnap = "\226\170\186", -- ⪺ scnE = "\226\170\182", -- ⪶ scnsim = "\226\139\169", -- ⋩ scpolint = "\226\168\147", -- ⨓ scsim = "\226\137\191", -- ≿ scy = "\209\129", -- с Scy = "\208\161", -- С sdot = "\226\139\133", -- ⋅ sdotb = "\226\138\161", -- ⊡ sdote = "\226\169\166", -- ⩦ searhk = "\226\164\165", -- ⤥ searr = "\226\134\152", -- ↘ seArr = "\226\135\152", -- ⇘ searrow = "\226\134\152", -- ↘ sect = "\194\167", -- § semi = "\59", -- ; seswar = "\226\164\169", -- ⤩ setminus = "\226\136\150", -- ∖ setmn = "\226\136\150", -- ∖ sext = "\226\156\182", -- ✶ sfr = "\240\157\148\176", -- 𝔰 Sfr = "\240\157\148\150", -- 𝔖 sfrown = "\226\140\162", -- ⌢ sharp = "\226\153\175", -- ♯ shchcy = "\209\137", -- щ SHCHcy = "\208\169", -- Щ shcy = "\209\136", -- ш SHcy = "\208\168", -- Ш ShortDownArrow = "\226\134\147", -- ↓ ShortLeftArrow = "\226\134\144", -- ← shortmid = "\226\136\163", -- ∣ shortparallel = "\226\136\165", -- ∥ ShortRightArrow = "\226\134\146", -- → ShortUpArrow = "\226\134\145", -- ↑ shy = "\194\173", -- [soft hyphen] sigma = "\207\131", -- σ Sigma = "\206\163", -- Σ sigmaf = "\207\130", -- ς sigmav = "\207\130", -- ς sim = "\226\136\188", -- ∼ simdot = "\226\169\170", -- ⩪ sime = "\226\137\131", -- ≃ simeq = "\226\137\131", -- ≃ simg = "\226\170\158", -- ⪞ simgE = "\226\170\160", -- ⪠ siml = "\226\170\157", -- ⪝ simlE = "\226\170\159", -- ⪟ simne = "\226\137\134", -- ≆ simplus = "\226\168\164", -- ⨤ simrarr = "\226\165\178", -- ⥲ slarr = "\226\134\144", -- ← SmallCircle = "\226\136\152", -- ∘ smallsetminus = "\226\136\150", -- ∖ smashp = "\226\168\179", -- ⨳ smeparsl = "\226\167\164", -- ⧤ smid = "\226\136\163", -- ∣ smile = "\226\140\163", -- ⌣ smt = "\226\170\170", -- ⪪ smte = "\226\170\172", -- ⪬ smtes = "\226\170\172\239\184\128", -- ⪬︀ softcy = "\209\140", -- ь SOFTcy = "\208\172", -- Ь sol = "\47", -- / solb = "\226\167\132", -- ⧄ solbar = "\226\140\191", -- ⌿ sopf = "\240\157\149\164", -- 𝕤 Sopf = "\240\157\149\138", -- 𝕊 spades = "\226\153\160", -- ♠ spadesuit = "\226\153\160", -- ♠ spar = "\226\136\165", -- ∥ sqcap = "\226\138\147", -- ⊓ sqcaps = "\226\138\147\239\184\128", -- ⊓︀ sqcup = "\226\138\148", -- ⊔ sqcups = "\226\138\148\239\184\128", -- ⊔︀ Sqrt = "\226\136\154", -- √ sqsub = "\226\138\143", -- ⊏ sqsube = "\226\138\145", -- ⊑ sqsubset = "\226\138\143", -- ⊏ sqsubseteq = "\226\138\145", -- ⊑ sqsup = "\226\138\144", -- ⊐ sqsupe = "\226\138\146", -- ⊒ sqsupset = "\226\138\144", -- ⊐ sqsupseteq = "\226\138\146", -- ⊒ squ = "\226\150\161", -- □ square = "\226\150\161", -- □ Square = "\226\150\161", -- □ SquareIntersection = "\226\138\147", -- ⊓ SquareSubset = "\226\138\143", -- ⊏ SquareSubsetEqual = "\226\138\145", -- ⊑ SquareSuperset = "\226\138\144", -- ⊐ SquareSupersetEqual = "\226\138\146", -- ⊒ SquareUnion = "\226\138\148", -- ⊔ squarf = "\226\150\170", -- ▪ squf = "\226\150\170", -- ▪ srarr = "\226\134\146", -- → sscr = "\240\157\147\136", -- 𝓈 Sscr = "\240\157\146\174", -- 𝒮 ssetmn = "\226\136\150", -- ∖ ssmile = "\226\140\163", -- ⌣ sstarf = "\226\139\134", -- ⋆ star = "\226\152\134", -- ☆ Star = "\226\139\134", -- ⋆ starf = "\226\152\133", -- ★ straightepsilon = "\207\181", -- ϵ straightphi = "\207\149", -- ϕ strns = "\194\175", -- ¯ sub = "\226\138\130", -- ⊂ Sub = "\226\139\144", -- ⋐ subdot = "\226\170\189", -- ⪽ sube = "\226\138\134", -- ⊆ subE = "\226\171\133", -- ⫅ subedot = "\226\171\131", -- ⫃ submult = "\226\171\129", -- ⫁ subne = "\226\138\138", -- ⊊ subnE = "\226\171\139", -- ⫋ subplus = "\226\170\191", -- ⪿ subrarr = "\226\165\185", -- ⥹ subset = "\226\138\130", -- ⊂ Subset = "\226\139\144", -- ⋐ subseteq = "\226\138\134", -- ⊆ subseteqq = "\226\171\133", -- ⫅ SubsetEqual = "\226\138\134", -- ⊆ subsetneq = "\226\138\138", -- ⊊ subsetneqq = "\226\171\139", -- ⫋ subsim = "\226\171\135", -- ⫇ subsub = "\226\171\149", -- ⫕ subsup = "\226\171\147", -- ⫓ succ = "\226\137\187", -- ≻ succapprox = "\226\170\184", -- ⪸ succcurlyeq = "\226\137\189", -- ≽ Succeeds = "\226\137\187", -- ≻ SucceedsEqual = "\226\170\176", -- ⪰ SucceedsSlantEqual = "\226\137\189", -- ≽ SucceedsTilde = "\226\137\191", -- ≿ succeq = "\226\170\176", -- ⪰ succnapprox = "\226\170\186", -- ⪺ succneqq = "\226\170\182", -- ⪶ succnsim = "\226\139\169", -- ⋩ succsim = "\226\137\191", -- ≿ SuchThat = "\226\136\139", -- ∋ sum = "\226\136\145", -- ∑ Sum = "\226\136\145", -- ∑ sung = "\226\153\170", -- ♪ sup = "\226\138\131", -- ⊃ Sup = "\226\139\145", -- ⋑ sup1 = "\194\185", -- ¹ sup2 = "\194\178", -- ² sup3 = "\194\179", -- ³ supdot = "\226\170\190", -- ⪾ supdsub = "\226\171\152", -- ⫘ supe = "\226\138\135", -- ⊇ supE = "\226\171\134", -- ⫆ supedot = "\226\171\132", -- ⫄ Superset = "\226\138\131", -- ⊃ SupersetEqual = "\226\138\135", -- ⊇ suphsol = "\226\159\137", -- ⟉ suphsub = "\226\171\151", -- ⫗ suplarr = "\226\165\187", -- ⥻ supmult = "\226\171\130", -- ⫂ supne = "\226\138\139", -- ⊋ supnE = "\226\171\140", -- ⫌ supplus = "\226\171\128", -- ⫀ supset = "\226\138\131", -- ⊃ Supset = "\226\139\145", -- ⋑ supseteq = "\226\138\135", -- ⊇ supseteqq = "\226\171\134", -- ⫆ supsetneq = "\226\138\139", -- ⊋ supsetneqq = "\226\171\140", -- ⫌ supsim = "\226\171\136", -- ⫈ supsub = "\226\171\148", -- ⫔ supsup = "\226\171\150", -- ⫖ swarhk = "\226\164\166", -- ⤦ swarr = "\226\134\153", -- ↙ swArr = "\226\135\153", -- ⇙ swarrow = "\226\134\153", -- ↙ swnwar = "\226\164\170", -- ⤪ szlig = "\195\159", -- ß Tab = "\t", -- [tab] target = "\226\140\150", -- ⌖ tau = "\207\132", -- τ Tau = "\206\164", -- Τ tbrk = "\226\142\180", -- ⎴ tcaron = "\197\165", -- ť Tcaron = "\197\164", -- Ť tcedil = "\197\163", -- ţ Tcedil = "\197\162", -- Ţ tcy = "\209\130", -- т Tcy = "\208\162", -- Т tdot = "\226\131\155", -- ⃛ telrec = "\226\140\149", -- ⌕ tfr = "\240\157\148\177", -- 𝔱 Tfr = "\240\157\148\151", -- 𝔗 there4 = "\226\136\180", -- ∴ therefore = "\226\136\180", -- ∴ Therefore = "\226\136\180", -- ∴ theta = "\206\184", -- θ Theta = "\206\152", -- Θ thetasym = "\207\145", -- ϑ thetav = "\207\145", -- ϑ thickapprox = "\226\137\136", -- ≈ thicksim = "\226\136\188", -- ∼ ThickSpace = "\226\129\159\226\128\138", -- [medium mathematical space] + [hair space] thinsp = "\226\128\137", -- [thin space] ThinSpace = "\226\128\137", -- [thin space] thkap = "\226\137\136", -- ≈ thksim = "\226\136\188", -- ∼ thorn = "\195\190", -- þ THORN = "\195\158", -- Þ tilde = "\203\156", -- ˜ Tilde = "\226\136\188", -- ∼ TildeEqual = "\226\137\131", -- ≃ TildeFullEqual = "\226\137\133", -- ≅ TildeTilde = "\226\137\136", -- ≈ times = "\195\151", -- × timesb = "\226\138\160", -- ⊠ timesbar = "\226\168\177", -- ⨱ timesd = "\226\168\176", -- ⨰ tint = "\226\136\173", -- ∭ toea = "\226\164\168", -- ⤨ top = "\226\138\164", -- ⊤ topbot = "\226\140\182", -- ⌶ topcir = "\226\171\177", -- ⫱ topf = "\240\157\149\165", -- 𝕥 Topf = "\240\157\149\139", -- 𝕋 topfork = "\226\171\154", -- ⫚ tosa = "\226\164\169", -- ⤩ tprime = "\226\128\180", -- ‴ trade = "\226\132\162", -- ™ TRADE = "\226\132\162", -- ™ triangle = "\226\150\181", -- ▵ triangledown = "\226\150\191", -- ▿ triangleleft = "\226\151\131", -- ◃ trianglelefteq = "\226\138\180", -- ⊴ triangleq = "\226\137\156", -- ≜ triangleright = "\226\150\185", -- ▹ trianglerighteq = "\226\138\181", -- ⊵ tridot = "\226\151\172", -- ◬ trie = "\226\137\156", -- ≜ triminus = "\226\168\186", -- ⨺ TripleDot = "\226\131\155", -- ⃛ triplus = "\226\168\185", -- ⨹ trisb = "\226\167\141", -- ⧍ tritime = "\226\168\187", -- ⨻ trpezium = "\226\143\162", -- ⏢ tscr = "\240\157\147\137", -- 𝓉 Tscr = "\240\157\146\175", -- 𝒯 tscy = "\209\134", -- ц TScy = "\208\166", -- Ц tshcy = "\209\155", -- ћ TSHcy = "\208\139", -- Ћ tstrok = "\197\167", -- ŧ Tstrok = "\197\166", -- Ŧ twixt = "\226\137\172", -- ≬ twoheadleftarrow = "\226\134\158", -- ↞ twoheadrightarrow = "\226\134\160", -- ↠ uacute = "\195\186", -- ú Uacute = "\195\154", -- Ú uarr = "\226\134\145", -- ↑ uArr = "\226\135\145", -- ⇑ Uarr = "\226\134\159", -- ↟ Uarrocir = "\226\165\137", -- ⥉ ubrcy = "\209\158", -- ў Ubrcy = "\208\142", -- Ў ubreve = "\197\173", -- ŭ Ubreve = "\197\172", -- Ŭ ucirc = "\195\187", -- û Ucirc = "\195\155", -- Û ucy = "\209\131", -- у Ucy = "\208\163", -- У udarr = "\226\135\133", -- ⇅ udblac = "\197\177", -- ű Udblac = "\197\176", -- Ű udhar = "\226\165\174", -- ⥮ ufisht = "\226\165\190", -- ⥾ ufr = "\240\157\148\178", -- 𝔲 Ufr = "\240\157\148\152", -- 𝔘 ugrave = "\195\185", -- ù Ugrave = "\195\153", -- Ù uHar = "\226\165\163", -- ⥣ uharl = "\226\134\191", -- ↿ uharr = "\226\134\190", -- ↾ uhblk = "\226\150\128", -- ▀ ulcorn = "\226\140\156", -- ⌜ ulcorner = "\226\140\156", -- ⌜ ulcrop = "\226\140\143", -- ⌏ ultri = "\226\151\184", -- ◸ umacr = "\197\171", -- ū Umacr = "\197\170", -- Ū uml = "\194\168", -- ¨ UnderBar = "\95", -- _ UnderBrace = "\226\143\159", -- ⏟ UnderBracket = "\226\142\181", -- ⎵ UnderParenthesis = "\226\143\157", -- ⏝ Union = "\226\139\131", -- ⋃ UnionPlus = "\226\138\142", -- ⊎ uogon = "\197\179", -- ų Uogon = "\197\178", -- Ų uopf = "\240\157\149\166", -- 𝕦 Uopf = "\240\157\149\140", -- 𝕌 uparrow = "\226\134\145", -- ↑ Uparrow = "\226\135\145", -- ⇑ UpArrow = "\226\134\145", -- ↑ UpArrowBar = "\226\164\146", -- ⤒ UpArrowDownArrow = "\226\135\133", -- ⇅ updownarrow = "\226\134\149", -- ↕ Updownarrow = "\226\135\149", -- ⇕ UpDownArrow = "\226\134\149", -- ↕ UpEquilibrium = "\226\165\174", -- ⥮ upharpoonleft = "\226\134\191", -- ↿ upharpoonright = "\226\134\190", -- ↾ uplus = "\226\138\142", -- ⊎ UpperLeftArrow = "\226\134\150", -- ↖ UpperRightArrow = "\226\134\151", -- ↗ upsi = "\207\133", -- υ Upsi = "\207\146", -- ϒ upsih = "\207\146", -- ϒ upsilon = "\207\133", -- υ Upsilon = "\206\165", -- Υ UpTee = "\226\138\165", -- ⊥ UpTeeArrow = "\226\134\165", -- ↥ upuparrows = "\226\135\136", -- ⇈ urcorn = "\226\140\157", -- ⌝ urcorner = "\226\140\157", -- ⌝ urcrop = "\226\140\142", -- ⌎ uring = "\197\175", -- ů Uring = "\197\174", -- Ů urtri = "\226\151\185", -- ◹ uscr = "\240\157\147\138", -- 𝓊 Uscr = "\240\157\146\176", -- 𝒰 utdot = "\226\139\176", -- ⋰ utilde = "\197\169", -- ũ Utilde = "\197\168", -- Ũ utri = "\226\150\181", -- ▵ utrif = "\226\150\180", -- ▴ uuarr = "\226\135\136", -- ⇈ uuml = "\195\188", -- ü Uuml = "\195\156", -- Ü uwangle = "\226\166\167", -- ⦧ vangrt = "\226\166\156", -- ⦜ varepsilon = "\207\181", -- ϵ varkappa = "\207\176", -- ϰ varnothing = "\226\136\133", -- ∅ varphi = "\207\149", -- ϕ varpi = "\207\150", -- ϖ varpropto = "\226\136\157", -- ∝ varr = "\226\134\149", -- ↕ vArr = "\226\135\149", -- ⇕ varrho = "\207\177", -- ϱ varsigma = "\207\130", -- ς varsubsetneq = "\226\138\138\239\184\128", -- ⊊︀ varsubsetneqq = "\226\171\139\239\184\128", -- ⫋︀ varsupsetneq = "\226\138\139\239\184\128", -- ⊋︀ varsupsetneqq = "\226\171\140\239\184\128", -- ⫌︀ vartheta = "\207\145", -- ϑ vartriangleleft = "\226\138\178", -- ⊲ vartriangleright = "\226\138\179", -- ⊳ vBar = "\226\171\168", -- ⫨ Vbar = "\226\171\171", -- ⫫ vBarv = "\226\171\169", -- ⫩ vcy = "\208\178", -- в Vcy = "\208\146", -- В vdash = "\226\138\162", -- ⊢ vDash = "\226\138\168", -- ⊨ Vdash = "\226\138\169", -- ⊩ VDash = "\226\138\171", -- ⊫ Vdashl = "\226\171\166", -- ⫦ vee = "\226\136\168", -- ∨ Vee = "\226\139\129", -- ⋁ veebar = "\226\138\187", -- ⊻ veeeq = "\226\137\154", -- ≚ vellip = "\226\139\174", -- ⋮ verbar = "\124", -- | Verbar = "\226\128\150", -- ‖ vert = "\124", -- | Vert = "\226\128\150", -- ‖ VerticalBar = "\226\136\163", -- ∣ VerticalLine = "\124", -- | VerticalSeparator = "\226\157\152", -- ❘ VerticalTilde = "\226\137\128", -- ≀ VeryThinSpace = "\226\128\138", -- [hair space] vfr = "\240\157\148\179", -- 𝔳 Vfr = "\240\157\148\153", -- 𝔙 vltri = "\226\138\178", -- ⊲ vnsub = "\226\138\130\226\131\146", -- ⊂⃒ vnsup = "\226\138\131\226\131\146", -- ⊃⃒ vopf = "\240\157\149\167", -- 𝕧 Vopf = "\240\157\149\141", -- 𝕍 vprop = "\226\136\157", -- ∝ vrtri = "\226\138\179", -- ⊳ vscr = "\240\157\147\139", -- 𝓋 Vscr = "\240\157\146\177", -- 𝒱 vsubne = "\226\138\138\239\184\128", -- ⊊︀ vsubnE = "\226\171\139\239\184\128", -- ⫋︀ vsupne = "\226\138\139\239\184\128", -- ⊋︀ vsupnE = "\226\171\140\239\184\128", -- ⫌︀ Vvdash = "\226\138\170", -- ⊪ vzigzag = "\226\166\154", -- ⦚ wcirc = "\197\181", -- ŵ Wcirc = "\197\180", -- Ŵ wedbar = "\226\169\159", -- ⩟ wedge = "\226\136\167", -- ∧ Wedge = "\226\139\128", -- ⋀ wedgeq = "\226\137\153", -- ≙ weierp = "\226\132\152", -- ℘ wfr = "\240\157\148\180", -- 𝔴 Wfr = "\240\157\148\154", -- 𝔚 wopf = "\240\157\149\168", -- 𝕨 Wopf = "\240\157\149\142", -- 𝕎 wp = "\226\132\152", -- ℘ wr = "\226\137\128", -- ≀ wreath = "\226\137\128", -- ≀ wscr = "\240\157\147\140", -- 𝓌 Wscr = "\240\157\146\178", -- 𝒲 xcap = "\226\139\130", -- ⋂ xcirc = "\226\151\175", -- ◯ xcup = "\226\139\131", -- ⋃ xdtri = "\226\150\189", -- ▽ xfr = "\240\157\148\181", -- 𝔵 Xfr = "\240\157\148\155", -- 𝔛 xharr = "\226\159\183", -- ⟷ xhArr = "\226\159\186", -- ⟺ xi = "\206\190", -- ξ Xi = "\206\158", -- Ξ xlarr = "\226\159\181", -- ⟵ xlArr = "\226\159\184", -- ⟸ xmap = "\226\159\188", -- ⟼ xnis = "\226\139\187", -- ⋻ xodot = "\226\168\128", -- ⨀ xopf = "\240\157\149\169", -- 𝕩 Xopf = "\240\157\149\143", -- 𝕏 xoplus = "\226\168\129", -- ⨁ xotime = "\226\168\130", -- ⨂ xrarr = "\226\159\182", -- ⟶ xrArr = "\226\159\185", -- ⟹ xscr = "\240\157\147\141", -- 𝓍 Xscr = "\240\157\146\179", -- 𝒳 xsqcup = "\226\168\134", -- ⨆ xuplus = "\226\168\132", -- ⨄ xutri = "\226\150\179", -- △ xvee = "\226\139\129", -- ⋁ xwedge = "\226\139\128", -- ⋀ yacute = "\195\189", -- ý Yacute = "\195\157", -- Ý yacy = "\209\143", -- я YAcy = "\208\175", -- Я ycirc = "\197\183", -- ŷ Ycirc = "\197\182", -- Ŷ ycy = "\209\139", -- ы Ycy = "\208\171", -- Ы yen = "\194\165", -- ¥ yfr = "\240\157\148\182", -- 𝔶 Yfr = "\240\157\148\156", -- 𝔜 yicy = "\209\151", -- ї YIcy = "\208\135", -- Ї yopf = "\240\157\149\170", -- 𝕪 Yopf = "\240\157\149\144", -- 𝕐 yscr = "\240\157\147\142", -- 𝓎 Yscr = "\240\157\146\180", -- 𝒴 yucy = "\209\142", -- ю YUcy = "\208\174", -- Ю yuml = "\195\191", -- ÿ Yuml = "\197\184", -- Ÿ zacute = "\197\186", -- ź Zacute = "\197\185", -- Ź zcaron = "\197\190", -- ž Zcaron = "\197\189", -- Ž zcy = "\208\183", -- з Zcy = "\208\151", -- З zdot = "\197\188", -- ż Zdot = "\197\187", -- Ż zeetrf = "\226\132\168", -- ℨ ZeroWidthSpace = "\226\128\139", -- [zero width space] zeta = "\206\182", -- ζ Zeta = "\206\150", -- Ζ zfr = "\240\157\148\183", -- 𝔷 Zfr = "\226\132\168", -- ℨ zhcy = "\208\182", -- ж ZHcy = "\208\150", -- Ж zigrarr = "\226\135\157", -- ⇝ zopf = "\240\157\149\171", -- 𝕫 Zopf = "\226\132\164", -- ℤ zscr = "\240\157\147\143", -- 𝓏 Zscr = "\240\157\146\181", -- 𝒵 zwj = "\226\128\141", -- [zero width joiner] zwnj = "\226\128\140", -- [zero width non-joiner] -- Nonstandard, but accepted by MediaWiki. ["רלמ"] = "\226\128\143", -- [right-to-left mark] ["رلم"] = "\226\128\143", -- [right-to-left mark] } 8o4sqdodbkfwk9xmp2f1xlrb7zei3p7 Modul:zhx-sic-pron 828 160441 628986 2024-11-06T18:08:57Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local gmatch = m_string_utils.gmatch local gsplit = mw.text.gsplit local lower = m_string_utils.lower local upper = m_string_utils.upper local initialConv = { ["b"] = "p", ["d"] = "t", ["g"] = "k", ["p"] = "pʰ", ["t"] = "tʰ", ["k"] = "kʰ", ["z"] = "t͡s", ["j"] = "t...“ yozuvi orqali yangi sahifa yaratildi 628986 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local gmatch = m_string_utils.gmatch local gsplit = mw.text.gsplit local lower = m_string_utils.lower local upper = m_string_utils.upper local initialConv = { ["b"] = "p", ["d"] = "t", ["g"] = "k", ["p"] = "pʰ", ["t"] = "tʰ", ["k"] = "kʰ", ["z"] = "t͡s", ["j"] = "t͡ɕ", ["c"] = "t͡sʰ", ["q"] = "t͡ɕʰ", ["m"] = "m", ["n"] = "n", ["ny"] = "nʲ", ["ng"] = "ŋ", ["f"] = "f", ["s"] = "s", ["x"] = "ɕ", ["h"] = "x", ["w"] = "v", ["r"] = "z", [""] = "", } -- note that 'ir' is for internal use by the code and not used in actual sichuanese pinyin local finalConv = { ["ir"] = "z̩", ["er"] = "ɚ", ["a"] = "a", ["o"] = "o", ["e"] = "ɛ", ["ai"] = "ai", ["ei"] = "ei", ["ao"] = "au", ["ou"] = "əu", ["an"] = "an", ["en"] = "ən", ["ang"] = "aŋ", ["ong"] = "oŋ", ["i"] = "i", ["ia"] = "ia", ["ie"] = "iɛ", ["iai"] = "iɛi", ["iao"] = "iau", ["iu"] = "iəu", ["ian"] = "iɛn", ["in"] = "in", ["iang"] = "iaŋ", ["u"] = "u", ["ua"] = "ua", ["ue"] = "uɛ", ["uai"] = "uai", ["ui"] = "uei", ["uan"] = "uan", ["un"] = "uən", ["uang"] = "uaŋ", ["ü"] = "y", ["üo"] = "yo", ["üe"] = "ye", ["üan"] = "yan", ["ün"] = "yn", ["iong"] = "yoŋ", } local toneConv = { ["1"] = "⁵⁵", ["2"] = "²¹", ["3"] = "⁵³", ["4"] = "²¹³", ["-"] = "⁻", } local initialConv_swz = { ["j"] = "g", ["q"] = "k", ["n"] = "l", ["ny"] = "n", ["h"] = "x", ["w"] = "", ["r"] = "rh", } local finalConv_swz = { ["ir"] = "", ["er"] = "r", ["ong"] = "ung", ["uang"] = "uong", ["ü"] = "y", ["üo"] = "iuo", ["üe"] = "ye", ["üan"] = "uan", ["ün"] = "un", ["iong"] = "yng", } local function fix(initial, final) -- ju /tɕy/ if find(initial, '^[yjqx]$') and find(final, '^u') then final = gsub(final, '^u', 'ü') end if initial == 'y' then initial = '' if final == 'ou' then final = 'iu' elseif not find(final, '^[iü]') then -- yin /in/, yuan /yan/, ya /ia/ final = 'i' .. final end end -- wei /uei/ (/-uei/ is usually spelled <-ui> but /uei/ is not <wui>) -- wu /vu/ -- wai /uai/ -- wen /uən/ if initial == 'w' then initial = (final == 'u') and 'w' or '' if final == 'ei' then final = 'ui' elseif final == 'en' then final = 'un' elseif final ~= 'u' then final = 'u' .. final end end -- distinguish the two 'i's if find(initial, '^[zcsr]$') and final == 'i' then final = 'ir' end return initial, final end local function warn(initial, final, tone) if initial == "" and find(final, "^[iu]") then error("Syllables in Sichuanese Pinyin do not begin with i-/u-. Add y-/w-.") end if not initialConv[initial] and initial ~= "y" then error("Invalid initial: " .. initial) end if not finalConv[final] and final ~= "uo" then error("Invalid final: " .. final) end if tone == "5" then error("Chengdu does not have the fifth tone anymore. Use 2.") end end function export.convert(text, scheme) if type(text) == "table" then text, scheme = text.args[1], text.args[2] end local result = {} for word in gsplit(text, '/') do local converted = {} local extra2 = match(word, '^[^A-Za-zü]*') for syllable in gmatch(word, '[A-Za-zü]+[%d%-]+[^A-Za-zü]*') do local initial, final, erhua, tone, extra = match(syllable, '^([BDGPTKZJCQMNFSXHVRWYbdgptkzjcqmnfsxhvrwy]?[yg]?)([AEOaiueoüng]+)(r?)([%d%-]+)([^A-Za-zü]*)$') local caps = false if find(initial .. final, '[A-Z]') then caps = true initial, final = lower(initial), lower(final) end warn(initial, final, tone) initial, final = fix(initial, final) if final == 'e' and erhua == 'r' then final, erhua = 'er', '' end if scheme == 'IPA' then initial = initialConv[initial] final = finalConv[final] tone = gsub(tone, '.', function(char) return toneConv[char] end) if erhua == 'r' then if find(final, '^y') then -- 撮口呼 final = 'yɚ' elseif find(final, '^i') then -- 齊齒呼 final = 'iɚ' elseif find(final, '^u') then -- 合口呼 final = 'uɚ' elseif (final == 'o' or final == 'oŋ') and find(initial, '^[pmfv]') then final = 'ɚ' elseif final == 'o' or final == 'oŋ' then final = 'uɚ' else -- 開口呼 final = 'ɚ' end end syllable = initial .. final .. tone table.insert(converted, syllable) elseif scheme == 'SWZ' then initial = initialConv_swz[initial] or initial final = finalConv_swz[final] or final tone = gsub(tone, '(%d)%-(%d)', '%2') -- XXX: what happens with erhua? (disabled output for now) -- cf the given example 貓(mer) if erhua == 'r' then return false end if tone == '3' and (final == 'a' or final == 'ai') then final = 'a' .. final end syllable = initial .. final if caps then syllable = gsub(syllable, '^.', upper) end table.insert(converted, '@' .. syllable .. extra) else error('Convert to what representation?') end end if scheme == 'IPA' then local text = '/' .. table.concat(converted, ' ') .. '/' table.insert(result, text) elseif scheme == 'SWZ' then local text = table.concat(converted, '') text = gsub(text, '([a-z])@(u)', '%1w') text = gsub(text, '([a-z])@(i)', '%1j') text = gsub(text, '([ng])@(y)', '%1j') text = gsub(text, '@un', 'wen') text = gsub(text, '@', '') table.insert(result, extra2 .. text) end end if scheme == 'IPA' then return table.concat(result, ', ') else return table.concat(result, ' / ') end end return export g9istyn7gx7jgjyl2lf0ms2et7j59jh Modul:cmn-pron-Xian 828 160442 628987 2024-11-06T18:10:00Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} -- see the encoding below local initials = { b = "p", p = "pʰ", m = "m", f = "f", v = "v", B = "p͡f", P = "p͡fʰ", d = "t", t = "tʰ", n = "n", l = "l", g = "k", k = "kʰ", N = "ŋ", h = "x", j = "t͡ɕ", q = "t͡ɕʰ", x = "ɕ", Z = "ʈ͡ʂ", C = "ʈ͡ʂʰ", S = "ʂ", r = "ʐ", z = "t͡s", c = "t͡sʰ", s = "s", [""] = "", } -- see the encoding below (U=ü, N=ng) local finals = { a = "a", ia = "ia", ua = "ua", ar =...“ yozuvi orqali yangi sahifa yaratildi 628987 Scribunto text/plain local export = {} -- see the encoding below local initials = { b = "p", p = "pʰ", m = "m", f = "f", v = "v", B = "p͡f", P = "p͡fʰ", d = "t", t = "tʰ", n = "n", l = "l", g = "k", k = "kʰ", N = "ŋ", h = "x", j = "t͡ɕ", q = "t͡ɕʰ", x = "ɕ", Z = "ʈ͡ʂ", C = "ʈ͡ʂʰ", S = "ʂ", r = "ʐ", z = "t͡s", c = "t͡sʰ", s = "s", [""] = "", } -- see the encoding below (U=ü, N=ng) local finals = { a = "a", ia = "ia", ua = "ua", ar = "ɐr", iar = "iɐr", uar = "uɐr", o = "o", uo = "uo", Uo = "yo", er = "ər", uor = "uər", e = "ɤ", ue = "ɯ", ie = "iɛ", Ue = "yɛ", ier = "iɛr", Uer = "yɛr", ii = "z̩", ih = "ʐ̩", i = "i", u = "u", U = "y", iir = "ər", ihr = "ər", ir = "iər", ur = "uər", Ur = "yər", ai = "æ", iai = "iæ", uai = "uæ", air = "ær", iair = "iær", uair = "uær", ei = "ei", ui = "uei", eir = "er", uir = "uer", ao = "au", iao = "iau", aor = "ɔr", iaor = "iɔr", ou = "ɤu", iu = "iɤu", our = "ər", iur = "iər", an = "ã", ian = "iã", uan = "uã", Uan = "yã", anr = "ɐ̃r", ianr = "iɐ̃r", uanr = "uɐ̃r", Uanr = "yɐ̃r", en = "ẽ", ["in"] = "iẽ", un = "uẽ", Un = "yẽ", enr = "ə̃r", inr = "iə̃r", unr = "uə̃r", Unr = "yə̃r", aN = "aŋ", iaN = "iaŋ", uaN = "uaŋ", aNr = "ɐ̃r", iaNr = "iɐ̃r", uaNr = "uɐ̃r", eN = "əŋ", iN = "iŋ", oN = "uəŋ", ioN = "yoŋ", eNr = "ə̃r", iNr = "iə̃r", oNr = "uə̃r", ioNr = "yə̃r", } local tones = { ["1"] = "²¹", --陰平(T1) ["2"] = "²⁴", --陽平(T2) ["3"] = "⁵³", --上(T3) ["4"] = "⁵⁵", --去(T4) ["5"] = "", -- toneless (T0) } -- internal use, encode and decode digraphs local digraph_encode = { bv = "B", pf = "P", ng = "N", zh = "Z", ch = "C", sh = "S", ["\204\140"] = "\1", ["\204\129"] = "\2", ["\204\128"] = "\3", ["\204\132"] = "\4", } local digraph_decode = { B = "bv", P = "pf", N = "ng", Z = "zh", C = "ch", S = "sh", U = "ü", ["\1"] = "\204\140", ["\2"] = "\204\129", ["\3"] = "\204\128", ["\4"] = "\204\132", ["\5"] = '<span style="background-color:#F5DEB3">', ["\6"] = "</span>", } local function encode(text) text = mw.ustring.toNFD(text) :gsub("u\204\136","U") :gsub("[bpnzcs\204][vfgh\128\129\132\140]",digraph_encode) return text end local function decode(text) text = mw.ustring.toNFC(text:gsub("[BPNZCSU\1-\7]",digraph_decode)) return text end local function py_join_syllables(text) text = text:gsub("'(\5?[bpmfvBPdtnlgkhjqxZCSrzcsyw])","%1"):gsub("ng","N") return text end local function py_divide_syllables(text) local res = text :gsub("([aeiouU\1-\4])N%f[aeiouU]","%1n'g") :gsub("[bpmfvBPdtnlgkNhjqxZCSrzcsyw][aeiouU]","'%0") :gsub("''+","'") :gsub("%f[^ %z]'","") local check = py_join_syllables(res) if text ~= check then error("Xi'an: error with apostrophes, "..decode(text).." should be "..decode(check)..".") end return res end local function py_put_tone(syllable, tone) syllable = syllable:gsub("[iuU]?[aeiouU]", "%0" .. (tone~="5" and string.char(tone) or ""), 1) return syllable end local function py_transf(syllable) local tone = tostring((syllable:match("[\1-\4]") or "\5"):byte(1)) local syllable_detone, count = syllable:gsub("[\1-\4]","") if count > 1 then error("Xi'an: two tones in one syllable: " .. decode(syllable)) end local check = py_put_tone(syllable_detone,tone) if check ~= syllable then error("Xi'an: error with tone placement, "..decode(syllable).." should be "..decode(check)..".") end return tone .. syllable_detone end -- canonize to adhere to pinyin rules, e.g. jü -> ju local function py_canonize(text) text = text :gsub("([jqx])U","%1u") :gsub("%f[%l%u]u[in]?",{u="w",ui="wei",un="wen"}) :gsub("%f[%l%u]oN","weN") :gsub("w(r?)%f[^%l%u]","wu%1") :gsub("%f[%l%u]i[hu]?",{i="y",ih="ri",iu="you"}) :gsub("y([nN]?r?)%f[^%l%u]","yi%1") :gsub("%f[%l%u]U","yu") :gsub("i[ih]","i") return text end -- normalize to initial+final, e.g. ju -> jü local function py_normalize(text) local res = text :gsub("([jqx])u","%1U") :gsub("w[ue][inN]?",{wu="u",wei="ui",wen="un",weN="oN"}) :gsub("w","u") :gsub("y[iuo]u?",{yi="i",yu="U",you="iu"}) :gsub("y","i") :gsub("([zcs])i","%1ii") :gsub("([ZCSr])i","%1ih") :gsub("rih%f[^%l%u]","ih") local check = py_canonize(res) if text ~= check then error("Xi'an: invalid syllable: "..decode(text).." should be "..decode(check)) end return res end local function py_to_ipa(text) text = text:gsub("[^ ]+",function(syllable) local a,b,c,d = syllable:match("^([12345])([bpmfvBPdtnlgkNhjqxZCSrzcs]?)([aeiouU][%lN]*)([12345]?)$") if not a then error("Xi'an: Invalid syllable: " .. decode(syllable)) end return (initials[b] or error("Xi'an: Invalid initial: " .. decode(b))) .. (finals[c] or error ("Xi'an: Invalid final: " .. decode(c))) .. tones[a] .. (d~="" and "⁻"..tones[d] or "") end) return "/" .. text .. "/" end -- returns (display_text, phonetic_text, ipa) function export.py_process(text) local conv_display = {} local conv_hidden = {} local conv_ipa = {} local i = 0 for reading in mw.text.gsplit(text,"/",true) do i = i + 1 conv_display[i] = reading:gsub("[12345]","") -- no check is done for things like "xUān", any capitalisation is valid reading = mw.ustring.lower(reading) reading = encode(reading) reading = py_divide_syllables(reading) if reading:match("[12345]") then local phonetic = reading :gsub("([bpmfvBPdtnlgkNhjqxZCSrzcsyw]?[iuU]?[aeiouU])[\1-\4]?([%lN]*)([1-5])", function(a,b,c) return "\5" .. a .. (c~="5" and string.char(c) or "") .. b .. "\6" end) phonetic = py_join_syllables(phonetic) conv_hidden[i] = conv_display[i] .. " [Phonetic: " .. decode(phonetic) .. "]" else conv_hidden[i] = conv_display[i] end reading = reading:gsub("'"," "):gsub("[^ ]+",py_transf) reading = py_normalize(reading) conv_ipa[i] = py_to_ipa(reading) end return table.concat(conv_display, " / "), table.concat(conv_hidden, " / "), table.concat(conv_ipa, ", ") end return export rk661a9p54cb1vrstwaqtjgpg4wg2ll Modul:dng-pron 828 160443 628988 2024-11-06T18:10:56Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local gmatch = m_string_utils.gmatch local gsplit = mw.text.gsplit local lower = m_string_utils.lower local upper = m_string_utils.upper local initialConv = { ["б"] = "p", ["д"] = "t", ["г"] = "k", ["п"] = "pʰ", ["т"] = "tʰ", ["к"] = "kʰ", ["з"] = "t͡s", ["җ...“ yozuvi orqali yangi sahifa yaratildi 628988 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local gmatch = m_string_utils.gmatch local gsplit = mw.text.gsplit local lower = m_string_utils.lower local upper = m_string_utils.upper local initialConv = { ["б"] = "p", ["д"] = "t", ["г"] = "k", ["п"] = "pʰ", ["т"] = "tʰ", ["к"] = "kʰ", ["з"] = "t͡s", ["җ"] = "ʈ͡ʂ", ["ц"] = "t͡sʰ", ["ч"] = "ʈ͡ʂʰ", ["м"] = "m", ["н"] = "n", ["ң"] = "ŋ", ["ф"] = "f", ["с"] = "s", ["ш"] = "ʂ", ["щ"] = "ɕ", ["х"] = "x", ["в"] = "v", ["л"] = "l", ["ж"] = "ʐ", ["й"] = "", ["р"] = "l", [""] = "", } local finalConv = { ["ы"] = "z̩", ["эр"] = "ɛɻ", ["а"] = "a", ["о"] = "ɔ", ["ә"] = "ə", ["э"] = "ɛ", ["ый"] = "ei", ["у"] = "ou", ["ан"] = "æ̃", ["ын"] = "əŋ", ["он"] = "ɑŋ", ["ун"] = "uŋ", ["и"] = "i", ["я"] = "ia", ["е"] = "iə", ["ё"] = "iɔː", ["ю"] = "iou", ["ян"] = "iæ̃", ["ин"] = "iŋ", ["ён"] = "iɑŋ", ["ў"] = "u", ["уа"] = "ua", ["уэ"] = "uɛ", ["уә"] = "uə", ["уэй"] = "uɛi", ["уй"] = "uei", ["уан"] = "uæ̃", ["уон"] = "uɑŋ", ["ү"] = "y", ["үә"] = "yə", ["үан"] = "yæ̃", ["үн"] = "yŋ", } local toneConv = { ["1"] = "²⁴", ["2"] = "⁵¹", ["3"] = "⁴⁴", ["0"] = "⁰", } local function fix(initial, final) return initial, final end local function warn(initial, final, tone) if not initialConv[initial] then error("Invalid initial: " .. initial) end if not finalConv[final] then error("Invalid final: " .. final) end if tone == "4" then error("Tone 4 currently not supported") end end function export.convert(text, scheme) if type(text) == "table" then text, scheme = text.args[1], text.args[2] end local result = {} for word in gsplit(text, '/') do local converted = {} local extra2 = match(word, '^[^бдзҗгптцчкмнңфсшщхвлжйБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйнр]*') for syllable in gmatch(word, '[бдзҗгптцчкмнңфсшщхвлжйБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйнр]+[%d][^бдзҗгптцчкмнңфсшщхвлжйБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйнр]*') do local initial, final, erhua, tone, extra = match(syllable, '^([бдзҗгптцчкмнңфсшщхвлжйрБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙР]?)([ыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйн]+)(р?)([%d])([^бдзҗгптцчкмнңфсшщхвлжйБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйнр]*)$') local caps = false initial = initial or '' if find(initial .. final, '[бдзҗгптцчкмнңфсшщхвлжйБДЗҖГПТЦЧКМНҢФСШЩХВЛЖЙыаәэоуияеёюўүЫАӘЭОУИЯЕЁЮЎҮйнр]') then caps = true initial, final = lower(initial), lower(final) end warn(initial, final, tone) initial, final = fix(initial, final) if final == 'э' and erhua == 'р' then final, erhua = 'эр', '' end if scheme == 'IPA' then initial = initialConv[initial] final = finalConv[final] tone = toneConv[tone] --[[ if erhua == 'r' then if find(final, '^y') then -- 撮口呼 final = 'yɚ' elseif find(final, '^i') then -- 齊齒呼 final = 'iɚ' elseif find(final, '^u') then -- 合口呼 final = 'uɚ' elseif (final == 'o' or final == 'oŋ') and find(initial, '^[pmfv]') then final = 'ɚ' elseif final == 'o' or final == 'oŋ' then final = 'uɚ' else -- 開口呼 final = 'ɚ' end end --]] syllable = initial .. final .. tone syllable = gsub(syllable, 'ʈ͡ʂ(ʰ?[iĩy])', 't͡ɕ%1') syllable = gsub(syllable, 'ʂ(ʰ?[iĩy])', 'ɕ%1') syllable = gsub(syllable, '(ʂʰ?)z̩', '%1ʐ̩') syllable = gsub(syllable, 'ʐz̩', 'ʐ̩') table.insert(converted, syllable) else error('Convert to what representation?') end end if scheme == 'IPA' then local text = '/' .. table.concat(converted, ' ') .. '/' table.insert(result, text) end end if scheme == 'IPA' then return table.concat(result, ', ') end end function export.process(text) local readings = {} for reading in gsplit(text, '/') do local tones = {} for tone in gmatch(reading, '%d+') do tone = gsub(tone, "([123])", {["1"] = "I", ["2"] = "II", ["3"] = "III"}) table.insert(tones, tone) end local cyr = gsub(reading, '%d', '') local lat = require('Module:dng-translit').tr(cyr, nil, 'Cyrl') table.insert(readings, string.format("[[%s#Dungan|%s]] (%s, %s)", cyr, cyr, lat, table.concat(tones, '-'))) end return table.concat(readings, ' / ') end return export fmp469d5kluebmkihcbe3wdmy5y0jwq Modul:dng-translit 828 160444 628989 2024-11-06T18:12:14Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local tt = { ['Б'] = 'B', ['П'] = 'P', ['М'] = 'M', ['Ф'] = 'F', ['В'] = 'V', ['Д'] = 'D', ['Т'] = 'T', ['Н'] = 'N', ['Л'] = 'L', ['З'] = 'Z', ['Ц'] = 'C', ['С'] = 'S', ['Җ'] = 'Ž', ['Ч'] = 'Č', ['Ш'] = 'Š', ['Ж'] = 'Ř', --[[ ↑ ]] --[[ ↑ ]] ['Щ'] = 'X', ['Г'] = 'G', ['К'] = 'K', ['Ң'] = 'Ŋ', ['Х'] = 'H',...“ yozuvi orqali yangi sahifa yaratildi 628989 Scribunto text/plain local export = {} local tt = { ['Б'] = 'B', ['П'] = 'P', ['М'] = 'M', ['Ф'] = 'F', ['В'] = 'V', ['Д'] = 'D', ['Т'] = 'T', ['Н'] = 'N', ['Л'] = 'L', ['З'] = 'Z', ['Ц'] = 'C', ['С'] = 'S', ['Җ'] = 'Ž', ['Ч'] = 'Č', ['Ш'] = 'Š', ['Ж'] = 'Ř', --[[ ↑ ]] --[[ ↑ ]] ['Щ'] = 'X', ['Г'] = 'G', ['К'] = 'K', ['Ң'] = 'Ŋ', ['Х'] = 'H', ['Р'] = 'R', ['Ы'] = 'Ɨ', ['Й'] = 'Y', ['Ў'] = 'W', ['Ү'] = 'Ü', --[[ ↑ ]] ['А'] = 'A', ['Я'] = 'I͡a', ['Ә'] = 'Ə', ['Е'] = 'I͡ə', ['Э'] = 'E', ['О'] = 'O', ['Ё'] = 'I͡o', ['У'] = 'U', ['Ю'] = 'I͡u', ['И'] = 'I', ['б'] = 'b', ['п'] = 'p', ['м'] = 'm', ['ф'] = 'f', ['в'] = 'v', ['д'] = 'd', ['т'] = 't', ['н'] = 'n', ['л'] = 'l', ['з'] = 'z', ['ц'] = 'c', ['с'] = 's', ['җ'] = 'ž', ['ч'] = 'č', ['ш'] = 'š', ['ж'] = 'ř', --[[ ↑ ]] --[[ ↑ ]] ['щ'] = 'x', ['г'] = 'g', ['к'] = 'k', ['ң'] = 'ŋ', ['х'] = 'h', ['р'] = 'r', ['ы'] = 'ɨ', ['й'] = 'y', ['ў'] = 'w', ['ү'] = 'ü', --[[ ↑ ]] ['а'] = 'a', ['я'] = 'i͡a', ['ә'] = 'ə', ['е'] = 'i͡ə', ['э'] = 'e', ['о'] = 'o', ['ё'] = 'i͡o', ['у'] = 'u', ['ю'] = 'i͡u', ['и'] = 'i', }; function export.tr(text, lang, sc) if (sc) and (sc ~= 'Cyrl') then return nil end text = mw.ustring.gsub(text, '.', tt) return text end return export rr3g49a0yl8432eqozcny28pd2tntov Modul:mnp-pron 828 160445 628990 2024-11-06T18:12:48Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local gsplit = mw.text.gsplit local match = m_string_utils.match local lower = m_string_utils.lower local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local initial_ipa = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["c"] = "t͡s", ["ch"] = "t͡sʰ", ["s"] = "s", ["g"] = "...“ yozuvi orqali yangi sahifa yaratildi 628990 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local gsub = m_string_utils.gsub local gsplit = mw.text.gsplit local match = m_string_utils.match local lower = m_string_utils.lower local toNFC = mw.ustring.toNFC local toNFD = mw.ustring.toNFD local initial_ipa = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["c"] = "t͡s", ["ch"] = "t͡sʰ", ["s"] = "s", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "x", [""] = "", } local final_ipa = { ["i"] = "i", ["u"] = "u", ["ṳ"] = "y", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["a̤"] = "ɛ", ["ie"] = "iɛ", ["uoi"] = "uɛ", ["ṳe"] = "yɛ", ["o̤"] = "ɔ", ["io̤"] = "iɔ", ["e"] = "e", ["e̤"] = "œ", ["o"] = "o", ["ai"] = "ai", ["uai"] = "uai", ["au"] = "au", ["iau"] = "iau", ["iu"] = "iu", ["ing"] = "iŋ", ["uing"] = "uiŋ", ["ṳing"] = "yiŋ", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["o̤ng"] = "ɔŋ", ["ong"] = "ɔŋ", ["io̤ng"] = "iɔŋ", ["iong"] = "iɔŋ", ["uo̤ng"] = "uɔŋ", ["eng"] = "eiŋ", --missing /ieiŋ/ ["e̤ng"] = "œyŋ", ["aing"] = "aiŋ", ["uaing"] = "uaiŋ", } local tone_marks = "[́̂̌̿̄̆̀]" local tone_from_mark = { ["́"] = 1, --陰平 (acute) ["̂"] = 3, --陽平 (circumflex) ["̌"] = 2, --上 (caron) ["̿"] = 3, --陰去 (double overline) ["̄"] = 4, --陽去 (macron) ["̆"] = 5, --陰入 (breve) ["̀"] = 6, --陽入 (grave) } local tone_value = { [1] = "⁵⁴", --陰平 [2] = "²¹", --上 [3] = "³³", --陰去 [4] = "⁵⁵", --陽去 [5] = "²⁴", --陰入 [6] = "⁴²", --陽入 } --[=[ Given a syllable, return tone value of the syllable's tone and the syllable without the tone mark ]=] local function get_tone_value(syllable) if match(syllable, "̄̄") then -- check for double macron local corrected = gsub(syllable, "̄̄", "̿") error("Please change " .. syllable .. " to " .. corrected .. ".") end local tone = match(syllable, tone_marks) if tone then return tone_value[tone_from_mark[tone]], gsub(syllable, tone, "") else error("No tone detected.") end end function export.rom(text) return (text :gsub("/", " / ") :gsub(">([^> %-]+)", "<sup>→%1</sup>")) end function export.ipa(text) text = toNFD(lower(text)) local words_ipa = {} for word in gsplit(text, "/") do word = gsub(word, " ", "-") local syllables_ipa = {} for syllable in gsplit(word, "-") do syllable = match(syllable, ">(.*)$") or syllable local initial, final, tone_value tone_value, syllable = get_tone_value(syllable) initial, final = match(syllable, "^([bpmdtnlcsk]?[gh]?)([aeioung̤]+)$") initial, final = toNFC(initial), toNFC(final) initial, final = initial_ipa[initial], final_ipa[final] table.insert(syllables_ipa, initial..final..tone_value) end table.insert(words_ipa, table.concat(syllables_ipa, " ")) end return "/" .. table.concat(words_ipa, "/, /") .. "/" end return export 5qzajsokp4q50evwmkgqe6hh0vvs8pf Modul:cpx-pron 828 160446 628991 2024-11-06T18:13:54Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local m_string_utils = require("Module:string utilities") local sub = m_string_utils.sub local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local toNFD = mw.ustring.toNFD local toNFC = mw.ustring.toNFC local function font_consolas(text) return '<span style=\"font-family: Consolas, monospace;\">' .. text .. '</span>' end local function font_ipa(text) return '<span class=\"IPA\"...“ yozuvi orqali yangi sahifa yaratildi 628991 Scribunto text/plain local export = {} local m_string_utils = require("Module:string utilities") local sub = m_string_utils.sub local find = m_string_utils.find local gsub = m_string_utils.gsub local match = m_string_utils.match local toNFD = mw.ustring.toNFD local toNFC = mw.ustring.toNFC local function font_consolas(text) return '<span style=\"font-family: Consolas, monospace;\">' .. text .. '</span>' end local function font_ipa(text) return '<span class=\"IPA\">/' .. text .. '/</span>' end local dialects = { pt = "[[w:Putian dialect|Putian]]", xy = "[[w:Xianyou dialect|Xianyou]]", } ------------------ BUC ------------------ local buc_initials = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["c"] = "ts", ["ch"] = "tsʰ", ["s"] = "ɬ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", [""] = "" } local buc_finals = { ["i"] = "i", ["u"] = "u", ["ṳ"] = "y", ["a"] = "a", ["ia"] = "ia", ["ua"] = "ua", ["e"] = "ɛ", ["a̤"] = "e", ["e̤"] = "ø", ["o̤"] = "ɒ", ["io̤"] = "yɒ", ["eo"] = "o", ["ai"] = "ai", ["uai"] = "uai", ["oi"] = "oi", ["ui"] = "ui", ["au"] = "au", ["a̤u"] = "eu", ["o"] = "ou", ["iu"] = "iu", ["aⁿ"] = "ã", ["iaⁿ"] = "ĩã", ["uaⁿ"] = "ũã", ["a̤ⁿ"] = "ẽ", ["e̤ⁿ"] = "ø", ["o̤ⁿ"] = "ɒ", ["io̤ⁿ"] = "ỹɒ", ["oiⁿ"] = "õĩ", ["auⁿ"] = "ãũ", ["a̤uⁿ"] = "ẽũ", ["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ", ["eng"] = "ɛŋ", ["e̤ng"] = "œŋ", ["o̤ng"] = "ɒŋ", ["io̤ng"] = "iɒŋ", ["eong"] = "oŋ", ["ing"] = "iŋ", ["ṳng"] = "yŋ", ["ah"] = "aʔ", ["iah"] = "iaʔ", ["uah"] = "uaʔ", ["a̤h"] = "eʔ", ["o̤h"] = "ɒʔ", ["ih"] = "iʔ", ["uh"] = "uʔ", ["ṳh"] = "yʔ", ["io̤h"] = "yɒʔ", ["eoh"] = "oʔ", ["aih"] = "aiʔ", ["oih"] = "oiʔ", ["a̤uh"] = "euʔ", ["eh"] = "ɛʔ", ["e̤h"] = "œʔ", ["ng"] = "ŋ" } -- class A: longer and now lost in most dialects, class B: shorter and mostly preserverd local buc_yangru_type = { ["ah"] = "AB", ["iah"] = "AB", ["uah"] = "AB", ["a̤h"] = "A", ["o̤h"] = "AB", ["ih"] = "AB", ["uh"] = "B", ["ṳh"] = "B", ["io̤h"] = "AB", ["eoh"] = "AB", ["aih"] = "A", ["oih"] = "A", ["a̤uh"] = "A", ["eh"] = "B", ["e̤h"] = "B", } local buc_tones = { ["1"] = "꜀", -- 陰平 ["2"] = "꜁", -- 陽平 ["3"] = "꜂", -- 陰上 ["4"] = "꜄", -- 陰去 ["5"] = "꜅", -- 陽去 ["6"] = "꜆", -- 陰入 ["7A"] = "꜇", -- 陽入甲 ["7B"] = "꜇" -- 陽入乙 } local buc_tone_marks = "́" .. "̂" .. "̍" .. "̄" local function buc_seperate_final_and_tone(text) local tone_num local ends_with_h = match(text, "h[ᴬᴮ]?$") ~= nil local last_char = sub(text, -1) local tone_markers = {["́"] = "2", ["̂"] = "3", ["̍"] = "4", ["̄"] = "5"} for marker, num in pairs(tone_markers) do if find(text, marker) then if marker == "̍" and match(last_char, "[hᴬᴮ]") then tone_num = (last_char == "ᴬ" and "7A") or (last_char == "ᴮ" and "7B") or "7" else tone_num = num end break end end if not tone_num then tone_num = ends_with_h and "6" or "1" end local text_without_tone = gsub(text, '[' .. buc_tone_marks .. ']', '') return text_without_tone, tone_num end local function split_buc_syllable(syllable) mw.log(toNFD(syllable)) local initial, final_tone = match(toNFD(syllable), ("^([bpmdtnlzcsgk]?h?n?g?)([aeiouynghⁿ" .. buc_tone_marks .. "̤" .. "ᴬᴮ]+)$")) final, tone = buc_seperate_final_and_tone(final_tone) if not initial then initial = "" end -- need better solution if initial:len() == 2 and (initial ~= 'ng') then final, initial = initial:sub(2, 2) .. final, initial:sub(1, 1) end if initial:sub(-1) == 'n' and final == 'g' then initial, final = sub(initial, 1, -2), 'ng' end if sub(final, 1, 1) == 'h' then initial, final = initial .. sub(final, 1, 1), sub(final, 2) end if not final or not tone then error("Invalid syllable: " .. syllable) end return initial, toNFC(final), tone end local function validate_buc(word) word = gsub(word:lower(), "-", " ") local function validate_syllable(syllable) local initial, final, tone = split_buc_syllable(syllable) if not buc_initials[initial] then error("Invalid BUC initial: " .. initial) end local final_without_class = gsub(final, "[ᴬᴮ]", "") if not buc_finals[final_without_class] then error("Invalid BUC final: " .. final) end -- Handle 陽入 finals that does not form a minimal pair if tone == "7" then local yangru_type = buc_yangru_type[final] if not yangru_type then error("Please specify the tone class of the syllable " .. syllable .. " by adding ᴬ or ᴮ.") end elseif not buc_tones[tone] then error("Invalid BUC tone: " .. tone) end return true end for syllable in word:gmatch("%S+") do validate_syllable(syllable) end return true end ------------------ Pouseng Ping'ing ------------------ local initials = { pt = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "ɬ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", [""] = "" }, xy = { ["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l", ["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "ɬ", ["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h", [""] = "", ["bh"] = "β", }, } local finals = { pt = { ["a"] = "a", ["ae"] = "ɛ", ["e"] = "e", ["i"] = "i", ["o"] = "o", ["oe"] = "ø", ["or"] = "ɒ", ["u"] = "u", ["y"] = "y", ["ai"] = "ai", ["ao"] = "au", ["ia"] = "ia", ["ieo"] = "ieu", ["iu"] = "iu", ["ou"] = "ɔu", ["ua"] = "ua", ["ue"] = "uei", ["ui"] = "ui", ["yo"] = "yɒ", ["ang"] = "aŋ", ["orng"] = "ɒŋ", ["eng"] = "ɛŋ", ["oeng"] = "œŋ", ["ong"] = "ɔŋ", ["ing"] = "iŋ", ["ieng"] = "iɛŋ", ["ung"] = "uŋ", ["uang"] = "uaŋ", ["yng"] = "yŋ", ["yong"] = "yɒŋ", ["ng"] = "ŋ̍", ["ah"] = "aʔ", ["orh"] = "ɒʔ", ["eh"] = "ɛʔ", ["oeh"] = "œʔ", ["oh"] = "ɔʔ", ["ih"] = "iʔ", ["iah"] = "iaʔ", ["ieh"] = "iɛʔ", ["uh"] = "uʔ", ["uah"] = "uaʔ", ["uoh"] = "uoʔ", ["yh"] = "yʔ", ["yoh"] = "yɒʔ" }, xy = { ["a"] = "a", ["ae"] = "ɛ", ["e"] = "e", ["i"] = "i", ["o"] = "ɵ", ["oe"] = "ø", ["or"] = "ɒ", ["u"] = "u", ["y"] = "y", ["ai"] = "ai", ["ao"] = "au", ["ia"] = "ia", ["ieo"] = "ieu", ["iu"] = "iu", ["ou"] = "ɔu", ["ua"] = "ua", ["ue"] = "uei", ["ui"] = "ui", ["ya"] = "ya", ["ang"] = "aŋ", ["orng"] = "ɒŋ", ["eng"] = "ɛŋ", ["ing"] = "iŋ", ["ieng"] = "iɛŋ", ["yng"] = "yŋ", ["yeng"] = "yøŋ", ["uong"] = "uoŋ", ["ng"] = "ŋ̍", ["ah"] = "aʔ", ["orh"] = "ɒʔ", ["eh"] = "ɛʔ", ["ih"] = "iʔ", ["ieh"] = "iɛʔ", ["uh"] = "uʔ", ["uoh"] = "uoʔ", ["yh"] = "yʔ", ["yeh"] = "yøʔ", ["iah"] = "iaʔ", ["uah"] = "uaʔ", -- iah, uah only for 代詞促調 ["aⁿ"] = "ã", ["iⁿ"] = "ĩ", ["yⁿ"] = "ỹ", ["orⁿ"] = "ɒ̃", ["aiⁿ"] = "ãĩ", ["aoⁿ"] = "ãũ", ["iaⁿ"] = "ĩã", ["iuⁿ"] = "ĩũ", ["uaⁿ"] = "ũã", ["uiⁿ"] = "ũĩ", ["yaⁿ"] = "ỹã" }, } -- 1 ~ 7 correspond to 陰平, 陽平, 陰上, 陰去, 陽去, 陰入, 陽入, S are "special tones" -- S1, S4, S7: the tones sounds a bit like 1, 4, 7 after tone sandhi (according to 莆仙方言大詞典) -- S3: 代詞促調, act like 陰上 in both Putian and Xianyou after tone sandhi -- S5: 古陰入, labelled as 陽去 in dictionaries but has its own rule for tone sandhi local tones = { pt = { ["1"] = "⁵³³", ["2"] = "¹³", ["3"] = "⁴⁵³", ["4"] = "⁴²", ["5"] = "²¹", ["6"] = "¹", ["7"] = "⁴", ["S1"] = "⁵⁵", ["S3"] = "³²", ["S4"] = "⁴²", ["S5"] = "²¹", ["S7"] = "⁴⁵" }, xy = { ["1"] = "⁵³³", ["2"] = "¹³", ["3"] = "³³²", ["4"] = "⁴²", ["5"] = "²¹", ["6"] = "²", ["7"] = "²⁴", ["S1"] = "⁵⁵", ["S3"] = "³²", ["S5"] = "²¹" }, } local sandhi_rules = { pt = { ["1"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="5", ["5"]="2", ["6"]="2", ["7"]="5"}, ["2"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="5"}, ["3"] = {["1"]="5", ["2"]="2", ["3"]="5", ["4"]="5", ["5"]="2", ["6"]="2", ["7"]="5"}, ["4"] = {["1"]="S1", ["2"]="4", ["3"]="S1", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="S1"}, ["5"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="5"}, ["6"] = {["1"]="S7", ["2"]="S7", ["3"]="S7", ["4"]="S7", ["5"]="S4", ["6"]="S4", ["7"]="S7"}, ["7"] = {["1"]="6", ["2"]="6", ["3"]="6", ["4"]="7", ["5"]="S4", ["6"]="S4", ["7"]="6"}, ["S3"] = {["1"]="7", ["2"]="7", ["3"]="7", ["4"]="7", ["5"]="7", ["6"]="7", ["7"]="7"}, ["S5"] = {["1"]="S1", ["2"]="S1", ["3"]="S1", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="S1"} }, xy = { ["1"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="5", ["5"]="2", ["6"]="2", ["7"]="5"}, ["2"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="5"}, ["3"] = {["1"]="5", ["2"]="S1", ["3"]="5", ["4"]="5", ["5"]="2", ["6"]="2", ["7"]="5"}, ["4"] = {["1"]="S1", ["2"]="S1", ["3"]="S1", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="S1"}, ["5"] = {["1"]="5", ["2"]="5", ["3"]="5", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="5"}, ["6"] = {["1"]="7", ["2"]="7", ["3"]="7", ["4"]="7", ["5"]="7", ["6"]="7", ["7"]="7"}, ["7"] = {["1"]="6", ["2"]="6", ["3"]="6", ["4"]="7", ["5"]="4", ["6"]="4", ["7"]="6"}, ["S3"] = {["1"]="7", ["2"]="7", ["3"]="7", ["4"]="7", ["5"]="7", ["6"]="7", ["7"]="7"}, ["S5"] = {["1"]="S1", ["2"]="S1", ["3"]="S1", ["4"]="S1", ["5"]="4", ["6"]="4", ["7"]="S1"} } } local initial_assimilation_rules = { pt = { nasal_final = { ["b"] = "m", ["p"] = "m", ["m"] = "m", ["d"] = "n", ["t"] = "n", ["n"] = "n", ["l"] = "n", ["z"] = "n", ["c"] = "n", ["s"] = "n", ["g"] = "ng", ["k"] = "ng", ["h"] = "ng", ["ng"] = "ng", [""] = "ng" }, glottal_final = {}, -- remain unchanged other_final = { ["b"] = "", ["p"] = "", ["m"] = "m", ["n"] = "n", ["l"] = "l", ["ng"] = "ng", ["d"] = "l", ["t"] = "l", ["z"] = "l", ["c"] = "l", ["s"] = "l", ["g"] = "", ["k"] = "", ["h"] = "", [""] = "" } }, xy = { nasal_final = { ["b"] = "m", ["p"] = "m", ["m"] = "m", ["d"] = "n", ["t"] = "n", ["n"] = "n", ["l"] = "n", ["z"] = "n", ["c"] = "n", ["s"] = "n", ["g"] = "ng", ["k"] = "ng", ["h"] = "ng", ["ng"] = "ng", [""] = "ng" }, nasalized_final = { ["b"] = "m", ["m"] = "m", ["p"] = "m", ["d"] = "n", ["t"] = "n", ["n"] = "n", ["l"] = "n", ["z"] = "n", ["c"] = "n", ["s"] = "n", ["g"] = "", ["k"] = "", ["h"] = "", ["ng"] = "ng", [""] = "" }, glottal_final = {}, -- remain unchanged other_final = { ["b"] = "bh", ["p"] = "bh", ["m"] = "m", ["n"] = "n", ["l"] = "l", ["ng"] = "ng", ["d"] = "l", ["t"] = "l", ["z"] = "l", ["c"] = "l", ["s"] = "l", ["g"] = "", ["k"] = "", ["h"] = "", [""] = "" } } } local function get_final_type(initial, final, dialect) mw.log("gettype: " .. final) if sub(final, -2) == "ng" then return "nasal_final" elseif sub(final, -1) == "h" then return "glottal_final" elseif sub(final, -1) == "ⁿ" or (match(initial, "[mn]g?") and get_final_type("", final) == "other_final" and dialect == "xy") then -- harcoding xy return "nasalized_final" elseif sub(final, -1) == "n" then error('Please replace the syllable-final "n" with "ⁿ"') else return "other_final" end end local function split_syllable(syllable) local no_assimilation = syllable:sub(1, 1) == "*" if no_assimilation then syllable = syllable:sub(2) end local no_sandhi = syllable:sub(-1) == "#" if no_sandhi then syllable = syllable:sub(1, -2) end local original_form, changed_form, tone_part if syllable:find(">") then original_form, changed_form, tone_part = syllable:match("(.-)>(.-)([1-7S]+.*)$") else original_form, tone_part = syllable:match("(.-)([1-7S]+.*)$") changed_form = original_form end local function split_initial_final(form) local initial, final if form:sub(1, 2) == "bh" then initial, final = "bh", form:sub(3) elseif form == "ng" then initial, final = "", form elseif form:sub(1, 2) == "ng" and #form > 2 then initial, final = "ng", form:sub(3) else initial = form:match("^[bpmnltdzcsghk]h?") or "" final = form:sub(#initial + 1) end return initial, final end local orig_initial, orig_final = split_initial_final(original_form) local changed_initial, changed_final = split_initial_final(changed_form) local tone, sandhi_tone if tone_part:find("-") then tone, sandhi_tone = tone_part:match("^([1-7S]+)%-([1-7S]+)$") else tone = tone_part end if tone == '3' and get_final_type(changed_initial, changed_final) == 'glottal_final' then tone = 'S3' end if not orig_initial or not orig_final or not tone then error("Invalid syllable: " .. syllable) end -- temporary local initials_to_be_checked = { ['yeh'] = true, ['uoh'] = true, ['yeng'] = true, ['uong'] = true } if initials_to_be_checked[orig_final] then require("Module:debug/track")("cpx-pron/Xianyou merged finals") end return orig_initial, orig_final, changed_initial, changed_final, tone, sandhi_tone, no_sandhi, no_assimilation end local function create_syllable_info(syllable) local orig_initial, orig_final, changed_initial, changed_final, orig_tone, manual_sandhi_tone, no_sandhi, no_assimilation = split_syllable(syllable) return { original_initial = orig_initial, original_final = orig_final, original_tone = orig_tone, changed_initial = changed_initial, changed_final = changed_final, changed_tone = orig_tone, -- default: original tone no_sandhi = no_sandhi, no_assimilation = no_assimilation, is_first_syllable = false, -- default: not first syllable manual_sandhi_tone = manual_sandhi_tone } end local function apply_initial_assimilation(dialect, syllable_infos) local result = {} -- handle first syllable result[1] = syllable_infos[1] result[1].is_first_syllable = true for i = 2, #syllable_infos do local prev_syllable = result[i-1] local curr_syllable = syllable_infos[i] local final_type = get_final_type(prev_syllable.changed_initial, prev_syllable.changed_final, dialect) -- Special rule: 陰聲韻 + b, p, d, t, z, c, s with 鼻化韻, initial becomes m or n if final_type == "other_final" and curr_syllable.original_initial:match("^[bpdtzcs]") and get_final_type(curr_syllable.original_initial, curr_syllable.original_final, dialect) == "nasalized_final" then final_type = "nasal_final" end if not curr_syllable.no_assimilation and curr_syllable.changed_initial == curr_syllable.original_initial then curr_syllable.changed_initial = initial_assimilation_rules[dialect][final_type][curr_syllable.original_initial] or curr_syllable.original_initial end -- remove duplicate nasalization like "norⁿ1" if curr_syllable.changed_initial:match("^[mn]g?") and curr_syllable.changed_final:match("ⁿ$") then curr_syllable.changed_final = curr_syllable.changed_final:gsub("ⁿ$", "") end -- remove syllable like "ngng1" if curr_syllable.changed_initial == "ng" and curr_syllable.changed_final == "ng" then curr_syllable.changed_initial = "" end table.insert(result, curr_syllable) end return result end local function apply_sandhi(dialect, syllable_infos) for i = 1, #syllable_infos do local curr_syllable = syllable_infos[i] local next_syllable = syllable_infos[i + 1] if curr_syllable.no_sandhi then curr_syllable.changed_tone = curr_syllable.original_tone else if curr_syllable.manual_sandhi_tone then curr_syllable.changed_tone = curr_syllable.manual_sandhi_tone elseif next_syllable then local current_tone = curr_syllable.original_tone local next_tone = next_syllable.original_tone next_tone = gsub(next_tone, "S5", "5") -- S5 is considered 5 in non-sandhi position local new_tone = sandhi_rules[dialect][current_tone][next_tone] curr_syllable.changed_tone = new_tone or current_tone else curr_syllable.changed_tone = curr_syllable.original_tone end end if curr_syllable.changed_tone == '3' and curr_syllable.changed_final:sub(-1) == 'h' then curr_syllable.changed_tone = 'S3' end end end local function get_ipa(typ, dial, inp) local lookup = { initials = initials, finals = finals, tones = tones } local table = lookup[typ] if not table then error("Invalid type") end local result = table[dial] and table[dial][inp] local final_variant = { ["au"] = "ao", ["iang"] = "ieng", ["ieu"] = "ieo", ["iau"] = "ieo", ["iao"] = "ieo", ["uai"] = "ue", ["uei"] = "ue", ["yoeh"] = "yeh", ["yoeng"] = "yeng", ["yor"] = "yo", ["yorh"] = "yoh", ["yorng"] = "yong", } if not result then if typ == "finals" and final_variant[inp] then error("Invalid " .. typ:sub(1, -2) .. ": " .. inp .. ". Please use \"" .. final_variant[inp] .. "\" instead.") else error("Invalid " .. typ:sub(1, -2) .. ": " .. inp .. ".") end end return result end local function syllable_to_ipa(syllable_info, dialect) local ipa_initial = get_ipa("initials", dialect, syllable_info.changed_initial) local ipa_final = get_ipa("finals", dialect, syllable_info.changed_final) local ipa_tone = get_ipa("tones", dialect, syllable_info.original_tone) if syllable_info.changed_tone ~= syllable_info.original_tone then local sandhi_ipa_tone = tones[dialect][syllable_info.changed_tone] if sandhi_ipa_tone then ipa_tone = ipa_tone .. "⁻" .. sandhi_ipa_tone else error("Invalid sandhi tone: " .. syllable_info.changed_tone .. " for dialect: " .. dialect) end end local original_initial_display = "" if not syllable_info.is_first_syllable and (syllable_info.original_initial ~= syllable_info.changed_initial or syllable_info.original_initial ~= syllable_info.changed_initial) then if syllable_info.original_initial == "" then original_initial_display = "<sup>(Ø-)</sup>" else original_initial_display = "<sup>(" .. get_ipa("initials", dialect, syllable_info.original_initial) .. "-)</sup>" end end local duplicate_nasalization = nil if syllable_info.changed_initial:match("[mn]g?") and syllable_info.changed_final:match("(.+)ⁿ") then duplicate_nasalization = true ipa_final = ipa_final:gsub("ⁿ", "") end return original_initial_display .. ipa_initial .. ipa_final .. ipa_tone end local function split_dialect_codes(code) local codes = {} for c in code:gmatch("[^,]+") do if not dialects[c] then error("Unsupported dialect: " .. c) end table.insert(codes, c) end return codes end local function process_pronunciation(dialect_codes, word, index, buc_index) local result = { dialect_codes = dialect_codes, word = word, processed = {}, index = index, buc_index = buc_index } if dialect_codes == "buc" then validate_buc(word) else local dialect_list = split_dialect_codes(dialect_codes) local syllable_infos = {} for syllable in word:gmatch("%S+") do table.insert(syllable_infos, create_syllable_info(syllable)) end syllable_infos[1].is_first_syllable = true for _, dialect in ipairs(dialect_list) do local assimilated_syllables = apply_initial_assimilation(dialect, syllable_infos) apply_sandhi(dialect, assimilated_syllables) local ipa = {} local actual_pronunciation = {} for i, syllable_info in ipairs(assimilated_syllables) do table.insert(actual_pronunciation, syllable_info.changed_initial .. syllable_info.changed_final .. syllable_info.changed_tone) table.insert(ipa, syllable_to_ipa(syllable_info, dialect)) end local original_pronunciation = word local actual_pronunciation_str = table.concat(actual_pronunciation, " ") table.insert(result.processed, { dialect = dialect, original = original_pronunciation, actual = actual_pronunciation_str, ipa = table.concat(ipa, " "), index = index }) end end return result end function export.rom_display(text, mode) if type(text) == "table" then text = text.args[1] end mode = mode or "debug" -- default "debug" if not text or text == "" then error("Invalid input: text must be a non-empty string") end local results = {} local buc_results = {} local index = 1 for pronunciation in text:gmatch("[^/]+") do local dialect_codes, word = pronunciation:match("^(.+):(.+)$") if not dialect_codes or not word then error("Invalid input format: " .. pronunciation) end if dialect_codes == "buc" then local buc_index = word:match("%((%d+)%)$") if buc_index then word = word:gsub("%(%d+%)$", "") buc_index = tonumber(buc_index) else buc_index = index end validate_buc(word) table.insert(buc_results, {word = word, buc_index = buc_index}) else table.insert(results, process_pronunciation(dialect_codes, word, index)) end index = index + 1 end for _, buc_result in ipairs(buc_results) do if results[buc_result.buc_index] then if not results[buc_result.buc_index].buc then results[buc_result.buc_index].buc = {} end table.insert(results[buc_result.buc_index].buc, buc_result) end end -- Format the output according to different modes if mode == "debug" then return format_debug_output(results) elseif mode == "brief" then return format_brief_output(results) elseif mode == "complete" then return format_complete_output(results) else error("Unsupported mode: " .. mode) end end function format_debug_output(results) local output = {} for _, result in ipairs(results) do if result.dialect_codes == "buc" then table.insert(output, result.dialect_codes .. ":" .. result.word .. " /" .. result.ipa .. "/") else for _, processed in ipairs(result.processed) do local debug_str = processed.dialect .. ": " .. processed.original if processed.original ~= processed.actual then debug_str = debug_str .. " → " .. processed.actual end debug_str = debug_str .. " /" .. processed.ipa .. "/" table.insert(output, debug_str) end end end return table.concat(output, ", ") end local function clear_pinging_format(text) text = gsub(text, "%-S?%d", "") -- remove tone sandhi text = gsub(text, ">[a-zⁿ]+", "") -- remove irregular sound change text = gsub(text, "[#*]+", "") -- remove special symbols text = gsub(text, "(%d)", "<sup>%1</sup>") -- superscript tone numbers text = gsub(text, "S", "") -- remove "S" in special tones return text end function format_brief_output(results) local buc_results = {} local pinging_results = {} local pinging_codes = {} local function add_unique(list, item) for _, existing in ipairs(list) do if clear_pinging_format(existing) == clear_pinging_format(item) then return end end table.insert(list, item) end local function add_codes(codes) for code in codes:gmatch("[^,]+") do add_unique(pinging_codes, code) end end for _, result in ipairs(results) do if result.dialect_codes == "buc" then table.insert(buc_results, result.word) else add_unique(pinging_results, result.processed[1].original) add_codes(result.dialect_codes) end end local output = "" if #pinging_results > 0 then output = output .. (#buc_results > 0 and "\n*: " or " ") local dialect_names = {} for _, code in ipairs(pinging_codes) do table.insert(dialect_names, dialects[code] or code) end local dialects_str = "" if #dialect_names == 1 then dialects_str = dialect_names[1] .. ", " end output = output .. "<small>(<i>" .. dialects_str .. "[[Wiktionary:About Chinese/Puxian Min|Pouseng Ping'ing]]</i>): </small>" .. font_consolas(clear_pinging_format(table.concat(pinging_results, " / "))) end return output end function format_complete_output(results) local output = "" local pinging_results = {} local order = {} for _, result in ipairs(results) do if result.dialect_codes ~= "buc" then local dialects = split_dialect_codes(result.dialect_codes) for _, dialect in ipairs(dialects) do for _, processed in ipairs(result.processed) do if processed.dialect == dialect then processed.index = result.index processed.input_order = #pinging_results + 1 processed.buc = result.buc or {} table.insert(pinging_results, processed) table.insert(order, processed.input_order) break end end end end end if #pinging_results > 0 then local grouped_results = {} for _, result in ipairs(pinging_results) do local key = result.original .. result.actual .. result.ipa if not grouped_results[key] then grouped_results[key] = {result} else table.insert(grouped_results[key], result) end end for _, input_order in ipairs(order) do for key, group in pairs(grouped_results) do if group[1].input_order == input_order then local dialect_names = {} for _, r in ipairs(group) do table.insert(dialect_names, dialects[r.dialect] or r.dialect) end local dialects_str = table.concat(dialect_names, ", ") output = output .. "\n** <small>(''" .. dialects_str .. "'')</small>" output = output .. "\n*** <small>''[[Wiktionary:About Chinese/Puxian Min|Pouseng Ping'ing]]'': </small>" .. font_consolas(clear_pinging_format(group[1].original)) if clear_pinging_format(group[1].original) ~= clear_pinging_format(group[1].actual) then output = output .. " [<small>Phonetic</small>: " .. font_consolas(clear_pinging_format(group[1].actual)) .. "]" end if group[1].dialect == "pt" and #group[1].buc > 0 then local buc_words = {} for _, buc in ipairs(group[1].buc) do table.insert(buc_words, buc.word) end output = output .. "\n*** <small>''[[w:Hinghwa Romanized|Báⁿ-uā-ci̍]]'': </small>" .. font_consolas(gsub(table.concat(buc_words, " / "), "[ᴬᴮ]", "")) end output = output .. '\n*** <small>Sinological [[Wiktionary:International Phonetic Alphabet|IPA]] <sup>([[w:Pu–Xian Min|key]])</sup>: </small>'.. font_ipa(group[1].ipa) break end end end end return output end return export t3s8gypj6grddzz1t78hbus4q1bzccy Modul:wuu-pron/data 828 160447 628993 2024-11-06T18:16:17Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = {} --[[ sh - Shanghai 上海市區方言誌 jd - Jiading 嘉定方言研究 sj - Songjiang 松江方言研究 cm - Chongming 崇明方言研究 cs - Chuansha 上海地區方言調查研究 + 川沙方言同音字表 + 川沙縣誌 sz - Suzhou 蘇州方言語音研究 ks - Kunshan 吳氏:崑山方言研究 + 當代吳語研究 yx - Yixing 宜興方言同音字彙 + 宜興縣誌 cz - Changzhou 當代吳語...“ yozuvi orqali yangi sahifa yaratildi 628993 Scribunto text/plain local data = {} --[[ sh - Shanghai 上海市區方言誌 jd - Jiading 嘉定方言研究 sj - Songjiang 松江方言研究 cm - Chongming 崇明方言研究 cs - Chuansha 上海地區方言調查研究 + 川沙方言同音字表 + 川沙縣誌 sz - Suzhou 蘇州方言語音研究 ks - Kunshan 吳氏:崑山方言研究 + 當代吳語研究 yx - Yixing 宜興方言同音字彙 + 宜興縣誌 cz - Changzhou 當代吳語研究 jj - Jingjiang 靖江縣誌 jx - Jiaxing 當代吳語研究 tx - Tongxiang 桐鄉方言誌 hn - Haining (Xiashi) 海寧方言誌 hy - Haiyan 海鹽方言誌 dq - Deqing 德清縣誌 + 德清話聲韻調之研究 hz - Hangzhou 杭州方言音檔 + 杭州方言の聲調 xs - Xiaoshan 蕭山方言同音字彙 + 蕭山方言研究 + 蕭山市志 sx - Shaoxing 紹興方言研究 cx - Cixi 慈溪市誌 + 浙江慈溪方言聲調實驗研究 (RPS understanding needed) nb - Ningbo 當代吳語研究 zs - Zhoushan 舟山方言兩字組的連讀變調 + 舟山方言研究 + 舟山方言 (samdhi understanding needed) ]] data.ipa_final = { ['sh'] = { ["a"] = "a", ["o"] = "o", ["au"] = "ɔ", ["eu"] = "ɤ", ["e"] = "e", ["oe"] = "ø", ["i"] = "i", ["ia"] = "ia", ["io"] = "io", ["iau"] = "iɔ", ["ieu"] = "iɤ", ["ie"] = "ie", ["u"] = "u", ["ua"] = "ua", ["ue"] = "ue", ["uoe"] = "uø", ["iu"] = "y", ["ioe"] = "yø", ["an"] = "ã", ["aon"] = "ɑ̃", ["en"] = "ən", ["on"] = "oŋ", ["aq"] = "aʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["in"] = "in", ["ion"] = "ioŋ", ["iaq"] = "iaʔ", ["ioq"] = "ioʔ", ["iq"] = "iɪʔ", ["uan"] = "uã", ["uaon"] = "uɑ̃", ["uen"] = "uən", ["uaq"] = "uaʔ", ["ueq"] = "uəʔ", ["iun"] = "yn", ["iuq"] = "yɪʔ", ["er"] = "əl", ["y"] = "z̩" }, ['jd'] = { ["a"] = "a", ["o"] = "o", ["au"] = "ɔ", ["ae"] = "e", ["oe"] = "ø", ["i"] = "i", ["ia"] = "ia", ["iae"] = "ie̞", ["io"] = "iu", ["iau"] = "iɔ", ["ie"] = "ɪ", ["u"] = "u", ["ua"] = "ua", ["uae"] = "ue̞", ["ue"] = "uɪ", ["iu"] = "y", ["ioe"] = "yø", ["an"] = "ã", ["aon"] = "ɑ̃", ["en"] = "əŋ", ["on"] = "oŋ", ["aq"] = "aʔ", ["aoq"] = "ɔʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["in"] = "iŋ", ["ion"] = "ioŋ", ["iaq"] = "iaʔ", ["iaoq"] = "iɔʔ", ["ioq"] = "ioʔ", ["iq"] = "iɪʔ", ["uan"] = "uã", ["uaon"] = "uɑ̃", ["uen"] = "uəŋ", ["uaq"] = "uaʔ", ["uaoq"] = "uɔʔ", ["uoq"] = "uoʔ", ["ueq"] = "uəʔ", ["iun"] = "yŋ", ["er"] = "øl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['sj'] = { ["a"] = "ɑ", ["ae"] = "ɛ", ["e"] = "e", ["oe"] = "ø", ["au"] = "ɔ", ["o"] = "o", ["eu"] = "ɯ", ["i"] = "i", ["ia"] = "iɑ", ["iae"] = "iɛ", ["ie"] = "ie", ["iau"] = "iɔ", ["io"] = "io", ["iu"] = "iu", ["ieu"] = "iɯ", ["u"] = "u", ["ua"] = "uɑ", ["uae"] = "uɛ", ["ue"] = "ue", ["uiau"] = "uiɔ", --uiau: necessary? ["iu"] = "y", ["ioe"] = "yø", ["an"] = "æ̃", ["aon"] = "ɒ̃", ["en"] = "əŋ", ["on"] = "oŋ", ["ian"] = "iæ̃", ["iaon"] = "iɒ̃", ["in"] = "iŋ", ["ion"] = "ioŋ", ["uan"] = "uæ̃", ["uaon"] = "uɒ̃", ["uen"] = "uəŋ", ["iun"] = "yœ̃", ["aq"] = "aʔ", ["aeq"] = "æʔ", ["oeq"] = "œʔ", ["aoq"] = "ɒʔ", ["eoq"] = "ʌʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iaeq"] = "iæʔ", ["iaoq"] = "iɒʔ", ["ieoq"] = "iʌʔ", ["iq"] = "iɪʔ", ["ioq"] = "ioʔ", ["uaq"] = "uaʔ", ["uaeq"] = "uæʔ", ["uaoq"] = "uɒʔ", ["ueq"] = "uəʔ", ["iuq"] = "yœʔ", ["er"] = "əl", ["y"] = "z̩" }, ['cm'] = { ["a"] = "ɑ", ["e"] = "e", ["oe"] = "ø", ["ai"] = "ɛ", ["ae"] = "æ", ["eu"] = "ɵ", ["au"] = "ɔ", ["o"] = "o", ["ei"] = "ei", ["i"] = "i", ["ia"] = "iɑ", ["ie"] = "ie", ["iai"] = "iɛ", ["iae"] = "iæ", ["ieu"] = "iɵ", ["iau"] = "iɔ", ["io"] = "io", ["u"] = "u", ["ua"] = "uɑ", ["ue"] = "ue", ["uai"] = "uɛ", ["uae"] = "uæ", ["uo"] = "uo", ["uei"] = "uei", ["iu"] = "y", ["ioe"] = "yø", ["en"] = "ən", ["an"] = "ã", ["aon"] = "ɑ̃", ["on"] = "oŋ", ["in"] = "in", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["uen"] = "uən", ["uan"] = "uã", ["uaon"] = "uɑ̃", ["iun"] = "yn", ["ion"] = "yoŋ", --missing ɔ~, iɔ~ ["aeq"] = "æʔ", ["aq"] = "ɑʔ", ["eq"] = "əʔ", ["oeq"] = "øʔ", ["oq"] = "oʔ", ["iaq"] = "iɑʔ", ["iq"] = "iəʔ", ["uaeq"] = "uæʔ", ["uaq"] = "uɑʔ", ["ueq"] = "uəʔ", ["uoq"] = "uoʔ", ["ioeq"] = "yøʔ", ["ioq"] = "yoʔ", ["er"] = "əl", ["y"] = "z̩", -- only used in mutations: ["ueu"] = "uɵ", ["uon"] = "uoŋ", ["ui"] = "ui" }, ['cs'] = { -- 與學堂一致:io = iau, uo = o; uoeq, ieon, eoq 皆存 ["a"] = "a", ["o"] = "o", ["au"] = "ɔ", ["eu"] = "ɤ", ["e"] = "e", ["ae"] = "ɛ", ["oe"] = "ø", ["i"] = "i", ["iuu"] = "iu", ["ia"] = "ia", ["iau"] = "iɔ", ["ieu"] = "iɤ", ["ioe"] = "yø", ["u"] = "u", ["ua"] = "ua", ["ue"] = "ue", ["uae"] = "uɛ", ["iu"] = "y", ["an"] = "ã", ["aon"] = "ɑ", ["en"] = "ən", ["on"] = "oŋ", ["ian"] = "iã", ["iaon"] = "iɑ", ["in"] = "in", ["ieon"] = "iʌŋ", ["ion"] = "ioŋ", ["uan"] = "uã", ["uaon"] = "uɑ", ["uen"] = "uən", ["iun"] = "yn", ["aq"] = "aʔ", ["aeq"] = "æʔ", ["oeq"] = "œʔ", ["eq"] = "əʔ", ["eoq"] = "ʌʔ", ["oq"] = "oʔ", ["aoq"] = "ɔʔ", ["iaq"] = "iaʔ", ["iaeq"] = "iæʔ", ["ioeq"] = "yœʔ", ["iq"] = "iɪʔ", ["ieoq"] = "iʌʔ", ["ioq"] = "ioʔ", ["iaoq"] = "iɔʔ", ["uaq"] = "uaʔ", ["uaeq"] = "uæʔ", ["uoeq"] = "uœʔ", ["ueq"] = "uəʔ", ["uaoq"] = "uɔʔ", ["er"] = "əl", ["y"] = "z̩", }, ['sz'] = { ["a"] = "ɑ", ["o"] = "o", ["au"] = "æ", ["eu"] = "øy", ["e"] = "e", ["oe"] = "ø", ["ou"] = "əu", ["i"] = "i", ["ia"] = "iɑ", ["io"] = "io", ["iau"] = "iæ", ["ieu"] = "ʏ", ["ioe"] = "iø", ["ie"] = "ɪ", ["u"] = "u", ["ua"] = "uɑ", ["ue"] = "ue", ["uoe"] = "uø", ["iu"] = "y", ["ioe"] = "yø", ["an"] = "ã", ["aon"] = "ɑ̃", ["en"] = "ən", ["on"] = "oŋ", ["aq"] = "ɑʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["aeq"] = "aʔ", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["in"] = "in", ["ion"] = "ioŋ", ["iaq"] = "iɑʔ", ["ioq"] = "ioʔ", ["iq"] = "iɪʔ", ["iaeq"] = "iaʔ", ["uan"] = "uã", ["uaon"] = "uɑ̃", ["uen"] = "uən", ["ueq"] = "uəʔ", ["uaeq"] = "uaʔ", ["iun"] = "yn", ["iuq"] = "yəʔ", ["iuaeq"] = "yaʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['ks'] = { ["a"] = "a", ["au"] = "ɔ", ["ae"] = "ɛ", ["oe"] = "ø", ["o"] = "o", ["e"] = "ei", ["ou"] = "əu", ["i"] = "i", ["ia"] = "ia", ["iau"] = "iɔ", ["ie"] = "ɪ", ["ioe"] = "iø", ["u"] = "u", ["ua"] = "ua", ["uae"] = "uɛ", ["uoe"] = "uø", ["ue"] = "uei", ["iu"] = "y", ["en"] = "ən", ["an"] = "ã", ["on"] = "oŋ", ["in"] = "in", ["ian"] = "iã", ["ion"] = "ioŋ", ["uen"] = "uən", ["uan"] = "uã", ["iun"] = "yn", ["eq"] = "əʔ", ["aq"] = "aʔ", ["oq"] = "oʔ", ["iq"] = "iəʔ", ["iaq"] = "iaʔ", ["ioq"] = "ioʔ", ["ueq"] = "uəʔ", ["uaq"] = "uaʔ", ["iuq"] = "yəʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['yx'] = { ["a"] = "a", ["o"] = "o", ["ou"] = "ʊ", ["ai"] = "ɛ", ["e"] = "ə", ["e"] = "ə", ["au"] = "au", ["eu"] = "əu", ["i"] = "i", ["ia"] = "ia", ["io"] = "io", ["ie"] = "iɪ", ["iau"] = "iau", ["ieu"] = "iəu", ["u"] = "u", ["ua"] = "ua", ["uai"] = "uɛ", ["ue"] = "uə", ["iu"] = "y", ["an"] = "aŋ", ["en"] = "ən", ["on"] = "oŋ", ["ian"] = "iaŋ", ["in"] = "in", ["ion"] = "ioŋ", ["uan"] = "uaŋ", ["uen"] = "uən", ["iun"] = "yən", ["aq"] = "aʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["iaq"] = "iaʔ", ["ioq"] = "ioʔ", ["iq"] = "iəʔ", ["uaq"] = "uaʔ", ["ueq"] = "uəʔ", ["iuq"] = "yəʔ", ["er"] = "əl", ["y"] = "z̩", }, ['cz'] = { ["a"] = "a", ["ae"] = "ɛ", ["oe"] = "ɵ", ["o"] = "o", ["ie"] = "ɪ", ["ai"] = "ai", ["ei"] = "ei", ["au"] = "aɯ", ["ou"] = "ɤɯ", ["i"] = "i", ["ia"] = "ia", ["ioe"] = "iɵ", ["io"] = "io", ["iau"] = "iaɯ", ["iou"] = "iɤɯ", ["u"] = "u", ["ua"] = "ua", ["uae"] = "uɛ", ["uoe"] = "uɵ", ["uai"] = "uai", ["iu"] = "y", ["an"] = "aŋ", ["en"] = "əŋ", ["on"] = "oŋ", ["ian"] = "iaŋ", ["in"] = "iŋ", ["ion"] = "ioŋ", ["uan"] = "uaŋ", ["uen"] = "uəŋ", ["iun"] = "yiŋ", ["aq"] = "aʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iq"] = "iɪʔ", ["ioq"] = "ioʔ", ["ueq"] = "uəʔ", ["iuq"] = "yeʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['jj'] = { ["a"] = "a", ["au"] = "ɔ", ["ai"] = "ɛ", ["ou"] = "ə", ["o"] = "o", ["e"] = "e", ["eu"] = "ʏ", ["i"] = "i", ["ia"] = "ia", ["iau"] = "iɔ", ["iai"] = "iɛ", ["ieu"] = "iʏ", ["u"] = "u", ["ua"] = "ua", ["uai"] = "uɛ", ["ue"] = "ue", ["iu"] = "y", ["iua"] = "ya", ["iuai"] = "yɛ", ["iou"] = "yə", ["iue"] = "ye", ["aen"] = "ã", ["oen"] = "ũ", ["en"] = "əŋ", ["on"] = "oŋ", ["an"] = "aŋ", ["ienn"] = "iɪ̃", ["iaen"] = "iã", ["ioen"] = "iũ", ["in"] = "iŋ", ["ien"] = "iəŋ", ["ion"] = "ioŋ", ["ian"] = "iaŋ", ["uaen"] = "uã", ["uen"] = "uəŋ", ["uan"] = "uaŋ", ["iun"] = "yəŋ", ["iuan"] = "yaŋ", ["aq"] = "aʔ", ["oq"] = "ɔʔ", ["eq"] = "əʔ", ["oeq"] = "oʔ", ["iq"] = "ieʔ", ["iaq"] = "iaʔ", ["ioq"] = "iɔʔ", ["ieq"] = "iəʔ", ["uaq"] = "uaʔ", ["ueq"] = "uəʔ", ["iuaq"] = "yaʔ", ["ioeq"] = "yoʔ", ["er"] = "er", ["y"] = "z̩", }, ['jx'] = { ["a"] = "a", ["ae"] = "ɛ", ["e"] = "e", ["au"] = "ɔ", ["oe"] = "ɤə", ["o"] = "o", ["i"] = "i", ["ia"] = "ia", ["iae"] = "iɛ", ["ie"] = "ie", ["iau"] = "iɔ", ["ieu"] = "iəu", ["u"] = "u", ["ua"] = "ua", ["uae"] = "uɛ", ["ue"] = "ue", ["uoe"] = "uɤə", ["iu"] = "y", ["ioe"] = "yɤə", ["en"] = "ən", ["an"] = "ã", ["aon"] = "ɑ̃", ["on"] = "oŋ", ["in"] = "in", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["ion"] = "ioŋ", ["uen"] = "un", ["yan"] = "uã", ["uaon"] = "uɑ̃", ["iun"] = "yn", ["eq"] = "əʔ", ["aq"] = "aʔ", ["oq"] = "oʔ", ["iq"] = "iɪʔ", ["iaq"] = "iaʔ", ["ioq"] = "ioʔ", ["ueq"] = "uəʔ", ["uaq"] = "uaʔ", ["iuq"] = "yəʔ", ["er"] = "l̩", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['tx'] = { ["a"] = "a", ["ae"] = "æ", ["e"] = "ɛ", ["au"] = "ɔ", ["o"] = "o", ["eu"] = "əɯ", ["i"] = "i", ["ia"] = "ia", ["iae"] = "iæ", ["ie"] = "iɛ", ["iau"] = "iɔ", ["ieu"] = "iəɯ", ["u"] = "u", ["ua"] = "ua", ["uae"] = "uæ", ["ui"] = "ui", ["ue"] = "uɛ", ["an"] = "ã", ["aon"] = "ɔ̃", ["en"] = "ən", ["on"] = "õ", ["ian"] = "iã", ["iaon"] = "iɔ̃", ["in"] = "in", ["ion"] = "ion", ["uan"] = "uã", ["uaon"] = "uɔ̃", ["uen"] = "un", ["aq"] = "aʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["iaq"] = "iaʔ", ["ioq"] = "ioʔ", ["iq"] = "iəʔ", ["uaq"] = "uaʔ", ["ueq"] = "uəʔ", ["er"] = "əl", ["y"] = "z̩" }, ['hn'] = { ["a"] = "a", ["o"] = "o", ["e"] = "e", ["oe"] = "ɤ", ["ae"] = "ɛ", ["au"] = "ɔ", ["eu"] = "ɤɯ", ["i"] = "i", ["ia"] = "ia", ["ie"] = "ie", ["iae"] = "iɛ", ["iau"] = "iɔ", ["ieu"] = "iɤɯ", ["u"] = "u", ["ua"] = "ua", ["ue"] = "ue", ["uoe"] = "uɤ", ["uae"] = "uɛ", ["en"] = "ən", ["an"] = "ã", ["aon"] = "ɑ̃", ["on"] = "õ", ["in"] = "in", ["ian"] = "iã", ["iaon"] = "iɑ̃", ["ion"] = "ion", ["uen"] = "uən", ["uan"] = "uã", ["uaon"] = "uɑ̃", ["aq"] = "aʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iq"] = "iəʔ", ["ioq"] = "ioʔ", ["uaq"] = "uaʔ", ["ueq"] = "uəʔ", ["er"] = "əl", ["y"] = "z̩" }, ['hy'] = { ["a"] = "a", ["ae"] = "ɛ", ["e"] = "e", ["oe"] = "ə", ["au"] = "ɔ", ["i"] = "i", ["ia"] = "ia", ["ie"] = "iɛ", ["iau"] = "iɔ", ["ieu"] = "iɤ", ["u"] = "u", ["ua"] = "ua", ["uae"] = "uɛ", ["ue"] = "ue", ["uoe"] = "uə", ["iu"] = "y", ["ioe"] = "yə", ["an"] = "ã", ["en"] = "ən", ["aon"] = "ɔ̃", ["on"] = "õ", ["ian"] = "iã", ["in"] = "iən", ["iaon"] = "iɔ̃", ["ion"] = "iõ", ["uan"] = "ã", ["uen"] = "uən", ["uaon"] = "ɔ̃", ["iun"] = "yən", ["aq"] = "aʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iq"] = "iəʔ", ["ioq"] = "ioʔ", ["uaq"] = "uaʔ", ["er"] = "l̩", ["y"] = "z̩" }, ['dq'] = { ["a"] = "a", ["au"] = "ɔ", ["uo"] = "uɔ", ["e"] = "ɛ", ["oe"] = "ɤ", ["i"] = "i", ["ieu"] = "iʏ", ["ia"] = "ia", ["iau"] = "iɔ", ["ie"] = "ie", ["u"] = "u", ["ua"] = "ua", ["uo"] = "uɔ", ["ue"] = "uɛ", ["uoe"] = "uɤ", ["an"] = "ã", ["en"] = "ən", ["on"] = "oŋ", ["ian"] = "iã", ["in"] = "in", ["ion"] = "ioŋ", ["uan"] = "uã", ["uen"] = "uən", ["aq"] = "aʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iq"] = "iəʔ", ["ioq"] = "ioʔ", ["uaq"] = "uaʔ", ["uoq"] = "uoʔ", ["er"] = "əl", ["y"] = "z̩" }, ['hz'] = { ["a"] = "ɑ", ["e"] = "ɛ", ["au"] = "ɔ", ["o"] = "o", ["ei"] = "ei", ["i"] = "i", ["ia"] = "iɑ", ["ie"] = "iɛ", ["iau"] = "iɔ", ["ieu"] = "iø", ["u"] = "u", ["ua"] = "ua", ["ue"] = "uɛ", ["uo"] = "uo", ["uei"] = "ui", ["iu"] = "y", ["aen"] = "ẽ̞", ["en"] = "en", ["an"] = "ɑŋ", ["on"] = "oŋ", ["aq"] = "ɑʔ", ["eq"] = "əʔ", ["oq"] = "oʔ", ["ien"] = "iẽ̞", ["in"] = "in", ["ian"] = "iæ̃", ["ion"] = "ioŋ", ["iaq"] = "iɑʔ", ["iq"] = "iəʔ", ["ioq"] = "ioʔ", ["uen"] = "un", ["uan"] = "uæ̃", ["uon"] = "uõ", ["uaq"] = "uɑʔ", ["uoq"] = "uoʔ", ["iuon"] = "yõ", ["iun"] = "yn", ["iuq"] = "yəʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ", -- old period, no official wugniu: ["eu"] = "ey", -- zw stuff ["uwa"] = "zʷa", ["uwe"] = "zʷɛ", ["uwei"] = "zʷei", ["uwan"] = "zʷæ̃", ["uwaq"] = "zʷɑʔ", ["uwon"] = "zʷõ", ["uwen"] = "zʷen", ["uweq"] = "zʷəʔ", }, ['xs'] = { --與學堂城厢點大體一致,欠大西之 eʔ 及 ieʔ,添 yo,但 ae 及 oe 具鼻音化 ["a"] = "a", ["e"] = "e", ["o"] = "o", ["au"] = "ɒ", ["i"] = "i", ["ia"] = "ia", ["io"] = "io", ["iau"] = "iɒ", ["u"] = "u", ["ua"] = "ua", ["ue"] = "ue", ["uo"] = "uo", ["iu"] = "y", ["iuo"] = "yo", ["ae"] = "ɛ̃", ["oe"] = "ə̃", ["ie"] = "iɛ̃", ["ioe"] = "yə̃", ["uae"] = "uɛ̃", ["uoe"] = "uə̃", ["an"] = "ã", ["aon"] = "ɒ̃", ["en"] = "əŋ", ["on"] = "oŋ", ["ian"] = "ã", ["in"] = "iŋ", ["uan"] = "uã", ["uaon"] = "uɒ̃", ["uen"] = "uəŋ", ["uon"] = "uoŋ", ["iuaon"] = "yɒ̃", ["iun"] = "yŋ", ["ion"] = "yoŋ", ["aq"] = "aʔ", ["oq"] = "oʔ", ["eq"] = "əʔ", ["iaq"] = "iaʔ", ["ioq"] = "yoʔ", ["iq"] = "iəʔ", ["uaq"] = "uaʔ", ["uoq"] = "uoʔ", ["er"] = "ɚ", ["y"] = "z̩" }, ['sx'] = { ["a"] = "a", ["e"] = "e", ["eu"] = "ɤ", ["au"] = "ɒ", ["o"] = "o", ["i"] = "i", ["ia"] = "ia", ["ie"] = "ie", ["ieu"] = "iɤ", ["iau"] = "iɒ", ["io"] = "io", ["u"] = "u", ["ua"] = "ua", ["ue"] = "ue", ["uo"] = "uo", ["iu"] = "y", ["aen"] = "æ̃", ["een"] = "ẽ", ["oen"] = "ø̃", ["an"] = "aŋ", ["en"] = "əŋ", ["aon"] = "ɒŋ", ["on"] = "oŋ", ["iaen"] = "iæ̃", ["ien"] = "iẽ", ["ioen"] = "iø̃", ["ian"] = "iaŋ", ["in"] = "iŋ", ["iaon"] = "iɒŋ", ["ion"] = "ioŋ", ["uaen"] = "uæ̃", ["uen"] = "uẽ", ["uoen"] = "uø̃", ["uan"] = "uaŋ", ["uaon"] = "uɒŋ", ["uon"] = "uoŋ", ["aq"] = "aʔ", ["aeq"] = "æʔ", ["eq"] = "eʔ", ["eoq"] = "əʔ", ["oeq"] = "øʔ", ["oq"] = "oʔ", ["iaq"] = "iaʔ", ["iq"] = "ieʔ", ["ioeq"] = "iøʔ", ["ioq"] = "ioʔ", ["uaq"] = "uaʔ", ["uaeq"] = "uæʔ", ["ueq"] = "ueʔ", ["uoeq"] = "uøʔ", ["uoq"] = "uoʔ", ["er"] = "əl", ["y"] = "z̩" }, ['cx'] = { --check btwn sources ["a"] = "a", ["o"] = "o", ["au"] = "ɔ", ["e"] = "e", ["eu"] = "ɤ", ["i"] = "i", ["ia"] = "ia", ["io"] = "io", ["iau"] = "iɔ", ["ieu"] = "iɤ", ["u"] = "u", ["ua"] = "ua", ["uo"] = "uo", ["ue"] = "ue", ["iu"] = "y", ["an"] = "ã", ["aen"] = "æ̃", ["een"] = "ẽ", ["oen"] = "œ̃", ["aon"] = "ɔ̃", ["en"] = "əŋ", ["on"] = "oŋ", ["ian"] = "iã", ["ien"] = "iẽ", ["ioen"] = "yœ̃", ["iaon"] = "iɔ̃", ["in"] = "iŋ", ["iun"] = "yəŋ", ["ion"] = "ioŋ", ["uan"] = "uã", ["uaen"] = "uæ̃", ["uoen"] = "uœ̃", ["uaon"] = "uɔ̃", ["uen"] = "uəŋ", ["aq"] = "aʔ", ["oq"] = "oʔ", ["eq"] = "eʔ", ["iaq"] = "iaʔ", ["ioq"] = "yoʔ", ["iq"] = "ieʔ", ["iuq"] = "yeʔ", ["uaq"] = "uaʔ", ["ueq"] = "ueʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['nb'] = { ["a"] = "a", ["o"] = "o", ["au"] = "ɔ", ["e"] = "e", ["ae"] = "ɛ", ["oe"] = "ø", ["ei"] = "ɐɪ", ["eu"] = "œʏ", ["ou"] = "əu", ["i"] = "i", ["ia"] = "ia", ["iau"] = "iɔ", ["ie"] = "ie", ["ieu"] = "iʏ", ["u"] = "u", ["ua"] = "ua", ["uo"] = "uo", ["uae"] = "uɛ", ["uei"] = "uɐɪ", ["iu"] = "y", ["io"] = "yo", ["an"] = "ã", ["aon"] = "ɔ̃", ["en"] = "əŋ", ["on"] = "oŋ", ["aq"] = "ɐʔ", ["oq"] = "oʔ", ["ian"] = "iã", ["in"] = "iŋ", ["iaq"] = "iɐʔ", ["iq"] = "iɪʔ", ["un"] = "ũ", ["uan"] = "uã", ["uaon"] = "uɔ̃", ["uen"] = "uəŋ", ["uaq"] = "uɐʔ", ["iun"] = "yəŋ", ["ion"] = "yoŋ", ["iuq"] = "yəʔ", ["ioq"] = "yoʔ", ["yun"] = "z̩ʷøŋ", ["yuq"] = "z̩ʷœʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, ['zs'] = { --與學堂一致, ai = a~i, uɛ~ = uɛ ["a"] = "a", ["au"] = "ɔ", ["o"] = "o", ["e"] = "e", ["ei"] = "ai", ["ou"] = "au", ["ae"] = "ɛ", ["i"] = "i", ["ia"] = "ia", ["iau"] = "iɔ", ["ieu"] = "iu", ["iae"] = "iɛ", ["u"] = "u", ["ua"] = "ua", ["uo"] = "uo", ["ue"] = "ɔ", ["uei"] = "uai", ["uae"] = "uɛ", ["iu"] = "y", ["oen"] = "ø", ["an"] = "ã", ["aon"] = "ɔ", ["en"] = "ɐŋ", ["on"] = "oŋ", ["ien"] = "ĩ", ["ioen"] = "ỹ", ["iã"] = "iã", ["in"] = "iŋ", ["ion"] = "yoŋ", ["un"] = "ũ", ["uan"] = "uã", ["uaon"] = "uɔ", ["uen"] = "uɐŋ", ["aq"] = "ɐʔ", ["oq"] = "oʔ", ["iaq"] = "iɐʔ", ["iq"] = "iəʔ", ["uaq"] = "uɐʔ", ["iuq"] = "yɐʔ", ["er"] = "əl", ["y"] = "z̩", ["yu"] = "z̩ʷ" }, } data.tone_contours = { --if a lect is missing tone sandhi then uhh i'll add them later ['sh'] = { ["10"] = "", ["1-"] = "33", ["11"] = "53", ["21"] = "55 21", ["31"] = "55 33 21", ["41"] = "55 33 33 21", ["51"] = "55 33 33 33 21", ["15"] = "34", ["25"] = "33 44", ["35"] = "33 55 21", ["45"] = "33 55 33 21", ["55"] = "33 55 33 33 21", ["16"] = "23", ["26"] = "22 44", ["36"] = "22 55 21", ["46"] = "22 55 33 21", ["56"] = "22 55 33 33 21", ["17"] = "55", ["27"] = "33 44", ["37"] = "33 55 21", ["47"] = "33 55 33 21", ["57"] = "33 55 33 33 21", ["18"] = "12", ["28"] = "11 23", ["38"] = "11 22 23", ["48"] = "11 22 22 23", ["58"] = "22 55 33 33 21", --RPS ["1s"] = "44", ["5s"] = "44", ["6s"] = "33", ["7s"] = "44", ["8s"] = "22", ["multiple"] = "33" }, ['jd'] = { ["10"] = "", ["11"] = "53", ["12"] = "31", ["13"] = "34", ["14"] = "13", ["15"] = "34", ["16"] = "13", ["17"] = "55", ["18"] = "12", ["211"] = "55 21", ["212"] = "55 21", ["213"] = "45 21", ["214"] = "45 21", ["215"] = "33 44", ["216"] = "33 44", ["217"] = "55 21", ["218"] = "55 21", ["221"] = "22 53", ["222"] = "22 53", ["223"] = "24 21", ["224"] = "24 21", ["225"] = "23 44", ["226"] = "23 44", ["227"] = "24 21", ["228"] = "24 21", ["231"] = "35 21", ["232"] = "35 21", ["233"] = "35 21", ["234"] = "35 21", ["235"] = "33 53", ["236"] = "33 53", ["237"] = "35 21", ["238"] = "35 21", ["241"] = "22 53", ["242"] = "22 53", ["243"] = "24 21", ["244"] = "24 21", ["245"] = "22 24", ["246"] = "22 24", ["247"] = "24 21", ["248"] = "24 21", ["251"] = "35 21", ["252"] = "35 21", ["253"] = "35 21", ["254"] = "35 21", ["255"] = "44 44", ["256"] = "44 44", ["257"] = "35 21", ["258"] = "35 21", ["261"] = "22 53", ["262"] = "22 53", ["263"] = "24 21", ["264"] = "24 21", ["265"] = "24 44", ["266"] = "24 44", ["267"] = "24 21", ["268"] = "24 21", ["271"] = "44 53", ["272"] = "44 53", ["273"] = "44 21", ["274"] = "44 21", ["275"] = "44 44", ["276"] = "44 44", ["277"] = "44 21", ["278"] = "44 21", ["281"] = "11 24", ["282"] = "11 24", ["283"] = "11 24", ["284"] = "11 24", ["285"] = "11 24", ["286"] = "11 24", ["287"] = "22 44", ["288"] = "22 44", ["3111"] = "55 33 21", ["3112"] = "55 33 21", ["3113"] = "55 33 21", ["3114"] = "55 33 21", ["3115"] = "55 33 21", ["3116"] = "55 33 21", ["3117"] = "55 33 21", ["3118"] = "55 33 21", ["3121"] = "55 33 21", ["3122"] = "55 33 21", ["3123"] = "55 33 21", ["3124"] = "55 33 21", ["3125"] = "55 33 21", ["3126"] = "55 33 21", ["3127"] = "55 33 21", ["3128"] = "55 33 21", ["3131"] = "35 33 21", ["3132"] = "35 33 21", ["3133"] = "35 33 21", ["3134"] = "35 33 21", ["3135"] = "35 33 21", ["3136"] = "35 33 21", ["3137"] = "35 33 21", ["3138"] = "35 33 21", ["3141"] = "35 33 21", ["3142"] = "35 33 21", ["3143"] = "35 33 21", ["3144"] = "35 33 21", ["3145"] = "35 33 21", ["3146"] = "35 33 21", ["3147"] = "35 33 21", ["3148"] = "35 33 21", ["3151"] = "55 33 21", ["3152"] = "55 33 21", ["3153"] = "55 33 21", ["3154"] = "55 33 21", ["3155"] = "55 33 21", ["3156"] = "55 33 21", ["3157"] = "55 33 21", ["3158"] = "55 33 21", ["3161"] = "55 33 21", ["3162"] = "55 33 21", ["3163"] = "55 33 21", ["3164"] = "55 33 21", ["3165"] = "55 33 21", ["3166"] = "55 33 21", ["3167"] = "55 33 21", ["3168"] = "55 33 21", ["3171"] = "55 33 21", ["3172"] = "55 33 21", ["3173"] = "55 33 21", ["3174"] = "55 33 21", ["3175"] = "55 33 21", ["3176"] = "55 33 21", ["3177"] = "55 33 21", ["3178"] = "55 33 21", ["3181"] = "55 33 21", ["3182"] = "55 33 21", ["3183"] = "55 33 21", ["3184"] = "55 33 21", ["3185"] = "55 33 21", ["3186"] = "55 33 21", ["3187"] = "55 33 21", ["3188"] = "55 33 21", ["3211"] = "22 55 21", ["3212"] = "22 55 21", ["3213"] = "22 55 21", ["3214"] = "22 55 21", ["3215"] = "22 55 44", ["3216"] = "22 55 44", ["3217"] = "22 55 21", ["3218"] = "22 55 21", ["3221"] = "22 55 21", ["3222"] = "22 55 21", ["3223"] = "22 55 21", ["3224"] = "22 55 21", ["3225"] = "22 55 44", ["3226"] = "22 55 44", ["3227"] = "22 55 21", ["3228"] = "22 55 21", ["3231"] = "24 33 21", ["3232"] = "24 33 21", ["3233"] = "24 33 21", ["3234"] = "24 33 21", ["3235"] = "24 33 21", ["3236"] = "24 33 21", ["3237"] = "24 33 21", ["3238"] = "24 33 21", ["3241"] = "24 33 21", ["3242"] = "24 33 21", ["3243"] = "24 33 21", ["3244"] = "24 33 21", ["3245"] = "24 33 21", ["3246"] = "24 33 21", ["3247"] = "24 33 21", ["3248"] = "24 33 21", ["3251"] = "22 55 21", ["3252"] = "22 55 21", ["3253"] = "22 55 21", ["3254"] = "22 55 21", ["3255"] = "22 55 44", ["3256"] = "22 55 44", ["3257"] = "22 55 21", ["3258"] = "22 55 21", ["3261"] = "22 55 21", ["3262"] = "22 55 21", ["3263"] = "22 55 21", ["3264"] = "22 55 21", ["3265"] = "22 55 44", ["3266"] = "22 55 44", ["3267"] = "22 55 21", ["3268"] = "22 55 21", ["3271"] = "22 55 21", ["3272"] = "22 55 21", ["3273"] = "22 55 21", ["3274"] = "22 55 21", ["3275"] = "22 55 44", ["3276"] = "22 55 44", ["3277"] = "22 55 21", ["3278"] = "22 55 21", ["3281"] = "22 55 21", ["3282"] = "22 55 21", ["3283"] = "22 55 21", ["3284"] = "22 55 21", ["3285"] = "22 55 44", ["3286"] = "22 55 44", ["3287"] = "22 55 21", ["3288"] = "22 55 21", ["3311"] = "33 55 21", ["3312"] = "33 55 21", ["3313"] = "33 55 21", ["3314"] = "33 55 21", ["3315"] = "35 33 21", ["3316"] = "35 33 21", ["3317"] = "33 55 21", ["3318"] = "33 55 21", ["3321"] = "33 55 21", ["3322"] = "33 55 21", ["3323"] = "33 55 21", ["3324"] = "33 55 21", ["3325"] = "35 33 21", ["3326"] = "35 33 21", ["3327"] = "33 55 21", ["3328"] = "33 55 21", ["3331"] = "33 55 21", ["3332"] = "33 55 21", ["3333"] = "33 55 21", ["3334"] = "33 55 21", ["3335"] = "35 33 21", ["3336"] = "35 33 21", ["3337"] = "33 55 21", ["3338"] = "33 55 21", ["3341"] = "33 55 21", ["3342"] = "33 55 21", ["3343"] = "33 55 21", ["3344"] = "33 55 21", ["3345"] = "35 33 21", ["3346"] = "35 33 21", ["3347"] = "33 55 21", ["3348"] = "33 55 21", ["3351"] = "33 55 21", ["3352"] = "33 55 21", ["3353"] = "33 55 21", ["3354"] = "33 55 21", ["3355"] = "33 55 21", ["3356"] = "33 55 21", ["3357"] = "33 55 21", ["3358"] = "33 55 21", ["3361"] = "33 55 21", ["3362"] = "33 55 21", ["3363"] = "33 55 21", ["3364"] = "33 55 21", ["3365"] = "33 55 21", ["3366"] = "33 55 21", ["3367"] = "33 55 21", ["3368"] = "33 55 21", ["3371"] = "33 55 21", ["3372"] = "33 55 21", ["3373"] = "33 55 21", ["3374"] = "33 55 21", ["3375"] = "35 33 21", ["3376"] = "35 33 21", ["3377"] = "33 55 21", ["3378"] = "33 55 21", ["3381"] = "33 55 21", ["3382"] = "33 55 21", ["3383"] = "33 55 21", ["3384"] = "33 55 21", ["3385"] = "35 33 21", ["3386"] = "35 33 21", ["3387"] = "33 55 21", ["3388"] = "33 55 21", ["3411"] = "22 55 21", ["3412"] = "22 55 21", ["3413"] = "22 55 21", ["3414"] = "22 55 21", ["3415"] = "22 55 44", ["3416"] = "22 55 44", ["3417"] = "22 55 21", ["3418"] = "22 55 21", ["3421"] = "22 55 21", ["3422"] = "22 55 21", ["3423"] = "22 55 21", ["3424"] = "22 55 21", ["3425"] = "22 55 44", ["3426"] = "22 55 44", ["3427"] = "22 55 21", ["3428"] = "22 55 21", ["3431"] = "22 55 21", ["3432"] = "22 55 21", ["3433"] = "22 55 21", ["3434"] = "22 55 21", ["3435"] = "35 33 21", ["3436"] = "35 33 21", ["3437"] = "35 33 21", ["3438"] = "35 33 21", ["3441"] = "22 55 21", ["3442"] = "22 55 21", ["3443"] = "22 55 21", ["3444"] = "22 55 21", ["3445"] = "35 33 21", ["3446"] = "35 33 21", ["3447"] = "35 33 21", ["3448"] = "35 33 21", ["3451"] = "22 55 21", ["3452"] = "22 55 21", ["3453"] = "22 55 21", ["3454"] = "22 55 21", ["3455"] = "22 55 44", ["3456"] = "22 55 44", ["3457"] = "22 55 21", ["3458"] = "22 55 21", ["3461"] = "22 55 21", ["3462"] = "22 55 21", ["3463"] = "22 55 21", ["3464"] = "22 55 21", ["3465"] = "22 55 44", ["3466"] = "22 55 44", ["3467"] = "22 55 21", ["3468"] = "22 55 21", ["3471"] = "22 55 21", ["3472"] = "22 55 21", ["3473"] = "22 55 21", ["3474"] = "22 55 21", ["3475"] = "22 55 44", ["3476"] = "22 55 44", ["3477"] = "22 55 21", ["3478"] = "22 55 21", ["3481"] = "22 55 21", ["3482"] = "22 55 21", ["3483"] = "22 55 21", ["3484"] = "22 55 21", ["3485"] = "22 55 44", ["3486"] = "22 55 44", ["3487"] = "22 55 21", ["3488"] = "22 55 21", ["3511"] = "33 55 21", ["3512"] = "33 55 21", ["3513"] = "33 55 21", ["3514"] = "33 55 21", ["3515"] = "24 33 21", ["3516"] = "24 33 21", ["3517"] = "33 55 21", ["3518"] = "33 55 21", ["3521"] = "33 55 21", ["3522"] = "33 55 21", ["3523"] = "33 55 21", ["3524"] = "33 55 21", ["3525"] = "24 33 21", ["3526"] = "24 33 21", ["3527"] = "33 55 21", ["3528"] = "33 55 21", ["3531"] = "55 33 21", ["3532"] = "55 33 21", ["3533"] = "35 33 21", ["3534"] = "35 33 21", ["3535"] = "35 33 21", ["3536"] = "35 33 21", ["3537"] = "35 33 21", ["3538"] = "35 33 21", ["3541"] = "24 33 21", ["3542"] = "24 33 21", ["3543"] = "24 33 21", ["3544"] = "24 33 21", ["3545"] = "24 33 21", ["3546"] = "24 33 21", ["3547"] = "24 33 21", ["3548"] = "24 33 21", ["3551"] = "44 44 53", ["3552"] = "44 44 53", ["3553"] = "44 44 53", ["3554"] = "44 44 53", ["3555"] = "44 44 53", ["3556"] = "44 44 53", ["3557"] = "44 44 53", ["3558"] = "44 44 53", ["3561"] = "44 44 53", ["3562"] = "44 44 53", ["3563"] = "44 44 53", ["3564"] = "44 44 53", ["3565"] = "44 44 53", ["3566"] = "44 44 53", ["3567"] = "44 44 53", ["3568"] = "44 44 53", ["3571"] = "33 55 21", ["3572"] = "33 55 21", ["3573"] = "33 55 21", ["3574"] = "33 55 21", ["3575"] = "35 33 21", ["3576"] = "35 33 21", ["3577"] = "33 55 21", ["3578"] = "33 55 21", ["3581"] = "33 55 21", ["3582"] = "33 55 21", ["3583"] = "33 55 21", ["3584"] = "33 55 21", ["3585"] = "35 33 21", ["3586"] = "35 33 21", ["3587"] = "33 55 21", ["3588"] = "33 55 21", ["3611"] = "22 55 21", ["3612"] = "22 55 21", ["3613"] = "22 55 21", ["3614"] = "22 55 21", ["3615"] = "22 55 44", ["3616"] = "22 55 44", ["3617"] = "22 55 21", ["3618"] = "22 55 21", ["3621"] = "22 55 21", ["3622"] = "22 55 21", ["3623"] = "22 55 21", ["3624"] = "22 55 21", ["3625"] = "22 55 44", ["3626"] = "22 55 44", ["3627"] = "22 55 21", ["3628"] = "22 55 21", ["3631"] = "22 55 21", ["3632"] = "22 55 21", ["3633"] = "22 55 21", ["3634"] = "22 55 21", ["3635"] = "24 33 21", ["3636"] = "24 33 21", ["3637"] = "24 33 21", ["3638"] = "24 33 21", ["3641"] = "24 33 21", ["3642"] = "24 33 21", ["3643"] = "24 33 21", ["3644"] = "24 33 21", ["3645"] = "24 33 21", ["3646"] = "24 33 21", ["3647"] = "24 33 21", ["3648"] = "24 33 21", ["3651"] = "22 55 21", ["3652"] = "22 55 21", ["3653"] = "22 55 21", ["3654"] = "22 55 21", ["3655"] = "22 55 44", ["3656"] = "22 55 44", ["3657"] = "22 55 21", ["3658"] = "22 55 21", ["3661"] = "22 55 21", ["3662"] = "22 55 21", ["3663"] = "22 55 21", ["3664"] = "22 55 21", ["3665"] = "22 55 44", ["3666"] = "22 55 44", ["3667"] = "22 55 21", ["3668"] = "22 55 21", ["3671"] = "22 55 21", ["3672"] = "22 55 21", ["3673"] = "22 55 21", ["3674"] = "22 55 21", ["3675"] = "22 55 44", ["3676"] = "22 55 44", ["3677"] = "22 55 21", ["3678"] = "22 55 21", ["3681"] = "22 55 21", ["3682"] = "22 55 21", ["3683"] = "22 55 21", ["3684"] = "22 55 21", ["3685"] = "22 55 44", ["3686"] = "22 55 44", ["3687"] = "22 55 21", ["3688"] = "22 55 21", ["3711"] = "33 55 21", ["3712"] = "33 55 21", ["3713"] = "33 55 21", ["3714"] = "33 55 21", ["3715"] = "33 55 44", ["3716"] = "33 55 44", ["3717"] = "33 55 21", ["3718"] = "33 55 21", ["3721"] = "33 55 21", ["3722"] = "33 55 21", ["3723"] = "33 55 21", ["3724"] = "33 55 21", ["3725"] = "33 55 44", ["3726"] = "33 55 44", ["3727"] = "33 55 21", ["3728"] = "33 55 21", ["3731"] = "33 55 21", ["3732"] = "33 55 21", ["3733"] = "33 55 21", ["3734"] = "33 55 21", ["3735"] = "33 55 21", ["3736"] = "33 55 21", ["3737"] = "33 55 21", ["3738"] = "33 55 21", ["3741"] = "33 55 21", ["3742"] = "33 55 21", ["3743"] = "33 55 21", ["3744"] = "33 55 21", ["3745"] = "33 55 21", ["3746"] = "33 55 21", ["3747"] = "33 55 21", ["3748"] = "33 55 21", ["3751"] = "33 55 21", ["3752"] = "33 55 21", ["3753"] = "33 55 21", ["3754"] = "33 55 21", ["3755"] = "33 55 44", ["3756"] = "33 55 44", ["3757"] = "33 55 21", ["3758"] = "33 55 21", ["3761"] = "33 55 21", ["3762"] = "33 55 21", ["3763"] = "33 55 21", ["3764"] = "33 55 21", ["3765"] = "33 55 44", ["3766"] = "33 55 44", ["3727"] = "33 55 21", ["3768"] = "33 55 21", ["3771"] = "33 55 21", ["3772"] = "33 55 21", ["3773"] = "33 55 21", ["3774"] = "33 55 21", ["3775"] = "33 55 44", ["3776"] = "33 55 44", ["3777"] = "33 55 21", ["3778"] = "33 55 21", ["3781"] = "33 55 21", ["3782"] = "33 55 21", ["3783"] = "33 55 21", ["3784"] = "33 55 21", ["3785"] = "33 55 44", ["3786"] = "33 55 44", ["3787"] = "33 55 21", ["3788"] = "33 55 21", ["3811"] = "11 11 24", ["3812"] = "11 11 24", ["3813"] = "11 11 24", ["3814"] = "11 11 24", ["3815"] = "11 11 24", ["3816"] = "11 11 24", ["3817"] = "11 11 24", ["3818"] = "11 11 24", ["3821"] = "11 11 24", ["3822"] = "11 11 24", ["3823"] = "11 11 24", ["3824"] = "11 11 24", ["3825"] = "11 11 24", ["3826"] = "11 11 24", ["3827"] = "11 11 24", ["3828"] = "11 11 24", ["3831"] = "22 55 21", ["3832"] = "22 55 21", ["3833"] = "22 55 21", ["3834"] = "22 55 21", ["3835"] = "22 55 21", ["3836"] = "22 55 21", ["3837"] = "22 55 21", ["3838"] = "22 55 21", ["3841"] = "22 55 21", ["3842"] = "22 55 21", ["3843"] = "22 55 21", ["3844"] = "22 55 21", ["3845"] = "22 55 21", ["3846"] = "22 55 21", ["3847"] = "22 55 21", ["3848"] = "22 55 21", ["3851"] = "22 55 21", ["3852"] = "22 55 21", ["3853"] = "22 55 21", ["3854"] = "22 55 21", ["3855"] = "22 55 21", ["3856"] = "22 55 21", ["3857"] = "22 55 21", ["3858"] = "22 55 21", ["3861"] = "22 55 21", ["3862"] = "22 55 21", ["3863"] = "22 55 21", ["3864"] = "22 55 21", ["3865"] = "22 55 21", ["3866"] = "22 55 21", ["3867"] = "22 55 21", ["3868"] = "22 55 21", ["3871"] = "11 11 24", ["3872"] = "11 11 24", ["3873"] = "11 11 24", ["3874"] = "11 11 24", ["3875"] = "11 11 24", ["3876"] = "11 11 24", ["3877"] = "11 11 24", ["3878"] = "11 11 24", ["3881"] = "11 11 24", ["3882"] = "11 11 24", ["3883"] = "11 11 24", ["3884"] = "11 11 24", ["3885"] = "11 11 24", ["3886"] = "11 11 24", ["3887"] = "11 11 24", ["3888"] = "11 11 24", }, ['sj'] = { ["10"] = "", ["11"] = "53", ["12"] = "31", ["13"] = "44", ["14"] = "22", ["15"] = "35", ["16"] = "13", ["17"] = "44", ["18"] = "22", ["211"] = "35 53", ["212"] = "35 53", ["213"] = "35 53", ["214"] = "35 53", ["215"] = "55 31", ["216"] = "55 31", ["217"] = "53 31", ["218"] = "53 31", ["221"] = "15 53", ["222"] = "15 53", ["223"] = "15 53", ["224"] = "15 53", ["225"] = "24 31", ["226"] = "24 31", ["227"] = "22 22", ["228"] = "22 22", ["231"] = "35 31", ["232"] = "35 31", ["233"] = "35 31", ["234"] = "35 31", ["235"] = "44 44", ["236"] = "44 44", ["237"] = "35 31", ["238"] = "35 31", ["241"] = "24 31", ["242"] = "24 31", ["243"] = "24 31", ["244"] = "24 31", ["245"] = "22 35", ["246"] = "22 35", ["247"] = "24 31", ["248"] = "24 31", ["251"] = "53 31", ["252"] = "53 31", ["253"] = "53 31", ["254"] = "53 31", ["255"] = "44 44", ["256"] = "44 44", ["257"] = "35 31", ["258"] = "35 31", ["261"] = "22 22", ["262"] = "22 22", ["263"] = "22 22", ["264"] = "22 22", ["265"] = "22 35", ["266"] = "22 35", ["267"] = "24 31", ["268"] = "24 31", ["271"] = "44 53", ["272"] = "44 53", ["273"] = "44 44", ["274"] = "44 44", ["275"] = "44 35", ["276"] = "44 35", ["277"] = "44 44", ["278"] = "44 44", ["281"] = "22 53", ["282"] = "22 53", ["283"] = "22 22", ["284"] = "22 22", ["285"] = "22 35", ["286"] = "22 35", ["287"] = "22 22", ["288"] = "22 22", ["3111"] = "35 55 31", ["3112"] = "35 55 31", ["3113"] = "35 55 31", ["3114"] = "35 55 31", ["3115"] = "35 55 31", ["3116"] = "35 55 31", ["3117"] = "55 33 31", ["3118"] = "55 33 31", ["3121"] = "35 55 31", ["3122"] = "35 55 31", ["3123"] = "35 55 31", ["3124"] = "35 55 31", ["3125"] = "35 55 31", ["3126"] = "35 55 31", ["3127"] = "55 33 31", ["3128"] = "55 33 31", ["3131"] = "55 33 31", ["3132"] = "55 33 31", ["3133"] = "55 33 31", ["3134"] = "55 33 31", ["3135"] = "35 55 31", ["3136"] = "35 55 31", ["3137"] = "55 33 31", ["3138"] = "55 33 31", ["3141"] = "55 33 31", ["3142"] = "55 33 31", ["3143"] = "55 33 31", ["3144"] = "55 33 31", ["3145"] = "35 55 31", ["3146"] = "35 55 31", ["3147"] = "55 33 31", ["3148"] = "55 33 31", ["3151"] = "55 33 31", ["3152"] = "55 33 31", ["3153"] = "55 33 31", ["3154"] = "55 33 31", ["3155"] = "55 33 31", ["3156"] = "55 33 31", ["3157"] = "55 33 31", ["3158"] = "55 33 31", ["3161"] = "55 33 31", ["3162"] = "55 33 31", ["3163"] = "55 33 31", ["3164"] = "55 33 31", ["3165"] = "55 33 31", ["3166"] = "55 33 31", ["3167"] = "55 33 31", ["3168"] = "55 33 31", ["3171"] = "35 55 31", ["3172"] = "35 55 31", ["3173"] = "55 33 31", ["3174"] = "55 33 31", ["3175"] = "55 33 31", ["3176"] = "55 33 31", ["3177"] = "55 33 31", ["3178"] = "55 33 31", ["3181"] = "35 55 31", ["3182"] = "35 55 31", ["3183"] = "55 33 31", ["3184"] = "55 33 31", ["3185"] = "55 33 31", ["3186"] = "55 33 31", ["3187"] = "55 33 31", ["3188"] = "55 33 31", ["3211"] = "13 55 31", ["3212"] = "13 55 31", ["3213"] = "13 55 31", ["3214"] = "13 55 31", ["3215"] = "13 55 31", ["3216"] = "13 55 31", ["3217"] = "22 22 22", ["3218"] = "22 22 22", ["3221"] = "13 55 31", ["3222"] = "13 55 31", ["3223"] = "13 55 31", ["3224"] = "13 55 31", ["3225"] = "13 55 31", ["3226"] = "13 55 31", ["3227"] = "22 22 22", ["3228"] = "22 22 22", ["3231"] = "24 33 31", ["3232"] = "24 33 31", ["3233"] = "24 33 31", ["3234"] = "24 33 31", ["3235"] = "13 55 31", ["3236"] = "13 55 31", ["3237"] = "24 33 31", ["3238"] = "24 33 31", ["3241"] = "24 33 31", ["3242"] = "24 33 31", ["3243"] = "24 33 31", ["3244"] = "24 33 31", ["3245"] = "13 55 31", ["3246"] = "13 55 31", ["3247"] = "24 33 31", ["3248"] = "24 33 31", ["3251"] = "24 33 31", ["3252"] = "24 33 31", ["3253"] = "24 33 31", ["3254"] = "24 33 31", ["3255"] = "24 33 31", ["3256"] = "24 33 31", ["3257"] = "24 33 31", ["3258"] = "24 33 31", ["3261"] = "24 33 31", ["3262"] = "24 33 31", ["3263"] = "24 33 31", ["3264"] = "24 33 31", ["3265"] = "24 33 31", ["3266"] = "24 33 31", ["3267"] = "22 22 22", ["3268"] = "22 22 22", ["3271"] = "13 55 31", ["3272"] = "13 55 31", ["3273"] = "22 22 22", ["3274"] = "22 22 22", ["3275"] = "22 22 22", ["3276"] = "22 22 22", ["3277"] = "22 22 22", ["3278"] = "22 22 22", ["3281"] = "13 55 31", ["3282"] = "13 55 31", ["3283"] = "22 22 22", ["3284"] = "22 22 22", ["3285"] = "22 22 22", ["3286"] = "22 22 22", ["3287"] = "22 22 22", ["3288"] = "22 22 22", ["3311"] = "33 55 31", ["3312"] = "33 55 31", ["3313"] = "33 55 31", ["3314"] = "33 55 31", ["3315"] = "35 33 31", ["3316"] = "35 33 31", ["3317"] = "33 55 31", ["3318"] = "33 55 31", ["3321"] = "33 55 31", ["3322"] = "33 55 31", ["3323"] = "33 55 31", ["3324"] = "33 55 31", ["3325"] = "35 33 31", ["3326"] = "35 33 31", ["3327"] = "33 55 31", ["3328"] = "33 55 31", ["3331"] = "33 55 31", ["3332"] = "33 55 31", ["3333"] = "33 55 31", ["3334"] = "33 55 31", ["3335"] = "35 33 31", ["3336"] = "35 33 31", ["3337"] = "33 55 31", ["3338"] = "33 55 31", ["3341"] = "33 55 31", ["3342"] = "33 55 31", ["3343"] = "33 55 31", ["3344"] = "33 55 31", ["3345"] = "35 33 31", ["3346"] = "35 33 31", ["3347"] = "33 55 31", ["3348"] = "33 55 31", ["3351"] = "33 55 31", ["3352"] = "33 55 31", ["3353"] = "33 55 31", ["3354"] = "33 55 31", ["3355"] = "35 33 31", ["3356"] = "35 33 31", ["3357"] = "33 55 31", ["3358"] = "33 55 31", ["3361"] = "33 55 31", ["3362"] = "33 55 31", ["3363"] = "33 55 31", ["3364"] = "33 55 31", ["3365"] = "35 33 31", ["3366"] = "35 33 31", ["3367"] = "33 55 31", ["3368"] = "33 55 31", ["3371"] = "33 55 53", ["3372"] = "33 55 53", ["3373"] = "33 55 31", ["3374"] = "33 55 31", ["3375"] = "35 33 31", ["3376"] = "35 33 31", ["3377"] = "33 55 31", ["3378"] = "33 55 31", ["3381"] = "33 55 53", ["3382"] = "33 55 53", ["3383"] = "33 55 31", ["3384"] = "33 55 31", ["3385"] = "35 33 31", ["3386"] = "35 33 31", ["3387"] = "33 55 31", ["3388"] = "33 55 31", ["3411"] = "22 55 31", ["3412"] = "22 55 31", ["3413"] = "22 55 31", ["3414"] = "22 55 31", ["3415"] = "24 33 31", ["3416"] = "24 33 31", ["3417"] = "22 55 31", ["3418"] = "22 55 31", ["3421"] = "22 55 31", ["3422"] = "22 55 31", ["3423"] = "22 55 31", ["3424"] = "22 55 31", ["3425"] = "24 33 31", ["3426"] = "24 33 31", ["3427"] = "22 55 31", ["3428"] = "22 55 31", ["3431"] = "22 55 31", ["3432"] = "22 55 31", ["3433"] = "22 55 31", ["3434"] = "22 55 31", ["3435"] = "24 33 31", ["3436"] = "24 33 31", ["3437"] = "22 55 31", ["3438"] = "22 55 31", ["3441"] = "22 55 31", ["3442"] = "22 55 31", ["3443"] = "22 55 31", ["3444"] = "22 55 31", ["3445"] = "24 33 31", ["3446"] = "24 33 31", ["3447"] = "22 55 31", ["3448"] = "22 55 31", ["3451"] = "22 55 31", ["3452"] = "22 55 31", ["3453"] = "22 55 31", ["3454"] = "22 55 31", ["3455"] = "24 33 31", ["3456"] = "24 33 31", ["3457"] = "22 55 31", ["3458"] = "22 55 31", ["3461"] = "22 55 31", ["3462"] = "22 55 31", ["3463"] = "22 55 31", ["3464"] = "22 55 31", ["3465"] = "24 33 31", ["3466"] = "24 33 31", ["3467"] = "22 55 31", ["3468"] = "22 55 31", ["3471"] = "22 55 53", ["3472"] = "22 55 53", ["3473"] = "22 55 31", ["3474"] = "22 55 31", ["3475"] = "24 33 31", ["3476"] = "24 33 31", ["3477"] = "22 55 31", ["3478"] = "22 55 31", ["3481"] = "22 55 53", ["3482"] = "22 55 53", ["3483"] = "22 55 31", ["3484"] = "22 55 31", ["3485"] = "24 33 31", ["3486"] = "24 33 31", ["3487"] = "22 55 31", ["3488"] = "22 55 31", ["3511"] = "55 33 31", ["3512"] = "55 33 31", ["3513"] = "55 33 31", ["3514"] = "55 33 31", ["3515"] = "55 33 31", ["3516"] = "55 33 31", ["3517"] = "55 33 31", ["3518"] = "55 33 31", ["3521"] = "55 33 31", ["3522"] = "55 33 31", ["3523"] = "55 33 31", ["3524"] = "55 33 31", ["3525"] = "55 33 31", ["3526"] = "55 33 31", ["3527"] = "55 33 31", ["3528"] = "55 33 31", ["3531"] = "44 44 53", ["3532"] = "44 44 53", ["3533"] = "44 44 53", ["3534"] = "44 44 53", ["3535"] = "55 33 31", ["3536"] = "55 33 31", ["3537"] = "44 44 53", ["3538"] = "44 44 53", ["3541"] = "33 55 31", ["3542"] = "33 55 31", ["3543"] = "33 55 31", ["3544"] = "33 55 31", ["3545"] = "55 33 31", ["3546"] = "55 33 31", ["3547"] = "44 44 53", ["3548"] = "44 44 53", ["3551"] = "33 55 31", ["3552"] = "33 55 31", ["3553"] = "33 55 31", ["3554"] = "33 55 31", ["3555"] = "35 33 31", ["3556"] = "35 33 31", ["3557"] = "44 44 53", ["3558"] = "44 44 53", ["3561"] = "33 55 31", ["3562"] = "33 55 31", ["3563"] = "33 55 31", ["3564"] = "33 55 31", ["3565"] = "35 33 31", ["3566"] = "35 33 31", ["3567"] = "44 44 53", ["3568"] = "44 44 53", ["3571"] = "33 55 53", ["3572"] = "33 55 53", ["3573"] = "33 55 31", ["3574"] = "33 55 31", ["3575"] = "35 33 31", ["3576"] = "35 33 31", ["3577"] = "33 55 31", ["3578"] = "33 55 31", ["3581"] = "33 55 53", ["3582"] = "33 55 53", ["3583"] = "33 55 31", ["3584"] = "33 55 31", ["3585"] = "35 33 31", ["3586"] = "35 33 31", ["3587"] = "33 55 31", ["3588"] = "33 55 31", ["3611"] = "22 22 22", ["3612"] = "22 22 22", ["3613"] = "22 22 22", ["3614"] = "22 22 22", ["3615"] = "22 22 22", ["3616"] = "22 22 22", ["3617"] = "22 22 22", ["3618"] = "22 22 22", ["3621"] = "22 22 22", ["3622"] = "22 22 22", ["3623"] = "22 22 22", ["3624"] = "22 22 22", ["3625"] = "22 22 22", ["3626"] = "22 22 22", ["3627"] = "22 22 22", ["3628"] = "22 22 22", ["3631"] = "22 55 53", ["3632"] = "22 55 53", ["3633"] = "22 55 53", ["3634"] = "22 55 53", ["3635"] = "22 22 22", ["3636"] = "22 22 22", ["3637"] = "22 55 53", ["3638"] = "22 55 53", ["3641"] = "22 55 53", ["3642"] = "22 55 53", ["3643"] = "22 55 53", ["3644"] = "22 55 53", ["3645"] = "22 22 22", ["3646"] = "22 22 22", ["3647"] = "22 55 53", ["3648"] = "22 55 53", ["3651"] = "22 55 31", ["3652"] = "22 55 31", ["3653"] = "22 55 31", ["3654"] = "22 55 31", ["3655"] = "24 33 31", ["3656"] = "24 33 31", ["3657"] = "22 55 31", ["3658"] = "22 55 31", ["3661"] = "22 55 31", ["3662"] = "22 55 31", ["3663"] = "22 55 31", ["3664"] = "22 55 31", ["3665"] = "24 33 31", ["3666"] = "24 33 31", ["3667"] = "22 55 31", ["3668"] = "22 55 31", ["3671"] = "22 55 53", ["3672"] = "22 55 53", ["3673"] = "22 55 31", ["3674"] = "22 55 31", ["3675"] = "24 33 31", ["3676"] = "24 33 31", ["3677"] = "22 55 31", ["3678"] = "22 55 31", ["3681"] = "22 55 53", ["3682"] = "22 55 53", ["3683"] = "22 55 31", ["3684"] = "22 55 31", ["3685"] = "24 33 31", ["3686"] = "24 33 31", ["3687"] = "22 55 31", ["3688"] = "22 55 31", ["3711"] = "33 55 53", ["3712"] = "33 55 53", ["3713"] = "33 55 53", ["3714"] = "33 55 53", ["3715"] = "33 55 31", ["3716"] = "33 55 31", ["3717"] = "33 55 31", ["3718"] = "33 55 31", ["3721"] = "33 55 53", ["3722"] = "33 55 53", ["3723"] = "33 55 53", ["3724"] = "33 55 53", ["3725"] = "33 55 31", ["3726"] = "33 55 31", ["3727"] = "33 55 31", ["3728"] = "33 55 31", ["3731"] = "33 55 53", ["3732"] = "33 55 53", ["3733"] = "33 55 53", ["3734"] = "33 55 53", ["3735"] = "44 44 44", ["3736"] = "44 44 44", ["3737"] = "33 55 53", ["3738"] = "33 55 53", ["3741"] = "33 55 53", ["3742"] = "33 55 53", ["3743"] = "33 55 53", ["3744"] = "33 55 53", ["3745"] = "44 44 44", ["3746"] = "44 44 44", ["3747"] = "33 55 53", ["3748"] = "33 55 53", ["3751"] = "33 55 31", ["3752"] = "33 55 31", ["3753"] = "33 55 31", ["3754"] = "33 55 31", ["3755"] = "44 44 44", ["3756"] = "44 44 44", ["3757"] = "33 55 53", ["3758"] = "33 55 53", ["3761"] = "33 55 31", ["3762"] = "33 55 31", ["3763"] = "33 55 31", ["3764"] = "33 55 31", ["3765"] = "44 44 44", ["3766"] = "44 44 44", ["3767"] = "33 55 53", ["3768"] = "33 55 53", ["3771"] = "33 55 53", ["3772"] = "33 55 53", ["3773"] = "33 55 53", ["3774"] = "33 55 53", ["3775"] = "44 44 44", ["3776"] = "44 44 44", ["3777"] = "44 44 44", ["3778"] = "44 44 44", ["3781"] = "33 55 53", ["3782"] = "33 55 53", ["3783"] = "33 55 53", ["3784"] = "33 55 53", ["3785"] = "44 44 44", ["3786"] = "44 44 44", ["3787"] = "44 44 44", ["3788"] = "44 44 44", ["3811"] = "22 55 53", ["3812"] = "22 55 53", ["3813"] = "22 55 53", ["3814"] = "22 55 53", ["3815"] = "22 55 31", ["3816"] = "22 55 31", ["3817"] = "22 55 31", ["3818"] = "22 55 31", ["3821"] = "22 55 53", ["3822"] = "22 55 53", ["3823"] = "22 55 53", ["3824"] = "22 55 53", ["3825"] = "22 55 31", ["3826"] = "22 55 31", ["3827"] = "22 55 31", ["3828"] = "22 55 31", ["3831"] = "22 55 53", ["3832"] = "22 55 53", ["3833"] = "22 55 53", ["3834"] = "22 55 53", ["3835"] = "22 22 22", ["3836"] = "22 22 22", ["3837"] = "22 55 53", ["3838"] = "22 55 53", ["3841"] = "22 55 53", ["3842"] = "22 55 53", ["3843"] = "22 55 53", ["3844"] = "22 55 53", ["3845"] = "22 22 22", ["3846"] = "22 22 22", ["3847"] = "22 55 53", ["3848"] = "22 55 53", ["3851"] = "22 55 31", ["3852"] = "22 55 31", ["3853"] = "22 55 31", ["3854"] = "22 55 31", ["3855"] = "22 22 22", ["3856"] = "22 22 22", ["3857"] = "22 55 53", ["3858"] = "22 55 53", ["3861"] = "22 55 31", ["3862"] = "22 55 31", ["3863"] = "22 55 31", ["3864"] = "22 55 31", ["3865"] = "22 22 22", ["3866"] = "22 22 22", ["3867"] = "22 55 53", ["3868"] = "22 55 53", ["3871"] = "22 55 53", ["3872"] = "22 55 53", ["3873"] = "22 55 53", ["3874"] = "22 55 53", ["3875"] = "22 22 22", ["3876"] = "22 22 22", ["3877"] = "22 22 22", ["3878"] = "22 22 22", ["3881"] = "22 55 53", ["3882"] = "22 55 53", ["3883"] = "22 55 53", ["3884"] = "22 55 53", ["3885"] = "22 22 22", ["3886"] = "22 22 22", ["3887"] = "22 22 22", ["3888"] = "22 22 22", --!RPS! : potentially doesn't exist? source found that claims that Old SH doesn't have RPS but whether or not this applies to Songjiang may be up for debate }, ['cm'] = { ["10"] = "", ["11"] = "55", ["12"] = "24", ["13"] = "424", ["14"] = "242", ["15"] = "33", ["16"] = "313", ["17"] = "5", ["18"] = "2", -- disylls -- regular LPS ["211"] = "55 55", ["212"] = "55 55", ["213"] = "55 0", ["214"] = "55 0", ["215"] = "55 0", ["216"] = "55 0", ["217"] = "55 5", ["218"] = "55 5", ["221"] = "24 55", ["222"] = "24 55", ["223"] = "24 0", ["224"] = "24 0", ["225"] = "24 33", ["226"] = "24 0", ["227"] = "24 5", ["228"] = "24 5", ["231"] = "42 55", ["232"] = "42 55", ["233"] = "33 0", ["234"] = "42 33", ["235"] = "42 33", ["236"] = "42 33", ["237"] = "42 5", ["238"] = "42 5", ["241"] = "31 55", ["242"] = "31 55", ["243"] = "31 33", ["244"] = "242 0", ["245"] = "242 0", ["246"] = "242 0", ["247"] = "31 5", ["248"] = "31 5", ["251"] = "42 55", ["252"] = "42 55", ["253"] = "33 0", ["254"] = "33 0", ["255"] = "42 33", ["256"] = "33 0", ["257"] = "42 5", ["258"] = "42 5", ["261"] = "31 55", ["262"] = "31 55", ["263"] = "31 33", ["264"] = "31 33", ["265"] = "31 33", ["266"] = "31 33", ["267"] = "31 5", ["268"] = "31 5", ["271"] = "55 55", ["272"] = "55 55", ["273"] = "55 33", ["274"] = "55 33", ["275"] = "55 33", ["276"] = "55 33", ["277"] = "55 55", ["278"] = "55 55", ["281"] = "22 55", ["282"] = "22 55", ["283"] = "22 33", ["284"] = "22 33", ["285"] = "22 33", ["286"] = "22 33", ["287"] = "22 55", ["288"] = "22 55", -- numeral-classifier and verb/adjective-complement LPS ["211C"] = "55 55", ["212C"] = "55 55", ["213C"] = "55 0", ["214C"] = "55 0", ["215C"] = "55 0", ["216C"] = "55 0", ["217C"] = "55 55", ["218C"] = "55 55", ["221C"] = "24 55", ["222C"] = "24 55", ["223C"] = "24 0", ["224C"] = "24 0", ["225C"] = "24 33", ["226C"] = "24 0", ["227C"] = "24 55", ["228C"] = "24 55", ["231C"] = "42 33", ["232C"] = "42 33", ["233C"] = "42 33", ["234C"] = "42 33", ["235C"] = "42 33", ["236C"] = "42 33", ["237C"] = "42 0", ["238C"] = "42 0", ["241C"] = "242 0", ["242C"] = "242 0", ["243C"] = "242 0", ["244C"] = "242 0", ["245C"] = "242 0", ["246C"] = "242 0", ["247C"] = "242 0", ["248C"] = "242 0", ["251C"] = "33 55", ["252C"] = "33 55", ["253C"] = "33 55", ["254C"] = "33 55", ["255C"] = "33 55", ["256C"] = "33 55", ["257C"] = "33 0", ["258C"] = "33 0", ["261C"] = "31 33", ["262C"] = "31 33", ["263C"] = "31 33", ["264C"] = "31 33", ["265C"] = "31 33", ["266C"] = "31 33", ["267C"] = "31 0", ["268C"] = "31 0", ["271C"] = "55 55", ["272C"] = "55 55", ["273C"] = "55 33", ["274C"] = "55 33", ["275C"] = "55 33", ["276C"] = "55 33", ["277C"] = "55 55", ["278C"] = "55 55", ["281C"] = "22 55", ["282C"] = "22 55", ["283C"] = "22 33", ["284C"] = "22 33", ["285C"] = "22 33", ["286C"] = "22 33", ["287C"] = "22 55", ["288C"] = "22 55", -- motion verbs → 過來、出來、上去、進去 ["3M"] = "42 55", ["4M"] = "31 55", ["5M"] = "42 55", ["7M"] = "55 55", -- verb-pronoun → 幫我、怪你、學渠 ["1P"] = "55 55", ["2P"] = "24 55", ["3P"] = "53 33", ["4P"] = "242 0", ["5P"] = "33 55", ["6P"] = "31 33", ["7P"] = "55 55", ["8P"] = "22 55", -- reduplicated (verb, counter, noun) → 天天、花花、做做、日日、坐坐 ["RV1"] = "55 55", ["RV2"] = "24 55", ["RV3"] = "42 33", ["RV4"] = "242 0", ["RV5"] = "33 55", ["RV6"] = "31 33", ["RV7"] = "5 5", ["RV8"] = "2 5", ["RC1"] = "55 55", ["RC2"] = "24 55", ["RC3"] = "42 33", ["RC4"] = "24 0", ["RC5"] = "42 33", ["RC6"] = "24 0", ["RC7"] = "5 5", ["RC8"] = "2 5", ["RN1"] = "55 55", ["RN2"] = "24 55", ["RN3"] = "42 55", ["RN4"] = "242 0", ["RN5"] = "42 55", ["RN6"] = "42 55", ["RN7"] = "5 5", ["RN8"] = "2 5", --regular trisyll LPS ["3111"] = "55 55 55", ["3112"] = "55 55 55", ["3113"] = "55 55 0", ["3114"] = "55 55 0", ["3115"] = "55 55 0", ["3116"] = "55 55 0", ["3117"] = "55 55 55", ["3118"] = "55 55 55", ["3121"] = "55 55 55", ["3122"] = "55 55 55", ["3123"] = "55 55 0", ["3124"] = "55 55 0", ["3125"] = "55 55 0", ["3126"] = "55 55 0", ["3127"] = "55 55 55", ["3128"] = "55 55 55", ["3131"] = "55 0 55", ["3132"] = "55 0 55", ["3133"] = "55 0 0", ["3134"] = "55 0 0", ["3135"] = "55 0 0", ["3136"] = "55 0 0", ["3137"] = "55 0 0", ["3138"] = "55 0 0", ["3141"] = "55 0 55", ["3142"] = "55 0 55", ["3143"] = "55 0 0", ["3144"] = "55 0 0", ["3145"] = "55 0 0", ["3146"] = "55 0 0", ["3147"] = "55 0 0", ["3148"] = "55 0 0", ["3151"] = "55 0 55", ["3152"] = "55 0 55", ["3153"] = "55 0 0", ["3154"] = "55 0 0", ["3155"] = "55 0 0", ["3156"] = "55 0 0", ["3157"] = "55 0 0", ["3158"] = "55 0 0", ["3161"] = "55 0 55", ["3162"] = "55 0 55", ["3163"] = "55 0 0", ["3164"] = "55 0 0", ["3165"] = "55 0 0", ["3166"] = "55 0 0", ["3167"] = "55 0 0", ["3168"] = "55 0 0", ["3171"] = "55 55 55", ["3172"] = "55 55 55", ["3173"] = "55 55 0", ["3174"] = "55 55 0", ["3175"] = "55 55 0", ["3176"] = "55 55 0", ["3177"] = "55 55 55", ["3178"] = "55 55 55", ["3181"] = "55 55 55", ["3182"] = "55 55 55", ["3183"] = "55 55 0", ["3184"] = "55 55 0", ["3185"] = "55 55 0", ["3186"] = "55 55 0", ["3187"] = "55 55 55", ["3188"] = "55 55 55", ["3211"] = "24 33 55", ["3212"] = "24 33 55", ["3213"] = "24 55 0", ["3214"] = "24 55 0", ["3215"] = "24 55 0", ["3216"] = "24 55 0", ["3217"] = "24 33 55", ["3218"] = "24 33 55", ["3221"] = "24 33 55", ["3222"] = "24 33 55", ["3223"] = "24 55 0", ["3224"] = "24 55 0", ["3225"] = "24 55 0", ["3226"] = "24 55 0", ["3227"] = "24 33 55", ["3228"] = "24 33 55", ["3231"] = "24 33 55", ["3232"] = "24 33 55", ["3233"] = "24 33 0", ["3234"] = "24 33 0", ["3235"] = "24 0 0", ["3236"] = "24 0 0", ["3237"] = "24 33 55", ["3238"] = "24 33 55", ["3241"] = "24 0 55", ["3242"] = "24 0 55", ["3243"] = "24 0 0", ["3244"] = "24 0 0", ["3245"] = "24 0 0", ["3246"] = "24 0 0", ["3247"] = "24 0 0", ["3248"] = "24 0 0", ["3251"] = "24 33 55", ["3252"] = "24 33 55", ["3253"] = "24 33 0", ["3254"] = "24 33 0", ["3255"] = "24 33 0", ["3256"] = "24 33 0", ["3257"] = "24 33 55", ["3258"] = "24 33 5", ["3261"] = "24 0 55", ["3262"] = "24 0 55", ["3263"] = "24 0 0", ["3264"] = "24 0 0", ["3265"] = "24 0 0", ["3266"] = "24 0 0", ["3267"] = "24 0 0", ["3268"] = "24 0 0", ["3271"] = "24 55 55", ["3272"] = "24 55 55", ["3273"] = "24 55 0", ["3274"] = "24 55 0", ["3275"] = "24 55 0", ["3276"] = "24 55 0", ["3277"] = "24 55 55", ["3278"] = "24 55 55", ["3281"] = "24 55 55", ["3282"] = "24 55 55", ["3283"] = "24 55 0", ["3284"] = "24 55 0", ["3285"] = "24 55 0", ["3286"] = "24 55 0", ["3287"] = "24 55 55", ["3288"] = "24 55 55", ["3311"] = "42 33 55", ["3312"] = "42 33 55", ["3313"] = "42 55 0", ["3314"] = "42 55 0", ["3315"] = "42 55 0", ["3316"] = "42 55 0", ["3317"] = "42 33 55", ["3318"] = "42 33 55", ["3321"] = "42 33 55", ["3322"] = "42 33 55", ["3323"] = "42 55 0", ["3324"] = "42 55 0", ["3325"] = "42 55 0", ["3326"] = "42 55 0", ["3327"] = "42 33 55", ["3328"] = "42 33 55", ["3331"] = "42 33 55", ["3332"] = "42 33 55", ["3333"] = "42 33 0", ["3334"] = "42 33 0", ["3335"] = "42 33 0", ["3336"] = "42 33 0", ["3337"] = "42 33 55", ["3338"] = "42 33 55", ["3341"] = "42 33 55", ["3342"] = "42 33 55", ["3343"] = "42 33 0", ["3344"] = "42 33 0", ["3345"] = "42 33 0", ["3346"] = "42 33 0", ["3347"] = "42 33 55", ["3348"] = "42 33 55", ["3351"] = "42 33 55", ["3352"] = "42 33 55", ["3353"] = "42 33 0", ["3354"] = "42 33 0", ["3355"] = "42 33 0", ["3356"] = "42 33 0", ["3357"] = "42 33 55", ["3358"] = "42 33 55", ["3361"] = "42 33 55", ["3362"] = "42 33 55", ["3363"] = "42 33 0", ["3364"] = "42 33 0", ["3365"] = "42 33 0", ["3366"] = "42 33 0", ["3367"] = "42 33 55", ["3368"] = "42 33 55", ["3371"] = "42 55 55", ["3372"] = "42 55 55", ["3373"] = "42 55 0", ["3374"] = "42 55 0", ["3375"] = "42 55 0", ["3376"] = "42 55 0", ["3377"] = "42 55 55", ["3378"] = "42 55 55", ["3381"] = "42 55 55", ["3382"] = "42 55 55", ["3383"] = "42 55 0", ["3384"] = "42 55 0", ["3385"] = "42 55 0", ["3386"] = "42 55 0", ["3387"] = "42 55 55", ["3388"] = "42 55 55", ["3411"] = "31 33 55", ["3412"] = "31 33 55", ["3413"] = "31 55 0", ["3414"] = "31 55 0", ["3415"] = "31 55 0", ["3416"] = "31 55 0", ["3417"] = "31 33 55", ["3418"] = "31 33 55", ["3421"] = "31 33 55", ["3422"] = "31 33 55", ["3423"] = "31 55 0", ["3424"] = "31 55 0", ["3425"] = "31 55 0", ["3426"] = "31 55 0", ["3427"] = "31 33 55", ["3428"] = "31 33 55", ["3431"] = "31 33 55", ["3432"] = "31 33 55", ["3433"] = "31 33 0", ["3434"] = "31 33 0", ["3435"] = "31 33 0", ["3436"] = "31 33 0", ["3437"] = "31 33 55", ["3438"] = "31 33 55", ["3441"] = "31 33 55", ["3442"] = "31 33 55", ["3443"] = "31 33 0", ["3444"] = "31 33 0", ["3445"] = "31 33 0", ["3446"] = "31 33 0", ["3447"] = "31 33 55", ["3448"] = "31 33 55", ["3451"] = "31 33 55", ["3452"] = "31 33 55", ["3453"] = "31 33 0", ["3454"] = "31 33 0", ["3455"] = "31 33 0", ["3456"] = "31 33 0", ["3457"] = "31 33 55", ["3458"] = "31 33 55", ["3461"] = "31 33 55", ["3462"] = "31 33 55", ["3463"] = "31 33 0", ["3464"] = "31 33 0", ["3465"] = "31 33 0", ["3466"] = "31 33 0", ["3467"] = "31 33 55", ["3468"] = "31 33 55", ["3471"] = "31 55 55", ["3472"] = "31 55 55", ["3473"] = "31 55 0", ["3474"] = "31 55 0", ["3475"] = "31 55 0", ["3476"] = "31 55 0", ["3477"] = "31 55 55", ["3478"] = "31 55 55", ["3481"] = "31 55 55", ["3482"] = "31 55 55", ["3483"] = "31 55 0", ["3484"] = "31 55 0", ["3485"] = "31 55 0", ["3486"] = "31 55 0", ["3487"] = "31 55 55", ["3488"] = "31 55 55", ["3511"] = "42 33 55", ["3512"] = "42 33 55", ["3513"] = "42 55 0", ["3514"] = "42 55 0", ["3515"] = "42 55 0", ["3516"] = "42 55 0", ["3517"] = "42 33 55", ["3518"] = "42 33 55", ["3521"] = "42 33 55", ["3522"] = "42 33 55", ["3523"] = "42 55 0", ["3524"] = "42 55 0", ["3525"] = "42 55 0", ["3526"] = "42 55 0", ["3527"] = "42 33 55", ["3528"] = "42 33 55", ["3531"] = "42 33 55", ["3532"] = "42 33 55", ["3533"] = "42 33 0", ["3534"] = "42 33 0", ["3535"] = "42 33 0", ["3536"] = "42 33 0", ["3537"] = "42 33 55", ["3538"] = "42 33 55", ["3541"] = "42 33 55", ["3542"] = "42 33 55", ["3543"] = "42 33 0", ["3544"] = "42 33 0", ["3545"] = "42 33 0", ["3546"] = "42 33 0", ["3547"] = "42 33 55", ["3548"] = "42 33 55", ["3551"] = "42 33 55", ["3552"] = "42 33 55", ["3553"] = "42 33 0", ["3554"] = "42 33 0", ["3555"] = "42 33 0", ["3556"] = "42 33 0", ["3557"] = "42 33 55", ["3558"] = "42 33 55", ["3561"] = "42 33 55", ["3562"] = "42 33 55", ["3563"] = "42 33 0", ["3564"] = "42 33 0", ["3565"] = "42 33 0", ["3566"] = "42 33 0", ["3567"] = "42 33 55", ["3568"] = "42 33 55", ["3571"] = "42 55 55", ["3572"] = "42 55 55", ["3573"] = "42 55 0", ["3574"] = "42 55 0", ["3575"] = "42 55 0", ["3576"] = "42 55 0", ["3577"] = "42 55 55", ["3578"] = "42 55 55", ["3581"] = "42 55 55", ["3582"] = "42 55 55", ["3583"] = "42 55 0", ["3584"] = "42 55 0", ["3585"] = "42 55 0", ["3586"] = "42 55 0", ["3587"] = "42 55 55", ["3588"] = "42 55 55", ["3611"] = "31 33 55", ["3612"] = "31 33 55", ["3613"] = "31 55 0", ["3614"] = "31 55 0", ["3615"] = "31 55 0", ["3616"] = "31 55 0", ["3617"] = "31 33 55", ["3618"] = "31 33 55", ["3621"] = "31 33 55", ["3622"] = "31 33 55", ["3623"] = "31 55 0", ["3624"] = "31 55 0", ["3625"] = "31 55 0", ["3626"] = "31 55 0", ["3627"] = "31 33 55", ["3628"] = "31 33 55", ["3631"] = "31 33 55", ["3632"] = "31 33 55", ["3633"] = "31 33 0", ["3634"] = "31 33 0", ["3635"] = "31 33 0", ["3636"] = "31 33 0", ["3637"] = "31 33 55", ["3638"] = "31 33 55", ["3641"] = "31 33 55", ["3642"] = "31 33 55", ["3643"] = "31 33 0", ["3644"] = "31 33 0", ["3645"] = "31 33 0", ["3646"] = "31 33 0", ["3647"] = "31 33 55", ["3648"] = "31 33 55", ["3651"] = "31 33 55", ["3652"] = "31 33 55", ["3653"] = "31 33 0", ["3654"] = "31 33 0", ["3655"] = "31 33 0", ["3656"] = "31 33 0", ["3657"] = "31 33 55", ["3658"] = "31 33 55", ["3661"] = "31 33 55", ["3662"] = "31 33 55", ["3663"] = "31 33 0", ["3664"] = "31 33 0", ["3665"] = "31 33 0", ["3666"] = "31 33 0", ["3667"] = "31 33 55", ["3668"] = "31 33 55", ["3671"] = "31 55 55", ["3672"] = "31 55 55", ["3673"] = "31 55 0", ["3674"] = "31 55 0", ["3675"] = "31 55 0", ["3676"] = "31 55 0", ["3677"] = "31 55 55", ["3678"] = "31 55 55", ["3681"] = "31 55 55", ["3682"] = "31 55 55", ["3683"] = "31 55 0", ["3684"] = "31 55 0", ["3685"] = "31 55 0", ["3686"] = "31 55 0", ["3687"] = "31 55 55", ["3688"] = "31 55 55", ["3711"] = "55 55 55", ["3712"] = "55 55 55", ["3713"] = "55 55 0", ["3714"] = "55 55 0", ["3715"] = "55 55 0", ["3716"] = "55 55 0", ["3717"] = "55 55 55", ["3718"] = "55 55 55", ["3721"] = "55 55 55", ["3722"] = "55 55 55", ["3723"] = "55 55 0", ["3724"] = "55 55 0", ["3725"] = "55 55 0", ["3726"] = "55 55 0", ["3727"] = "55 55 55", ["3728"] = "55 55 55", ["3731"] = "55 33 55", ["3732"] = "55 33 55", ["3733"] = "55 33 0", ["3734"] = "55 33 0", ["3735"] = "55 33 0", ["3736"] = "55 33 0", ["3737"] = "55 33 55", ["3738"] = "55 33 55", ["3741"] = "55 33 55", ["3742"] = "55 33 55", ["3743"] = "55 33 0", ["3744"] = "55 33 0", ["3745"] = "55 33 0", ["3746"] = "55 33 0", ["3747"] = "55 33 55", ["3748"] = "55 33 55", ["3751"] = "55 33 55", ["3752"] = "55 33 55", ["3753"] = "55 33 0", ["3754"] = "55 33 0", ["3755"] = "55 33 0", ["3756"] = "55 33 0", ["3757"] = "55 33 55", ["3758"] = "55 33 55", ["3761"] = "55 33 55", ["3762"] = "55 33 55", ["3763"] = "55 33 0", ["3764"] = "55 33 0", ["3765"] = "55 33 0", ["3766"] = "55 33 0", ["3767"] = "55 33 55", ["3768"] = "55 33 55", ["3771"] = "55 55 55", ["3772"] = "55 55 55", ["3773"] = "55 55 0", ["3774"] = "55 55 0", ["3775"] = "55 55 0", ["3776"] = "55 55 0", ["3777"] = "55 55 55", ["3778"] = "55 55 55", ["3781"] = "55 55 55", ["3782"] = "55 55 55", ["3783"] = "55 55 0", ["3784"] = "55 55 0", ["3785"] = "55 55 0", ["3786"] = "55 55 0", ["3787"] = "55 55 55", ["3788"] = "55 55 55", ["3811"] = "22 33 55", ["3812"] = "22 33 55", ["3813"] = "22 55 0", ["3814"] = "22 55 0", ["3815"] = "22 55 0", ["3816"] = "22 55 0", ["3817"] = "22 33 55", ["3818"] = "22 33 55", ["3821"] = "22 33 55", ["3822"] = "22 33 55", ["3823"] = "22 55 0", ["3824"] = "22 55 0", ["3825"] = "22 55 0", ["3826"] = "22 55 0", ["3827"] = "22 33 55", ["3828"] = "22 33 55", ["3831"] = "22 33 55", ["3832"] = "22 33 55", ["3833"] = "22 33 0", ["3834"] = "22 33 0", ["3835"] = "22 33 0", ["3836"] = "22 33 0", ["3837"] = "22 33 55", ["3838"] = "22 33 55", ["3841"] = "22 33 55", ["3842"] = "22 33 55", ["3843"] = "22 33 0", ["3844"] = "22 33 0", ["3845"] = "22 33 0", ["3846"] = "22 33 0", ["3847"] = "22 33 55", ["3848"] = "22 33 55", ["3851"] = "22 33 55", ["3852"] = "22 33 55", ["3853"] = "22 33 0", ["3854"] = "22 33 0", ["3855"] = "22 33 0", ["3856"] = "22 33 0", ["3857"] = "22 33 55", ["3858"] = "22 33 55", ["3861"] = "22 33 55", ["3862"] = "22 33 55", ["3863"] = "22 33 0", ["3864"] = "22 33 0", ["3865"] = "22 33 0", ["3866"] = "22 33 0", ["3867"] = "22 33 55", ["3868"] = "22 33 55", ["3871"] = "22 55 55", ["3872"] = "22 55 55", ["3873"] = "22 55 0", ["3874"] = "22 55 0", ["3875"] = "22 55 0", ["3876"] = "22 55 0", ["3877"] = "22 55 55", ["3878"] = "22 55 55", ["3881"] = "22 55 55", ["3882"] = "22 55 55", ["3883"] = "22 55 0", ["3884"] = "22 55 0", ["3885"] = "22 55 0", ["3886"] = "22 55 0", ["3887"] = "22 55 55", ["3888"] = "22 55 55", }, ['cs'] = { ["10"] = "", ["11"] = "53", ["13"] = "44", ["14"] = "213", ["15"] = "35", ["16"] = "13", ["17"] = "55", ["18"] = "23", ["211"] = "55 53", ["212"] = "55 53", ["213"] = "55 21", ["214"] = "55 21", ["215"] = "55 21", ["216"] = "55 21", ["217"] = "55 53", ["218"] = "55 53", ["221"] = "22 22", ["222"] = "22 22", ["223"] = "22 22", ["224"] = "22 22", ["225"] = "22 24", ["226"] = "22 24", ["227"] = "22 44", ["228"] = "22 44", ["231"] = "33 53", ["232"] = "33 53", ["233"] = "35 21", ["234"] = "35 21", ["235"] = "44 44", ["236"] = "44 44", ["237"] = "33 53", ["238"] = "33 53", ["241"] = "22 53", ["242"] = "22 53", ["243"] = "13 21", ["244"] = "13 21", ["245"] = "22 34", ["246"] = "22 34", ["247"] = "22 53", ["248"] = "22 53", ["251"] = "33 53", ["252"] = "33 53", ["253"] = "44 44", ["254"] = "44 44", ["255"] = "55 21", ["256"] = "55 21", ["257"] = "33 53", ["258"] = "33 53", ["261"] = "22 53", ["262"] = "22 53", ["263"] = "13 21", ["264"] = "13 21", ["265"] = "22 34", ["266"] = "22 34", ["267"] = "22 53", ["268"] = "22 53", ["271"] = "33 53", ["272"] = "33 53", ["273"] = "44 44", ["274"] = "44 44", ["275"] = "33 34", ["276"] = "33 34", ["277"] = "33 53", ["278"] = "33 53", ["281"] = "22 34", ["282"] = "22 34", ["283"] = "22 34", ["284"] = "22 34", ["285"] = "22 34", ["286"] = "22 34", ["287"] = "22 34", ["288"] = "22 34", ["311"] = "55 55 53", ["312"] = "55 55 53", ["313"] = "55 55 21", ["314"] = "55 55 21", ["315"] = "55 33 21", ["316"] = "55 33 21", ["317"] = "55 55 53", ["318"] = "55 55 53", ["321"] = "22 22 22", ["322"] = "22 22 22", ["323"] = "22 22 22", ["324"] = "22 22 22", ["325"] = "22 22 22", ["326"] = "22 22 22", ["327"] = "22 22 22", ["328"] = "22 22 22", ["331"] = "33 55 53", ["332"] = "33 55 53", ["333"] = "35 33 21", ["334"] = "44 44 44", ["335"] = "33 55 21", ["336"] = "33 55 21", ["337"] = "33 55 53", ["338"] = "33 55 53", ["341"] = "22 55 53", ["342"] = "22 55 53", ["343"] = "13 22 21", ["344"] = "13 22 21", ["345"] = "22 55 21", ["346"] = "22 55 21", ["347"] = "22 55 53", ["348"] = "22 55 53", ["351"] = "33 55 53", ["352"] = "33 55 53", ["353"] = "35 33 21", ["354"] = "44 44 44", ["355"] = "33 55 21", ["356"] = "33 55 21", ["357"] = "33 55 53", ["358"] = "33 55 53", ["361"] = "22 55 53", ["362"] = "22 55 53", ["363"] = "13 22 21", ["364"] = "13 22 21", ["365"] = "22 55 21", ["366"] = "22 55 21", ["367"] = "22 55 53", ["368"] = "22 55 53", ["371"] = "33 55 53", ["372"] = "33 55 53", ["373"] = "35 33 21", ["374"] = "44 44 44", ["375"] = "33 55 21", ["376"] = "33 55 21", ["377"] = "33 55 53", ["378"] = "33 55 53", ["381"] = "22 22 53", ["382"] = "22 22 53", ["383"] = "22 22 53", ["384"] = "22 22 53", ["385"] = "22 22 34", ["386"] = "22 22 34", ["387"] = "22 22 34", ["388"] = "22 22 34", }, ['sz'] = { ["1-"] = "33", ["2-"] = "33 33", ["3-"] = "33 33 33", ["4-"] = "33 33 33 33", ["10"] = "", ["11"] = "44", ["21"] = "44 0", ["31"] = "44 44 0", ["41"] = "44 44 44 0", ["12"] = "223", ["22"] = "22 33", ["32"] = "22 33 0", ["42"] = "22 33 44 0", ["13"] = "51", ["23"] = "52 11", ["33"] = "52 11 0", ["43"] = "52 11 11 0", ["15"] = "523", ["25"] = "52 33", ["35"] = "52 33 0", ["45"] = "52 33 44 0", ["16"] = "231", ["26"] = "23 11", ["36"] = "23 11 0", ["46"] = "23 11 11 0", ["17"] = "43", ["18"] = "23", ["271"] = "44 23", ["371"] = "44 23 0", ["471"] = "44 23 44 0", ["272"] = "44 23", ["372"] = "44 23 0", ["472"] = "44 23 44 0", ["273"] = "55 51", ["373"] = "55 51 0", ["473"] = "55 51 11 0", ["275"] = "55 523", ["375"] = "55 52 33", ["475"] = "55 52 22 33", ["276"] = "55 523", ["376"] = "55 52 33", ["476"] = "55 52 22 33", ["277"] = "44 44", ["377"] = "44 44 0", ["477"] = "44 44 44 22", ["278"] = "44 44", ["378"] = "44 44 0", ["478"] = "44 44 44 22", ["270"] = "44 0", ["281"] = "22 33", ["381"] = "22 33 0", ["481"] = "22 33 44 0", ["282"] = "22 33", ["382"] = "22 33 0", ["482"] = "22 33 44 0", ["283"] = "22 51", ["383"] = "22 51 0", ["483"] = "22 51 11 0", ["285"] = "22 523", ["385"] = "22 52 33", ["485"] = "22 52 22 33", ["286"] = "22 523", ["386"] = "22 52 33", ["486"] = "22 52 22 33", ["287"] = "33 44", ["387"] = "33 44 0", ["487"] = "33 44 22 0", ["288"] = "33 44", ["388"] = "33 44 0", ["488"] = "33 44 22 0", ["280"] = "33 0", --RPS ["1s"] = "44", ["2s"] = "223", ["3s"] = "51", ["5s"] = "51", ["6s"] = "231", ["7s"] = "43", ["8s"] = "23", ["multiple"] = "33" }, ['ks'] = { ["10"] = "", ["11"] = "55", ["12"] = "13", ["13"] = "52", ["15"] = "412", ["16"] = "213", ["17"] = "55", ["18"] = "23", ["211"] = "44 41", ["212"] = "44 41", ["213"] = "55 31", ["214"] = "55 31", ["215"] = "55 31", ["216"] = "55 31", ["217"] = "44 44", ["218"] = "44 44", --55 31 ["221"] = "23 41", ["222"] = "23 41", ["223"] = "23 41", ["224"] = "23 41", ["225"] = "23 41", ["226"] = "23 41", ["227"] = "23 44", ["228"] = "23 44", ["231"] = "52 33", ["232"] = "52 33", ["233"] = "52 33", ["234"] = "52 33", ["235"] = "53 41", ["236"] = "53 41", ["237"] = "52 33", ["238"] = "52 33", ["241"] = "22 44", ["242"] = "31 33", ["243"] = "31 33", ["244"] = "31 31", ["245"] = "31 31", ["246"] = "31 31", ["247"] = "31 31", ["248"] = "31 31", ["251"] = "52 33", ["252"] = "52 33", ["253"] = "22 44", ["254"] = "22 44", ["255"] = "22 44", ["256"] = "22 44", ["257"] = "23 44", ["258"] = "23 44", --22 44 ["261"] = "22 44", ["262"] = "22 44", ["263"] = "22 44", ["264"] = "22 44", ["265"] = "22 44", ["266"] = "22 44", ["267"] = "22 44", ["268"] = "22 44", ["271"] = "44 44", ["272"] = "44 44", ["273"] = "55 52", ["274"] = "55 52", ["275"] = "55 31", ["276"] = "55 31", ["277"] = "55 55", ["278"] = "55 55", --55 33 ["281"] = "22 31", ["282"] = "22 31", ["283"] = "22 23", ["284"] = "22 23", ["285"] = "22 31", ["286"] = "22 31", ["287"] = "22 33", ["288"] = "22 33", }, ['yx'] = { ["10"] = "", ["11"] = "55", ["12"] = "224", ["13"] = "52", ["14"] = "33", ["15"] = "412", ["16"] = "21", ["17"] = "55", ["18"] = "33", }, ['cz'] = { --for the underlying sequences that are listed with multiple chains, one is chosen for simplicity. The other sandhi chain can be accessed by having the chain tone be different from the underlying tone ["10"] = "", ["11"] = "55", ["12"] = "13", ["13"] = "45", ["15"] = "523", ["16"] = "24", ["17"] = "55", ["18"] = "23", ["3066"] = "45 55 0", ["211"] = "33 33", ["212"] = "33 33", ["213"] = "33 33", ["215"] = "55 0", ["216"] = "55 0", ["217"] = "55 55", ["218"] = "55 55", ["221"] = "11 33", ["222"] = "11 33", ["223"] = "11 33", ["225"] = "11 33", ["226"] = "11 33", ["227"] = "11 33", ["228"] = "11 33", ["231"] = "45 55", ["232"] = "45 55", ["233"] = "45 55", ["235"] = "45 55", ["236"] = "45 55", ["237"] = "45 55", ["238"] = "45 5", ["251"] = "55 23", ["252"] = "55 23", ["253"] = "55 23", ["255"] = "55 23", ["256"] = "55 23", ["257"] = "55 23", ["258"] = "55 23", ["261"] = "11 24", ["262"] = "11 24", ["263"] = "11 24", ["265"] = "23 11", ["266"] = "23 11", ["267"] = "11 24", ["268"] = "11 24", ["271"] = "55 55", ["272"] = "55 55", ["273"] = "55 55", ["275"] = "55 42", ["276"] = "55 42", ["277"] = "55 55", ["278"] = "55 55", --aspirated tone 7 is considered underlying tone 8 for simplicity ["281"] = "11 13", ["282"] = "11 13", ["283"] = "11 13", ["285"] = "22 42", ["286"] = "22 42", ["287"] = "22 55", ["288"] = "22 55", ["3111"] = "33 33 0", ["3112"] = "33 33 0", ["3113"] = "33 33 0", ["3115"] = "33 33 0", ["3116"] = "33 33 0", ["3117"] = "33 33 0", ["3118"] = "33 33 0", ["3121"] = "33 33 0", ["3122"] = "33 33 0", ["3123"] = "33 33 0", ["3125"] = "33 33 0", ["3126"] = "33 33 0", ["3127"] = "33 33 0", ["3128"] = "33 33 0", ["3131"] = "55 42 0", ["3132"] = "55 42 0", ["3133"] = "55 42 0", ["3135"] = "55 42 0", ["3136"] = "55 42 0", ["3137"] = "55 42 0", ["3138"] = "55 42 0", ["3151"] = "55 42 0", ["3152"] = "55 42 0", ["3153"] = "55 42 0", ["3155"] = "55 42 0", ["3156"] = "55 42 0", ["3157"] = "55 42 0", ["3158"] = "55 42 0", ["3161"] = "55 42 0", ["3162"] = "55 42 0", ["3163"] = "55 42 0", ["3165"] = "55 42 0", ["3166"] = "55 42 0", ["3167"] = "55 42 0", ["3168"] = "55 42 0", ["3171"] = "55 55 0", ["3172"] = "55 55 0", ["3173"] = "55 55 0", ["3175"] = "55 55 0", ["3176"] = "", ["3177"] = "55 55 55", ["3178"] = "55 55 55", ["3181"] = "55 55 0", ["3182"] = "55 55 0", ["3183"] = "55 55 0", ["3185"] = "55 55 0", ["3186"] = "55 55 0", ["3187"] = "55 55 55", ["3188"] = "55 55 55", ["3102"] = "33 33 0", ["3211"] = "11 33 0", ["3212"] = "11 33 0", ["3213"] = "11 33 0", ["3215"] = "11 33 0", ["3216"] = "11 33 0", ["3217"] = "11 33 55", ["3218"] = "11 33 55", ["3221"] = "11 33 0", ["3222"] = "11 33 0", ["3223"] = "11 33 0", ["3225"] = "11 33 0", ["3226"] = "11 33 0", ["3227"] = "11 33 55", ["3228"] = "11 33 55", ["3231"] = "11 33 0", ["3232"] = "11 33 0", ["3233"] = "11 33 0", ["3235"] = "11 33 0", ["3236"] = "11 33 0", ["3237"] = "11 33 55", ["3238"] = "11 33 55", ["3251"] = "11 33 0", ["3252"] = "11 33 0", ["3253"] = "11 33 0", ["3255"] = "11 33 0", ["3256"] = "11 33 0", ["3257"] = "11 33 55", ["3258"] = "11 33 55", ["3261"] = "11 33 0", ["3262"] = "11 33 0", ["3263"] = "11 33 0", ["3265"] = "11 33 0", ["3266"] = "11 33 0", ["3267"] = "11 33 55", ["3268"] = "11 33 55", ["3271"] = "11 33 0", ["3272"] = "11 33 0", ["3273"] = "11 33 0", ["3275"] = "11 33 0", ["3276"] = "11 33 0", ["3277"] = "11 33 55", ["3278"] = "11 33 55", ["3281"] = "11 33 0", ["3282"] = "11 33 0", ["3283"] = "11 33 0", ["3285"] = "11 33 0", ["3286"] = "11 33 0", ["3287"] = "11 33 55", ["3288"] = "11 33 55", ["3202"] = "11 33 0", ["3311"] = "45 55 0", ["3312"] = "45 55 0", ["3313"] = "45 55 0", ["3315"] = "45 55 0", ["3316"] = "45 55 0", ["3317"] = "45 55 55", ["3318"] = "45 55 55", ["3321"] = "45 55 0", ["3322"] = "45 55 0", ["3323"] = "45 55 0", ["3325"] = "45 55 0", ["3326"] = "45 55 0", ["3327"] = "45 55 55", ["3328"] = "45 55 55", ["3331"] = "45 55 0", ["3332"] = "45 55 0", ["3333"] = "45 55 0", ["3335"] = "45 55 0", ["3336"] = "45 55 0", ["3337"] = "", ["3338"] = "45 55 55", ["3351"] = "45 55 0", ["3352"] = "45 55 0", ["3353"] = "45 55 0", ["3355"] = "45 55 0", ["3356"] = "45 55 0", ["3357"] = "45 55 55", ["3358"] = "45 55 55", ["3361"] = "45 55 0", ["3362"] = "45 55 0", ["3363"] = "45 55 0", ["3365"] = "45 55 0", ["3366"] = "45 55 0", ["3367"] = "45 55 55", ["3368"] = "", ["3371"] = "45 55 0", ["3372"] = "45 55 0", ["3373"] = "45 55 0", ["3375"] = "45 55 0", ["3376"] = "45 55 0", ["3377"] = "45 55 55", ["3378"] = "45 55 55", ["3381"] = "45 55 0", ["3382"] = "45 55 0", ["3383"] = "45 55 0", ["3385"] = "45 55 0", ["3386"] = "45 55 0", ["3387"] = "45 55 0", ["3388"] = "45 55 55", ["3330"] = "45 55 0", ["3303"] = "45 55 0", ["3305"] = "45 55 0", ["3511"] = "52 22 33", ["3512"] = "52 22 33", ["3513"] = "52 22 33", ["3515"] = "52 22 33", ["3516"] = "52 22 33", ["3517"] = "52 22 33", ["3518"] = "52 22 33", ["3521"] = "52 22 33", ["3522"] = "52 22 33", ["3523"] = "52 22 33", ["3525"] = "52 22 33", ["3526"] = "52 22 33", ["3527"] = "52 22 33", ["3528"] = "52 22 33", ["3531"] = "52 22 33", ["3532"] = "52 22 33", ["3533"] = "52 22 33", ["3535"] = "52 22 33", ["3536"] = "52 22 33", ["3537"] = "52 22 33", ["3538"] = "52 22 33", ["3551"] = "52 22 33", ["3552"] = "52 22 33", ["3553"] = "52 22 33", ["3555"] = "52 22 33", ["3556"] = "52 22 33", ["3557"] = "52 22 33", ["3558"] = "45 55 55", ["3561"] = "", ["3562"] = "52 22 33", ["3563"] = "", ["3565"] = "45 55 0", ["3566"] = "52 22 33", ["3567"] = "", ["3568"] = "45 55 55", ["3571"] = "52 22 33", ["3572"] = "52 22 33", ["3573"] = "52 22 33", ["3575"] = "52 22 33", ["3576"] = "", ["3577"] = "52 22 33", ["3578"] = "52 22 33", ["3581"] = "52 22 33", ["3582"] = "52 22 33", ["3583"] = "52 22 33", ["3585"] = "", ["3586"] = "52 22 33", ["3587"] = "52 22 33", ["3588"] = "52 22 33", ["3500"] = "52 22 33", ["3507"] = "52 22 33", ["3611"] = "11 11 24", ["3612"] = "11 11 24", ["3613"] = "11 11 24", ["3615"] = "11 11 24", ["3616"] = "11 11 24", ["3617"] = "11 11 24", ["3618"] = "11 11 24", ["3621"] = "11 11 24", ["3622"] = "11 11 24", ["3623"] = "11 11 24", ["3625"] = "11 11 24", ["3626"] = "11 11 24", ["3627"] = "11 11 24", ["3628"] = "11 11 24", ["3631"] = "11 11 24", ["3632"] = "11 11 24", ["3633"] = "11 11 24", ["3635"] = "11 11 24", ["3636"] = "11 11 24", ["3637"] = "11 11 24", ["3638"] = "11 11 24", ["3651"] = "11 11 24", ["3652"] = "11 11 24", ["3653"] = "11 11 24", ["3655"] = "23 11 0", ["3656"] = "23 11 0", ["3657"] = "23 11 0", ["3658"] = "23 11 0", ["3661"] = "23 11 0", ["3662"] = "11 11 24", ["3663"] = "23 11 0", ["3665"] = "23 11 0", ["3666"] = "23 11 0", ["3667"] = "23 11 0", ["3668"] = "23 11 0", ["3671"] = "11 11 24", ["3672"] = "11 11 24", ["3673"] = "11 11 24", ["3675"] = "11 11 24", ["3676"] = "11 11 24", ["3677"] = "11 11 24", ["3678"] = "11 11 24", ["3681"] = "11 11 24", ["3682"] = "11 11 24", ["3683"] = "11 11 24", ["3685"] = "11 11 24", ["3686"] = "11 11 24", ["3687"] = "11 11 24", ["3688"] = "11 11 24", ["3600"] = "11 11 24", ["3711"] = "55 55 0", ["3712"] = "55 55 0", ["3713"] = "55 55 0", ["3715"] = "55 55 0", ["3716"] = "55 55 0", ["3717"] = "11 11 13", ["3718"] = "11 11 13", ["3721"] = "11 11 13", ["3722"] = "11 11 13", ["3723"] = "11 11 13", ["3725"] = "55 42 0", ["3726"] = "55 55 0", ["3727"] = "55 55 55", ["3728"] = "55 55 55", ["3731"] = "55 55 0", ["3732"] = "55 55 0", ["3733"] = "11 11 13", ["3735"] = "55 55 0", ["3736"] = "55 55 0", ["3737"] = "55 55 55", ["3738"] = "55 55 55", ["3751"] = "55 42 0", ["3752"] = "55 42 0", ["3753"] = "55 42 0", ["3755"] = "55 42 0", ["3756"] = "", ["3757"] = "55 42 0", ["3758"] = "", ["3761"] = "55 42 0", ["3762"] = "55 42 0", ["3763"] = "55 42 0", ["3765"] = "55 42 0", ["3766"] = "55 42 0", ["3767"] = "55 42 0", ["3768"] = "55 42 0", ["3771"] = "55 55 0", ["3772"] = "55 55 0", ["3773"] = "55 55 0", ["3775"] = "55 55 0", ["3776"] = "55 55 0", ["3777"] = "55 55 55", ["3778"] = "55 55 55", ["3781"] = "", ["3782"] = "55 55 0", ["3783"] = "55 55 0", ["3785"] = "55 55 0", ["3786"] = "55 55 0", ["3787"] = "55 55 55", ["3788"] = "55 55 55", ["3770"] = "55 55 0", ["3780"] = "55 55 0", ["3707"] = "55 55 55", ["3811"] = "11 11 13", ["3812"] = "11 11 13", ["3813"] = "11 11 13", ["3815"] = "11 11 13", ["3816"] = "11 11 13", ["3817"] = "11 11 13", ["3818"] = "", ["3821"] = "11 11 13", ["3822"] = "11 11 13", ["3823"] = "11 11 13", ["3825"] = "11 11 13", ["3826"] = "11 11 13", ["3827"] = "11 11 13", ["3828"] = "11 11 13", ["3831"] = "11 11 13", ["3832"] = "11 11 13", ["3833"] = "11 11 13", ["3835"] = "11 11 13", ["3836"] = "11 11 13", ["3837"] = "11 11 13", ["3838"] = "11 11 13", ["3851"] = "22 42 0", ["3852"] = "22 42 0", ["3853"] = "22 42 0", ["3855"] = "22 42 0", ["3856"] = "22 42 0", ["3857"] = "22 42 0", ["3858"] = "", ["3861"] = "22 42 0", ["3862"] = "22 42 0", ["3863"] = "", ["3865"] = "22 42 0", ["3866"] = "22 42 0", ["3867"] = "22 42 0", ["3868"] = "22 42 0", ["3871"] = "11 11 13", ["3872"] = "11 11 13", ["3873"] = "11 11 13", ["3875"] = "22 55 0", ["3876"] = "22 55 0", ["3877"] = "22 55 55", ["3878"] = "22 55 55", ["3881"] = "11 11 13", ["3882"] = "11 11 13", ["3883"] = "11 11 13", ["3885"] = "22 55 0", ["3886"] = "22 55 0", ["3887"] = "22 55 55", ["3888"] = "22 55 55", ["3850"] = "22 42 0", ["3802"] = "22 42 0", --RPS ["1s"] = "", ["2s"] = "", ["3s"] = "", ["5s"] = "", ["6s"] = "", ["7s"] = "", ["8s"] = "", ["multiple"] = "33" }, ['jj'] = { ["10"] = "", ["11"] = "44", ["12"] = "213", ["13"] = "35", ["15"] = "52", ["16"] = "31", ["17"] = "55", ["18"] = "23", ["211"] = "44 31", ["212"] = "44 31", ["213"] = "44 31", ["215"] = "44 31", ["216"] = "44 31", ["217"] = "44 31", ["218"] = "44 31", ["221"] = "23 21", ["222"] = "23 21", ["223"] = "23 21", ["225"] = "23 21", ["226"] = "23 21", ["227"] = "23 22", ["228"] = "23 22", ["231"] = "35 33", ["232"] = "35 33", ["233"] = "35 33", ["235"] = "35 33", ["236"] = "35 33", ["237"] = "35 33", ["238"] = "35 33", ["251"] = "52 21", ["252"] = "52 21", ["253"] = "52 21", ["255"] = "52 21", ["256"] = "52 21", ["257"] = "31 22", ["258"] = "31 22", ["261"] = "31 21", ["262"] = "31 21", ["263"] = "31 21", ["265"] = "31 21", ["266"] = "31 21", ["267"] = "31 22", ["268"] = "31 22", ["271"] = "55 31", ["272"] = "55 31", ["273"] = "55 31", ["275"] = "55 31", ["276"] = "55 31", ["277"] = "55 33", ["278"] = "55 33", ["281"] = "23 31", ["282"] = "23 31", ["283"] = "23 31", ["285"] = "23 31", ["286"] = "23 31", ["287"] = "23 33", ["288"] = "23 22", }, ['jx'] = { ["10"] = "", ["11"] = "53", ["12"] = "31", ["13A"] = "433", ["13B"] = "435", ["14"] = "213", ["15"] = "334", ["16"] = "113", ["17"] = "55", ["18"] = "22", ["211"] = "44 53", ["212"] = "44 31", ["213"] = "44 21", ["214"] = "44 21", ["215"] = "44 21", ["216"] = "44 21", ["217"] = "44 55", ["218"] = "44 55", ["221"] = "22 44", ["222"] = "22 22", ["223"] = "13 53", ["224"] = "13 31", ["225"] = "13 53", ["226"] = "13 31", ["227"] = "31 55", ["228"] = "31 55", ["23A1"] = "44 53", ["23A2"] = "44 31", ["23A3"] = "44 21", ["23A4"] = "44 21", ["23A5"] = "44 21", ["23A6"] = "44 21", ["23A7"] = "44 55", ["23A8"] = "44 55", ["23B1"] = "13 53", ["23B2"] = "13 31", ["23B3"] = "22 13", ["23B4"] = "22 13", ["23B5"] = "22 13", ["23B6"] = "22 13", ["23B7"] = "13 55", ["23B8"] = "13 55", ["241"] = "22 13", ["242"] = "22 31", ["243"] = "22 13", ["244"] = "22 13", ["245"] = "22 13", ["246"] = "22 13", ["247"] = "22 55", ["248"] = "22 55", ["251"] = "44 53", ["252"] = "44 31", ["253"] = "44 21", ["254"] = "44 21", ["255"] = "44 21", ["256"] = "44 21", ["257"] = "44 55", ["258"] = "44 55", ["261"] = "22 53", ["262"] = "22 13", ["263"] = "13 21", ["264"] = "13 21", ["265"] = "13 21", ["266"] = "13 21", ["267"] = "22 55", ["268"] = "22 55", ["271"] = "55 44", ["272"] = "55 44", ["273"] = "55 21", ["274"] = "55 21", ["275"] = "55 21", ["276"] = "55 21", ["277"] = "55 55", ["278"] = "55 55", ["281"] = "22 44", ["282"] = "22 13", ["283"] = "22 13", ["284"] = "22 13", ["285"] = "22 13", ["286"] = "22 13", ["287"] = "22 55", ["288"] = "22 55", ["3111"] = "44 44 31", ["3112"] = "44 44 31", ["3113"] = "44 44 31", ["3114"] = "44 44 31", ["3115"] = "44 44 31", ["3116"] = "44 44 31", ["3117"] = "44 44 31", ["3118"] = "44 44 31", ["3121"] = "44 44 31", ["3122"] = "44 44 31", ["3123"] = "44 44 31", ["3124"] = "44 44 31", ["3125"] = "44 44 31", ["3126"] = "44 44 31", ["3127"] = "44 44 31", ["3128"] = "44 44 31", ["3131"] = "55 33 21", ["3132"] = "55 33 21", ["3133"] = "55 33 21", ["3134"] = "55 33 21", ["3135"] = "55 33 21", ["3136"] = "55 33 21", ["3137"] = "55 33 21", ["3138"] = "55 33 21", ["3141"] = "55 33 21", ["3142"] = "55 33 21", ["3143"] = "55 33 21", ["3144"] = "55 33 21", ["3145"] = "55 33 21", ["3146"] = "55 33 21", ["3147"] = "55 33 21", ["3148"] = "55 33 21", ["3151"] = "55 33 21", ["3152"] = "55 33 21", ["3153"] = "55 33 21", ["3154"] = "55 33 21", ["3155"] = "55 33 21", ["3156"] = "55 33 21", ["3157"] = "55 33 21", ["3158"] = "55 33 21", ["3161"] = "55 33 21", ["3162"] = "55 33 21", ["3163"] = "55 33 21", ["3164"] = "55 33 21", ["3165"] = "55 33 21", ["3166"] = "55 33 21", ["3167"] = "55 33 21", ["3168"] = "55 33 21", ["3171"] = "44 44 31", ["3172"] = "44 44 31", ["3173"] = "44 44 31", ["3174"] = "44 44 31", ["3175"] = "44 44 31", ["3176"] = "44 44 31", ["3177"] = "44 44 31", ["3178"] = "44 44 31", ["3181"] = "44 44 31", ["3182"] = "44 44 31", ["3183"] = "44 44 31", ["3184"] = "44 44 31", ["3185"] = "44 44 31", ["3186"] = "44 44 31", ["3187"] = "44 44 31", ["3188"] = "44 44 31", ["3211"] = "22 44 51", ["3212"] = "22 44 51", ["3213"] = "22 44 51", ["3214"] = "22 44 51", ["3215"] = "22 44 51", ["3216"] = "22 44 51", ["3217"] = "22 44 55", ["3218"] = "22 44 55", ["3221"] = "22 44 51", ["3222"] = "22 44 51", ["3223"] = "22 44 51", ["3224"] = "22 44 51", ["3225"] = "22 44 51", ["3226"] = "22 44 51", ["3227"] = "22 44 55", ["3228"] = "22 44 55", ["3231"] = "24 44 31", ["3232"] = "24 44 31", ["3233"] = "24 44 31", ["3234"] = "24 44 31", ["3235"] = "24 44 31", ["3236"] = "24 44 31", ["3237"] = "24 44 31", ["3238"] = "24 44 31", ["3241"] = "24 44 31", ["3242"] = "24 44 31", ["3243"] = "24 44 31", ["3244"] = "24 44 31", ["3245"] = "24 44 31", ["3246"] = "24 44 31", ["3247"] = "24 44 31", ["3248"] = "24 44 31", ["3251"] = "24 44 31", ["3252"] = "24 44 31", ["3253"] = "24 44 31", ["3254"] = "24 44 31", ["3255"] = "24 44 31", ["3256"] = "24 44 31", ["3257"] = "24 44 31", ["3258"] = "24 44 31", ["3261"] = "24 44 31", ["3262"] = "24 44 31", ["3263"] = "24 44 31", ["3264"] = "24 44 31", ["3265"] = "24 44 31", ["3266"] = "24 44 31", ["3267"] = "24 44 31", ["3268"] = "24 44 31", ["3271"] = "22 44 51", ["3272"] = "22 44 51", ["3273"] = "22 55 31", ["3274"] = "22 55 31", ["3275"] = "22 55 31", ["3276"] = "22 55 31", ["3277"] = "22 44 55", ["3278"] = "22 44 55", ["3281"] = "22 44 51", ["3282"] = "22 44 51", ["3283"] = "22 55 31", ["3284"] = "22 55 31", ["3285"] = "22 55 31", ["3286"] = "22 55 31", ["3287"] = "22 44 55", ["3288"] = "22 44 55", ["33A11"] = "44 33 51", ["33A12"] = "44 33 51", ["33A13"] = "44 44 31", ["33A14"] = "44 44 31", ["33A15"] = "44 44 31", ["33A16"] = "44 44 31", ["33A17"] = "44 33 55", ["33A18"] = "44 33 55", ["33A21"] = "44 33 51", ["33A22"] = "44 33 51", ["33A23"] = "44 44 31", ["33A24"] = "44 44 31", ["33A25"] = "44 44 31", ["33A26"] = "44 44 31", ["33A27"] = "44 33 55", ["33A28"] = "44 33 55", ["33A31"] = "44 33 51", ["33A32"] = "44 33 51", ["33A33"] = "44 44 31", ["33A34"] = "44 44 31", ["33A35"] = "44 44 31", ["33A36"] = "44 33 51", ["33A37"] = "44 33 55", ["33A38"] = "44 33 55", ["33A41"] = "44 33 51", ["33A42"] = "44 33 51", ["33A43"] = "44 44 31", ["33A44"] = "44 44 31", ["33A45"] = "44 44 31", ["33A46"] = "44 33 51", ["33A47"] = "44 33 55", ["33A48"] = "44 33 55", ["33A51"] = "44 33 51", ["33A52"] = "44 33 51", ["33A53"] = "44 44 31", ["33A54"] = "44 44 31", ["33A55"] = "44 33 51", ["33A56"] = "44 33 51", ["33A57"] = "44 33 55", ["33A58"] = "44 33 55", ["33A61"] = "44 33 51", ["33A62"] = "44 33 51", ["33A63"] = "44 33 51", ["33A64"] = "44 33 51", ["33A65"] = "44 44 31", ["33A66"] = "44 44 31", ["33A67"] = "44 33 55", ["33A68"] = "44 33 55", ["33A71"] = "44 33 51", ["33A72"] = "44 33 51", ["33A73"] = "44 44 31", ["33A74"] = "44 44 31", ["33A75"] = "44 44 31", ["33A76"] = "44 44 31", ["33A77"] = "44 33 55", ["33A78"] = "44 33 55", ["33A81"] = "44 33 51", ["33A82"] = "44 33 51", ["33A83"] = "44 44 31", ["33A84"] = "44 44 31", ["33A85"] = "44 44 31", ["33A86"] = "44 44 31", ["33A87"] = "44 33 55", ["33A88"] = "44 33 55", ["33B11"] = "22 22 51", ["33B12"] = "22 22 51", ["33B13"] = "22 44 31", ["33B14"] = "22 44 31", ["33B15"] = "22 44 31", ["33B16"] = "22 44 31", ["33B17"] = "44 33 55", ["33B18"] = "44 33 55", ["33B21"] = "22 22 51", ["33B22"] = "22 22 51", ["33B23"] = "22 44 31", ["33B24"] = "22 44 31", ["33B25"] = "22 44 31", ["33B26"] = "22 44 31", ["33B27"] = "44 33 55", ["33B28"] = "44 33 55", ["33B31"] = "22 22 51", ["33B32"] = "22 22 51", ["33B33"] = "22 22 51", ["33B34"] = "22 22 51", ["33B35"] = "22 22 51", ["33B36"] = "22 22 51", ["33B37"] = "22 22 55", ["33B38"] = "22 22 55", ["33B41"] = "22 22 51", ["33B42"] = "22 22 51", ["33B43"] = "22 22 51", ["33B44"] = "22 22 51", ["33B45"] = "22 22 51", ["33B46"] = "22 22 51", ["33B47"] = "22 22 55", ["33B48"] = "22 22 55", ["33B51"] = "22 22 51", ["33B52"] = "22 22 51", ["33B53"] = "22 44 31", ["33B54"] = "22 44 31", ["33B55"] = "22 44 31", ["33B56"] = "22 44 31", ["33B57"] = "22 22 55", ["33B58"] = "22 22 55", ["33B61"] = "22 22 51", ["33B62"] = "22 22 51", ["33B63"] = "22 44 31", ["33B64"] = "22 44 31", ["33B65"] = "22 44 31", ["33B66"] = "22 44 31", ["33B67"] = "22 22 55", ["33B68"] = "22 22 55", ["33B71"] = "22 22 51", ["33B72"] = "22 22 51", ["33B73"] = "22 44 31", ["33B74"] = "22 44 31", ["33B75"] = "22 44 31", ["33B76"] = "22 44 31", ["33B77"] = "22 22 55", ["33B78"] = "22 22 55", ["33B81"] = "22 22 51", ["33B82"] = "22 22 51", ["33B83"] = "22 44 31", ["33B84"] = "22 44 31", ["33B85"] = "22 44 31", ["33B86"] = "22 44 31", ["33B87"] = "22 22 55", ["33B88"] = "22 22 55", ["3411"] = "22 22 55", ["3412"] = "22 22 55", ["3413"] = "22 55 31", ["3414"] = "22 55 31", ["3415"] = "22 55 31", ["3416"] = "22 55 31", ["3417"] = "22 22 55", ["3418"] = "22 22 55", ["3421"] = "22 22 55", ["3422"] = "22 22 55", ["3423"] = "22 55 31", ["3424"] = "22 55 31", ["3425"] = "22 55 31", ["3426"] = "22 55 31", ["3427"] = "22 22 55", ["3428"] = "22 22 55", ["3431"] = "22 22 55", ["3432"] = "22 22 55", ["3433"] = "22 22 55", ["3434"] = "22 22 55", ["3435"] = "22 22 55", ["3436"] = "22 22 55", ["3437"] = "22 22 55", ["3438"] = "22 22 55", ["3441"] = "22 55 51", ["3442"] = "22 55 51", ["3443"] = "22 22 55", ["3444"] = "22 22 55", ["3445"] = "22 22 55", ["3446"] = "22 22 55", ["3447"] = "22 22 55", ["3448"] = "22 22 55", ["3451"] = "22 55 51", ["3452"] = "22 55 51", ["3453"] = "22 22 55", ["3454"] = "22 22 55", ["3455"] = "22 22 55", ["3456"] = "22 22 55", ["3457"] = "22 22 55", ["3458"] = "22 22 55", ["3461"] = "22 55 51", ["3462"] = "22 55 51", ["3463"] = "22 22 55", ["3464"] = "22 22 55", ["3465"] = "22 22 55", ["3466"] = "22 22 55", ["3467"] = "22 22 55", ["3468"] = "22 22 55", ["3471"] = "22 22 55", ["3472"] = "22 22 55", ["3473"] = "22 55 31", ["3474"] = "22 55 31", ["3475"] = "22 55 31", ["3476"] = "22 55 31", ["3477"] = "22 22 55", ["3478"] = "22 22 55", ["3481"] = "22 22 55", ["3482"] = "22 22 55", ["3483"] = "22 55 31", ["3484"] = "22 55 31", ["3485"] = "22 55 31", ["3486"] = "22 55 31", ["3487"] = "22 22 55", ["3488"] = "22 22 55", ["3401"] = "44 44 31", ["3402"] = "44 44 31", ["3403"] = "44 44 31", ["3404"] = "44 44 31", ["3405"] = "44 44 31", ["3406"] = "44 44 31", ["3407"] = "44 44 31", ["3408"] = "44 44 31", ["3511"] = "33 44 51", ["3512"] = "33 44 51", ["3513"] = "33 55 31", ["3514"] = "33 55 31", ["3515"] = "33 55 31", ["3516"] = "33 55 31", ["3517"] = "33 44 55", ["3518"] = "33 44 55", ["3521"] = "33 44 51", ["3522"] = "33 44 51", ["3523"] = "33 55 31", ["3524"] = "33 55 31", ["3525"] = "33 55 31", ["3526"] = "33 55 31", ["3527"] = "33 44 55", ["3528"] = "33 44 55", ["3531"] = "35 33 31", ["3532"] = "35 33 31", ["3533"] = "35 33 31", ["3534"] = "35 33 31", ["3535"] = "35 33 31", ["3536"] = "35 33 31", ["3537"] = "35 33 31", ["3538"] = "35 33 31", ["3541"] = "35 33 31", ["3542"] = "35 33 31", ["3543"] = "33 44 51", ["3544"] = "33 44 51", ["3545"] = "33 44 51", ["3546"] = "33 44 51", ["3547"] = "35 33 31", ["3548"] = "35 33 31", ["3551"] = "35 33 31", ["3552"] = "35 33 31", ["3553"] = "35 33 31", ["3554"] = "35 33 31", ["3555"] = "35 33 31", ["3556"] = "35 33 31", ["3557"] = "35 33 31", ["3558"] = "35 33 31", ["3561"] = "35 33 31", ["3562"] = "35 33 31", ["3563"] = "35 33 31", ["3564"] = "35 33 31", ["3565"] = "35 33 31", ["3566"] = "35 33 31", ["3567"] = "33 55 31", ["3568"] = "33 55 31", ["3571"] = "33 44 51", ["3572"] = "33 44 51", ["3573"] = "33 55 31", ["3574"] = "33 55 31", ["3575"] = "33 55 31", ["3576"] = "33 55 31", ["3577"] = "33 44 55", ["3578"] = "33 44 55", ["3581"] = "33 44 51", ["3582"] = "33 44 51", ["3583"] = "33 55 31", ["3584"] = "33 55 31", ["3585"] = "33 55 31", ["3586"] = "33 55 31", ["3587"] = "33 44 55", ["3588"] = "33 44 55", ["3611"] = "22 44 51", ["3612"] = "22 44 51", ["3613"] = "22 55 31", ["3614"] = "22 55 31", ["3615"] = "22 55 31", ["3616"] = "22 55 31", ["3617"] = "22 44 55", ["3618"] = "22 44 55", ["3621"] = "22 44 51", ["3622"] = "22 33 44", ["3623"] = "22 55 31", ["3624"] = "22 55 31", ["3625"] = "22 55 31", ["3626"] = "22 55 31", ["3627"] = "22 44 55", ["3628"] = "22 44 55", ["3631"] = "22 44 51", ["3632"] = "24 33 31", ["3633"] = "24 33 31", ["3634"] = "24 33 31", ["3635"] = "22 22 24", ["3636"] = "24 33 31", ["3637"] = "24 33 31", ["3638"] = "24 33 31", ["3641"] = "22 55 31", ["3642"] = "22 55 31", ["3643"] = "24 33 31", ["3644"] = "24 33 31", ["3645"] = "24 33 31", ["3646"] = "24 33 31", ["3647"] = "24 33 31", ["3648"] = "24 33 31", ["3651"] = "22 22 44", ["3652"] = "24 33 31", ["3653"] = "24 33 31", ["3654"] = "24 33 31", ["3655"] = "24 33 31", ["3656"] = "24 33 31", ["3657"] = "24 33 31", ["3658"] = "24 33 31", ["3661"] = "22 55 31", ["3662"] = "22 55 31", ["3663"] = "24 33 31", ["3664"] = "24 33 31", ["3665"] = "24 33 31", ["3666"] = "24 33 31", ["3667"] = "22 55 31", ["3668"] = "22 55 31", ["3671"] = "22 44 51", ["3672"] = "22 44 51", ["3673"] = "22 55 31", ["3674"] = "22 55 31", ["3675"] = "22 55 31", ["3676"] = "22 55 31", ["3677"] = "22 44 55", ["3678"] = "22 44 55", ["3681"] = "22 44 51", ["3682"] = "22 44 51", ["3683"] = "22 55 31", ["3684"] = "22 55 31", ["3685"] = "22 55 31", ["3686"] = "22 55 31", ["3687"] = "22 44 55", ["3688"] = "22 44 55", ["3601"] = "33 44 51", ["3602"] = "33 44 51", ["3603"] = "33 55 31", ["3604"] = "33 55 31", ["3605"] = "35 33 31", ["3606"] = "35 33 31", ["3607"] = "33 44 55", ["3608"] = "33 44 55", ["3711"] = "33 44 51", ["3712"] = "33 44 51", ["3713"] = "33 44 51", ["3714"] = "33 44 51", ["3715"] = "33 44 51", ["3716"] = "33 44 51", ["3717"] = "33 44 55", ["3718"] = "33 44 55", ["3721"] = "33 44 51", ["3722"] = "33 44 51", ["3723"] = "33 44 51", ["3724"] = "33 44 51", ["3725"] = "33 44 51", ["3726"] = "33 44 51", ["3727"] = "33 44 55", ["3728"] = "33 44 55", ["3731"] = "53 33 31", ["3732"] = "53 33 31", ["3733"] = "53 33 31", ["3734"] = "53 33 31", ["3735"] = "53 33 31", ["3736"] = "53 33 31", ["3737"] = "53 33 31", ["3738"] = "53 33 31", ["3741"] = "53 33 31", ["3742"] = "53 33 31", ["3743"] = "53 33 31", ["3744"] = "53 33 31", ["3745"] = "53 33 31", ["3746"] = "53 33 31", ["3747"] = "53 33 31", ["3748"] = "53 33 31", ["3751"] = "53 33 31", ["3752"] = "53 33 31", ["3753"] = "53 33 31", ["3754"] = "53 33 31", ["3755"] = "53 33 31", ["3756"] = "53 33 31", ["3757"] = "53 33 31", ["3758"] = "53 33 31", ["3761"] = "53 33 31", ["3762"] = "53 33 31", ["3763"] = "53 33 31", ["3764"] = "53 33 31", ["3765"] = "53 33 31", ["3766"] = "53 33 31", ["3767"] = "53 33 31", ["3768"] = "53 33 31", ["3771"] = "33 44 51", ["3772"] = "33 44 51", ["3773"] = "33 44 51", ["3774"] = "33 44 51", ["3775"] = "33 44 51", ["3776"] = "33 44 51", ["3777"] = "33 44 55", ["3778"] = "33 44 55", ["3781"] = "33 44 51", ["3782"] = "33 44 51", ["3783"] = "33 44 51", ["3784"] = "33 44 51", ["3785"] = "33 44 51", ["3786"] = "33 44 51", ["3787"] = "33 44 55", ["3788"] = "33 44 55", ["3811"] = "22 44 51", ["3812"] = "22 44 51", ["3813"] = "22 44 51", ["3814"] = "22 44 51", ["3815"] = "22 44 51", ["3816"] = "22 44 51", ["3817"] = "22 44 55", ["3818"] = "22 44 55", ["3821"] = "22 44 51", ["3822"] = "22 44 51", ["3823"] = "22 44 51", ["3824"] = "22 44 51", ["3825"] = "22 44 51", ["3826"] = "22 44 51", ["3827"] = "22 44 55", ["3828"] = "22 44 55", ["3831"] = "11 22 44", ["3832"] = "11 22 44", ["3833"] = "11 22 44", ["3834"] = "11 22 44", ["3835"] = "11 22 44", ["3836"] = "11 22 44", ["3837"] = "11 22 44", ["3838"] = "11 22 44", ["3841"] = "11 22 44", ["3842"] = "11 22 44", ["3843"] = "11 22 44", ["3844"] = "11 22 44", ["3845"] = "11 22 44", ["3846"] = "11 22 44", ["3847"] = "11 22 44", ["3848"] = "11 22 44", ["3851"] = "11 22 44", ["3852"] = "11 22 44", ["3853"] = "11 22 44", ["3854"] = "11 22 44", ["3855"] = "11 22 44", ["3856"] = "11 22 44", ["3857"] = "11 22 44", ["3858"] = "11 22 44", ["3861"] = "11 22 44", ["3862"] = "11 22 44", ["3863"] = "11 22 44", ["3864"] = "11 22 44", ["3865"] = "11 22 44", ["3866"] = "11 22 44", ["3867"] = "11 22 44", ["3868"] = "11 22 44", ["3871"] = "22 44 51", ["3872"] = "22 44 51", ["3873"] = "22 44 51", ["3874"] = "22 44 51", ["3875"] = "22 44 51", ["3876"] = "22 44 51", ["3877"] = "22 44 55", ["3878"] = "22 44 55", ["3881"] = "22 44 51", ["3882"] = "22 44 51", ["3883"] = "22 44 51", ["3884"] = "22 44 51", ["3885"] = "22 44 51", ["3886"] = "22 44 51", ["3887"] = "22 44 55", ["3888"] = "22 44 55", }, ['tx'] = { ["10"] = "", ["11"] = "44", ["12"] = "22", ["13"] = "53", ["14"] = "42", ["15"] = "334", ["16"] = "113", ["17"] = "55", ["18"] = "22", ["211"] = "44 44", ["212"] = "44 22", ["213"] = "44 44", ["214"] = "44 22", ["215"] = "44 44", ["216"] = "44 22", ["217"] = "44 55", ["218"] = "44 22", ["221"] = "22 44", ["222"] = "22 22", ["223"] = "22 44", ["224"] = "22 22", ["225"] = "22 44", ["226"] = "22 22", ["227"] = "22 55", ["228"] = "22 22", ["231"] = "53 53", ["232"] = "53 42", ["233"] = "53 53", ["234"] = "53 42", ["235"] = "53 53", ["236"] = "53 42", ["237"] = "53 55", ["238"] = "53 22", ["241"] = "42 53", ["242"] = "42 42", ["243"] = "42 53", ["244"] = "42 42", ["245"] = "42 53", ["246"] = "42 42", ["247"] = "42 55", ["248"] = "42 22", ["251"] = "334 334", ["252"] = "334 113", ["253"] = "334 53", ["254"] = "334 42", ["255"] = "334 334", ["256"] = "334 113", ["257"] = "334 55", ["258"] = "334 22", ["261"] = "113 334", ["262"] = "113 113", ["263"] = "113 53", ["264"] = "113 42", ["265"] = "113 334", ["266"] = "113 113", ["267"] = "113 55", ["268"] = "113 22", ["271"] = "55 44", ["272"] = "55 22", ["273"] = "55 53", ["274"] = "55 42", ["275"] = "55 334", ["276"] = "55 113", ["277"] = "55 55", ["278"] = "55 22", ["281"] = "22 44", ["282"] = "22 22", ["283"] = "22 53", ["284"] = "22 42", ["285"] = "22 334", ["286"] = "22 113", ["287"] = "22 55", ["288"] = "22 22", ["3111"] = "44 44 44", ["3112"] = "44 44 22", ["3113"] = "44 44 44", ["3114"] = "44 44 22", ["3115"] = "44 44 44", ["3116"] = "44 44 22", ["3117"] = "44 44 55", ["3118"] = "44 44 22", ["3121"] = "44 22 44", ["3122"] = "44 22 22", ["3123"] = "44 22 44", ["3124"] = "44 22 22", ["3125"] = "44 22 44", ["3126"] = "44 22 22", ["3127"] = "44 22 55", ["3128"] = "44 22 22", ["3131"] = "44 44 44", ["3132"] = "44 44 22", ["3133"] = "44 44 44", ["3134"] = "44 44 22", ["3135"] = "44 44 44", ["3136"] = "44 44 22", ["3137"] = "44 44 55", ["3138"] = "44 44 22", ["3141"] = "44 22 44", ["3142"] = "44 22 22", ["3143"] = "44 22 44", ["3144"] = "44 22 22", ["3145"] = "44 22 44", ["3146"] = "44 22 22", ["3147"] = "44 22 55", ["3148"] = "44 22 22", ["3151"] = "44 44 44", ["3152"] = "44 44 22", ["3153"] = "44 44 44", ["3154"] = "44 44 22", ["3155"] = "44 44 44", ["3156"] = "44 44 22", ["3157"] = "44 44 55", ["3158"] = "44 44 22", ["3161"] = "44 22 44", ["3162"] = "44 22 22", ["3163"] = "44 22 44", ["3164"] = "44 22 22", ["3165"] = "44 22 44", ["3166"] = "44 22 22", ["3167"] = "44 22 55", ["3168"] = "44 22 22", ["3171"] = "44 55 44", ["3172"] = "44 55 22", ["3173"] = "44 55 44", ["3174"] = "44 55 22", ["3175"] = "44 55 44", ["3176"] = "44 55 22", ["3177"] = "44 55 55", ["3178"] = "44 55 22", ["3181"] = "44 22 44", ["3182"] = "44 22 22", ["3183"] = "44 22 44", ["3184"] = "44 22 22", ["3185"] = "44 22 44", ["3186"] = "44 22 22", ["3187"] = "44 22 55", ["3188"] = "44 22 22", ["3211"] = "22 44 44", ["3212"] = "22 44 22", ["3213"] = "22 44 44", ["3214"] = "22 44 22", ["3215"] = "22 44 44", ["3216"] = "22 44 22", ["3217"] = "22 44 55", ["3218"] = "22 44 22", ["3221"] = "22 22 44", ["3222"] = "22 22 22", ["3223"] = "22 22 44", ["3224"] = "22 22 22", ["3225"] = "22 22 44", ["3226"] = "22 22 22", ["3227"] = "22 22 55", ["3228"] = "22 22 22", ["3231"] = "22 44 44", ["3232"] = "22 44 22", ["3233"] = "22 44 44", ["3234"] = "22 44 22", ["3235"] = "22 44 44", ["3236"] = "22 44 22", ["3237"] = "22 44 55", ["3238"] = "22 44 22", ["3241"] = "22 22 44", ["3242"] = "22 22 22", ["3243"] = "22 22 44", ["3244"] = "22 22 22", ["3245"] = "22 22 44", ["3246"] = "22 22 22", ["3247"] = "22 22 55", ["3248"] = "22 22 22", ["3251"] = "22 44 44", ["3252"] = "22 44 22", ["3253"] = "22 44 44", ["3254"] = "22 44 22", ["3255"] = "22 44 44", ["3256"] = "22 44 22", ["3257"] = "22 44 55", ["3258"] = "22 44 22", ["3261"] = "22 22 44", ["3262"] = "22 22 22", ["3263"] = "22 22 44", ["3264"] = "22 22 22", ["3265"] = "22 22 44", ["3266"] = "22 22 22", ["3267"] = "22 22 55", ["3268"] = "22 22 22", ["3271"] = "22 55 44", ["3272"] = "22 55 22", ["3273"] = "22 55 44", ["3274"] = "22 55 22", ["3275"] = "22 55 44", ["3276"] = "22 55 22", ["3277"] = "22 55 55", ["3278"] = "22 55 22", ["3281"] = "22 22 44", ["3282"] = "22 22 22", ["3283"] = "22 22 44", ["3284"] = "22 22 22", ["3285"] = "22 22 44", ["3286"] = "22 22 22", ["3287"] = "22 22 55", ["3288"] = "22 22 22", ["3311"] = "53 53 53", ["3312"] = "53 53 42", ["3313"] = "53 53 53", ["3314"] = "53 53 42", ["3315"] = "53 53 53", ["3316"] = "53 53 42", ["3317"] = "53 53 55", ["3318"] = "53 53 22", ["3321"] = "53 42 53", ["3322"] = "53 42 42", ["3323"] = "53 42 53", ["3324"] = "53 42 42", ["3325"] = "53 42 53", ["3326"] = "53 42 42", ["3327"] = "53 42 55", ["3328"] = "53 42 22", ["3331"] = "53 53 53", ["3332"] = "53 53 42", ["3333"] = "53 53 53", ["3334"] = "53 53 42", ["3335"] = "53 53 53", ["3336"] = "53 53 42", ["3337"] = "53 53 55", ["3338"] = "53 53 22", ["3341"] = "53 42 53", ["3342"] = "53 42 42", ["3343"] = "53 42 53", ["3344"] = "53 42 42", ["3345"] = "53 42 53", ["3346"] = "53 42 42", ["3347"] = "53 42 55", ["3348"] = "53 42 22", ["3351"] = "53 53 53", ["3352"] = "53 53 42", ["3353"] = "53 53 53", ["3354"] = "53 53 42", ["3355"] = "53 53 53", ["3356"] = "53 53 42", ["3357"] = "53 53 55", ["3358"] = "53 53 22", ["3361"] = "53 42 53", ["3362"] = "53 42 42", ["3363"] = "53 42 53", ["3364"] = "53 42 42", ["3365"] = "53 42 53", ["3366"] = "53 42 42", ["3367"] = "53 42 55", ["3368"] = "53 42 22", ["3371"] = "53 55 53", ["3372"] = "53 55 42", ["3373"] = "53 55 53", ["3374"] = "53 55 42", ["3375"] = "53 55 53", ["3376"] = "53 55 42", ["3377"] = "53 55 55", ["3378"] = "53 55 22", ["3381"] = "53 22 53", ["3382"] = "53 22 42", ["3383"] = "53 22 53", ["3384"] = "53 22 42", ["3385"] = "53 22 53", ["3386"] = "53 22 42", ["3387"] = "53 22 55", ["3388"] = "53 22 22", ["3411"] = "42 53 53", ["3412"] = "42 53 42", ["3413"] = "42 53 53", ["3414"] = "42 53 42", ["3415"] = "42 53 53", ["3416"] = "42 53 42", ["3417"] = "42 53 55", ["3418"] = "42 53 22", ["3421"] = "42 42 53", ["3422"] = "42 42 42", ["3423"] = "42 42 53", ["3424"] = "42 42 42", ["3425"] = "42 42 53", ["3426"] = "42 42 42", ["3427"] = "42 42 55", ["3428"] = "42 42 22", ["3431"] = "42 53 53", ["3432"] = "42 53 42", ["3433"] = "42 53 53", ["3434"] = "42 53 42", ["3435"] = "42 53 53", ["3436"] = "42 53 42", ["3437"] = "42 53 55", ["3438"] = "42 53 22", ["3441"] = "42 42 53", ["3442"] = "42 42 42", ["3443"] = "42 42 53", ["3444"] = "42 42 42", ["3445"] = "42 42 53", ["3446"] = "42 42 42", ["3447"] = "42 42 55", ["3448"] = "42 42 22", ["3451"] = "42 53 53", ["3452"] = "42 53 42", ["3453"] = "42 53 53", ["3454"] = "42 53 42", ["3455"] = "42 53 53", ["3456"] = "42 53 42", ["3457"] = "42 53 55", ["3458"] = "42 53 22", ["3461"] = "42 42 53", ["3462"] = "42 42 42", ["3463"] = "42 42 53", ["3464"] = "42 42 42", ["3465"] = "42 42 53", ["3466"] = "42 42 42", ["3467"] = "42 42 55", ["3468"] = "42 42 22", ["3471"] = "42 55 53", ["3472"] = "42 55 42", ["3473"] = "42 55 53", ["3474"] = "42 55 42", ["3475"] = "42 55 53", ["3476"] = "42 55 42", ["3477"] = "42 55 55", ["3478"] = "42 55 22", ["3481"] = "42 22 53", ["3482"] = "42 22 42", ["3483"] = "42 22 53", ["3484"] = "42 22 42", ["3485"] = "42 22 53", ["3486"] = "42 22 42", ["3487"] = "42 22 55", ["3488"] = "42 22 22", ["3511"] = "334 53 53", ["3512"] = "334 53 42", ["3513"] = "334 53 53", ["3514"] = "334 53 42", ["3515"] = "334 53 53", ["3516"] = "334 53 42", ["3517"] = "334 53 55", ["3518"] = "334 53 22", ["3521"] = "334 42 53", ["3522"] = "334 42 42", ["3523"] = "334 42 53", ["3524"] = "334 42 42", ["3525"] = "334 42 53", ["3526"] = "334 42 42", ["3527"] = "334 42 55", ["3528"] = "334 42 22", ["3531"] = "334 53 53", ["3532"] = "334 53 42", ["3533"] = "334 53 53", ["3534"] = "334 53 42", ["3535"] = "334 53 53", ["3536"] = "334 53 42", ["3537"] = "334 53 55", ["3538"] = "334 53 22", ["3541"] = "334 42 53", ["3542"] = "334 42 42", ["3543"] = "334 42 53", ["3544"] = "334 42 42", ["3545"] = "334 42 53", ["3546"] = "334 42 42", ["3547"] = "334 42 55", ["3548"] = "334 42 22", ["3551"] = "334 334 44", ["3552"] = "334 334 22", ["3553"] = "334 334 53", ["3554"] = "334 334 42", ["3555"] = "334 334 334", ["3556"] = "334 334 113", ["3557"] = "334 334 55", ["3558"] = "334 334 22", ["3561"] = "334 113 44", ["3562"] = "334 113 22", ["3563"] = "334 113 53", ["3564"] = "334 113 42", ["3565"] = "334 113 334", ["3566"] = "334 113 113", ["3567"] = "334 113 55", ["3568"] = "334 113 22", ["3571"] = "334 55 44", ["3572"] = "334 55 22", ["3573"] = "334 55 44", ["3574"] = "334 55 22", ["3575"] = "334 55 44", ["3576"] = "334 55 22", ["3577"] = "334 55 55", ["3578"] = "334 55 22", ["3581"] = "334 22 44", ["3582"] = "334 22 22", ["3583"] = "334 22 44", ["3584"] = "334 22 22", ["3585"] = "334 22 44", ["3586"] = "334 22 22", ["3587"] = "334 22 55", ["3588"] = "334 22 22", ["3611"] = "113 53 53", ["3612"] = "113 53 42", ["3613"] = "113 53 53", ["3614"] = "113 53 42", ["3615"] = "113 53 53", ["3616"] = "113 53 42", ["3617"] = "113 53 55", ["3618"] = "113 53 22", ["3621"] = "113 42 53", ["3622"] = "113 42 42", ["3623"] = "113 42 53", ["3624"] = "113 42 42", ["3625"] = "113 42 53", ["3626"] = "113 42 42", ["3627"] = "113 42 55", ["3628"] = "113 42 22", ["3631"] = "113 53 53", ["3632"] = "113 53 42", ["3633"] = "113 53 53", ["3634"] = "113 53 42", ["3635"] = "113 53 53", ["3636"] = "113 53 42", ["3637"] = "113 53 55", ["3638"] = "113 53 22", ["3641"] = "113 42 53", ["3642"] = "113 42 42", ["3643"] = "113 42 53", ["3644"] = "113 42 42", ["3645"] = "113 42 53", ["3646"] = "113 42 42", ["3647"] = "113 42 55", ["3648"] = "113 42 22", ["3651"] = "113 334 44", ["3652"] = "113 334 22", ["3653"] = "113 334 53", ["3654"] = "113 334 42", ["3655"] = "113 334 334", ["3656"] = "113 334 113", ["3657"] = "113 334 55", ["3658"] = "113 334 22", ["3661"] = "113 113 44", ["3662"] = "113 113 22", ["3663"] = "113 113 53", ["3664"] = "113 113 42", ["3665"] = "113 113 334", ["3666"] = "113 113 113", ["3667"] = "113 113 55", ["3668"] = "113 113 22", ["3671"] = "113 55 44", ["3672"] = "113 55 22", ["3673"] = "113 55 44", ["3674"] = "113 55 22", ["3675"] = "113 55 44", ["3676"] = "113 55 22", ["3677"] = "113 55 55", ["3678"] = "113 55 22", ["3681"] = "113 22 44", ["3682"] = "113 22 22", ["3683"] = "113 22 44", ["3684"] = "113 22 22", ["3685"] = "113 22 44", ["3686"] = "113 22 22", ["3687"] = "113 22 55", ["3688"] = "113 22 22", ["3711"] = "55 44 44", ["3712"] = "55 44 22", ["3713"] = "55 44 44", ["3714"] = "55 44 22", ["3715"] = "55 44 44", ["3716"] = "55 44 22", ["3717"] = "55 44 55", ["3718"] = "55 44 22", ["3721"] = "55 22 44", ["3722"] = "55 22 22", ["3723"] = "55 22 44", ["3724"] = "55 22 22", ["3725"] = "55 22 44", ["3726"] = "55 22 22", ["3727"] = "55 22 55", ["3728"] = "55 22 22", ["3731"] = "55 53 53", ["3732"] = "55 53 42", ["3733"] = "55 53 53", ["3734"] = "55 53 42", ["3735"] = "55 53 53", ["3736"] = "55 53 42", ["3737"] = "55 53 55", ["3738"] = "55 53 22", ["3741"] = "55 42 53", ["3742"] = "55 42 42", ["3743"] = "55 42 53", ["3744"] = "55 42 42", ["3745"] = "55 42 53", ["3746"] = "55 42 42", ["3747"] = "55 42 55", ["3748"] = "55 42 22", ["3751"] = "55 334 44", ["3752"] = "55 334 22", ["3753"] = "55 334 53", ["3754"] = "55 334 42", ["3755"] = "55 334 334", ["3756"] = "55 334 113", ["3757"] = "55 334 55", ["3758"] = "55 334 22", ["3761"] = "55 113 44", ["3762"] = "55 113 22", ["3763"] = "55 113 53", ["3764"] = "55 113 42", ["3765"] = "55 113 334", ["3766"] = "55 113 113", ["3767"] = "55 113 55", ["3768"] = "55 113 22", ["3771"] = "55 55 44", ["3772"] = "55 55 22", ["3773"] = "55 55 53", ["3774"] = "55 55 42", ["3775"] = "55 55 334", ["3776"] = "55 55 113", ["3777"] = "55 55 55", ["3778"] = "55 55 22", ["3781"] = "55 22 44", ["3782"] = "55 22 22", ["3783"] = "55 22 53", ["3784"] = "55 22 42", ["3785"] = "55 22 334", ["3786"] = "55 22 113", ["3787"] = "55 22 55", ["3788"] = "55 22 22", ["3811"] = "22 44 44", ["3812"] = "22 44 22", ["3813"] = "22 44 44", ["3814"] = "22 44 22", ["3815"] = "22 44 44", ["3816"] = "22 44 22", ["3817"] = "22 44 55", ["3818"] = "22 44 22", ["3821"] = "22 22 44", ["3822"] = "22 22 22", ["3823"] = "22 22 44", ["3824"] = "22 22 22", ["3825"] = "22 22 44", ["3826"] = "22 22 22", ["3827"] = "22 22 55", ["3828"] = "22 22 22", ["3831"] = "22 53 53", ["3832"] = "22 53 42", ["3833"] = "22 53 53", ["3834"] = "22 53 42", ["3835"] = "22 53 53", ["3836"] = "22 53 42", ["3837"] = "22 53 55", ["3838"] = "22 53 22", ["3841"] = "22 42 53", ["3842"] = "22 42 42", ["3843"] = "22 42 53", ["3844"] = "22 42 42", ["3845"] = "22 42 53", ["3846"] = "22 42 42", ["3847"] = "22 42 55", ["3848"] = "22 42 22", ["3851"] = "22 334 44", ["3852"] = "22 334 22", ["3853"] = "22 334 53", ["3854"] = "22 334 42", ["3855"] = "22 334 334", ["3856"] = "22 334 113", ["3857"] = "22 334 55", ["3858"] = "22 334 22", ["3861"] = "22 113 44", ["3862"] = "22 113 22", ["3863"] = "22 113 53", ["3864"] = "22 113 42", ["3865"] = "22 113 334", ["3866"] = "22 113 113", ["3867"] = "22 113 55", ["3868"] = "22 113 22", ["3871"] = "22 55 44", ["3872"] = "22 55 22", ["3873"] = "22 55 53", ["3874"] = "22 55 42", ["3875"] = "22 55 334", ["3876"] = "22 55 113", ["3877"] = "22 55 55", ["3878"] = "22 55 22", ["3881"] = "22 22 44", ["3882"] = "22 22 22", ["3883"] = "22 22 53", ["3884"] = "22 22 42", ["3885"] = "22 22 334", ["3886"] = "22 22 113", ["3887"] = "22 22 55", ["3888"] = "22 22 22", --!RPS! }, ['hn'] = { ["10"] = "", ["11"] = "55", ["12"] = "113", ["13"] = "53", ["14"] = "42", ["15"] = "445", ["16"] = "113", ["17"] = "55", ["18"] = "22", ["211"] = "55 55", ["212"] = "55 55", ["213"] = "55 55", ["214"] = "55 55", ["215"] = "55 55", ["216"] = "55 55", ["217"] = "55 11", ["218"] = "55 11", ["221"] = "11 55", ["222"] = "11 55", ["223"] = "11 55", ["224"] = "11 55", ["225"] = "11 55", ["226"] = "11 55", ["227"] = "11 55", ["228"] = "55 22", ["231"] = "55 55", ["232"] = "55 55", ["233"] = "55 21", ["234"] = "55 21", ["235"] = "55 21", ["236"] = "55 21", ["237"] = "55 55", ["238"] = "55 55", ["241"] = "55 55", ["242"] = "55 55", ["243"] = "55 21", ["244"] = "55 21", ["245"] = "55 21", ["246"] = "55 21", ["247"] = "55 55", ["248"] = "55 55", ["251"] = "33 53", ["252"] = "33 42", ["253"] = "33 53", ["254"] = "33 42", ["255"] = "33 53", ["256"] = "33 42", ["257"] = "33 55", ["258"] = "33 22", ["261"] = "11 53", ["262"] = "11 42", ["263"] = "11 53", ["264"] = "11 42", ["265"] = "11 53", ["266"] = "11 42", ["267"] = "11 55", ["268"] = "11 22", ["271"] = "55 55", ["272"] = "55 55", ["273"] = "55 21", ["274"] = "55 21", ["275"] = "55 21", ["276"] = "55 21", ["277"] = "55 55", ["278"] = "55 55", ["281"] = "11 55", ["282"] = "11 55", ["283"] = "22 21", ["284"] = "22 21", ["285"] = "22 21", ["286"] = "22 21", ["287"] = "11 55", ["288"] = "11 22", ["3111"] = "55 55 55", ["3112"] = "55 55 55", ["3113"] = "55 55 55", ["3114"] = "55 55 55", ["3115"] = "55 55 55", ["3116"] = "55 55 55", ["3117"] = "55 55 11", ["3118"] = "55 55 11", ["3121"] = "55 55 55", ["3122"] = "55 55 55", ["3123"] = "55 55 55", ["3124"] = "55 55 55", ["3125"] = "55 55 55", ["3126"] = "55 55 55", ["3127"] = "55 55 11", ["3128"] = "55 55 11", ["3131"] = "55 55 55", ["3132"] = "55 55 55", ["3133"] = "55 55 55", ["3134"] = "55 55 55", ["3135"] = "55 55 55", ["3136"] = "55 55 55", ["3137"] = "55 55 11", ["3138"] = "55 55 11", ["3141"] = "55 55 55", ["3142"] = "55 55 55", ["3143"] = "55 55 55", ["3144"] = "55 55 55", ["3145"] = "55 55 55", ["3146"] = "55 55 55", ["3147"] = "55 55 11", ["3148"] = "55 55 11", ["3151"] = "55 55 55", ["3152"] = "55 55 55", ["3153"] = "55 55 55", ["3154"] = "55 55 55", ["3155"] = "55 55 55", ["3156"] = "55 55 55", ["3157"] = "55 55 11", ["3158"] = "55 55 11", ["3161"] = "55 55 55", ["3162"] = "55 55 55", ["3163"] = "55 55 55", ["3164"] = "55 55 55", ["3165"] = "55 55 55", ["3166"] = "55 55 55", ["3167"] = "55 55 11", ["3168"] = "55 55 11", ["3171"] = "55 33 21", ["3172"] = "55 33 21", ["3173"] = "55 33 21", ["3174"] = "55 33 21", ["3175"] = "55 33 21", ["3176"] = "55 33 21", ["3177"] = "55 33 11", ["3178"] = "55 33 11", ["3181"] = "55 33 11", ["3182"] = "55 33 11", ["3183"] = "55 33 11", ["3184"] = "55 33 11", ["3185"] = "55 33 11", ["3186"] = "55 33 11", ["3187"] = "55 33 11", ["3188"] = "55 33 11", ["3211"] = "11 55 55", ["3212"] = "11 55 55", ["3213"] = "11 55 55", ["3214"] = "11 55 55", ["3215"] = "11 55 55", ["3216"] = "11 55 55", ["3217"] = "11 55 11", ["3218"] = "11 55 11", ["3221"] = "11 55 55", ["3222"] = "11 55 55", ["3223"] = "11 55 55", ["3224"] = "11 55 55", ["3225"] = "11 55 55", ["3226"] = "11 55 55", ["3227"] = "11 55 11", ["3228"] = "11 55 11", ["3231"] = "11 55 55", ["3232"] = "11 55 55", ["3233"] = "11 55 55", ["3234"] = "11 55 55", ["3235"] = "11 55 55", ["3236"] = "11 55 55", ["3237"] = "11 55 11", ["3238"] = "11 55 11", ["3241"] = "11 55 55", ["3242"] = "11 55 55", ["3243"] = "11 55 55", ["3244"] = "11 55 55", ["3245"] = "11 55 55", ["3246"] = "11 55 55", ["3247"] = "11 55 11", ["3248"] = "11 55 11", ["3251"] = "11 55 55", ["3252"] = "11 55 55", ["3253"] = "11 55 55", ["3254"] = "11 55 55", ["3255"] = "11 55 55", ["3256"] = "11 55 55", ["3257"] = "11 55 11", ["3258"] = "11 55 11", ["3261"] = "11 55 55", ["3262"] = "11 55 55", ["3263"] = "11 55 55", ["3264"] = "11 55 55", ["3265"] = "11 55 55", ["3266"] = "11 55 55", ["3267"] = "11 55 11", ["3268"] = "11 55 11", ["3271"] = "11 55 21", ["3272"] = "11 55 21", ["3273"] = "11 55 21", ["3274"] = "11 55 21", ["3275"] = "11 55 21", ["3276"] = "11 55 21", ["3277"] = "11 55 11", ["3278"] = "11 55 11", ["3281"] = "11 55 21", ["3282"] = "11 55 21", ["3283"] = "11 55 21", ["3284"] = "11 55 21", ["3285"] = "11 55 21", ["3286"] = "11 55 21", ["3287"] = "11 55 11", ["3288"] = "11 55 11", ["3311"] = "55 55 55", ["3312"] = "55 55 55", ["3313"] = "55 55 55", ["3314"] = "55 55 55", ["3315"] = "55 55 55", ["3316"] = "55 55 55", ["3317"] = "55 55 11", ["3318"] = "55 55 11", ["3321"] = "55 55 55", ["3322"] = "55 55 55", ["3323"] = "55 55 55", ["3324"] = "55 55 55", ["3325"] = "55 55 55", ["3326"] = "55 55 55", ["3327"] = "55 55 11", ["3328"] = "55 55 11", ["3331"] = "55 33 21", ["3332"] = "55 33 21", ["3333"] = "55 33 21", ["3334"] = "55 33 21", ["3335"] = "55 33 21", ["3336"] = "55 33 21", ["3337"] = "55 33 11", ["3338"] = "", ["3341"] = "55 33 21", ["3342"] = "55 33 21", ["3343"] = "55 33 21", ["3344"] = "55 33 21", ["3345"] = "55 33 21", ["3346"] = "55 33 21", ["3347"] = "55 33 11", ["3348"] = "55 33 11", ["3351"] = "55 33 21", ["3352"] = "55 33 21", ["3353"] = "55 33 21", ["3354"] = "55 33 21", ["3355"] = "55 33 21", ["3356"] = "55 33 21", ["3357"] = "55 33 11", ["3358"] = "55 33 11", ["3361"] = "55 33 21", ["3362"] = "55 33 21", ["3363"] = "55 33 21", ["3364"] = "55 33 21", ["3365"] = "55 33 21", ["3366"] = "55 33 21", ["3367"] = "55 33 11", ["3368"] = "55 33 11", ["3371"] = "55 55 21", ["3372"] = "55 55 21", ["3373"] = "55 55 21", ["3374"] = "55 55 21", ["3375"] = "55 55 21", ["3376"] = "55 55 21", ["3377"] = "55 55 11", ["3378"] = "55 55 11", ["3381"] = "55 55 21", ["3382"] = "55 55 21", ["3383"] = "55 55 21", ["3384"] = "55 55 21", ["3385"] = "55 55 21", ["3386"] = "55 55 21", ["3387"] = "55 55 11", ["3388"] = "55 55 11", ["3411"] = "55 55 55", ["3412"] = "55 55 55", ["3413"] = "55 55 55", ["3414"] = "55 55 55", ["3415"] = "55 55 55", ["3416"] = "55 55 55", ["3417"] = "55 55 11", ["3418"] = "55 55 11", ["3421"] = "55 55 55", ["3422"] = "55 55 55", ["3423"] = "55 55 55", ["3424"] = "55 55 55", ["3425"] = "55 55 55", ["3426"] = "55 55 55", ["3427"] = "55 55 11", ["3428"] = "55 55 11", ["3431"] = "55 33 21", ["3432"] = "55 33 21", ["3433"] = "55 33 21", ["3434"] = "55 33 21", ["3435"] = "55 33 21", ["3436"] = "55 33 21", ["3437"] = "55 33 11", ["3438"] = "55 33 11", ["3441"] = "55 33 21", ["3442"] = "55 33 21", ["3443"] = "55 33 21", ["3444"] = "55 33 21", ["3445"] = "55 33 21", ["3446"] = "55 33 21", ["3447"] = "55 33 11", ["3448"] = "55 33 11", ["3451"] = "55 33 21", ["3452"] = "55 33 21", ["3453"] = "55 33 21", ["3454"] = "55 33 21", ["3455"] = "55 33 21", ["3456"] = "55 33 21", ["3457"] = "55 33 11", ["3458"] = "55 33 11", ["3461"] = "55 33 21", ["3462"] = "55 33 21", ["3463"] = "55 33 21", ["3464"] = "55 33 21", ["3465"] = "55 33 21", ["3466"] = "55 33 21", ["3467"] = "55 33 11", ["3468"] = "55 33 11", ["3471"] = "55 55 21", ["3472"] = "55 55 21", ["3473"] = "55 55 21", ["3474"] = "55 55 21", ["3475"] = "55 55 21", ["3476"] = "55 55 21", ["3477"] = "55 55 11", ["3478"] = "55 55 11", ["3481"] = "55 55 21", ["3482"] = "55 55 21", ["3483"] = "55 55 21", ["3484"] = "55 55 21", ["3485"] = "55 55 21", ["3486"] = "55 55 21", ["3487"] = "55 55 11", ["3488"] = "55 55 11", ["3511"] = "33 55 21", ["3512"] = "33 55 21", ["3513"] = "33 55 21", ["3514"] = "33 55 21", ["3515"] = "33 55 21", ["3516"] = "33 55 21", ["3517"] = "33 55 11", ["3518"] = "33 55 11", ["3521"] = "33 55 21", ["3522"] = "33 55 21", ["3523"] = "33 55 21", ["3524"] = "33 55 21", ["3525"] = "33 55 21", ["3526"] = "33 55 21", ["3527"] = "33 55 11", ["3528"] = "33 55 11", ["3531"] = "33 55 21", ["3532"] = "33 55 21", ["3533"] = "33 55 21", ["3534"] = "33 55 21", ["3535"] = "33 55 21", ["3536"] = "33 55 21", ["3537"] = "33 55 11", ["3538"] = "33 55 11", ["3541"] = "33 55 21", ["3542"] = "33 55 21", ["3543"] = "33 55 21", ["3544"] = "33 55 21", ["3545"] = "33 55 21", ["3546"] = "33 55 21", ["3547"] = "33 55 11", ["3548"] = "33 55 11", ["3551"] = "33 55 21", ["3552"] = "33 55 21", ["3553"] = "33 55 21", ["3554"] = "33 55 21", ["3555"] = "33 55 21", ["3556"] = "33 55 21", ["3557"] = "33 55 11", ["3558"] = "33 55 11", ["3561"] = "33 55 21", ["3562"] = "33 55 21", ["3563"] = "33 55 21", ["3564"] = "33 55 21", ["3565"] = "33 55 21", ["3566"] = "33 55 21", ["3567"] = "33 55 11", ["3568"] = "33 55 11", ["3571"] = "33 55 21", ["3572"] = "33 55 21", ["3573"] = "33 55 21", ["3574"] = "33 55 21", ["3575"] = "33 55 21", ["3576"] = "33 55 21", ["3577"] = "33 55 11", ["3578"] = "33 55 11", ["3581"] = "33 55 21", ["3582"] = "33 55 21", ["3583"] = "33 55 21", ["3584"] = "33 55 21", ["3585"] = "33 55 21", ["3586"] = "33 55 21", ["3587"] = "33 55 11", ["3588"] = "33 55 11", ["3611"] = "11 55 21", ["3612"] = "11 55 21", ["3613"] = "11 55 21", ["3614"] = "11 55 21", ["3615"] = "11 55 21", ["3616"] = "11 55 21", ["3617"] = "11 55 11", ["3618"] = "11 55 11", ["3621"] = "11 55 21", ["3622"] = "11 55 21", ["3623"] = "11 55 21", ["3624"] = "11 55 21", ["3625"] = "11 55 21", ["3626"] = "11 55 21", ["3627"] = "11 55 11", ["3628"] = "11 55 11", ["3631"] = "11 55 21", ["3632"] = "11 55 21", ["3633"] = "11 55 21", ["3634"] = "11 55 21", ["3635"] = "11 55 21", ["3636"] = "11 55 21", ["3637"] = "11 55 11", ["3638"] = "11 55 11", ["3641"] = "11 55 21", ["3642"] = "11 55 21", ["3643"] = "11 55 21", ["3644"] = "11 55 21", ["3645"] = "11 55 21", ["3646"] = "11 55 21", ["3647"] = "11 55 11", ["3648"] = "11 55 11", ["3651"] = "11 55 21", ["3652"] = "11 55 21", ["3653"] = "11 55 21", ["3654"] = "11 55 21", ["3655"] = "11 55 21", ["3656"] = "11 55 21", ["3657"] = "11 55 11", ["3658"] = "11 55 11", ["3661"] = "11 55 21", ["3662"] = "11 55 21", ["3663"] = "11 55 21", ["3664"] = "11 55 21", ["3665"] = "11 55 21", ["3666"] = "11 55 21", ["3667"] = "11 55 11", ["3668"] = "11 55 11", ["3671"] = "11 55 21", ["3672"] = "11 55 21", ["3673"] = "11 55 21", ["3674"] = "11 55 21", ["3675"] = "11 55 21", ["3676"] = "11 55 21", ["3677"] = "11 55 11", ["3678"] = "11 55 11", ["3681"] = "11 55 21", ["3682"] = "11 55 21", ["3683"] = "11 55 21", ["3684"] = "11 55 21", ["3685"] = "11 55 21", ["3686"] = "11 55 21", ["3687"] = "11 55 11", ["3688"] = "11 55 11", ["3711"] = "55 55 55", ["3712"] = "55 55 55", ["3713"] = "55 55 55", ["3714"] = "55 55 55", ["3715"] = "55 55 55", ["3716"] = "55 55 55", ["3717"] = "55 55 11", ["3718"] = "55 55 11", ["3721"] = "55 55 55", ["3722"] = "55 55 55", ["3723"] = "55 55 55", ["3724"] = "55 55 55", ["3725"] = "55 55 55", ["3726"] = "55 55 55", ["3727"] = "55 55 11", ["3728"] = "55 55 11", ["3731"] = "55 33 21", ["3732"] = "55 33 21", ["3733"] = "55 33 21", ["3734"] = "55 33 21", ["3735"] = "55 33 21", ["3736"] = "55 33 21", ["3737"] = "55 33 11", ["3738"] = "55 33 11", ["3741"] = "55 33 21", ["3742"] = "55 33 21", ["3743"] = "55 33 21", ["3744"] = "55 33 21", ["3745"] = "55 33 21", ["3746"] = "55 33 21", ["3747"] = "55 33 11", ["3748"] = "55 33 11", ["3751"] = "55 33 21", ["3752"] = "55 33 21", ["3753"] = "55 33 21", ["3754"] = "55 33 21", ["3755"] = "55 33 21", ["3756"] = "55 33 21", ["3757"] = "55 33 11", ["3758"] = "55 33 11", ["3761"] = "55 33 21", ["3762"] = "55 33 21", ["3763"] = "55 33 21", ["3764"] = "55 33 21", ["3765"] = "55 33 21", ["3766"] = "55 33 21", ["3767"] = "55 33 11", ["3768"] = "55 33 11", ["3771"] = "55 55 55", ["3772"] = "55 55 55", ["3773"] = "55 55 55", ["3774"] = "55 55 55", ["3775"] = "55 55 55", ["3776"] = "55 55 55", ["3777"] = "55 55 55", ["3778"] = "55 55 55", ["3781"] = "55 55 55", ["3782"] = "55 55 55", ["3783"] = "55 55 55", ["3784"] = "55 55 55", ["3785"] = "55 55 55", ["3786"] = "55 55 55", ["3787"] = "55 55 55", ["3788"] = "55 55 55", --3811 to 3816, 3821 to 3826 extrapolated from linguistic trends & data in vocab section ["3811"] = "11 55 55", ["3812"] = "11 55 55", ["3813"] = "11 55 55", ["3814"] = "11 55 55", ["3815"] = "11 55 55", ["3816"] = "11 55 55", ["3817"] = "11 55 11", ["3818"] = "11 55 11", ["3821"] = "11 55 55", ["3822"] = "11 55 55", ["3823"] = "11 55 55", ["3824"] = "11 55 55", ["3825"] = "11 55 55", ["3826"] = "11 55 55", ["3827"] = "11 55 11", ["3828"] = "11 55 11", ["3831"] = "22 33 21", ["3832"] = "22 33 21", ["3833"] = "22 33 21", ["3834"] = "22 33 21", ["3835"] = "22 33 21", ["3836"] = "22 33 21", ["3837"] = "", ["3838"] = "22 33 11", ["3841"] = "22 33 21", ["3842"] = "22 33 21", ["3843"] = "22 33 21", ["3844"] = "22 33 21", ["3845"] = "22 33 21", ["3846"] = "22 33 21", ["3847"] = "22 33 11", ["3848"] = "22 33 11", ["3851"] = "22 33 21", ["3852"] = "22 33 21", ["3853"] = "22 33 21", ["3854"] = "22 33 21", ["3855"] = "22 33 21", ["3856"] = "22 33 21", ["3857"] = "22 33 11", ["3858"] = "22 33 11", ["3861"] = "22 33 21", ["3862"] = "22 33 21", ["3863"] = "22 33 21", ["3864"] = "22 33 21", ["3865"] = "22 33 21", ["3866"] = "22 33 21", ["3867"] = "22 33 11", ["3868"] = "22 33 11", ["3871"] = "11 55 55", ["3872"] = "11 55 55", ["3873"] = "11 55 55", ["3874"] = "11 55 55", ["3875"] = "11 55 55", ["3876"] = "11 55 55", ["3877"] = "11 55 55", ["3878"] = "11 55 55", ["3881"] = "11 55 55", ["3882"] = "11 55 55", ["3883"] = "11 55 55", ["3884"] = "11 55 55", ["3885"] = "11 55 55", ["3886"] = "11 55 55", ["3887"] = "11 55 55", ["3888"] = "11 55 55", --RPS ["1s"] = "33", ["2s"] = "11", ["3s"] = "33", ["4s"] = "33", ["5s"] = "33", ["6s"] = "11", ["7s"] = "33", ["8s"] = "11", --2 and 8 have sporadic 1 & 8 shifts ["multiple"] = "33" }, ['hy'] = { ["10"] = "", ["11"] = "51", ["12"] = "31", ["13"] = "343", ["14"] = "232", ["15"] = "35", ["16"] = "213", ["17"] = "55", ["18"] = "22", ["211"] = "35 51", ["212"] = "35 51", ["213"] = "53 31", ["214"] = "53 31", ["215"] = "53 31", ["216"] = "53 31", ["217"] = "35 55", ["218"] = "35 55", ["221"] = "13 51", ["222"] = "13 51", ["223"] = "13 51", ["224"] = "13 51", ["225"] = "13 51", ["226"] = "13 51", ["227"] = "13 33", ["228"] = "13 33", ["231"] = "343 51", ["232"] = "343 51", ["233"] = "343 35", ["234"] = "343 35", ["235"] = "343 35", ["236"] = "343 35", ["237"] = "343 55", ["238"] = "343 55", ["241"] = "232 51", ["242"] = "232 31", ["243"] = "232 35", ["244"] = "232 35", ["245"] = "232 35", ["246"] = "232 35", ["247"] = "232 55", ["248"] = "232 55", ["251"] = "35 31", ["252"] = "35 31", ["253"] = "35 31", ["254"] = "35 31", ["255"] = "35 31", ["256"] = "35 31", ["257"] = "35 33", ["258"] = "35 33", ["261"] = "35 31", ["262"] = "35 31", ["263"] = "35 31", ["264"] = "35 31", ["265"] = "35 31", ["266"] = "35 31", ["267"] = "213 55", ["268"] = "213 55", ["271"] = "55 51", ["272"] = "55 51", ["273"] = "55 35", ["274"] = "55 35", ["275"] = "55 35", ["276"] = "55 35", ["277"] = "55 55", ["278"] = "55 55", ["281"] = "22 51", ["282"] = "22 51", ["283"] = "22 35", ["284"] = "22 35", ["285"] = "22 35", ["286"] = "22 35", ["287"] = "22 55", ["288"] = "22 55", --based on the source, i think this is what they mean ["311"] = "35 55 31", ["312"] = "35 55 31", ["313"] = "53 55 31", ["314"] = "53 55 31", ["315"] = "35 55 31", ["316"] = "35 55 31", ["317"] = "35 55 31", ["318"] = "35 55 31", ["321"] = "31 55 31", ["322"] = "31 55 31", ["323"] = "31 55 31", ["324"] = "31 55 31", ["325"] = "31 55 31", ["326"] = "31 55 31", ["327"] = "31 55 31", ["328"] = "31 55 31", ["331"] = "34 53 31", ["332"] = "34 44 31", ["333"] = "34 44 31", ["334"] = "34 44 31", ["335"] = "34 44 31", ["336"] = "34 44 31", ["337"] = "34 44 31", ["338"] = "34 44 31", ["341"] = "23 53 31", ["342"] = "23 53 31", ["343"] = "23 44 31", ["344"] = "23 44 31", ["345"] = "23 44 31", ["346"] = "23 44 31", ["347"] = "23 44 31", ["348"] = "23 44 31", ["351"] = "35 55 31", ["352"] = "35 55 31", ["353"] = "35 55 31", ["354"] = "35 55 31", ["355"] = "35 55 31", ["356"] = "35 55 31", ["357"] = "35 55 31", ["358"] = "25 55 31", ["361"] = "13 44 31", ["362"] = "13 44 31", ["363"] = "13 44 31", ["364"] = "13 44 31", ["365"] = "13 44 31", ["366"] = "13 44 31", ["367"] = "13 44 31", ["368"] = "13 44 31", ["371"] = "55 55 51", ["372"] = "55 55 51", ["373"] = "55 55 31", ["374"] = "55 55 31", ["375"] = "55 55 31", ["376"] = "55 55 31", ["377"] = "55 55 31", ["378"] = "55 55 31", ["381"] = "22 55 51", ["382"] = "22 55 51", ["383"] = "22 55 51", ["384"] = "22 55 51", ["385"] = "22 55 51", ["386"] = "22 55 51", ["387"] = "22 55 51", ["388"] = "22 55 53", --!RPS! }, ['dq'] = { ["11"] = "44", ["12"] = "213", ["13"] = "53", ["14"] = "31", ["15"] = "435", ["16"] = "224", ["17"] = "55", ["18"] = "33", }, ['hz'] = { ["10"] = "", ["11"] = "334", ["21"] = "33 34", ["31"] = "33 34 52", ["41"] = "33 34 55 21", ["51"] = "33 34 55 22 21", ["213"] = "33 53", ["313"] = "33 55 21", ["413"] = "33 55 22 21", ["217"] = "33 55", ["317"] = "33 34 55", ["12"] = "23", ["22"] = "22 34", ["32"] = "22 34 53", ["42"] = "22 34 55 21", ["223"] = "22 53", ["323"] = "22 55 21", ["423"] = "22 55 22 21", ["13"] = "53", ["23"] = "55 21", ["33"] = "55 22 21", ["43"] = "55 22 22 21", ["53"] = "55 22 22 22 21", ["15"] = "45", ["25"] = "34 53", ["35"] = "34 55 21", ["45"] = "34 55 22 21", ["16"] = "113", ["26"] = "11 53", ["36"] = "11 55 21", ["46"] = "11 55 22 21", ["56"] = "11 55 22 22 21", ["17"] = "55", ["27"] = "33 34", ["37"] = "33 34 53", ["47"] = "33 34 55 21", ["273"] = "33 53", ["373"] = "33 55 21", ["473"] = "33 55 22 21", ["270"] = "55 21", ["370"] = "55 22 21", ["470"] = "55 22 22 21", ["377"] = "44 44 55", ["378"] = "44 44 55", ["18"] = "23", ["28"] = "22 34", ["38"] = "22 34 53", ["48"] = "22 34 55 21", ["58"] = "22 34 55 22 21", ["283"] = "22 53", ["383"] = "22 55 21", ["483"] = "22 55 22 21", ["380"] = "22 22 33", --RPS ["1s"] = "33", ["2s"] = "22", ["3s"] = "33", ["5s"] = "34", ["6s"] = "12", ["7s"] = "44", ["8s"] = "22", --3: /33~44/, 5: /33~34/, 6: /11~12~23/, 7: /3~4/, 8: /2~3/ ["multiple"] = "33" }, ['xs'] = { ["10"] = "", ["11"] = "44", ["12"] = "13", ["13"] = "34", ["14"] = "213", ["15"] = "53", ["16"] = "31", ["17"] = "55", ["18"] = "22", }, ['sx'] = { ["10"] = "", ["11"] = "52", ["12"] = "231", ["13"] = "335", ["14"] = "113", ["15"] = "33", ["16"] = "11", ["17"] = "45", ["18"] = "23", --regular disyllabic LPS ["211"] = "33 52", ["212"] = "33 52", ["213"] = "33 55", ["214"] = "33 55", ["215"] = "33 55", ["216"] = "33 55", ["217"] = "33 55", ["218"] = "33 55", ["221"] = "11 52", ["222"] = "11 52", ["223"] = "11 55", ["224"] = "11 55", ["225"] = "11 55", ["226"] = "11 55", ["227"] = "11 55", ["228"] = "11 55", ["231"] = "335 52", ["232"] = "335 52", ["233"] = "335 52", ["234"] = "335 52", ["235"] = "335 52", ["236"] = "335 52", ["237"] = "335 54", ["238"] = "335 54", ["241"] = "115 52", ["242"] = "115 52", ["243"] = "115 52", ["244"] = "115 52", ["245"] = "115 52", ["246"] = "115 52", ["247"] = "115 54", ["248"] = "115 54", ["251"] = "33 33", ["252"] = "33 33", ["253"] = "33 33", ["254"] = "33 33", ["255"] = "33 33", ["256"] = "33 33", ["257"] = "33 33", ["258"] = "33 33", ["261"] = "11 11", ["262"] = "11 11", ["263"] = "11 11", ["264"] = "11 11", ["265"] = "11 11", ["266"] = "11 11", ["267"] = "11 11", ["268"] = "11 11", ["271"] = "33 52", ["272"] = "33 52", ["273"] = "33 55", ["274"] = "33 55", ["275"] = "33 55", ["276"] = "33 55", ["277"] = "33 55", ["278"] = "33 55", ["281"] = "11 52", ["282"] = "11 52", ["283"] = "11 55", ["284"] = "11 55", ["285"] = "11 55", ["286"] = "11 55", ["287"] = "11 55", ["288"] = "11 55", --irregular LPS ["250"] = "33 55", ["260"] = "11 55", --regular trisyllabic LPS ["3111"] = "33 55 52", ["3112"] = "33 55 52", ["3113"] = "33 55 52", ["3114"] = "33 55 52", ["3115"] = "33 55 52", ["3116"] = "33 55 52", ["3117"] = "33 55 54", ["3118"] = "33 55 54", ["3121"] = "33 55 52", ["3122"] = "33 55 52", ["3123"] = "33 55 52", ["3124"] = "33 55 52", ["3125"] = "33 55 52", ["3126"] = "33 55 52", ["3127"] = "33 55 54", ["3128"] = "33 55 54", ["3131"] = "33 55 52", ["3132"] = "33 55 52", ["3133"] = "33 55 52", ["3134"] = "33 55 52", ["3135"] = "33 55 52", ["3136"] = "33 55 52", ["3137"] = "33 55 54", ["3138"] = "33 55 54", ["3141"] = "33 55 52", ["3142"] = "33 55 52", ["3143"] = "33 55 52", ["3144"] = "33 55 52", ["3145"] = "33 55 52", ["3146"] = "33 55 52", ["3147"] = "33 55 54", ["3148"] = "33 55 54", ["3151"] = "33 55 52", ["3152"] = "33 55 52", ["3153"] = "33 55 52", ["3154"] = "33 55 52", ["3155"] = "33 55 52", ["3156"] = "33 55 52", ["3157"] = "33 55 54", ["3158"] = "33 55 54", ["3161"] = "33 55 52", ["3162"] = "33 55 52", ["3163"] = "33 55 52", ["3164"] = "33 55 52", ["3165"] = "33 55 52", ["3166"] = "33 55 52", ["3167"] = "33 55 54", ["3168"] = "33 55 54", ["3171"] = "33 5 52", ["3172"] = "33 5 52", ["3173"] = "33 5 52", ["3174"] = "33 5 52", ["3175"] = "33 5 52", ["3176"] = "33 5 52", ["3177"] = "33 5 54", ["3178"] = "33 5 54", ["3181"] = "33 5 52", ["3182"] = "33 5 52", ["3183"] = "33 5 52", ["3184"] = "33 5 52", ["3185"] = "33 5 52", ["3186"] = "33 5 52", ["3187"] = "33 5 54", ["3188"] = "33 5 54", ["3211"] = "11 55 52", ["3212"] = "11 55 52", ["3213"] = "11 55 52", ["3214"] = "11 55 52", ["3215"] = "11 55 52", ["3216"] = "11 55 52", ["3217"] = "11 55 54", ["3218"] = "11 55 54", ["3221"] = "11 55 52", ["3222"] = "11 55 52", ["3223"] = "11 55 52", ["3224"] = "11 55 52", ["3225"] = "11 55 52", ["3226"] = "11 55 52", ["3227"] = "11 55 54", ["3228"] = "11 55 54", ["3231"] = "11 55 52", ["3232"] = "11 55 52", ["3233"] = "11 55 52", ["3234"] = "11 55 52", ["3235"] = "11 55 52", ["3236"] = "11 55 52", ["3237"] = "11 55 54", ["3238"] = "11 55 54", ["3241"] = "11 55 52", ["3242"] = "11 55 52", ["3243"] = "11 55 52", ["3244"] = "11 55 52", ["3245"] = "11 55 52", ["3246"] = "11 55 52", ["3247"] = "11 55 54", ["3248"] = "11 55 54", ["3251"] = "11 55 52", ["3252"] = "11 55 52", ["3253"] = "11 55 52", ["3254"] = "11 55 52", ["3255"] = "11 55 52", ["3256"] = "11 55 52", ["3257"] = "11 55 54", ["3258"] = "11 55 54", ["3261"] = "11 55 52", ["3262"] = "11 55 52", ["3263"] = "11 55 52", ["3264"] = "11 55 52", ["3265"] = "11 55 52", ["3266"] = "11 55 52", ["3267"] = "11 55 54", ["3268"] = "11 55 54", ["3271"] = "11 5 52", ["3272"] = "11 5 52", ["3273"] = "11 5 52", ["3274"] = "11 5 52", ["3275"] = "11 5 52", ["3276"] = "11 5 52", ["3277"] = "11 5 54", ["3278"] = "11 5 54", ["3281"] = "11 5 52", ["3282"] = "11 5 52", ["3283"] = "11 5 52", ["3284"] = "11 5 52", ["3285"] = "11 5 52", ["3286"] = "11 5 52", ["3287"] = "11 5 54", ["3288"] = "11 5 54", ["3311"] = "335 55 52", ["3312"] = "335 55 52", ["3313"] = "335 55 52", ["3314"] = "335 55 52", ["3315"] = "335 55 52", ["3316"] = "335 55 52", ["3317"] = "335 55 54", ["3318"] = "335 55 54", ["3321"] = "335 55 52", ["3322"] = "335 55 52", ["3323"] = "335 55 52", ["3324"] = "335 55 52", ["3325"] = "335 55 52", ["3326"] = "335 55 52", ["3327"] = "335 55 54", ["3328"] = "335 55 54", ["3331"] = "335 55 52", ["3332"] = "335 55 52", ["3333"] = "335 55 52", ["3334"] = "335 55 52", ["3335"] = "335 55 52", ["3336"] = "335 55 52", ["3337"] = "335 55 54", ["3338"] = "335 55 54", ["3341"] = "335 55 52", ["3342"] = "335 55 52", ["3343"] = "335 55 52", ["3344"] = "335 55 52", ["3345"] = "335 55 52", ["3346"] = "335 55 52", ["3347"] = "335 55 54", ["3348"] = "335 55 54", ["3351"] = "335 55 52", ["3352"] = "335 55 52", ["3353"] = "335 55 52", ["3354"] = "335 55 52", ["3355"] = "335 55 52", ["3356"] = "335 55 52", ["3357"] = "335 55 54", ["3358"] = "335 55 54", ["3361"] = "335 55 52", ["3362"] = "335 55 52", ["3363"] = "335 55 52", ["3364"] = "335 55 52", ["3365"] = "335 55 52", ["3366"] = "335 55 52", ["3367"] = "335 55 54", ["3368"] = "335 55 54", ["3371"] = "335 5 52", ["3372"] = "335 5 52", ["3373"] = "335 5 52", ["3374"] = "335 5 52", ["3375"] = "335 5 52", ["3376"] = "335 5 52", ["3377"] = "335 5 54", ["3378"] = "335 5 54", ["3381"] = "335 5 52", ["3382"] = "335 5 52", ["3383"] = "335 5 52", ["3384"] = "335 5 52", ["3385"] = "335 5 52", ["3386"] = "335 5 52", ["3387"] = "335 5 54", ["3388"] = "335 5 54", ["3411"] = "115 55 52", ["3412"] = "115 55 52", ["3413"] = "115 55 52", ["3414"] = "115 55 52", ["3415"] = "115 55 52", ["3416"] = "115 55 52", ["3417"] = "115 55 54", ["3418"] = "115 55 54", ["3421"] = "115 55 52", ["3422"] = "115 55 52", ["3423"] = "115 55 52", ["3424"] = "115 55 52", ["3425"] = "115 55 52", ["3426"] = "115 55 52", ["3427"] = "115 55 54", ["3428"] = "115 55 54", ["3431"] = "115 55 52", ["3432"] = "115 55 52", ["3433"] = "115 55 52", ["3434"] = "115 55 52", ["3435"] = "115 55 52", ["3436"] = "115 55 52", ["3437"] = "115 55 54", ["3438"] = "115 55 54", ["3441"] = "115 55 52", ["3442"] = "115 55 52", ["3443"] = "115 55 52", ["3444"] = "115 55 52", ["3445"] = "115 55 52", ["3446"] = "115 55 52", ["3447"] = "115 55 54", ["3448"] = "115 55 54", ["3451"] = "115 55 52", ["3452"] = "115 55 52", ["3453"] = "115 55 52", ["3454"] = "115 55 52", ["3455"] = "115 55 52", ["3456"] = "115 55 52", ["3457"] = "115 55 54", ["3458"] = "115 55 54", ["3461"] = "115 55 52", ["3462"] = "115 55 52", ["3463"] = "115 55 52", ["3464"] = "115 55 52", ["3465"] = "115 55 52", ["3466"] = "115 55 52", ["3467"] = "115 55 54", ["3468"] = "115 55 54", ["3471"] = "115 5 52", ["3472"] = "115 5 52", ["3473"] = "115 5 52", ["3474"] = "115 5 52", ["3475"] = "115 5 52", ["3476"] = "115 5 52", ["3477"] = "115 5 54", ["3478"] = "115 5 54", ["3481"] = "115 5 52", ["3482"] = "115 5 52", ["3483"] = "115 5 52", ["3484"] = "115 5 52", ["3485"] = "115 5 52", ["3486"] = "115 5 52", ["3487"] = "115 5 54", ["3488"] = "115 5 54", ["3511"] = "33 33 33", ["3512"] = "33 33 33", ["3513"] = "33 33 33", ["3514"] = "33 33 33", ["3515"] = "33 33 33", ["3516"] = "33 33 33", ["3517"] = "33 33 3", ["3518"] = "33 33 3", ["3521"] = "33 33 33", ["3522"] = "33 33 33", ["3523"] = "33 33 33", ["3524"] = "33 33 33", ["3525"] = "33 33 33", ["3526"] = "33 33 33", ["3527"] = "33 33 3", ["3528"] = "33 33 3", ["3531"] = "33 33 33", ["3532"] = "33 33 33", ["3533"] = "33 33 33", ["3534"] = "33 33 33", ["3535"] = "33 33 33", ["3536"] = "33 33 33", ["3537"] = "33 33 3", ["3538"] = "33 33 3", ["3541"] = "33 33 33", ["3542"] = "33 33 33", ["3543"] = "33 33 33", ["3544"] = "33 33 33", ["3545"] = "33 33 33", ["3546"] = "33 33 33", ["3547"] = "33 33 3", ["3548"] = "33 33 3", ["3551"] = "33 33 33", ["3552"] = "33 33 33", ["3553"] = "33 33 33", ["3554"] = "33 33 33", ["3555"] = "33 33 33", ["3556"] = "33 33 33", ["3557"] = "33 33 3", ["3558"] = "33 33 3", ["3561"] = "33 33 33", ["3562"] = "33 33 33", ["3563"] = "33 33 33", ["3564"] = "33 33 33", ["3565"] = "33 33 33", ["3566"] = "33 33 33", ["3567"] = "33 33 3", ["3568"] = "33 33 3", ["3571"] = "33 3 33", ["3572"] = "33 3 33", ["3573"] = "33 3 33", ["3574"] = "33 3 33", ["3575"] = "33 3 33", ["3576"] = "33 3 33", ["3577"] = "33 3 3", ["3578"] = "33 3 3", ["3581"] = "33 3 33", ["3582"] = "33 3 33", ["3583"] = "33 3 33", ["3584"] = "33 3 33", ["3585"] = "33 3 33", ["3586"] = "33 3 33", ["3587"] = "33 3 3", ["3588"] = "33 3 3", ["3611"] = "11 11 11", ["3612"] = "11 11 11", ["3613"] = "11 11 11", ["3614"] = "11 11 11", ["3615"] = "11 11 11", ["3616"] = "11 11 11", ["3617"] = "11 11 1", ["3618"] = "11 11 1", ["3621"] = "11 11 11", ["3622"] = "11 11 11", ["3623"] = "11 11 11", ["3624"] = "11 11 11", ["3625"] = "11 11 11", ["3626"] = "11 11 11", ["3627"] = "11 11 1", ["3628"] = "11 11 1", ["3631"] = "11 11 11", ["3632"] = "11 11 11", ["3633"] = "11 11 11", ["3634"] = "11 11 11", ["3635"] = "11 11 11", ["3636"] = "11 11 11", ["3637"] = "11 11 1", ["3638"] = "11 11 1", ["3641"] = "11 11 11", ["3642"] = "11 11 11", ["3643"] = "11 11 11", ["3644"] = "11 11 11", ["3645"] = "11 11 11", ["3646"] = "11 11 11", ["3647"] = "11 11 1", ["3648"] = "11 11 1", ["3651"] = "11 11 11", ["3652"] = "11 11 11", ["3653"] = "11 11 11", ["3654"] = "11 11 11", ["3655"] = "11 11 11", ["3656"] = "11 11 11", ["3657"] = "11 11 1", ["3658"] = "11 11 1", ["3661"] = "11 11 11", ["3662"] = "11 11 11", ["3663"] = "11 11 11", ["3664"] = "11 11 11", ["3665"] = "11 11 11", ["3666"] = "11 11 11", ["3667"] = "11 11 1", ["3668"] = "11 11 1", ["3671"] = "11 1 11", ["3672"] = "11 1 11", ["3673"] = "11 1 11", ["3674"] = "11 1 11", ["3675"] = "11 1 11", ["3676"] = "11 1 11", ["3677"] = "11 1 1", ["3678"] = "11 1 1", ["3681"] = "11 1 11", ["3682"] = "11 1 11", ["3683"] = "11 1 11", ["3684"] = "11 1 11", ["3685"] = "11 1 11", ["3686"] = "11 1 11", ["3687"] = "11 1 1", ["3688"] = "11 1 1", ["3711"] = "3 55 52", ["3712"] = "3 55 52", ["3713"] = "3 55 52", ["3714"] = "3 55 52", ["3715"] = "3 55 52", ["3716"] = "3 55 52", ["3717"] = "3 55 54", ["3718"] = "3 55 54", ["3721"] = "3 55 52", ["3722"] = "3 55 52", ["3723"] = "3 55 52", ["3724"] = "3 55 52", ["3725"] = "3 55 52", ["3726"] = "3 55 52", ["3727"] = "3 55 54", ["3728"] = "3 55 54", ["3731"] = "3 55 52", ["3732"] = "3 55 52", ["3733"] = "3 55 52", ["3734"] = "3 55 52", ["3735"] = "3 55 52", ["3736"] = "3 55 52", ["3737"] = "3 55 54", ["3738"] = "3 55 54", ["3741"] = "3 55 52", ["3742"] = "3 55 52", ["3743"] = "3 55 52", ["3744"] = "3 55 52", ["3745"] = "3 55 52", ["3746"] = "3 55 52", ["3747"] = "3 55 54", ["3748"] = "3 55 54", ["3751"] = "3 55 52", ["3752"] = "3 55 52", ["3753"] = "3 55 52", ["3754"] = "3 55 52", ["3755"] = "3 55 52", ["3756"] = "3 55 52", ["3757"] = "3 55 54", ["3758"] = "3 55 54", ["3761"] = "3 55 52", ["3762"] = "3 55 52", ["3763"] = "3 55 52", ["3764"] = "3 55 52", ["3765"] = "3 55 52", ["3766"] = "3 55 52", ["3767"] = "3 55 54", ["3768"] = "3 55 54", ["3771"] = "3 5 52", ["3772"] = "3 5 52", ["3773"] = "3 5 52", ["3774"] = "3 5 52", ["3775"] = "3 5 52", ["3776"] = "3 5 52", ["3777"] = "3 5 54", ["3778"] = "3 5 54", ["3781"] = "3 5 52", ["3782"] = "3 5 52", ["3783"] = "3 5 52", ["3784"] = "3 5 52", ["3785"] = "3 5 52", ["3786"] = "3 5 52", ["3787"] = "3 5 54", ["3788"] = "3 5 54", ["3811"] = "1 55 52", ["3812"] = "1 55 52", ["3813"] = "1 55 52", ["3814"] = "1 55 52", ["3815"] = "1 55 52", ["3816"] = "1 55 52", ["3817"] = "1 55 54", ["3818"] = "1 55 54", ["3821"] = "1 55 52", ["3822"] = "1 55 52", ["3823"] = "1 55 52", ["3824"] = "1 55 52", ["3825"] = "1 55 52", ["3826"] = "1 55 52", ["3827"] = "1 55 54", ["3828"] = "1 55 54", ["3831"] = "1 55 52", ["3832"] = "1 55 52", ["3833"] = "1 55 52", ["3834"] = "1 55 52", ["3835"] = "1 55 52", ["3836"] = "1 55 52", ["3837"] = "1 55 54", ["3838"] = "1 55 54", ["3841"] = "1 55 52", ["3842"] = "1 55 52", ["3843"] = "1 55 52", ["3844"] = "1 55 52", ["3845"] = "1 55 52", ["3846"] = "1 55 52", ["3847"] = "1 55 54", ["3848"] = "1 55 54", ["3851"] = "1 55 52", ["3852"] = "1 55 52", ["3853"] = "1 55 52", ["3854"] = "1 55 52", ["3855"] = "1 55 52", ["3856"] = "1 55 52", ["3857"] = "1 55 54", ["3858"] = "1 55 54", ["3861"] = "1 55 52", ["3862"] = "1 55 52", ["3863"] = "1 55 52", ["3864"] = "1 55 52", ["3865"] = "1 55 52", ["3866"] = "1 55 52", ["3867"] = "1 55 54", ["3868"] = "1 55 54", ["3871"] = "1 5 52", ["3872"] = "1 5 52", ["3873"] = "1 5 52", ["3874"] = "1 5 52", ["3875"] = "1 5 52", ["3876"] = "1 5 52", ["3877"] = "1 5 54", ["3878"] = "1 5 54", ["3881"] = "1 5 52", ["3882"] = "1 5 52", ["3883"] = "1 5 52", ["3884"] = "1 5 52", ["3885"] = "1 5 52", ["3886"] = "1 5 52", ["3887"] = "1 5 54", ["3888"] = "1 5 54", --LPS for numbers ["21N1"] = "33 52", ["21N2"] = "33 52", ["21N3"] = "33 55", ["21N4"] = "33 55", ["21N5"] = "33 55", ["21N6"] = "33 55", ["21N7"] = "33 55", ["21N8"] = "33 55", ["22N1"] = "11 52", ["22N2"] = "11 52", ["22N3"] = "11 55", ["22N4"] = "11 55", ["22N5"] = "11 55", ["22N6"] = "11 55", ["22N7"] = "11 55", ["22N8"] = "11 55", ["23N1"] = "55 52", ["23N2"] = "55 52", ["23N3"] = "55 55", ["23N4"] = "55 55", ["23N5"] = "55 55", ["23N6"] = "55 55", ["23N7"] = "55 55", ["23N8"] = "55 55", ["24N1"] = "115 52", ["24N2"] = "115 52", ["24N3"] = "115 55", ["24N4"] = "115 55", ["24N5"] = "115 55", ["24N6"] = "115 55", ["24N7"] = "115 55", ["24N8"] = "115 55", ["25N1"] = "55 52", ["25N2"] = "55 52", ["25N3"] = "55 55", ["25N4"] = "55 55", ["25N5"] = "55 55", ["25N6"] = "55 55", ["25N7"] = "55 55", ["25N8"] = "55 55", ["26N1"] = "11 52", ["26N2"] = "11 52", ["26N3"] = "11 55", ["26N4"] = "11 55", ["26N5"] = "11 55", ["26N6"] = "11 55", ["26N7"] = "11 55", ["26N8"] = "11 55", ["27N1"] = "33 52", ["27N2"] = "33 52", ["27N3"] = "33 55", ["27N4"] = "33 55", ["27N5"] = "33 55", ["27N6"] = "33 55", ["27N7"] = "33 55", ["27N8"] = "33 55", ["28N1"] = "11 52", ["28N2"] = "11 52", ["28N3"] = "11 55", ["28N4"] = "11 55", ["28N5"] = "11 55", ["28N6"] = "11 55", ["28N7"] = "11 55", ["28N8"] = "11 55", ["31N1"] = "33 52 55", ["31N2"] = "33 52 55", ["31N3"] = "33 55 55", ["31N4"] = "33 55 55", ["31N5"] = "33 55 55", ["31N6"] = "33 55 55", ["31N7"] = "33 55 55", ["31N8"] = "33 55 55", ["32N1"] = "11 52 55", ["32N2"] = "11 52 55", ["32N3"] = "11 55 55", ["32N4"] = "11 55 55", ["32N5"] = "11 55 55", ["32N6"] = "11 55 55", ["32N7"] = "11 55 55", ["32N8"] = "11 55 55", ["33N1"] = "55 52 55", ["33N2"] = "55 52 55", ["33N3"] = "55 55 55", ["33N4"] = "55 55 55", ["33N5"] = "55 55 55", ["33N6"] = "55 55 55", ["33N7"] = "55 55 55", ["33N8"] = "55 55 55", ["34N1"] = "115 52 55", ["34N2"] = "115 52 55", ["34N3"] = "115 55 55", ["34N4"] = "115 55 55", ["34N5"] = "115 55 55", ["34N6"] = "115 55 55", ["34N7"] = "115 55 55", ["34N8"] = "115 55 55", ["35N1"] = "55 52 55", ["35N2"] = "55 52 55", ["35N3"] = "55 55 55", ["35N4"] = "55 55 55", ["35N5"] = "55 55 55", ["35N6"] = "55 55 55", ["35N7"] = "55 55 55", ["35N8"] = "55 55 55", ["36N1"] = "11 52 55", ["36N2"] = "11 52 55", ["36N3"] = "11 55 55", ["36N4"] = "11 55 55", ["36N5"] = "11 55 55", ["36N6"] = "11 55 55", ["36N7"] = "11 55 55", ["36N8"] = "11 55 55", ["37N1"] = "33 52 55", ["37N2"] = "33 52 55", ["37N3"] = "33 55 55", ["37N4"] = "33 55 55", ["37N5"] = "33 55 55", ["37N6"] = "33 55 55", ["37N7"] = "33 55 55", ["37N8"] = "33 55 55", ["38N1"] = "11 52 55", ["38N2"] = "11 52 55", ["38N3"] = "11 55 55", ["38N4"] = "11 55 55", ["38N5"] = "11 55 55", ["38N6"] = "11 55 55", ["38N7"] = "11 55 55", ["38N8"] = "11 55 55", --LPS for classifiers ["211C"] = "33 55", ["212C"] = "33 55", ["213C"] = "33 55", ["214C"] = "33 55", ["215C"] = "33 55", ["216C"] = "33 55", ["217C"] = "33 55", ["218C"] = "33 55", ["221C"] = "11 55", ["222C"] = "11 55", ["223C"] = "11 55", ["224C"] = "11 55", ["225C"] = "11 55", ["226C"] = "11 55", ["227C"] = "11 55", ["228C"] = "11 55", ["231C"] = "55 55", ["232C"] = "55 55", ["233C"] = "55 55", ["234C"] = "55 55", ["235C"] = "55 55", ["236C"] = "55 55", ["237C"] = "55 55", ["238C"] = "55 55", ["241C"] = "115 55", ["242C"] = "115 55", ["243C"] = "115 55", ["244C"] = "115 55", ["245C"] = "115 55", ["246C"] = "115 55", ["247C"] = "115 55", ["248C"] = "115 55", ["251C"] = "55 55", ["255C"] = "55 55", ["253C"] = "55 55", ["254C"] = "55 55", ["255C"] = "55 55", ["256C"] = "55 55", ["257C"] = "55 55", ["258C"] = "55 55", ["261C"] = "11 55", ["262C"] = "11 55", ["263C"] = "11 55", ["264C"] = "11 55", ["265C"] = "11 55", ["266C"] = "11 55", ["267C"] = "11 55", ["268C"] = "11 55", ["271C"] = "33 55", ["272C"] = "33 55", ["273C"] = "33 55", ["274C"] = "33 55", ["275C"] = "33 55", ["276C"] = "33 55", ["277C"] = "33 55", ["278C"] = "33 55", ["281C"] = "11 55", ["282C"] = "11 55", ["283C"] = "11 55", ["284C"] = "11 55", ["285C"] = "11 55", ["286C"] = "11 55", ["287C"] = "11 55", ["288C"] = "11 55", ["311C"] = "33 55 55", ["312C"] = "33 55 55", ["313C"] = "33 55 55", ["314C"] = "33 55 55", ["315C"] = "33 55 55", ["316C"] = "33 55 55", ["317C"] = "33 55 55", ["318C"] = "33 55 55", ["321C"] = "11 55 55", ["322C"] = "11 55 55", ["323C"] = "11 55 55", ["324C"] = "11 55 55", ["325C"] = "11 55 55", ["326C"] = "11 55 55", ["327C"] = "11 55 55", ["328C"] = "11 55 55", ["331C"] = "55 55 55", ["332C"] = "55 55 55", ["333C"] = "55 55 55", ["334C"] = "55 55 55", ["335C"] = "55 55 55", ["336C"] = "55 55 55", ["337C"] = "55 55 55", ["338C"] = "55 55 55", ["341C"] = "115 55 55", ["342C"] = "115 55 55", ["343C"] = "115 55 55", ["344C"] = "115 55 55", ["345C"] = "115 55 55", ["346C"] = "115 55 55", ["347C"] = "115 55 55", ["348C"] = "115 55 55", ["351C"] = "55 55 55", ["355C"] = "55 55 55", ["353C"] = "55 55 55", ["354C"] = "55 55 55", ["355C"] = "55 55 55", ["356C"] = "55 55 55", ["357C"] = "55 55 55", ["358C"] = "55 55 55", ["361C"] = "11 55 55", ["362C"] = "11 55 55", ["363C"] = "11 55 55", ["364C"] = "11 55 55", ["365C"] = "11 55 55", ["366C"] = "11 55 55", ["367C"] = "11 55 55", ["368C"] = "11 55 55", ["371C"] = "33 55 55", ["372C"] = "33 55 55", ["373C"] = "33 55 55", ["374C"] = "33 55 55", ["375C"] = "33 55 55", ["376C"] = "33 55 55", ["377C"] = "33 55 55", ["378C"] = "33 55 55", ["381C"] = "11 55 55", ["382C"] = "11 55 55", ["383C"] = "11 55 55", ["384C"] = "11 55 55", ["385C"] = "11 55 55", ["386C"] = "11 55 55", ["387C"] = "11 55 55", ["388C"] = "11 55 55", --verb-SFP disyllabic ("單音詞和語助詞") ["211P"] = "33 52", ["212P"] = "55 52", ["214P"] = "55 52", ["215P"] = "33 55", ["216P"] = "33 55", ["217P"] = "55 54", ["218P"] = "55 54", ["221P"] = "11 52", ["222P"] = "115 52", ["224P"] = "115 52", ["225P"] = "11 55", ["226P"] = "11 55", ["227P"] = "115 54", ["228P"] = "115 54", ["231P"] = "335 52", ["232P"] = "33 52", ["234P"] = "33 55", ["235P"] = "335 52", ["236P"] = "335 52", ["237P"] = "33 55", ["238P"] = "33 55", ["241P"] = "115 52", ["242P"] = "11 52", ["244P"] = "11 55", ["245P"] = "115 52", ["246P"] = "115 52", ["247P"] = "11 55", ["248P"] = "11 55", ["251P"] = "33 55", ["252P"] = "33 33", ["254P"] = "33 33", ["255P"] = "33 33", ["256P"] = "33 33", ["257P"] = "33 33", ["258P"] = "33 33", ["261P"] = "11 55", ["262P"] = "11 11", ["264P"] = "11 11", ["265P"] = "11 11", ["266P"] = "11 11", ["267P"] = "11 11", ["268P"] = "11 11", ["271P"] = "33 55", ["272P"] = "33 52", ["274P"] = "33 55", ["275P"] = "33 55", ["276P"] = "33 55", ["277P"] = "33 55", ["278P"] = "33 55", ["281P"] = "11 55", ["282P"] = "11 52", ["284P"] = "11 55", ["285P"] = "11 55", ["286P"] = "11 55", ["287P"] = "11 55", ["288P"] = "11 55", --verb object RPS ("述賓") ["211O"] = "33 52", ["212O"] = "55 231", ["213O"] = "55 335", ["214O"] = "55 113", ["215O"] = "33 55", ["216O"] = "55 11", ["217O"] = "55 45", ["218O"] = "55 23", ["221O"] = "11 52", ["222O"] = "55 231", ["223O"] = "55 335", ["224O"] = "55 113", ["225O"] = "11 55", ["226O"] = "55 11", ["227O"] = "55 45", ["228O"] = "55 23", ["231O"] = "33 52", ["232O"] = "55 231", ["233O"] = "55 335", ["234O"] = "55 113", ["235O"] = "33 55", ["236O"] = "55 11", ["237O"] = "55 45", ["238O"] = "55 23", ["241O"] = "11 52", ["242O"] = "55 231", ["243O"] = "55 335", ["244O"] = "55 113", ["245O"] = "11 55", ["246O"] = "55 11", ["247O"] = "55 45", ["248O"] = "55 23", ["251O"] = "33 52", ["252O"] = "55 231", ["253O"] = "55 335", ["254O"] = "55 113", ["255O"] = "33 55", ["256O"] = "55 11", ["257O"] = "55 45", ["258O"] = "55 23", ["261O"] = "11 52", ["262O"] = "55 231", ["263O"] = "55 335", ["264O"] = "55 113", ["265O"] = "11 55", ["266O"] = "55 11", ["267O"] = "55 45", ["268O"] = "55 23", ["271O"] = "33 52", ["272O"] = "55 231", ["273O"] = "55 335", ["274O"] = "55 113", ["275O"] = "33 55", ["276O"] = "55 11", ["277O"] = "55 45", ["278O"] = "55 23", ["281O"] = "11 52", ["282O"] = "55 231", ["283O"] = "55 335", ["284O"] = "55 113", ["285O"] = "11 55", ["286O"] = "55 11", ["287O"] = "55 45", ["288O"] = "55 23", --noun verb/adjective RPS ("主謂") ["1A"] = "55", ["2A"] = "115", ["3A"] = "335", ["4A"] = "55", ["5A"] = "55", ["6A"] = "55", ["7A"] = "55", ["8A"] = "25" }, -- [""] = "", ['cx'] = { ["11"] = "324", ["12"] = "14", ["15"] = "43", ["17"] = "45", ["18"] = "31", ["211"] = "42 334", ["212"] = "42 324", ["213"] = "45 41", ["214"] = "45 41", ["215"] = "45 41", ["216"] = "45 51", ["217"] = "42 54", ["218"] = "42 34", ["221"] = "32 334", ["222"] = "32 224", ["223"] = "35 41", ["224"] = "35 51", ["225"] = "35 41", ["226"] = "35 51", ["227"] = "32 54", ["228"] = "32 34", ["231"] = "42 51", ["232"] = "42 451", ["233"] = "42 51", ["234"] = "42 451", ["235"] = "42 51", ["236"] = "42 451", ["237"] = "42 54", ["238"] = "42 34", ["241"] = "32 51", ["242"] = "32 451", ["243"] = "24 44", ["244"] = "24 44", ["245"] = "24 44", ["246"] = "24 44", ["247"] = "24 55", ["248"] = "24 55", ["251"] = "33 31", ["252"] = "33 31", ["253"] = "33 31", ["254"] = "33 31", ["255"] = "33 31", ["256"] = "33 31", ["257"] = "44 54", ["258"] = "33 343", ["261"] = "21 44", ["262"] = "21 344", ["263"] = "21 44", ["264"] = "21 344", ["265"] = "21 44", ["266"] = "21 344", ["267"] = "31 55", ["268"] = "32 55", ["271"] = "44 31", ["272"] = "44 31", ["273"] = "44 31", ["274"] = "44 31", ["275"] = "44 31", ["276"] = "44 31", ["277"] = "44 32", ["278"] = "44 32", ["281"] = "32 51", ["282"] = "32 451", ["283"] = "32 44", ["284"] = "32 344", ["285"] = "32 44", ["286"] = "32 344", ["287"] = "32 55", ["288"] = "32 35", }, ['nb'] = { ["10"] = "", ["11"] = "52", ["12"] = "313", ["13"] = "325", ["15"] = "55", ["16"] = "113", ["17"] = "55", ["18"] = "12", ["21"] = "33 51", ["22"] = "22 51", ["23"] = "33 35", ["24"] = "24 33", ["25"] = "55 33", ["26"] = "22 44", ["27"] = "55 33", ["28"] = "22 35", ["210"] = "33 44", ["240"] = "23 44", ["260"] = "22 35", ["270"] = "33 34", ["31"] = "33 55 31", ["32"] = "22 44 55", ["33"] = "33 44 55", ["34"] = "22 33 31", ["35"] = "55 33 31", ["36"] = "22 55 31", ["37"] = "55 33 31", ["38"] = "22 34 51", --RPS ["s"] = "21", ["multiple"] = "" }, ['zs'] = { ["10"] = "", ["11"] = "53", ["12"] = "22", ["13"] = "35", ["14"] = "24", ["15"] = "44", ["16"] = "13", ["17"] = "55", ["18"] = "12", } } return data l06gchtkicxduqzvgai790f0d8znmzb Modul:zh-cat/data 828 160448 628998 2024-11-06T18:25:56Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} export.conventional_names = { ["beginning"] = "Beginning Mandarin", ["elementary"] = "Elementary Mandarin", ["intermediate"] = "Intermediate Mandarin", ["advanced"] = "Advanced Mandarin", ["antonymous"] = "Chinese antonymous compounds", ["disyllabic"] = "Chinese disyllabic morphemes", ["variant"] = "Chinese variant forms", ["simplified"] = "Chinese simplified forms", ["obsolete"] = "Chinese obsolete terms", ["wasei kang...“ yozuvi orqali yangi sahifa yaratildi 628998 Scribunto text/plain local export = {} export.conventional_names = { ["beginning"] = "Beginning Mandarin", ["elementary"] = "Elementary Mandarin", ["intermediate"] = "Intermediate Mandarin", ["advanced"] = "Advanced Mandarin", ["antonymous"] = "Chinese antonymous compounds", ["disyllabic"] = "Chinese disyllabic morphemes", ["variant"] = "Chinese variant forms", ["simplified"] = "Chinese simplified forms", ["obsolete"] = "Chinese obsolete terms", ["wasei kango"] = "Wasei kango", ["twice-borrowed"] = "Chinese twice-borrowed terms", ["tcm"] = "zh:Traditional Chinese medicine", ["phrasebook"] = "Chinese phrasebook", ["short"] = "Chinese short forms", ["genericized trademark"] = "Chinese genericized trademarks", ["taboo"] = "Chinese terms arising from taboo avoidance", ["triplicated"] = "Triplicated Chinese characters", ["duplicated"] = "Duplicated Chinese characters", ["quadruplicated"] = "Quadruplicated Chinese characters", ["stratagem"] = "Thirty-Six Stratagems", ["juxtapositional idiom"] = "Chinese juxtapositional idioms", ["pseudo-idiom"] = "Chinese pseudo-idioms", ["contranym"] = "Chinese contranyms", ["xiehouyu"] = "Chinese xiehouyu", ["character shape word"] = "Chinese terms making reference to character shapes", ["mandarin informal terms"] = "Mandarin informal terms", ["reduplicative diminutive nouns"] = "Chinese reduplicative diminutive nouns", ["reduplicative diminutive proper nouns"] = "Chinese reduplicative diminutive proper nouns", ["reduplicative diminutive pronouns"] = "Chinese reduplicative diminutive pronouns", } return export a4ts30glfof78zsi1uvi2p98qwpgn4s Modul:category tree/data 828 160449 629002 2024-11-06T18:32:06Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local data = { "All language families", "All languages", "All scripts", "Categories only containing subcategories", "Character boxes", "Characters by script", "Entries that don't exist by language", "Entries with audio examples", "Entries with redirects", "Entry maintenance by language", "Figures of speech by language", "Gestures", "Lemmas by language", "Letters", "Lists", "Non-lemma forms by language", "Phrasebooks by language",...“ yozuvi orqali yangi sahifa yaratildi 629002 Scribunto text/plain local data = { "All language families", "All languages", "All scripts", "Categories only containing subcategories", "Character boxes", "Characters by script", "Entries that don't exist by language", "Entries with audio examples", "Entries with redirects", "Entry maintenance by language", "Figures of speech by language", "Gestures", "Lemmas by language", "Letters", "Lists", "Non-lemma forms by language", "Phrasebooks by language", "Protologisms", "Regionalisms", "Rhymes by language", "Sentences by language", "All sets", "Shortenings by language", "Symbols by language", "Synchronized entries by language", "Terms by etymology by language", "Terms by lexical property by language", "Terms by semantic function by language", "Terms by usage by language", "All topics", "Unicode blocks", "Unsupported titles", "Wiktionary", "Wiktionary-namespace discussion pages", } for i, category in ipairs(data) do data[i] = nil data["Category:" .. category] = true end return data sbwgv2in7f1sxfrnswpnn01c9gfoobu Modul:IPA 828 160450 629006 2024-11-06T18:40:26Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local export = {} local force_cat = false -- for testing local pron_qualifier_module = "Module:pron qualifier" local qualifier_module = "Module:qualifier" local references_module = "Module:references" local string_utilities_module = "Module:string utilities" local syllables_module = "Module:syllables" local utilities_module = "Module:utilities" local m_data = mw.loadData("Module:IPA/data") local m_str_utils = require(string_utilities_module) loc...“ yozuvi orqali yangi sahifa yaratildi 629006 Scribunto text/plain local export = {} local force_cat = false -- for testing local pron_qualifier_module = "Module:pron qualifier" local qualifier_module = "Module:qualifier" local references_module = "Module:references" local string_utilities_module = "Module:string utilities" local syllables_module = "Module:syllables" local utilities_module = "Module:utilities" local m_data = mw.loadData("Module:IPA/data") local m_str_utils = require(string_utilities_module) local m_syllables -- [[Module:syllables]]; loaded below if needed local m_symbols = mw.loadData("Module:IPA/data/symbols") local concat = table.concat local decode_entities = m_str_utils.decode_entities local find = string.find local gmatch = m_str_utils.gmatch local gsub = string.gsub local insert = table.insert local len = m_str_utils.len local listToText = mw.text.listToText local match = string.match local sub = string.sub local u = m_str_utils.char local ugsub = m_str_utils.gsub local umatch = m_str_utils.match local usub = m_str_utils.sub local namespace = mw.title.getCurrentTitle().namespace local is_content_page = namespace == 0 or namespace == 118 local function track(page) require("Module:debug/track")("IPA/" .. page) return true end local function process_maybe_split_categories(split_output, categories, prontext, lang, errtext) if split_output ~= "raw" then if categories[1] then categories = require(utilities_module).format_categories(categories, lang, nil, nil, force_cat) else categories = "" end end if split_output then -- for use of IPA in links, etc. if errtext then return prontext, categories, errtext else return prontext, categories end else return prontext .. (errtext or "") .. categories end end --[==[ Format a line of one or more IPA pronunciations as {{tl|IPA}} would do it, i.e. with a preceding {"IPA:"} followed by the word {"key"} linking to an Appendix page describing the language's phonology, and with an added category {{cd|<var>lang</var> terms with IPA pronunciation}}. Other than the extra preceding text and category, this is identical to {format_IPA_multiple()}, and the considerations described there in the documentation apply here as well. There is a single parameter `data`, an object with the following fields: * `lang`: Object representing the language of the pronunciations, which is used when adding cleanup categories for pronunciations with invalid phonemes; for determining how many syllables the pronunciations have in them, in order to add a category such as [[:Category:Italian 2-syllable words]] (for certain languages only); for adding a category {{cd|<var>lang</var> terms with IPA pronunciation}}; and for determining the proper sort keys for categories. Unlike for {format_IPA_multiple()}, `lang` may not be {nil}. * `items`: List of pronunciations, in exactly the same format as for {format_IPA_multiple()}. * `err`: If not {nil}, a string containing an error message to use in place of the link to the language's phonology. * `separator`: The default separator to use when separating formatted items. Defaults to {", "}. Does not apply to the first item, where the default separator is always the empty string. Overridden by the per-item `separator` field in `items`. * `sort_key`: Explicit sort key used for categories. * `no_count`: Suppress adding a {#-syllable words} category such as [[:Category:Italian 2-syllable words]]. Note that only certain languages add such categories to begin with, because it depends on knowing how to count syllables in a given language, which depends on the phonology of the language. Also, this does not suppress the addition of cleanup or other categories. If you need them suppressed, use `split_output` to return the categories separately and ignore them. * `split_output`: If not given, the return value is a concatenation of the formatted pronunciation and formatted categories. Otherwise, two values are returned: the formatted pronunciation and the categories. If `split_output` is the value {"raw"}, the categories are returned in list form, where the list elements are a combination of category strings and category objects of the form suitable for passing to {format_categories()} in [[Module:utilities]]. If `split_output` is any other value besides {nil}, the categories are returned as a pre-formatted concatenated string. * `include_langname`: If specified, prefix the result with the language name, followed by a colon. * `q`: {nil} or a list of left qualifiers (as in {{tl|q}}) to display at the beginning, before the formatted pronunciations and preceding {"IPA:"}. * `qq`: {nil} or a list of right qualifiers to display after all formatted pronunciations. * `a`: {nil} or a list of left accent qualifiers (as in {{tl|a}}) to display at the beginning, before the formatted pronunciations and preceding {"IPA:"}. * `aa`: {nil} or a list of right accent qualifiers to display after all formatted pronunciations. ]==] function export.format_IPA_full(data) if type(data) ~= "table" or data.getCode then error("Must now supply a table of arguments to format_IPA_full(); first argument should be that table, not a language object") end local lang = data.lang local items = data.items local err = data.err local separator = data.separator local sort_key = data.sort_key local no_count = data.no_count local split_output = data.split_output local q = data.q local qq = data.qq local a = data.a local aa = data.aa local include_langname = data.include_langname local hasKey = m_data.langs_with_infopages if not lang or not lang.getCode then error("Must specify language to format_IPA_full()") end local langname = lang:getCanonicalName() local prefix_text if err then prefix_text = '<span class="error">' .. err .. '</span>' else if hasKey[lang:getCode()] then prefix_text = "Appendix:" .. langname .. " pronunciation" else prefix_text = "wikipedia:" .. langname .. " phonology" end prefix_text = "[[" .. prefix_text .. "|key]]" end local prefix = "[[Wiktionary:International Phonetic Alphabet|IPA]]<sup>(" .. prefix_text .. ")</sup>:&#32;" local IPAs, categories = export.format_IPA_multiple(lang, items, separator, no_count, "raw") if is_content_page then insert(categories, { cat = langname .. " terms with IPA pronunciation", sort_key = sort_key }) end local prontext = prefix .. IPAs if q and q[1] or qq and qq[1] or a and a[1] or aa and aa[1] then prontext = require(pron_qualifier_module).format_qualifiers { lang = lang, text = prontext, q = q, qq = qq, a = a, aa = aa, } end if include_langname then prontext = langname .. ": " .. prontext end return process_maybe_split_categories(split_output, categories, prontext, lang) end local function split_phonemic_phonetic(pron) local reconstructed, phonemic, phonetic = match(pron, "^(%*?)(/.-/)%s+(%[.-%])$") if reconstructed then return reconstructed .. phonemic, reconstructed .. phonetic else return pron, nil end end local function determine_repr(pron) local reconstructed -- remove initial asterisk before representation marks, used on some Reconstruction pages if sub(pron, 1, 1) == "*" then reconstructed = true pron = sub(pron, 2) end local opening = match(pron, "^.[\128-\191]*") local data = m_data.representation_types[opening] if data then local closing = data[2] if data and match(pron, closing .. "$", #opening + 1) then return data[1], opening, closing, reconstructed end end return nil, "", "", reconstructed end local function hasInvalidSeparators(transcription) if umatch(transcription, "%.[ˈˌ]") or umatch(transcription, "[ˈˌ][ .]") then return true else return false end end --[==[ Format a line of one or more bare IPA pronunciations (i.e. without any preceding {"IPA:"} and without adding to a category {{cd|<var>lang</var> terms with IPA pronunciation}}). Individual pronunciations are formatted using {format_IPA()} and are combined with separators, qualifiers, pre-text, post-text, etc. to form a line of pronunciations. Parameters accepted are: * `lang` is an object representing the language of the pronunciations, which is used when adding cleanup categories for pronunciations with invalid phonemes; for determining how many syllables the pronunciations have in them, in order to add a category such as [[:Category:Italian 2-syllable words]] (for certain languages only); and for computing the proper sort keys for categories. `lang` may be {nil}. * `items` is a list of pronunciations, each of which is an object with the following properties: ** `pron`: the pronunciation, in the same format as is accepted by {format_IPA()}, i.e. it should be either phonemic (surrounded by {/.../}), phonetic (surrounded by {[...]}), orthographic (surrounded by {⟨...⟩}) or a rhyme (beginning with a hyphen); ** `pretext`: text to display directly before the formatted pronunciation, inside of any qualifiers or accent qualifiers; ** `posttext`: text to display directly after the formatted pronunciation, inside of any qualifiers or accent qualifiers; ** `q` or `qualifiers`: {nil} or a list of left qualifiers (as in {{tl|q}}) to display before the formatted pronunciation; note that `qualifiers` is deprecated; ** `qq`: {nil} or a list of right qualifiers to display after the formatted pronunciation; ** `a`: {nil} or a list of left accent qualifiers (as in {{tl|a}}) to display before the formatted pronunciation; ** `aa`: {nil} or a list of right accent qualifiers to after before the formatted pronunciation; ** `refs`: {nil} or a list of references or reference specs to add after the pronunciation and any posttext and qualifiers; the value of a list item is either a string containing the reference text (typically a call to a citation template such as {{tl|cite-book}}, or a template wrapping such a call), or an object with fields `text` (the reference text), `name` (the name of the reference, as in {{cd|<nowiki><ref name="foo">...</ref></nowiki>}} or {{cd|<nowiki><ref name="foo" /></nowiki>}}) and/or `group` (the group of the reference, as in {{cd|<nowiki><ref name="foo" group="bar">...</ref></nowiki>}} or {{cd|<nowiki><ref name="foo" group="bar"/></nowiki>}}); this uses a parser function to format the reference appropriately and insert a footnote number that hyperlinks to the actual reference, located in the {{cd|<nowiki><references /></nowiki>}} section; ** `gloss`: {nil} or a gloss (definition) for this item, if different definitions have different pronunciations; ** `pos`: {nil} or a part of speech for this item, if different parts of speech have different pronunciations; ** `separator`: the separator text to insert directly before the formatted pronunciation and all qualifiers, accent qualifiers and pre-text; defaults to the outer `separator` parameter. * `separator`: The default separator to use when separating formatted items. Defaults to {", "}. Does not apply to the first item, where the default separator is always the empty string. Overridden by the per-item `separator` field in `items`. * `no_count`: Suppress adding a {#-syllable words} category such as [[:Category:Italian 2-syllable words]]. Note that only certain languages add such categories to begin with, because it depends on knowing how to count syllables in a given language, which depends on the phonology of the language. Also, this does not suppress the addition of cleanup categories. If you need them suppressed, use `split_output` to return the categories separately and ignore them. * `split_output`: If not given, the return value is a concatenation of the formatted pronunciation and formatted categories. Otherwise, two values are returned: the formatted pronunciation and the categories. If `split_output` is the value {"raw"}, the categories are returned in list form, where the list elements are a combination of category strings and category objects of the form suitable for passing to {format_categories()} in [[Module:utilities]]. If `split_output` is any other value besides {nil}, the categories are returned as a pre-formatted concatenated string. ]==] function export.format_IPA_multiple(lang, items, separator, no_count, split_output) local categories = {} separator = separator or ", " if not lang then track("format-multiple-nolang") end -- Format if not items[1] then if namespace == 10 then -- Template insert(items, {pron = "/aɪ piː ˈeɪ/"}) else insert(categories, "Pronunciation templates without a pronunciation") end end local bits = {} for i, item in ipairs(items) do local bit -- If the pronunciation is entirely empty, allow this and don't do anything, so that e.g. the pretext and/or -- posttext can be specified to force something like ''unknown'' to appear in place of the pronunciation -- (as happens e.g. when ? is used as a respelling in [[Module:ca-IPA]]; see [[guèiser]] for an example). if item.pron == "" then bit = "" else local item_categories, errtext bit, item_categories, errtext = export.format_IPA(lang, item.pron, "raw") bit = bit .. errtext for _, cat in ipairs(item_categories) do insert(categories, cat) end end if item.pretext then bit = item.pretext .. bit end if item.posttext then bit = bit .. item.posttext end local has_qualifiers = item.q and item.q[1] or item.qq and item.qq[1] or item.qualifiers and item.qualifiers[1] or item.a and item.a[1] or item.aa and item.aa[1] local has_gloss_or_pos = item.gloss or item.pos if has_qualifiers or has_gloss_or_pos then -- FIXME: Currently we tack the gloss and POS (in that order) onto the end of the regular left qualifiers. -- Should we do something different? local q = item.q if has_gloss_or_pos then q = mw.clone(item.q) or {} if item.gloss then local m_qualifier = require(qualifier_module) insert(q, m_qualifier.wrap_qualifier_css("“", "quote") .. item.gloss .. m_qualifier.wrap_qualifier_css("”", "quote")) end if item.pos then -- FIXME: Consider expanding aliases as found in [[Module:headword/data]] or similar. insert(q, item.pos) end end bit = require("Module:pron qualifier").format_qualifiers { lang = lang, text = bit, q = q, qq = item.qq, qualifiers = item.qualifiers, a = item.a, aa = item.aa, } end if item.note then -- Support removed on 2024-06-15. error("Support for `.note` has been removed; switch to `.refs` (which must be a list)") end if item.refs then local refspecs = item.refs if #refspecs > 0 then bit = bit .. require(references_module).format_references(refspecs) end end bit = (item.separator or (i == 1 and "" or separator)) .. bit insert(bits, bit) --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/IPA/syntax-error]] The length or gemination symbol should not appear after a syllable break or stress symbol. ]=] -- The nature of the following pattern match is such that we don't have to split a combined '/.../ [...]' spec -- into its parts in order to process. if match(item.pron, "[.\203][\136\140]?\203[\144\145]") then -- [.ˈˌ][ːˑ] track("syntax-error") end if lang then -- Add syllable count if the language's diphthongs are listed in [[Module:syllables]]. -- Don't do this if the term has spaces, a liaison mark (‿) or isn't in mainspace. if not no_count and namespace == 0 then m_syllables = m_syllables or require(syllables_module) local langcode = lang:getCode() if m_data.langs_to_generate_syllable_count_categories[langcode] then local phonemic, phonetic, use_it = split_phonemic_phonetic(item.pron) local repr = determine_repr(phonemic) if not phonetic then -- not a '/.../ [...]' combined pronunciation if m_data.langs_to_use_phonetic_notation[langcode] then use_it = repr == "phonetic" and phonemic or nil else use_it = repr == "phonemic" and phonemic or nil end elseif repr == "phonetic" then use_it = phonetic elseif repr == "phonemic" then use_it = phonemic end -- Note: two uses of find with plain patterns is much faster than umatch with [ ‿]. if use_it and not (find(use_it, " ") or find(use_it, "‿")) then local syllable_count = m_syllables.getVowels(use_it, lang) if syllable_count then insert(categories, lang:getCanonicalName() .. " " .. syllable_count .. "-syllable words") end end end end -- The nature of hasInvalidSeparators() is such that we don't have to split a combined '/.../ [...]' spec -- into its parts in order to process. if lang:getCode() == "en" and hasInvalidSeparators(item.pron) then insert(categories, "English IPA pronunciations with invalid separators") end end end return process_maybe_split_categories(split_output, categories, concat(bits), lang) end --[=[ Format a single IPA pronunciation, which cannot be a combined spec (such as {/.../ [...]}). This has been extracted from {format_IPA()} to allow the latter to handle such combined specs. This works like {format_IPA()} but requires that pre-created {err} (for error messages) and {categories} lists be passed in, and adds any generated error messages and categories to those lists. A single value is returned, the pronunciation, which is usually the same as passed in, but may have HTML added surrounding invalid characters so they appear in red. ]=] local function format_one_IPA(lang, pron, err, categories) -- Disallow wikilinks. if match(pron, "%[%[.-%]%]") then error("IPA input must not contain wikilinks.") end pron = decode_entities(pron) -- Detect the type of transcription. local repr, opening, closing, reconstructed = determine_repr(pron) -- Strip any reconstruction asterisk and representation marks. pron = sub(pron, #opening + 1 + (reconstructed and 1 or 0), -#closing - 1) if not repr then insert(categories, "IPA pronunciations with invalid representation marks") -- insert(err, "invalid representation marks") -- Removed because it's annoying when previewing pronunciation pages. end if pron == "" then insert(categories, "IPA pronunciations with no pronunciation present") end -- Check for obsolete and nonstandard symbols for _, symbol in ipairs(m_data.nonstandard) do local result for nonstandard in gmatch(pron, symbol) do if not result then result = {} end insert(result, nonstandard) insert(categories, {cat = "IPA pronunciations with obsolete or nonstandard characters", sort_key = nonstandard} ) end if result then insert(err, "obsolete or nonstandard characters (" .. concat(result) .. ")") break end end --[[ Check for invalid symbols after removing the following: 1. wikilinks (handled above) 2. paired HTML tags 3. bolding 4. italics 5. asterisk at beginning of transcription 6. comma followed by spacing characters 7. superscripts enclosed in superscript parentheses ]] local found_HTML local result = gsub(pron, "<(%a+)[^>]*>([^<]+)</%1>", function(tagName, content) found_HTML = true return content end) result = gsub(result, "'''([^']*)'''", "%1") result = gsub(result, "''([^']*)''", "%1") result = gsub(result, "^%*", "") result = ugsub(result, ",%s+", "") -- VS15 local vs15_class = "[" .. m_symbols.add_vs15 .. "]" if umatch(pron, vs15_class) then local vs15 = u(0xFE0E) if find(result, vs15) then result = gsub(result, vs15, "") pron = gsub(pron, vs15, "") end pron = ugsub(pron, vs15_class, "%0" .. vs15) end if result ~= "" then local suggestions = {} for k, v in pairs(m_symbols.invalid) do if find(result, k, 1, true) then insert(suggestions, k .. " with " .. v) end end if suggestions[1] then suggestions = listToText(suggestions) if is_content_page then error("Invalid IPA: replace " .. suggestions) else insert(err, "replace " .. suggestions) end end result = ugsub(result, "⁽[".. m_symbols.superscripts .. "]+⁾", "") local per_lang_valid if lang then per_lang_valid = m_symbols.per_lang_valid[lang:getCode()] end per_lang_valid = per_lang_valid or "" result = ugsub(result, "[" .. m_symbols.valid .. per_lang_valid .. "]", "") if result ~= "" then local category = "IPA pronunciations with invalid IPA characters" if not is_content_page then category = category .. "/non_mainspace" end insert(categories, category) insert(err, "invalid IPA characters (" .. result .. ")") end end if found_HTML then insert(categories, "IPA pronunciations with paired HTML tags") end if (repr == "phonemic" or repr == "rhyme") and lang and m_data.phonemes[lang:getCode()] then local valid_phonemes = m_data.phonemes[lang:getCode()] local rest = pron local phonemes = {} while #rest > 0 do local longestmatch, longestmatch_len = "", 0 local rest_init = sub(rest, 1, 1) if rest_init == "(" or rest_init == ")" then longestmatch = rest_init longestmatch_len = 1 else for _, phoneme in ipairs(valid_phonemes) do local phoneme_len = len(phoneme) if phoneme_len > longestmatch_len and usub(rest, 1, phoneme_len) == phoneme then longestmatch = phoneme longestmatch_len = len(longestmatch) end end end if longestmatch_len > 0 then insert(phonemes, longestmatch) rest = usub(rest, longestmatch_len + 1) else local phoneme = usub(rest, 1, 1) insert(phonemes, "<span style=\"color: red\">" .. phoneme .. "</span>") rest = usub(rest, 2) insert(categories, "IPA pronunciations with invalid phonemes/" .. lang:getCode()) track("invalid phonemes/" .. phoneme) end end pron = concat(phonemes) end return (reconstructed and "*" or "") .. opening .. pron .. closing end --[==[ Format an IPA pronunciation. This wraps the pronunciation in appropriate CSS classes and adds cleanup categories and error messages as needed. The pronunciation `pron` should be either phonemic (surrounded by {/.../}), phonetic (surrounded by {[...]}), orthographic (surrounded by {⟨...⟩}), a rhyme (beginning with a hyphen) or a combined phonemic/phonetic spec (of the form {/.../ [...]}). `lang` indicates the language of the pronunciation and can be {nil}. If not {nil}, and the specified language has data in [[Module:IPA/data]] indicating the allowed phonemes, then the page will be added to a cleanup category and an error message displayed next to the outputted pronunciation. Note that {lang} also determines sort key processing in the added cleanup categories. If `split_output` is not given, the return value is a concatenation of the formatted pronunciation, error messages and formatted cleanup categories. Otherwise, three values are returned: the formatted pronunciation, the cleanup categories and the concatenated error messages. If `split_output` is the value {"raw"}, the cleanup categories are returned in list form, where the list elements are a combination of category strings and category objects of the form suitable for passing to {format_categories()} in [[Module:utilities]]. If `split_output` is any other value besides {nil}, the cleanup categories are returned as a pre-formatted concatenated string. ]==] function export.format_IPA(lang, pron, split_output) local err = {} local categories = {} -- `pron` shouldn't contain ref tags. if match(pron, "\127'\"`UNIQ%-%-ref%-[%dA-F]+%-QINU`\"'\127") then error("<ref> tags found inside pronunciation parameter.") end if not lang then track("format-nolang") end local phonemic, phonetic = split_phonemic_phonetic(pron) pron = format_one_IPA(lang, phonemic, err, categories) if phonetic then phonetic = format_one_IPA(lang, phonetic, err, categories) pron = pron .. " " .. phonetic end if err[1] then err = '<span class="previewonly error" style="font-size: small;>&#32;' .. concat(err, ", ") .. "</span>" else err = "" end return process_maybe_split_categories(split_output, categories, '<span class="IPA">' .. pron .. "</span>", lang, err) end --[==[ Format a line of one or more enPR pronunciations as {{tl|enPR}} would do it, i.e. with a preceding {"enPR:"} (linked to [[Appendix:English pronunciation]]) followed by one or more formatted, comma-separated enPR pronunciations. The pronunciations are formatted by wrapping them in the {{cd|AHD}} and {{cd|enPR}} CSS classes and adding any left and right regular and accent qualifiers. In addition, the overall result is wrapped in any overall left and right regular and accent qualifiers. There is a single parameter `data`, an object with the following fields: * `items` is a list of enPR pronunciations, each of which is an object with the following properties: ** `pron`: the enPR pronunciation; ** `q`: {nil} or a list of left qualifiers (as in {{tl|q}}) to display before the formatted pronunciation; ** `qq`: {nil} or a list of right qualifiers to display after the formatted pronunciation; ** `a`: {nil} or a list of left accent qualifiers (as in {{tl|a}}) to display before the formatted pronunciation; ** `aa`: {nil} or a list of right accent qualifiers to after before the formatted pronunciation. * `q`: {nil} or a list of left qualifiers (as in {{tl|q}}) to display at the beginning, before the formatted pronunciations and preceding {"enPR:"}. * `qq`: {nil} or a list of right qualifiers to display after all formatted pronunciations. * `a`: {nil} or a list of left accent qualifiers (as in {{tl|a}}) to display at the beginning, before the formatted pronunciations and preceding {"enPR:"}. * `aa`: {nil} or a list of right accent qualifiers to display after all formatted pronunciations. ]==] function export.format_enPR_full(data) local prefix = "[[Appendix:Oʻzbekcha talaffuz|uzPR]]: " local lang = require("Module:tili").getByCode("en") local parts = {} for _, item in ipairs(data.items) do local part = '<span class="AHD enPR">' .. item.pron .. "</span>" if item.q and item.q[1] or item.qq and item.qq[1] or item.a and item.a[1] or item.aa and item.aa[1] then part = require("Module:pron qualifier").format_qualifiers { lang = lang, text = part, q = item.q, qq = item.qq, a = item.a, aa = item.aa, } end insert(parts, part) end local prontext = prefix .. concat(parts, ", ") if data.q and data.q[1] or data.qq and data.qq[1] or data.a and data.a[1] or data.aa and data.aa[1] then prontext = require(pron_qualifier_module).format_qualifiers { lang = lang, text = prontext, q = data.q, qq = data.qq, a = data.a, aa = data.aa, } end return prontext end return export t8o5ps6y1ru78y8jzhyk44t1ij7thch Modul:IPA/data 828 160451 629007 2024-11-06T18:41:33Z 2804:14C:6585:4A4C:D414:99C2:2E08:9DEE „local list_to_set = require("Module:table").listToSet local data = {} --[=[ A list of representation types (e.g. /foo/ for phonemic and [bar] for phonetic), given as a table. The key is the opening symbol, the first value the representation type, and the second value the closing symbol. ]=] data.representation_types = { ["/"] = {"phonemic", "/"}, ["["] = {"phonetic", "]"}, ["⫽"] = {"morphophonemic", "⫽"}, ["⟨"] = {"orthographic", "⟩"}...“ yozuvi orqali yangi sahifa yaratildi 629007 Scribunto text/plain local list_to_set = require("Module:table").listToSet local data = {} --[=[ A list of representation types (e.g. /foo/ for phonemic and [bar] for phonetic), given as a table. The key is the opening symbol, the first value the representation type, and the second value the closing symbol. ]=] data.representation_types = { ["/"] = {"phonemic", "/"}, ["["] = {"phonetic", "]"}, ["⫽"] = {"morphophonemic", "⫽"}, ["⟨"] = {"orthographic", "⟩"}, ["-"] = {"rhyme", ""}, } --[=[ This should list the language codes of all languages that have a pronunciation page in the appendix of the form ''Appendix:LANG pronunciation'', e.g. [[Appendix:Russian pronunciation]]. For these languages, the text "key" next to the generated pronunciation links to such pages; for other languages, it links to the "LANG phonology" page in Wikipedia (which may or may not exist). [[Module:IPA]] is responsible for this linking; see format_IPA_full(). ]=] data.langs_with_infopages = list_to_set{ "acw", "ady", "ang", "arc", "ba", "bg", "bo", "ca", "cho", "cmn", "cs", "cv", "cy", "da", "de", "dsb", "dz", "egl", "egy", "el", "en", "enm", "eo", "es", "fa", "fi", "fo", "fr", "fy", "ga", "gd", "got", "he", "hi", "hrx", "hu", "hy", "id", "ii", "is", "it", "iu", "ja", "jbo", "ka", "kls", "ko", "kw", "la", "lb", "liv", "lt", "lv", "mdf", "mfe", "mic", "mk", "mns-nor", "ms", "mt", "mul", "my", "nan", "nci", "nl", "nn", "no", "nov", "nv", "pjt", "pl", "ps", "pt", "ro", "ru", "scn", "sco", "sga", "sh", "sl", "sq", "sv", "sw", "syc", "szl", "tg", "th", "tl", "tpw", "tr", "tyv", "ug", "uk", "vi", "vo", "wlm", "yi", "yue", "zlw-mas" } --[=[ This should list the diphthongs of a language (in the form of Lua patterns), provided they do *NOT* contain semivowel symbols such as /j w ɰ ɥ/ or vowels with nonsyllabic diacritics such as /i̯ u̯/. For example, list /au/ or /aʊ/, but do not list /aw/ or /au̯/. The data in this table is used to count the number of syllables in a word. [[Module:syllables]] automatically knows how to correctly handle semivowel symbols and nonsyllabic diacritics. Any language listed here will automatically have categories of the form "LANG #-syllable words" generated. In addition, any language listed below under `langs_to_generate_syllable_count_categories` will also have such categories generated. NOTE: There are some additional languages that have these categories. For example: * Thai words have these categories added by [[Module:th-pron]]. ]=] data.diphthongs = { ["cs"] = { -- [[w:Czech phonology#Diphthongs]] "[aeo]u", }, ["de"] = { "a[ɪʊ]", "ɔ[ʏɪ]", }, ["en"] = { -- from [[Appendix:English pronunciation]] mostly, but /ʌɪ/ is from the OED "[aɑeɛoɔʌ][ɪi]", "[ɑɒæo]e", "[əɐ]ʉ", "[aɒəoɔæ]ʊ", "æo", "[ɛeɪiɔʊʉ]ə", -- /iə/ is a diphthong in NZE, but a disyllabic sequence in GA. -- /ɪə/ is both a disyllabic sequence and a diphthong in old-fashioned RP. "[aʌ][ʊɪ]ə", -- May be a disyllabic sequence in some or all dialects? }, ["grc"] = { "[aeyo]i", "[ae]u", "[ɛɔa]ː[iu]", }, ["hrx"] = { "aɪ̯", "aʊ̯", "oɪ̯", "eʊ̯", }, ["is"] = { -- [[w:Icelandic phonology#Vowels]] "[aeø][iɪy]", -- Wikipedia is oddly specific about the second element: ei and ai, but øɪ. "[ao]u", }, ["it"] = { "[aeɛoɔu]i", "[aeɛioɔ]u", }, ["la"] = { "[eaou]i", "[eao]u", "[ao]e", }, ["lb"] = { "[iu]ə", "[ɜoæɑ]ɪ", "[əæɑ]ʊ", }, } --[=[ This should list any languages for which categories of the form "LANG #-syllable words", e.g. [[:Category:Russian 3-syllable words]], should be generated. Do not list languages here if they have an entry above under `data.diphthongs`; such languages are automatically added to this list. ]=] local langs_to_generate_syllable_count_categories = list_to_set{ "ar", -- Arabic has diphthongs, but they are transcribed -- with semivowel symbols. "ary", -- Moroccan Arabic has diphthongs, but they are transcribed -- with semivowel symbols. "ca", -- Catalan has diphthongs, but they are generally transcribed using -- /w/ and /j/, so do not need to be listed (see [[w:Catalan language#Diphthongs and triphthongs]]. "es", -- Spanish has diphthongs, but they are transcribed with i̯ etc. "fi", -- Finnish has diphthongs, but they are now automatically transcribed with -- the nonsyllabic diacritic "fr", -- French has diphthongs, but they are transcribed -- with semivowel symbols: [[w:French phonology#Glides and diphthongs]]. "hnn", "id", -- Indonesian has diphthongs, but they are transcribed with i̯ or /j/ etc. "ka", "kne", "kmr", "ku", "mk", "ms", -- Malay has diphthongs, but they are transcribed with i̯ or /j/ etc. "mt", -- Maltese has diphthongs, but they are transcribed -- with semivowel symbols. "pl", -- No diphthongs, properly speaking; sequences of a vowel and /w/ or /j/ though. "pt", -- Portuguese has diphthongs, but they are transcribed with i̯ or /j/ etc. "ru", -- No diphthongs, properly speaking; sequences of a vowel and /j/ though. "sk", -- Slovak has rising diphthongs, /i̯e, i̯a, i̯u, u̯o/, which are probably always spelled with the nonsyllabic diacritic, so do not need to be listed. "sl", -- No diphthongs, properly speaking; sequences of a vowel, /j/ and /w/ though "sq", -- [[w:Albanian language#Vowels]] doesn't mention anything about diphthongs. "tl", -- Tagalog has diphthongs, but they are transcribed with i̯ or /j/ etc "tsg", "ug", -- No diphthongs. } -- Also add languages listed under `data.diphthongs`. for langcode, _ in pairs(data.diphthongs) do langs_to_generate_syllable_count_categories[langcode] = true end data.langs_to_generate_syllable_count_categories = langs_to_generate_syllable_count_categories -- Languages to use the phonetic not phonemic notation to compute syllables counts. data.langs_to_use_phonetic_notation = list_to_set{ "es", "id", "mk", "ms", "ru", } -- Non-standard or obsolete IPA symbols. data.nonstandard = { --[[ The following symbols consist of more than one character, so we can't put them in the line below. ]] "ɑ̢", "ɔ̗", "ɔ̖", "[?ƍσƺƪƞƛłščžǰǧǯẋᵻᵿⱻʚω∅ØȣᴀᴇⱻQKPT]" } -- See valid IPA characters at [[Module:IPA/data/symbols]]. data.phonemes = {} data.phonemes["dz"] = { "m", "n", "ŋ", "p", "t", "ʈ", "k", "pʰ", "tʰ", "ʈʰ", "kʰ", "t͡s", "t͡ɕ", "t͡sʰ", "t͡ɕʰ", "w", "s", "z", "ɬ", "l", "r", "ɕ", "ʑ", "j", "h", "ɑ", "e", "i", "o", "u", "ɑː", "eː", "ɛː", "iː", "oː", "øː", "uː", "yː", "ɑ˥", "e˥", "i˥", "o˥", "u˥", "ɑː˥", "eː˥", "ɛː˥", "iː˥", "oː˥", "øː˥", "uː˥", "yː˥", "m˥", "n˥", "ŋ˥", "p˥", "k˥", "k̚˥", "w˥", "l˥", "r˥", "ɕ˥", "j˥", ")˥", "ɑ˩", "e˩", "i˩", "o˩", "u˩", "ɑː˩", "eː˩", "ɛː˩", "iː˩", "oː˩", "øː˩", "uː˩", "yː˩", "m˩", "n˩", "ŋ˩", "p˩", "k˩", "k̚˩", "w˩", "l˩", "r˩", "ɕ˩", "j˩", ")˩", ".", ",", "-", } data.phonemes["eo"] = { "a", "b", "d", "d͡ʒ", "d͡z", "e", "f", "h", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t", "t͡s", "t͡ʃ", "u", "v", "w", "x", "z", "ɡ", "ʃ", "ʒ", "ˈ", ".", " ", "-", } data.phonemes["hy"] = { "ɑ", "b", "ɡ", "d", "e", "z", "ə", "tʰ", "ʒ", "i", "l", "χ", "t͡s", "k", "h", "d͡z", "ʁ", "t͡ʃ", "m", "j", "n", "ʃ", "ɔ", "t͡ʃʰ", "p", "d͡ʒ", "r", "s", "v", "t", "ɾ", "t͡sʰ", "v", "pʰ", "kʰ", "o", "f", "ŋɡ", "ŋk", "ŋχ", "u", "œ", "ʏ", "ˈ", "ˌ", ".", " ", "ː", } data.phonemes["nl"] = { "m", "n", "ŋ", "p", "b", "t", "d", "k", "ɡ", "f", "v", "s", "z", "ʃ", "ʒ", "x", "ɣ", "ɦ", "ʋ", "l", "j", "r", "ɪ", "ʏ", "ɛ", "ə", "ɔ", "ɑ", "i", "iː", "y", "yː", "u", "uː", "eː", "øː", "oː", "ɛː", "œː", "ɔː", "aː", "ɛi̯", "œy̯", "ɔi̯", "ɑu̯", "ɑi̯", "iu̯", "yu̯", "ui̯", "eːu̯", "oːi̯", "aːi̯", "ˈ", "ˌ", ".", " ", "-", } data.phonemes["mt"] = { "m", "n", "p", "t", "k", "ʔ", "b", "d", "ɡ", "t͡s", "t͡ʃ", "d͡z", "d͡ʒ", "f", "s", "ʃ", "ħ", "v", "z", "ʒ", "ɣ", "l", "j", "w", "r", "ɪ", "ɛ", "ɔ", "a", "u", "ɛˤ", "ɔˤ", "aˤ", "əˤ", "ɛˤː", "ɔˤː", "aˤː", "əˤː", "ɪˤː", "iː", "ɪː", "ɛː", "ɔː", "aː", "uː", "ˈ", "ˌ", ".", " ", "‿", "-" } return data kfvlcftia4fi0aaed1kworgru3phoas