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}}: [[ක්රියා විශේෂණය]] (kriyā 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 > yashïl > 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 (' → '),
-- as they contain #, which causes the numeric character reference to be
-- misparsed (wa'a → wa'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 = "]" .. link.display .. "["
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, " " .. 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 <
-- and > 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,
["<"] = "<",
[">"] = ">",
}
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> → <code><nowiki>displayed text</nowiki></code>
* <code><nowiki>[[page and displayed text]]</nowiki></code> → <code><nowiki>page and displayed text</nowiki></code>
* <code><nowiki>[[Category:English lemmas|WORD]]</nowiki></code> → ''(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("#", " § ", 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 > ortu > orta > 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 < ''[[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 .. "'"
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>'", "'<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"]="'"})
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;\">[" -- HTML entity since "[[[w:MSC|MSC]]" is interpreted poorly
local tag_end = "]</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 = " ― "
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 "<>" 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], " ") ..
'</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, " ")
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;\">[" -- see also [[module:zh-usex]]
local tag_end = "]</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 .. " " .. 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
|-
| 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("|", "|"))))
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>&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;",
["λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερύγων"] = "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 = "—"
tr_subspan = "—"
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 "—"
elseif type(form) ~= "table" then
error("a non-table value was given in the list of inflected forms.")
end
if #form == 0 then
return "—"
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 {"—"}, 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, "'", "'")
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>: "
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;> ' .. 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