Wiktionary
thwiktionary
https://th.wiktionary.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%9E%E0%B8%88%E0%B8%99%E0%B8%B2%E0%B8%99%E0%B8%B8%E0%B8%81%E0%B8%A3%E0%B8%A1:%E0%B8%AB%E0%B8%99%E0%B9%89%E0%B8%B2%E0%B8%AB%E0%B8%A5%E0%B8%B1%E0%B8%81
MediaWiki 1.47.0-wmf.3
case-sensitive
สื่อ
พิเศษ
พูดคุย
ผู้ใช้
คุยกับผู้ใช้
วิกิพจนานุกรม
คุยเรื่องวิกิพจนานุกรม
ไฟล์
คุยเรื่องไฟล์
มีเดียวิกิ
คุยเรื่องมีเดียวิกิ
แม่แบบ
คุยเรื่องแม่แบบ
วิธีใช้
คุยเรื่องวิธีใช้
หมวดหมู่
คุยเรื่องหมวดหมู่
ภาคผนวก
คุยเรื่องภาคผนวก
ดัชนี
คุยเรื่องดัชนี
สัมผัส
คุยเรื่องสัมผัส
อรรถาภิธาน
คุยเรื่องอรรถาภิธาน
TimedText
TimedText talk
มอดูล
คุยเรื่องมอดูล
Event
Event talk
ลาว
0
2455
5723248
5723231
2026-05-20T03:29:42Z
OctraBot
3198
/* คำแปลภาษาอื่น */
5723248
wikitext
text/x-wiki
== ภาษาไทย ==
{{wp|ประเทศลาว}}
[[File:Laos in its region.svg|thumb|ประเทศลาว]]
[[File:Flag of Laos.svg|thumb|ธงชาติของประเทศลาว]]
=== รากศัพท์ ===
{{unc|th}}; เทียบ{{cog|okz|lahv}}, {{m|okz|lāhv}}, {{m|okz|lāhva}}, {{cog|nod|ᩃᩣ᩠ᩅ}}, {{cog|lo|ລາວ}}, {{cog|khb|ᦟᦱᧁ}}; เป็นไปได้ว่าเกี่ยวข้องกับ{{cog|nod|ᩉᩖᩮᩢ᩵ᩣ}}, {{m|nod|ᩃᩮᩢᩣ}}, {{cog|twh|ꪹꪩꪱ}}, {{cog|th|ละว้า}}, {{m|th|ลัวะ}}<ref>[https://www.silpa-mag.com/history/article_41815 คำว่า “ลาว” มาจากไหน? “คนเมือง” ภาคเหนือ-ล้านนา ถูกเรียกว่าลาวก่อนคนอีสาน-สปป.ลาว?]</ref>
=== การออกเสียง ===
{{th-pron}}
=== คำวิสามานยนาม ===
{{th-proper noun}}
# <!--{{lang|th|([[ประเทศ]]~, [[เมือง]]~)}}--> {{senseid|th|Q819}}{{place|th|ประเทศ|r/เอเชียตะวันออกเฉียงใต้|capital=เวียงจันทน์|official=สาธารณรัฐประชาธิปไตยประชาชนลาว}}
# {{lang|th|([[ภาษา]]~)}} ภาษาทางการของประเทศลาว
==== คำแปลภาษาอื่น ====
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* กรีก: {{t+|el|Λάος|n}}
* กาตาลา: {{t+|ca|Laos|m}}
* เกาหลี: {{t+|ko|^라오스}}
* เขมร: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* คาซัค: {{t+|kk|Лаос}}
* คำเมือง: {{t|nod|ᩃᩣ᩠ᩅ}}
* คีร์กีซ: {{t+|ky|Лаос}}
* เคิร์ด:
*: เคิร์ดเหนือ: {{t+|kmr|Laos}}
* จ้วง: {{t|za|Laujvoh}}
* จอร์เจีย: {{t+|ka|ლაოსი}}
* จีน:
*: จีนกลาง: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|ไต้หวัน}}
* เช็ก: {{t+|cs|Laos|m}}
* เซอร์โบ-โครเอเชีย:
*: อักษรซีริลลิก: {{t|sh|Ла̏ос|m}}
*: อักษรละติน: {{t|sh|Lȁos|m}}
* ญี่ปุ่น: {{t+|ja|ラオス|tr=Raosu}}
* ดัตช์: {{t+|nl|Laos|n}}
* เดนมาร์ก: {{t|da|Laos|n}}
* ตากาล็อก: {{t+|tl|Laos}}
* ตาตาร์: {{t|tt|Лаос}}
* ตาตาร์แบบไครเมีย: {{t|crh|Laos}}
*: ตาตาร์แบบโดบรูจา: {{t|crh|Law}}
* ตุรกี: {{t+|tr|Laos}}
* เตตุน: {{t|tet|Laos}}
* เตลูกู: {{t+|te|లావోస్}}
* เติร์กเมน: {{t|tk|Laos}}
* ทาจิก: {{t+|tg|Лаос}}
* ทิเบต: {{t|bo|ལའོ་སུ}}
* ไทลื้อ: {{t|khb|ᦟᦱᧁ}}
* ไทใหญ่: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
* นอร์มัน: {{t|nrf|Laos|m}}
* นอร์เวย์:
*: นอร์เวย์แบบบุ๊กมอล: {{t+|nb|Laos|n}}
*: นอร์เวย์แบบนือนอสก์: {{t+|nn|Laos|n}}
* นาวาโฮ: {{t|nv|Lááʼos}}
* เนปาล: {{t|ne|लाओस}}
* บัลแกเรีย: {{t+|bg|Лао́с|m}}
* เบงกอล: {{t+|bn|লাওস}}
* เบรอตง: {{t|br|Laos}}
* เบลารุส: {{t|be|Лао́с|m}}
* แบชเคียร์: {{t|ba|Лаос}}
* ปาทาน: {{t|ps|لاوس|m|tr=lāwos}}
* เปอร์เซีย:
*: ดารี: {{t|prs|لَائوس}}
*: เปอร์เซียแบบอิหร่าน: {{t+|fa-ira|لائوس}}
* โปรตุเกส: {{t+|pt|Laos}}
* โปแลนด์: {{t+|pl|Laos|m-in}}
* ฝรั่งเศส: {{t+|fr|Laos|m}}
* พม่า: {{t|my|လာအို}}
* ฟราฟรา: {{t|gur|Laogo}}
* ฟินแลนด์: {{t+|fi|Laos}}
* แฟโร: {{t|fo|Laos|n}}
* ม้ง:
*: ม้งเขียว: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: ม้งขาว: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* มองโกเลีย:
*: อักษรซีริลลิก: {{t+|mn|Лаос}}
*: อักษรมองโกเลีย: {{t|mn|ᠯᠠᠣᠰ}}
* มอลตา: {{t+|mt|Laos}}
* มัลดีฟส์: {{t|dv|ލާއޯސް}}
* มาซิโดเนีย: {{t+|mk|Лаос|m}}
* มาเลเซีย: {{t+|ms|Laos}}
* มาวรี: {{t+|mi|Rāoho}}
* ยิดดิช: {{t|yi|לאַאָס|n}}
* ยูเครน: {{t+|uk|Лао́с|m}}
* เยอรมัน: {{t+|de|Laos|n}}
* โยรูบา: {{t|yo|Laosi}}
* รัสเซีย: {{t+|ru|Лао́с|m}}
* โรมาเนีย: {{t+|ro|Laos|n}}
* ลัตเวีย: {{t+|lv|Laosa|f}}
* ลาว: {{t+|lo|ລາວ}}
* ลิทัวเนีย: {{t+|lt|Laosas|m}}
* เวียดนาม: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* สกอต: {{t|sco|Laos}}
* สเปน: {{t+|es|Laos}}
* สโลวัก: {{t+|sk|Laos|m}}
* สโลวีเนีย: {{t+|sl|Laos|m}}
* สวาฮีลี: {{t|sw|Laos}}
* สวีเดน: {{t+|sv|Laos|n}}
* สันถาลี: {{t|sat|ᱞᱟᱣᱚᱥ}}
* สิงหล: {{t|si|ලාඕසය}}
* อังกฤษ: {{t+|en|Laos}}
* อับคาเซีย: {{t|ab|Лаос}}
* อัมฮารา: {{t|am|ላዎስ}}
* อัสตูเรียส: {{t+|ast|Laos}}
* อัสสัม: {{t|as|লাউচ}}
* อาเซอร์ไบจาน: {{t+|az|Laos}}
* อาฟรีกานส์: {{t|af|Laos}}
* อาร์มีเนีย: {{t+|hy|Լաոս}}
* อารามายา:
*: อารามายาใหม่แบบอัสซีเรีย: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* อาหรับ: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อิตาลี: {{t+|it|Laos|m}}
* อินโดนีเซีย: {{t+|id|Laos}}
* อินเทอร์ลิงกวา: {{t|ia|Laos}}
* อีโด: {{t+|io|Laos}}
* อุซเบก: {{t+|uz|Laos}}
* อุยกูร์: {{t|ug|لائوس}}
* อูรดู: {{t|ur|لاؤس|m}}
* เอสโตเนีย: {{t+|et|Laos}}
* เอสเปรันโต: {{t+|eo|Laoso}}
* แอลเบเนีย: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* ไอซ์แลนด์: {{t+|is|Laos|n}}
* ไอริช: {{t|ga|Laos|m}}
* ฮังการี: {{t+|hu|Laosz}}
* ฮินดี: {{t+|hi|लाओस|m}}
* ฮีบรู: {{t|he|לָאוֹס|f|tr=laos}}
* เฮาซา: {{t|ha|Laos}}
{{trans-bottom}}
=== คำนาม ===
{{th-noun|คน}}
# {{lang|th|([[คน]]~, [[ชาว]]~)}} บุคคลที่เกิดหรือโตในประเทศลาว
#: {{syn|th|มลาว}}
==== คำแปลภาษาอื่น ====
{{trans-top|คนลาว}}
* ดัตช์: {{t+|nl|Laotiaan|m|tr=ลาโอชีอาน}}, {{t+|nl|Laotiaanse|f|tr=ลาโอชีอานเซอ}}
* ฝรั่งเศส: {{t+|fr|Laotien|m|tr=ลาออซีแย็ง}}, {{t+|fr|Laotienne|f|tr=ลาออซีแยน}}
* สเปน: {{t+|es|laosiano|m|tr=ลาโอซีอาโน}}, {{t+|es|laosiana|f|tr=ลาโอซีอานา}}
* ลาว: {{t+|lo|ລາວ}}
* อังกฤษ: {{t+|en|Lao|tr=ลาว}}, {{t+|en|Laotian|tr=เลโอฌัน}}
{{trans-bottom}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
{{topics|th|ประเทศ}}
== ภาษาอีสาน ==
=== การออกเสียง ===
* {{IPA|tts|/laːw˧˦˩/|a=ขอนแก่น}}
* {{IPA|tts|[laːw˧˥]|a=หนองคาย}}
* {{คำอ่านไทย|ล่าว<sup>สูง-ตก</sup>}} (ประมาณ)
=== คำวิสามานยนาม ===
{{head|tts|คำวิสามานยนาม}}
# [[ลาว#ภาษาไทย|ลาว]]
=== คำนาม ===
{{tts-noun}}
# [[ลาว#ภาษาไทย|ลาว]]
=== คำสรรพนาม ===
{{tts-pronoun}}
# [[เขา]] {{gl|คำสรรพนามบุรุษที่ 3}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
* พิณทอง, ป. ''"ลาว" ภาษาอีสาน''. อีสานร้อยแปด. https://esan108.com/dict/view/ลาว
* อีสานร้อยแปด , [https://esan108.com/%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%a5%e0%b8%b2%e0%b8%a7.html ภาษาลาว น่ารัก ๆ]
pxl8lotan328kfhygpdvgukx2fyid5w
5723249
5723248
2026-05-20T03:30:23Z
OctraBot
3198
/* คำแปลภาษาอื่น */
5723249
wikitext
text/x-wiki
== ภาษาไทย ==
{{wp|ประเทศลาว}}
[[File:Laos in its region.svg|thumb|ประเทศลาว]]
[[File:Flag of Laos.svg|thumb|ธงชาติของประเทศลาว]]
=== รากศัพท์ ===
{{unc|th}}; เทียบ{{cog|okz|lahv}}, {{m|okz|lāhv}}, {{m|okz|lāhva}}, {{cog|nod|ᩃᩣ᩠ᩅ}}, {{cog|lo|ລາວ}}, {{cog|khb|ᦟᦱᧁ}}; เป็นไปได้ว่าเกี่ยวข้องกับ{{cog|nod|ᩉᩖᩮᩢ᩵ᩣ}}, {{m|nod|ᩃᩮᩢᩣ}}, {{cog|twh|ꪹꪩꪱ}}, {{cog|th|ละว้า}}, {{m|th|ลัวะ}}<ref>[https://www.silpa-mag.com/history/article_41815 คำว่า “ลาว” มาจากไหน? “คนเมือง” ภาคเหนือ-ล้านนา ถูกเรียกว่าลาวก่อนคนอีสาน-สปป.ลาว?]</ref>
=== การออกเสียง ===
{{th-pron}}
=== คำวิสามานยนาม ===
{{th-proper noun}}
# <!--{{lang|th|([[ประเทศ]]~, [[เมือง]]~)}}--> {{senseid|th|Q819}}{{place|th|ประเทศ|r/เอเชียตะวันออกเฉียงใต้|capital=เวียงจันทน์|official=สาธารณรัฐประชาธิปไตยประชาชนลาว}}
# {{lang|th|([[ภาษา]]~)}} ภาษาทางการของประเทศลาว
==== คำแปลภาษาอื่น ====
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* กรีก: {{t+|el|Λάος|n}}
* กาตาลา: {{t+|ca|Laos|m}}
* เกาหลี: {{t+|ko|^라오스}}
* เขมร: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* คาซัค: {{t+|kk|Лаос}}
* คำเมือง: {{t|nod|ᩃᩣ᩠ᩅ}}
* คีร์กีซ: {{t+|ky|Лаос}}
* เคิร์ด:
*: เคิร์ดเหนือ: {{t+|kmr|Laos}}
* จ้วง: {{t|za|Laujvoh}}
* จอร์เจีย: {{t+|ka|ლაოსი}}
* จีน:
*: จีนกลาง: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|ไต้หวัน}}
* เช็ก: {{t+|cs|Laos|m}}
* เซอร์โบ-โครเอเชีย:
*: อักษรซีริลลิก: {{t|sh|Ла̏ос|m}}
*: อักษรละติน: {{t|sh|Lȁos|m}}
* ญี่ปุ่น: {{t+|ja|ラオス|tr=Raosu}}
* ดัตช์: {{t+|nl|Laos|n}}
* เดนมาร์ก: {{t|da|Laos|n}}
* ตากาล็อก: {{t+|tl|Laos}}
* ตาตาร์: {{t|tt|Лаос}}
* ตาตาร์แบบไครเมีย: {{t|crh|Laos}}
*: ตาตาร์แบบโดบรูจา: {{t|crh|Law}}
* ตุรกี: {{t+|tr|Laos}}
* เตตุน: {{t|tet|Laos}}
* เตลูกู: {{t+|te|లావోస్}}
* เติร์กเมน: {{t|tk|Laos}}
* ทาจิก: {{t+|tg|Лаос}}
* ทิเบต: {{t|bo|ལའོ་སུ}}
* ไทลื้อ: {{t|khb|ᦟᦱᧁ}}
* ไทใหญ่: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
* นอร์มัน: {{t|nrf|Laos|m}}
* นอร์เวย์:
*: นอร์เวย์แบบบุ๊กมอล: {{t+|nb|Laos|n}}
*: นอร์เวย์แบบนือนอสก์: {{t+|nn|Laos|n}}
* นาวาโฮ: {{t|nv|Lááʼos}}
* เนปาล: {{t|ne|लाओस}}
* บัลแกเรีย: {{t+|bg|Лао́с|m}}
* เบงกอล: {{t+|bn|লাওস}}
* เบรอตง: {{t|br|Laos}}
* เบลารุส: {{t|be|Лао́с|m}}
* แบชเคียร์: {{t|ba|Лаос}}
* ปาทาน: {{t|ps|لاوس|m|tr=lāwos}}
* เปอร์เซีย:
*: ดารี: {{t|prs|لَائوس}}
*: เปอร์เซียแบบอิหร่าน: {{t+|fa-ira|لائوس}}
* โปรตุเกส: {{t+|pt|Laos}}
* โปแลนด์: {{t+|pl|Laos|m-in}}
* ฝรั่งเศส: {{t+|fr|Laos|m}}
* พม่า: {{t|my|လာအို}}
* ฟราฟรา: {{t|gur|Laogo}}
* ฟินแลนด์: {{t+|fi|Laos}}
* แฟโร: {{t|fo|Laos|n}}
* ม้ง:
*: ม้งเขียว: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: ม้งขาว: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* มองโกเลีย:
*: อักษรซีริลลิก: {{t+|mn|Лаос}}
*: อักษรมองโกเลีย: {{t|mn|ᠯᠠᠣᠰ}}
* มอลตา: {{t+|mt|Laos}}
* มัลดีฟส์: {{t|dv|ލާއޯސް}}
* มาซิโดเนีย: {{t+|mk|Лаос|m}}
* มาเลเซีย: {{t+|ms|Laos}}
* มาวรี: {{t+|mi|Rāoho}}
* ยิดดิช: {{t|yi|לאַאָס|n}}
* ยูเครน: {{t+|uk|Лао́с|m}}
* เยอรมัน: {{t+|de|Laos|n}}
* โยรูบา: {{t|yo|Laosi}}
* รัสเซีย: {{t+|ru|Лао́с|m}}
* โรมาเนีย: {{t+|ro|Laos|n}}
* ลัตเวีย: {{t+|lv|Laosa|f}}
* ลาว: {{t+|lo|ລາວ}}
* ลิทัวเนีย: {{t+|lt|Laosas|m}}
* เวียดนาม: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* สกอต: {{t|sco|Laos}}
* สเปน: {{t+|es|Laos}}
* สโลวัก: {{t+|sk|Laos|m}}
* สโลวีเนีย: {{t+|sl|Laos|m}}
* สวาฮีลี: {{t|sw|Laos}}
* สวีเดน: {{t+|sv|Laos|n}}
* สันถาลี: {{t|sat|ᱞᱟᱣᱚᱥ}}
* สิงหล: {{t|si|ලාඕසය}}
* อังกฤษ: {{t+|en|Laos}}
* อับคาเซีย: {{t|ab|Лаос}}
* อัมฮารา: {{t|am|ላዎስ}}
* อัสตูเรียส: {{t+|ast|Laos}}
* อัสสัม: {{t|as|লাউচ}}
* อาเซอร์ไบจาน: {{t+|az|Laos}}
* อาฟรีกานส์: {{t|af|Laos}}
* อาร์มีเนีย: {{t+|hy|Լաոս}}
* อารามายา:
*: อารามายาใหม่แบบอัสซีเรีย: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* อาหรับ: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อิตาลี: {{t+|it|Laos|m}}
* อินโดนีเซีย: {{t+|id|Laos}}
* อินเทอร์ลิงกวา: {{t|ia|Laos}}
* อีโด: {{t+|io|Laos}}
* อุซเบก: {{t+|uz|Laos}}
* อุยกูร์: {{t|ug|لائوس}}
* อูรดู: {{t|ur|لاؤس|m}}
* เอสโตเนีย: {{t+|et|Laos}}
* เอสเปรันโต: {{t+|eo|Laoso}}
* แอลเบเนีย: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* ไอซ์แลนด์: {{t+|is|Laos|n}}
* ไอริช: {{t|ga|Laos|m}}
* ฮังการี: {{t+|hu|Laosz}}
* ฮินดี: {{t+|hi|लाओस|m}}
* ฮีบรู: {{t|he|לָאוֹס|f|tr=laos}}
* เฮาซา: {{t|ha|Laos}}
{{trans-bottom}}
{{trans-top|ภาษาลาว}}
* ลาว: {{t+|lo|ລາວ}}
* อังกฤษ: {{t+|en|Lao}}
{{trans-bottom}}
=== คำนาม ===
{{th-noun|คน}}
# {{lang|th|([[คน]]~, [[ชาว]]~)}} บุคคลที่เกิดหรือโตในประเทศลาว
#: {{syn|th|มลาว}}
==== คำแปลภาษาอื่น ====
{{trans-top|คนลาว}}
* ดัตช์: {{t+|nl|Laotiaan|m|tr=ลาโอชีอาน}}, {{t+|nl|Laotiaanse|f|tr=ลาโอชีอานเซอ}}
* ฝรั่งเศส: {{t+|fr|Laotien|m|tr=ลาออซีแย็ง}}, {{t+|fr|Laotienne|f|tr=ลาออซีแยน}}
* สเปน: {{t+|es|laosiano|m|tr=ลาโอซีอาโน}}, {{t+|es|laosiana|f|tr=ลาโอซีอานา}}
* ลาว: {{t+|lo|ລາວ}}
* อังกฤษ: {{t+|en|Lao|tr=ลาว}}, {{t+|en|Laotian|tr=เลโอฌัน}}
{{trans-bottom}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
{{topics|th|ประเทศ}}
== ภาษาอีสาน ==
=== การออกเสียง ===
* {{IPA|tts|/laːw˧˦˩/|a=ขอนแก่น}}
* {{IPA|tts|[laːw˧˥]|a=หนองคาย}}
* {{คำอ่านไทย|ล่าว<sup>สูง-ตก</sup>}} (ประมาณ)
=== คำวิสามานยนาม ===
{{head|tts|คำวิสามานยนาม}}
# [[ลาว#ภาษาไทย|ลาว]]
=== คำนาม ===
{{tts-noun}}
# [[ลาว#ภาษาไทย|ลาว]]
=== คำสรรพนาม ===
{{tts-pronoun}}
# [[เขา]] {{gl|คำสรรพนามบุรุษที่ 3}}
=== อ้างอิง ===
{{รายการอ้างอิง}}
* พิณทอง, ป. ''"ลาว" ภาษาอีสาน''. อีสานร้อยแปด. https://esan108.com/dict/view/ลาว
* อีสานร้อยแปด , [https://esan108.com/%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b8%a5%e0%b8%b2%e0%b8%a7.html ภาษาลาว น่ารัก ๆ]
3qus5l0qmopduuaohw9kyqcg473s8nf
crayon
0
4308
5723265
1997586
2026-05-20T04:00:30Z
InternetArchiveBot
12208
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
5723265
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
[[File:Crayola 24pack 2005.jpg|thumb|Wax crayons.]]
=== การออกเสียง ===
* {{enPR|krāʹän}}
* {{IPA|en|/ˈkɹeɪ.ən/|/ˈkɹeɪ.ɒ̃/|a=UK}}<!--[ˈkʰɹeən]?-->
* {{IPA|en|/ˈkɹeɪ.ɒn/|[ˈkʰɹeɪ.ɑn]|a=US}}; ''also'' {{IPAchar|/ˈkɹeɪ.ɔn/|lang=en}} {{qualifier|the most common pronunciations, used by 83% of Americans}}<ref name="Harvard Dialect Survey">[https://web.archive.org/web/20200515154334/http://www4.uwm.edu/FLL/linguistics/dialect/staticmaps/q_9.html Harvard Dialect Survey]</ref>
* {{IPA|en|/ˈkɹæn/|[ˈkɹeən]|a=US,uncommon,especially Northeastern US,Midwestern US}}<ref name="Harvard Dialect Survey"/>
* {{a|US|rare|especially Philadelphia|New Jersey|sometimes Southern US}} {{IPA|en|/ˈkɹaʊn/|[ˈkɹɛɔn]|[ˈkɹæɔn]}}<ref name="Harvard Dialect Survey"/>
* {{rhymes|en|aʊn}}
=== คำนาม ===
{{en-noun}}
# [[ดินสอสี]]
# [[สีเทียน]]
# [[ชอล์กสี]]
=== อ่านเพิ่ม ===
* {{pedia}}
=== อ้างอิง ===
<references/>
== ภาษาฝรั่งเศส ==
===การออกเสียง===
* {{audio|fr|Fr-crayon.ogg}}
=== คำนาม ===
{{fr-noun|m}}
# [[ดินสอ]]
4h02hkyn1dztuomzt6u4eqlriza5bvo
मुहब्बत
0
6400
5723233
795280
2026-05-20T00:23:02Z
OctraBot
3198
เก็บกวาด
5723233
wikitext
text/x-wiki
== ภาษาฮินดี ==
=== รูปแบบอื่น ===
* {{alter|hi|मोहब्बत}}
=== รากศัพท์ ===
{{root|hi|ar|ح ب ب}}
{{bor+|hi|fa-cls|محبت|tr=muhabbat}}, จาก{{der|hi|ar|مَحَبَّة||ความชอบ}}
=== การออกเสียง ===
* {{hi-IPA}}
=== คำนาม ===
{{hi-noun|f|ur=محبت}}
# [[ความรัก]]
# [[ความชอบ]]
==== การผันรูป ====
{{hi-ndecl|<F>}}
==== คำพ้องความ ====
* {{l|hi|इश्क़}}
* {{l|hi|प्रेम}}
* {{l|hi|प्यार}}
=== อ้างอิง ===
* {{R:hi:McGregor}}
* {{R:Platts}}
aphj8vks97f4nxu4rs3d8xw7w7gm8d2
Lào
0
13399
5723299
1916133
2026-05-20T06:59:07Z
OctraBot
3198
/* ภาษาเวียดนาม */ เก็บกวาด
5723299
wikitext
text/x-wiki
{{also/auto}}
== ภาษาเวียดนาม ==
{{wp|vi:}}
=== รากศัพท์ ===
{{bor+|vi|lo|ລາວ}}
=== การออกเสียง ===
{{vi-IPA}}
=== คำวิสามานยนาม ===
{{vi-propn|[[牢]], [[𦰤]]}}
# {{vi-type|nước}} {{tcl|vi|ลาว|id=Q819}}
#: {{ux|vi|Nước '''Lào''' là nước nào?|Which country is Laos?}}
==== ดูเพิ่ม ====
{{col|vi|tông lào|dép lào|thuốc lào|Đông Lào}}
==== ดูเพิ่ม ====
{{list:countries in Asia/vi}}
=== คำสลับอักษร ===
* {{anagrams|vi|loà}}
a0xranv6za5wpfgaw8ovdswvzimlbzw
لاوس
0
13418
5723264
1916236
2026-05-20T03:57:02Z
OctraBot
3198
/* ภาษาอาหรับ */ เก็บกวาด
5723264
wikitext
text/x-wiki
== ภาษาอาหรับ ==
{{wp|ar:}}
=== รากศัพท์ ===
{{bor+|ar|fr|Laos}}
=== การออกเสียง ===
{{ar-pr|لَاوْس,lāwos}}
=== คำวิสามานยนาม ===
{{ar-proper noun|لَاوْس,لَاوُس|f}}
# {{tcl|ar|ลาว|id=Q819}}
==== คำเกี่ยวข้อง ====
* {{l|ar|لَاوْسِيّ}}
* {{l|ar|لَاوُسِيّ}}
2jthmjpcxmbb7vaz7jw8ovlujf7vm0j
לאוס
0
13435
5723304
1272329
2026-05-20T07:01:44Z
OctraBot
3198
/* ภาษาฮีบรู */ เก็บกวาด
5723304
wikitext
text/x-wiki
== ภาษาฮีบรู ==
{{wp|he:}}
=== การออกเสียง ===
* {{IPA|he|/ˈlaʔos/|a=IL}}
* {{audio|he|LL-Q9288 (heb)-Buffer-לאוס.wav}}
=== คำวิสามานยนาม ===
{{he-proper noun|wv=לָאוֹס}}
# {{tcl|he|ลาว|id=Q819}}
hi2sayzhzofznnscps6d4x8yxlouvnk
लाओस
0
13462
5723262
1913647
2026-05-20T03:52:54Z
OctraBot
3198
/* ภาษาฮินดี */ เก็บกวาด
5723262
wikitext
text/x-wiki
== ภาษาฮินดี ==
{{wp|hi:}}
=== รากศัพท์ ===
{{bor+|hi|en|Laos}}, จาก{{der|hi|fr|Laos}}, จาก{{der|hi|lo|ລາວ}}
=== การออกเสียง ===
* {{hi-IPA}}
=== คำวิสามานยนาม ===
{{hi-proper noun|m|ur=لاؤس}}
# {{tcl|hi|ลาว|id=Q819}}
==== การผันรูป ====
{{hi-ndecl|<M.sg>}}
==== ลูกคำ ====
* {{l|hi|लाओसी}}
==== ดูเพิ่ม ====
{{list:countries in Asia/hi}}
=== คำวิสามานยนาม ===
{{hi-proper noun|f|ur=لاؤس}}
# [[ภาษาลาว]]
==== การผันรูป ====
{{hi-ndecl|<F.sg>}}
{{topics|hi|ชื่อภาษา}}
eal8bd5gmzfj7qlsddr03zxpi8jsuhe
라오스
0
13495
5723250
1434614
2026-05-20T03:32:04Z
OctraBot
3198
เก็บกวาด
5723250
wikitext
text/x-wiki
== ภาษาเกาหลี ==
=== การออกเสียง ===
{{ko-IPA|cap=y}}
=== คำวิสามานยนาม ===
{{ko-pos|proper noun}}
# {{tcl|ko|ลาว|id=Q819}}
==== Coordinate terms ====
{{list:countries in Asia/ko}}
3smqywfykx33mwvyqmj5w5c9zk9uil7
ラオス
0
13543
5723255
2234333
2026-05-20T03:42:28Z
OctraBot
3198
/* ภาษาญี่ปุ่น */ เก็บกวาด
5723255
wikitext
text/x-wiki
== ภาษาญี่ปุ่น ==
{{ja-kanjitab|alt=羅宇:dated,老檛:เลิกใช้}}
{{swp|ja:}}
=== การออกเสียง ===
{{ja-pron|acc=1}}
=== คำวิสามานยนาม ===
{{ja-pos|proper}}
# {{tcl|ja|ลาว|id=Q819}}
=== ดูเพิ่ม ===
* {{ja-r|ラオス人%民 民%主 共%和%国|^ラオス ^じん%みん ^みん%しゅ ^きょう%わ%こく}}
{{cln|ja|exonyms}}
ao0o9ehsu5he6klqhdqj1f1bjz9hbgc
บัก
0
23472
5723309
1882413
2026-05-20T11:50:11Z
OctraBot
3198
/* ภาษาอีสาน */
5723309
wikitext
text/x-wiki
{{also/auto}}
== ภาษาคำเมือง ==
=== การออกเสียง ===
* {{IPA|nod|/bǎk/}}
=== คำนาม ===
{{nod-noun}}
# [[อวัยวะเพศชาย]]
== ภาษาเลอเวือะตะวันตก ==
=== การออกเสียง ===
* {{IPA|lcp|/bak/}}
=== คำนาม ===
{{head|lcp|คำนาม}}
# [[กบ]]
== ภาษาอีสาน ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{tts-noun}}
# [[คำ]][[เรียก]][[ชื่อ]][[ชาย]][[ที่]][[มี]][[อายุ]][[เสมอ]][[กัน]][[หรือ]][[ต่ำ]][[กว่า]]
=== รากศัพท์ 2 ===
แผลงมาจาก {{m|tts|หมาก}}
==== คำนาม ====
{{tts-noun}}
# [[คำ]][[นำ]][[หน้า]][[ชื่อ]][[ผลไม้]] [[เหมือน]][[กับ]] [[มะ]] [[ใน]][[ภาษาไทย]][[กลาง]]
5r82wmw5zhmlbrb54ksgzm0ovzp7nhf
5723310
5723309
2026-05-20T11:51:34Z
OctraBot
3198
/* ภาษาอีสาน */ เก็บกวาด
5723310
wikitext
text/x-wiki
{{also/auto}}
== ภาษาคำเมือง ==
=== การออกเสียง ===
* {{IPA|nod|/bǎk/}}
=== คำนาม ===
{{nod-noun}}
# [[อวัยวะเพศชาย]]
== ภาษาเลอเวือะตะวันตก ==
=== การออกเสียง ===
* {{IPA|lcp|/bak/}}
=== คำนาม ===
{{head|lcp|คำนาม}}
# [[กบ]]
== ภาษาอีสาน ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{tts-noun}}
# [[คำ]][[เรียก]][[ชื่อ]][[ชาย]][[ที่]][[มี]][[อายุ]][[เสมอ]][[กัน]][[หรือ]][[ต่ำ]][[กว่า]]
=== รากศัพท์ 2 ===
แผลงมาจาก {{m|tts|หมาก}}
==== คำนาม ====
{{tts-noun}}
# คำ[[นำ]][[หน้า]]ชื่อ[[ผลไม้]], [[เหมือน]][[กับ]] [[มะ]] [[ใน]][[ภาษาไทย]][[กลาง]]
=== รากศัพท์ 3 ===
==== คำกริยา ====
{{tts-verb}}
# [[ฟัน]][[ไม้]][[ให้]][[คอด]]หรือให้[[กิ่ว]]
6vdue92nimgr7tjs3ptg03m455od5t4
5723311
5723310
2026-05-20T11:56:47Z
OctraBot
3198
/* รากศัพท์ 3 */
5723311
wikitext
text/x-wiki
{{also/auto}}
== ภาษาคำเมือง ==
=== การออกเสียง ===
* {{IPA|nod|/bǎk/}}
=== คำนาม ===
{{nod-noun}}
# [[อวัยวะเพศชาย]]
== ภาษาเลอเวือะตะวันตก ==
=== การออกเสียง ===
* {{IPA|lcp|/bak/}}
=== คำนาม ===
{{head|lcp|คำนาม}}
# [[กบ]]
== ภาษาอีสาน ==
=== รากศัพท์ 1 ===
==== คำนาม ====
{{tts-noun}}
# [[คำ]][[เรียก]][[ชื่อ]][[ชาย]][[ที่]][[มี]][[อายุ]][[เสมอ]][[กัน]][[หรือ]][[ต่ำ]][[กว่า]]
=== รากศัพท์ 2 ===
แผลงมาจาก {{m|tts|หมาก}}
==== คำนาม ====
{{tts-noun}}
# คำ[[นำ]][[หน้า]]ชื่อ[[ผลไม้]], [[เหมือน]][[กับ]] [[มะ]] [[ใน]][[ภาษาไทย]][[กลาง]]
=== รากศัพท์ 3 ===
แผลงมาจาก {{m|tts|บาก}}
==== คำกริยา ====
{{tts-verb}}
# [[ฟัน]][[ไม้]][[ให้]][[คอด]]หรือให้[[กิ่ว]]
4vj4q92mrg104uwjztsirw45x56975h
ᦟᦱᧁ
0
30536
5723260
1424029
2026-05-20T03:51:28Z
OctraBot
3198
/* ภาษาไทลื้อ */ เก็บกวาด
5723260
wikitext
text/x-wiki
== ภาษาไทลื้อ ==
=== รากศัพท์ ===
เทียบ{{cog|lo|ລາວ}}, {{cog|th|ลาว}}
=== การออกเสียง ===
{{khb-pron}}
=== คำวิสามานยนาม ===
{{khb-proper noun}}
# {{tcl|khb|ลาว|id=Q819}}
5ciaperb0z27gun3slt79xp5gfnta9k
มอดูล:languages/data/3/g
828
36380
5723239
5720757
2026-05-20T03:22:25Z
OctraBot
3198
5723239
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["gaa"] = {
"Ga",
33287,
"alv-gda",
"Latn",
}
m["gab"] = {
"Gabri",
3441237,
"cdc-est",
"Latn",
}
m["gac"] = {
"Mixed Great Andamanese",
56329630,
"qfa-adn",
"Latn",
}
m["gad"] = { -- not to be confused with gdk, gdg
"Gaddang",
3438830,
"phi",
"Latn",
}
m["gae"] = {
"Warekena",
1091095,
"awd-nwk",
"Latn",
}
m["gaf"] = {
"Gende",
3100425,
"ngf-kag",
"Latn",
}
m["gag"] = {
"กากาอุซ",
33457,
"trk-ogz",
"Latn, Cyrl",
ancestors = "trk-oat",
dotted_dotless_i = true,
sort_key = {
Latn = {
from = {
"i", -- Ensure "i" comes after "ı".
"ä", "ç", "ê", "ı", "ö", "ş", "ţ", "ü"
},
to = {
"i" .. p[1],
"a" .. p[1], "c" .. p[1], "e" .. p[1], "i", "o" .. p[1], "s" .. p[1], "t" .. p[1], "u" .. p[1]
}
},
},
}
m["gah"] = {
"Alekano",
3441595,
"ngf-kag",
"Latn",
}
m["gai"] = {
"Borei",
6799756,
"paa-ram",
"Latn",
}
m["gaj"] = {
"Gadsup",
5516467,
"ngf-kag",
"Latn",
}
m["gak"] = {
"Gamkonora",
5520226,
"paa-nha",
"Latn",
}
m["gal"] = {
"Galoli",
35322,
"poz-tim",
"Latn",
}
m["gam"] = {
"Kandawo",
6361369,
"ngf-chw",
"Latn",
}
m["gan"] = {
"กั้น",
33475,
"zhx",
"Hants",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["gao"] = {
"Gants",
5521529,
"ngf-eso",
"Latn",
}
m["gap"] = {
"Gal",
5517742,
"ngf-han",
"Latn",
}
m["gaq"] = {
"Gata'",
3501920,
"mun",
"Orya",
}
m["gar"] = {
"Galeya",
5518509,
"poz-ocw",
"Latn",
}
m["gas"] = {
"Adiwasi Garasia",
12953522,
"inc-bhi",
"Deva, Gujr",
ancestors = "bhb",
}
m["gat"] = {
"Kenati",
4219330,
"ngf-kag",
"Latn",
}
m["gau"] = {
"Kondekor",
12952433,
"dra-pgd",
"Telu",
}
m["gaw"] = {
"Nobonob",
11732205,
"ngf-han",
"Latn",
}
m["gay"] = {
"Gayo",
33286,
"poz-nws",
"Latn",
}
m["gbb"] = {
"Kaytetye",
6380709,
"aus-rnd",
"Latn",
}
m["gbd"] = {
"Karadjeri",
3913837,
"aus-pam",
"Latn",
}
m["gbe"] = {
"Niksek",
56375,
"paa-spk",
"Latn",
}
m["gbf"] = {
"Gaikundi",
5517032,
"paa-ndu",
"Latn",
}
m["gbg"] = {
"Gbanziri",
35306,
"nic-nkg",
"Latn",
}
m["gbh"] = {
"Defi Gbe",
12952446,
"alv-gbe",
"Latn",
}
m["gbi"] = {
"Galela",
3094570,
"paa-nha",
"Latn",
}
m["gbj"] = {
"Bodo Gadaba",
3347070,
"mun",
"Orya",
}
m["gbk"] = {
"Gaddi",
17455500,
"him",
"Deva, Takr",
translit = {
Deva = "Deva-translit",
},
}
m["gbl"] = {
"Gamit",
2731717,
"inc-bhi",
"Deva, Gujr",
translit = {
Deva = "Deva-translit",
Gujr = "Gujr-translit",
},
}
m["gbm"] = {
"Garhwali",
33459,
"inc-pah",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["gbn"] = {
"Mo'da",
12755683,
"csu-bbk",
"Latn",
}
m["gbo"] = {
"Northern Grebo",
11157042,
"grb",
"Latn",
}
m["gbp"] = {
"Gbaya-Bossangoa",
11011295,
"gba-wes",
"Latn",
}
m["gbq"] = {
"Gbaya-Bozoum",
4952879,
"gba-wes",
"Latn",
}
m["gbr"] = {
"Gbagyi",
11015105,
"alv-ngb",
"Latn",
}
m["gbs"] = {
"Gbesi Gbe",
12952448,
"alv-pph",
"Latn",
}
m["gbu"] = {
"Gagadu",
35677,
"aus-arn",
"Latn",
}
m["gbv"] = {
"Gbanu",
3914945,
"gba-eas",
"Latn",
}
m["gbw"] = {
"Gabi",
5515391,
"aus-pam",
"Latn",
}
m["gbx"] = {
"Eastern Xwla Gbe",
18379975,
"alv-pph",
"Latn",
}
m["gby"] = {
"Gbari",
3915451,
"alv-ngb",
"Latn",
}
m["gcc"] = {
"Mali",
6743338,
"paa-bng",
"Latn",
}
m["gcd"] = {
"Ganggalida",
3913765,
"aus-tnk",
"Latn",
}
m["gce"] = {
"Galice",
20711,
"ath-pco",
"Latn",
}
m["gcf"] = {
"Antillean Creole",
3006280,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["gcl"] = {
"Grenadian Creole English",
4252500,
"crp",
"Latn",
ancestors = "en",
}
m["gcn"] = {
"Gaina",
11732195,
"paa-bin",
"Latn",
}
m["gcr"] = {
"Guianese Creole",
1363072,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["gct"] = {
"Colonia Tovar German",
1138351,
"gmw-hgm",
"Latn",
ancestors = "gsw",
}
m["gdb"] = {
"Ollari",
33906,
"dra-pgd",
"Orya, Telu",
translit = {
Orya = "Orya-translit",
Telu = "Telu-translit"
},
}
m["gdc"] = {
"Gugu Badhun",
10510360,
"aus-pam",
"Latn",
}
m["gdd"] = {
"Gedaged",
35292,
"poz-ocw",
"Latn",
}
m["gde"] = {
"Gude",
3441230,
"cdc-cbm",
"Latn",
}
m["gdf"] = {
"Guduf-Gava",
3441350,
"cdc-cbm",
"Latn",
}
m["gdg"] = { -- not to be confused with gad, gdk
"Ga'dang",
5515189,
"phi",
"Latn",
}
m["gdh"] = {
"Gadjerawang",
3913817,
"aus-jar",
"Latn",
}
m["gdi"] = {
"Gundi",
11137851,
"nic-nkb",
"Latn",
}
m["gdj"] = {
"Kurtjar",
5619931,
"aus-pmn",
"Latn",
}
m["gdk"] = { -- not to be confused with gad, gdg
"Gadang",
56256,
"cdc-est",
"Latn",
}
m["gdl"] = {
"Dirasha",
56809,
"cus-eas",
"Ethi",
}
m["gdm"] = {
"Laal",
33436,
"qfa-dis", -- Chad; unclassified, isolate or grouped with Adamawa or Chadic languages
"Latn",
}
m["gdn"] = {
"Umanakaina",
7881084,
"ngf-dag",
"Latn",
}
m["gdo"] = {
"Godoberi",
56515,
"cau-and",
"Cyrl",
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
strip_diacritics = {Cyrl = s["cau-Cyrl-stripdiacritics"]},
}
m["gdq"] = {
"Mehri",
13361,
"sem-sar",
"Arab, Latn",
}
m["gdr"] = {
"Wipi",
8026711,
"paa-etf",
"Latn",
}
m["gds"] = {
"Ghandruk Sign Language",
15971577,
"sgn",
}
m["gdt"] = {
"Kungardutyi",
6444517,
"aus-kar",
"Latn",
}
m["gdu"] = {
"Gudu",
3441172,
"cdc-cbm",
"Latn",
}
m["gdx"] = {
"Godwari",
3540922,
"raj",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["gea"] = {
"Geruma",
3438789,
"cdc-wst",
"Latn",
}
m["geb"] = {
"Kire",
11129733,
"paa-ram",
"Latn",
}
m["gec"] = {
"Gboloo Grebo",
11019342,
"grb",
"Latn",
}
m["ged"] = {
"Gade",
3914459,
"alv-nup",
"Latn",
}
m["geg"] = {
"Gengle",
3438345,
"alv-mye",
"Latn",
ancestors = "kow",
}
m["geh"] = {
"Hutterisch",
33385,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gei"] = {
"Gebe",
3100032,
"poz-hce",
"Latn",
}
m["gej"] = {
"Gen",
33450,
"alv-gbe",
"Latn",
}
m["gek"] = {
"Gerka",
3441277,
"cdc-wst",
"Latn",
}
m["gel"] = {
"Fakkanci",
36627,
"nic-knn",
"Latn",
}
m["geq"] = {
"Geme",
3915851,
"znd",
"Latn",
}
m["ges"] = {
"Geser-Gorom",
5553579,
"poz-cma",
"Latn",
}
m["gev"] = {
"Viya",
7937974,
"bnt-tso",
"Latn",
}
m["gew"] = {
"Gera",
3438725,
"cdc-wst",
"Latn",
}
m["gex"] = {
"Garre",
56618,
"cus-som",
"Latn",
}
m["gey"] = {
"Enya",
5381452,
"bnt-mbe",
"Latn",
}
m["gez"] = {
"กืออึซ",
35667,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["gfk"] = {
"Patpatar",
3368846,
"poz-ocw",
"Latn",
}
m["gft"] = {
"Gafat",
56910,
"sem-eth",
"Ethi, Latn",
}
m["gga"] = {
"Gao",
3095228,
"poz-ocw",
"Latn",
}
m["ggb"] = {
"Gbii",
3914390,
"kro-wkr",
"Latn",
}
m["ggd"] = {
"Gugadj",
5615186,
"aus-pmn",
"Latn",
}
m["gge"] = {
"Guragone",
5619801,
"aus-arn",
"Latn",
}
m["ggg"] = {
"Gurgula",
5620032,
"raj",
"Arab",
}
m["ggk"] = {
"Kungarakany",
6444516,
"aus-arn",
"Latn",
}
m["ggl"] = {
"Ganglau",
5521140,
"ngf-yag",
"Latn",
}
m["ggn"] = {
"Eastern Gurung",
12952472,
"sit-tam",
"Gukh, Deva",
translit = {
Deva = "Deva-translit",
},
}
m["ggt"] = {
"Gitua",
3107865,
"poz-ocw",
"Latn",
}
m["ggu"] = {
"Gban",
3913317,
"dmn-nbe",
"Latn",
}
m["ggw"] = {
"Gogodala",
3512161,
"ngf-gsu",
"Latn",
}
m["gha"] = {
"Ghadames",
56747,
"ber",
"Latn", -- and other scripts?
}
m["ghc"] = {
"แกลิกคลาสสิก",
5128278,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
}
m["ghe"] = {
"Southern Ghale",
12952453,
"sit-tam",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["ghh"] = {
"Northern Ghale",
22662104,
"sit-tam",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["ghk"] = {
"Geko Karen",
5530317,
"kar",
}
m["ghl"] = {
"Ghulfan",
16885737,
"nub-hil",
"Latn", -- and others?
}
m["ghn"] = {
"Ghanongga",
3104772,
"poz-ocw",
"Latn",
}
m["gho"] = {
"Ghomara",
35315,
"ber",
"Tfng, Latn",
translit = {Tfng = "Tfng-translit"},
}
m["ghr"] = {
"Ghera",
22808992,
"inc-hiw",
}
m["ghs"] = {
"Guhu-Samane",
11732219,
"paa-gbi",
"Latn",
}
m["ght"] = {
"Kutang Ghale",
6448337,
"sit-tam",
"Tibt",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["gia"] = {
"Kitja",
1284877,
"aus-jar",
"Latn",
}
m["gib"] = {
"Gibanawa",
12953530,
"crp",
"Latn",
ancestors = "ha",
}
m["gid"] = {
"Gidar",
35265,
"cdc-cbm",
"Latn",
}
m["gie"] = {
"Guébie",
63140714,
"kro-did",
"Latn",
}
m["gig"] = {
"Goaria",
33269,
"raj",
"Arab",
}
m["gih"] = {
"Githabul",
48987680,
"aus-pam",
"Latn",
}
m["gii"] = {
"Girirra",
5564288,
"cus-som",
}
m["gil"] = {
"กิลเบิร์ต",
30898,
"poz-mic",
"Latn",
}
m["gim"] = {
"Gimi (Papuan)",
11732209,
"ngf-kag",
"Latn",
}
m["gin"] = {
"Hinukh",
33283,
"cau-wts",
"Cyrl",
translit = "gin-translit",
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
strip_diacritics = {Cyrl = s["cau-Cyrl-stripdiacritics"]},
}
m["gip"] = {
"Gimi (Austronesian)",
12952457,
"poz-ocw",
}
m["giq"] = {
"Green Gelao",
12953525,
"gio",
"Latn",
}
m["gir"] = {
"Red Gelao",
3100264,
"gio",
}
m["gis"] = {
"North Giziga",
3515084,
"cdc-cbm",
}
m["git"] = {
"Gitxsan",
3107862,
"nai-tsi",
"Latn",
}
m["giu"] = {
"Mulao",
11092831,
"gio",
}
m["giw"] = {
"White Gelao",
8843040,
"gio",
}
m["gix"] = {
"Gilima",
10977716,
"nic-nkm",
"Latn",
}
m["giy"] = {
"Giyug",
5565906,
}
m["giz"] = {
"South Giziga",
3502232,
"cdc-cbm",
}
m["gji"] = {
"Geji",
3914890,
"cdc-wst",
"Latn",
}
m["gjk"] = {
"Kachi Koli",
12953646,
"inc-wes",
}
m["gjm"] = {
"Gunditjmara",
6448731,
"aus-pam",
"Latn",
}
m["gjn"] = {
"Gonja",
35267,
"alv-gng",
"Latn",
}
m["gjr"] = {
"Gurindji Kriol",
5620091,
"qfa-mix",
"Latn",
ancestors = "gue, rop"
}
m["gju"] = {
"Gojri",
3241731,
"raj",
"ur-Arab, Deva, Takr",
strip_diacritics = {
["ur-Arab"] = {
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.smallv,
from = {"ڵ", "ݩ"},
to = {"ل", "ن"}
},
},
translit = {
--["ur-Arab"] = "ur-translit",
Deva = "Deva-translit",
},
}
m["gka"] = {
"Guya",
11732221,
"ngf-fin",
"Latn",
}
m["gkd"] = {
"Magɨ",
55621742,
"ngf-ais",
"Latn",
}
m["gke"] = {
"Ndai",
6983667,
"alv-mbm",
}
m["gkn"] = {
"Gokana",
3075137,
"nic-ogo",
"Latn",
}
m["gko"] = {
"Kok-Nar",
6426526,
"aus-pmn",
"Latn",
}
m["gkp"] = {
"Guinea Kpelle",
11052867,
"dmn-msw",
"Latn, Kpel",
ancestors = "kpe",
}
m["glc"] = {
"Bon Gula",
289816,
"alv-bua",
}
m["gld"] = {
"Nanai",
13303,
"tuw-nan",
"Cyrl",
translit = "gld-translit",
strip_diacritics = {remove_diacritics = c.macron},
sort_key = {
from = {"ё", "ӈ"},
to = {"е" .. p[1], "н" .. p[1]}
},
}
m["glh"] = {
"Northwest Pashayi",
23713532,
"inc-pas",
"fa-Arab",
}
m["glj"] = {
"Kulaal",
33360,
"alv-bua",
}
m["glk"] = {
"Gilaki",
33657,
"ira-csp",
"fa-Arab",
}
m["glo"] = {
"Galambu",
2598797,
"cdc-wst",
"Latn",
}
m["glr"] = {
"Glaro-Twabo",
3915313,
"kro-wee",
}
m["glu"] = {
"Gula",
5617176,
"csu-bgr",
"Latn",
}
m["glw"] = {
"Glavda",
3441285,
"cdc-cbm",
"Latn",
}
m["gly"] = {
"Gule",
3120736,
"ssa-kom",
}
m["gma"] = {
"Gambera",
10502327,
"aus-wor",
"Latn",
}
m["gmb"] = {
"Gula'alaa",
3120733,
"poz-sls",
"Latn",
}
m["gmd"] = {
"Mághdì",
3914475,
"alv-bwj",
}
m["gmg"] = {
"Magiyi",
16926155,
"ngf-sog",
"Latn",
}
m["gmh"] = {
"เยอรมันสูงกลาง",
837985,
"gmw-hgm",
"Latn",
strip_diacritics = {
remove_diacritics = c.circ .. c.macron,
from = {"Ë", "ë", "[ƷȤ]", "[ʒȥ]"},
to = {"E", "e", "Z", "z"}
},
}
m["gml"] = {
"เยอรมันต่ำกลาง",
505674,
"gmw-lgm",
"Latn",
strip_diacritics = {remove_diacritics = c.circ .. c.macron .. c.diaer},
}
m["gmm"] = {
"Gbaya-Mbodomo",
6799713,
"gba-eas",
"Latn",
}
m["gmn"] = {
"Gimnime",
11016905,
"alv-dur",
"Latn",
}
m["gmr"] = {
"Mirning",
6873793,
"aus-pam",
"Latn",
}
m["gmu"] = {
"Gumalu",
5618027,
"ngf-gum",
"Latn",
}
m["gmv"] = {
"กาโม",
16116386,
"omv-nom",
"Latn, Ethi",
}
m["gmx"] = {
"Magoma",
16939552,
"bnt-bki",
}
m["gmy"] = {
"กรีกแบบไมซีนี",
668366,
"grk",
"Linb",
translit = "Linb-translit",
}
m["gmz"] = {
"Mgbo",
6826835,
"alv-igb",
ancestors = "izi",
}
m["gna"] = {
"Kaansa",
56802,
"nic-gur",
}
m["gnb"] = {
"Gangte",
12952442,
"tbq-kuk",
}
m["gnc"] = {
"Guanche",
35762,
"ber",
}
m["gnd"] = {
"Zulgo-Gemzek",
56800,
"cdc-cbm",
"Latn",
}
m["gne"] = {
"Ganang",
63163361,
"nic-plc",
ancestors = "izr",
}
m["gng"] = {
"Ngangam",
35888,
"nic-grm",
}
m["gnh"] = {
"Lere",
3915319,
"nic-jer",
}
m["gni"] = {
"กูนียันดี",
2669219,
"aus-bub",
"Latn",
}
m["gnj"] = {
"Ngen of Djonkro",
63170838,
"dmn-nbe",
"Latn",
}
m["gnk"] = {
"ǁGana",
1975199,
"khi-kal",
"Latn",
}
m["gnl"] = {
"Gangulu",
4916329,
"aus-pam",
"Latn",
}
m["gnm"] = {
"Ginuman",
11732210,
"ngf-dag",
"Latn",
}
m["gnn"] = {
"Gumatj",
10510745,
"aus-yol",
"Latn",
}
m["gnq"] = {
"Gana",
5520523,
"poz-san",
"Latn",
}
m["gnr"] = {
"Gureng Gureng",
5619998,
"aus-pam",
"Latn",
}
m["gnt"] = {
"Guntai",
12952475,
"paa-yam",
"Latn",
}
m["gnu"] = {
"Gnau",
3915810,
"paa-tor",
"Latn",
}
m["gnw"] = {
"Western Bolivian Guarani",
3775037,
"gn",
"Latn",
}
m["gnz"] = {
"Ganzi",
11137942,
"nic-nkb",
"Latn",
}
m["goa"] = {
"Guro",
35251,
"dmn-mda",
"Latn",
}
m["gob"] = {
"Playero",
3027923,
"sai-guh",
}
m["goc"] = {
"Gorakor",
12952463,
"poz-ocw",
"Latn",
}
m["god"] = {
"Godié",
3914412,
"kro-bet",
}
m["goe"] = {
"Gongduk",
2669221,
"sit",
}
m["gof"] = {
"โกฟา",
12631584,
"omv-nom",
"Latn, Ethi",
}
m["gog"] = {
"Gogo",
3272630,
"bnt-ruv",
"Latn",
}
m["goh"] = {
"เยอรมันสูงเก่า",
35218,
"gmw-hgm",
"Latn, Runr",
strip_diacritics = {
remove_diacritics = c.circ .. c.macron .. c.diaer,
from = {"[ƷȤ]", "[ʒȥ]"},
to = {"Z", "z"}
},
translit = {
Runr = "Runr-translit",
},
}
m["goi"] = {
"Gobasi",
5575414,
"ngf-est",
"Latn",
}
m["goj"] = {
"Gowlan",
12953532,
"inc-sou",
}
-- gok is a spurious language, see [[w:Spurious languages]]
m["gol"] = {
"Gola",
35482,
"alv",
"Latn, Vaii",
}
m["gon"] = {
"โคณฑี",
1775361,
"dra-gon",
"Telu, Gonm, Gong, Deva, Orya",
translit = {
Telu = "Telu-translit",
Gong = "gon-Gong-translit",
Gonm = "gon-Gonm-translit",
},
}
m["goo"] = {
"Gone Dau",
3110470,
"poz-pcc",
"Latn",
}
m["gop"] = {
"Yeretuar",
8052565,
"poz-hce",
"Latn",
}
m["goq"] = {
"Gorap",
3110816,
"crp",
"Latn",
ancestors = "ms",
}
m["gor"] = {
"Gorontalo",
2501174,
"phi",
"Latn",
}
m["got"] = {
"กอท",
35722,
"gme",
"Goth, Runr, Latn",
translit = {Goth = "Goth-translit"},
link_tr = true,
strip_diacritics = {Latn = {remove_diacritics = c.macron}},
}
m["gou"] = {
"Gavar",
3441180,
"cdc-cbm",
}
m["gov"] = {
"Goo",
16927208,
"dmn",
"Latn",
}
m["gow"] = {
"Gorwaa",
3437626,
"cus-sou",
"Latn",
}
m["gox"] = {
"Gobu",
7194986,
"bad-cnt",
}
m["goy"] = {
"Goundo",
317636,
"alv-kim",
}
m["goz"] = {
"Gozarkhani",
5590235,
"xme-ttc",
ancestors = "xme-ttc-eas",
}
m["gpa"] = {
"Gupa-Abawa",
3915352,
"alv-ngb",
"Latn",
}
m["gpn"] = {
"Taiap",
56237,
"qfa-dis", -- Papuan; isolate in Glottolog; relationship with Torricelli proposed by Usher
"Latn",
}
m["gqa"] = {
"Ga'anda",
56245,
"cdc-cbm",
"Latn",
}
m["gqi"] = {
"Guiqiong",
3120647,
"sit-qia",
}
m["gqn"] = { -- a variety of 'ter'
"Kinikinao",
53386731,
"awd",
"Latn",
}
m["gqr"] = {
"Gor",
759992,
"csu-sar",
"Latn",
}
m["gqu"] = {
"Qau",
17284874,
"gio",
}
m["gra"] = {
"Rajput Garasia",
21041529,
"inc-bhi",
"Deva, Gujr",
ancestors = "bhb",
translit = {
Deva = "Deva-translit",
Gujr = "Gujr-translit",
},
}
m["grc"] = {
"กรีกโบราณ",
35497,
"grk",
"Polyt, Cprt",
translit = {
Cprt = "Cprt-translit",
},
override_translit = true,
-- Polyt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
standard_chars = {
Polyt = "ΑΆἈἉἊἋἌἍἎἏᾈᾉᾊᾋᾌᾍᾎᾏᾸᾹᾺᾼΒΓΔΕΈἘἙἚἛἜἝῈΖΗΉἨἩἪἫἬἭἮἯᾘᾙᾚᾛᾜᾝᾞᾟῊῌΘΙΊΪἸἹἺἻἼἽἾἿῘῙῚΚΛΜΝΞΟΌὈὉὊὋὌὍΠΡῬΡ̓ΣΤΥΎΫὙὛὝὟῨῩῪΦΧΨΩΏὨὩὪὫὬὭὮὯᾨᾩᾪᾫᾬᾭᾮᾯῸῺῼαάἀἁἂἃἄἅἆἇὰᾀᾁᾂᾃᾄᾅᾆᾇᾰᾱᾲᾳᾴᾶᾷβγδεέἐἑἒἓἔἕὲζηήἠἡἢἣἤἥἦἧὴᾐᾑᾒᾓᾔᾕᾖᾗῂῃῄῆῇθιίϊΐἰἱἲἳἴἵἶἷὶῐῑῒῖῗκλμνξοόὀὁὂὃὄὅὸπρῤῥςστυύϋΰὐὑὒὓὔὕὖὗὺῠῡῢῦῧφχψωώὠὡὢὣὤὥὦὧὼᾠᾡᾢᾣᾤᾥᾦᾧῲῳῴῶῷ·ͺ΄΅᾽᾿῀῁῍῎῏῝῞῟῭`´῾",
Cprt = "𐠀𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿",
c.punc
},
}
m["grd"] = {
"Guruntum",
3441272,
"cdc-wst",
"Latn",
}
m["grg"] = {
"Madi",
6727664,
"ngf-fin",
"Latn",
}
m["grh"] = {
"Gbiri-Niragu",
3913936,
"nic-kau",
"Latn",
}
m["gri"] = {
"Ghari",
3104782,
"poz-sls",
"Latn",
}
m["grj"] = {
"Southern Grebo",
3914444,
"grb",
"Latn",
}
m["grm"] = {
"Kota Marudu Talantang",
6433808,
"poz-san",
"Latn",
}
m["gro"] = {
"Groma",
56551,
"sit-tib",
}
m["grq"] = {
"Gorovu",
56355,
"paa-ram",
"Latn",
}
m["grs"] = {
"Gresi",
5607612,
"paa-nim",
"Latn",
}
m["grt"] = {
"กาโร",
36137,
"tbq-bdg",
"Latn, Beng, Brai",
}
m["gru"] = {
"Kistane",
13273,
"sem-eth",
"Latn, Ethi",
}
m["grv"] = {
"Central Grebo",
18385114,
"grb",
"Latn",
}
m["grw"] = {
"Gweda",
5623387,
"poz-ocw",
"Latn",
}
m["grx"] = {
"Guriaso",
12631954,
"qfa-unc", -- no consensus; may be Kwomtari per Baron (1983) and Usher (2020), but no connections accepted by
-- Glottolog.
"Latn",
}
m["gry"] = {
"Barclayville Grebo",
11157342,
"grb",
"Latn",
}
m["grz"] = {
"Guramalum",
3120935,
"poz-ocw",
"Latn",
}
m["gse"] = {
"Ghanaian Sign Language",
35289,
"sgn",
"Latn", -- when documented
}
m["gsg"] = {
"German Sign Language",
33282,
"sgn-gsl",
"Sgnw",
}
m["gsl"] = {
"Gusilay",
35439,
"alv-jol",
"Latn",
}
m["gsm"] = {
"Guatemalan Sign Language",
2886781,
"sgn",
"Latn", -- when documented
}
m["gsn"] = {
"Gusan",
11732224,
"ngf-fin",
"Latn",
}
m["gso"] = {
"Southwest Gbaya",
4919322,
"gba-sou",
"Latn",
}
m["gsp"] = {
"Wasembo",
7971402,
"ngf-mad", -- placed in under Rai Coast by Glottolog (under Greater Yaganon) and Pawley-Hammarström
"Latn",
}
m["gss"] = {
"Greek Sign Language",
3565084,
"sgn",
}
m["gsw"] = {
"เยอรมันแบบอลามันเนีย",
131339,
"gmw-hgm",
"Latn",
wikimedia_codes = "als",
ancestors = "gmh",
}
m["gta"] = {
"Guató",
3027940,
"qfa-dis", -- isolate or Macro-Jê
"Latn",
}
m["gtu"] = {
"Aghu Tharrnggala",
16825981,
"aus-pmn",
"Latn",
}
m["gua"] = {
"Shiki",
3913946,
"nic-jrn",
"Latn",
}
m["gub"] = {
"Guajajára",
7699720,
"tup-gua",
"Latn",
}
m["guc"] = {
"Wayuu",
891085,
"awd-taa",
"Latn",
}
m["gud"] = {
"Yocoboué Dida",
21074781,
"kro-did",
"Latn",
}
m["gue"] = {
"Gurindji",
10511016,
"aus-pam",
"Latn",
}
m["guf"] = {
"Gupapuyngu",
10511004,
"aus-yol",
"Latn",
}
m["gug"] = {
"กัวรานีแบบปารากวัย",
17478066,
"gn",
"Latn",
wikimedia_codes = "gn",
ancestors = "gn-cls",
}
m["guh"] = {
"Guahibo",
2669193,
"sai-guh",
"Latn",
}
m["gui"] = {
"Eastern Bolivian Guarani",
2963912,
"gn",
"Latn",
}
m["guk"] = {
"Gumuz",
2396970,
"ssa",
"Latn, Ethi",
}
m["gul"] = {
"Gullah",
33395,
"crp",
"Latn",
ancestors = "en",
}
m["gum"] = {
"Guambiano",
2744745,
"sai-bar",
"Latn",
}
m["gun"] = {
"Mbya Guarani",
3915584,
"gn",
"Latn",
}
m["guo"] = {
"Guayabero",
2980375,
"sai-guh",
"Latn",
}
m["gup"] = {
"Gunwinggu",
1406574,
"aus-gun",
"Latn",
}
m["guq"] = {
"Aché",
383701,
"tup",
"Latn",
}
m["gur"] = {
"ฟราฟรา",
35331,
"nic-mre",
"Latn",
}
m["gus"] = {
"Guinean Sign Language",
15983937,
"sgn",
"Latn", -- when documented
}
m["gut"] = {
"Maléku Jaíka",
3915782,
"cba",
"Latn",
}
m["guu"] = {
"Yanomamö",
8048928,
"sai-ynm",
"Latn",
}
m["guv"] = {
"Gey",
11137816,
"alv-sav",
"Latn",
}
m["guw"] = {
"Gun",
3111668,
"alv-gbe",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron},
}
m["gux"] = {
"Gourmanchéma",
35474,
"nic-grm",
"Latn",
}
m["guz"] = {
"Gusii",
33603,
"bnt-lok",
"Latn",
}
m["gva"] = {
"Kaskihá",
3033534,
"sai-mas",
"Latn",
}
m["gvc"] = {
"Guanano",
3566001,
"sai-tuc",
"Latn",
}
m["gve"] = {
"Duwet",
5317647,
"poz-ocw",
"Latn",
}
m["gvf"] = {
"Golin",
3110291,
"ngf-chw",
"Latn",
}
m["gvj"] = {
"Guajá",
3915506,
"tup",
"Latn",
}
m["gvl"] = {
"Gulay",
641737,
"csu-sar",
"Latn",
}
m["gvm"] = {
"Gurmana",
3913363,
"nic-shi",
"Latn",
}
m["gvn"] = {
"Kuku-Yalanji",
5621973,
"aus-pam",
"Latn",
}
m["gvo"] = {
"Gavião do Jiparaná",
5528335,
"tup",
"Latn",
}
m["gvp"] = {
"Pará Gavião",
3365443,
"sai-nje",
"Latn",
}
m["gvr"] = {
"Western Gurung",
2392342,
"sit-tam",
"Gukh, Deva",
translit = {
Deva = "Deva-translit",
},
}
m["gvs"] = {
"Gumawana",
5618041,
"poz-ocw",
"Latn",
}
m["gvy"] = {
"Guyani",
10511230,
"aus-pam",
"Latn",
}
m["gwa"] = {
"Mbato",
3914941,
"alv-ptn",
"Latn",
}
m["gwb"] = {
"Gwa",
5623219,
"nic-jrn",
"Latn",
}
m["gwc"] = {
"Kalami",
1675961,
"inc-koh",
"Arab",
strip_diacritics = {
["Arab"] = {
-- character "ۂ" code U+06C2 to "ه" and "هٔ" (U+0647 + U+0654) to "ه"; hamzatu l-waṣli to a regular alif
from = {"هٔ", "ۂ", "ٱ"},
to = {"ہ", "ہ", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef .. u(0x065e)
},
},
}
m["gwd"] = {
"Gawwada",
3032135,
"cus-eas",
"Latn, Ethi",
}
m["gwe"] = {
"Gweno",
3358211,
"bnt-chg",
"Latn",
}
m["gwf"] = {
"Gowro",
3812403,
"inc-koh",
"Arab",
}
m["gwg"] = {
"Moo",
6907057,
"alv-bwj",
"Latn",
}
m["gwi"] = {
"Gwich'in",
21057,
"ath-nor",
"Latn",
}
m["gwj"] = {
"Gcwi",
12631978,
"khi-kal",
"Latn",
}
m["gwm"] = {
"Awngthim",
4830109,
"aus-pmn",
"Latn",
}
m["gwn"] = {
"Gwandara",
56521,
"cdc-wst",
"Latn",
}
m["gwr"] = {
"Gwere",
5623559,
"bnt-nyg",
"Latn",
}
m["gwt"] = {
"Gawar-Bati",
33894,
"inc-kun",
"Arab",
}
m["gwu"] = {
"Guwamu",
10511225,
"aus-pam",
"Latn",
}
m["gww"] = {
"Kwini",
10551249,
"aus-wor",
"Latn",
}
m["gwx"] = {
"Gua",
35422,
"alv-gng",
"Latn",
}
m["gxx"] = {
"Wè Southern",
19921582,
"kro-wee",
"Latn",
}
m["gya"] = {
"Northwest Gbaya",
36594,
"gba-wes",
"Latn",
}
m["gyb"] = {
"Garus",
5524492,
"ngf-han",
"Latn",
}
m["gyd"] = {
"Kayardild",
3913770,
"aus-tnk",
"Latn",
}
m["gye"] = {
"Gyem",
5624046,
"nic-jer",
"Latn",
}
m["gyf"] = {
"Gungabula",
10510783,
"aus-pam",
"Latn",
}
m["gyg"] = {
"Gbayi",
11137618,
"nic-ngd",
"Latn",
}
m["gyi"] = {
"Gyele",
35434,
"bnt-mnj",
"Latn",
}
m["gyl"] = {
"Gayil",
5528771,
"omv-aro",
"Latn",
}
m["gym"] = {
"Ngäbere",
3915581,
"cba",
"Latn",
}
m["gyn"] = {
"Guyanese Creole English",
3305477,
"crp",
"Latn",
ancestors = "en",
}
m["gyo"] = {
"Gyalsumdo",
53575940,
"sit-kyk",
}
m["gyr"] = {
"Guarayu",
3118779,
"tup-gua",
"Latn",
}
m["gyy"] = {
"Gunya",
10511001,
"aus-pam",
"Latn",
}
m["gza"] = {
"Ganza",
5521556,
"omv-mao",
"Latn",
}
m["gzn"] = {
"Gane",
3095108,
"poz-hce",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
ghq1icvl1uuy0yl5vu9n4jwpgwxdn15
มอดูล:languages/data/3/a
828
36386
5723244
5720752
2026-05-20T03:27:52Z
OctraBot
3198
5723244
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["aaa"] = {
"Ghotuo",
35463,
"alv-yek",
"Latn",
}
m["aab"] = {
"Alumu-Tesu",
35034,
"nic-alu",
"Latn",
}
m["aac"] = {
"Ari",
1811224,
"ngf-gsu",
"Latn",
}
m["aad"] = {
"Amal",
56708,
"paa-spk",
"Latn",
}
-- "aae" is treated as "sq", see [[WT:LT]]
m["aaf"] = {
"Aranadan",
3507928,
"dra-mal",
"Mlym",
-- Mlym translit in [[Module:scripts/data]] (NOTE: not present before, presumably an accidental omission)
}
m["aag"] = {
"Ambrak",
4741706,
"paa-tor",
"Latn",
}
m["aah"] = {
"Abu'",
4670715,
"paa-tor",
"Latn",
}
m["aai"] = {
"Arifama-Miniafia",
4790560,
"poz-ocw",
"Latn",
}
m["aak"] = {
"Ankave",
3446690,
"ngf-ang",
"Latn",
}
m["aal"] = {
"Afade",
56434,
"cdc-cbm",
"Latn",
}
m["aan"] = {
"Anambé",
3507873,
"tup-gua",
"Latn",
}
m["aap"] = {
"Arára (Pará)",
56807,
"sai-pek",
"Latn",
}
m["aaq"] = {
"Penobscot",
3515185,
"alg-abp",
"Latn",
}
m["aas"] = {
"Aasax",
56620,
"cus-sou",
"Latn",
}
-- "aat" is treated as "sq", see [[WT:LT]]
m["aau"] = {
"Abau",
3073568,
"paa-spk",
"Latn",
}
m["aaw"] = {
"Solong",
7558834,
"poz-ocw",
"Latn",
}
m["aax"] = {
"Mandobo Atas",
12636156,
"ngf-gaw",
"Latn",
}
m["aaz"] = {
"Amarasi",
4740192,
"poz-tim",
"Latn",
}
m["aba"] = {
"อาเบ",
34833,
"alv-lag",
"Latn",
}
m["abb"] = {
"Bankon",
34860,
"bnt-bsa",
"Latn",
}
m["abc"] = {
"Ambala Ayta",
3448896,
"phi",
"Latn",
}
m["abd"] = {
"Camarines Norte Agta",
3399682,
"phi",
"Latn",
}
m["abe"] = {
"Abenaki",
17502788,
"alg-abp",
"Latn",
}
m["abf"] = {
"Abai Sungai",
4663287,
"poz-san",
"Latn",
}
m["abg"] = {
"Abaga",
3507954,
"ngf-kag",
"Latn",
}
m["abh"] = {
"อาหรับแบบทาจิกิสถาน",
56833,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["abi"] = {
"Abidji",
34781,
"alv-lag",
"Latn",
}
m["abj"] = {
"Aka-Bea",
2356391,
"qfa-ads",
"Latn",
}
m["abl"] = {
"Abung",
49215,
"poz-lgx",
"Latn",
}
m["abm"] = {
"Abanyom",
7502,
"nic-eko",
"Latn",
}
m["abn"] = {
"Abua",
34835,
"nic-cde",
"Latn",
}
m["abo"] = {
"Abon",
35121,
"nic-tvn",
"Latn",
}
m["abp"] = {
"Abenlen Ayta",
3436621,
"phi",
"Latn",
}
m["abq"] = {
"อาบาซา",
27567,
"cau-abz",
"Cyrl, Latn",
translit = {
Cyrl = "abq-translit"
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"гъв", "гъь", "гӏв", "джв", "джь", "къв", "къь", "кӏв", "кӏь", "хъв", "хӏв", "чӏв", -- 3 chars
"гв", "гъ", "гь", "гӏ", "дж", "дз", "ё", "жв", "жь", "кв", "къ", "кь", "кӏ", "ль", "лӏ", "пӏ", "тл", "тш", "тӏ", "фӏ", "хв", "хъ", "хь", "хӏ", "цӏ", "чв", "чӏ", "шв", "шӏ" -- 2 chars
},
to = {
"г" .. p[3], "г" .. p[4], "г" .. p[7], "д" .. p[2], "д" .. p[3], "к" .. p[3], "к" .. p[4], "к" .. p[7], "к" .. p[8], "х" .. p[3], "х" .. p[6], "ч" .. p[3],
"г" .. p[1], "г" .. p[2], "г" .. p[5], "г" .. p[6], "д" .. p[1], "д" .. p[4], "е" .. p[1], "ж" .. p[1], "ж" .. p[2], "к" .. p[1], "к" .. p[2], "к" .. p[5], "к" .. p[6], "л" .. p[1], "л" .. p[2], "п" .. p[1], "т" .. p[1], "т" .. p[2], "т" .. p[3], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[4], "х" .. p[5], "ц" .. p[1], "ч" .. p[1], "ч" .. p[2], "ш" .. p[1], "ш" .. p[2]
}
},
},
}
-- "abr" Abron is treated as "ak" Akan, see [[WT:LT]]
m["abs"] = {
"Ambonese Malay",
3124354,
"crp",
"Latn",
ancestors = "ms",
}
m["abt"] = {
"Ambulas",
3508015,
"paa-ndu",
"Latn",
}
m["abu"] = {
"Abure",
34767,
"alv-ptn",
"Latn",
}
m["abv"] = {
"อาหรับแบบบาห์เรน",
56576,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["abw"] = {
"Pal",
7126121,
"ngf-mad",
"Latn",
}
m["abx"] = {
"Inabaknon",
2820163,
"poz-sbj",
"Latn",
}
m["aby"] = {
"Aneme Wake",
3508107,
"ngf-yar",
"Latn",
}
m["abz"] = {
"Abui",
2822110,
"paa-tap",
"Latn",
}
m["aca"] = {
"Achagua",
2822982,
"awd",
"Latn",
}
m["acb"] = {
"Áncá",
11130787,
"nic-mom",
"Latn",
}
m["acd"] = {
"Gikyode",
35256,
"alv-gng",
"Latn",
}
m["ace"] = {
"อาเจะฮ์",
27683,
"cmc",
"Latn, ms-Arab",
standard_chars = {
Latn = "AaBbCcDdEeÉéÈèËëFfGgHhIiJjKkLlMmNnOoÔôÖöPpQqRrSsTtUuVvWwXxYyZz", -- current orthography (not yet add Arab)
c.punc
},
}
m["ach"] = {
"Acholi",
34926,
"sdv-los",
"Latn",
}
m["aci"] = {
"Aka-Cari",
2670418,
"qfa-adn",
"Latn",
}
m["ack"] = {
"Aka-Kora",
3433680,
"qfa-adn",
"Latn",
}
m["acl"] = {
"Akar-Bale",
3436825,
"qfa-ads",
"Latn",
}
m["acm"] = {
"อาหรับแบบอิรัก",
56232,
"sem-arb",
"Arab, Hebr",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["acn"] = {
"Achang",
56582,
"tbq-brm",
"Latn",
}
m["acp"] = {
"Eastern Acipa",
5329945,
"nic-kmk",
"Latn",
}
m["acr"] = {
"Achi",
34774,
"myn",
"Latn",
}
m["acs"] = {
"Acroá",
2829146,
"sai-cje",
"Latn",
}
m["acu"] = {
"Achuar",
2823170,
"sai-jiv",
"Latn",
}
m["acv"] = {
"Achumawi",
56661,
"nai-pal",
"Latn",
}
m["acw"] = {
"อาหรับแบบฮิญาซ",
56608,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["acx"] = {
"อาหรับแบบโอมาน",
56630,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["acy"] = {
"อาหรับแบบไซปรัส",
56416,
"sem-arb",
"Latn, Grek",
ancestors = "acm",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.breve},
},
-- Grek display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
standard_chars = {
Latn = "AaBbCcDdΔδEeFfGgĠġĊċIiJjKkLlMmNnOoPpΘθRrSsTtUuVvWwXxYyZzŞş",
c.punc
},
}
m["acz"] = {
"Acheron",
34769,
"alv-tal",
"Latn",
}
m["ada"] = {
"Adangme",
35141,
"alv-gda",
"Latn",
}
m["adb"] = {
"Atauran",
125421255,
"poz-cet",
"Latn",
}
m["add"] = {
"Dzodinka",
35266,
"nic-nka",
"Latn",
}
m["ade"] = {
"Adele",
27740,
"alv-ntg",
"Latn",
}
m["adf"] = {
"Dhofari Arabic",
56565,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["adg"] = {
"Andegerebinha",
3508123,
"aus-pam",
"Latn",
}
m["adh"] = {
"Adhola",
1971400,
"sdv-los",
"Latn",
}
m["adi"] = {
"Adi",
56440,
"sit-tan",
"Latn",
}
m["adj"] = {
"Adioukrou",
34738,
"alv-lag",
"Latn",
}
m["adl"] = {
"Galo",
2857892,
"sit-tan",
"Latn",
}
m["adn"] = {
"Adang",
3398276,
"paa-tap",
"Latn",
}
m["ado"] = {
"Abu",
56659,
"paa-ram",
"Latn",
}
m["adp"] = {
"Adap",
3512402,
"sit-tib",
"Tibt",
ancestors = "dz",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["adq"] = {
"Adangbe",
34730,
"alv-gda",
"Latn",
ancestors = "ada",
}
m["adr"] = {
"Adonara",
4684505,
"poz-cet",
"Latn",
}
m["ads"] = {
"Adamorobe Sign Language",
27709,
"sgn",
"Latn", -- when documented
}
m["adt"] = {
"Adnyamathanha",
2225391,
"aus-psw",
"Latn",
}
m["adu"] = {
"Aduge",
34734,
"alv-nwd",
"Latn",
ancestors = "opa",
}
m["adw"] = {
"Amondawa",
12626847,
"tup-gua",
"Latn",
}
m["ady"] = {
"อะดีเกยา",
27776,
"cau-cir",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "cau-cir-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"кхъу", "къӏу", -- 4 chars
"гъу", "джу", "дзу", "жъу", "къу", "кхъ", "къӏ", "кӏу", "кӏь", "лъу", "лӏу", "пӏу", "сӏу", "тӏу", "фӏу", "хъу", "цӏу", "чъу", "чӏу", "шъу", "шӏу", "щӏу", -- 3 chars
"гу", "гъ", "гь", "дж", "дз", "ё", "жъ", "жь", "ку", "къ", "кь", "кӏ", "лъ", "ль", "лӏ", "пӏ", "сӏ", "тӏ", "фӏ", "ху", "хъ", "хь", "цу", "цӏ", "чу", "чъ", "чӏ", "шъ", "шӏ", "щӏ", "ӏу", "ӏь" -- 2 chars
},
to = {
"к" .. p[5], "к" .. p[7],
"г" .. p[3], "д" .. p[2], "д" .. p[4], "ж" .. p[2], "к" .. p[3], "к" .. p[4], "к" .. p[6], "к" .. p[10], "к" .. p[11], "л" .. p[2], "л" .. p[5], "п" .. p[2], "с" .. p[2], "т" .. p[2], "ф" .. p[2], "х" .. p[3], "ц" .. p[3], "ч" .. p[3], "ч" .. p[5], "ш" .. p[2], "ш" .. p[4], "щ" .. p[2],
"г" .. p[1], "г" .. p[2], "г" .. p[4], "д" .. p[1], "д" .. p[3], "е" .. p[1], "ж" .. p[1], "ж" .. p[3], "к" .. p[1], "к" .. p[2], "к" .. p[8], "к" .. p[9], "л" .. p[1], "л" .. p[3], "л" .. p[4], "п" .. p[1], "с" .. p[1], "т" .. p[1], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[4], "ц" .. p[1], "ц" .. p[2], "ч" .. p[1], "ч" .. p[2], "ч" .. p[4], "ш" .. p[1], "ш" .. p[3], "щ" .. p[1], "ӏ" .. p[1], "ӏ" .. p[2]
}
},
},
}
m["adz"] = {
"Adzera",
3327445,
"poz-ocw",
"Latn",
}
m["aea"] = {
"Areba",
3509129,
"aus-pam",
"Latn",
}
m["aeb"] = {
"อาหรับแบบตูนิเซีย",
56240,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["aed"] = {
"Argentine Sign Language",
3322073,
"sgn",
"Latn", -- when documented
}
m["aee"] = {
"Northeast Pashayi",
12642198,
"inc-pas",
"fa-Arab, Latn",
}
m["aek"] = {
"Haeke",
5638166,
"poz-cln",
"Latn",
}
m["ael"] = {
"Ambele",
34818,
"nic-grf",
"Latn",
}
m["aem"] = {
"Arem",
3507920,
"mkh-vie",
"Latn",
}
m["aen"] = {
"Armenian Sign Language",
3446604,
"sgn",
}
m["aeq"] = {
"Aer",
3246741,
"inc-wes",
"Arab",
}
m["aer"] = {
"Eastern Arrernte",
10728232,
"aus-pam",
"Latn",
}
m["aes"] = {
"Alsea",
2395641,
nil,
"Latn",
}
m["aeu"] = {
"Akeu",
4700657,
"tbq-sil",
"Latn",
}
m["aew"] = {
"Ambakich",
56642,
"paa-eke",
"Latn",
}
m["aey"] = {
"Amele",
3508025,
"ngf-gum",
"Latn",
}
m["aez"] = {
"Aeka",
16110528,
"paa-bin",
"Latn",
}
m["afb"] = {
"Gulf Arabic",
56385,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["afd"] = {
"Andai",
4753480,
"paa-arf",
"Latn",
}
m["afe"] = {
"Putukwam",
3914930,
"nic-ben",
"Latn",
}
m["afg"] = {
"Afghan Sign Language",
4689093,
"sgn",
}
m["afh"] = {
"Afrihili",
384707,
"art",
"Latn",
type = "appendix-constructed",
}
m["afi"] = {
"Akrukay",
57003,
"paa-ram",
"Latn",
}
m["afk"] = {
"Nanubae",
6964416,
"paa-arf",
"Latn",
}
m["afn"] = {
"Defaka",
35174,
"nic",
"Latn",
}
m["afo"] = {
"Eloyi",
3914066,
"nic-plt",
"Latn",
}
m["afp"] = {
"Tapei",
16887371,
"paa-arf",
"Latn",
}
m["afs"] = {
"Afro-Seminole Creole",
27867,
"crp",
"Latn",
ancestors = "en",
}
m["aft"] = {
"Afitti",
3400829,
"sdv-nyi",
"Latn",
}
m["afu"] = {
"Awutu",
34847,
"alv-gng",
"Latn",
}
m["afz"] = {
"Obokuitai",
7075258,
"paa-lkp",
"Latn",
}
m["aga"] = {
"Aguano",
3331203,
nil,
"Latn",
}
m["agb"] = {
"Legbo",
35584,
"nic-uce",
"Latn",
}
m["agc"] = {
"Agatu",
34732,
"alv-ido",
"Latn",
}
m["agd"] = {
"Agarabi",
3399642,
"ngf-kag",
"Latn",
}
m["age"] = {
"Angal",
10951553,
"ngf-eng",
"Latn",
}
m["agf"] = {
"Arguni",
12473346,
"poz-cet",
"Latn",
}
m["agg"] = {
"Angor",
3508100,
"paa-sng",
"Latn",
}
m["agh"] = {
"Ngelima",
7022266,
"bnt-bta",
"Latn",
}
m["agi"] = {
"Agariya",
663586,
"mun",
"Deva",
translit = "Deva-translit",
}
m["agj"] = {
"Argobba",
29292,
"sem-eth",
"Ethi",
}
m["agk"] = {
"Isarog Agta",
6078982,
"phi",
"Latn",
}
m["agl"] = {
"Fembe",
372927,
"ngf-est",
"Latn",
}
m["agm"] = {
"Angaataha",
3508001,
"ngf-ang",
"Latn",
}
m["agn"] = {
"อากูตายา",
3399717,
"phi-kal",
"Latn",
}
m["ago"] = {
"Tainae",
7676186,
"ngf-ang",
"Latn",
}
m["agq"] = {
"Aghem",
34737,
"nic-rnw",
"Latn",
}
m["agr"] = {
"Aguaruna",
1526530,
"sai-jiv",
"Latn",
}
m["ags"] = {
"Esimbi",
35260,
"nic-bds",
"Latn",
}
m["agt"] = {
"Central Cagayan Agta",
5017296,
"phi",
"Latn",
}
m["agu"] = {
"Aguacateca",
35091,
"myn",
"Latn",
}
m["agv"] = {
"Remontado Agta",
3508085,
"phi",
"Latn",
}
m["agw"] = {
"Kahua",
3191906,
"poz-sls",
"Latn",
}
m["agx"] = {
"Aghul",
36498,
"cau-esm",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
sort_key = {
from = {"аь", "гъ", "гь", "гӏ", "дж", "ё", "къ", "кь", "кӏ", "оь", "пӏ", "тӏ", "уь", "хъ", "хь", "хӏ", "цӏ", "чӏ"},
to = {"а" .. p[1], "г" .. p[1], "г" .. p[2], "г" .. p[3], "д" .. p[1], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "о" .. p[1], "п" .. p[1], "т" .. p[1], "у" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "ц" .. p[1], "ч" .. p[1]}
},
}
m["agy"] = {
"Southern Alta",
7569611,
"phi",
"Latn",
}
m["agz"] = {
"Mount Iriga Agta",
6921432,
"phi",
"Latn",
}
m["aha"] = {
"Ahanta",
34729,
"alv-ctn",
"Latn",
}
m["ahb"] = {
"Axamb",
2874710,
"poz-vnc",
"Latn",
}
m["ahg"] = {
"Qimant",
35663,
"cus-cen",
"Latn",
}
m["ahh"] = {
"Aghu",
3436645,
"ngf-gaw",
"Latn",
}
m["ahi"] = {
"Tiagba",
3400073,
"kro-aiz",
"Latn",
}
m["ahk"] = {
"อาข่า",
56643,
"tbq-han",
"Latn, Mymr, Thai",
sort_key = {
Thai = {
from = {"[%pๆ]", "[็-๎]", "([เแโใไ])([ก-ฮ])"},
to = {"", "", "%2%1"}
},
},
}
m["ahl"] = {
"Igo",
35412,
"alv-ktg",
"Latn",
}
m["ahm"] = {
"Mobu",
35967,
"kro-aiz",
"Latn",
}
m["ahn"] = {
"Àhàn",
34723,
"alv-aah",
"Latn",
}
m["aho"] = {
"อาหม",
34778,
"tai-swe",
"Ahom",
translit = "Ahom-translit",
}
m["ahp"] = {
"Apro",
34810,
"alv-kwa",
"Latn",
}
m["ahr"] = {
"Ahirani",
15549890,
"raj",
"Deva",
translit = "Deva-translit",
}
m["ahs"] = {
"Ashe",
34823,
"nic-plc",
"Latn",
}
m["aht"] = {
"Ahtna",
21058,
"ath-nor",
"Latn",
}
m["aia"] = {
"Arosi",
2863483,
"poz-sls",
"Latn",
}
m["aib"] = {
"Äynu",
27927,
"qfa-mix",
"Arab, Latn",
ancestors = "ug, fa"
}
m["aic"] = {
"Ainbai",
3332149,
"paa-brd",
"Latn",
}
m["aid"] = {
"Alngith",
3279409,
"aus-pmn",
"Latn",
}
m["aie"] = {
"Amara",
2841180,
"poz-ocw",
"Latn",
}
m["aif"] = {
"Agi",
3331491,
"paa-tor",
"Latn",
}
m["aig"] = {
"Antigua and Barbuda Creole English",
3244184,
"crp",
"Latn",
ancestors = "en",
}
m["aih"] = {
"Ai-Cham",
2827749,
"qfa-kms",
"Latn, Hani",
sort_key = {
Hani = "Hani-sortkey"
},
}
m["aii"] = {
"อารามายาใหม่แบบอัสซีเรีย",
29440,
"sem-nna",
"Syrc",
translit = "aii-translit",
strip_diacritics = "Syrc-stripdiacritics",
}
m["aij"] = {
"Lishanid Noshan",
3436467,
"sem-nna",
"Hebr",
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["aik"] = {
"Ake",
34808,
"nic-pls",
"Latn",
}
m["ail"] = {
"Aimele",
3327418,
"ngf-bos",
"Latn",
}
m["aim"] = {
"Aimol",
4697175,
"tbq-kuk",
"Latn, Beng",
}
m["ain"] = {
"ไอนุ",
27969,
"qfa-ain",
"Kana, Latn, Cyrl",
sort_key = {
Kana = "Kana-sortkey"
},
}
m["aio"] = {
"อ่ายตน",
3399725,
"tai-swe",
"Mymr",
translit = "aio-phk-translit",
display_text = s["aio-displaytext"],
strip_diacritics = s["aio-stripdiacritics"],
}
m["aip"] = {
"Burumakok",
5000984,
"ngf-okk",
"Latn",
}
m["air"] = {
"Airoran",
3321131,
"paa-tkw",
"Latn",
}
m["ait"] = {
"Arikem",
3446679,
"tup",
"Latn",
}
m["aiw"] = {
"Aari",
7495,
"omv-aro",
"Latn",
}
m["aix"] = {
"Aighon",
3504287,
"poz-ocw",
"Latn",
}
m["aiy"] = {
"Ali",
34814,
"gba-eas",
"Latn",
}
m["aja"] = {
"Aja",
3237491,
"csu-bkr",
"Latn",
}
m["ajg"] = {
"Adja",
35035,
"alv-gbe",
"Latn",
}
m["aji"] = {
"Ajië",
2828867,
"poz-cln",
"Latn",
}
m["ajn"] = {
"Andajin",
16111302,
"aus-wor",
"Latn",
}
m["ajp"] = {
"อาหรับแบบลิแวนต์ใต้",
55633582,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ajw"] = {
"Ajawa",
56645,
"cdc-wst",
"Latn",
}
m["ajz"] = {
"Amri Karbi",
3508092,
"tbq-kuk",
"Latn",
ancestors = "mjw",
}
m["akb"] = {
"Angkola Batak",
2640686,
"btk",
"Latn, Batk",
}
m["akc"] = {
"Mpur",
3327139,
"qfa-iso", -- Papuan; based on Palmer (2018), Ethnologue and Glottolog
"Latn",
}
m["akd"] = {
"Ukpet-Ehom",
36618,
"nic-ucr",
"Latn",
}
m["ake"] = {
"Akawaio",
28059,
"sai-pem",
"Latn",
}
m["akf"] = {
"Akpa",
34801,
"alv-ido",
"Latn",
}
m["akg"] = {
"Anakalangu",
4750964,
"poz-cet",
"Latn",
}
m["akh"] = {
"Angal Heneng",
10950354,
"ngf-eng",
"Latn",
}
m["aki"] = {
"Aiome",
56735,
"paa-ram",
"Latn",
}
m["akj"] = {
"Jeru",
2919121,
"qfa-adn",
"Latn, Deva",
translit = {
Deva = "Deva-translit",
},
}
m["akk"] = {
"แอกแคด",
35518,
"sem-eas",
"Xsux, Latn",
}
m["akl"] = {
"อักลัน",
8773,
"phi",
"Latn",
}
m["akm"] = {
"Aka-Bo",
35361,
"qfa-adn",
"Latn",
}
m["ako"] = {
"Akurio",
56650,
"sai-tar",
"Latn",
}
m["akp"] = {
"Siwu",
36470,
"alv-ntg",
"Latn",
}
m["akq"] = {
"Ak",
56654,
"paa-spk",
"Latn",
}
m["akr"] = {
"Araki",
2699882,
"poz-vnn",
"Latn",
}
m["aks"] = {
"Akaselem",
34817,
"nic-grm",
"Latn",
}
m["akt"] = {
"Akolet",
3330162,
"poz-ocw",
"Latn",
}
m["aku"] = {
"Akum",
34799,
"nic-ykb",
"Latn",
}
m["akv"] = {
"Akhvakh",
56423,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["akw"] = {
"Akwa",
34802,
"bnt-mbo",
"Latn",
}
m["akx"] = {
"Aka-Kede",
3436816,
"qfa-adc",
"Latn",
}
m["aky"] = {
"Aka-Kol",
3436784,
"qfa-adc",
"Latn",
}
m["akz"] = {
"แอละแบมา",
1815020,
"nai-mus",
"Latn",
}
m["ala"] = {
"Alago",
34813,
"alv-ido",
"Latn",
}
m["alc"] = {
"Kawésqar",
56544,
"aqa",
"Latn",
}
m["ald"] = {
"Alladian",
34837,
"alv-lag",
"Latn",
}
m["ale"] = {
"Aleut",
27210,
"esx",
"Latn, Cyrl",
}
m["alf"] = {
"Alege",
34815,
"nic-ben",
"Latn",
}
m["alh"] = {
"Alawa",
2147917,
"aus-gun",
"Latn",
}
m["ali"] = {
"Amaimon",
3327427,
"ngf-mad",
"Latn",
}
m["alj"] = {
"Alangan",
3327423,
"phi",
"Latn",
}
m["alk"] = {
"Alak",
2714690,
"mkh",
"Latn",
}
m["all"] = {
"Allar",
3393634,
"dra-mal",
"Mlym",
-- Mlym translit in [[Module:scripts/data]] (NOTE: not present before, presumably an accidental omission)
}
-- "aln" is treated as "sq", see [[WT:LT]]
m["alm"] = {
"Amblong",
11022615,
"poz-vnn",
"Latn",
}
m["alo"] = {
"Larike-Wakasihu",
3217929,
"poz-cma",
"Latn",
}
m["alp"] = {
"Alune",
3327367,
"poz-cet",
"Latn",
}
m["alq"] = {
"Algonquin",
28092,
"alg",
"Latn, Cans",
ancestors = "oj",
}
m["alr"] = {
"Alutor",
28213,
"qfa-ckn",
"Cyrl",
strip_diacritics = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = {
from = {"вʼ", "гʼ", "ғ", "ә", "ё", "ӄ", "ӈ"},
to = {"в" .. p[1], "г" .. p[1], "г" .. p[2], "е" .. p[1], "е" .. p[2], "к" .. p[1], "н" .. p[1]}
},
}
m["alt"] = {
"อัลไตใต้",
1991779,
"trk-kkp",
"Cyrl",
translit = "Altai-translit",
sort_key = {
from = {"ј", "ё", "ҥ", "ӧ", "ӱ"},
to = {"д" .. p[1], "е" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1]}
},
}
m["alu"] = {
"'Are'are",
5160,
"poz-sls",
"Latn",
}
m["alw"] = {
"Alaba",
56652,
"cus-hec",
"Latn",
}
m["alx"] = {
"Amol",
3504260,
"paa-tor",
"Latn",
}
m["aly"] = {
"Alyawarr",
3327389,
"aus-pam",
"Latn",
}
m["alz"] = {
"Alur",
56507,
"sdv-los",
"Latn",
}
m["ama"] = {
"Amanayé",
3508053,
"tup-gua",
"Latn",
}
m["amb"] = {
"Ambo",
3450142,
"nic-tvn",
"Latn",
}
m["amc"] = {
"Amahuaca",
2669150,
"sai-pan",
"Latn",
}
m["ame"] = {
"Yanesha'",
3088540,
"awd",
"Latn",
}
m["amf"] = {
"Hamer-Banna",
35764,
"omv-aro",
"Latn, Ethi",
sort_key = "amf-utilities"
}
m["amg"] = {
"Amurdag",
3360016,
"aus-wdj",
"Latn",
}
m["ami"] = {
"Amis",
35132,
"map",
"Latn",
}
m["amj"] = {
"Amdang",
28335,
"ssa-fur",
"Latn",
}
m["amk"] = {
"Ambai",
1875885,
"poz-hce",
"Latn",
}
m["aml"] = {
"War-Jaintia",
56321,
"aav-khs",
"Latn",
}
m["amm"] = {
"Ama",
3446626,
"paa-lem",
"Latn",
}
m["amn"] = {
"Amanab",
3327399,
"paa-brd",
"Latn",
}
m["amo"] = {
"Amo",
34826,
"nic-kne",
"Latn",
}
m["amp"] = {
"Alamblak",
56688,
"paa-spk",
"Latn",
}
m["amq"] = {
"Amahai",
3327384,
"poz-cma",
"Latn",
}
m["amr"] = {
"Amarakaeri",
35128,
"sai-har",
"Latn",
}
m["ams"] = {
"อามามิโอชิมะใต้",
2840986,
"jpx-nry",
"Jpan",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["amt"] = {
"Amto",
56517,
"paa-amu",
"Latn",
}
m["amu"] = {
"Guerrero Amuzgo",
3501942,
"omq",
"Latn",
}
m["amv"] = {
"Ambelau",
2669214,
"poz-cma",
"Latn",
}
m["amw"] = {
"Western Neo-Aramaic",
34226,
"sem-arw",
"Armi, Syrc, Latn",
strip_diacritics = {
Syrc = "Syrc-stripdiacritics"
},
}
m["amx"] = {
"Anmatyerre",
10412317,
"aus-pam",
"Latn",
}
m["amy"] = {
"Ami",
10408315,
"aus-dal",
"Latn",
}
m["amz"] = {
"Atampaya",
3446651,
"aus-pam",
"Latn",
}
m["ana"] = {
"Andaqui",
2846078,
nil,
"Latn",
}
m["anb"] = {
"Andoa",
2846171,
"sai-zap",
"Latn",
}
m["anc"] = {
"Ngas",
35999,
"cdc-wst",
"Latn",
}
m["and"] = {
"Ansus",
3513300,
"poz-hce",
"Latn",
}
m["ane"] = {
"คังรังชือ",
3571097,
"poz-cln",
"Latn",
}
m["anf"] = {
"Animere",
34783,
"alv-ktg",
"Latn",
}
m["ang"] = {
"อังกฤษเก่า",
42365,
"gmw-ang",
"Latn, Runr",
translit = {
Runr = "Runr-translit"
},
strip_diacritics = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dotbelow,
from = {"[Ƿƿ]"},
to = {{
["Ƿ"] = "W", ["ƿ"] = "w",
}},
},
},
sort_key = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dotbelow,
from = {"[æƀꝺðꝼᵹȝłœꞃꞅꞇþꝥꝧƿ]"},
to = {{
["æ"] = "ae", ["ƀ"] = "b", ["ꝺ"] = "d", ["ð"] = "d" .. p[1], ["ꝼ"] = "f",
["ᵹ"] = "g", ["ȝ"] = "g" .. p[1], ["ł"] = "l", ["œ"] = "oe", ["ꞃ"] = "r",
["ꞅ"] = "s", ["ꞇ"] = "t", ["þ"] = "t" .. p[1], ["ꝥ"] = "t" .. p[1],
["ꝧ"] = "t" .. p[1], ["ƿ"] = "w",
}},
},
},
standard_chars = {
Latn = "AaÆæBbCcDdÐðEeFfGgHhIiLlMmNnOoŒœPpRrSsTtÞþUuWwXxYy",
c.punc,
},
}
m["anh"] = {
"Nend",
6991554,
"ngf-wso",
"Latn",
}
m["ani"] = {
"Andi",
34849,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["anj"] = {
"Anor",
56458,
"paa-ram",
"Latn",
}
m["ank"] = {
"Goemai",
35272,
"cdc-wst",
"Latn",
}
m["anl"] = {
"Anu",
4777679,
"sit-mru",
"Latn",
}
m["anm"] = {
"Anāl",
56235,
"tbq-kuk",
"Latn",
}
m["ann"] = {
"Obolo",
36614,
"nic-lcr",
"Latn",
}
m["ano"] = {
"Andoque",
2669225,
"qfa-iso",
"Latn",
}
m["anp"] = {
"Angika",
28378,
"inc-bih",
"Deva, Kthi",
translit = {
Deva = "Deva-translit",
Kthi = "Kthi-translit",
},
}
m["anq"] = {
"Jarawa",
2475526,
"qfa-ong",
"Latn",
}
m["anr"] = {
"Andh",
4754314,
"inc-sou",
"Deva",
translit = "Deva-translit",
}
m["ans"] = {
"Anserma",
3446613,
"sai-chc",
"Latn",
}
m["ant"] = {
"Antakarinya",
921304,
"aus-psw",
"Latn",
}
m["anu"] = {
"Anuak",
56677,
"sdv-lon",
"Latn",
}
m["anv"] = {
"Denya",
35187,
"nic-mam",
"Latn",
}
m["anw"] = {
"Anaang",
2845320,
"nic-ief",
"Latn",
}
m["anx"] = {
"Andra-Hus",
2846195,
"poz-aay",
"Latn",
}
m["any"] = {
"Anyi",
28395,
"alv-ctn",
"Latn",
}
m["anz"] = {
"Anem",
56512,
"qfa-dis", -- Papuan; might be an isolate or in a putative West New Britain family
"Latn",
}
m["aoa"] = {
"Angolar",
34994,
"crp",
"Latn",
ancestors = "pt",
}
m["aob"] = {
"Abom",
3446647,
"paa-ani",
"Latn",
}
m["aoc"] = {
"Pemon",
10729616,
"sai-pem",
"Latn",
}
m["aod"] = {
"Andarum",
3507888,
"paa-ram",
"Latn",
}
m["aoe"] = {
"Angal Enen",
10951638,
"ngf-eng",
"Latn",
}
m["aof"] = {
"Bragat",
3507977,
"paa-tor",
"Latn",
}
m["aog"] = {
"Angoram",
56366, -- cf 6754745 for merged dialect
"paa-lsp",
"Latn",
}
m["aoi"] = {
"Anindilyakwa",
2714654,
"aus-arn",
"Latn",
}
m["aoj"] = {
"Mufian",
3507881,
"paa-tor",
"Latn",
}
m["aok"] = {
"Arhö",
4790086,
"poz-cln",
"Latn",
}
m["aol"] = {
"Alorese",
3332062,
"poz",
"Latn",
}
m["aom"] = {
"Ömie",
8078975,
"ngf-koi",
"Latn",
}
m["aon"] = {
"Bumbita Arapesh",
3508044,
"paa-tor",
"Latn",
}
m["aor"] = {
"Aore",
12627129,
"poz-vnn",
"Latn",
}
m["aos"] = {
"Taikat",
7676018,
"paa-brd",
"Latn",
}
m["aot"] = {
"อะตง", --actual pronounciation
5646,
"tbq-bdg",
"Latn, Beng",
}
m["aou"] = {
"A'ou",
16109994,
"gio",
"Latn", -- also Hani?
}
m["aox"] = {
"Atorada",
3507932,
"awd",
"Latn",
}
m["aoz"] = {
"Uab Meto",
3441962,
"poz-tim",
"Latn",
}
m["apb"] = {
"Sa'a",
36294,
"poz-sls",
"Latn",
}
m["apc"] = {
"North Levantine Arabic",
22809485,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["apd"] = {
"อาหรับแบบซูดาน",
56573,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ape"] = {
"Bukiyip",
3507895,
"paa-tor",
"Latn",
}
m["apf"] = {
"Pahanan Agta",
7135432,
"phi",
"Latn",
}
m["apg"] = {
"Ampanang",
4748035,
"poz",
"Latn",
}
m["aph"] = {
"Athpare",
3449126,
"sit-kie",
"Deva, Latn",
translit = {
Deva = "Deva-translit",
},
}
m["api"] = {
"Apiaká",
3507941,
"tup-gua",
"Latn",
}
m["apj"] = {
"Jicarilla",
28277,
"apa",
"Latn",
}
m["apk"] = {
"Plains Apache",
27861,
"apa",
"Latn",
}
m["apl"] = {
"Lipan",
28269,
"apa",
"Latn",
}
m["apm"] = {
"Chiricahua",
13368,
"apa",
"Latn",
}
m["apn"] = {
"Apinayé",
2858311,
"sai-nje",
"Latn",
}
m["apo"] = {
"Ambul",
12627135,
"poz-ocw",
"Latn",
}
m["app"] = {
"Apma",
2669188,
"poz-vnn",
"Latn",
}
m["apq"] = {
"A-Pucikwar",
28466,
"qfa-adc",
"Latn",
}
m["apr"] = {
"Arop-Lokep",
2863482,
"poz-ocw",
"Latn",
}
m["aps"] = {
"Arop-Sissano",
12627242,
"poz-ocw",
"Latn",
}
m["apt"] = {
"Apatani",
56306,
"sit-tan",
"Latn",
}
m["apu"] = {
"Apurinã",
2859081,
"awd",
"Latn",
}
m["apv"] = {
"Alapmunte",
16110782,
"sai-nmk",
"Latn",
}
m["apw"] = {
"อะแพชีตะวันตก",
28060,
"apa",
"Latn",
}
m["apx"] = {
"Aputai",
12473343,
"poz-tim",
"Latn",
}
m["apy"] = {
"Apalaí",
2736980,
"sai-gui",
"Latn",
}
m["apz"] = {
"Safeyoka",
7398693,
"ngf-ang",
"Latn",
}
m["aqc"] = {
"Archi",
34915,
"cau-lzg",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
sort_key = {
from = {
"ккъӏв", "ххьӏв", -- 5 chars
"гъӏв", "ёоӏ", "ккъӏ", "ккъв", "къӏв", "ллъв", "ххьӏ", "хъӏв", "хьӏв", "ццӏв", "ччӏв", -- 4 chars
"ааӏ", "гӏв", "гъӏ", "гъв", "гьв", "ееӏ", "ёӏ", "ёо", "ииӏ", "кӏв", "ккв", "ккъ", "къӏ", "къв", "кьв", "лӏв", "ллъ", "лъв", "льв", "ооӏ", "пӏв", "ппв", "ссв", "тӏв", "ттв", "ууӏ", "хӏв", "ххв", "хъӏ", "хъв", "хьӏ", "цӏв", "ццӏ", "ццв", "чӏв", "ччӏ", "ээӏ", "юуӏ", "яаӏ", -- 3 chars
"аӏ", "аа", "гӏ", "гв", "гъ", "гь", "дв", "еӏ", "ее", "ё", "жв", "зв", "иӏ", "ии", "кӏ", "кв", "кк", "къ", "кь", "лӏ", "лв", "лъ", "ль", "оӏ", "оо", "пӏ", "пв", "пп", "св", "сс", "тӏ", "тв", "тт", "уӏ", "уу", "фв", "хӏ", "хв", "хх", "хъ", "цӏ", "цв", "цц", "чӏ", "чв", "шв", "щв", "эӏ", "ээ", "юӏ", "юу", "яӏ", "яа" -- 2 chars
},
to = {
"к" .. p[8], "х" .. p[7],
"г" .. p[6], "е" .. p[7], "к" .. p[7], "к" .. p[9], "к" .. p[12], "л" .. p[5], "х" .. p[6], "х" .. p[10], "х" .. p[13], "ц" .. p[6], "ч" .. p[5],
"а" .. p[3], "г" .. p[2], "г" .. p[5], "г" .. p[7], "г" .. p[9], "е" .. p[3], "е" .. p[5], "е" .. p[6], "и" .. p[3], "к" .. p[2], "к" .. p[5], "к" .. p[6], "к" .. p[11], "к" .. p[13], "к" .. p[15], "л" .. p[2], "л" .. p[4], "л" .. p[7], "л" .. p[9], "о" .. p[3], "п" .. p[2], "п" .. p[5], "с" .. p[3], "т" .. p[2], "т" .. p[5], "у" .. p[3], "х" .. p[2], "х" .. p[5], "х" .. p[9], "х" .. p[11], "х" .. p[12], "ц" .. p[2], "ц" .. p[5], "ц" .. p[7], "ч" .. p[2], "ч" .. p[4], "э" .. p[3], "ю" .. p[3], "я" .. p[3],
"а" .. p[1], "а" .. p[2], "г" .. p[1], "г" .. p[3], "г" .. p[4], "г" .. p[8], "д" .. p[1], "е" .. p[1], "е" .. p[2], "е" .. p[4], "ж" .. p[1], "з" .. p[1], "и" .. p[1], "и" .. p[2], "к" .. p[1], "к" .. p[3], "к" .. p[4], "к" .. p[10], "к" .. p[14], "л" .. p[1], "л" .. p[3], "л" .. p[6], "л" .. p[8], "о" .. p[1], "о" .. p[2], "п" .. p[1], "п" .. p[3], "п" .. p[4], "с" .. p[1], "с" .. p[2], "т" .. p[1], "т" .. p[3], "т" .. p[4], "у" .. p[1], "у" .. p[2], "ф" .. p[1], "х" .. p[1], "х" .. p[3], "х" .. p[4], "х" .. p[8], "ц" .. p[1], "ц" .. p[3], "ц" .. p[4], "ч" .. p[1], "ч" .. p[3], "ш" .. p[1], "щ" .. p[1], "э" .. p[1], "э" .. p[2], "ю" .. p[1], "ю" .. p[2], "я" .. p[1], "я" .. p[2]
}
},
}
m["aqd"] = {
"Ampari Dogon",
4748057,
"nic-dgw",
"Latn",
}
m["aqg"] = {
"Arigidi",
34829,
"alv-von",
"Latn",
}
m["aqm"] = {
"Atohwaim",
11732297,
"paa-kay",
"Latn",
}
m["aqn"] = {
"Northern Alta",
7058116,
"phi",
"Latn",
}
m["aqp"] = {
"Atakapa",
10975683,
"qfa-iso",
"Latn",
}
m["aqr"] = {
"Arhâ",
4790085,
"poz-cln",
"Latn",
}
m["aqt"] = {
"Angaité",
15736037,
"sai-mas",
"Latn",
}
m["aqz"] = {
"Akuntsu",
4701960,
"tup",
"Latn",
}
m["arc"] = {
"อารามายา", -- ใช้แทน แอราเมอิก เพราะซ้ำกับกลุ่มภาษา
28602,
"sem-ara",
"Hebr, Armi, Syrc, Palm, Nbat, Phnx, Mand, Samr, Hatr, Elym",
translit = {
Armi = "Armi-translit",
Palm = "Palm-translit",
},
strip_diacritics = {
-- The first three were added by [[User:Wikitiki89]] in 2015 for use with Syriac, which has diacritics that look
-- like a diaeresis (syāmē) and macrons above and below (mṭalqānā); see Wikipedia [[w:Syriac alphabet]]. But
-- I don't know if they are actually represented using these diacritics.
Syrc = {remove_diacritics = c.macron .. c.diaer .. c.macronbelow .. u(0x0730) .. "-" .. u(0x0748)},
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
-- Samr strip_diacritics, sort_key in [[Module:scripts/data]]; previously no sort_key for Samr, presumably a mistake
-- Phnx translit in [[Module:scripts/data]] (NOTE: not present before, presumably an accidental omission)
}
m["ard"] = {
"Arabana",
3507959,
"aus-kar",
"Latn",
}
m["are"] = {
"Western Arrernte",
12645549,
"aus-pam",
"Latn",
}
m["arh"] = {
"Arhuaco",
2640621,
"cba",
"Latn",
}
m["ari"] = {
"Arikara",
56539,
"cdd",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
}
m["arj"] = {
"Arapaso",
9627356,
"sai-tuc",
"Latn",
}
m["ark"] = {
"Arikapú",
3446640,
"sai-mje",
"Latn",
}
m["arl"] = {
"Arabela",
2591221,
"sai-zap",
"Latn",
}
m["arn"] = {
"Mapudungun",
33730,
"sai-ara",
"Latn",
}
m["aro"] = {
"Araona",
958414,
"sai-tac",
"Latn",
}
m["arp"] = {
"Arapaho",
56417,
"alg-ara",
"Latn",
}
m["arq"] = {
"อาหรับแบบแอลจีเรีย",
56499,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["arr"] = {
"Arara-Karo",
35539,
"tup",
"Latn",
}
m["ars"] = {
"Najdi Arabic",
56574,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["aru"] = {
"Arua",
2746221,
"auf",
"Latn",
}
m["arv"] = {
"Arbore",
56883,
"cus-eas",
"Latn",
}
m["arw"] = {
"โลโกโน",
2655664,
"awd-taa",
"Latn",
}
m["arx"] = {
"Aruá",
3507907,
"tup",
"Latn",
}
m["ary"] = {
"อาหรับแบบโมร็อกโก",
56426,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["arz"] = {
"อาหรับแบบอียิปต์",
29919,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["asa"] = {
"Pare",
36403,
"bnt-par",
"Latn",
}
m["asb"] = {
"Assiniboine",
2591288,
"sio-dkt",
"Latn",
}
m["asc"] = {
"Casuarina Coast Asmat",
11732046,
"ngf-ask",
"Latn",
}
m["ase"] = {
"มืออเมริกัน",
14759,
"sgn",
"Sgnw",
}
m["asf"] = {
"Auslan",
29525,
"sgn",
"Latn", -- when documented
}
m["asg"] = {
"Cishingini",
35199,
"nic-kam",
"Latn",
}
m["ash"] = {
"Abishira",
2871740,
"qfa-dis", -- extinct, poorly documented; isolate or in a proposed Tequiraca-Canichana family by Kaufman (1994)
"Latn",
}
m["asi"] = {
"Buruwai",
5001031,
"ngf-ask",
"Latn",
}
m["asj"] = {
"Nsari",
36418,
"nic-bbe",
"Latn",
}
m["ask"] = {
"Ashkun",
29379,
"nur-sou",
"Arab, Latn",
}
m["asl"] = {
"Asilulu",
12473347,
"poz-cma",
"Latn",
}
m["asn"] = {
"Xingú Asuriní",
8044571,
"tup-gua",
"Latn",
}
m["aso"] = {
"Dano",
5220979,
"ngf-kag",
"Latn",
}
m["asp"] = {
"Algerian Sign Language",
3135421,
"sgn",
}
m["asq"] = {
"Austrian Sign Language",
36668,
"sgn",
"Latn", -- when documented
}
m["asr"] = {
"Asuri",
3504321,
"mun",
"Latn", -- when documented
}
m["ass"] = {
"Ipulo",
35408,
"nic-tvc",
"Latn",
}
m["ast"] = {
"อัสตูเรียส",
29507,
"roa-asl",
"Latn",
}
m["asu"] = {
"Tocantins Asurini",
32041490,
"tup-gua",
"Latn",
}
m["asv"] = {
"Asoa",
56296,
"csu-maa",
"Latn",
}
m["asw"] = {
"Australian Aboriginal Sign Language",
955216,
"sgn",
"Latn", -- when documented
}
m["asx"] = {
"Muratayak",
11732766,
"ngf-fin",
"Latn",
}
m["asy"] = {
"Yaosakor Asmat",
16113158,
"ngf-ask",
"Latn",
}
m["asz"] = {
"As",
2866218,
"poz-hce",
"Latn",
}
m["ata"] = {
"Pele-Ata",
56511,
"qfa-dis", -- Papuan; possibly in a putative West New Britain family, or an isolate
"Latn",
}
m["atb"] = {
"Zaiwa",
56594,
"tbq-brm",
"Latn, Lisu", -- also Hani?
-- Lisu translit, sort_key in [[Module:scripts/data]]
}
m["atc"] = {
"Atsahuaca",
4817730,
"sai-pan",
"Latn",
}
m["atd"] = {
"Ata Manobo",
12627315,
"mno",
"Latn",
}
m["ate"] = {
"Atemble",
4813055,
"ngf-wso",
"Latn",
}
m["atg"] = {
"Okpela",
7082551,
"alv-yek",
"Latn",
}
m["ati"] = {
"Attié",
34844,
"alv-lag",
"Latn",
}
m["atj"] = {
"Atikamekw",
56590,
"alg",
"Latn",
ancestors = "cr",
}
m["atk"] = {
"Ati",
3217458,
"phi",
"Latn",
}
m["atl"] = {
"Mount Iraya Agta",
6921430,
"phi",
"Latn",
}
m["atm"] = {
"Ata",
4812603,
"phi",
"Latn",
}
m["ato"] = {
"Atong (Cameroon)",
34824,
"nic-grs",
"Latn",
}
m["atp"] = {
"Pudtol Atta",
12640726,
"phi",
"Latn",
}
m["atq"] = {
"Aralle-Tabulahan",
4783889,
"poz-ssw",
"Latn",
}
m["atr"] = {
"Waimiri-Atroari",
56865,
"sai-car",
"Latn",
}
m["ats"] = {
"Gros Ventre",
56628,
"alg-ara",
"Latn",
}
m["att"] = {
"Pamplona Atta",
12639245,
"phi",
"Latn",
}
m["atu"] = {
"Reel",
7306882,
"sdv-dnu",
"Latn",
}
m["atv"] = {
"อัลไตเหนือ",
2640863,
"trk-ssb",
"Cyrl",
translit = "Altai-translit",
}
m["atw"] = {
"Atsugewi",
56718,
"nai-pal",
"Latn",
}
m["atx"] = {
"Arutani",
56609,
nil,
"Latn",
}
m["aty"] = {
"อาเนตยูม",
2379113,
"poz-vns",
"Latn",
}
m["atz"] = {
"Arta",
3508067,
"phi",
"Latn",
}
m["aua"] = {
"Asumboa",
4811870,
"poz-tem",
"Latn",
}
m["aub"] = {
"Alugu",
12626798,
"tbq-urp",
"Latn", -- also Hani?
}
m["auc"] = {
"Huaorani",
758570,
"qfa-iso",
"Latn",
}
m["aud"] = {
"Anuta",
35326,
"poz-pnp",
"Latn",
}
m["aug"] = {
"Aguna",
34733,
"alv-gbe",
"Latn",
}
m["auh"] = {
"Aushi",
2872082,
"bnt-sbi",
"Latn",
}
m["aui"] = {
"Anuki",
3508132,
"poz-ocw",
"Latn",
}
m["auj"] = {
"Awjila",
56398,
"ber",
"Latn, Arab, Tfng",
}
m["auk"] = {
"Heyo",
3504295,
"paa-tor",
"Latn",
}
m["aul"] = {
"Aulua",
427300,
"poz-vnc",
"Latn",
}
m["aum"] = {
"Asu",
34798,
"alv-ngb",
"Latn",
}
m["aun"] = {
"Molmo One",
12637224,
"paa-tor",
"Latn",
}
m["auo"] = {
"Auyokawa",
56247,
"cdc-wst",
"Latn",
}
m["aup"] = {
"Makayam",
6738863,
"paa-ani",
"Latn",
}
m["auq"] = {
"Anus",
23855,
"poz-ocw",
"Latn",
}
m["aur"] = {
"Aruek",
3504279,
"paa-tor",
"Latn",
}
m["aut"] = {
"Austral",
2669261,
"poz-pep",
"Latn",
}
m["auu"] = {
"Auye",
4827334,
"ngf-pan",
"Latn",
}
m["auw"] = {
"Awyi",
3513326,
"paa-brd",
"Latn",
}
m["aux"] = {
"Aurá",
3507995,
"tup-gua",
"Latn",
}
m["auy"] = {
"Auyana",
2873211,
"ngf-kag",
"Latn",
}
m["auz"] = {
"อาหรับแบบอุซเบกิสถาน",
3399507,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["avb"] = {
"Avau",
12627412,
"poz-ocw",
"Latn",
}
m["avd"] = {
"Alviri-Vidari",
3327357,
"xme",
"fa-Arab",
ancestors = "xme-mid",
}
m["avi"] = {
"Avikam",
34840,
"alv-lag",
"Latn",
}
m["avk"] = {
"โคทาวา",
1377116,
"art",
"Latn",
type = "appendix-constructed",
}
m["avm"] = {
"Angkamuthi",
62603022,
"aus-pmn",
"Latn",
}
m["avn"] = {
"Avatime",
34796,
"alv-ktg",
"Latn",
}
m["avo"] = {
"Agavotaguerra",
3508007,
"awd",
"Latn",
}
m["avs"] = {
"Aushiri",
3409318,
"sai-zap",
"Latn",
}
m["avt"] = {
"Au",
3446608,
"paa-tor",
"Latn",
}
m["avu"] = {
"Avokaya",
56685,
"csu-mma",
"Latn",
}
m["avv"] = {
"Avá-Canoeiro",
4829584,
"tup-gua",
"Latn",
}
m["awa"] = {
"อวัธ",
29579,
"inc-hie",
"Deva, Kthi, fa-Arab",
ancestors = "inc-oaw",
translit = {
Deva = "Deva-translit",
Kthi = "Kthi-translit",
},
}
m["awb"] = {
"Awa (New Guinea)",
2874650,
"ngf-kag",
"Latn",
}
m["awc"] = {
"Cicipu",
35193,
"nic-kam",
"Latn",
}
m["awe"] = {
"Awetí",
4830038,
"tup",
"Latn",
}
m["awg"] = {
"Anguthimri",
4764288,
"aus-pam",
"Latn",
}
m["awh"] = {
"Awbono",
3446684,
"paa-baw",
"Latn",
}
m["awi"] = {
"Aekyom",
3399691,
"paa-kae",
"Latn",
}
m["awk"] = {
"Awabakal",
3449138,
"aus-pam",
"Latn",
}
m["awm"] = {
"Arawum",
4784537,
"ngf-rai",
"Latn",
}
m["awn"] = {
"Awngi",
34934,
"cus-cen",
"Ethi",
}
m["awo"] = {
"Awak",
3446643,
"alv-wjk",
"Latn",
}
m["awr"] = {
"Awera",
56379,
"paa-lkp",
"Latn",
}
m["aws"] = {
"South Awyu",
12633986,
"ngf-gaw",
"Latn",
}
m["awt"] = {
"Araweté",
4784535,
"tup-gua",
"Latn",
}
m["awu"] = {
"Central Awyu",
12628801,
"ngf-gaw",
"Latn",
}
m["awv"] = {
"Jair Awyu",
16110177,
"ngf-gaw",
"Latn",
}
m["aww"] = {
"Awun",
56369,
"paa-spk",
"Latn",
}
m["awx"] = {
"Awara",
2874670,
"ngf-fin",
"Latn",
}
m["awy"] = {
"Edera Awyu",
12630425,
"ngf-gaw",
"Latn",
}
m["axb"] = {
"Abipón",
11252539,
"sai-guc",
"Latn",
}
m["axe"] = {
"Ayerrerenge",
16112737,
"aus-pam",
"Latn",
}
m["axg"] = {
"Arára (Mato Grosso)",
3446660,
nil,
"Latn",
}
m["axk"] = {
"Aka (Central Africa)",
11010149,
"bnt-ngn",
"Latn",
}
m["axl"] = {
"Lower Southern Aranda",
6693295,
"aus-pam",
"Latn",
}
m["axm"] = {
"อาร์มีเนียกลาง",
4438498,
"hyx",
"Armn",
ancestors = "xcl",
-- Armn translit in [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
remove_diacritics = "՞՜՛՟",
from = {"եւ", "ՙ", "՚"},
to = {"և", "ʻ", "’"}
}
}
m["axx"] = {
"Xârâgurè",
8045635,
"poz-cln",
"Latn",
}
m["aya"] = {
"Awar",
56876,
"paa-ram",
"Latn",
}
m["ayb"] = {
"Ayizo",
34841,
"alv-pph",
"Latn",
}
m["ayd"] = {
"Ayabadhu",
3509164,
"aus-pmn",
"Latn",
}
m["aye"] = {
"Ayere",
34788,
"alv-aah",
"Latn",
}
m["ayg"] = {
"Nyanga (Togo)",
35446,
"alv-gng",
"Latn",
}
m["ayi"] = {
"Leyigha",
3914492,
"nic-uce",
"Latn",
}
m["ayk"] = {
"Akuku",
3450179,
"alv-nwd",
"Latn",
}
m["ayl"] = {
"อาหรับแบบลิเบีย",
56503,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ayn"] = {
"อาหรับแบบเยเมน",
1686766,
"sem-arb",
"Arab, Hebr",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["ayo"] = {
"Ayoreo",
56634,
"sai-zam",
"Latn",
}
m["ayp"] = {
"อาหรับแบบเมโสโปเตเมียเหนือ",
56577,
"sem-arb",
"Arab",
ancestors = "acm",
strip_diacritics = "ar-stripdiacritics",
}
m["ayq"] = {
"Ayi",
56449,
"paa-spk",
"Latn",
}
m["ays"] = {
"Sorsogon Ayta",
7563752,
"phi",
"Latn",
}
m["ayt"] = {
"Bataan Ayta",
4921648,
"phi",
"Latn",
}
m["ayu"] = {
"Ayu",
34786,
"alv",
"Latn",
}
m["ayy"] = {
"Tayabas Ayta",
7689745,
"phi",
"Latn",
}
m["ayz"] = {
"Maybrat",
4830892,
"paa-mbr",
-- either an isolate; grouped with Abun and the West Bird's Head family; or in the putative West Papuan family
"Latn",
}
m["aza"] = {
"Azha",
4832486,
"tbq-axi",
"Latn",
}
m["azd"] = {
"Eastern Durango Nahuatl",
16115449,
"azc-dur",
"Latn",
}
m["azg"] = {
"San Pedro Amuzgos Amuzgo",
35092,
"omq",
"Latn",
}
m["azm"] = {
"Ipalapa Amuzgo",
12633013,
"omq",
"Latn",
}
m["azn"] = {
"Western Durango Nahuatl",
12645553,
"azc-dur",
"Latn",
}
m["azo"] = {
"Awing",
34856,
"nic-nge",
"Latn",
}
m["azt"] = {
"Faire Atta",
12630884,
"phi",
"Latn",
}
m["azz"] = {
"Highland Puebla Nahuatl",
12953754,
"azc-nah",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
qdkzeufhnt7uzojn6s2elz1kq9gbvyc
มอดูล:en-headword
828
37360
5723288
5647504
2026-05-20T05:20:09Z
OctraBot
3198
5723288
Scribunto
text/plain
local export = {}
local pos_functions = {}
--[==[
Author from 2020 on: mostly Benwing2, with significant contributions from Theknightwho. Based on a prior version by Rua
(by now mostly rewritten), with contributions from Erutuon and others (see history for full attribution).
]==]
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local require = require
local require_when_needed = require("Module:require when needed")
local en_utilities_module = "Module:en-utilities"
local headword_utilities_module = "Module:headword utilities"
local headword_module = "Module:headword"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local JSON_module = "Module:JSON"
local labels_module = "Module:labels"
local links_module = "Module:links"
local parameters_module = "Module:parameters"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local yesno_module = "Module:yesno"
local iut = require_when_needed(inflection_utilities_module)
local put = require_when_needed(parse_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local add_links_to_multiword_term = require_when_needed(headword_utilities_module, "add_links_to_multiword_term")
local add_suffix = require_when_needed(en_utilities_module, "add_suffix")
local apply_link_modifiers = require_when_needed(headword_utilities_module, "apply_link_modifiers")
local concat = table.concat
local deepEquals = require_when_needed(table_module, "deepEquals")
local dump = mw.dumpObject
local format_categories = require_when_needed(utilities_module, "format_categories")
local full_headword = require_when_needed(headword_module, "full_headword")
local get_label_info = require_when_needed(labels_module, "get_label_info")
local get_link_page = require_when_needed(links_module, "get_link_page")
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local insert = table.insert
local insertIfNot = require_when_needed(table_module, "insertIfNot")
local ipairs = ipairs
local is_regular_plural = require_when_needed(en_utilities_module, "is_regular_plural")
local list_to_set = require_when_needed(table_module, "listToSet")
local pairs = pairs
local process_params = require_when_needed(parameters_module, "process")
local remove = table.remove
local remove_links = require_when_needed(links_module, "remove_links")
local replacement_escape = require_when_needed(string_utilities_module, "replacement_escape")
local shallowCopy = require_when_needed(table_module, "shallowCopy")
local singularize = require_when_needed(en_utilities_module, "singularize")
local split = require_when_needed(string_utilities_module, "split")
local toJSON = require_when_needed(JSON_module, "toJSON")
local toNFD = mw.ustring.toNFD
local type = type
local ulen = require_when_needed(string_utilities_module, "len")
local ulower = require_when_needed(string_utilities_module, "lower")
local umatch = require_when_needed(string_utilities_module, "match")
local u = require_when_needed(string_utilities_module, "char")
local ugsub = require_when_needed(string_utilities_module, "gsub")
local lang = require("Module:languages").getByCode("en")
local langname = --[[lang:getCanonicalName()]] lang:getCategoryName()
local list_param = {list = true, disallow_holes = true}
local list_allow_holes = {list = true, allow_holes = true}
local boolean_param = {type = "boolean"}
local function ine(val)
if val == "" then return nil else return val end
end
local function track(page)
require("Module:debug/track")("en-headword/" .. page)
return true
end
------------------------------------------- UTILITY FUNCTIONS ------------------------------------------
-- Parse and return an inflection not requiring additional processing. The raw arguments come from `args[field]`, which
-- is parsed for inline modifiers.
local function parse_inflection(args, field, is_head)
local argfield = field
if type(argfield) == "table" then
argfield = argfield[1]
end
return m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[argfield],
splitchar = ",",
is_head = is_head,
}
end
-- Insert the parsed inflections in `terms` (as parsed by `parse_inflection`) into `data.inflections`, with label
-- `label` and optional accelerator spec `accel`.
local function insert_inflection(data, terms, label, accel, no_label)
for _, termobj in ipairs(terms) do
m_headword_utilities.remove_termobj_field_modifiers(termobj)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
no_label = no_label,
accel = accel and {form = accel} or nil,
}
end
-- Insert a fixed label `label` into the inflections for `data`. If `originating_term` is supplied, copy the qualifiers,
-- labels and references from it into the fixed label.
local function insert_fixed_inflection(data, label, originating_term)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
originating_term = originating_term,
label = label,
}
end
-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments come
-- from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are given;
-- `accel` is the accelerator form, or nil.
local function parse_and_insert_inflection(data, args, field, label, accel)
m_headword_utilities.parse_and_insert_inflection {
headdata = data,
forms = args[field],
paramname = field,
splitchar = ",",
label = label,
accel = accel and {form = accel} or nil,
-- If we want check_missing support, we need to supply the following:
-- check_missing = true,
-- lang = lang,
-- plpos = plpos,
}
end
-- These functions are used directly in the <> format as well as in the utility functions #2 below.
local function compute_double_last_cons_stem(term)
local last_cons = term:match("([bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ])$")
if not last_cons then
error("Verb stem '" .. term .. "' must end in a consonant to use ++")
end
return term .. last_cons
end
local function compute_plusplus_s_form(term, default_s_form)
if term:find("[szx]$") then
-- regas -> regasses, derez -> derezzes
return compute_double_last_cons_stem(term) .. "es"
else
return default_s_form
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "Template:en-head" and "interjection" or
error("Part of speech must be specified in 1=")
poscat = require(headword_module).canonicalize_pos(poscat)
end
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local indexing_poscat = pos_in_1 and "head" or poscat_th
local params = {
["head"] = list_param,
["id"] = true,
["json"] = boolean_param,
["sort"] = true,
["splithyph"] = boolean_param,
["nosplithyph"] = boolean_param,
["hyphspace"] = boolean_param,
["nolink"] = boolean_param,
["nolinkhead"] = {type = "boolean_param", alias_of = "nolink"},
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["nomultiwordcat"] = boolean_param,
["abbr"] = list_param,
["the"] = true,
["def"] = {alias_of = "the"},
["pagename"] = true, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local pos_data = pos_functions[indexing_poscat]
local pos_func
if pos_data then
local pos_params = pos_data.params
if pos_params then
for key, val in pairs(pos_params) do
params[key] = val
end
end
pos_func = pos_data.func
end
local args = process_params(parargs, params)
-- Account for unsupported titles, e.g. 'C|N>K' instead of 'Unsupported titles/C through N to K'.
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = parse_inflection(args, "head", "is_head")
local heads = user_specified_heads
local autohead
if args.nolink or not pagename:find("[ '%-]") then
autohead = pagename
else
local en_no_split_apostrophe_words = list_to_set {
"one's",
"someone's",
"he's",
"she's",
"it's",
}
local en_include_hyphen_prefixes = list_to_set {
-- We don't include things that are also words even though they are often (perhaps mostly) prefixes, e.g.
-- "be", "counter", "cross", "extra", "half", "mid", "over", "pan", "under".
"acro",
"acousto",
"Afro",
"agro",
"anarcho",
"angio",
"Anglo",
"ante",
"anti",
"arch",
"auto",
"bi",
"bio",
"cis",
"co",
"cryo",
"crypto",
"de",
"demi",
"eco",
"electro",
"Euro",
"ex",
"Greco",
"hemi",
"hydro",
"hyper",
"hypo",
"infra",
"Indo",
"inter",
"intra",
"Judeo",
"macro",
"meta",
"micro",
"mini",
"multi",
"neo",
"neuro",
"non",
"para",
"peri",
"post",
"pre",
"pro",
"proto",
"pseudo",
"re",
"semi",
"sub",
"super",
"trans",
"un",
"vice",
}
local function is_english(term)
local title = mw.title.new(term)
if title and title.exists then
local content = title:getContent()
if content and content:find("== ?ภาษาอังกฤษ ?==\n") then
return true
end
end
return false
end
local function en_split_hyphen_when_space(word)
if not word:find("-", nil, true) then
return nil
end
if args.hyphspace then
return "[[" .. word:gsub("%-+", " ") .. "|" .. word .. "]]"
end
if args.nosplithyph then
return "[[" .. word .. "]]"
end
if not args.splithyph then
local space_word = word:gsub("%-+", " ")
if is_english(space_word) then
return "[[" .. space_word .. "|" .. word .. "]]"
end
if is_english(word) then
return "[[" .. word .. "]]"
end
end
return nil
end
local function en_split_apostrophe(word)
local base = word:match("^(.*)'s$")
if base then
return "[[" .. base .. "]][[-'s|'s]]"
end
-- Only treat final apostrophe as possessive if preceded by something that looks like a plural ending in /z/.
-- In particular we don't want to do it for words like [[truckin']].
base = word:match("^(.*[sxz])'$")
if base then
if base:find("s$") then
local sg = singularize(base)
if is_english(sg) then
return "[[" .. sg .. "|" .. base .. "]][[-'|']]"
end
end
return "[[" .. base .. "]][[-'|']]"
end
return "[[" .. word .. "]]"
end
autohead = add_links_to_multiword_term(pagename, {
split_hyphen_when_space = en_split_hyphen_when_space,
split_apostrophe = en_split_apostrophe,
no_split_apostrophe_words = en_no_split_apostrophe_words,
include_hyphen_prefixes = en_include_hyphen_prefixes,
})
end
if not heads[1] then
heads = {{term = autohead}}
else
for _, headobj in ipairs(heads) do
local head = headobj.term
if head:find("^~") then
head = apply_link_modifiers(autohead, head:sub(2), lang)
headobj.term = head
elseif head:find("^[!?]$") then
-- If explicit head= just consists of ! or ?, add it to the end of the default head.
headobj.term = autohead .. head
end
if head == autohead then
track("redundant-head")
end
end
end
-- handle the=/def=
if args.the == "~" then
local newheads = {}
for _, headobj in ipairs(heads) do
local barehead = shallowCopy(headobj)
insert(newheads, barehead)
headobj.term = "the " .. headobj.term
insert(newheads, headobj)
end
heads = newheads
elseif args.the then
local the = require(yesno_module)(args.the)
if the then
for _, headobj in ipairs(heads) do
headobj.term = "the " .. headobj.term
end
end
end
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
-- We use our own splitting algorithm so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
inflections = {},
nomultiwordcat = args.nomultiwordcat,
sort_key = args.sort,
pagename = pagename,
id = args.id,
force_cat_output = force_cat,
}
local function inscat(cat)
--insert(data.categories, langname .. " " .. cat)
if mw.ustring.find(cat, "^ศัพท์") then
insert(data.categories, "ศัพท์" .. langname .. mw.ustring.sub(cat, 6))
else
insert(data.categories, cat .. langname)
end
end
local is_suffix = false
if args.suffix or not args.nosuffix and pagename:find("^%-") and not pagename:find("^%-%-") and poscat_th ~= "รูปปัจจัย" then
is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[singularize(poscat)]] poscat_th
inscat("ปัจจัยสร้าง" .. singular_poscat)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_func then
pos_func(args, data, is_suffix)
end
local extra_categories = {}
if pagename:find("[Qq]") then
-- Check for q not followed by u. We want to exclude things like [[13q deletion syndrome]] and [[BFOQ]] that
-- don't have a lowercase letter on either side, as well as things like [[& seq.]] and [[acq.]] that are
-- abbreviations for words containing a following u.
--
-- Approximate range of combining diacritics; we want to remove them so the checks below for
-- a lowercase letter next to the q aren't tripped up by diacritics on the letter.
local u300 = u(0x0300)
local u36F = u(0x036F)
local pagename_no_diacritics = ugsub(toNFD(pagename), "[" .. u300 .. "-" .. u36F .. "]", "")
if pagename_no_diacritics:find("[Qq][a-tv-z]") or pagename_no_diacritics:find("[a-z]q[^u.]") or
pagename_no_diacritics:find("[a-z]q$") then
inscat("ศัพท์ที่มี Q ไม่ตามด้วย U")
end
end
-- toNFD performs decomposition, so letters that decompose to an ASCII
-- vowel and a diacritic, such as é, are counted as vowels and do not do not
-- need to be included in the pattern.
if not umatch(ulower(toNFD(pagename)), "[aeiouyæœøəªºαεηιουω]") then
inscat("ศัพท์ที่ไม่มีสระ")
end
if pagename:find("yre$") then
inscat("ศัพท์ที่ลงท้ายด้วย -yre")
end
if not pagename:find(" ") and ulen(pagename) >= 25 then
insert(extra_categories, "ศัพท์" .. langname .. "ที่มีขนาดยาว")
end
if pagename:find("^[^aeiou ]*a[^aeiou ]*e[^aeiou ]*i[^aeiou ]*o[^aeiou ]*u[^aeiou ]*$") then
inscat("ศัพท์ที่ใช้สระทั้งหมดตามลำดับ")
end
parse_and_insert_inflection(data, args, "abbr", "คำย่อ")
if args.json then
return toJSON(data)
end
return full_headword(data)
.. (extra_categories[1]
and format_categories(extra_categories, lang, args.sort)
or "")
end
local function make_default_comparative(word)
if word == "good" or word == "well" then
return {"better"}
elseif word == "bad" or word == "badly" then
return {"worse"}
elseif word == "far" then
return {"further", "farther"}
else
return {add_suffix(word, "r")}
end
end
local function make_default_superlative(word)
if word == "good" or word == "well" then
return {"best"}
elseif word == "bad" or word == "badly" then
return {"worst"}
elseif word == "far" then
return {"furthest", "farthest"}
else
return {add_suffix(word, "st.superlative")}
end
end
-- This function does the common work between adjectives and adverbs.
local function process_comparative_args(data, args, plpos)
local pagename = data.pagename
local comps = parse_inflection(args, 1)
local sups = parse_inflection(args, "sup")
local outcomps, outsups
if args.componly then
if comps[1] then
error("Can't specify comparatives of comparative-only " .. plpos)
end
insert(data.inflections, {label = glossary_link("ขั้นกว่า") .. "เท่านั้น"})
insert(data.categories, plpos .. "ขั้นกว่าเท่านั้น" .. langname)
-- Set to empty list so we don't get any comparatives output, but process superlatives if specified.
outcomps = {}
if not sups[1] then
-- Set to empty list so we don't get any superlatives output unless explicitly given.
outsups = {}
end
elseif args.suponly then
if comps[1] or sups[1] then
error("Can't specify comparatives or superlatives of or superlative-only " .. plpos)
end
insert(data.inflections, {label = glossary_link("ขั้นสุด") .. "เท่านั้น"})
insert(data.categories, plpos .. "ขั้นสุดเท่านั้น" .. langname)
return
end
-- If the first parameter is ?, then don't show anything, just return.
if comps[1] and comps[1].term == "?" then
if comps[2] then
error("Can't specify additional comparatives along with '?'")
end
if sups[1] then
error("Can't specify superlatives along with '?' for the comparative")
end
return
end
if comps[1] and comps[1].term == "-" then
local hyphencomp = remove(comps, 1) -- Remove the "-" but retain for qualifiers, labels, references
-- Not (generally) comparable; may occasionally have a comparative
if comps[1] then
insert_fixed_inflection(data, "โดยทั่วไป<<เปรียบเทียบไม่ได้>>", hyphencomp)
elseif not sups[1] then
insert_fixed_inflection(data, "<<เปรียบเทียบไม่ได้>>", hyphencomp)
insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
return
else
-- No comparative, but a superlative. insert_inflection() will correctly generate 'no comparative' if we
-- pass in "-" as the value.
outcomps = {hyphencomp}
end
elseif not comps[1] then
comps = {{term = "more"}}
end
if not outcomps then -- not if we set `outcomps` to "-" above or processed a comparative-only term
outcomps = {}
-- Go over each parameter given and create a comparative and superlative form.
for _, compobj in ipairs(comps) do
local comp = compobj.term
if comp == "-" then
error("Comparative of '-' only allowed as first comparative")
end
if comp == "+" then
comp = "+more"
elseif comp == "more" and pagename ~= "many" and pagename ~= "much" then
comp = "+more"
elseif comp == "further" and pagename ~= "far" then
comp = "+further"
elseif comp == "better" and pagename ~= "good" and pagename ~= "well" then
comp = "+better"
elseif comp:find("~") then
comp = comp:gsub("~", replacement_escape(pagename))
end
compobj.origterm = comp
if comp == "+more" then
comp = "more [[" .. pagename .. "]]"
elseif comp == "+further" then
comp = {"further [[" .. pagename .. "]]", "farther [[" .. pagename .. "]]"}
elseif comp == "+better" then
comp = "better [[" .. pagename .. "]]"
elseif comp == "er" then
-- Add -er.
comp = add_suffix(pagename, "r")
elseif comp == "ier" then
if pagename:sub(-1) ~= "y" then
error("Can't specify 'ier' comparative unless the term ends with 'y': " .. pagename)
end
comp = pagename:gsub("e?y$", "ier")
elseif comp:find("^%+") then
local special = m_headword_utilities.get_special_indicator(comp, "noerror")
if special then
comp = m_headword_utilities.handle_multiword(pagename, special, make_default_comparative)
end
end
if type(comp) == "table" and not comp[2] then
comp = comp[1]
end
if type(comp) == "table" then
for i = 1, #comp - 1 do
local outobj = shallowCopy(compobj)
outobj.term = comp[i]
insert(outcomps, outobj)
end
compobj.term = comp[#comp]
insert(outcomps, compobj)
else
compobj.term = comp
insert(outcomps, compobj)
end
end
end
if sups[1] and sups[1].term == "-" then
if sups[2] then
error("Can't specify '-' as superlative followed by further values")
end
-- No superlative. insert_inflection() will correctly generate 'no superlative' if we pass in "-" as the value.
outsups = sups
else
if not sups[1] then
sups = {{term = "+"}}
end
end
-- `outsups` will be set if we set `outsups` to "-" above or processed a comparative-only term without superlatives.
if not outsups then
outsups = {}
local function process_sup(sup, special, supobj, compobj)
if special then
sup = m_headword_utilities.handle_multiword(pagename, special, make_default_superlative)
elseif sup == "-" or sup == "+" then
error(("Internal error: Superlative value of '%s' should have been handled earlier"):format(sup))
elseif sup == "+most" then
sup = "most [[" .. pagename .. "]]"
elseif sup == "+furthest" then
sup = {"furthest [[" .. pagename .. "]]", "farthest [[" .. pagename .. "]]"}
elseif sup == "+best" then
sup = "best [[" .. pagename .. "]]"
elseif sup == "est" then
-- Add -est.
sup = add_suffix(pagename, "st.superlative")
elseif sup == "iest" then
if pagename:sub(-1) ~= "y" then
error("Can't specify 'iest' superlative unless the term ends with 'y': " .. pagename)
end
sup = pagename:gsub("e?y$", "iest")
end
if type(sup) == "table" and not sup[2] then
sup = sup[1]
end
if compobj then
supobj = shallowCopy(supobj)
supobj = m_headword_utilities.combine_termobj_qualifiers_labels(supobj, compobj)
end
if type(sup) == "table" then
for i = 1, #sup - 1 do
local outobj = shallowCopy(supobj)
outobj.term = sup[i]
insert(outsups, outobj)
end
supobj.term = sup[#sup]
insert(outsups, supobj)
else
supobj.term = sup
insert(outsups, supobj)
end
end
for _, supobj in ipairs(sups) do
local sup = supobj.term
if sup == "-" then
error("Superlative of '-' only allowed as first superlative")
end
if sup == "+" then
if not comps[1] then
error("Superlative of '+' can't be specified when there are no comparatives")
end
for _, compobj in ipairs(comps) do
local comp = compobj.origterm
local special
if comp == "+more" then
sup = "+most"
elseif comp == "+further" then
sup = "+furthest"
elseif comp == "+better" then
sup = "+best"
elseif comp == "er" then
sup = "est"
elseif comp == "ier" then
sup = "iest"
else
if comp:find("^%+") then
special = m_headword_utilities.get_special_indicator(comp, "noerror")
end
if not special then
-- If the full comparative was given, then derive the superlative by replacing -er with
-- -est.
if comp:sub(-2) == "er" then
sup = comp:sub(1, -3) .. "est"
else
error(("The superlative cannot be derived automatically from comparative '%s' because it doesn't end in -er"):format(comp))
end
end
end
process_sup(sup, special, supobj, compobj)
end
else
local special = m_headword_utilities.get_special_indicator(sup, "noerror")
-- Do some work here rather than in process_sup() so we don't end up double-processing a term with a '~'
-- in it or a term that happens to be 'most' or similar after substitution of ~ in the comparative.
if not special then
if sup == "most" and pagename ~= "many" and pagename ~= "much" then
sup = "+most"
elseif sup == "furthest" and pagename ~= "far" then
sup = "+furthest"
elseif sup == "best" and pagename ~= "good" and pagename ~= "well" then
sup = "+best"
elseif sup:find("~") then
sup = sup:gsub("~", replacement_escape(pagename))
end
end
process_sup(sup, special, supobj)
end
end
end
insert_inflection(data, outcomps, "<<ขั้นกว่า>>", "ขั้นกว่า")
insert_inflection(data, outsups, "<<ขั้นสุด>>", "ขั้นสุด")
end
pos_functions["คำคุณศัพท์"] = {
params = {
[1] = list_param,
["comp_qual"] = {list = "comp\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the comparative value",
},
["sup"] = list_param,
["sup_qual"] = {list = "sup\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the superlative value",
},
["componly"] = boolean_param,
["suponly"] = boolean_param,
},
func = function(args, data)
-- Process the comparatives and superlatives.
process_comparative_args(data, args, "คำคุณศัพท์")
end,
}
pos_functions["คำกริยาวิเศษณ์"] = {
params = {
[1] = list_param,
["comp_qual"] = {list = "comp\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the comparative value",
},
["sup"] = list_param,
["sup_qual"] = {list = "sup\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the superlative value",
},
["componly"] = boolean_param,
["suponly"] = boolean_param,
},
func = function(args, data)
-- Process the comparatives and superlatives.
process_comparative_args(data, args, "คำกริยาวิเศษณ์")
end,
}
local function escape(str)
return (str:gsub("\\([:#])", "\\\\%1")
:gsub("[:#]", "\\%0"))
end
local function canonicalize_plural(pl, pagename, pos)
if pl == "+" then
return escape(add_suffix(pagename, "s.plural", pos))
elseif pl == "++" then
return escape(compute_plusplus_s_form(pagename, add_suffix(pagename, "s.plural", pos)))
elseif pl == "*" then
return escape(pagename)
elseif pl == "ies" then
if pagename:sub(-1) == "y" then
return escape(pagename:gsub("e?y$", pl))
end
error("Can't specify 'ies' plural unless the term ends with 'y'.")
elseif pl == "s" or pl == "es" or pl == "'s" then
return escape(pagename .. pl)
end
end
local function do_nouns(args, data, pos)
local pagename = data.pagename
pos = pos or "คำนาม"
local plurals = parse_inflection(args, 1)
local function insert_plurale_tantum_inflections(is_plural_only, originating_label)
if args.sg[1] then
insert_fixed_inflection(data, "พหูพจน์ปกติ", originating_label)
parse_and_insert_inflection(data, args, "sg", "เอกพจน์")
elseif is_plural_only then
insert_fixed_inflection(data, "พหูพจน์เท่านั้น", originating_label)
end
if args.attr[1] then
parse_and_insert_inflection(data, args, "attr", "ตัวบอกคุณลักษณะ")
end
end
local function first_pl_term()
return plurals[1] and plurals[1].term or nil
end
if first_pl_term() == "p" then
-- plurale tantum
if plurals[2] then
error("With plurale tantum noun, can't specify more than one plural")
end
data.genders = {"p"} -- this should auto-insert the correct 'pluralia tantum' category
insert_plurale_tantum_inflections("พหูพจน์เท่านั้น", plurals[1])
return
end
local function inscat(cat)
--insert(data.categories, langname .. " " .. cat)
if mw.ustring.find(cat, "£") then
local catname = mw.ustring.gsub(cat, "£", langname) -- แทรกภาษาตรง £, ต้องการรับเฉพาะ return ค่าแรก
insert(data.categories, catname)
elseif mw.ustring.find(cat, "^ศัพท์") then
insert(data.categories, "ศัพท์" .. langname .. mw.ustring.sub(cat, 6))
else
insert(data.categories, cat .. langname)
end
end
local need_default_plural = pos == "คำนาม"
if first_pl_term() == "sp" then
-- construed as singular or plural
sp = remove(plurals, 1) -- Remove the "sp" but retain it for its qualifiers, labels, references
inscat("คำนาม£ที่อนุมานว่าเป็นเอกพจน์หรือพหูพจน์")
data.genders = {"s", "p"} -- this should auto-insert the correct 'pluralia tantum' category
insert_plurale_tantum_inflections(nil, sp)
need_default_plural = false
elseif first_pl_term() == "-" then
-- Uncountable noun; may occasionally have a plural
local hyphpl = remove(plurals, 1) -- Remove the "-" but retain for qualifiers, labels, references
inscat("คำนามนับไม่ได้")
-- If plural forms were given explicitly, then show "usually"
if plurals[1] then
insert_fixed_inflection(data, "โดยปกติ<<นับไม่ได้>>", hyphpl)
else
insert_fixed_inflection(data, "<<นับไม่ได้>>", hyphpl)
end
need_default_plural = false
elseif first_pl_term() == "#" then
-- Usually countable (e.g., "grilled cheese")
local hashpl = remove(plurals, 1) -- Remove the "#" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "โดยปกติ<<นับได้>>", hashpl)
inscat("คำนามนับไม่ได้")
inscat("คำนามนับได้")
-- If no plural was given, add a default one now
if not plurals[1] then
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
elseif first_pl_term() == "~" then
-- Mixed countable/uncountable noun, always has a plural
local tildepl = remove(plurals, 1) -- Remove the "~" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "<<นับได้>>และ<<นับไม่ได้>>", tildepl)
inscat("คำนามนับไม่ได้")
inscat("คำนามนับได้")
-- If no plural was given, add a default one now
if not plurals[1] then
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
end
-- Plural is unknown
if first_pl_term() == "?" then
local questionpl = remove(plurals, 1) -- Remove the "?" but retain for qualifiers, labels, references
-- Not desired; see [[Wiktionary:Tea_room/2021/August#"Plural unknown or uncertain"]]
-- insert_fixed_inflection(data, "plural unknown or uncertain", questionpl)
inscat("nouns with unknown or uncertain plurals")
if plurals[1] then
error("Can't specify explicit plurals along with '?' for unknown/uncertain plural")
end
return
end
-- Plural is not attested
if first_pl_term() == "!" then
local exclampl = remove(plurals, 1) -- Remove the "!" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "plural not attested", exclampl)
inscat("nouns with unattested plurals")
if plurals[1] then
error("Can't specify explicit plurals along with '!' for unattested plural")
end
return
end
-- If no plural was given, maybe add a default one, otherwise (when "-" was given or proper noun) return.
if not plurals[1] then
if not need_default_plural then
inscat("คำนามนับไม่ได้")
return
end
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
-- There are plural forms to show, so show them.
inscat("คำนามนับได้")
local irregular, indeclinable
for i, pl in ipairs(plurals) do
local canon_pl = canonicalize_plural(pl.term, pagename, pos)
if canon_pl then
pl.term = canon_pl
end
local pl_term = get_link_page(pl.term, lang)
if not (pagename:find(" ") or is_regular_plural(pl_term, pagename)) then
irregular = true
if pl_term == pagename then
indeclinable = true
end
end
end
if irregular then
inscat("คำนาม£ที่มีพหูพจน์ไม่ปรกติ")
end
if indeclinable then
inscat("คำนามผันรูปไม่ได้")
end
insert_inflection(data, plurals, "พหูพจน์", "p")
end
-- Return the parameters to be used for nouns and proper nouns. Currently the same.
local noun_params = {
[1] = list_param,
["pl\1qual"] = {list = true, allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the plural",
},
-- The following four only used for pluralia tantum (1=p)
["sg"] = list_param,
["attr"] = list_param,
}
pos_functions["คำนาม"] = {
params = noun_params,
func = do_nouns,
}
pos_functions["คำวิสามานยนาม"] = {
params = noun_params,
func = function(args, data)
return do_nouns(args, data, "คำวิสามานยนาม")
end,
}
local function base_default_verb_forms(verb)
return escape(add_suffix(verb, "s.verb")), escape(add_suffix(verb, "ing")), escape(add_suffix(verb, "d"))
end
local function default_verb_forms(verb)
local full_s_form, full_ing_form, full_ed_form = base_default_verb_forms(verb)
if verb:find(" ") then
local first, rest = verb:match("^(.-)( .*)$")
local first_s_form, first_ing_form, first_ed_form = base_default_verb_forms(first)
return full_s_form, full_ing_form, full_ed_form, first_s_form .. rest, first_ing_form .. rest,
first_ed_form .. rest, first, rest
else
return full_s_form, full_ing_form, full_ed_form, nil, nil, nil, nil, nil
end
end
local function compute_double_last_cons_stem_of_split_verb(verb, ending)
local first, rest = verb:match("^(.-)( .*)$")
if not first then
error("Verb '" .. verb .. "' must have a space in it to use **")
end
local last_cons = first:match("([bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ])$")
if not last_cons then
error("First word '" .. first .. "' must end in a consonant to use **")
end
return first .. last_cons .. ending .. rest
end
local function check_non_nil_star_form(form, pagename)
if form == nil then
error("Verb '" .. pagename .. "' must have a space in it to use *, **, *l, *! or *'")
end
return form
end
local function sub_tilde(form, pagename)
if not form then
return nil
end
if form:find("~") then
form = form:gsub("~", replacement_escape(pagename))
end
return form
end
local deprecated_qual_replaced_by_inline_modifier = {
list = true, allow_holes = true, replaced_by = false,
instead = "use an inline modifier <q:...> or <l:...> on the value"
}
pos_functions["คำกริยา"] = {
params = {
[1] = {list = "pres_3sg", disallow_holes = true},
["pres_3sg\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[2] = {list = "pres_ptc", disallow_holes = true},
["pres_ptc\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[3] = {list = "past", disallow_holes = true},
["past\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[4] = {list = "past_ptc", allow_holes = true},
["past_ptc\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
["noautolinkverb"] = boolean_param,
["angle_bracket"] = boolean_param,
},
func = function(args, data)
-- Get parameters
local par1s
local par2s = parse_inflection(args, {2, "pres_ptc"})
local par3s = parse_inflection(args, {3, "past"})
local par4s = parse_inflection(args, {4, "past_ptc"})
local pres_3sgs, pres_ptcs, pasts, past_ptcs
local pagename = data.pagename
------------------------------------------- UTILITY FUNCTIONS #2 ------------------------------------------
-- These functions are used in both in the separate-parameter format and in the override params such as past_ptc2=.
local full_default_s, full_default_ing, full_default_ed, split_default_s, split_default_ing, split_default_ed
local lemma
local function set_lemma_and_default_forms(the_lemma)
lemma = the_lemma
full_default_s, full_default_ing, full_default_ed, split_default_s, split_default_ing, split_default_ed,
lemma_first, lemma_rest = default_verb_forms(the_lemma)
end
local function canonicalize_s_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_s
elseif form == "*" then
return check_non_nil_star_form(split_default_s, lemma)
elseif form == "++" then
return compute_plusplus_s_form(lemma, full_default_s)
elseif form == "**" then
if lemma:find("^[^ ]*[szx] ") then
return compute_double_last_cons_stem_of_split_verb(lemma, "es")
else
return check_non_nil_star_form(split_default_s, lemma)
end
elseif form == "+!" then
return lemma .. "s"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "s" .. lemma_rest
elseif form == "+'" then
return lemma .. "'s"
elseif form == "*'" then
return check_non_nil_star_form(lemma_first) .. "'s" .. lemma_rest
elseif form == "+l" then
if lemma:find("[szx]$") then
return {{term = full_default_s, l = {"US"}},
{term = compute_plusplus_s_form(lemma, full_default_s), l = {"UK"}}}
else
return compute_plusplus_s_form(lemma, full_default_s)
end
elseif form == "*l" then
if lemma:find("^[^ ]*[szx] ") then
return {{term = check_non_nil_star_form(split_default_s, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "es"), l = {"UK"}}}
else
return check_non_nil_star_form(split_default_s, lemma)
end
else
return sub_tilde(form, lemma)
end
end
local function canonicalize_ing_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_ing
elseif form == "*" then
return check_non_nil_star_form(split_default_ing, lemma)
elseif form == "++" then
return compute_double_last_cons_stem(lemma) .. "ing"
elseif form == "**" then
return compute_double_last_cons_stem_of_split_verb(lemma, "ing")
elseif form == "+!" then
return lemma .. "ing"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "ing" .. lemma_rest
elseif form == "+'" then
return lemma .. "'ing"
elseif form == "*'" then
return check_non_nil_star_form(lemma_first) .. "'ing" .. lemma_rest
elseif form == "+l" then
return {{term = full_default_ing, l = {"US"}},
{term = compute_double_last_cons_stem(lemma) .. "ing", l = {"UK"}}}
elseif form == "*l" then
return {{term = check_non_nil_star_form(split_default_ing, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "ing"), l = {"UK"}}}
else
return sub_tilde(form, lemma)
end
end
local function canonicalize_ed_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_ed
elseif form == "*" then
return check_non_nil_star_form(split_default_ed, lemma)
elseif form == "++" then
return compute_double_last_cons_stem(lemma) .. "ed"
elseif form == "+!" then
return lemma .. "ed"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "ed" .. lemma_rest
elseif form == "+'" then
return {{term = lemma .. "'d"}, {term = lemma .. "'ed"}}
elseif form == "*'" then
return {{term = check_non_nil_star_form(lemma_first) .. "'d" .. lemma_rest},
{term = check_non_nil_star_form(lemma_first) .. "'ed" .. lemma_rest}}
elseif form == "**" then
return compute_double_last_cons_stem_of_split_verb(lemma, "ed")
elseif form == "+l" then
return {{term = full_default_ed, l = {"US"}},
{term = compute_double_last_cons_stem(lemma) .. "ed", l = {"UK"}}}
elseif form == "*l" then
return {{term = check_non_nil_star_form(split_default_ed, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "ed"), l = {"UK"}}}
else
return sub_tilde(form, lemma)
end
end
-- FIXME: options should be "+", "*", "++", "**", "+n", "*n", "++n" and "**n", but not "n"
local function canonicalize_en_form(form)
if form == "n" then
track("n4")
return add_suffix(lemma, "n")
end
return canonicalize_ed_form(form)
end
--------------------------------- MAIN PARSING/CONJUGATING CODE --------------------------------
local is_angle_bracket = args.angle_bracket
if is_angle_bracket then
if par2s[1] or par3s[1] or par4s[1] then
error("Can't specify explicit values for 2=, 3= or 4= along with the angle-bracket format")
end
elseif is_angle_bracket == nil and not par2s[1] and not par3s[1] and not par4s[1] and not args[1][2] and
args[1][1] and args[1][1]:find("<") then
if put.term_contains_top_level_html(args[1][1]) then
-- Often, term_contains_top_level_html() returns true on the angle-bracket format, which would
-- make the pcall() below succeed but leave the angle brackets as-is. Check for this and only do the
-- pcall() if term_contains_top_level_html() returns false.
is_angle_bracket = true
else
-- If it's ambiguous whether it's an angle-bracket format or separate params with an inline modifier,
-- try to parse as the latter. If an error occurs, treat as the former.
local ok
ok, par1s = pcall(parse_inflection, args, {1, "pres_3sg"})
if not ok then
par1s = nil
is_angle_bracket = true
end
end
end
if is_angle_bracket then
-------------------------- ANGLE-BRACKET FORMAT --------------------------
-- (0) Expand multiword term with angle brackets just on the first word.
local arg11 = args[1][1]
if arg11:find("^<.*>$") and pagename:find(" ") then
local first, rest = pagename:match("^(.-)( .*)$")
arg11 = first .. arg11 .. rest
end
-- (1) Parse the indicator specs inside of angle brackets.
local function parse_indicator_spec(angle_bracket_spec)
local inside = angle_bracket_spec:match("^<(.*)>$")
assert(inside)
local segments = put.parse_balanced_segment_run(inside, "[", "]")
local comma_separated_groups = put.split_alternating_runs(segments, ",")
if #comma_separated_groups > 4 then
error("Too many comma-separated parts in indicator spec, expected at most 4: " ..
angle_bracket_spec)
end
local function fetch_footnotes(separated_group)
local footnotes
for j = 2, #separated_group - 1, 2 do
if separated_group[j + 1] ~= "" then
error("Extraneous text after bracketed footnotes: '" .. concat(separated_group) .. "'")
end
if not footnotes then
footnotes = {}
end
insert(footnotes, separated_group[j])
end
return footnotes
end
local function fetch_specs(comma_separated_group)
if not comma_separated_group then
return {{term = "+"}}
end
local specs = {}
local colon_separated_groups = put.split_alternating_runs(comma_separated_group, ":")
for _, colon_separated_group in ipairs(colon_separated_groups) do
local form = colon_separated_group[1]
if form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
error("*, **, *l, *! and *' not allowed inside of indicator specs: " .. angle_bracket_spec)
end
if form == "" then
form = "+"
end
local termobj = {
term = form
}
local footnotes = fetch_footnotes(colon_separated_group)
if footnotes then
for _, footnote in ipairs(footnotes) do
m_headword_utilities.add_footnote_to_termobj(termobj, footnote)
end
end
insert(specs, termobj)
end
return specs
end
local s_specs = fetch_specs(comma_separated_groups[1])
local ing_specs = fetch_specs(comma_separated_groups[2])
local ed_specs = fetch_specs(comma_separated_groups[3])
local en_specs = fetch_specs(comma_separated_groups[4])
return {
forms = {},
s_specs = s_specs,
ing_specs = ing_specs,
ed_specs = ed_specs,
en_specs = en_specs,
}
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
}
local alternant_multiword_spec = iut.parse_inflected_text(arg11, parse_props)
-- (2) Check for user-specified brackets; remove any links from the lemma, but remember the original
-- form so we can use it below in the 'lemma_linked' form.
-- Check to see if there are brackets in the pre-text or post-text. If so, use the linked lemma (with the
-- verb autolinked unless noautolinkverb is given). Otherwise, use the default headword algorithm.
local function check_bracket(val)
if val:find("%[%[") then
alternant_multiword_spec.saw_bracket = true
end
end
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
check_bracket(alternant_or_word_spec.before_text)
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
for _, word_spec in ipairs(multiword_spec.word_specs) do
check_bracket(word_spec.before_text)
end
check_bracket(multiword_spec.post_text)
end
end
end
check_bracket(alternant_multiword_spec.post_text)
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = pagename
end
base.orig_lemma = base.lemma
base.lemma = remove_links(base.lemma)
if args.noautolinkverb or base.orig_lemma:find("%[%[") then
base.linked_lemma = base.orig_lemma
else
base.linked_lemma = "[[" .. base.orig_lemma .. "]]"
end
end)
-- (3) Conjugate the verbs according to the indicator specs parsed above.
local all_verb_slots = {
lemma = "infinitive",
lemma_linked = "infinitive",
s_form = "3|s|pres",
ing_form = "pres|ptcp",
ed_form = "past",
en_form = "past|ptcp",
}
local function conjugate_verb(base)
local function process_specs(slot, specs, canon_func, default_values, default_already_formobj)
local function insert_termobj_into_slot(termobj)
local formobj = m_headword_utilities.convert_termobj_to_formobj(termobj)
-- If the form is -, don't insert any forms, which will result in there being no overall forms
-- (in fact it will be nil). We check for that down below and substitute a single "-" as the
-- form, which in turn gets turned into special labels like "no present participle".
if formobj.form == "-" then
if formobj.footnotes then
error("Unable to preserve footnotes specified on missing form '-': FIXME: " ..
dump(formobj.footnotes))
end
else
iut.insert_form(base.forms, slot, formobj)
end
end
local function canonicalize_and_insert(arg)
local canon_arg = canon_func(arg)
if type(canon_arg) == "string" then
arg.term = canon_arg
insert_termobj_into_slot(arg)
else
for _, canon in ipairs(canon_arg) do
m_headword_utilities.combine_termobj_qualifiers_labels(canon, arg)
insert_termobj_into_slot(canon)
end
end
end
for _, arg in ipairs(specs) do
if arg.term == "+" then
if default_values then -- will be nil if past tense specified as - and no past ptc given
for _, val in ipairs(default_values) do
val = shallowCopy(val)
if default_already_formobj then
local argformobj = m_headword_utilities.convert_termobj_to_formobj(arg)
val.footnotes = iut.combine_footnotes(val.footnotes, argformobj.footnotes)
iut.insert_form(base.forms, slot, val)
else
m_headword_utilities.combine_termobj_qualifiers_labels(val, arg)
canonicalize_and_insert(val)
end
end
end
else
canonicalize_and_insert(arg)
end
end
end
set_lemma_and_default_forms(base.lemma)
local all_part_default_specs = {}
local function process_and_canonicalize_s_form(arg)
local form = arg.term
if form == "+" then
error("Internal error: '+' should have been converted to '^' by now")
end
if form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
error(("Internal error: '%s' should have already thrown an error"):format(form))
end
if form == "^" or form == "++" or form == "+l" or form == "+!" or form == "+'" then
insert(all_part_default_specs, shallowCopy(arg))
end
return canonicalize_s_form(form)
end
process_specs("s_form", base.s_specs, process_and_canonicalize_s_form, {{term = "^"}})
if not all_part_default_specs[1] then
all_part_default_specs[1] = {term = "^"}
end
process_specs("ing_form", base.ing_specs, function(arg) return canonicalize_ing_form(arg.term) end,
all_part_default_specs)
process_specs("ed_form", base.ed_specs, function(arg) return canonicalize_ed_form(arg.term) end,
all_part_default_specs)
process_specs("en_form", base.en_specs, function(arg) return canonicalize_en_form(arg.term) end,
base.forms.ed_form, "default already formobj")
iut.insert_form(base.forms, "lemma", {form = base.lemma})
-- Add linked version of lemma for use in head=. We write this in a general fashion in case
-- there are multiple lemma forms (which isn't possible currently at this level, although it's
-- possible overall using the ((...,...)) notation).
iut.insert_forms(base.forms, "lemma_linked", iut.map_forms(base.forms.lemma, function(form)
if form == base.lemma and base.linked_lemma:find("%[%[") then
return base.linked_lemma
else
return form
end
end))
end
local inflect_props = {
slot_table = all_verb_slots,
inflect_word_spec = conjugate_verb,
}
iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
-- (4) Fetch the forms and put the conjugated lemmas in data.heads if not explicitly given.
local function fetch_termobjs(slot)
local forms = alternant_multiword_spec.forms[slot]
-- See above. This should only occur if the user explicitly used - for a spec.
if not forms or not forms[1] then
return {{term = "-"}}
end
local termobjs = {}
for _, formobj in ipairs(forms) do
insert(termobjs, m_headword_utilities.convert_formobj_to_termobj(formobj))
end
return termobjs
end
pres_3sgs = fetch_termobjs("s_form")
pres_ptcs = fetch_termobjs("ing_form")
pasts = fetch_termobjs("ed_form")
past_ptcs = fetch_termobjs("en_form")
-- Use the "linked" form of the lemma as the head if no head= explicitly given and the user specified
-- brackets in one of the lemmas. Otherwise we use the default headword-linking algorithm.
if not data.user_specified_heads[1] and alternant_multiword_spec.saw_bracket then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.lemma_linked) do
insert(data.heads, m_headword_utilities.convert_formobj_to_termobj(lemma_obj))
end
end
else
-------------------------- SEPARATE-PARAM FORMAT --------------------------
set_lemma_and_default_forms(pagename)
par1s = par1s or parse_inflection(args, {1, "pres_3sg"})
pres_3sgs = {}
pres_ptcs = {}
pasts = {}
past_ptcs = {}
if not par1s[1] then
par1s = {{term = "+"}}
end
if not par2s[1] then
par2s = {{term = "+"}}
end
if not par3s[1] then
par3s = {{term = "+"}}
end
if not par4s[1] then
par4s = {{term = "+"}}
end
local function process_argument(args, dest, canon_func, default_values, default_already_canonicalized)
local function canonicalize_and_insert(arg)
local canon_arg = canon_func(arg)
if type(canon_arg) == "string" then
arg.term = canon_arg
m_headword_utilities.insert_termobj_combining_duplicates(dest, arg)
else
for _, canon in ipairs(canon_arg) do
m_headword_utilities.combine_termobj_qualifiers_labels(canon, arg)
m_headword_utilities.insert_termobj_combining_duplicates(dest, canon)
end
end
end
for _, arg in ipairs(args) do
if arg.term == "+" then
for _, val in ipairs(default_values) do
val = shallowCopy(val)
m_headword_utilities.combine_termobj_qualifiers_labels(val, arg)
if default_already_canonicalized then
m_headword_utilities.insert_termobj_combining_duplicates(dest, val)
else
canonicalize_and_insert(val)
end
end
else
canonicalize_and_insert(arg)
end
end
end
local all_part_default_specs = {}
local function process_and_canonicalize_s_form(arg)
local form = arg.term
if form == "+" then
error("Internal error: '+' should have been converted to '^' by now")
end
if form == "^" or form == "++" or form == "+l" or form == "+!" or form == "+'" or
form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
insert(all_part_default_specs, shallowCopy(arg))
end
return canonicalize_s_form(form)
end
process_argument(par1s, pres_3sgs, process_and_canonicalize_s_form, {{term = "^"}})
if not all_part_default_specs[1] then
all_part_default_specs[1] = {term = "^"}
end
process_argument(par2s, pres_ptcs, function(arg) return canonicalize_ing_form(arg.term) end,
all_part_default_specs)
process_argument(par3s, pasts, function(arg) return canonicalize_ed_form(arg.term) end,
all_part_default_specs)
process_argument(par4s, past_ptcs, function(arg) return canonicalize_en_form(arg.term) end,
pasts, "default already canonicalized")
end
------------------------------------------- INSERT INFLECTIONS ------------------------------------------
insert_inflection(data, pres_3sgs, "บุรุษที่สามเอกพจน์ปัจจุบันกาลสามัญ", "s-verb-form")
insert_inflection(data, pres_ptcs, "รูปกริยาขยายปัจจุบันกาล", "ing-form")
if deepEquals(pasts, past_ptcs) then
insert_inflection(data, pasts, "อดีตกาลสามัญ และรูปกริยาขยายอดีตกาล", "ed-form",
"no simple past or past participle")
else
insert_inflection(data, pasts, "อดีตกาลสามัญ", "spast")
insert_inflection(data, past_ptcs, "รูปกริยาขยายอดีตกาล", "past|part")
end
if pagename:find(" ") then
-- Check for placeholder "it"
local words = split(pagename, " ")
for _, word in ipairs(words) do
if word == "it" or word == "its" or word == "it's" then
insert(data.categories, langname .. ' terms with placeholder "it"')
break
end
end
-- Check for phrasal verbs
local phrasal_adverbs = list_to_set{
-- NOTE: This should only contain common phrasal adverbs, not random words like [[low]],
-- [[adrift]], etc.
"aback",
"about",
"above",
"across",
"after",
"against",
"ahead",
"along",
"apart",
"around",
"as",
"aside",
"at",
"away",
"back",
"before",
"behind",
"below",
"between",
"beyond",
"by",
"down",
"for",
"forth",
"from",
"in",
"into",
"of",
"off",
"on",
"onto",
"out",
"over",
"past",
"round",
"through",
"to",
"together",
"towards",
"under",
"up",
"upon",
"with",
"without",
}
local allowed_non_adverb_words = list_to_set{
"it",
"one",
"oneself",
"someone",
}
local base = pagename
local seen_adverbs = {}
-- Only consider a verb to be phrasal if it consists of a single base verb followed exclusively by either
-- adverbs from `phrasal_adverbs` or placeholder words from `allowed_non_adverb_words`, where at
-- least one following word is from `phrasal_adverbs` (hence [[can it]] is not a phrasal verb).
while true do
local prev, word = base:match("^(.+) (.-)$")
if not prev then
break
end
if phrasal_adverbs[word] then
insert(seen_adverbs, word)
elseif allowed_non_adverb_words[word] then
-- do nothing
else
break
end
base = prev
end
if not base:find(" ") and seen_adverbs[1] then
insert(data.categories, langname .. " phrasal verbs")
for i = #seen_adverbs, 1, -1 do
insert(data.categories, langname .. ' phrasal verbs formed with "' .. seen_adverbs[i] ..
'"')
end
end
end
end,
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["รูปปัจจัย"] = {
params = {
[1] = {required = true, list = true, disallow_holes = true},
},
func = function(args, data, is_suffix)
local suffix_type = {}
for _, typ in ipairs(args[1]) do
insert(suffix_type, "ปัจจัยสร้าง" .. typ)
end
insert(data.inflections, {label = "รูปผันของ " .. m_table.serialCommaJoin(suffix_type, {conj = "หรือ"})})
end,
}
return export
iw3oc1xhkzv1ksn9ksd8rzrfhl37gdm
5723289
5723288
2026-05-20T05:24:08Z
OctraBot
3198
5723289
Scribunto
text/plain
local export = {}
local pos_functions = {}
--[==[
Author from 2020 on: mostly Benwing2, with significant contributions from Theknightwho. Based on a prior version by Rua
(by now mostly rewritten), with contributions from Erutuon and others (see history for full attribution).
]==]
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local require = require
local require_when_needed = require("Module:require when needed")
local en_utilities_module = "Module:en-utilities"
local headword_utilities_module = "Module:headword utilities"
local headword_module = "Module:headword"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local JSON_module = "Module:JSON"
local labels_module = "Module:labels"
local links_module = "Module:links"
local parameters_module = "Module:parameters"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local yesno_module = "Module:yesno"
local iut = require_when_needed(inflection_utilities_module)
local put = require_when_needed(parse_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local add_links_to_multiword_term = require_when_needed(headword_utilities_module, "add_links_to_multiword_term")
local add_suffix = require_when_needed(en_utilities_module, "add_suffix")
local apply_link_modifiers = require_when_needed(headword_utilities_module, "apply_link_modifiers")
local concat = table.concat
local deepEquals = require_when_needed(table_module, "deepEquals")
local dump = mw.dumpObject
local format_categories = require_when_needed(utilities_module, "format_categories")
local full_headword = require_when_needed(headword_module, "full_headword")
local get_label_info = require_when_needed(labels_module, "get_label_info")
local get_link_page = require_when_needed(links_module, "get_link_page")
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local insert = table.insert
local insertIfNot = require_when_needed(table_module, "insertIfNot")
local ipairs = ipairs
local is_regular_plural = require_when_needed(en_utilities_module, "is_regular_plural")
local list_to_set = require_when_needed(table_module, "listToSet")
local pairs = pairs
local process_params = require_when_needed(parameters_module, "process")
local remove = table.remove
local remove_links = require_when_needed(links_module, "remove_links")
local replacement_escape = require_when_needed(string_utilities_module, "replacement_escape")
local shallowCopy = require_when_needed(table_module, "shallowCopy")
local singularize = require_when_needed(en_utilities_module, "singularize")
local split = require_when_needed(string_utilities_module, "split")
local toJSON = require_when_needed(JSON_module, "toJSON")
local toNFD = mw.ustring.toNFD
local type = type
local ulen = require_when_needed(string_utilities_module, "len")
local ulower = require_when_needed(string_utilities_module, "lower")
local umatch = require_when_needed(string_utilities_module, "match")
local u = require_when_needed(string_utilities_module, "char")
local ugsub = require_when_needed(string_utilities_module, "gsub")
local lang = require("Module:languages").getByCode("en")
local langname = --[[lang:getCanonicalName()]] lang:getCategoryName()
local list_param = {list = true, disallow_holes = true}
local list_allow_holes = {list = true, allow_holes = true}
local boolean_param = {type = "boolean"}
local function ine(val)
if val == "" then return nil else return val end
end
local function track(page)
require("Module:debug/track")("en-headword/" .. page)
return true
end
------------------------------------------- UTILITY FUNCTIONS ------------------------------------------
-- Parse and return an inflection not requiring additional processing. The raw arguments come from `args[field]`, which
-- is parsed for inline modifiers.
local function parse_inflection(args, field, is_head)
local argfield = field
if type(argfield) == "table" then
argfield = argfield[1]
end
return m_headword_utilities.parse_term_list_with_modifiers {
paramname = field,
forms = args[argfield],
splitchar = ",",
is_head = is_head,
}
end
-- Insert the parsed inflections in `terms` (as parsed by `parse_inflection`) into `data.inflections`, with label
-- `label` and optional accelerator spec `accel`.
local function insert_inflection(data, terms, label, accel, no_label)
for _, termobj in ipairs(terms) do
m_headword_utilities.remove_termobj_field_modifiers(termobj)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
no_label = no_label,
accel = accel and {form = accel} or nil,
}
end
-- Insert a fixed label `label` into the inflections for `data`. If `originating_term` is supplied, copy the qualifiers,
-- labels and references from it into the fixed label.
local function insert_fixed_inflection(data, label, originating_term)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
originating_term = originating_term,
label = label,
}
end
-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments come
-- from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are given;
-- `accel` is the accelerator form, or nil.
local function parse_and_insert_inflection(data, args, field, label, accel)
m_headword_utilities.parse_and_insert_inflection {
headdata = data,
forms = args[field],
paramname = field,
splitchar = ",",
label = label,
accel = accel and {form = accel} or nil,
-- If we want check_missing support, we need to supply the following:
-- check_missing = true,
-- lang = lang,
-- plpos = plpos,
}
end
-- These functions are used directly in the <> format as well as in the utility functions #2 below.
local function compute_double_last_cons_stem(term)
local last_cons = term:match("([bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ])$")
if not last_cons then
error("Verb stem '" .. term .. "' must end in a consonant to use ++")
end
return term .. last_cons
end
local function compute_plusplus_s_form(term, default_s_form)
if term:find("[szx]$") then
-- regas -> regasses, derez -> derezzes
return compute_double_last_cons_stem(term) .. "es"
else
return default_s_form
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "แม่แบบ:en-head" and "คำอุทาน" or
error("Part of speech must be specified in 1=")
poscat_th = require("Module:th-utilities").th_pos(poscat) --th
poscat_th = require(headword_module).canonicalize_pos(poscat_th) --th_pos_to_form is already there
else
poscat_th = require("Module:th-utilities").th_pos(poscat) --th; initiation is needed
end
local indexing_poscat = pos_in_1 and "head" or poscat_th
local params = {
["head"] = list_param,
["id"] = true,
["json"] = boolean_param,
["sort"] = true,
["splithyph"] = boolean_param,
["nosplithyph"] = boolean_param,
["hyphspace"] = boolean_param,
["nolink"] = boolean_param,
["nolinkhead"] = {type = "boolean_param", alias_of = "nolink"},
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["nomultiwordcat"] = boolean_param,
["abbr"] = list_param,
["the"] = true,
["def"] = {alias_of = "the"},
["pagename"] = true, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local pos_data = pos_functions[indexing_poscat]
local pos_func
if pos_data then
local pos_params = pos_data.params
if pos_params then
for key, val in pairs(pos_params) do
params[key] = val
end
end
pos_func = pos_data.func
end
local args = process_params(parargs, params)
-- Account for unsupported titles, e.g. 'C|N>K' instead of 'Unsupported titles/C through N to K'.
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local user_specified_heads = parse_inflection(args, "head", "is_head")
local heads = user_specified_heads
local autohead
if args.nolink or not pagename:find("[ '%-]") then
autohead = pagename
else
local en_no_split_apostrophe_words = list_to_set {
"one's",
"someone's",
"he's",
"she's",
"it's",
}
local en_include_hyphen_prefixes = list_to_set {
-- We don't include things that are also words even though they are often (perhaps mostly) prefixes, e.g.
-- "be", "counter", "cross", "extra", "half", "mid", "over", "pan", "under".
"acro",
"acousto",
"Afro",
"agro",
"anarcho",
"angio",
"Anglo",
"ante",
"anti",
"arch",
"auto",
"bi",
"bio",
"cis",
"co",
"cryo",
"crypto",
"de",
"demi",
"eco",
"electro",
"Euro",
"ex",
"Greco",
"hemi",
"hydro",
"hyper",
"hypo",
"infra",
"Indo",
"inter",
"intra",
"Judeo",
"macro",
"meta",
"micro",
"mini",
"multi",
"neo",
"neuro",
"non",
"para",
"peri",
"post",
"pre",
"pro",
"proto",
"pseudo",
"re",
"semi",
"sub",
"super",
"trans",
"un",
"vice",
}
local function is_english(term)
local title = mw.title.new(term)
if title and title.exists then
local content = title:getContent()
if content and content:find("== ?ภาษาอังกฤษ ?==\n") then
return true
end
end
return false
end
local function en_split_hyphen_when_space(word)
if not word:find("-", nil, true) then
return nil
end
if args.hyphspace then
return "[[" .. word:gsub("%-+", " ") .. "|" .. word .. "]]"
end
if args.nosplithyph then
return "[[" .. word .. "]]"
end
if not args.splithyph then
local space_word = word:gsub("%-+", " ")
if is_english(space_word) then
return "[[" .. space_word .. "|" .. word .. "]]"
end
if is_english(word) then
return "[[" .. word .. "]]"
end
end
return nil
end
local function en_split_apostrophe(word)
local base = word:match("^(.*)'s$")
if base then
return "[[" .. base .. "]][[-'s|'s]]"
end
-- Only treat final apostrophe as possessive if preceded by something that looks like a plural ending in /z/.
-- In particular we don't want to do it for words like [[truckin']].
base = word:match("^(.*[sxz])'$")
if base then
if base:find("s$") then
local sg = singularize(base)
if is_english(sg) then
return "[[" .. sg .. "|" .. base .. "]][[-'|']]"
end
end
return "[[" .. base .. "]][[-'|']]"
end
return "[[" .. word .. "]]"
end
autohead = add_links_to_multiword_term(pagename, {
split_hyphen_when_space = en_split_hyphen_when_space,
split_apostrophe = en_split_apostrophe,
no_split_apostrophe_words = en_no_split_apostrophe_words,
include_hyphen_prefixes = en_include_hyphen_prefixes,
})
end
if not heads[1] then
heads = {{term = autohead}}
else
for _, headobj in ipairs(heads) do
local head = headobj.term
if head:find("^~") then
head = apply_link_modifiers(autohead, head:sub(2), lang)
headobj.term = head
elseif head:find("^[!?]$") then
-- If explicit head= just consists of ! or ?, add it to the end of the default head.
headobj.term = autohead .. head
end
if head == autohead then
track("redundant-head")
end
end
end
-- handle the=/def=
if args.the == "~" then
local newheads = {}
for _, headobj in ipairs(heads) do
local barehead = shallowCopy(headobj)
insert(newheads, barehead)
headobj.term = "the " .. headobj.term
insert(newheads, headobj)
end
heads = newheads
elseif args.the then
local the = require(yesno_module)(args.the)
if the then
for _, headobj in ipairs(heads) do
headobj.term = "the " .. headobj.term
end
end
end
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = heads,
user_specified_heads = user_specified_heads,
-- We use our own splitting algorithm so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
inflections = {},
nomultiwordcat = args.nomultiwordcat,
sort_key = args.sort,
pagename = pagename,
id = args.id,
force_cat_output = force_cat,
}
local function inscat(cat)
--insert(data.categories, langname .. " " .. cat)
if mw.ustring.find(cat, "^ศัพท์") then
insert(data.categories, "ศัพท์" .. langname .. mw.ustring.sub(cat, 6))
else
insert(data.categories, cat .. langname)
end
end
local is_suffix = false
if args.suffix or not args.nosuffix and pagename:find("^%-") and not pagename:find("^%-%-") and poscat_th ~= "รูปปัจจัย" then
is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[singularize(poscat)]] poscat_th
inscat("ปัจจัยสร้าง" .. singular_poscat)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_func then
pos_func(args, data, is_suffix)
end
local extra_categories = {}
if pagename:find("[Qq]") then
-- Check for q not followed by u. We want to exclude things like [[13q deletion syndrome]] and [[BFOQ]] that
-- don't have a lowercase letter on either side, as well as things like [[& seq.]] and [[acq.]] that are
-- abbreviations for words containing a following u.
--
-- Approximate range of combining diacritics; we want to remove them so the checks below for
-- a lowercase letter next to the q aren't tripped up by diacritics on the letter.
local u300 = u(0x0300)
local u36F = u(0x036F)
local pagename_no_diacritics = ugsub(toNFD(pagename), "[" .. u300 .. "-" .. u36F .. "]", "")
if pagename_no_diacritics:find("[Qq][a-tv-z]") or pagename_no_diacritics:find("[a-z]q[^u.]") or
pagename_no_diacritics:find("[a-z]q$") then
inscat("ศัพท์ที่มี Q ไม่ตามด้วย U")
end
end
-- toNFD performs decomposition, so letters that decompose to an ASCII
-- vowel and a diacritic, such as é, are counted as vowels and do not do not
-- need to be included in the pattern.
if not umatch(ulower(toNFD(pagename)), "[aeiouyæœøəªºαεηιουω]") then
inscat("ศัพท์ที่ไม่มีสระ")
end
if pagename:find("yre$") then
inscat("ศัพท์ที่ลงท้ายด้วย -yre")
end
if not pagename:find(" ") and ulen(pagename) >= 25 then
insert(extra_categories, "ศัพท์" .. langname .. "ที่มีขนาดยาว")
end
if pagename:find("^[^aeiou ]*a[^aeiou ]*e[^aeiou ]*i[^aeiou ]*o[^aeiou ]*u[^aeiou ]*$") then
inscat("ศัพท์ที่ใช้สระทั้งหมดตามลำดับ")
end
parse_and_insert_inflection(data, args, "abbr", "คำย่อ")
if args.json then
return toJSON(data)
end
return full_headword(data)
.. (extra_categories[1]
and format_categories(extra_categories, lang, args.sort)
or "")
end
local function make_default_comparative(word)
if word == "good" or word == "well" then
return {"better"}
elseif word == "bad" or word == "badly" then
return {"worse"}
elseif word == "far" then
return {"further", "farther"}
else
return {add_suffix(word, "r")}
end
end
local function make_default_superlative(word)
if word == "good" or word == "well" then
return {"best"}
elseif word == "bad" or word == "badly" then
return {"worst"}
elseif word == "far" then
return {"furthest", "farthest"}
else
return {add_suffix(word, "st.superlative")}
end
end
-- This function does the common work between adjectives and adverbs.
local function process_comparative_args(data, args, plpos)
local pagename = data.pagename
local comps = parse_inflection(args, 1)
local sups = parse_inflection(args, "sup")
local outcomps, outsups
if args.componly then
if comps[1] then
error("Can't specify comparatives of comparative-only " .. plpos)
end
insert(data.inflections, {label = glossary_link("ขั้นกว่า") .. "เท่านั้น"})
insert(data.categories, plpos .. "ขั้นกว่าเท่านั้น" .. langname)
-- Set to empty list so we don't get any comparatives output, but process superlatives if specified.
outcomps = {}
if not sups[1] then
-- Set to empty list so we don't get any superlatives output unless explicitly given.
outsups = {}
end
elseif args.suponly then
if comps[1] or sups[1] then
error("Can't specify comparatives or superlatives of or superlative-only " .. plpos)
end
insert(data.inflections, {label = glossary_link("ขั้นสุด") .. "เท่านั้น"})
insert(data.categories, plpos .. "ขั้นสุดเท่านั้น" .. langname)
return
end
-- If the first parameter is ?, then don't show anything, just return.
if comps[1] and comps[1].term == "?" then
if comps[2] then
error("Can't specify additional comparatives along with '?'")
end
if sups[1] then
error("Can't specify superlatives along with '?' for the comparative")
end
return
end
if comps[1] and comps[1].term == "-" then
local hyphencomp = remove(comps, 1) -- Remove the "-" but retain for qualifiers, labels, references
-- Not (generally) comparable; may occasionally have a comparative
if comps[1] then
insert_fixed_inflection(data, "โดยทั่วไป<<เปรียบเทียบไม่ได้>>", hyphencomp)
elseif not sups[1] then
insert_fixed_inflection(data, "<<เปรียบเทียบไม่ได้>>", hyphencomp)
insert(data.categories, plpos .. "เปรียบเทียบไม่ได้" .. langname)
return
else
-- No comparative, but a superlative. insert_inflection() will correctly generate 'no comparative' if we
-- pass in "-" as the value.
outcomps = {hyphencomp}
end
elseif not comps[1] then
comps = {{term = "more"}}
end
if not outcomps then -- not if we set `outcomps` to "-" above or processed a comparative-only term
outcomps = {}
-- Go over each parameter given and create a comparative and superlative form.
for _, compobj in ipairs(comps) do
local comp = compobj.term
if comp == "-" then
error("Comparative of '-' only allowed as first comparative")
end
if comp == "+" then
comp = "+more"
elseif comp == "more" and pagename ~= "many" and pagename ~= "much" then
comp = "+more"
elseif comp == "further" and pagename ~= "far" then
comp = "+further"
elseif comp == "better" and pagename ~= "good" and pagename ~= "well" then
comp = "+better"
elseif comp:find("~") then
comp = comp:gsub("~", replacement_escape(pagename))
end
compobj.origterm = comp
if comp == "+more" then
comp = "more [[" .. pagename .. "]]"
elseif comp == "+further" then
comp = {"further [[" .. pagename .. "]]", "farther [[" .. pagename .. "]]"}
elseif comp == "+better" then
comp = "better [[" .. pagename .. "]]"
elseif comp == "er" then
-- Add -er.
comp = add_suffix(pagename, "r")
elseif comp == "ier" then
if pagename:sub(-1) ~= "y" then
error("Can't specify 'ier' comparative unless the term ends with 'y': " .. pagename)
end
comp = pagename:gsub("e?y$", "ier")
elseif comp:find("^%+") then
local special = m_headword_utilities.get_special_indicator(comp, "noerror")
if special then
comp = m_headword_utilities.handle_multiword(pagename, special, make_default_comparative)
end
end
if type(comp) == "table" and not comp[2] then
comp = comp[1]
end
if type(comp) == "table" then
for i = 1, #comp - 1 do
local outobj = shallowCopy(compobj)
outobj.term = comp[i]
insert(outcomps, outobj)
end
compobj.term = comp[#comp]
insert(outcomps, compobj)
else
compobj.term = comp
insert(outcomps, compobj)
end
end
end
if sups[1] and sups[1].term == "-" then
if sups[2] then
error("Can't specify '-' as superlative followed by further values")
end
-- No superlative. insert_inflection() will correctly generate 'no superlative' if we pass in "-" as the value.
outsups = sups
else
if not sups[1] then
sups = {{term = "+"}}
end
end
-- `outsups` will be set if we set `outsups` to "-" above or processed a comparative-only term without superlatives.
if not outsups then
outsups = {}
local function process_sup(sup, special, supobj, compobj)
if special then
sup = m_headword_utilities.handle_multiword(pagename, special, make_default_superlative)
elseif sup == "-" or sup == "+" then
error(("Internal error: Superlative value of '%s' should have been handled earlier"):format(sup))
elseif sup == "+most" then
sup = "most [[" .. pagename .. "]]"
elseif sup == "+furthest" then
sup = {"furthest [[" .. pagename .. "]]", "farthest [[" .. pagename .. "]]"}
elseif sup == "+best" then
sup = "best [[" .. pagename .. "]]"
elseif sup == "est" then
-- Add -est.
sup = add_suffix(pagename, "st.superlative")
elseif sup == "iest" then
if pagename:sub(-1) ~= "y" then
error("Can't specify 'iest' superlative unless the term ends with 'y': " .. pagename)
end
sup = pagename:gsub("e?y$", "iest")
end
if type(sup) == "table" and not sup[2] then
sup = sup[1]
end
if compobj then
supobj = shallowCopy(supobj)
supobj = m_headword_utilities.combine_termobj_qualifiers_labels(supobj, compobj)
end
if type(sup) == "table" then
for i = 1, #sup - 1 do
local outobj = shallowCopy(supobj)
outobj.term = sup[i]
insert(outsups, outobj)
end
supobj.term = sup[#sup]
insert(outsups, supobj)
else
supobj.term = sup
insert(outsups, supobj)
end
end
for _, supobj in ipairs(sups) do
local sup = supobj.term
if sup == "-" then
error("Superlative of '-' only allowed as first superlative")
end
if sup == "+" then
if not comps[1] then
error("Superlative of '+' can't be specified when there are no comparatives")
end
for _, compobj in ipairs(comps) do
local comp = compobj.origterm
local special
if comp == "+more" then
sup = "+most"
elseif comp == "+further" then
sup = "+furthest"
elseif comp == "+better" then
sup = "+best"
elseif comp == "er" then
sup = "est"
elseif comp == "ier" then
sup = "iest"
else
if comp:find("^%+") then
special = m_headword_utilities.get_special_indicator(comp, "noerror")
end
if not special then
-- If the full comparative was given, then derive the superlative by replacing -er with
-- -est.
if comp:sub(-2) == "er" then
sup = comp:sub(1, -3) .. "est"
else
error(("The superlative cannot be derived automatically from comparative '%s' because it doesn't end in -er"):format(comp))
end
end
end
process_sup(sup, special, supobj, compobj)
end
else
local special = m_headword_utilities.get_special_indicator(sup, "noerror")
-- Do some work here rather than in process_sup() so we don't end up double-processing a term with a '~'
-- in it or a term that happens to be 'most' or similar after substitution of ~ in the comparative.
if not special then
if sup == "most" and pagename ~= "many" and pagename ~= "much" then
sup = "+most"
elseif sup == "furthest" and pagename ~= "far" then
sup = "+furthest"
elseif sup == "best" and pagename ~= "good" and pagename ~= "well" then
sup = "+best"
elseif sup:find("~") then
sup = sup:gsub("~", replacement_escape(pagename))
end
end
process_sup(sup, special, supobj)
end
end
end
insert_inflection(data, outcomps, "<<ขั้นกว่า>>", "ขั้นกว่า")
insert_inflection(data, outsups, "<<ขั้นสุด>>", "ขั้นสุด")
end
pos_functions["คำคุณศัพท์"] = {
params = {
[1] = list_param,
["comp_qual"] = {list = "comp\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the comparative value",
},
["sup"] = list_param,
["sup_qual"] = {list = "sup\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the superlative value",
},
["componly"] = boolean_param,
["suponly"] = boolean_param,
},
func = function(args, data)
-- Process the comparatives and superlatives.
process_comparative_args(data, args, "คำคุณศัพท์")
end,
}
pos_functions["คำกริยาวิเศษณ์"] = {
params = {
[1] = list_param,
["comp_qual"] = {list = "comp\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the comparative value",
},
["sup"] = list_param,
["sup_qual"] = {list = "sup\1_qual", allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the superlative value",
},
["componly"] = boolean_param,
["suponly"] = boolean_param,
},
func = function(args, data)
-- Process the comparatives and superlatives.
process_comparative_args(data, args, "คำกริยาวิเศษณ์")
end,
}
local function escape(str)
return (str:gsub("\\([:#])", "\\\\%1")
:gsub("[:#]", "\\%0"))
end
local function canonicalize_plural(pl, pagename, pos)
if pl == "+" then
return escape(add_suffix(pagename, "s.plural", pos))
elseif pl == "++" then
return escape(compute_plusplus_s_form(pagename, add_suffix(pagename, "s.plural", pos)))
elseif pl == "*" then
return escape(pagename)
elseif pl == "ies" then
if pagename:sub(-1) == "y" then
return escape(pagename:gsub("e?y$", pl))
end
error("Can't specify 'ies' plural unless the term ends with 'y'.")
elseif pl == "s" or pl == "es" or pl == "'s" then
return escape(pagename .. pl)
end
end
local function do_nouns(args, data, pos)
local pagename = data.pagename
pos = pos or "คำนาม"
local plurals = parse_inflection(args, 1)
local function insert_plurale_tantum_inflections(is_plural_only, originating_label)
if args.sg[1] then
insert_fixed_inflection(data, "พหูพจน์ปกติ", originating_label)
parse_and_insert_inflection(data, args, "sg", "เอกพจน์")
elseif is_plural_only then
insert_fixed_inflection(data, "พหูพจน์เท่านั้น", originating_label)
end
if args.attr[1] then
parse_and_insert_inflection(data, args, "attr", "ตัวบอกคุณลักษณะ")
end
end
local function first_pl_term()
return plurals[1] and plurals[1].term or nil
end
if first_pl_term() == "p" then
-- plurale tantum
if plurals[2] then
error("With plurale tantum noun, can't specify more than one plural")
end
data.genders = {"p"} -- this should auto-insert the correct 'pluralia tantum' category
insert_plurale_tantum_inflections("พหูพจน์เท่านั้น", plurals[1])
return
end
local function inscat(cat)
--insert(data.categories, langname .. " " .. cat)
if mw.ustring.find(cat, "£") then
local catname = mw.ustring.gsub(cat, "£", langname) -- แทรกภาษาตรง £, ต้องการรับเฉพาะ return ค่าแรก
insert(data.categories, catname)
elseif mw.ustring.find(cat, "^ศัพท์") then
insert(data.categories, "ศัพท์" .. langname .. mw.ustring.sub(cat, 6))
else
insert(data.categories, cat .. langname)
end
end
local need_default_plural = pos == "คำนาม"
if first_pl_term() == "sp" then
-- construed as singular or plural
sp = remove(plurals, 1) -- Remove the "sp" but retain it for its qualifiers, labels, references
inscat("คำนาม£ที่อนุมานว่าเป็นเอกพจน์หรือพหูพจน์")
data.genders = {"s", "p"} -- this should auto-insert the correct 'pluralia tantum' category
insert_plurale_tantum_inflections(nil, sp)
need_default_plural = false
elseif first_pl_term() == "-" then
-- Uncountable noun; may occasionally have a plural
local hyphpl = remove(plurals, 1) -- Remove the "-" but retain for qualifiers, labels, references
inscat("คำนามนับไม่ได้")
-- If plural forms were given explicitly, then show "usually"
if plurals[1] then
insert_fixed_inflection(data, "โดยปกติ<<นับไม่ได้>>", hyphpl)
else
insert_fixed_inflection(data, "<<นับไม่ได้>>", hyphpl)
end
need_default_plural = false
elseif first_pl_term() == "#" then
-- Usually countable (e.g., "grilled cheese")
local hashpl = remove(plurals, 1) -- Remove the "#" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "โดยปกติ<<นับได้>>", hashpl)
inscat("คำนามนับไม่ได้")
inscat("คำนามนับได้")
-- If no plural was given, add a default one now
if not plurals[1] then
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
elseif first_pl_term() == "~" then
-- Mixed countable/uncountable noun, always has a plural
local tildepl = remove(plurals, 1) -- Remove the "~" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "<<นับได้>>และ<<นับไม่ได้>>", tildepl)
inscat("คำนามนับไม่ได้")
inscat("คำนามนับได้")
-- If no plural was given, add a default one now
if not plurals[1] then
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
end
-- Plural is unknown
if first_pl_term() == "?" then
local questionpl = remove(plurals, 1) -- Remove the "?" but retain for qualifiers, labels, references
-- Not desired; see [[Wiktionary:Tea_room/2021/August#"Plural unknown or uncertain"]]
-- insert_fixed_inflection(data, "plural unknown or uncertain", questionpl)
inscat("nouns with unknown or uncertain plurals")
if plurals[1] then
error("Can't specify explicit plurals along with '?' for unknown/uncertain plural")
end
return
end
-- Plural is not attested
if first_pl_term() == "!" then
local exclampl = remove(plurals, 1) -- Remove the "!" but retain for qualifiers, labels, references
insert_fixed_inflection(data, "plural not attested", exclampl)
inscat("nouns with unattested plurals")
if plurals[1] then
error("Can't specify explicit plurals along with '!' for unattested plural")
end
return
end
-- If no plural was given, maybe add a default one, otherwise (when "-" was given or proper noun) return.
if not plurals[1] then
if not need_default_plural then
inscat("คำนามนับไม่ได้")
return
end
plurals[1] = {term = escape(add_suffix(pagename, "s.plural", pos))}
end
-- There are plural forms to show, so show them.
inscat("คำนามนับได้")
local irregular, indeclinable
for i, pl in ipairs(plurals) do
local canon_pl = canonicalize_plural(pl.term, pagename, pos)
if canon_pl then
pl.term = canon_pl
end
local pl_term = get_link_page(pl.term, lang)
if not (pagename:find(" ") or is_regular_plural(pl_term, pagename)) then
irregular = true
if pl_term == pagename then
indeclinable = true
end
end
end
if irregular then
inscat("คำนาม£ที่มีพหูพจน์ไม่ปรกติ")
end
if indeclinable then
inscat("คำนามผันรูปไม่ได้")
end
insert_inflection(data, plurals, "พหูพจน์", "p")
end
-- Return the parameters to be used for nouns and proper nouns. Currently the same.
local noun_params = {
[1] = list_param,
["pl\1qual"] = {list = true, allow_holes = true, replaced_by = false,
instead = "use <l:...> or <q:...> inline modifier on the plural",
},
-- The following four only used for pluralia tantum (1=p)
["sg"] = list_param,
["attr"] = list_param,
}
pos_functions["คำนาม"] = {
params = noun_params,
func = do_nouns,
}
pos_functions["คำวิสามานยนาม"] = {
params = noun_params,
func = function(args, data)
return do_nouns(args, data, "คำวิสามานยนาม")
end,
}
local function base_default_verb_forms(verb)
return escape(add_suffix(verb, "s.verb")), escape(add_suffix(verb, "ing")), escape(add_suffix(verb, "d"))
end
local function default_verb_forms(verb)
local full_s_form, full_ing_form, full_ed_form = base_default_verb_forms(verb)
if verb:find(" ") then
local first, rest = verb:match("^(.-)( .*)$")
local first_s_form, first_ing_form, first_ed_form = base_default_verb_forms(first)
return full_s_form, full_ing_form, full_ed_form, first_s_form .. rest, first_ing_form .. rest,
first_ed_form .. rest, first, rest
else
return full_s_form, full_ing_form, full_ed_form, nil, nil, nil, nil, nil
end
end
local function compute_double_last_cons_stem_of_split_verb(verb, ending)
local first, rest = verb:match("^(.-)( .*)$")
if not first then
error("Verb '" .. verb .. "' must have a space in it to use **")
end
local last_cons = first:match("([bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ])$")
if not last_cons then
error("First word '" .. first .. "' must end in a consonant to use **")
end
return first .. last_cons .. ending .. rest
end
local function check_non_nil_star_form(form, pagename)
if form == nil then
error("Verb '" .. pagename .. "' must have a space in it to use *, **, *l, *! or *'")
end
return form
end
local function sub_tilde(form, pagename)
if not form then
return nil
end
if form:find("~") then
form = form:gsub("~", replacement_escape(pagename))
end
return form
end
local deprecated_qual_replaced_by_inline_modifier = {
list = true, allow_holes = true, replaced_by = false,
instead = "use an inline modifier <q:...> or <l:...> on the value"
}
pos_functions["คำกริยา"] = {
params = {
[1] = {list = "pres_3sg", disallow_holes = true},
["pres_3sg\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[2] = {list = "pres_ptc", disallow_holes = true},
["pres_ptc\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[3] = {list = "past", disallow_holes = true},
["past\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
[4] = {list = "past_ptc", allow_holes = true},
["past_ptc\1_qual"] = deprecated_qual_replaced_by_inline_modifier,
["noautolinkverb"] = boolean_param,
["angle_bracket"] = boolean_param,
},
func = function(args, data)
-- Get parameters
local par1s
local par2s = parse_inflection(args, {2, "pres_ptc"})
local par3s = parse_inflection(args, {3, "past"})
local par4s = parse_inflection(args, {4, "past_ptc"})
local pres_3sgs, pres_ptcs, pasts, past_ptcs
local pagename = data.pagename
------------------------------------------- UTILITY FUNCTIONS #2 ------------------------------------------
-- These functions are used in both in the separate-parameter format and in the override params such as past_ptc2=.
local full_default_s, full_default_ing, full_default_ed, split_default_s, split_default_ing, split_default_ed
local lemma
local function set_lemma_and_default_forms(the_lemma)
lemma = the_lemma
full_default_s, full_default_ing, full_default_ed, split_default_s, split_default_ing, split_default_ed,
lemma_first, lemma_rest = default_verb_forms(the_lemma)
end
local function canonicalize_s_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_s
elseif form == "*" then
return check_non_nil_star_form(split_default_s, lemma)
elseif form == "++" then
return compute_plusplus_s_form(lemma, full_default_s)
elseif form == "**" then
if lemma:find("^[^ ]*[szx] ") then
return compute_double_last_cons_stem_of_split_verb(lemma, "es")
else
return check_non_nil_star_form(split_default_s, lemma)
end
elseif form == "+!" then
return lemma .. "s"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "s" .. lemma_rest
elseif form == "+'" then
return lemma .. "'s"
elseif form == "*'" then
return check_non_nil_star_form(lemma_first) .. "'s" .. lemma_rest
elseif form == "+l" then
if lemma:find("[szx]$") then
return {{term = full_default_s, l = {"US"}},
{term = compute_plusplus_s_form(lemma, full_default_s), l = {"UK"}}}
else
return compute_plusplus_s_form(lemma, full_default_s)
end
elseif form == "*l" then
if lemma:find("^[^ ]*[szx] ") then
return {{term = check_non_nil_star_form(split_default_s, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "es"), l = {"UK"}}}
else
return check_non_nil_star_form(split_default_s, lemma)
end
else
return sub_tilde(form, lemma)
end
end
local function canonicalize_ing_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_ing
elseif form == "*" then
return check_non_nil_star_form(split_default_ing, lemma)
elseif form == "++" then
return compute_double_last_cons_stem(lemma) .. "ing"
elseif form == "**" then
return compute_double_last_cons_stem_of_split_verb(lemma, "ing")
elseif form == "+!" then
return lemma .. "ing"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "ing" .. lemma_rest
elseif form == "+'" then
return lemma .. "'ing"
elseif form == "*'" then
return check_non_nil_star_form(lemma_first) .. "'ing" .. lemma_rest
elseif form == "+l" then
return {{term = full_default_ing, l = {"US"}},
{term = compute_double_last_cons_stem(lemma) .. "ing", l = {"UK"}}}
elseif form == "*l" then
return {{term = check_non_nil_star_form(split_default_ing, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "ing"), l = {"UK"}}}
else
return sub_tilde(form, lemma)
end
end
local function canonicalize_ed_form(form)
if form == "+" then
error("Internal error: Should not see '+' here")
elseif form == "^" then
return full_default_ed
elseif form == "*" then
return check_non_nil_star_form(split_default_ed, lemma)
elseif form == "++" then
return compute_double_last_cons_stem(lemma) .. "ed"
elseif form == "+!" then
return lemma .. "ed"
elseif form == "*!" then
return check_non_nil_star_form(lemma_first) .. "ed" .. lemma_rest
elseif form == "+'" then
return {{term = lemma .. "'d"}, {term = lemma .. "'ed"}}
elseif form == "*'" then
return {{term = check_non_nil_star_form(lemma_first) .. "'d" .. lemma_rest},
{term = check_non_nil_star_form(lemma_first) .. "'ed" .. lemma_rest}}
elseif form == "**" then
return compute_double_last_cons_stem_of_split_verb(lemma, "ed")
elseif form == "+l" then
return {{term = full_default_ed, l = {"US"}},
{term = compute_double_last_cons_stem(lemma) .. "ed", l = {"UK"}}}
elseif form == "*l" then
return {{term = check_non_nil_star_form(split_default_ed, lemma), l = {"US"}},
{term = compute_double_last_cons_stem_of_split_verb(lemma, "ed"), l = {"UK"}}}
else
return sub_tilde(form, lemma)
end
end
-- FIXME: options should be "+", "*", "++", "**", "+n", "*n", "++n" and "**n", but not "n"
local function canonicalize_en_form(form)
if form == "n" then
track("n4")
return add_suffix(lemma, "n")
end
return canonicalize_ed_form(form)
end
--------------------------------- MAIN PARSING/CONJUGATING CODE --------------------------------
local is_angle_bracket = args.angle_bracket
if is_angle_bracket then
if par2s[1] or par3s[1] or par4s[1] then
error("Can't specify explicit values for 2=, 3= or 4= along with the angle-bracket format")
end
elseif is_angle_bracket == nil and not par2s[1] and not par3s[1] and not par4s[1] and not args[1][2] and
args[1][1] and args[1][1]:find("<") then
if put.term_contains_top_level_html(args[1][1]) then
-- Often, term_contains_top_level_html() returns true on the angle-bracket format, which would
-- make the pcall() below succeed but leave the angle brackets as-is. Check for this and only do the
-- pcall() if term_contains_top_level_html() returns false.
is_angle_bracket = true
else
-- If it's ambiguous whether it's an angle-bracket format or separate params with an inline modifier,
-- try to parse as the latter. If an error occurs, treat as the former.
local ok
ok, par1s = pcall(parse_inflection, args, {1, "pres_3sg"})
if not ok then
par1s = nil
is_angle_bracket = true
end
end
end
if is_angle_bracket then
-------------------------- ANGLE-BRACKET FORMAT --------------------------
-- (0) Expand multiword term with angle brackets just on the first word.
local arg11 = args[1][1]
if arg11:find("^<.*>$") and pagename:find(" ") then
local first, rest = pagename:match("^(.-)( .*)$")
arg11 = first .. arg11 .. rest
end
-- (1) Parse the indicator specs inside of angle brackets.
local function parse_indicator_spec(angle_bracket_spec)
local inside = angle_bracket_spec:match("^<(.*)>$")
assert(inside)
local segments = put.parse_balanced_segment_run(inside, "[", "]")
local comma_separated_groups = put.split_alternating_runs(segments, ",")
if #comma_separated_groups > 4 then
error("Too many comma-separated parts in indicator spec, expected at most 4: " ..
angle_bracket_spec)
end
local function fetch_footnotes(separated_group)
local footnotes
for j = 2, #separated_group - 1, 2 do
if separated_group[j + 1] ~= "" then
error("Extraneous text after bracketed footnotes: '" .. concat(separated_group) .. "'")
end
if not footnotes then
footnotes = {}
end
insert(footnotes, separated_group[j])
end
return footnotes
end
local function fetch_specs(comma_separated_group)
if not comma_separated_group then
return {{term = "+"}}
end
local specs = {}
local colon_separated_groups = put.split_alternating_runs(comma_separated_group, ":")
for _, colon_separated_group in ipairs(colon_separated_groups) do
local form = colon_separated_group[1]
if form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
error("*, **, *l, *! and *' not allowed inside of indicator specs: " .. angle_bracket_spec)
end
if form == "" then
form = "+"
end
local termobj = {
term = form
}
local footnotes = fetch_footnotes(colon_separated_group)
if footnotes then
for _, footnote in ipairs(footnotes) do
m_headword_utilities.add_footnote_to_termobj(termobj, footnote)
end
end
insert(specs, termobj)
end
return specs
end
local s_specs = fetch_specs(comma_separated_groups[1])
local ing_specs = fetch_specs(comma_separated_groups[2])
local ed_specs = fetch_specs(comma_separated_groups[3])
local en_specs = fetch_specs(comma_separated_groups[4])
return {
forms = {},
s_specs = s_specs,
ing_specs = ing_specs,
ed_specs = ed_specs,
en_specs = en_specs,
}
end
local parse_props = {
parse_indicator_spec = parse_indicator_spec,
}
local alternant_multiword_spec = iut.parse_inflected_text(arg11, parse_props)
-- (2) Check for user-specified brackets; remove any links from the lemma, but remember the original
-- form so we can use it below in the 'lemma_linked' form.
-- Check to see if there are brackets in the pre-text or post-text. If so, use the linked lemma (with the
-- verb autolinked unless noautolinkverb is given). Otherwise, use the default headword algorithm.
local function check_bracket(val)
if val:find("%[%[") then
alternant_multiword_spec.saw_bracket = true
end
end
for _, alternant_or_word_spec in ipairs(alternant_multiword_spec.alternant_or_word_specs) do
check_bracket(alternant_or_word_spec.before_text)
if alternant_or_word_spec.alternants then
for _, multiword_spec in ipairs(alternant_or_word_spec.alternants) do
for _, word_spec in ipairs(multiword_spec.word_specs) do
check_bracket(word_spec.before_text)
end
check_bracket(multiword_spec.post_text)
end
end
end
check_bracket(alternant_multiword_spec.post_text)
iut.map_word_specs(alternant_multiword_spec, function(base)
if base.lemma == "" then
base.lemma = pagename
end
base.orig_lemma = base.lemma
base.lemma = remove_links(base.lemma)
if args.noautolinkverb or base.orig_lemma:find("%[%[") then
base.linked_lemma = base.orig_lemma
else
base.linked_lemma = "[[" .. base.orig_lemma .. "]]"
end
end)
-- (3) Conjugate the verbs according to the indicator specs parsed above.
local all_verb_slots = {
lemma = "infinitive",
lemma_linked = "infinitive",
s_form = "3|s|pres",
ing_form = "pres|ptcp",
ed_form = "past",
en_form = "past|ptcp",
}
local function conjugate_verb(base)
local function process_specs(slot, specs, canon_func, default_values, default_already_formobj)
local function insert_termobj_into_slot(termobj)
local formobj = m_headword_utilities.convert_termobj_to_formobj(termobj)
-- If the form is -, don't insert any forms, which will result in there being no overall forms
-- (in fact it will be nil). We check for that down below and substitute a single "-" as the
-- form, which in turn gets turned into special labels like "no present participle".
if formobj.form == "-" then
if formobj.footnotes then
error("Unable to preserve footnotes specified on missing form '-': FIXME: " ..
dump(formobj.footnotes))
end
else
iut.insert_form(base.forms, slot, formobj)
end
end
local function canonicalize_and_insert(arg)
local canon_arg = canon_func(arg)
if type(canon_arg) == "string" then
arg.term = canon_arg
insert_termobj_into_slot(arg)
else
for _, canon in ipairs(canon_arg) do
m_headword_utilities.combine_termobj_qualifiers_labels(canon, arg)
insert_termobj_into_slot(canon)
end
end
end
for _, arg in ipairs(specs) do
if arg.term == "+" then
if default_values then -- will be nil if past tense specified as - and no past ptc given
for _, val in ipairs(default_values) do
val = shallowCopy(val)
if default_already_formobj then
local argformobj = m_headword_utilities.convert_termobj_to_formobj(arg)
val.footnotes = iut.combine_footnotes(val.footnotes, argformobj.footnotes)
iut.insert_form(base.forms, slot, val)
else
m_headword_utilities.combine_termobj_qualifiers_labels(val, arg)
canonicalize_and_insert(val)
end
end
end
else
canonicalize_and_insert(arg)
end
end
end
set_lemma_and_default_forms(base.lemma)
local all_part_default_specs = {}
local function process_and_canonicalize_s_form(arg)
local form = arg.term
if form == "+" then
error("Internal error: '+' should have been converted to '^' by now")
end
if form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
error(("Internal error: '%s' should have already thrown an error"):format(form))
end
if form == "^" or form == "++" or form == "+l" or form == "+!" or form == "+'" then
insert(all_part_default_specs, shallowCopy(arg))
end
return canonicalize_s_form(form)
end
process_specs("s_form", base.s_specs, process_and_canonicalize_s_form, {{term = "^"}})
if not all_part_default_specs[1] then
all_part_default_specs[1] = {term = "^"}
end
process_specs("ing_form", base.ing_specs, function(arg) return canonicalize_ing_form(arg.term) end,
all_part_default_specs)
process_specs("ed_form", base.ed_specs, function(arg) return canonicalize_ed_form(arg.term) end,
all_part_default_specs)
process_specs("en_form", base.en_specs, function(arg) return canonicalize_en_form(arg.term) end,
base.forms.ed_form, "default already formobj")
iut.insert_form(base.forms, "lemma", {form = base.lemma})
-- Add linked version of lemma for use in head=. We write this in a general fashion in case
-- there are multiple lemma forms (which isn't possible currently at this level, although it's
-- possible overall using the ((...,...)) notation).
iut.insert_forms(base.forms, "lemma_linked", iut.map_forms(base.forms.lemma, function(form)
if form == base.lemma and base.linked_lemma:find("%[%[") then
return base.linked_lemma
else
return form
end
end))
end
local inflect_props = {
slot_table = all_verb_slots,
inflect_word_spec = conjugate_verb,
}
iut.inflect_multiword_or_alternant_multiword_spec(alternant_multiword_spec, inflect_props)
-- (4) Fetch the forms and put the conjugated lemmas in data.heads if not explicitly given.
local function fetch_termobjs(slot)
local forms = alternant_multiword_spec.forms[slot]
-- See above. This should only occur if the user explicitly used - for a spec.
if not forms or not forms[1] then
return {{term = "-"}}
end
local termobjs = {}
for _, formobj in ipairs(forms) do
insert(termobjs, m_headword_utilities.convert_formobj_to_termobj(formobj))
end
return termobjs
end
pres_3sgs = fetch_termobjs("s_form")
pres_ptcs = fetch_termobjs("ing_form")
pasts = fetch_termobjs("ed_form")
past_ptcs = fetch_termobjs("en_form")
-- Use the "linked" form of the lemma as the head if no head= explicitly given and the user specified
-- brackets in one of the lemmas. Otherwise we use the default headword-linking algorithm.
if not data.user_specified_heads[1] and alternant_multiword_spec.saw_bracket then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.lemma_linked) do
insert(data.heads, m_headword_utilities.convert_formobj_to_termobj(lemma_obj))
end
end
else
-------------------------- SEPARATE-PARAM FORMAT --------------------------
set_lemma_and_default_forms(pagename)
par1s = par1s or parse_inflection(args, {1, "pres_3sg"})
pres_3sgs = {}
pres_ptcs = {}
pasts = {}
past_ptcs = {}
if not par1s[1] then
par1s = {{term = "+"}}
end
if not par2s[1] then
par2s = {{term = "+"}}
end
if not par3s[1] then
par3s = {{term = "+"}}
end
if not par4s[1] then
par4s = {{term = "+"}}
end
local function process_argument(args, dest, canon_func, default_values, default_already_canonicalized)
local function canonicalize_and_insert(arg)
local canon_arg = canon_func(arg)
if type(canon_arg) == "string" then
arg.term = canon_arg
m_headword_utilities.insert_termobj_combining_duplicates(dest, arg)
else
for _, canon in ipairs(canon_arg) do
m_headword_utilities.combine_termobj_qualifiers_labels(canon, arg)
m_headword_utilities.insert_termobj_combining_duplicates(dest, canon)
end
end
end
for _, arg in ipairs(args) do
if arg.term == "+" then
for _, val in ipairs(default_values) do
val = shallowCopy(val)
m_headword_utilities.combine_termobj_qualifiers_labels(val, arg)
if default_already_canonicalized then
m_headword_utilities.insert_termobj_combining_duplicates(dest, val)
else
canonicalize_and_insert(val)
end
end
else
canonicalize_and_insert(arg)
end
end
end
local all_part_default_specs = {}
local function process_and_canonicalize_s_form(arg)
local form = arg.term
if form == "+" then
error("Internal error: '+' should have been converted to '^' by now")
end
if form == "^" or form == "++" or form == "+l" or form == "+!" or form == "+'" or
form == "*" or form == "**" or form == "*l" or form == "*!" or form == "*'" then
insert(all_part_default_specs, shallowCopy(arg))
end
return canonicalize_s_form(form)
end
process_argument(par1s, pres_3sgs, process_and_canonicalize_s_form, {{term = "^"}})
if not all_part_default_specs[1] then
all_part_default_specs[1] = {term = "^"}
end
process_argument(par2s, pres_ptcs, function(arg) return canonicalize_ing_form(arg.term) end,
all_part_default_specs)
process_argument(par3s, pasts, function(arg) return canonicalize_ed_form(arg.term) end,
all_part_default_specs)
process_argument(par4s, past_ptcs, function(arg) return canonicalize_en_form(arg.term) end,
pasts, "default already canonicalized")
end
------------------------------------------- INSERT INFLECTIONS ------------------------------------------
insert_inflection(data, pres_3sgs, "บุรุษที่สามเอกพจน์ปัจจุบันกาลสามัญ", "s-verb-form")
insert_inflection(data, pres_ptcs, "รูปกริยาขยายปัจจุบันกาล", "ing-form")
if deepEquals(pasts, past_ptcs) then
insert_inflection(data, pasts, "อดีตกาลสามัญ และรูปกริยาขยายอดีตกาล", "ed-form",
"no simple past or past participle")
else
insert_inflection(data, pasts, "อดีตกาลสามัญ", "spast")
insert_inflection(data, past_ptcs, "รูปกริยาขยายอดีตกาล", "past|part")
end
if pagename:find(" ") then
-- Check for placeholder "it"
local words = split(pagename, " ")
for _, word in ipairs(words) do
if word == "it" or word == "its" or word == "it's" then
insert(data.categories, langname .. ' terms with placeholder "it"')
break
end
end
-- Check for phrasal verbs
local phrasal_adverbs = list_to_set{
-- NOTE: This should only contain common phrasal adverbs, not random words like [[low]],
-- [[adrift]], etc.
"aback",
"about",
"above",
"across",
"after",
"against",
"ahead",
"along",
"apart",
"around",
"as",
"aside",
"at",
"away",
"back",
"before",
"behind",
"below",
"between",
"beyond",
"by",
"down",
"for",
"forth",
"from",
"in",
"into",
"of",
"off",
"on",
"onto",
"out",
"over",
"past",
"round",
"through",
"to",
"together",
"towards",
"under",
"up",
"upon",
"with",
"without",
}
local allowed_non_adverb_words = list_to_set{
"it",
"one",
"oneself",
"someone",
}
local base = pagename
local seen_adverbs = {}
-- Only consider a verb to be phrasal if it consists of a single base verb followed exclusively by either
-- adverbs from `phrasal_adverbs` or placeholder words from `allowed_non_adverb_words`, where at
-- least one following word is from `phrasal_adverbs` (hence [[can it]] is not a phrasal verb).
while true do
local prev, word = base:match("^(.+) (.-)$")
if not prev then
break
end
if phrasal_adverbs[word] then
insert(seen_adverbs, word)
elseif allowed_non_adverb_words[word] then
-- do nothing
else
break
end
base = prev
end
if not base:find(" ") and seen_adverbs[1] then
insert(data.categories, langname .. " phrasal verbs")
for i = #seen_adverbs, 1, -1 do
insert(data.categories, langname .. ' phrasal verbs formed with "' .. seen_adverbs[i] ..
'"')
end
end
end
end,
}
-----------------------------------------------------------------------------------------
-- Suffix forms --
-----------------------------------------------------------------------------------------
pos_functions["รูปปัจจัย"] = {
params = {
[1] = {required = true, list = true, disallow_holes = true},
},
func = function(args, data, is_suffix)
local suffix_type = {}
for _, typ in ipairs(args[1]) do
insert(suffix_type, "ปัจจัยสร้าง" .. typ)
end
insert(data.inflections, {label = "รูปผันของ " .. m_table.serialCommaJoin(suffix_type, {conj = "หรือ"})})
end,
}
return export
mdz3mlfd1au3ps85pzrtd1r54n9zi99
สะอื้น
0
40511
5723232
1383754
2026-05-19T22:53:25Z
Alifshinobi
397
/* ภาษาไทย */
5723232
wikitext
text/x-wiki
== ภาษาไทย ==
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|lo|ສະອຶ້ນ}}
=== การออกเสียง ===
{{th-pron|สะ-อื้น}}
=== คำกริยา ===
{{th-verb}}
# [[ถอนใจ]][[สะท้อน]][[เป็น]][[ระยะ]] ๆ [[เพราะ]][[ร้องไห้]][[มาก]][[เนื่อง]][[จาก]][[เสียใจ]][[ระทมใจ]][[เป็นต้น]]
tpihem4mawr1dcratzbg4t9jn6lrsoz
លាវ
0
47206
5723251
1914667
2026-05-20T03:35:32Z
OctraBot
3198
/* ภาษาเขมร */ เก็บกวาด
5723251
wikitext
text/x-wiki
== ภาษาเขมร ==
{{wp|km:}}
=== รูปแบบอื่น ===
* {{l|km|ឡាវ}}
=== รากศัพท์ ===
ร่วมเชื้อสายกับ{{cog|kxm|เลียว}}
=== การออกเสียง ===
{{km-IPA}}
=== คำวิสามานยนาม ===
{{km-proper noun}}
# {{tcl|km|ลาว|id=Q819}}
# [[ภาษาลาว]]
#: {{km-x|ភាសា លាវ|Lao (language)}}
=== คำนาม ===
{{km-noun}}
# [[ชาวลาว]]
#: {{km-x|ជាតិ លាវ|Laos (person)}}
{{C|km|ชื่อภาษา}}
ehresxnsop1pdyx5t46rb2buz81iw3m
มอดูล:ar-headword
828
51049
5723267
4933684
2026-05-20T04:32:10Z
OctraBot
3198
5723267
Scribunto
text/plain
-- Author: primarily Benwing2; some work by Fenakhay, Erutuon; early version by Rua
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local ar_translit = require("Module:ar-translit")
local ar_verb_module = "Module:ar-verb"
local ar_utilities_module = "Module:ar-utilities"
local ar = require(ar_utilities_module)
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local links_module = "Module:links"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local require_when_needed = require("Module:utilities/require when needed")
local remove_links = require_when_needed(links_module, "remove_links")
local m_table = require("Module:table")
local m_str_utils = require("Module:string utilities")
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local boolean_param = {type = "boolean"}
local list_to_set = m_table.listToSet
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local rsubn = m_str_utils.gsub
local u = m_str_utils.char
local rsplit = m_str_utils.split
local insert = table.insert
local concat = table.concat
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local langcode = "ar"
local lang = require("Module:languages").getByCode(langcode)
local langname = lang:getCategoryName() --th
local TEMPCOMMA = u(0xFFF0)
local TEMPARCOMMA = u(0xFFF1)
local misc_pos_with_gender = list_to_set {
"ปัจจับ",
"รูปคุณศัพท์",
"รูปนาม",
"รูปวิสามานยนาม",
"รูปสรรพนาม",
"รูปตัวกำหนด",
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local dump = mw.dumpObject
-- version of mw.ustring.gsub() 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(val)
if val == "" then return nil else return val end
end
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(run)
local escaped = false
if run:find("\\,") then
run = run:gsub("\\,", "\\" .. TEMPCOMMA)
escaped = true
end
if run:find("\\،") then
run = run:gsub("\\،", "\\" .. TEMPARCOMMA)
escaped = true
end
if run:find(",%s") then
run = run:gsub(",(%s)", TEMPCOMMA .. "%1")
escaped = true
end
if run:find("،%s") then
run = run:gsub("،(%s)", TEMPARCOMMA .. "%1")
escaped = true
end
return run, escaped
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(run)
return (run:gsub(TEMPCOMMA, ","):gsub(TEMPARCOMMA, "،"))
end
-- Split an argument on comma or Arabic comma, but not either type of comma followed by whitespace.
local function split_on_comma(val)
if rfind(val, "[,،]%s") or val:find("\\") then
return export.split_escaping(val, "[,،]", false, escape_comma_whitespace, unescape_comma_whitespace)
else
return rsplit(val, "[,،]")
end
end
local function replace_tr_ending(tr, from, to)
if not tr then
return nil
end
local pref = tr:match("^(.*)" .. from .. "$")
if not pref then
error(("Translit '%s' does not end in -%s, as expected"):format(tr, from))
end
return pref .. to
end
-----------------------------------------------------------------------------------------
-- Tracking functions --
-----------------------------------------------------------------------------------------
local trackfn = require("Module:debug/track")
local function track(page)
trackfn(langcode .. "-headword/" .. page)
return true
end
--[==[
Examples of what you can find by looking at what links to the given
pages:
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized]]
all unvocalized pages
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/pl]]
all unvocalized pages where the plural is unvocalized,
whether specified using pl=, pl2=, etc.
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head]]
all unvocalized pages where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/nouns]]
all nouns excluding proper nouns, collective nouns,
singulative nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/proper]]
nouns all proper nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/not]]
proper nouns all words that are not proper nouns
where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/adjectives]]
all adjectives where any parameter is unvocalized;
currently only works for heads,
so equivalent to .../unvocalized/head/adjectives
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-empty-head]]
all pages with an empty head
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit]]
all unvocalized pages with manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit/head/nouns]]
all nouns where the head is unvocalized but has manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-no-translit]]
all unvocalized pages without manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab]]
all pages with any parameter containing i3rab
of either -un, -u, -a or -i
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un]]
all pages with any parameter containing an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un/pl]]
all pages where a form specified using pl=, pl2=, etc.
contains an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-u/head]]
all pages with a head containing an -u i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab/head/proper]]
nouns (all proper nouns with a head containing i3rab
of either -un, -u, -a or -i)
In general, the format is one of the following:
Wiktionary:Tracking/ar-headword/FIRSTLEVEL
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/POS
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME/POS
FIRSTLEVEL can be one of "unvocalized", "unvocalized-empty-head" or its
opposite "unvocalized-specified", "unvocalized-manual-translit" or its
opposite "unvocalized-no-translit", "i3rab", "i3rab-un", "i3rab-u",
"i3rab-a", or "i3rab-i".
ARGNAME is either "head" or an argument such as "pl", "f", "cons", etc.
This automatically includes arguments specified as head2=, pl3=, etc.
POS is a part of speech, lowercase and singular, e.g. "noun",
"adjective", "proper noun", "collective noun", etc. or
"not proper noun", which includes all parts of speech but proper nouns.
]==]
local function track_form(argname, form, translit, pos)
form = ar.reorder_shadda(remove_links(form))
function dotrack(page)
track(page)
track(page .. "/" .. argname)
if pos then
track(page .. "/" .. pos)
track(page .. "/" .. argname .. "/" .. pos)
if pos ~= "คำวิสามานยนาม" then
track(page .. "/not proper noun")
track(page .. "/" .. argname .. "/not proper noun")
end
end
end
function track_i3rab(arabic, tr)
if rfind(form, arabic .. "$") then
dotrack("i3rab")
dotrack("i3rab-" .. tr)
end
end
track_i3rab(ar.UN, "un")
track_i3rab(ar.U, "u")
track_i3rab(ar.A, "a")
track_i3rab(ar.I, "i")
if form == "" or not (lang:transliterate(form)) then
dotrack("unvocalized")
if form == "" then
dotrack("unvocalized-empty-head")
else
dotrack("unvocalized-specified")
end
if translit then
dotrack("unvocalized-manual-translit")
else
dotrack("unvocalized-no-translit")
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection-parsing functions --
-----------------------------------------------------------------------------------------
-- Construct the default construct state or informal form of a term in lemma format. Usually this is the same as the
-- lemma but is different for final-weak nouns and adjectives ending in -n in their lemma. NOTE: Input must be
-- shadda-reordered for this to work properly.
local function default_construct_state_or_informal(term, tr)
local pref = term:match("^(.*)" .. ar.HAMZA .. ar.IN .."$")
-- Hamza on the line with -in changes to hamza-on-yā with -ī.
if pref then
return pref .. ar.HAMZA_ON_YA .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Otherwise just change -in to -ī.
pref = term:match("^(.*)" .. ar.IN .. "$")
if pref then
return pref .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Change -an with alif maqṣūra to -ā with alif maqṣūra.
pref = term:match("^(.*)" .. ar.AN .. ar.AMAQ .. "$")
if pref then
return pref .. ar.AAMAQ, replace_tr_ending(tr, "an", "ā")
end
-- Change -an with tall alif (e.g. عَصًا) to -ā with tall alif.
pref = term:match("^(.*)" .. ar.AN .. ar.ALIF .. "$")
if pref then
return pref .. ar.AA, replace_tr_ending(tr, "an", "ā")
end
return term, tr
end
local function generate_construct_state_or_informal_default(data, args)
local heads = data.heads
local consobjs = {}
local different_cons = false
for _, headobj in ipairs(data.heads) do
local consterm, constr = default_construct_state_or_informal(headobj.term, headobj.tr)
different_cons = different_cons or consterm ~= headobj.term or constr ~= headobj.tr
local consobj = m_table.shallowCopy(headobj)
consobj.term = consterm
consobj.tr = constr
insert(consobjs, consobj)
end
if different_cons then
return consobjs
else
return {}
end
end
local noun_field_cons = {
field = "cons", label = "<<construct state>>", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local noun_field_inf = {field = "inf", label = "informal"}
local noun_field_obl = {field = "obl", label = "<<oblique>>"}
local noun_field_def = {field = "def", label = "<<definite>> state"}
local noun_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local adj_field_inf = {
field = "inf", label = "informal", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local adj_field_obl = noun_field_obl
local adj_field_def = noun_field_def
local adjective_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
}
local function has_construct_state(data)
return data.pos_category ~= "adjectives"
end
local function parse_nominal_inflection(paramname, val, parse_err)
return m_headword_utilities.parse_term_with_modifiers {
val = val,
paramname = paramname,
splitchar = ",",
include_mods = {"tr", "g"},
}
end
local function make_nominal_inflection_param_mod_spec(paramname)
return {convert = function(val, parse_err)
return parse_nominal_inflection(paramname, val, parse_err)
end}
end
-- Parse an inflection. The raw arguments come from `args[field]`, which is parsed for inline modifiers. Multiple
-- comma-separated values are allowed.
local function parse_inflection(data, args, field, is_head)
local argfield = field
local argpref = field
if type(argfield) == "table" then
argpref = argfield[2]
argfield = argfield[1]
end
local include_mods
if is_head then
include_mods = {"tr"}
else
include_mods = {"tr", "g"}
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert(include_mods, {spec.field, make_nominal_inflection_param_mod_spec(argpref .. "." .. spec.field)})
end
end
if is_head then
local retval
if args[argfield] then
retval = m_headword_utilities.parse_term_with_modifiers {
val = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
return retval or {}
else
return m_headword_utilities.parse_term_list_with_modifiers {
forms = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
end
local function insert_inflection(data, terms, label, accel, defgender, track_field, no_label, usually_no_label)
local track_pos = m_en_utilities.singularize(data.pos_category)
for _, termobj in ipairs(terms) do
-- If the user supplied a construct state or informal form for the term with a value of "+", substitute the
-- default value for the term. If the user supplied a value of "--", they want no value displayed. Otherwise,
-- if the user didn't supply any value, we check to see if the default construct state or informal form is
-- different from the lemma and display it if so; this applies particularly to terms in '-in' and '-an', where
-- the default construct state or informal form is almost always correct.
local field = has_construct_state(data) and "cons" or "inf"
if not termobj[field] then
local defcons, defconstr = default_construct_state_or_informal(termobj.term, termobj.tr)
if termobj.term ~= defcons or termobj.tr ~= defconstr then
-- We don't want to copy qualifiers, labels, etc. from the term object because we're a subinflection of
-- the term object.
termobj[field] = {{term = defcons, tr = defconstr}}
end
elseif termobj[field][1].term == "--" then
if termobj[field][2] then
error("Can't specify more than one value for <" .. field .. ":...> if first value is '--', meaning \"don't insert anything\"")
end
termobj[field] = nil
else
for i, consobj in ipairs(termobj[field]) do
if consobj.term == "+" then
if consobj.tr then
error("Can't specify translit for default value '+'")
end
consobj.term, consobj.tr = default_construct_state_or_informal(termobj.term, termobj.tr)
elseif consobj.term == "~" then
if consobj.tr then
error("Can't specify translit for term-requesting value '~'")
end
consobj.term, consobj.tr = termobj.term, termobj.tr
end
end
end
if defgender and not termobj.genders then
termobj.genders = {{spec = defgender}}
end
local function insert_nested_inflection(field, label)
if termobj[field] then
m_headword_utilities.insert_inflection {
headdata = data,
inflobj = termobj,
terms = termobj[field],
label = label
}
end
end
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert_nested_inflection(spec.field, spec.label)
end
track_form(track_field, termobj.term, termobj.tr, track_pos)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
no_label = no_label,
usually_no_label = usually_no_label,
}
end
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "แม่แบบ:" .. langcode .. "-head" and "คำอุทาน" or
error("Part of speech must be specified in 1=")
poscat = require(headword_module).canonicalize_pos(poscat)
end
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local indexing_poscat = pos_in_1 and (misc_pos_with_gender[poscat_th] and "head_with_gender" or "head") or poscat_th
local params = {
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["id"] = true,
["json"] = boolean_param,
["pagename"] = {}, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local head_is_head = pos_functions[indexing_poscat] and pos_functions[indexing_poscat].head_is_not_1
local headfield = head_is_head and "head" or pos_in_1 and 2 or 1
params[headfield] = head_is_head and true or {default = "+"}
params.head2 = {replaced_by = false, instead = "use multiple comma-separated values in |" .. headfield .. "="}
local tr_replaced_by = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. headfield .. "="}
params.tr = tr_replaced_by
params.tr2 = tr_replaced_by
if pos_functions[indexing_poscat] then
for key, val in pairs(pos_functions[indexing_poscat].params()) do
params[key] = val
end
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local data = {
lang = lang,
pos_category = poscat_th,
orig_pos_category = poscat_th,
categories = {},
heads = {},
genders = {},
inflections = {enable_auto_translit = true},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
-- We expect a head always so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
}
data.heads = parse_inflection(data, args, headfield, "is_head")
for _, headobj in ipairs(data.heads) do
if headobj.term == "+" then
headobj.term = pagename
end
end
data.is_suffix = false
if args.suffix or (
not args.nosuffix and pagename:find("^%-") and poscat ~= "ปัจจัย" and poscat ~= "รูปปัจจัย"
) then
data.is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[m_en_utilities.singularize(poscat)]] poscat_th
insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_functions[indexing_poscat] then
pos_functions[indexing_poscat].func(data, args)
end
-- Do this after calling pos_functions[poscat].func() as it may modify data.heads (as verbs do).
local irreg_translit = false
for _, head in ipairs(data.heads) do
if ar_translit.irregular_translit(head.term, head.tr) then
irreg_translit = true
break
end
end
if irreg_translit then
insert(data.categories, "ศัพท์" .. langname .. "ที่มีการออกเสียงไม่ปรกติ")
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
-----------------------------------------------------------------------------------------
-- Gender handling --
-----------------------------------------------------------------------------------------
local valid_bare_genders = {false, "m", "f", "mf", "mfbysense", "mfequiv"}
local valid_bare_numbers = {false, "d", "p"}
local valid_bare_animacies = {false, "pr", "np"}
local valid_genders = {}
for _, gender in ipairs(valid_bare_genders) do
for _, number in ipairs(valid_bare_numbers) do
for _, animacy in ipairs(valid_bare_animacies) do
local parts = {}
local function ins_part(part)
if part then
insert(parts, part)
end
end
ins_part(gender)
ins_part(number)
ins_part(animacy)
local full_gender = concat(parts, "-")
valid_genders[full_gender == "" and "?" or full_gender] = true
end
end
end
local function is_masc_sg(g)
return g == "m" or g == "m-pr" or g == "m-np"
end
local function is_fem_sg(g)
return g == "f" or g == "f-pr" or g == "f-np"
end
local function is_masc_fem_sg(g)
g = g:gsub("%-pr", ""):gsub("%-np", "")
return g == "mf" or g == "mfequiv" or g == "mfbysense"
end
local function add_gender_params(params, default)
params[2] = {type = "genders", default = default or "?", template_default = "m"}
params["g2"] = {replaced_by = false, instead = "use comma-separated values in |g="}
end
-- Handle gender in params 2=, inserting into `data.genders`. Also, if a lemma, insert categories into `data.categories`
-- if the gender is unexpected for the form of the noun. (Note: If there are multiple genders,
-- [[Module:gender and number]] will automatically insert 'Arabic POS with multiple genders'.)
local function handle_gender(data, args, nonlemma, field)
if not args[field or 2] then
return
end
for _, gspec in ipairs(args[field or 2]) do
if not valid_genders[gspec.spec] then
error("Unrecognized gender: " .. gspec.spec)
end
end
data.genders = args[field or 2]
if nonlemma then
return
end
for _, gspec in ipairs(data.genders) do
local g = gspec.spec
if is_masc_sg(g) or is_fem_sg(g) or is_masc_fem_sg(g) then
local head = data.heads[1]
if head then
head = rsub(ar.reorder_shadda(remove_links(head.term)), ar.UNUOPT .. "$", "")
local ends_with_tam = rfind(head, "^[^ ]*" .. ar.TAM .. "$") or
rfind(head, "^[^ ]*" .. ar.TAM .. " ")
if (is_masc_sg(g) or is_masc_fem_sg(g)) and ends_with_tam then
insert(data.categories, "ศัพท์เพศชาย" .. langname .. "ที่ลงท้ายด้วยเพศหญิง")
elseif (is_fem_sg(g) or is_masc_fem_sg(g)) and not ends_with_tam and
not rfind(head, "[" .. ar.ALIF .. ar.AMAQ .. "]$") and
not rfind(head, ar.ALIF .. ar.HAMZA .. "$") then
insert(data.categories, "ศัพท์เพศหญิง" .. langname .. "ที่ไม่ลงท้ายด้วยเพศหญิง")
end
end
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection handlers --
-----------------------------------------------------------------------------------------
-- Add list parameters to `params` (a structure as passed to [[Module:parameters]]) for a parameter named `argpref`.
-- If `argpref` is "*", add the nominal inflection parameters for construct state, definite state, etc. Related
-- transliteration and gender parameters are no longer supported in favor of inline modifiers, and error messages are
-- output if these parameters are used.
local function add_infl_params(params, argpref)
params[argpref] = {list = true, disallow_holes = true}
params[argpref .. "tr"] = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. argpref .. "="}
params[argpref .. "g"] = {replaced_by = false, instead = "use <g:...> inline modifier on |" .. argpref .. "="}
end
--[=[
Fetch a list of inflections from the arguments in `args` based on argument `field` (e.g. "pl"). Label with `label`
(e.g. "plural"), which will appear in the headword. Insert into `data.inflections`, where `data` is the structure
passed to [[Module:headword]]. If `generate_default` is specified, it should be a function of two arguments
(`data`, `args`), which should generate the default value if no values are specified or if "+" is explicitly given.
If `generate_default` isn't specified and the user gave no values, no inflection will be inserted.
]=]
local function handle_infl(data, args, spec)
local newinfls = parse_inflection(data, args, spec.field, false)
if not newinfls[1] and spec.default_when_not_explicit and spec.default_when_not_explicit(data, args) then
newinfls = {{term = "+"}}
end
if spec.handle then
spec.handle(data, args, newinfls)
end
local default_specs = spec.allowed_defspecs
if not default_specs then
default_specs = spec.generate_default and {["+"] = true} or {}
end
local saw_defspec = false
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] or newinfl.term == "~" then
saw_defspec = true
break
end
end
if saw_defspec then
local newnewinfls = {}
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] then
if newinfl.tr then
error("Can't specify translit for default value '" .. newinfl.term .. "'")
end
local definfls = spec.generate_default(data, args, newinfl.term)
for _, definfl in ipairs(definfls) do
m_headword_utilities.combine_termobj_qualifiers_labels(definfl, newinfl)
insert(newnewinfls, definfl)
end
elseif newinfl.term == "~" then
if newinfl.tr then
error("Can't specify translit for head-requesting value '~'")
end
for _, headobj in ipairs(data.heads) do
headobj = m_table.shallowCopy(headobj)
m_headword_utilities.combine_termobj_qualifiers_labels(headobj, newinfl)
insert(newnewinfls, headobj)
end
else
insert(newnewinfls, newinfl)
end
end
newinfls = newnewinfls
end
if newinfls[1] then
if newinfls[1].term == "--" then
if newinfls[2] then
error("Can't specify more than one term if first term is '--', meaning \"don't insert anything\"")
end
else
insert_inflection(data, newinfls, spec.label, nil, spec.defgender, spec.field, spec.no_label,
spec.usually_no_label)
end
end
end
local function add_infl_list_params(params, infl_list)
for _, infl in ipairs(infl_list) do
add_infl_params(params, infl.field)
end
end
local function handle_infl_list_args(data, args, infl_list)
for _, infl in ipairs(infl_list) do
handle_infl(data, args, infl)
end
end
-----------------------------------------------------------------------------------------
-- Default ending generators --
-----------------------------------------------------------------------------------------
local function make_conditional_default(specs)
return function(data, args)
local heads = data.heads
if not heads[1] then
heads = {{term = data.pagename}}
end
local newobjs = {}
for _, headobj in ipairs(heads) do
local term = ar.reorder_shadda(headobj.term)
local tr = headobj.tr
local matched = false
for _, spec in ipairs(specs) do
local from, fromtr, to, totr = unpack(spec)
if from:find("^%^") then
pref = rmatch(term, from .. "$")
else
pref = rmatch(term, "^(.*)" .. from .. "$")
end
if pref then
term = pref .. to
tr = replace_tr_ending(tr, fromtr, totr)
matched = true
headobj = m_table.shallowCopy(headobj)
headobj.term = ar.undo_reorder_shadda(term)
headobj.tr = tr
insert(newobjs, headobj)
break
end
end
if not matched then
error(("Internal error: No matching spec: head=%s"):format(dump(headobj)))
end
end
return newobjs
end
end
local default_feminine = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AAH, "āh"},
{ar.AN .. ar.ALIF, "an", ar.AAH, "āh"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAH, "iya"},
{ar.IN, "in", ar.IYAH, "iya"},
{"", "", ar.AH, "a"},
}
local default_masculine = make_conditional_default {
-- tall alif substitutes for alif maqṣūra after a yāʔ
{ar.Y .. ar.AAH, "āh", ar.AN .. ar.ALIF, "an"},
{ar.AAH, "āh", ar.AN .. ar.AMAQ, "an"},
-- handle the common case of final-weak feminine active participle with preceding hamza;
-- the hamza-on-yāʔ always converts back to hamza on the line when preceded by ā (alif) but
-- may not otherwise, so we just leave it alone in that case
{ar.ALIF .. ar.HAMZA_ON_YA .. ar.IYAH, "iya", ar.HAMZA .. ar.IN, "in"},
{ar.IYAH, "iya", ar.IN, "in"},
{ar.AH, "a", "", ""},
{"", "", "", ""},
}
local default_masculine_plural = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AWN, "awn"},
{ar.AN .. ar.ALIF, "an", ar.AWN, "awn"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_WAW .. ar.UUN, "ūn"},
{ar.IN, "in", ar.UUN, "ūn"},
{"", "", ar.UUN, "ūn"},
}
local default_feminine_plural = make_conditional_default {
-- صَلَاة pl. صَلَوَات and أَدَاة pl. أَدَوَات and similar; but نَوَاة and وَفَاة with a و in them become نَوَيَات and وَفَيَات;
-- and longer terms like مُبَارَاة and كُمَّثْرَاة invariably form their plural in -يَات.
{"^([^و]" .. ar.A .. "[^و])" .. ar.AAH, "āh", ar.A .. ar.W .. ar.AAT, "awāt"},
{ar.AAH, "āh", ar.AYAAT, "ayāt"},
{ar.AN .. ar.AMAQ, "an", ar.AYAAT, "ayāt"},
{ar.AN .. ar.ALIF, "an", ar.AYAAT, "ayāt"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAT, "iyāt"},
{ar.IN, "in", ar.IYAAT, "iyāt"},
{ar.AH, "a", ar.AAT, "āt"},
{"", "", ar.AAT, "āt"},
}
local default_masculine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AYAAN, "ayān"},
{ar.AN .. ar.ALIF, "an", ar.AYAAN, "ayān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAN, "iyān"},
{ar.IN, "in", ar.IYAAN, "iyān"},
{"", "", ar.AAN, "ān"},
}
local default_feminine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AATAAN, "ātān"},
{ar.AN .. ar.ALIF, "an", ar.AATAAN, "ātān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IY .. ar.ATAAN, "iyatān"},
{ar.IN, "in", ar.IY .. ar.ATAAN, "iyatān"},
{"", "", ar.ATAAN, "atān"},
}
-- Return whether `term` is a nisba noun or adjective, ending in -iyy or -iyyah. `nisba_val` is the value of
-- args.nisba; if non-nil, it overrides any auto-determination based on the shape of the term.
local function term_is_nisba(term, nisba_val)
if nisba_val ~= nil then
return nisba_val
end
term = ar.reorder_shadda(term) -- necessary to avoid issues with e.g. أُورُوبِّيّ.
local pref = rmatch(term, "^(.*)" .. ar.IYY .. ar.UN .. "?$")
if not pref then
pref = rmatch(term, "^(.*)" .. ar.IYYAH .. ar.UN .. "?$")
end
-- Avoid false positives for words like قَوِيّ "strong" and صَبِيّ "boy". There may be other false positives
-- but this should catch most of them and will avoid very many false negatives.
return pref and not rfind(pref, "^[^ا]" .. ar.A .. ".$")
end
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function is_defaulting_adjective(data, args)
return data.orig_pos_category == "คำคุณศัพท์defaulting"
end
local adj_field_elative = {field = "el", label = "<<elative>>"}
local adj_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
{field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = is_defaulting_adjective},
{field = "d", label = "เพศชายทวิพจน์", generate_default = default_masculine_dual},
{field = "fd", label = "เพศหญิงทวิพจน์", generate_default = default_feminine_dual},
{field = "cpl", label = "เพศรวมพหูพจน์"},
{field = "pl", label = "เพศชายพหูพจน์", generate_default = default_masculine_plural,
default_when_not_explicit = is_defaulting_adjective},
{field = "fpl", label = "เพศหญิงพหูพจน์", generate_default = default_feminine_plural,
default_when_not_explicit = is_defaulting_adjective},
}
local function get_adj_params()
local params = {}
add_infl_list_params(params, adj_inflections)
add_infl_params(params, "el")
params.nisba = boolean_param
return params
end
local function handle_adj_args(data, args)
handle_infl_list_args(data, args, adj_inflections)
handle_infl(data, args, adj_field_elative)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำคุณศัพท์สัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำคุณศัพท์"] = {
params = get_adj_params,
func = handle_adj_args,
}
pos_functions["คำคุณศัพท์defaulting"] = {
params = get_adj_params,
func = function(data, args)
data.pos_category = "คำคุณศัพท์"
handle_adj_args(data, args)
end,
}
-----------------------------------------------------------------------------------------
-- Nouns, etc. --
-----------------------------------------------------------------------------------------
local function get_masc_or_feminine_gender(data, default_type)
local saw_m, saw_f, saw_mf
for _, gender in ipairs(data.genders) do
if is_masc_sg(gender.spec) then
saw_m = true
elseif is_fem_sg(gender.spec) then
saw_f = true
elseif is_masc_fem_sg(gender.spec) then
saw_mf = true
end
end
if saw_mf or saw_m and saw_f then
error("Can't generate default for " .. default_type .. " when gender is both masculine and feminine")
elseif saw_m then
return "m"
elseif saw_f then
return "f"
else
error("Can't generate default for " .. default_type .. " when gender is not specified as " ..
"masculine or feminine singular")
end
end
local function is_defaulting_noun(data, args)
return data.orig_pos_category == "คำนามdefaulting"
end
local noun_field_dual = {
field = "d", label = "ทวิพจน์",
generate_default = function(data, args)
local gender = get_masc_or_feminine_gender(data, "noun dual")
if gender == "m" then
return default_masculine_dual(data, args)
else
return default_feminine_dual(data, args)
end
end,
}
local noun_field_plural = {
field = "pl", label = "พหูพจน์",
generate_default = function(data, args, defspec)
local gender = get_masc_or_feminine_gender(data, "noun plural")
if gender == "m" then
if defspec == "+f" then
return default_feminine_plural(data, args)
else
return default_masculine_plural(data, args)
end
elseif defspec == "+f" then
error("Can't specify '+f' with feminine gender; just use '+'")
else
return default_feminine_plural(data, args)
end
end,
-- Handle the case where pl=-, indicating an uncountable noun.
handle = function(data, args, terms)
if terms[1] and terms[1] == "-" then
insert(data.categories, "คำนามนับไม่ได้" .. langname)
if args.pauc and args.pauc[1] then
error("Can't specify paucals when pl=-")
end
end
end,
allowed_defspecs = {["+"] = true, ["+f"] = true},
default_when_not_explicit = is_defaulting_noun,
no_label = "<<นับไม่ได้>>",
usually_no_label = "โดยปกติ<<นับไม่ได้>>",
}
local noun_field_paucal = {
field = "pauc", label = "<<paucal>>", generate_default = default_feminine_plural,
}
local noun_field_feminine = {
field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-masculine noun feminine")
return gender == "m"
end,
}
local noun_field_masculine = {
field = "m", label = "เพศชาย", generate_default = default_masculine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-feminine noun masculine")
return gender == "f"
end,
}
local noun_basic_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local noun_shared_inflections = {
noun_field_dual,
noun_field_plural,
}
local noun_extra_inflections = {
noun_field_paucal,
noun_field_feminine,
noun_field_masculine,
}
local function get_noun_params()
local params = {}
add_gender_params(params)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_list_params(params, noun_extra_inflections)
params.nisba = boolean_param
return params
end
local function handle_noun_args(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl_list_args(data, args, noun_extra_inflections)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำนามสัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
pos_functions["คำนามdefaulting"] = {
params = get_noun_params,
func = function(data, args)
data.pos_category = "คำนาม"
handle_noun_args(data, args)
end,
}
local noun_field_singulative = {field = "sing", label = "<<คำเอกนาม>>", defgender = "f", generate_default = default_feminine}
local noun_field_collective = {field = "coll", label = "<<คำสมุหนาม>>", defgender = "m", generate_default = default_masculine}
local function handle_sing_coll_noun_infls(data, args, otherinfl, otherlabel, othergender)
-- Handle sing= (corresponding singulative noun) or coll= (corresponding collective noun) and their gender
handle_infl(data, args, otherinfl, otherlabel, nil, othergender)
handle_infl_list_args(data, args, sing_coll_noun_inflections)
end
local function get_singulative_collective_noun_params(defgender, otherinfl)
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_params(params, otherinfl)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "pauc")
return params
end
pos_functions["คำสมุหนาม"] = {
params = function() return get_singulative_collective_noun_params("m", "sing") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำสมุหนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำสมุหนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_singulative)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
pos_functions["คำเอกนาม"] = {
params = function() return get_singulative_collective_noun_params("f", "coll") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำเอกนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำเอกนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_collective)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
-- FIXME: Do numerals really behave almost as nouns? They vary by masc/fem.
pos_functions["เลข"] = {
params = get_noun_params,
func = function(data, args)
insert(data.categories, "เลขเชิงการนับ" .. langname)
handle_noun_args(data, args)
end
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
local function get_pronoun_params()
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "f")
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params,
func = function(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_feminine)
end
}
-----------------------------------------------------------------------------------------
-- Non-lemma forms --
-----------------------------------------------------------------------------------------
local valid_forms = list_to_set(
{ "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII",
"XIII", "XIV", "XV", "Iq", "IIq", "IIIq", "IVq" })
-- FIXME: Partly duplicated in [[Module:ar-inflections]].
local function handle_conj_form(data, args)
local form = args[2]
if form then
if not valid_forms[form] then
error("Invalid verb conjugation form " .. form)
end
insert(data.inflections, { label = "[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป " .. form .. "|รูป " .. form .. "]]" })
end
end
pos_functions["รูปกริยา"] = {
params = function()
return {
[2] = {},
}
end,
func = function(data, args)
handle_conj_form(data, args)
end
}
local function get_participle_params()
local params = get_adj_params()
params[2] = {}
return params
end
pos_functions["รูปกริยาขยายกรรตุวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรตุวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
pos_functions["รูปกริยาขยายกรรมวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรมวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
head_is_not_1 = true,
params = function() return {
[1] = {},
-- Comma-separated lists with possible inline modifiers
["past"] = {},
["past1s"] = {},
["nonpast"] = {},
["vn"] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
} end,
func = function(data, args)
local ar_verb = require(ar_verb_module)
local alternant_multiword_spec =
args[1] ~= "-" and ar_verb.do_generate_forms(args, "ar-verb", data.pagename) or nil
local function do_slot(slots_to_check, override, label, slot_is_headword)
-- Do this even with an override so we can return the correct filled slot.
local slot, slotval
if alternant_multiword_spec then
for _, potential_slot in ipairs(slots_to_check) do
slotval = alternant_multiword_spec.forms[potential_slot]
if slotval then
slot = potential_slot
break
end
end
end
local function get_slot_values()
local terms = {}
for _, form in ipairs(slotval) do
local term = {
term = form.form,
id = form.id,
genders = form.genders,
pos = form.pos,
lit = form.lit,
}
term.tr = form.translit
if form.footnotes then
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
term.q = quals
term.refs = refs
end
insert(terms, term)
end
return terms
end
if override then
local override_param_mods = {
alt = {},
t = {
-- [[Module:headword]] expects the gloss in "gloss".
item_dest = "gloss",
},
gloss = {},
g = {
-- [[Module:headword]] expects the genders in "genders".
item_dest = "genders",
type = "genders",
},
pos = {},
lit = {},
id = {},
-- Qualifiers and labels
q = {
type = "qualifier",
},
qq = {
type = "qualifier",
},
l = {
type = "labels",
},
ll = {
type = "labels",
},
ref = {
-- [[Module:headword]] expects the references in "refs".
item_dest = "refs",
type = "references",
},
}
local function generate_obj(formval, parse_err)
if formval == "+" then
return {term = "+", underlying_terms = get_slot_values()}
end
local val, uncertain = formval:match("^(.*)(%?)$")
val = val or formval
uncertain = not not uncertain
local ar, translit = val:match("^(.*)//(.*)$")
if not ar then
ar = formval
end
local retval = {term = ar, uncertain = uncertain}
retval.tr = translit
end
local terms
if override:find("<") then
terms = require(parse_utilities_module).parse_inline_modifiers(override, {
paramname = paramname,
param_mods = override_param_mods,
generate_obj = generate_obj,
splitchar = "[,،]",
escape_fun = escape_comma_whitespace,
unescape_fun = unescape_comma_whitespace,
})
else
terms = split_on_comma(override)
for i, split in ipairs(terms) do
terms[i] = generate_obj(split)
end
end
-- See if + was supplied and we have to potentially flatten multiple default terms and harmonize
-- default properties with override properties.
local saw_underlying_terms = false
for _, term in ipairs(terms) do
if term.underlying_terms then
saw_underlying_terms = true
break
end
end
if saw_underlying_terms then
-- Flatten any default terms, copying the corresponding override properties over the default
-- properties. Non-default terms get inserted directly.
local flattened = {}
for _, term in ipairs(terms) do
if term.underlying_terms then
for _, underlying in ipairs(term.underlying_terms) do
for k, v in pairs(term) do
if k ~= "term" and k ~= "underlying_terms" then
if k == "uncertain" then
underlying.uncertain = underlying.uncertain or v
elseif type(v) ~= "table" or v[1] then
-- Don't copy empty lists (which are the default) over possibly non-empty
-- lists.
underlying[k] = v
end
end
end
insert(flattened, underlying)
end
else
insert(flattened, term)
end
end
terms = flattened
end
if not slot_is_headword then
terms.label = label
end
return terms, slot
elseif not alternant_multiword_spec then
return nil, slot
else
if not slotval then
if slot_is_headword then
-- FIXME, put "uncertain" as qualifier? Does this ever happen?
return nil, slot
elseif alternant_multiword_spec.slot_uncertain[slot] then
return {label = label .. " uncertain"}, slot
elseif alternant_multiword_spec.slot_explicitly_missing[slot] then
return {label = "no " .. label}, slot
else
-- just say nothing about this slot
return nil, slot
end
end
local terms = get_slot_values()
if not slot_is_headword then
terms.label = label
end
return terms, slot
end
end
local gloss_parts = {}
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
insert(gloss_parts, "[[Appendix:Arabic verbs#Form " .. vform .. "|" .. vform .. "]]")
end
if gloss_parts[1] then
data.gloss = concat(gloss_parts, ", ")
end
if data.heads[1] and args.past then
error("Can't specify both head= and past= to {{ar-verb}}; prefer past=")
end
if not alternant_multiword_spec.has_active then
insert(data.inflections, {label = "passive-only"})
end
-- Do this always so `past_slot` is correctly filled.
local past, past_slot = do_slot(ar_verb.potential_lemma_slots, args.past, "-", "slot is headword")
if data.heads[1] then
-- user specified head=; don't override with past= or slot 'past_3sm' etc.
else
if past then
data.heads = past
end
end
local should_do_past1s = not not args.past1s
if not should_do_past1s then
local is_form_I = false
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
if vform == "I" then
is_form_I = true
break
end
end
if is_form_I then
require(inflection_utilities_module).map_word_specs(alternant_multiword_spec, function(base)
if base.verb_form == "I" then
for _, vowel_spec in ipairs(base.conj_vowels) do
-- For form-I geminate verbs, the final vowel of the past is elided in the citation form.
-- We want to display it for all cases other than active a~u and a~i (the most common
-- cases).
if vowel_spec.weakness == "geminate" then
if ar_verb.is_passive_only(base.passive) then
should_do_past1s = true
break
end
local past_vowel = ar_verb.rget(vowel_spec.past)
local nonpast_vowel = ar_verb.rget(vowel_spec.nonpast)
if not (past_vowel == ar.A and (nonpast_vowel == ar.U or nonpast_vowel == ar.I)) then
should_do_past1s = true
break
end
end
end
-- FIXME, provide way of breaking early from map_word_specs().
end
end)
end
end
local past1s
if should_do_past1s then
past1s, _ = do_slot({"past_1s", "past_pass_1s"}, args.past1s, "first-person singular past")
if past1s then
insert(data.inflections, past1s)
end
end
local nonpast_slots
if not past_slot or past_slot:find("^past_") then
nonpast_slots = {"ind_3ms", "ind_pass_3ms", "imp_2ms"}
else
nonpast_slots = {}
end
local nonpast, _ = do_slot(nonpast_slots, args.nonpast, "non-past")
if nonpast then
insert(data.inflections, nonpast)
end
local vn, _ = do_slot({"vn"}, args.vn, "verbal noun")
if vn then
insert(data.inflections, vn)
end
-- FIXME: Should we insert categories? Conjugation also does it and is more likely to be accurate.
--for _, cat in ipairs(alternant_multiword_spec.categories) do
-- insert(data.categories, cat)
--end
--[=[
-- FIXME: Review this to see if we need to port it.
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:pt-verb]] in place of the user-specified or auto-generated head. This was copied from
-- [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have accents marked on
-- the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't do this if the
-- user gave multiple heads or gave a head with a multiword-linked verbal expression such as Italian
-- '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Portuguese equivalent).
if not data.user_specified_heads[1] or (
not data.user_specified_heads[2] and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
]=]
end
}
-----------------------------------------------------------------------------------------
-- Generic parts of speech --
-----------------------------------------------------------------------------------------
pos_functions.head_with_gender = {
params = function()
return {
[3] = {type = "genders"},
}
end,
func = function(data, args)
handle_gender(data, args, "nonlemma", 3)
end,
}
return export
qqvjrog585oa6k695287vj09ltrr80j
5723269
5723267
2026-05-20T04:42:31Z
OctraBot
3198
5723269
Scribunto
text/plain
-- Author: primarily Benwing2; some work by Fenakhay, Erutuon; early version by Rua
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local ar_translit = require("Module:ar-translit")
local ar_verb_module = "Module:ar-verb"
local ar_utilities_module = "Module:ar-utilities"
local ar = require(ar_utilities_module)
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local links_module = "Module:links"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local require_when_needed = require("Module:utilities/require when needed")
local remove_links = require_when_needed(links_module, "remove_links")
local m_table = require("Module:table")
local m_str_utils = require("Module:string utilities")
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local boolean_param = {type = "boolean"}
local list_to_set = m_table.listToSet
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local rsubn = m_str_utils.gsub
local u = m_str_utils.char
local rsplit = m_str_utils.split
local insert = table.insert
local concat = table.concat
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local langcode = "ar"
local lang = require("Module:languages").getByCode(langcode)
local langname = lang:getCategoryName() --th
local TEMPCOMMA = u(0xFFF0)
local TEMPARCOMMA = u(0xFFF1)
local misc_pos_with_gender = list_to_set {
"ปัจจับ",
"รูปคุณศัพท์",
"รูปนาม",
"รูปวิสามานยนาม",
"รูปสรรพนาม",
"รูปตัวกำหนด",
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local dump = mw.dumpObject
-- version of mw.ustring.gsub() 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(val)
if val == "" then return nil else return val end
end
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(run)
local escaped = false
if run:find("\\,") then
run = run:gsub("\\,", "\\" .. TEMPCOMMA)
escaped = true
end
if run:find("\\،") then
run = run:gsub("\\،", "\\" .. TEMPARCOMMA)
escaped = true
end
if run:find(",%s") then
run = run:gsub(",(%s)", TEMPCOMMA .. "%1")
escaped = true
end
if run:find("،%s") then
run = run:gsub("،(%s)", TEMPARCOMMA .. "%1")
escaped = true
end
return run, escaped
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(run)
return (run:gsub(TEMPCOMMA, ","):gsub(TEMPARCOMMA, "،"))
end
-- Split an argument on comma or Arabic comma, but not either type of comma followed by whitespace.
local function split_on_comma(val)
if rfind(val, "[,،]%s") or val:find("\\") then
return export.split_escaping(val, "[,،]", false, escape_comma_whitespace, unescape_comma_whitespace)
else
return rsplit(val, "[,،]")
end
end
local function replace_tr_ending(tr, from, to)
if not tr then
return nil
end
local pref = tr:match("^(.*)" .. from .. "$")
if not pref then
error(("Translit '%s' does not end in -%s, as expected"):format(tr, from))
end
return pref .. to
end
-----------------------------------------------------------------------------------------
-- Tracking functions --
-----------------------------------------------------------------------------------------
local trackfn = require("Module:debug/track")
local function track(page)
trackfn(langcode .. "-headword/" .. page)
return true
end
--[==[
Examples of what you can find by looking at what links to the given
pages:
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized]]
all unvocalized pages
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/pl]]
all unvocalized pages where the plural is unvocalized,
whether specified using pl=, pl2=, etc.
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head]]
all unvocalized pages where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/nouns]]
all nouns excluding proper nouns, collective nouns,
singulative nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/proper]]
nouns all proper nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/not]]
proper nouns all words that are not proper nouns
where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/adjectives]]
all adjectives where any parameter is unvocalized;
currently only works for heads,
so equivalent to .../unvocalized/head/adjectives
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-empty-head]]
all pages with an empty head
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit]]
all unvocalized pages with manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit/head/nouns]]
all nouns where the head is unvocalized but has manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-no-translit]]
all unvocalized pages without manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab]]
all pages with any parameter containing i3rab
of either -un, -u, -a or -i
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un]]
all pages with any parameter containing an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un/pl]]
all pages where a form specified using pl=, pl2=, etc.
contains an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-u/head]]
all pages with a head containing an -u i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab/head/proper]]
nouns (all proper nouns with a head containing i3rab
of either -un, -u, -a or -i)
In general, the format is one of the following:
Wiktionary:Tracking/ar-headword/FIRSTLEVEL
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/POS
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME/POS
FIRSTLEVEL can be one of "unvocalized", "unvocalized-empty-head" or its
opposite "unvocalized-specified", "unvocalized-manual-translit" or its
opposite "unvocalized-no-translit", "i3rab", "i3rab-un", "i3rab-u",
"i3rab-a", or "i3rab-i".
ARGNAME is either "head" or an argument such as "pl", "f", "cons", etc.
This automatically includes arguments specified as head2=, pl3=, etc.
POS is a part of speech, lowercase and singular, e.g. "noun",
"adjective", "proper noun", "collective noun", etc. or
"not proper noun", which includes all parts of speech but proper nouns.
]==]
local function track_form(argname, form, translit, pos)
form = ar.reorder_shadda(remove_links(form))
function dotrack(page)
track(page)
track(page .. "/" .. argname)
if pos then
track(page .. "/" .. pos)
track(page .. "/" .. argname .. "/" .. pos)
if pos ~= "คำวิสามานยนาม" then
track(page .. "/not proper noun")
track(page .. "/" .. argname .. "/not proper noun")
end
end
end
function track_i3rab(arabic, tr)
if rfind(form, arabic .. "$") then
dotrack("i3rab")
dotrack("i3rab-" .. tr)
end
end
track_i3rab(ar.UN, "un")
track_i3rab(ar.U, "u")
track_i3rab(ar.A, "a")
track_i3rab(ar.I, "i")
if form == "" or not (lang:transliterate(form)) then
dotrack("unvocalized")
if form == "" then
dotrack("unvocalized-empty-head")
else
dotrack("unvocalized-specified")
end
if translit then
dotrack("unvocalized-manual-translit")
else
dotrack("unvocalized-no-translit")
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection-parsing functions --
-----------------------------------------------------------------------------------------
-- Construct the default construct state or informal form of a term in lemma format. Usually this is the same as the
-- lemma but is different for final-weak nouns and adjectives ending in -n in their lemma. NOTE: Input must be
-- shadda-reordered for this to work properly.
local function default_construct_state_or_informal(term, tr)
local pref = term:match("^(.*)" .. ar.HAMZA .. ar.IN .."$")
-- Hamza on the line with -in changes to hamza-on-yā with -ī.
if pref then
return pref .. ar.HAMZA_ON_YA .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Otherwise just change -in to -ī.
pref = term:match("^(.*)" .. ar.IN .. "$")
if pref then
return pref .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Change -an with alif maqṣūra to -ā with alif maqṣūra.
pref = term:match("^(.*)" .. ar.AN .. ar.AMAQ .. "$")
if pref then
return pref .. ar.AAMAQ, replace_tr_ending(tr, "an", "ā")
end
-- Change -an with tall alif (e.g. عَصًا) to -ā with tall alif.
pref = term:match("^(.*)" .. ar.AN .. ar.ALIF .. "$")
if pref then
return pref .. ar.AA, replace_tr_ending(tr, "an", "ā")
end
return term, tr
end
local function generate_construct_state_or_informal_default(data, args)
local heads = data.heads
local consobjs = {}
local different_cons = false
for _, headobj in ipairs(data.heads) do
local consterm, constr = default_construct_state_or_informal(headobj.term, headobj.tr)
different_cons = different_cons or consterm ~= headobj.term or constr ~= headobj.tr
local consobj = m_table.shallowCopy(headobj)
consobj.term = consterm
consobj.tr = constr
insert(consobjs, consobj)
end
if different_cons then
return consobjs
else
return {}
end
end
local noun_field_cons = {
field = "cons", label = "<<construct state>>", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local noun_field_inf = {field = "inf", label = "informal"}
local noun_field_obl = {field = "obl", label = "<<oblique>>"}
local noun_field_def = {field = "def", label = "<<definite>> state"}
local noun_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local adj_field_inf = {
field = "inf", label = "informal", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local adj_field_obl = noun_field_obl
local adj_field_def = noun_field_def
local adjective_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
}
local function has_construct_state(data)
return data.pos_category ~= "adjectives"
end
local function parse_nominal_inflection(paramname, val, parse_err)
return m_headword_utilities.parse_term_with_modifiers {
val = val,
paramname = paramname,
splitchar = ",",
include_mods = {"tr", "g"},
}
end
local function make_nominal_inflection_param_mod_spec(paramname)
return {convert = function(val, parse_err)
return parse_nominal_inflection(paramname, val, parse_err)
end}
end
-- Parse an inflection. The raw arguments come from `args[field]`, which is parsed for inline modifiers. Multiple
-- comma-separated values are allowed.
local function parse_inflection(data, args, field, is_head)
local argfield = field
local argpref = field
if type(argfield) == "table" then
argpref = argfield[2]
argfield = argfield[1]
end
local include_mods
if is_head then
include_mods = {"tr"}
else
include_mods = {"tr", "g"}
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert(include_mods, {spec.field, make_nominal_inflection_param_mod_spec(argpref .. "." .. spec.field)})
end
end
if is_head then
local retval
if args[argfield] then
retval = m_headword_utilities.parse_term_with_modifiers {
val = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
return retval or {}
else
return m_headword_utilities.parse_term_list_with_modifiers {
forms = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
end
local function insert_inflection(data, terms, label, accel, defgender, track_field, no_label, usually_no_label)
local track_pos = m_en_utilities.singularize(data.pos_category)
for _, termobj in ipairs(terms) do
-- If the user supplied a construct state or informal form for the term with a value of "+", substitute the
-- default value for the term. If the user supplied a value of "--", they want no value displayed. Otherwise,
-- if the user didn't supply any value, we check to see if the default construct state or informal form is
-- different from the lemma and display it if so; this applies particularly to terms in '-in' and '-an', where
-- the default construct state or informal form is almost always correct.
local field = has_construct_state(data) and "cons" or "inf"
if not termobj[field] then
local defcons, defconstr = default_construct_state_or_informal(termobj.term, termobj.tr)
if termobj.term ~= defcons or termobj.tr ~= defconstr then
-- We don't want to copy qualifiers, labels, etc. from the term object because we're a subinflection of
-- the term object.
termobj[field] = {{term = defcons, tr = defconstr}}
end
elseif termobj[field][1].term == "--" then
if termobj[field][2] then
error("Can't specify more than one value for <" .. field .. ":...> if first value is '--', meaning \"don't insert anything\"")
end
termobj[field] = nil
else
for i, consobj in ipairs(termobj[field]) do
if consobj.term == "+" then
if consobj.tr then
error("Can't specify translit for default value '+'")
end
consobj.term, consobj.tr = default_construct_state_or_informal(termobj.term, termobj.tr)
elseif consobj.term == "~" then
if consobj.tr then
error("Can't specify translit for term-requesting value '~'")
end
consobj.term, consobj.tr = termobj.term, termobj.tr
end
end
end
if defgender and not termobj.genders then
termobj.genders = {{spec = defgender}}
end
local function insert_nested_inflection(field, label)
if termobj[field] then
m_headword_utilities.insert_inflection {
headdata = data,
inflobj = termobj,
terms = termobj[field],
label = label
}
end
end
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert_nested_inflection(spec.field, spec.label)
end
track_form(track_field, termobj.term, termobj.tr, track_pos)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
no_label = no_label,
usually_no_label = usually_no_label,
}
end
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "แม่แบบ:" .. langcode .. "-head" and "คำอุทาน" or
error("Part of speech must be specified in 1=")
poscat = require(headword_module).canonicalize_pos(poscat)
end
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local indexing_poscat = pos_in_1 and (misc_pos_with_gender[poscat_th] and "head_with_gender" or "head") or poscat_th
local params = {
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["id"] = true,
["json"] = boolean_param,
["pagename"] = {}, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local head_is_head = pos_functions[indexing_poscat] and pos_functions[indexing_poscat].head_is_not_1
local headfield = head_is_head and "head" or pos_in_1 and 2 or 1
params[headfield] = head_is_head and true or {default = "+"}
params.head2 = {replaced_by = false, instead = "use multiple comma-separated values in |" .. headfield .. "="}
local tr_replaced_by = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. headfield .. "="}
params.tr = tr_replaced_by
params.tr2 = tr_replaced_by
if pos_functions[indexing_poscat] then
for key, val in pairs(pos_functions[indexing_poscat].params()) do
params[key] = val
end
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local data = {
lang = lang,
pos_category = poscat_th,
orig_pos_category = poscat_th,
categories = {},
heads = {},
genders = {},
inflections = {enable_auto_translit = true},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
-- We expect a head always so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
}
data.heads = parse_inflection(data, args, headfield, "is_head")
for _, headobj in ipairs(data.heads) do
if headobj.term == "+" then
headobj.term = pagename
end
end
data.is_suffix = false
if args.suffix or (
not args.nosuffix and pagename:find("^%-") and poscat ~= "ปัจจัย" and poscat ~= "รูปปัจจัย"
) then
data.is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[m_en_utilities.singularize(poscat)]] poscat_th
insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_functions[indexing_poscat] then
pos_functions[indexing_poscat].func(data, args)
end
-- Do this after calling pos_functions[poscat].func() as it may modify data.heads (as verbs do).
local irreg_translit = false
for _, head in ipairs(data.heads) do
if ar_translit.irregular_translit(head.term, head.tr) then
irreg_translit = true
break
end
end
if irreg_translit then
insert(data.categories, "ศัพท์" .. langname .. "ที่มีการออกเสียงไม่ปรกติ")
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
-----------------------------------------------------------------------------------------
-- Gender handling --
-----------------------------------------------------------------------------------------
local valid_bare_genders = {false, "m", "f", "mf", "mfbysense", "mfequiv"}
local valid_bare_numbers = {false, "d", "p"}
local valid_bare_animacies = {false, "pr", "np"}
local valid_genders = {}
for _, gender in ipairs(valid_bare_genders) do
for _, number in ipairs(valid_bare_numbers) do
for _, animacy in ipairs(valid_bare_animacies) do
local parts = {}
local function ins_part(part)
if part then
insert(parts, part)
end
end
ins_part(gender)
ins_part(number)
ins_part(animacy)
local full_gender = concat(parts, "-")
valid_genders[full_gender == "" and "?" or full_gender] = true
end
end
end
local function is_masc_sg(g)
return g == "m" or g == "m-pr" or g == "m-np"
end
local function is_fem_sg(g)
return g == "f" or g == "f-pr" or g == "f-np"
end
local function is_masc_fem_sg(g)
g = g:gsub("%-pr", ""):gsub("%-np", "")
return g == "mf" or g == "mfequiv" or g == "mfbysense"
end
local function add_gender_params(params, default)
params[2] = {type = "genders", default = default or "?", template_default = "m"}
params["g2"] = {replaced_by = false, instead = "use comma-separated values in |g="}
end
-- Handle gender in params 2=, inserting into `data.genders`. Also, if a lemma, insert categories into `data.categories`
-- if the gender is unexpected for the form of the noun. (Note: If there are multiple genders,
-- [[Module:gender and number]] will automatically insert 'Arabic POS with multiple genders'.)
local function handle_gender(data, args, nonlemma, field)
if not args[field or 2] then
return
end
for _, gspec in ipairs(args[field or 2]) do
if not valid_genders[gspec.spec] then
error("Unrecognized gender: " .. gspec.spec)
end
end
data.genders = args[field or 2]
if nonlemma then
return
end
for _, gspec in ipairs(data.genders) do
local g = gspec.spec
if is_masc_sg(g) or is_fem_sg(g) or is_masc_fem_sg(g) then
local head = data.heads[1]
if head then
head = rsub(ar.reorder_shadda(remove_links(head.term)), ar.UNUOPT .. "$", "")
local ends_with_tam = rfind(head, "^[^ ]*" .. ar.TAM .. "$") or
rfind(head, "^[^ ]*" .. ar.TAM .. " ")
if (is_masc_sg(g) or is_masc_fem_sg(g)) and ends_with_tam then
insert(data.categories, "ศัพท์เพศชาย" .. langname .. "ที่ลงท้ายด้วยเพศหญิง")
elseif (is_fem_sg(g) or is_masc_fem_sg(g)) and not ends_with_tam and
not rfind(head, "[" .. ar.ALIF .. ar.AMAQ .. "]$") and
not rfind(head, ar.ALIF .. ar.HAMZA .. "$") then
insert(data.categories, "ศัพท์เพศหญิง" .. langname .. "ที่ไม่ลงท้ายด้วยเพศหญิง")
end
end
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection handlers --
-----------------------------------------------------------------------------------------
-- Add list parameters to `params` (a structure as passed to [[Module:parameters]]) for a parameter named `argpref`.
-- If `argpref` is "*", add the nominal inflection parameters for construct state, definite state, etc. Related
-- transliteration and gender parameters are no longer supported in favor of inline modifiers, and error messages are
-- output if these parameters are used.
local function add_infl_params(params, argpref)
params[argpref] = {list = true, disallow_holes = true}
params[argpref .. "tr"] = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. argpref .. "="}
params[argpref .. "g"] = {replaced_by = false, instead = "use <g:...> inline modifier on |" .. argpref .. "="}
end
--[=[
Fetch a list of inflections from the arguments in `args` based on argument `field` (e.g. "pl"). Label with `label`
(e.g. "plural"), which will appear in the headword. Insert into `data.inflections`, where `data` is the structure
passed to [[Module:headword]]. If `generate_default` is specified, it should be a function of two arguments
(`data`, `args`), which should generate the default value if no values are specified or if "+" is explicitly given.
If `generate_default` isn't specified and the user gave no values, no inflection will be inserted.
]=]
local function handle_infl(data, args, spec)
local newinfls = parse_inflection(data, args, spec.field, false)
if not newinfls[1] and spec.default_when_not_explicit and spec.default_when_not_explicit(data, args) then
newinfls = {{term = "+"}}
end
if spec.handle then
spec.handle(data, args, newinfls)
end
local default_specs = spec.allowed_defspecs
if not default_specs then
default_specs = spec.generate_default and {["+"] = true} or {}
end
local saw_defspec = false
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] or newinfl.term == "~" then
saw_defspec = true
break
end
end
if saw_defspec then
local newnewinfls = {}
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] then
if newinfl.tr then
error("Can't specify translit for default value '" .. newinfl.term .. "'")
end
local definfls = spec.generate_default(data, args, newinfl.term)
for _, definfl in ipairs(definfls) do
m_headword_utilities.combine_termobj_qualifiers_labels(definfl, newinfl)
insert(newnewinfls, definfl)
end
elseif newinfl.term == "~" then
if newinfl.tr then
error("Can't specify translit for head-requesting value '~'")
end
for _, headobj in ipairs(data.heads) do
headobj = m_table.shallowCopy(headobj)
m_headword_utilities.combine_termobj_qualifiers_labels(headobj, newinfl)
insert(newnewinfls, headobj)
end
else
insert(newnewinfls, newinfl)
end
end
newinfls = newnewinfls
end
if newinfls[1] then
if newinfls[1].term == "--" then
if newinfls[2] then
error("Can't specify more than one term if first term is '--', meaning \"don't insert anything\"")
end
else
insert_inflection(data, newinfls, spec.label, nil, spec.defgender, spec.field, spec.no_label,
spec.usually_no_label)
end
end
end
local function add_infl_list_params(params, infl_list)
for _, infl in ipairs(infl_list) do
add_infl_params(params, infl.field)
end
end
local function handle_infl_list_args(data, args, infl_list)
for _, infl in ipairs(infl_list) do
handle_infl(data, args, infl)
end
end
-----------------------------------------------------------------------------------------
-- Default ending generators --
-----------------------------------------------------------------------------------------
local function make_conditional_default(specs)
return function(data, args)
local heads = data.heads
if not heads[1] then
heads = {{term = data.pagename}}
end
local newobjs = {}
for _, headobj in ipairs(heads) do
local term = ar.reorder_shadda(headobj.term)
local tr = headobj.tr
local matched = false
for _, spec in ipairs(specs) do
local from, fromtr, to, totr = unpack(spec)
if from:find("^%^") then
pref = rmatch(term, from .. "$")
else
pref = rmatch(term, "^(.*)" .. from .. "$")
end
if pref then
term = pref .. to
tr = replace_tr_ending(tr, fromtr, totr)
matched = true
headobj = m_table.shallowCopy(headobj)
headobj.term = ar.undo_reorder_shadda(term)
headobj.tr = tr
insert(newobjs, headobj)
break
end
end
if not matched then
error(("Internal error: No matching spec: head=%s"):format(dump(headobj)))
end
end
return newobjs
end
end
local default_feminine = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AAH, "āh"},
{ar.AN .. ar.ALIF, "an", ar.AAH, "āh"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAH, "iya"},
{ar.IN, "in", ar.IYAH, "iya"},
{"", "", ar.AH, "a"},
}
local default_masculine = make_conditional_default {
-- tall alif substitutes for alif maqṣūra after a yāʔ
{ar.Y .. ar.AAH, "āh", ar.AN .. ar.ALIF, "an"},
{ar.AAH, "āh", ar.AN .. ar.AMAQ, "an"},
-- handle the common case of final-weak feminine active participle with preceding hamza;
-- the hamza-on-yāʔ always converts back to hamza on the line when preceded by ā (alif) but
-- may not otherwise, so we just leave it alone in that case
{ar.ALIF .. ar.HAMZA_ON_YA .. ar.IYAH, "iya", ar.HAMZA .. ar.IN, "in"},
{ar.IYAH, "iya", ar.IN, "in"},
{ar.AH, "a", "", ""},
{"", "", "", ""},
}
local default_masculine_plural = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AWN, "awn"},
{ar.AN .. ar.ALIF, "an", ar.AWN, "awn"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_WAW .. ar.UUN, "ūn"},
{ar.IN, "in", ar.UUN, "ūn"},
{"", "", ar.UUN, "ūn"},
}
local default_feminine_plural = make_conditional_default {
-- صَلَاة pl. صَلَوَات and أَدَاة pl. أَدَوَات and similar; but نَوَاة and وَفَاة with a و in them become نَوَيَات and وَفَيَات;
-- and longer terms like مُبَارَاة and كُمَّثْرَاة invariably form their plural in -يَات.
{"^([^و]" .. ar.A .. "[^و])" .. ar.AAH, "āh", ar.A .. ar.W .. ar.AAT, "awāt"},
{ar.AAH, "āh", ar.AYAAT, "ayāt"},
{ar.AN .. ar.AMAQ, "an", ar.AYAAT, "ayāt"},
{ar.AN .. ar.ALIF, "an", ar.AYAAT, "ayāt"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAT, "iyāt"},
{ar.IN, "in", ar.IYAAT, "iyāt"},
{ar.AH, "a", ar.AAT, "āt"},
{"", "", ar.AAT, "āt"},
}
local default_masculine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AYAAN, "ayān"},
{ar.AN .. ar.ALIF, "an", ar.AYAAN, "ayān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAN, "iyān"},
{ar.IN, "in", ar.IYAAN, "iyān"},
{"", "", ar.AAN, "ān"},
}
local default_feminine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AATAAN, "ātān"},
{ar.AN .. ar.ALIF, "an", ar.AATAAN, "ātān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IY .. ar.ATAAN, "iyatān"},
{ar.IN, "in", ar.IY .. ar.ATAAN, "iyatān"},
{"", "", ar.ATAAN, "atān"},
}
-- Return whether `term` is a nisba noun or adjective, ending in -iyy or -iyyah. `nisba_val` is the value of
-- args.nisba; if non-nil, it overrides any auto-determination based on the shape of the term.
local function term_is_nisba(term, nisba_val)
if nisba_val ~= nil then
return nisba_val
end
term = ar.reorder_shadda(term) -- necessary to avoid issues with e.g. أُورُوبِّيّ.
local pref = rmatch(term, "^(.*)" .. ar.IYY .. ar.UN .. "?$")
if not pref then
pref = rmatch(term, "^(.*)" .. ar.IYYAH .. ar.UN .. "?$")
end
-- Avoid false positives for words like قَوِيّ "strong" and صَبِيّ "boy". There may be other false positives
-- but this should catch most of them and will avoid very many false negatives.
return pref and not rfind(pref, "^[^ا]" .. ar.A .. ".$")
end
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function is_defaulting_adjective(data, args)
return data.orig_pos_category == "คำคุณศัพท์defaulting"
end
local adj_field_elative = {field = "el", label = "<<elative>>"}
local adj_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
{field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = is_defaulting_adjective},
{field = "d", label = "เพศชายทวิพจน์", generate_default = default_masculine_dual},
{field = "fd", label = "เพศหญิงทวิพจน์", generate_default = default_feminine_dual},
{field = "cpl", label = "เพศรวมพหูพจน์"},
{field = "pl", label = "เพศชายพหูพจน์", generate_default = default_masculine_plural,
default_when_not_explicit = is_defaulting_adjective},
{field = "fpl", label = "เพศหญิงพหูพจน์", generate_default = default_feminine_plural,
default_when_not_explicit = is_defaulting_adjective},
}
local function get_adj_params()
local params = {}
add_infl_list_params(params, adj_inflections)
add_infl_params(params, "el")
params.nisba = boolean_param
return params
end
local function handle_adj_args(data, args)
handle_infl_list_args(data, args, adj_inflections)
handle_infl(data, args, adj_field_elative)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำคุณศัพท์สัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำคุณศัพท์"] = {
params = get_adj_params,
func = handle_adj_args,
}
pos_functions["คำคุณศัพท์defaulting"] = {
params = get_adj_params,
func = function(data, args)
data.pos_category = "คำคุณศัพท์"
handle_adj_args(data, args)
end,
}
-----------------------------------------------------------------------------------------
-- Nouns, etc. --
-----------------------------------------------------------------------------------------
local function get_masc_or_feminine_gender(data, default_type)
local saw_m, saw_f, saw_mf
for _, gender in ipairs(data.genders) do
if is_masc_sg(gender.spec) then
saw_m = true
elseif is_fem_sg(gender.spec) then
saw_f = true
elseif is_masc_fem_sg(gender.spec) then
saw_mf = true
end
end
if saw_mf or saw_m and saw_f then
error("Can't generate default for " .. default_type .. " when gender is both masculine and feminine")
elseif saw_m then
return "m"
elseif saw_f then
return "f"
else
error("Can't generate default for " .. default_type .. " when gender is not specified as " ..
"masculine or feminine singular")
end
end
local function is_defaulting_noun(data, args)
return data.orig_pos_category == "คำนามdefaulting"
end
local noun_field_dual = {
field = "d", label = "ทวิพจน์",
generate_default = function(data, args)
local gender = get_masc_or_feminine_gender(data, "noun dual")
if gender == "m" then
return default_masculine_dual(data, args)
else
return default_feminine_dual(data, args)
end
end,
}
local noun_field_plural = {
field = "pl", label = "พหูพจน์",
generate_default = function(data, args, defspec)
local gender = get_masc_or_feminine_gender(data, "noun plural")
if gender == "m" then
if defspec == "+f" then
return default_feminine_plural(data, args)
else
return default_masculine_plural(data, args)
end
elseif defspec == "+f" then
error("Can't specify '+f' with feminine gender; just use '+'")
else
return default_feminine_plural(data, args)
end
end,
-- Handle the case where pl=-, indicating an uncountable noun.
handle = function(data, args, terms)
if terms[1] and terms[1] == "-" then
insert(data.categories, "คำนามนับไม่ได้" .. langname)
if args.pauc and args.pauc[1] then
error("Can't specify paucals when pl=-")
end
end
end,
allowed_defspecs = {["+"] = true, ["+f"] = true},
default_when_not_explicit = is_defaulting_noun,
no_label = "<<นับไม่ได้>>",
usually_no_label = "โดยปกติ<<นับไม่ได้>>",
}
local noun_field_paucal = {
field = "pauc", label = "<<paucal>>", generate_default = default_feminine_plural,
}
local noun_field_feminine = {
field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-masculine noun feminine")
return gender == "m"
end,
}
local noun_field_masculine = {
field = "m", label = "เพศชาย", generate_default = default_masculine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-feminine noun masculine")
return gender == "f"
end,
}
local noun_basic_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local noun_shared_inflections = {
noun_field_dual,
noun_field_plural,
}
local noun_extra_inflections = {
noun_field_paucal,
noun_field_feminine,
noun_field_masculine,
}
local function get_noun_params()
local params = {}
add_gender_params(params)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_list_params(params, noun_extra_inflections)
params.nisba = boolean_param
return params
end
local function handle_noun_args(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl_list_args(data, args, noun_extra_inflections)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำนามสัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
pos_functions["คำนามdefaulting"] = {
params = get_noun_params,
func = function(data, args)
data.pos_category = "คำนาม"
handle_noun_args(data, args)
end,
}
local noun_field_singulative = {field = "sing", label = "<<คำเอกนาม>>", defgender = "f", generate_default = default_feminine}
local noun_field_collective = {field = "coll", label = "<<คำสมุหนาม>>", defgender = "m", generate_default = default_masculine}
local function handle_sing_coll_noun_infls(data, args, otherinfl, otherlabel, othergender)
-- Handle sing= (corresponding singulative noun) or coll= (corresponding collective noun) and their gender
handle_infl(data, args, otherinfl, otherlabel, nil, othergender)
handle_infl_list_args(data, args, sing_coll_noun_inflections)
end
local function get_singulative_collective_noun_params(defgender, otherinfl)
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_params(params, otherinfl)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "pauc")
return params
end
pos_functions["คำสมุหนาม"] = {
params = function() return get_singulative_collective_noun_params("m", "sing") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำสมุหนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำสมุหนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_singulative)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
pos_functions["คำเอกนาม"] = {
params = function() return get_singulative_collective_noun_params("f", "coll") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำเอกนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำเอกนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_collective)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
-- FIXME: Do numerals really behave almost as nouns? They vary by masc/fem.
pos_functions["เลข"] = {
params = get_noun_params,
func = function(data, args)
insert(data.categories, "เลขเชิงการนับ" .. langname)
handle_noun_args(data, args)
end
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
local function get_pronoun_params()
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "f")
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params,
func = function(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_feminine)
end
}
-----------------------------------------------------------------------------------------
-- Non-lemma forms --
-----------------------------------------------------------------------------------------
local valid_forms = list_to_set(
{ "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII",
"XIII", "XIV", "XV", "Iq", "IIq", "IIIq", "IVq" })
-- FIXME: Partly duplicated in [[Module:ar-inflections]].
local function handle_conj_form(data, args)
local form = args[2]
if form then
if not valid_forms[form] then
error("Invalid verb conjugation form " .. form)
end
insert(data.inflections, { label = "[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป " .. form .. "|รูป " .. form .. "]]" })
end
end
pos_functions["รูปกริยา"] = {
params = function()
return {
[2] = {},
}
end,
func = function(data, args)
handle_conj_form(data, args)
end
}
local function get_participle_params()
local params = get_adj_params()
params[2] = {}
return params
end
pos_functions["รูปกริยาขยายกรรตุวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรตุวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
pos_functions["รูปกริยาขยายกรรมวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรมวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
head_is_not_1 = true,
params = function() return {
[1] = {},
-- Comma-separated lists with possible inline modifiers
["past"] = {},
["past1s"] = {},
["nonpast"] = {},
["vn"] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
} end,
func = function(data, args)
local ar_verb = require(ar_verb_module)
local alternant_multiword_spec =
args[1] ~= "-" and ar_verb.do_generate_forms(args, "ar-verb", data.pagename) or nil
local function do_slot(slots_to_check, override, label, slot_is_headword)
-- Do this even with an override so we can return the correct filled slot.
local slot, slotval
if alternant_multiword_spec then
for _, potential_slot in ipairs(slots_to_check) do
slotval = alternant_multiword_spec.forms[potential_slot]
if slotval then
slot = potential_slot
break
end
end
end
local function get_slot_values()
local terms = {}
for _, form in ipairs(slotval) do
local term = {
term = form.form,
id = form.id,
genders = form.genders,
pos = form.pos,
lit = form.lit,
}
term.tr = form.translit
if form.footnotes then
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
term.q = quals
term.refs = refs
end
insert(terms, term)
end
return terms
end
if override then
local override_param_mods = {
alt = {},
t = {
-- [[Module:headword]] expects the gloss in "gloss".
item_dest = "gloss",
},
gloss = {},
g = {
-- [[Module:headword]] expects the genders in "genders".
item_dest = "genders",
type = "genders",
},
pos = {},
lit = {},
id = {},
-- Qualifiers and labels
q = {
type = "qualifier",
},
qq = {
type = "qualifier",
},
l = {
type = "labels",
},
ll = {
type = "labels",
},
ref = {
-- [[Module:headword]] expects the references in "refs".
item_dest = "refs",
type = "references",
},
}
local function generate_obj(formval, parse_err)
if formval == "+" then
return {term = "+", underlying_terms = get_slot_values()}
end
local val, uncertain = formval:match("^(.*)(%?)$")
val = val or formval
uncertain = not not uncertain
local ar, translit = val:match("^(.*)//(.*)$")
if not ar then
ar = formval
end
local retval = {term = ar, uncertain = uncertain}
retval.tr = translit
end
local terms
if override:find("<") then
terms = require(parse_utilities_module).parse_inline_modifiers(override, {
paramname = paramname,
param_mods = override_param_mods,
generate_obj = generate_obj,
splitchar = "[,،]",
escape_fun = escape_comma_whitespace,
unescape_fun = unescape_comma_whitespace,
})
else
terms = split_on_comma(override)
for i, split in ipairs(terms) do
terms[i] = generate_obj(split)
end
end
-- See if + was supplied and we have to potentially flatten multiple default terms and harmonize
-- default properties with override properties.
local saw_underlying_terms = false
for _, term in ipairs(terms) do
if term.underlying_terms then
saw_underlying_terms = true
break
end
end
if saw_underlying_terms then
-- Flatten any default terms, copying the corresponding override properties over the default
-- properties. Non-default terms get inserted directly.
local flattened = {}
for _, term in ipairs(terms) do
if term.underlying_terms then
for _, underlying in ipairs(term.underlying_terms) do
for k, v in pairs(term) do
if k ~= "term" and k ~= "underlying_terms" then
if k == "uncertain" then
underlying.uncertain = underlying.uncertain or v
elseif type(v) ~= "table" or v[1] then
-- Don't copy empty lists (which are the default) over possibly non-empty
-- lists.
underlying[k] = v
end
end
end
insert(flattened, underlying)
end
else
insert(flattened, term)
end
end
terms = flattened
end
if not slot_is_headword then
terms.label = label
end
return terms, slot
elseif not alternant_multiword_spec then
return nil, slot
else
if not slotval then
if slot_is_headword then
-- FIXME, put "uncertain" as qualifier? Does this ever happen?
return nil, slot
elseif alternant_multiword_spec.slot_uncertain[slot] then
return {label = label .. " uncertain"}, slot
elseif alternant_multiword_spec.slot_explicitly_missing[slot] then
return {label = "no " .. label}, slot
else
-- just say nothing about this slot
return nil, slot
end
end
local terms = get_slot_values()
if not slot_is_headword then
terms.label = label
end
return terms, slot
end
end
local gloss_parts = {}
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
insert(gloss_parts, "[[Appendix:Arabic verbs#Form " .. vform .. "|" .. vform .. "]]")
end
if gloss_parts[1] then
data.gloss = concat(gloss_parts, ", ")
end
if data.heads[1] and args.past then
error("Can't specify both head= and past= to {{ar-verb}}; prefer past=")
end
if not alternant_multiword_spec.has_active then
insert(data.inflections, {label = "passive-only"})
end
-- Do this always so `past_slot` is correctly filled.
local past, past_slot = do_slot(ar_verb.potential_lemma_slots, args.past, "-", "slot is headword")
if data.heads[1] then
-- user specified head=; don't override with past= or slot 'past_3sm' etc.
else
if past then
data.heads = past
end
end
local should_do_past1s = not not args.past1s
if not should_do_past1s then
local is_form_I = false
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
if vform == "I" then
is_form_I = true
break
end
end
if is_form_I then
require(inflection_utilities_module).map_word_specs(alternant_multiword_spec, function(base)
if base.verb_form == "I" then
for _, vowel_spec in ipairs(base.conj_vowels) do
-- For form-I geminate verbs, the final vowel of the past is elided in the citation form.
-- We want to display it for all cases other than active a~u and a~i (the most common
-- cases).
if vowel_spec.weakness == "geminate" then
if ar_verb.is_passive_only(base.passive) then
should_do_past1s = true
break
end
local past_vowel = ar_verb.rget(vowel_spec.past)
local nonpast_vowel = ar_verb.rget(vowel_spec.nonpast)
if not (past_vowel == ar.A and (nonpast_vowel == ar.U or nonpast_vowel == ar.I)) then
should_do_past1s = true
break
end
end
end
-- FIXME, provide way of breaking early from map_word_specs().
end
end)
end
end
local past1s
if should_do_past1s then
past1s, _ = do_slot({"past_1s", "past_pass_1s"}, args.past1s, "บุรุษที่หนึ่งเอกพจน์อดีตกาล")
if past1s then
insert(data.inflections, past1s)
end
end
local nonpast_slots
if not past_slot or past_slot:find("^past_") then
nonpast_slots = {"ind_3ms", "ind_pass_3ms", "imp_2ms"}
else
nonpast_slots = {}
end
local nonpast, _ = do_slot(nonpast_slots, args.nonpast, "ไม่ใช่อดีตกาล")
if nonpast then
insert(data.inflections, nonpast)
end
local vn, _ = do_slot({"vn"}, args.vn, "คำกริยานาม")
if vn then
insert(data.inflections, vn)
end
-- FIXME: Should we insert categories? Conjugation also does it and is more likely to be accurate.
--for _, cat in ipairs(alternant_multiword_spec.categories) do
-- insert(data.categories, cat)
--end
--[=[
-- FIXME: Review this to see if we need to port it.
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:pt-verb]] in place of the user-specified or auto-generated head. This was copied from
-- [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have accents marked on
-- the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't do this if the
-- user gave multiple heads or gave a head with a multiword-linked verbal expression such as Italian
-- '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Portuguese equivalent).
if not data.user_specified_heads[1] or (
not data.user_specified_heads[2] and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
]=]
end
}
-----------------------------------------------------------------------------------------
-- Generic parts of speech --
-----------------------------------------------------------------------------------------
pos_functions.head_with_gender = {
params = function()
return {
[3] = {type = "genders"},
}
end,
func = function(data, args)
handle_gender(data, args, "nonlemma", 3)
end,
}
return export
3uo2x8u0wq876id0qzflro6ici3skhc
5723270
5723269
2026-05-20T04:45:53Z
OctraBot
3198
5723270
Scribunto
text/plain
-- Author: primarily Benwing2; some work by Fenakhay, Erutuon; early version by Rua
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local ar_translit = require("Module:ar-translit")
local ar_verb_module = "Module:ar-verb"
local ar_utilities_module = "Module:ar-utilities"
local ar = require(ar_utilities_module)
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local links_module = "Module:links"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local require_when_needed = require("Module:utilities/require when needed")
local remove_links = require_when_needed(links_module, "remove_links")
local m_table = require("Module:table")
local m_str_utils = require("Module:string utilities")
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local boolean_param = {type = "boolean"}
local list_to_set = m_table.listToSet
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local rsubn = m_str_utils.gsub
local u = m_str_utils.char
local rsplit = m_str_utils.split
local insert = table.insert
local concat = table.concat
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local langcode = "ar"
local lang = require("Module:languages").getByCode(langcode)
local langname = lang:getCategoryName() --th
local TEMPCOMMA = u(0xFFF0)
local TEMPARCOMMA = u(0xFFF1)
local misc_pos_with_gender = list_to_set {
"ปัจจับ",
"รูปคุณศัพท์",
"รูปนาม",
"รูปวิสามานยนาม",
"รูปสรรพนาม",
"รูปตัวกำหนด",
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local dump = mw.dumpObject
-- version of mw.ustring.gsub() 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(val)
if val == "" then return nil else return val end
end
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(run)
local escaped = false
if run:find("\\,") then
run = run:gsub("\\,", "\\" .. TEMPCOMMA)
escaped = true
end
if run:find("\\،") then
run = run:gsub("\\،", "\\" .. TEMPARCOMMA)
escaped = true
end
if run:find(",%s") then
run = run:gsub(",(%s)", TEMPCOMMA .. "%1")
escaped = true
end
if run:find("،%s") then
run = run:gsub("،(%s)", TEMPARCOMMA .. "%1")
escaped = true
end
return run, escaped
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(run)
return (run:gsub(TEMPCOMMA, ","):gsub(TEMPARCOMMA, "،"))
end
-- Split an argument on comma or Arabic comma, but not either type of comma followed by whitespace.
local function split_on_comma(val)
if rfind(val, "[,،]%s") or val:find("\\") then
return export.split_escaping(val, "[,،]", false, escape_comma_whitespace, unescape_comma_whitespace)
else
return rsplit(val, "[,،]")
end
end
local function replace_tr_ending(tr, from, to)
if not tr then
return nil
end
local pref = tr:match("^(.*)" .. from .. "$")
if not pref then
error(("Translit '%s' does not end in -%s, as expected"):format(tr, from))
end
return pref .. to
end
-----------------------------------------------------------------------------------------
-- Tracking functions --
-----------------------------------------------------------------------------------------
local trackfn = require("Module:debug/track")
local function track(page)
trackfn(langcode .. "-headword/" .. page)
return true
end
--[==[
Examples of what you can find by looking at what links to the given
pages:
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized]]
all unvocalized pages
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/pl]]
all unvocalized pages where the plural is unvocalized,
whether specified using pl=, pl2=, etc.
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head]]
all unvocalized pages where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/nouns]]
all nouns excluding proper nouns, collective nouns,
singulative nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/proper]]
nouns all proper nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/not]]
proper nouns all words that are not proper nouns
where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/adjectives]]
all adjectives where any parameter is unvocalized;
currently only works for heads,
so equivalent to .../unvocalized/head/adjectives
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-empty-head]]
all pages with an empty head
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit]]
all unvocalized pages with manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit/head/nouns]]
all nouns where the head is unvocalized but has manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-no-translit]]
all unvocalized pages without manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab]]
all pages with any parameter containing i3rab
of either -un, -u, -a or -i
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un]]
all pages with any parameter containing an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un/pl]]
all pages where a form specified using pl=, pl2=, etc.
contains an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-u/head]]
all pages with a head containing an -u i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab/head/proper]]
nouns (all proper nouns with a head containing i3rab
of either -un, -u, -a or -i)
In general, the format is one of the following:
Wiktionary:Tracking/ar-headword/FIRSTLEVEL
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/POS
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME/POS
FIRSTLEVEL can be one of "unvocalized", "unvocalized-empty-head" or its
opposite "unvocalized-specified", "unvocalized-manual-translit" or its
opposite "unvocalized-no-translit", "i3rab", "i3rab-un", "i3rab-u",
"i3rab-a", or "i3rab-i".
ARGNAME is either "head" or an argument such as "pl", "f", "cons", etc.
This automatically includes arguments specified as head2=, pl3=, etc.
POS is a part of speech, lowercase and singular, e.g. "noun",
"adjective", "proper noun", "collective noun", etc. or
"not proper noun", which includes all parts of speech but proper nouns.
]==]
local function track_form(argname, form, translit, pos)
form = ar.reorder_shadda(remove_links(form))
function dotrack(page)
track(page)
track(page .. "/" .. argname)
if pos then
track(page .. "/" .. pos)
track(page .. "/" .. argname .. "/" .. pos)
if pos ~= "คำวิสามานยนาม" then
track(page .. "/not proper noun")
track(page .. "/" .. argname .. "/not proper noun")
end
end
end
function track_i3rab(arabic, tr)
if rfind(form, arabic .. "$") then
dotrack("i3rab")
dotrack("i3rab-" .. tr)
end
end
track_i3rab(ar.UN, "un")
track_i3rab(ar.U, "u")
track_i3rab(ar.A, "a")
track_i3rab(ar.I, "i")
if form == "" or not (lang:transliterate(form)) then
dotrack("unvocalized")
if form == "" then
dotrack("unvocalized-empty-head")
else
dotrack("unvocalized-specified")
end
if translit then
dotrack("unvocalized-manual-translit")
else
dotrack("unvocalized-no-translit")
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection-parsing functions --
-----------------------------------------------------------------------------------------
-- Construct the default construct state or informal form of a term in lemma format. Usually this is the same as the
-- lemma but is different for final-weak nouns and adjectives ending in -n in their lemma. NOTE: Input must be
-- shadda-reordered for this to work properly.
local function default_construct_state_or_informal(term, tr)
local pref = term:match("^(.*)" .. ar.HAMZA .. ar.IN .."$")
-- Hamza on the line with -in changes to hamza-on-yā with -ī.
if pref then
return pref .. ar.HAMZA_ON_YA .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Otherwise just change -in to -ī.
pref = term:match("^(.*)" .. ar.IN .. "$")
if pref then
return pref .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Change -an with alif maqṣūra to -ā with alif maqṣūra.
pref = term:match("^(.*)" .. ar.AN .. ar.AMAQ .. "$")
if pref then
return pref .. ar.AAMAQ, replace_tr_ending(tr, "an", "ā")
end
-- Change -an with tall alif (e.g. عَصًا) to -ā with tall alif.
pref = term:match("^(.*)" .. ar.AN .. ar.ALIF .. "$")
if pref then
return pref .. ar.AA, replace_tr_ending(tr, "an", "ā")
end
return term, tr
end
local function generate_construct_state_or_informal_default(data, args)
local heads = data.heads
local consobjs = {}
local different_cons = false
for _, headobj in ipairs(data.heads) do
local consterm, constr = default_construct_state_or_informal(headobj.term, headobj.tr)
different_cons = different_cons or consterm ~= headobj.term or constr ~= headobj.tr
local consobj = m_table.shallowCopy(headobj)
consobj.term = consterm
consobj.tr = constr
insert(consobjs, consobj)
end
if different_cons then
return consobjs
else
return {}
end
end
local noun_field_cons = {
field = "cons", label = "<<construct state>>", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local noun_field_inf = {field = "inf", label = "informal"}
local noun_field_obl = {field = "obl", label = "<<oblique>>"}
local noun_field_def = {field = "def", label = "<<definite>> state"}
local noun_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local adj_field_inf = {
field = "inf", label = "informal", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local adj_field_obl = noun_field_obl
local adj_field_def = noun_field_def
local adjective_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
}
local function has_construct_state(data)
return data.pos_category ~= "adjectives"
end
local function parse_nominal_inflection(paramname, val, parse_err)
return m_headword_utilities.parse_term_with_modifiers {
val = val,
paramname = paramname,
splitchar = ",",
include_mods = {"tr", "g"},
}
end
local function make_nominal_inflection_param_mod_spec(paramname)
return {convert = function(val, parse_err)
return parse_nominal_inflection(paramname, val, parse_err)
end}
end
-- Parse an inflection. The raw arguments come from `args[field]`, which is parsed for inline modifiers. Multiple
-- comma-separated values are allowed.
local function parse_inflection(data, args, field, is_head)
local argfield = field
local argpref = field
if type(argfield) == "table" then
argpref = argfield[2]
argfield = argfield[1]
end
local include_mods
if is_head then
include_mods = {"tr"}
else
include_mods = {"tr", "g"}
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert(include_mods, {spec.field, make_nominal_inflection_param_mod_spec(argpref .. "." .. spec.field)})
end
end
if is_head then
local retval
if args[argfield] then
retval = m_headword_utilities.parse_term_with_modifiers {
val = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
return retval or {}
else
return m_headword_utilities.parse_term_list_with_modifiers {
forms = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
end
local function insert_inflection(data, terms, label, accel, defgender, track_field, no_label, usually_no_label)
local track_pos = m_en_utilities.singularize(data.pos_category)
for _, termobj in ipairs(terms) do
-- If the user supplied a construct state or informal form for the term with a value of "+", substitute the
-- default value for the term. If the user supplied a value of "--", they want no value displayed. Otherwise,
-- if the user didn't supply any value, we check to see if the default construct state or informal form is
-- different from the lemma and display it if so; this applies particularly to terms in '-in' and '-an', where
-- the default construct state or informal form is almost always correct.
local field = has_construct_state(data) and "cons" or "inf"
if not termobj[field] then
local defcons, defconstr = default_construct_state_or_informal(termobj.term, termobj.tr)
if termobj.term ~= defcons or termobj.tr ~= defconstr then
-- We don't want to copy qualifiers, labels, etc. from the term object because we're a subinflection of
-- the term object.
termobj[field] = {{term = defcons, tr = defconstr}}
end
elseif termobj[field][1].term == "--" then
if termobj[field][2] then
error("Can't specify more than one value for <" .. field .. ":...> if first value is '--', meaning \"don't insert anything\"")
end
termobj[field] = nil
else
for i, consobj in ipairs(termobj[field]) do
if consobj.term == "+" then
if consobj.tr then
error("Can't specify translit for default value '+'")
end
consobj.term, consobj.tr = default_construct_state_or_informal(termobj.term, termobj.tr)
elseif consobj.term == "~" then
if consobj.tr then
error("Can't specify translit for term-requesting value '~'")
end
consobj.term, consobj.tr = termobj.term, termobj.tr
end
end
end
if defgender and not termobj.genders then
termobj.genders = {{spec = defgender}}
end
local function insert_nested_inflection(field, label)
if termobj[field] then
m_headword_utilities.insert_inflection {
headdata = data,
inflobj = termobj,
terms = termobj[field],
label = label
}
end
end
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert_nested_inflection(spec.field, spec.label)
end
track_form(track_field, termobj.term, termobj.tr, track_pos)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
no_label = no_label,
usually_no_label = usually_no_label,
}
end
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "แม่แบบ:" .. langcode .. "-head" and "คำอุทาน" or
error("Part of speech must be specified in 1=")
poscat = require(headword_module).canonicalize_pos(poscat)
end
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local indexing_poscat = pos_in_1 and (misc_pos_with_gender[poscat_th] and "head_with_gender" or "head") or poscat_th
local params = {
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["id"] = true,
["json"] = boolean_param,
["pagename"] = {}, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local head_is_head = pos_functions[indexing_poscat] and pos_functions[indexing_poscat].head_is_not_1
local headfield = head_is_head and "head" or pos_in_1 and 2 or 1
params[headfield] = head_is_head and true or {default = "+"}
params.head2 = {replaced_by = false, instead = "use multiple comma-separated values in |" .. headfield .. "="}
local tr_replaced_by = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. headfield .. "="}
params.tr = tr_replaced_by
params.tr2 = tr_replaced_by
if pos_functions[indexing_poscat] then
for key, val in pairs(pos_functions[indexing_poscat].params()) do
params[key] = val
end
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local data = {
lang = lang,
pos_category = poscat_th,
orig_pos_category = poscat_th,
categories = {},
heads = {},
genders = {},
inflections = {enable_auto_translit = true},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
-- We expect a head always so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
}
data.heads = parse_inflection(data, args, headfield, "is_head")
for _, headobj in ipairs(data.heads) do
if headobj.term == "+" then
headobj.term = pagename
end
end
data.is_suffix = false
if args.suffix or (
not args.nosuffix and pagename:find("^%-") and poscat ~= "ปัจจัย" and poscat ~= "รูปปัจจัย"
) then
data.is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[m_en_utilities.singularize(poscat)]] poscat_th
insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_functions[indexing_poscat] then
pos_functions[indexing_poscat].func(data, args)
end
-- Do this after calling pos_functions[poscat].func() as it may modify data.heads (as verbs do).
local irreg_translit = false
for _, head in ipairs(data.heads) do
if ar_translit.irregular_translit(head.term, head.tr) then
irreg_translit = true
break
end
end
if irreg_translit then
insert(data.categories, "ศัพท์" .. langname .. "ที่มีการออกเสียงไม่ปรกติ")
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
-----------------------------------------------------------------------------------------
-- Gender handling --
-----------------------------------------------------------------------------------------
local valid_bare_genders = {false, "m", "f", "mf", "mfbysense", "mfequiv"}
local valid_bare_numbers = {false, "d", "p"}
local valid_bare_animacies = {false, "pr", "np"}
local valid_genders = {}
for _, gender in ipairs(valid_bare_genders) do
for _, number in ipairs(valid_bare_numbers) do
for _, animacy in ipairs(valid_bare_animacies) do
local parts = {}
local function ins_part(part)
if part then
insert(parts, part)
end
end
ins_part(gender)
ins_part(number)
ins_part(animacy)
local full_gender = concat(parts, "-")
valid_genders[full_gender == "" and "?" or full_gender] = true
end
end
end
local function is_masc_sg(g)
return g == "m" or g == "m-pr" or g == "m-np"
end
local function is_fem_sg(g)
return g == "f" or g == "f-pr" or g == "f-np"
end
local function is_masc_fem_sg(g)
g = g:gsub("%-pr", ""):gsub("%-np", "")
return g == "mf" or g == "mfequiv" or g == "mfbysense"
end
local function add_gender_params(params, default)
params[2] = {type = "genders", default = default or "?", template_default = "m"}
params["g2"] = {replaced_by = false, instead = "use comma-separated values in |g="}
end
-- Handle gender in params 2=, inserting into `data.genders`. Also, if a lemma, insert categories into `data.categories`
-- if the gender is unexpected for the form of the noun. (Note: If there are multiple genders,
-- [[Module:gender and number]] will automatically insert 'Arabic POS with multiple genders'.)
local function handle_gender(data, args, nonlemma, field)
if not args[field or 2] then
return
end
for _, gspec in ipairs(args[field or 2]) do
if not valid_genders[gspec.spec] then
error("Unrecognized gender: " .. gspec.spec)
end
end
data.genders = args[field or 2]
if nonlemma then
return
end
for _, gspec in ipairs(data.genders) do
local g = gspec.spec
if is_masc_sg(g) or is_fem_sg(g) or is_masc_fem_sg(g) then
local head = data.heads[1]
if head then
head = rsub(ar.reorder_shadda(remove_links(head.term)), ar.UNUOPT .. "$", "")
local ends_with_tam = rfind(head, "^[^ ]*" .. ar.TAM .. "$") or
rfind(head, "^[^ ]*" .. ar.TAM .. " ")
if (is_masc_sg(g) or is_masc_fem_sg(g)) and ends_with_tam then
insert(data.categories, "ศัพท์เพศชาย" .. langname .. "ที่ลงท้ายด้วยเพศหญิง")
elseif (is_fem_sg(g) or is_masc_fem_sg(g)) and not ends_with_tam and
not rfind(head, "[" .. ar.ALIF .. ar.AMAQ .. "]$") and
not rfind(head, ar.ALIF .. ar.HAMZA .. "$") then
insert(data.categories, "ศัพท์เพศหญิง" .. langname .. "ที่ไม่ลงท้ายด้วยเพศหญิง")
end
end
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection handlers --
-----------------------------------------------------------------------------------------
-- Add list parameters to `params` (a structure as passed to [[Module:parameters]]) for a parameter named `argpref`.
-- If `argpref` is "*", add the nominal inflection parameters for construct state, definite state, etc. Related
-- transliteration and gender parameters are no longer supported in favor of inline modifiers, and error messages are
-- output if these parameters are used.
local function add_infl_params(params, argpref)
params[argpref] = {list = true, disallow_holes = true}
params[argpref .. "tr"] = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. argpref .. "="}
params[argpref .. "g"] = {replaced_by = false, instead = "use <g:...> inline modifier on |" .. argpref .. "="}
end
--[=[
Fetch a list of inflections from the arguments in `args` based on argument `field` (e.g. "pl"). Label with `label`
(e.g. "plural"), which will appear in the headword. Insert into `data.inflections`, where `data` is the structure
passed to [[Module:headword]]. If `generate_default` is specified, it should be a function of two arguments
(`data`, `args`), which should generate the default value if no values are specified or if "+" is explicitly given.
If `generate_default` isn't specified and the user gave no values, no inflection will be inserted.
]=]
local function handle_infl(data, args, spec)
local newinfls = parse_inflection(data, args, spec.field, false)
if not newinfls[1] and spec.default_when_not_explicit and spec.default_when_not_explicit(data, args) then
newinfls = {{term = "+"}}
end
if spec.handle then
spec.handle(data, args, newinfls)
end
local default_specs = spec.allowed_defspecs
if not default_specs then
default_specs = spec.generate_default and {["+"] = true} or {}
end
local saw_defspec = false
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] or newinfl.term == "~" then
saw_defspec = true
break
end
end
if saw_defspec then
local newnewinfls = {}
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] then
if newinfl.tr then
error("Can't specify translit for default value '" .. newinfl.term .. "'")
end
local definfls = spec.generate_default(data, args, newinfl.term)
for _, definfl in ipairs(definfls) do
m_headword_utilities.combine_termobj_qualifiers_labels(definfl, newinfl)
insert(newnewinfls, definfl)
end
elseif newinfl.term == "~" then
if newinfl.tr then
error("Can't specify translit for head-requesting value '~'")
end
for _, headobj in ipairs(data.heads) do
headobj = m_table.shallowCopy(headobj)
m_headword_utilities.combine_termobj_qualifiers_labels(headobj, newinfl)
insert(newnewinfls, headobj)
end
else
insert(newnewinfls, newinfl)
end
end
newinfls = newnewinfls
end
if newinfls[1] then
if newinfls[1].term == "--" then
if newinfls[2] then
error("Can't specify more than one term if first term is '--', meaning \"don't insert anything\"")
end
else
insert_inflection(data, newinfls, spec.label, nil, spec.defgender, spec.field, spec.no_label,
spec.usually_no_label)
end
end
end
local function add_infl_list_params(params, infl_list)
for _, infl in ipairs(infl_list) do
add_infl_params(params, infl.field)
end
end
local function handle_infl_list_args(data, args, infl_list)
for _, infl in ipairs(infl_list) do
handle_infl(data, args, infl)
end
end
-----------------------------------------------------------------------------------------
-- Default ending generators --
-----------------------------------------------------------------------------------------
local function make_conditional_default(specs)
return function(data, args)
local heads = data.heads
if not heads[1] then
heads = {{term = data.pagename}}
end
local newobjs = {}
for _, headobj in ipairs(heads) do
local term = ar.reorder_shadda(headobj.term)
local tr = headobj.tr
local matched = false
for _, spec in ipairs(specs) do
local from, fromtr, to, totr = unpack(spec)
if from:find("^%^") then
pref = rmatch(term, from .. "$")
else
pref = rmatch(term, "^(.*)" .. from .. "$")
end
if pref then
term = pref .. to
tr = replace_tr_ending(tr, fromtr, totr)
matched = true
headobj = m_table.shallowCopy(headobj)
headobj.term = ar.undo_reorder_shadda(term)
headobj.tr = tr
insert(newobjs, headobj)
break
end
end
if not matched then
error(("Internal error: No matching spec: head=%s"):format(dump(headobj)))
end
end
return newobjs
end
end
local default_feminine = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AAH, "āh"},
{ar.AN .. ar.ALIF, "an", ar.AAH, "āh"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAH, "iya"},
{ar.IN, "in", ar.IYAH, "iya"},
{"", "", ar.AH, "a"},
}
local default_masculine = make_conditional_default {
-- tall alif substitutes for alif maqṣūra after a yāʔ
{ar.Y .. ar.AAH, "āh", ar.AN .. ar.ALIF, "an"},
{ar.AAH, "āh", ar.AN .. ar.AMAQ, "an"},
-- handle the common case of final-weak feminine active participle with preceding hamza;
-- the hamza-on-yāʔ always converts back to hamza on the line when preceded by ā (alif) but
-- may not otherwise, so we just leave it alone in that case
{ar.ALIF .. ar.HAMZA_ON_YA .. ar.IYAH, "iya", ar.HAMZA .. ar.IN, "in"},
{ar.IYAH, "iya", ar.IN, "in"},
{ar.AH, "a", "", ""},
{"", "", "", ""},
}
local default_masculine_plural = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AWN, "awn"},
{ar.AN .. ar.ALIF, "an", ar.AWN, "awn"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_WAW .. ar.UUN, "ūn"},
{ar.IN, "in", ar.UUN, "ūn"},
{"", "", ar.UUN, "ūn"},
}
local default_feminine_plural = make_conditional_default {
-- صَلَاة pl. صَلَوَات and أَدَاة pl. أَدَوَات and similar; but نَوَاة and وَفَاة with a و in them become نَوَيَات and وَفَيَات;
-- and longer terms like مُبَارَاة and كُمَّثْرَاة invariably form their plural in -يَات.
{"^([^و]" .. ar.A .. "[^و])" .. ar.AAH, "āh", ar.A .. ar.W .. ar.AAT, "awāt"},
{ar.AAH, "āh", ar.AYAAT, "ayāt"},
{ar.AN .. ar.AMAQ, "an", ar.AYAAT, "ayāt"},
{ar.AN .. ar.ALIF, "an", ar.AYAAT, "ayāt"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAT, "iyāt"},
{ar.IN, "in", ar.IYAAT, "iyāt"},
{ar.AH, "a", ar.AAT, "āt"},
{"", "", ar.AAT, "āt"},
}
local default_masculine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AYAAN, "ayān"},
{ar.AN .. ar.ALIF, "an", ar.AYAAN, "ayān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAN, "iyān"},
{ar.IN, "in", ar.IYAAN, "iyān"},
{"", "", ar.AAN, "ān"},
}
local default_feminine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AATAAN, "ātān"},
{ar.AN .. ar.ALIF, "an", ar.AATAAN, "ātān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IY .. ar.ATAAN, "iyatān"},
{ar.IN, "in", ar.IY .. ar.ATAAN, "iyatān"},
{"", "", ar.ATAAN, "atān"},
}
-- Return whether `term` is a nisba noun or adjective, ending in -iyy or -iyyah. `nisba_val` is the value of
-- args.nisba; if non-nil, it overrides any auto-determination based on the shape of the term.
local function term_is_nisba(term, nisba_val)
if nisba_val ~= nil then
return nisba_val
end
term = ar.reorder_shadda(term) -- necessary to avoid issues with e.g. أُورُوبِّيّ.
local pref = rmatch(term, "^(.*)" .. ar.IYY .. ar.UN .. "?$")
if not pref then
pref = rmatch(term, "^(.*)" .. ar.IYYAH .. ar.UN .. "?$")
end
-- Avoid false positives for words like قَوِيّ "strong" and صَبِيّ "boy". There may be other false positives
-- but this should catch most of them and will avoid very many false negatives.
return pref and not rfind(pref, "^[^ا]" .. ar.A .. ".$")
end
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function is_defaulting_adjective(data, args)
return data.orig_pos_category == "คำคุณศัพท์defaulting"
end
local adj_field_elative = {field = "el", label = "<<elative>>"}
local adj_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
{field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = is_defaulting_adjective},
{field = "d", label = "เพศชายทวิพจน์", generate_default = default_masculine_dual},
{field = "fd", label = "เพศหญิงทวิพจน์", generate_default = default_feminine_dual},
{field = "cpl", label = "เพศรวมพหูพจน์"},
{field = "pl", label = "เพศชายพหูพจน์", generate_default = default_masculine_plural,
default_when_not_explicit = is_defaulting_adjective},
{field = "fpl", label = "เพศหญิงพหูพจน์", generate_default = default_feminine_plural,
default_when_not_explicit = is_defaulting_adjective},
}
local function get_adj_params()
local params = {}
add_infl_list_params(params, adj_inflections)
add_infl_params(params, "el")
params.nisba = boolean_param
return params
end
local function handle_adj_args(data, args)
handle_infl_list_args(data, args, adj_inflections)
handle_infl(data, args, adj_field_elative)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำคุณศัพท์สัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำคุณศัพท์"] = {
params = get_adj_params,
func = handle_adj_args,
}
pos_functions["คำคุณศัพท์defaulting"] = {
params = get_adj_params,
func = function(data, args)
data.pos_category = "คำคุณศัพท์"
handle_adj_args(data, args)
end,
}
-----------------------------------------------------------------------------------------
-- Nouns, etc. --
-----------------------------------------------------------------------------------------
local function get_masc_or_feminine_gender(data, default_type)
local saw_m, saw_f, saw_mf
for _, gender in ipairs(data.genders) do
if is_masc_sg(gender.spec) then
saw_m = true
elseif is_fem_sg(gender.spec) then
saw_f = true
elseif is_masc_fem_sg(gender.spec) then
saw_mf = true
end
end
if saw_mf or saw_m and saw_f then
error("Can't generate default for " .. default_type .. " when gender is both masculine and feminine")
elseif saw_m then
return "m"
elseif saw_f then
return "f"
else
error("Can't generate default for " .. default_type .. " when gender is not specified as " ..
"masculine or feminine singular")
end
end
local function is_defaulting_noun(data, args)
return data.orig_pos_category == "คำนามdefaulting"
end
local noun_field_dual = {
field = "d", label = "ทวิพจน์",
generate_default = function(data, args)
local gender = get_masc_or_feminine_gender(data, "noun dual")
if gender == "m" then
return default_masculine_dual(data, args)
else
return default_feminine_dual(data, args)
end
end,
}
local noun_field_plural = {
field = "pl", label = "พหูพจน์",
generate_default = function(data, args, defspec)
local gender = get_masc_or_feminine_gender(data, "noun plural")
if gender == "m" then
if defspec == "+f" then
return default_feminine_plural(data, args)
else
return default_masculine_plural(data, args)
end
elseif defspec == "+f" then
error("Can't specify '+f' with feminine gender; just use '+'")
else
return default_feminine_plural(data, args)
end
end,
-- Handle the case where pl=-, indicating an uncountable noun.
handle = function(data, args, terms)
if terms[1] and terms[1] == "-" then
insert(data.categories, "คำนามนับไม่ได้" .. langname)
if args.pauc and args.pauc[1] then
error("Can't specify paucals when pl=-")
end
end
end,
allowed_defspecs = {["+"] = true, ["+f"] = true},
default_when_not_explicit = is_defaulting_noun,
no_label = "<<นับไม่ได้>>",
usually_no_label = "โดยปกติ<<นับไม่ได้>>",
}
local noun_field_paucal = {
field = "pauc", label = "<<ตัวบอกความน้อย>>", generate_default = default_feminine_plural,
}
local noun_field_feminine = {
field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-masculine noun feminine")
return gender == "m"
end,
}
local noun_field_masculine = {
field = "m", label = "เพศชาย", generate_default = default_masculine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-feminine noun masculine")
return gender == "f"
end,
}
local noun_basic_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local noun_shared_inflections = {
noun_field_dual,
noun_field_plural,
}
local noun_extra_inflections = {
noun_field_paucal,
noun_field_feminine,
noun_field_masculine,
}
local function get_noun_params()
local params = {}
add_gender_params(params)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_list_params(params, noun_extra_inflections)
params.nisba = boolean_param
return params
end
local function handle_noun_args(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl_list_args(data, args, noun_extra_inflections)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำนามสัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
pos_functions["คำนามdefaulting"] = {
params = get_noun_params,
func = function(data, args)
data.pos_category = "คำนาม"
handle_noun_args(data, args)
end,
}
local noun_field_singulative = {field = "sing", label = "<<คำเอกนาม>>", defgender = "f", generate_default = default_feminine}
local noun_field_collective = {field = "coll", label = "<<คำสมุหนาม>>", defgender = "m", generate_default = default_masculine}
local function handle_sing_coll_noun_infls(data, args, otherinfl, otherlabel, othergender)
-- Handle sing= (corresponding singulative noun) or coll= (corresponding collective noun) and their gender
handle_infl(data, args, otherinfl, otherlabel, nil, othergender)
handle_infl_list_args(data, args, sing_coll_noun_inflections)
end
local function get_singulative_collective_noun_params(defgender, otherinfl)
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_params(params, otherinfl)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "pauc")
return params
end
pos_functions["คำสมุหนาม"] = {
params = function() return get_singulative_collective_noun_params("m", "sing") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำสมุหนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำสมุหนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_singulative)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
pos_functions["คำเอกนาม"] = {
params = function() return get_singulative_collective_noun_params("f", "coll") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำเอกนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำเอกนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_collective)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
-- FIXME: Do numerals really behave almost as nouns? They vary by masc/fem.
pos_functions["เลข"] = {
params = get_noun_params,
func = function(data, args)
insert(data.categories, "เลขเชิงการนับ" .. langname)
handle_noun_args(data, args)
end
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
local function get_pronoun_params()
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "f")
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params,
func = function(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_feminine)
end
}
-----------------------------------------------------------------------------------------
-- Non-lemma forms --
-----------------------------------------------------------------------------------------
local valid_forms = list_to_set(
{ "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII",
"XIII", "XIV", "XV", "Iq", "IIq", "IIIq", "IVq" })
-- FIXME: Partly duplicated in [[Module:ar-inflections]].
local function handle_conj_form(data, args)
local form = args[2]
if form then
if not valid_forms[form] then
error("Invalid verb conjugation form " .. form)
end
insert(data.inflections, { label = "[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป " .. form .. "|รูป " .. form .. "]]" })
end
end
pos_functions["รูปกริยา"] = {
params = function()
return {
[2] = {},
}
end,
func = function(data, args)
handle_conj_form(data, args)
end
}
local function get_participle_params()
local params = get_adj_params()
params[2] = {}
return params
end
pos_functions["รูปกริยาขยายกรรตุวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรตุวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
pos_functions["รูปกริยาขยายกรรมวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรมวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
head_is_not_1 = true,
params = function() return {
[1] = {},
-- Comma-separated lists with possible inline modifiers
["past"] = {},
["past1s"] = {},
["nonpast"] = {},
["vn"] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
} end,
func = function(data, args)
local ar_verb = require(ar_verb_module)
local alternant_multiword_spec =
args[1] ~= "-" and ar_verb.do_generate_forms(args, "ar-verb", data.pagename) or nil
local function do_slot(slots_to_check, override, label, slot_is_headword)
-- Do this even with an override so we can return the correct filled slot.
local slot, slotval
if alternant_multiword_spec then
for _, potential_slot in ipairs(slots_to_check) do
slotval = alternant_multiword_spec.forms[potential_slot]
if slotval then
slot = potential_slot
break
end
end
end
local function get_slot_values()
local terms = {}
for _, form in ipairs(slotval) do
local term = {
term = form.form,
id = form.id,
genders = form.genders,
pos = form.pos,
lit = form.lit,
}
term.tr = form.translit
if form.footnotes then
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
term.q = quals
term.refs = refs
end
insert(terms, term)
end
return terms
end
if override then
local override_param_mods = {
alt = {},
t = {
-- [[Module:headword]] expects the gloss in "gloss".
item_dest = "gloss",
},
gloss = {},
g = {
-- [[Module:headword]] expects the genders in "genders".
item_dest = "genders",
type = "genders",
},
pos = {},
lit = {},
id = {},
-- Qualifiers and labels
q = {
type = "qualifier",
},
qq = {
type = "qualifier",
},
l = {
type = "labels",
},
ll = {
type = "labels",
},
ref = {
-- [[Module:headword]] expects the references in "refs".
item_dest = "refs",
type = "references",
},
}
local function generate_obj(formval, parse_err)
if formval == "+" then
return {term = "+", underlying_terms = get_slot_values()}
end
local val, uncertain = formval:match("^(.*)(%?)$")
val = val or formval
uncertain = not not uncertain
local ar, translit = val:match("^(.*)//(.*)$")
if not ar then
ar = formval
end
local retval = {term = ar, uncertain = uncertain}
retval.tr = translit
end
local terms
if override:find("<") then
terms = require(parse_utilities_module).parse_inline_modifiers(override, {
paramname = paramname,
param_mods = override_param_mods,
generate_obj = generate_obj,
splitchar = "[,،]",
escape_fun = escape_comma_whitespace,
unescape_fun = unescape_comma_whitespace,
})
else
terms = split_on_comma(override)
for i, split in ipairs(terms) do
terms[i] = generate_obj(split)
end
end
-- See if + was supplied and we have to potentially flatten multiple default terms and harmonize
-- default properties with override properties.
local saw_underlying_terms = false
for _, term in ipairs(terms) do
if term.underlying_terms then
saw_underlying_terms = true
break
end
end
if saw_underlying_terms then
-- Flatten any default terms, copying the corresponding override properties over the default
-- properties. Non-default terms get inserted directly.
local flattened = {}
for _, term in ipairs(terms) do
if term.underlying_terms then
for _, underlying in ipairs(term.underlying_terms) do
for k, v in pairs(term) do
if k ~= "term" and k ~= "underlying_terms" then
if k == "uncertain" then
underlying.uncertain = underlying.uncertain or v
elseif type(v) ~= "table" or v[1] then
-- Don't copy empty lists (which are the default) over possibly non-empty
-- lists.
underlying[k] = v
end
end
end
insert(flattened, underlying)
end
else
insert(flattened, term)
end
end
terms = flattened
end
if not slot_is_headword then
terms.label = label
end
return terms, slot
elseif not alternant_multiword_spec then
return nil, slot
else
if not slotval then
if slot_is_headword then
-- FIXME, put "uncertain" as qualifier? Does this ever happen?
return nil, slot
elseif alternant_multiword_spec.slot_uncertain[slot] then
return {label = label .. " uncertain"}, slot
elseif alternant_multiword_spec.slot_explicitly_missing[slot] then
return {label = "no " .. label}, slot
else
-- just say nothing about this slot
return nil, slot
end
end
local terms = get_slot_values()
if not slot_is_headword then
terms.label = label
end
return terms, slot
end
end
local gloss_parts = {}
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
insert(gloss_parts, "[[Appendix:Arabic verbs#Form " .. vform .. "|" .. vform .. "]]")
end
if gloss_parts[1] then
data.gloss = concat(gloss_parts, ", ")
end
if data.heads[1] and args.past then
error("Can't specify both head= and past= to {{ar-verb}}; prefer past=")
end
if not alternant_multiword_spec.has_active then
insert(data.inflections, {label = "passive-only"})
end
-- Do this always so `past_slot` is correctly filled.
local past, past_slot = do_slot(ar_verb.potential_lemma_slots, args.past, "-", "slot is headword")
if data.heads[1] then
-- user specified head=; don't override with past= or slot 'past_3sm' etc.
else
if past then
data.heads = past
end
end
local should_do_past1s = not not args.past1s
if not should_do_past1s then
local is_form_I = false
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
if vform == "I" then
is_form_I = true
break
end
end
if is_form_I then
require(inflection_utilities_module).map_word_specs(alternant_multiword_spec, function(base)
if base.verb_form == "I" then
for _, vowel_spec in ipairs(base.conj_vowels) do
-- For form-I geminate verbs, the final vowel of the past is elided in the citation form.
-- We want to display it for all cases other than active a~u and a~i (the most common
-- cases).
if vowel_spec.weakness == "geminate" then
if ar_verb.is_passive_only(base.passive) then
should_do_past1s = true
break
end
local past_vowel = ar_verb.rget(vowel_spec.past)
local nonpast_vowel = ar_verb.rget(vowel_spec.nonpast)
if not (past_vowel == ar.A and (nonpast_vowel == ar.U or nonpast_vowel == ar.I)) then
should_do_past1s = true
break
end
end
end
-- FIXME, provide way of breaking early from map_word_specs().
end
end)
end
end
local past1s
if should_do_past1s then
past1s, _ = do_slot({"past_1s", "past_pass_1s"}, args.past1s, "บุรุษที่หนึ่งเอกพจน์อดีตกาล")
if past1s then
insert(data.inflections, past1s)
end
end
local nonpast_slots
if not past_slot or past_slot:find("^past_") then
nonpast_slots = {"ind_3ms", "ind_pass_3ms", "imp_2ms"}
else
nonpast_slots = {}
end
local nonpast, _ = do_slot(nonpast_slots, args.nonpast, "ไม่ใช่อดีตกาล")
if nonpast then
insert(data.inflections, nonpast)
end
local vn, _ = do_slot({"vn"}, args.vn, "คำกริยานาม")
if vn then
insert(data.inflections, vn)
end
-- FIXME: Should we insert categories? Conjugation also does it and is more likely to be accurate.
--for _, cat in ipairs(alternant_multiword_spec.categories) do
-- insert(data.categories, cat)
--end
--[=[
-- FIXME: Review this to see if we need to port it.
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:pt-verb]] in place of the user-specified or auto-generated head. This was copied from
-- [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have accents marked on
-- the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't do this if the
-- user gave multiple heads or gave a head with a multiword-linked verbal expression such as Italian
-- '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Portuguese equivalent).
if not data.user_specified_heads[1] or (
not data.user_specified_heads[2] and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
]=]
end
}
-----------------------------------------------------------------------------------------
-- Generic parts of speech --
-----------------------------------------------------------------------------------------
pos_functions.head_with_gender = {
params = function()
return {
[3] = {type = "genders"},
}
end,
func = function(data, args)
handle_gender(data, args, "nonlemma", 3)
end,
}
return export
idzdh0qwqiqtypwwnaedc5b5tjf9vm2
5723290
5723270
2026-05-20T05:25:08Z
OctraBot
3198
5723290
Scribunto
text/plain
-- Author: primarily Benwing2; some work by Fenakhay, Erutuon; early version by Rua
local export = {}
local pos_functions = {}
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages
local ar_translit = require("Module:ar-translit")
local ar_verb_module = "Module:ar-verb"
local ar_utilities_module = "Module:ar-utilities"
local ar = require(ar_utilities_module)
local en_utilities_module = "Module:en-utilities"
local headword_module = "Module:headword"
local headword_utilities_module = "Module:headword utilities"
local links_module = "Module:links"
local inflection_utilities_module = "Module:inflection utilities"
local parse_utilities_module = "Module:parse utilities"
local require_when_needed = require("Module:utilities/require when needed")
local remove_links = require_when_needed(links_module, "remove_links")
local m_table = require("Module:table")
local m_str_utils = require("Module:string utilities")
local m_en_utilities = require_when_needed(en_utilities_module)
local m_headword_utilities = require_when_needed(headword_utilities_module)
local glossary_link = require_when_needed(headword_utilities_module, "glossary_link")
local boolean_param = {type = "boolean"}
local list_to_set = m_table.listToSet
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local rsubn = m_str_utils.gsub
local u = m_str_utils.char
local rsplit = m_str_utils.split
local insert = table.insert
local concat = table.concat
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local langcode = "ar"
local lang = require("Module:languages").getByCode(langcode)
local langname = lang:getCategoryName() --th
local TEMPCOMMA = u(0xFFF0)
local TEMPARCOMMA = u(0xFFF1)
local misc_pos_with_gender = list_to_set {
"ปัจจับ",
"รูปคุณศัพท์",
"รูปนาม",
"รูปวิสามานยนาม",
"รูปสรรพนาม",
"รูปตัวกำหนด",
}
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
local dump = mw.dumpObject
-- version of mw.ustring.gsub() 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(val)
if val == "" then return nil else return val end
end
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(run)
local escaped = false
if run:find("\\,") then
run = run:gsub("\\,", "\\" .. TEMPCOMMA)
escaped = true
end
if run:find("\\،") then
run = run:gsub("\\،", "\\" .. TEMPARCOMMA)
escaped = true
end
if run:find(",%s") then
run = run:gsub(",(%s)", TEMPCOMMA .. "%1")
escaped = true
end
if run:find("،%s") then
run = run:gsub("،(%s)", TEMPARCOMMA .. "%1")
escaped = true
end
return run, escaped
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(run)
return (run:gsub(TEMPCOMMA, ","):gsub(TEMPARCOMMA, "،"))
end
-- Split an argument on comma or Arabic comma, but not either type of comma followed by whitespace.
local function split_on_comma(val)
if rfind(val, "[,،]%s") or val:find("\\") then
return export.split_escaping(val, "[,،]", false, escape_comma_whitespace, unescape_comma_whitespace)
else
return rsplit(val, "[,،]")
end
end
local function replace_tr_ending(tr, from, to)
if not tr then
return nil
end
local pref = tr:match("^(.*)" .. from .. "$")
if not pref then
error(("Translit '%s' does not end in -%s, as expected"):format(tr, from))
end
return pref .. to
end
-----------------------------------------------------------------------------------------
-- Tracking functions --
-----------------------------------------------------------------------------------------
local trackfn = require("Module:debug/track")
local function track(page)
trackfn(langcode .. "-headword/" .. page)
return true
end
--[==[
Examples of what you can find by looking at what links to the given
pages:
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized]]
all unvocalized pages
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/pl]]
all unvocalized pages where the plural is unvocalized,
whether specified using pl=, pl2=, etc.
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head]]
all unvocalized pages where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/nouns]]
all nouns excluding proper nouns, collective nouns,
singulative nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/proper]]
nouns all proper nouns where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/head/not]]
proper nouns all words that are not proper nouns
where the head is unvocalized
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized/adjectives]]
all adjectives where any parameter is unvocalized;
currently only works for heads,
so equivalent to .../unvocalized/head/adjectives
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-empty-head]]
all pages with an empty head
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit]]
all unvocalized pages with manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-manual-translit/head/nouns]]
all nouns where the head is unvocalized but has manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/unvocalized-no-translit]]
all unvocalized pages without manual translit
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab]]
all pages with any parameter containing i3rab
of either -un, -u, -a or -i
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un]]
all pages with any parameter containing an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-un/pl]]
all pages where a form specified using pl=, pl2=, etc.
contains an -un i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab-u/head]]
all pages with a head containing an -u i3rab ending
[[Special:WhatLinksHere/Wiktionary:Tracking/ar-headword/i3rab/head/proper]]
nouns (all proper nouns with a head containing i3rab
of either -un, -u, -a or -i)
In general, the format is one of the following:
Wiktionary:Tracking/ar-headword/FIRSTLEVEL
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/POS
Wiktionary:Tracking/ar-headword/FIRSTLEVEL/ARGNAME/POS
FIRSTLEVEL can be one of "unvocalized", "unvocalized-empty-head" or its
opposite "unvocalized-specified", "unvocalized-manual-translit" or its
opposite "unvocalized-no-translit", "i3rab", "i3rab-un", "i3rab-u",
"i3rab-a", or "i3rab-i".
ARGNAME is either "head" or an argument such as "pl", "f", "cons", etc.
This automatically includes arguments specified as head2=, pl3=, etc.
POS is a part of speech, lowercase and singular, e.g. "noun",
"adjective", "proper noun", "collective noun", etc. or
"not proper noun", which includes all parts of speech but proper nouns.
]==]
local function track_form(argname, form, translit, pos)
form = ar.reorder_shadda(remove_links(form))
function dotrack(page)
track(page)
track(page .. "/" .. argname)
if pos then
track(page .. "/" .. pos)
track(page .. "/" .. argname .. "/" .. pos)
if pos ~= "คำวิสามานยนาม" then
track(page .. "/not proper noun")
track(page .. "/" .. argname .. "/not proper noun")
end
end
end
function track_i3rab(arabic, tr)
if rfind(form, arabic .. "$") then
dotrack("i3rab")
dotrack("i3rab-" .. tr)
end
end
track_i3rab(ar.UN, "un")
track_i3rab(ar.U, "u")
track_i3rab(ar.A, "a")
track_i3rab(ar.I, "i")
if form == "" or not (lang:transliterate(form)) then
dotrack("unvocalized")
if form == "" then
dotrack("unvocalized-empty-head")
else
dotrack("unvocalized-specified")
end
if translit then
dotrack("unvocalized-manual-translit")
else
dotrack("unvocalized-no-translit")
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection-parsing functions --
-----------------------------------------------------------------------------------------
-- Construct the default construct state or informal form of a term in lemma format. Usually this is the same as the
-- lemma but is different for final-weak nouns and adjectives ending in -n in their lemma. NOTE: Input must be
-- shadda-reordered for this to work properly.
local function default_construct_state_or_informal(term, tr)
local pref = term:match("^(.*)" .. ar.HAMZA .. ar.IN .."$")
-- Hamza on the line with -in changes to hamza-on-yā with -ī.
if pref then
return pref .. ar.HAMZA_ON_YA .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Otherwise just change -in to -ī.
pref = term:match("^(.*)" .. ar.IN .. "$")
if pref then
return pref .. ar.II, replace_tr_ending(tr, "in", "ī")
end
-- Change -an with alif maqṣūra to -ā with alif maqṣūra.
pref = term:match("^(.*)" .. ar.AN .. ar.AMAQ .. "$")
if pref then
return pref .. ar.AAMAQ, replace_tr_ending(tr, "an", "ā")
end
-- Change -an with tall alif (e.g. عَصًا) to -ā with tall alif.
pref = term:match("^(.*)" .. ar.AN .. ar.ALIF .. "$")
if pref then
return pref .. ar.AA, replace_tr_ending(tr, "an", "ā")
end
return term, tr
end
local function generate_construct_state_or_informal_default(data, args)
local heads = data.heads
local consobjs = {}
local different_cons = false
for _, headobj in ipairs(data.heads) do
local consterm, constr = default_construct_state_or_informal(headobj.term, headobj.tr)
different_cons = different_cons or consterm ~= headobj.term or constr ~= headobj.tr
local consobj = m_table.shallowCopy(headobj)
consobj.term = consterm
consobj.tr = constr
insert(consobjs, consobj)
end
if different_cons then
return consobjs
else
return {}
end
end
local noun_field_cons = {
field = "cons", label = "<<construct state>>", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local noun_field_inf = {field = "inf", label = "informal"}
local noun_field_obl = {field = "obl", label = "<<oblique>>"}
local noun_field_def = {field = "def", label = "<<definite>> state"}
local noun_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local adj_field_inf = {
field = "inf", label = "informal", generate_default = generate_construct_state_or_informal_default,
default_when_not_explicit = function(args, data) return true end,
}
local adj_field_obl = noun_field_obl
local adj_field_def = noun_field_def
local adjective_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
}
local function has_construct_state(data)
return data.pos_category ~= "adjectives"
end
local function parse_nominal_inflection(paramname, val, parse_err)
return m_headword_utilities.parse_term_with_modifiers {
val = val,
paramname = paramname,
splitchar = ",",
include_mods = {"tr", "g"},
}
end
local function make_nominal_inflection_param_mod_spec(paramname)
return {convert = function(val, parse_err)
return parse_nominal_inflection(paramname, val, parse_err)
end}
end
-- Parse an inflection. The raw arguments come from `args[field]`, which is parsed for inline modifiers. Multiple
-- comma-separated values are allowed.
local function parse_inflection(data, args, field, is_head)
local argfield = field
local argpref = field
if type(argfield) == "table" then
argpref = argfield[2]
argfield = argfield[1]
end
local include_mods
if is_head then
include_mods = {"tr"}
else
include_mods = {"tr", "g"}
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert(include_mods, {spec.field, make_nominal_inflection_param_mod_spec(argpref .. "." .. spec.field)})
end
end
if is_head then
local retval
if args[argfield] then
retval = m_headword_utilities.parse_term_with_modifiers {
val = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
return retval or {}
else
return m_headword_utilities.parse_term_list_with_modifiers {
forms = args[argfield],
paramname = field,
splitchar = ",",
is_head = is_head,
include_mods = include_mods,
}
end
end
local function insert_inflection(data, terms, label, accel, defgender, track_field, no_label, usually_no_label)
local track_pos = m_en_utilities.singularize(data.pos_category)
for _, termobj in ipairs(terms) do
-- If the user supplied a construct state or informal form for the term with a value of "+", substitute the
-- default value for the term. If the user supplied a value of "--", they want no value displayed. Otherwise,
-- if the user didn't supply any value, we check to see if the default construct state or informal form is
-- different from the lemma and display it if so; this applies particularly to terms in '-in' and '-an', where
-- the default construct state or informal form is almost always correct.
local field = has_construct_state(data) and "cons" or "inf"
if not termobj[field] then
local defcons, defconstr = default_construct_state_or_informal(termobj.term, termobj.tr)
if termobj.term ~= defcons or termobj.tr ~= defconstr then
-- We don't want to copy qualifiers, labels, etc. from the term object because we're a subinflection of
-- the term object.
termobj[field] = {{term = defcons, tr = defconstr}}
end
elseif termobj[field][1].term == "--" then
if termobj[field][2] then
error("Can't specify more than one value for <" .. field .. ":...> if first value is '--', meaning \"don't insert anything\"")
end
termobj[field] = nil
else
for i, consobj in ipairs(termobj[field]) do
if consobj.term == "+" then
if consobj.tr then
error("Can't specify translit for default value '+'")
end
consobj.term, consobj.tr = default_construct_state_or_informal(termobj.term, termobj.tr)
elseif consobj.term == "~" then
if consobj.tr then
error("Can't specify translit for term-requesting value '~'")
end
consobj.term, consobj.tr = termobj.term, termobj.tr
end
end
end
if defgender and not termobj.genders then
termobj.genders = {{spec = defgender}}
end
local function insert_nested_inflection(field, label)
if termobj[field] then
m_headword_utilities.insert_inflection {
headdata = data,
inflobj = termobj,
terms = termobj[field],
label = label
}
end
end
for _, spec in ipairs(has_construct_state(data) and noun_inflections or adjective_inflections) do
insert_nested_inflection(spec.field, spec.label)
end
track_form(track_field, termobj.term, termobj.tr, track_pos)
end
m_headword_utilities.insert_inflection {
headdata = data,
terms = terms,
label = label,
accel = accel and {form = accel} or nil,
no_label = no_label,
usually_no_label = usually_no_label,
}
end
-----------------------------------------------------------------------------------------
-- Main entry point --
-----------------------------------------------------------------------------------------
function export.show(frame)
local iparams = {
[1] = true,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parargs = frame:getParent().args
local poscat = iargs[1]
local pos_in_1 = not poscat
if pos_in_1 then
poscat = ine(parargs[1]) or
mw.title.getCurrentTitle().fullText == "แม่แบบ:" .. langcode .. "-head" and "คำอุทาน" or
error("Part of speech must be specified in 1=")
poscat_th = require("Module:th-utilities").th_pos(poscat) --th
poscat_th = require(headword_module).canonicalize_pos(poscat_th) --th_pos_to_form is already there
else
poscat_th = require("Module:th-utilities").th_pos(poscat) --th; initiation is needed
end
local indexing_poscat = pos_in_1 and (misc_pos_with_gender[poscat_th] and "head_with_gender" or "head") or poscat_th
local params = {
["suffix"] = boolean_param,
["nosuffix"] = boolean_param,
["id"] = true,
["json"] = boolean_param,
["pagename"] = {}, -- for testing
}
if pos_in_1 then
params[1] = {required = true} -- required but ignored as already processed above
end
local head_is_head = pos_functions[indexing_poscat] and pos_functions[indexing_poscat].head_is_not_1
local headfield = head_is_head and "head" or pos_in_1 and 2 or 1
params[headfield] = head_is_head and true or {default = "+"}
params.head2 = {replaced_by = false, instead = "use multiple comma-separated values in |" .. headfield .. "="}
local tr_replaced_by = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. headfield .. "="}
params.tr = tr_replaced_by
params.tr2 = tr_replaced_by
if pos_functions[indexing_poscat] then
for key, val in pairs(pos_functions[indexing_poscat].params()) do
params[key] = val
end
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local pagename = args.pagename or mw.loadData("Module:headword/data").pagename
local data = {
lang = lang,
pos_category = poscat_th,
orig_pos_category = poscat_th,
categories = {},
heads = {},
genders = {},
inflections = {enable_auto_translit = true},
pagename = pagename,
id = args.id,
sort_key = args.sort,
force_cat_output = force_cat,
-- We expect a head always so the redundant head cat will be inaccurate.
no_redundant_head_cat = true,
}
data.heads = parse_inflection(data, args, headfield, "is_head")
for _, headobj in ipairs(data.heads) do
if headobj.term == "+" then
headobj.term = pagename
end
end
data.is_suffix = false
if args.suffix or (
not args.nosuffix and pagename:find("^%-") and poscat ~= "ปัจจัย" and poscat ~= "รูปปัจจัย"
) then
data.is_suffix = true
data.pos_category = "ปัจจัย"
local singular_poscat = --[[m_en_utilities.singularize(poscat)]] poscat_th
insert(data.categories, "ปัจจัยสร้าง" .. singular_poscat .. langname)
insert(data.inflections, {label = "ปัจจัยสร้าง" .. singular_poscat})
end
if pos_functions[indexing_poscat] then
pos_functions[indexing_poscat].func(data, args)
end
-- Do this after calling pos_functions[poscat].func() as it may modify data.heads (as verbs do).
local irreg_translit = false
for _, head in ipairs(data.heads) do
if ar_translit.irregular_translit(head.term, head.tr) then
irreg_translit = true
break
end
end
if irreg_translit then
insert(data.categories, "ศัพท์" .. langname .. "ที่มีการออกเสียงไม่ปรกติ")
end
if args.json then
return require("Module:JSON").toJSON(data)
end
return require(headword_module).full_headword(data)
end
-----------------------------------------------------------------------------------------
-- Gender handling --
-----------------------------------------------------------------------------------------
local valid_bare_genders = {false, "m", "f", "mf", "mfbysense", "mfequiv"}
local valid_bare_numbers = {false, "d", "p"}
local valid_bare_animacies = {false, "pr", "np"}
local valid_genders = {}
for _, gender in ipairs(valid_bare_genders) do
for _, number in ipairs(valid_bare_numbers) do
for _, animacy in ipairs(valid_bare_animacies) do
local parts = {}
local function ins_part(part)
if part then
insert(parts, part)
end
end
ins_part(gender)
ins_part(number)
ins_part(animacy)
local full_gender = concat(parts, "-")
valid_genders[full_gender == "" and "?" or full_gender] = true
end
end
end
local function is_masc_sg(g)
return g == "m" or g == "m-pr" or g == "m-np"
end
local function is_fem_sg(g)
return g == "f" or g == "f-pr" or g == "f-np"
end
local function is_masc_fem_sg(g)
g = g:gsub("%-pr", ""):gsub("%-np", "")
return g == "mf" or g == "mfequiv" or g == "mfbysense"
end
local function add_gender_params(params, default)
params[2] = {type = "genders", default = default or "?", template_default = "m"}
params["g2"] = {replaced_by = false, instead = "use comma-separated values in |g="}
end
-- Handle gender in params 2=, inserting into `data.genders`. Also, if a lemma, insert categories into `data.categories`
-- if the gender is unexpected for the form of the noun. (Note: If there are multiple genders,
-- [[Module:gender and number]] will automatically insert 'Arabic POS with multiple genders'.)
local function handle_gender(data, args, nonlemma, field)
if not args[field or 2] then
return
end
for _, gspec in ipairs(args[field or 2]) do
if not valid_genders[gspec.spec] then
error("Unrecognized gender: " .. gspec.spec)
end
end
data.genders = args[field or 2]
if nonlemma then
return
end
for _, gspec in ipairs(data.genders) do
local g = gspec.spec
if is_masc_sg(g) or is_fem_sg(g) or is_masc_fem_sg(g) then
local head = data.heads[1]
if head then
head = rsub(ar.reorder_shadda(remove_links(head.term)), ar.UNUOPT .. "$", "")
local ends_with_tam = rfind(head, "^[^ ]*" .. ar.TAM .. "$") or
rfind(head, "^[^ ]*" .. ar.TAM .. " ")
if (is_masc_sg(g) or is_masc_fem_sg(g)) and ends_with_tam then
insert(data.categories, "ศัพท์เพศชาย" .. langname .. "ที่ลงท้ายด้วยเพศหญิง")
elseif (is_fem_sg(g) or is_masc_fem_sg(g)) and not ends_with_tam and
not rfind(head, "[" .. ar.ALIF .. ar.AMAQ .. "]$") and
not rfind(head, ar.ALIF .. ar.HAMZA .. "$") then
insert(data.categories, "ศัพท์เพศหญิง" .. langname .. "ที่ไม่ลงท้ายด้วยเพศหญิง")
end
end
end
end
end
-----------------------------------------------------------------------------------------
-- Inflection handlers --
-----------------------------------------------------------------------------------------
-- Add list parameters to `params` (a structure as passed to [[Module:parameters]]) for a parameter named `argpref`.
-- If `argpref` is "*", add the nominal inflection parameters for construct state, definite state, etc. Related
-- transliteration and gender parameters are no longer supported in favor of inline modifiers, and error messages are
-- output if these parameters are used.
local function add_infl_params(params, argpref)
params[argpref] = {list = true, disallow_holes = true}
params[argpref .. "tr"] = {replaced_by = false, instead = "use <tr:...> inline modifier on |" .. argpref .. "="}
params[argpref .. "g"] = {replaced_by = false, instead = "use <g:...> inline modifier on |" .. argpref .. "="}
end
--[=[
Fetch a list of inflections from the arguments in `args` based on argument `field` (e.g. "pl"). Label with `label`
(e.g. "plural"), which will appear in the headword. Insert into `data.inflections`, where `data` is the structure
passed to [[Module:headword]]. If `generate_default` is specified, it should be a function of two arguments
(`data`, `args`), which should generate the default value if no values are specified or if "+" is explicitly given.
If `generate_default` isn't specified and the user gave no values, no inflection will be inserted.
]=]
local function handle_infl(data, args, spec)
local newinfls = parse_inflection(data, args, spec.field, false)
if not newinfls[1] and spec.default_when_not_explicit and spec.default_when_not_explicit(data, args) then
newinfls = {{term = "+"}}
end
if spec.handle then
spec.handle(data, args, newinfls)
end
local default_specs = spec.allowed_defspecs
if not default_specs then
default_specs = spec.generate_default and {["+"] = true} or {}
end
local saw_defspec = false
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] or newinfl.term == "~" then
saw_defspec = true
break
end
end
if saw_defspec then
local newnewinfls = {}
for _, newinfl in ipairs(newinfls) do
if default_specs[newinfl.term] then
if newinfl.tr then
error("Can't specify translit for default value '" .. newinfl.term .. "'")
end
local definfls = spec.generate_default(data, args, newinfl.term)
for _, definfl in ipairs(definfls) do
m_headword_utilities.combine_termobj_qualifiers_labels(definfl, newinfl)
insert(newnewinfls, definfl)
end
elseif newinfl.term == "~" then
if newinfl.tr then
error("Can't specify translit for head-requesting value '~'")
end
for _, headobj in ipairs(data.heads) do
headobj = m_table.shallowCopy(headobj)
m_headword_utilities.combine_termobj_qualifiers_labels(headobj, newinfl)
insert(newnewinfls, headobj)
end
else
insert(newnewinfls, newinfl)
end
end
newinfls = newnewinfls
end
if newinfls[1] then
if newinfls[1].term == "--" then
if newinfls[2] then
error("Can't specify more than one term if first term is '--', meaning \"don't insert anything\"")
end
else
insert_inflection(data, newinfls, spec.label, nil, spec.defgender, spec.field, spec.no_label,
spec.usually_no_label)
end
end
end
local function add_infl_list_params(params, infl_list)
for _, infl in ipairs(infl_list) do
add_infl_params(params, infl.field)
end
end
local function handle_infl_list_args(data, args, infl_list)
for _, infl in ipairs(infl_list) do
handle_infl(data, args, infl)
end
end
-----------------------------------------------------------------------------------------
-- Default ending generators --
-----------------------------------------------------------------------------------------
local function make_conditional_default(specs)
return function(data, args)
local heads = data.heads
if not heads[1] then
heads = {{term = data.pagename}}
end
local newobjs = {}
for _, headobj in ipairs(heads) do
local term = ar.reorder_shadda(headobj.term)
local tr = headobj.tr
local matched = false
for _, spec in ipairs(specs) do
local from, fromtr, to, totr = unpack(spec)
if from:find("^%^") then
pref = rmatch(term, from .. "$")
else
pref = rmatch(term, "^(.*)" .. from .. "$")
end
if pref then
term = pref .. to
tr = replace_tr_ending(tr, fromtr, totr)
matched = true
headobj = m_table.shallowCopy(headobj)
headobj.term = ar.undo_reorder_shadda(term)
headobj.tr = tr
insert(newobjs, headobj)
break
end
end
if not matched then
error(("Internal error: No matching spec: head=%s"):format(dump(headobj)))
end
end
return newobjs
end
end
local default_feminine = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AAH, "āh"},
{ar.AN .. ar.ALIF, "an", ar.AAH, "āh"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAH, "iya"},
{ar.IN, "in", ar.IYAH, "iya"},
{"", "", ar.AH, "a"},
}
local default_masculine = make_conditional_default {
-- tall alif substitutes for alif maqṣūra after a yāʔ
{ar.Y .. ar.AAH, "āh", ar.AN .. ar.ALIF, "an"},
{ar.AAH, "āh", ar.AN .. ar.AMAQ, "an"},
-- handle the common case of final-weak feminine active participle with preceding hamza;
-- the hamza-on-yāʔ always converts back to hamza on the line when preceded by ā (alif) but
-- may not otherwise, so we just leave it alone in that case
{ar.ALIF .. ar.HAMZA_ON_YA .. ar.IYAH, "iya", ar.HAMZA .. ar.IN, "in"},
{ar.IYAH, "iya", ar.IN, "in"},
{ar.AH, "a", "", ""},
{"", "", "", ""},
}
local default_masculine_plural = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AWN, "awn"},
{ar.AN .. ar.ALIF, "an", ar.AWN, "awn"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_WAW .. ar.UUN, "ūn"},
{ar.IN, "in", ar.UUN, "ūn"},
{"", "", ar.UUN, "ūn"},
}
local default_feminine_plural = make_conditional_default {
-- صَلَاة pl. صَلَوَات and أَدَاة pl. أَدَوَات and similar; but نَوَاة and وَفَاة with a و in them become نَوَيَات and وَفَيَات;
-- and longer terms like مُبَارَاة and كُمَّثْرَاة invariably form their plural in -يَات.
{"^([^و]" .. ar.A .. "[^و])" .. ar.AAH, "āh", ar.A .. ar.W .. ar.AAT, "awāt"},
{ar.AAH, "āh", ar.AYAAT, "ayāt"},
{ar.AN .. ar.AMAQ, "an", ar.AYAAT, "ayāt"},
{ar.AN .. ar.ALIF, "an", ar.AYAAT, "ayāt"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAT, "iyāt"},
{ar.IN, "in", ar.IYAAT, "iyāt"},
{ar.AH, "a", ar.AAT, "āt"},
{"", "", ar.AAT, "āt"},
}
local default_masculine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AYAAN, "ayān"},
{ar.AN .. ar.ALIF, "an", ar.AYAAN, "ayān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IYAAN, "iyān"},
{ar.IN, "in", ar.IYAAN, "iyān"},
{"", "", ar.AAN, "ān"},
}
local default_feminine_dual = make_conditional_default {
{ar.AN .. ar.AMAQ, "an", ar.AATAAN, "ātān"},
{ar.AN .. ar.ALIF, "an", ar.AATAAN, "ātān"}, -- e.g. مُحْيًا
{ar.HAMZA .. ar.IN, "in", ar.HAMZA_ON_YA .. ar.IY .. ar.ATAAN, "iyatān"},
{ar.IN, "in", ar.IY .. ar.ATAAN, "iyatān"},
{"", "", ar.ATAAN, "atān"},
}
-- Return whether `term` is a nisba noun or adjective, ending in -iyy or -iyyah. `nisba_val` is the value of
-- args.nisba; if non-nil, it overrides any auto-determination based on the shape of the term.
local function term_is_nisba(term, nisba_val)
if nisba_val ~= nil then
return nisba_val
end
term = ar.reorder_shadda(term) -- necessary to avoid issues with e.g. أُورُوبِّيّ.
local pref = rmatch(term, "^(.*)" .. ar.IYY .. ar.UN .. "?$")
if not pref then
pref = rmatch(term, "^(.*)" .. ar.IYYAH .. ar.UN .. "?$")
end
-- Avoid false positives for words like قَوِيّ "strong" and صَبِيّ "boy". There may be other false positives
-- but this should catch most of them and will avoid very many false negatives.
return pref and not rfind(pref, "^[^ا]" .. ar.A .. ".$")
end
-----------------------------------------------------------------------------------------
-- Adjectives --
-----------------------------------------------------------------------------------------
local function is_defaulting_adjective(data, args)
return data.orig_pos_category == "คำคุณศัพท์defaulting"
end
local adj_field_elative = {field = "el", label = "<<elative>>"}
local adj_inflections = {
adj_field_inf,
adj_field_obl,
adj_field_def,
{field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = is_defaulting_adjective},
{field = "d", label = "เพศชายทวิพจน์", generate_default = default_masculine_dual},
{field = "fd", label = "เพศหญิงทวิพจน์", generate_default = default_feminine_dual},
{field = "cpl", label = "เพศรวมพหูพจน์"},
{field = "pl", label = "เพศชายพหูพจน์", generate_default = default_masculine_plural,
default_when_not_explicit = is_defaulting_adjective},
{field = "fpl", label = "เพศหญิงพหูพจน์", generate_default = default_feminine_plural,
default_when_not_explicit = is_defaulting_adjective},
}
local function get_adj_params()
local params = {}
add_infl_list_params(params, adj_inflections)
add_infl_params(params, "el")
params.nisba = boolean_param
return params
end
local function handle_adj_args(data, args)
handle_infl_list_args(data, args, adj_inflections)
handle_infl(data, args, adj_field_elative)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำคุณศัพท์สัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำคุณศัพท์"] = {
params = get_adj_params,
func = handle_adj_args,
}
pos_functions["คำคุณศัพท์defaulting"] = {
params = get_adj_params,
func = function(data, args)
data.pos_category = "คำคุณศัพท์"
handle_adj_args(data, args)
end,
}
-----------------------------------------------------------------------------------------
-- Nouns, etc. --
-----------------------------------------------------------------------------------------
local function get_masc_or_feminine_gender(data, default_type)
local saw_m, saw_f, saw_mf
for _, gender in ipairs(data.genders) do
if is_masc_sg(gender.spec) then
saw_m = true
elseif is_fem_sg(gender.spec) then
saw_f = true
elseif is_masc_fem_sg(gender.spec) then
saw_mf = true
end
end
if saw_mf or saw_m and saw_f then
error("Can't generate default for " .. default_type .. " when gender is both masculine and feminine")
elseif saw_m then
return "m"
elseif saw_f then
return "f"
else
error("Can't generate default for " .. default_type .. " when gender is not specified as " ..
"masculine or feminine singular")
end
end
local function is_defaulting_noun(data, args)
return data.orig_pos_category == "คำนามdefaulting"
end
local noun_field_dual = {
field = "d", label = "ทวิพจน์",
generate_default = function(data, args)
local gender = get_masc_or_feminine_gender(data, "noun dual")
if gender == "m" then
return default_masculine_dual(data, args)
else
return default_feminine_dual(data, args)
end
end,
}
local noun_field_plural = {
field = "pl", label = "พหูพจน์",
generate_default = function(data, args, defspec)
local gender = get_masc_or_feminine_gender(data, "noun plural")
if gender == "m" then
if defspec == "+f" then
return default_feminine_plural(data, args)
else
return default_masculine_plural(data, args)
end
elseif defspec == "+f" then
error("Can't specify '+f' with feminine gender; just use '+'")
else
return default_feminine_plural(data, args)
end
end,
-- Handle the case where pl=-, indicating an uncountable noun.
handle = function(data, args, terms)
if terms[1] and terms[1] == "-" then
insert(data.categories, "คำนามนับไม่ได้" .. langname)
if args.pauc and args.pauc[1] then
error("Can't specify paucals when pl=-")
end
end
end,
allowed_defspecs = {["+"] = true, ["+f"] = true},
default_when_not_explicit = is_defaulting_noun,
no_label = "<<นับไม่ได้>>",
usually_no_label = "โดยปกติ<<นับไม่ได้>>",
}
local noun_field_paucal = {
field = "pauc", label = "<<ตัวบอกความน้อย>>", generate_default = default_feminine_plural,
}
local noun_field_feminine = {
field = "f", label = "เพศหญิง", generate_default = default_feminine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-masculine noun feminine")
return gender == "m"
end,
}
local noun_field_masculine = {
field = "m", label = "เพศชาย", generate_default = default_masculine,
default_when_not_explicit = function(data, args)
if data.orig_pos_category ~= "คำนามdefaulting" then
return nil
end
local gender = get_masc_or_feminine_gender(data, "defaulting-if-feminine noun masculine")
return gender == "f"
end,
}
local noun_basic_inflections = {
noun_field_cons,
noun_field_inf,
noun_field_obl,
noun_field_def,
}
local noun_shared_inflections = {
noun_field_dual,
noun_field_plural,
}
local noun_extra_inflections = {
noun_field_paucal,
noun_field_feminine,
noun_field_masculine,
}
local function get_noun_params()
local params = {}
add_gender_params(params)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_list_params(params, noun_extra_inflections)
params.nisba = boolean_param
return params
end
local function handle_noun_args(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl_list_args(data, args, noun_extra_inflections)
for _, headobj in ipairs(data.heads) do
if term_is_nisba(headobj.term, args.nisba) then
insert(data.categories, "คำนามสัมพันธ์ (นิสบะฮ์) " .. langname)
break
end
end
end
pos_functions["คำนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
pos_functions["คำนามdefaulting"] = {
params = get_noun_params,
func = function(data, args)
data.pos_category = "คำนาม"
handle_noun_args(data, args)
end,
}
local noun_field_singulative = {field = "sing", label = "<<คำเอกนาม>>", defgender = "f", generate_default = default_feminine}
local noun_field_collective = {field = "coll", label = "<<คำสมุหนาม>>", defgender = "m", generate_default = default_masculine}
local function handle_sing_coll_noun_infls(data, args, otherinfl, otherlabel, othergender)
-- Handle sing= (corresponding singulative noun) or coll= (corresponding collective noun) and their gender
handle_infl(data, args, otherinfl, otherlabel, nil, othergender)
handle_infl_list_args(data, args, sing_coll_noun_inflections)
end
local function get_singulative_collective_noun_params(defgender, otherinfl)
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_params(params, otherinfl)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "pauc")
return params
end
pos_functions["คำสมุหนาม"] = {
params = function() return get_singulative_collective_noun_params("m", "sing") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำสมุหนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำสมุหนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_singulative)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
pos_functions["คำเอกนาม"] = {
params = function() return get_singulative_collective_noun_params("f", "coll") end,
func = function(data, args)
data.pos_category = "คำนาม"
insert(data.categories, "คำเอกนาม" .. langname)
m_headword_utilities.insert_fixed_inflection {
headdata = data,
label = "<<คำเอกนาม>>",
}
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl(data, args, noun_field_collective)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_paucal)
end
}
-- FIXME: Do numerals really behave almost as nouns? They vary by masc/fem.
pos_functions["เลข"] = {
params = get_noun_params,
func = function(data, args)
insert(data.categories, "เลขเชิงการนับ" .. langname)
handle_noun_args(data, args)
end
}
pos_functions["คำวิสามานยนาม"] = {
params = get_noun_params,
func = handle_noun_args,
}
local function get_pronoun_params()
local params = {}
add_gender_params(params, defgender)
add_infl_list_params(params, noun_basic_inflections)
add_infl_list_params(params, noun_shared_inflections)
add_infl_params(params, "f")
return params
end
pos_functions["คำสรรพนาม"] = {
params = get_pronoun_params,
func = function(data, args)
handle_gender(data, args)
handle_infl_list_args(data, args, noun_basic_inflections)
handle_infl_list_args(data, args, noun_shared_inflections)
handle_infl(data, args, noun_field_feminine)
end
}
-----------------------------------------------------------------------------------------
-- Non-lemma forms --
-----------------------------------------------------------------------------------------
local valid_forms = list_to_set(
{ "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII",
"XIII", "XIV", "XV", "Iq", "IIq", "IIIq", "IVq" })
-- FIXME: Partly duplicated in [[Module:ar-inflections]].
local function handle_conj_form(data, args)
local form = args[2]
if form then
if not valid_forms[form] then
error("Invalid verb conjugation form " .. form)
end
insert(data.inflections, { label = "[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป " .. form .. "|รูป " .. form .. "]]" })
end
end
pos_functions["รูปกริยา"] = {
params = function()
return {
[2] = {},
}
end,
func = function(data, args)
handle_conj_form(data, args)
end
}
local function get_participle_params()
local params = get_adj_params()
params[2] = {}
return params
end
pos_functions["รูปกริยาขยายกรรตุวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรตุวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
pos_functions["รูปกริยาขยายกรรมวาจก"] = {
params = get_participle_params,
func = function(data, args)
data.pos_category = "รูปกริยาขยาย"
insert(data.categories, "รูปกริยาขยายกรรมวาจก" .. langname)
handle_conj_form(data, args)
handle_infl_list_args(data, args, adj_inflections)
end
}
-----------------------------------------------------------------------------------------
-- Verbs --
-----------------------------------------------------------------------------------------
pos_functions["คำกริยา"] = {
head_is_not_1 = true,
params = function() return {
[1] = {},
-- Comma-separated lists with possible inline modifiers
["past"] = {},
["past1s"] = {},
["nonpast"] = {},
["vn"] = {},
["noautolinktext"] = {type = "boolean"},
["noautolinkverb"] = {type = "boolean"},
} end,
func = function(data, args)
local ar_verb = require(ar_verb_module)
local alternant_multiword_spec =
args[1] ~= "-" and ar_verb.do_generate_forms(args, "ar-verb", data.pagename) or nil
local function do_slot(slots_to_check, override, label, slot_is_headword)
-- Do this even with an override so we can return the correct filled slot.
local slot, slotval
if alternant_multiword_spec then
for _, potential_slot in ipairs(slots_to_check) do
slotval = alternant_multiword_spec.forms[potential_slot]
if slotval then
slot = potential_slot
break
end
end
end
local function get_slot_values()
local terms = {}
for _, form in ipairs(slotval) do
local term = {
term = form.form,
id = form.id,
genders = form.genders,
pos = form.pos,
lit = form.lit,
}
term.tr = form.translit
if form.footnotes then
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(form.footnotes)
term.q = quals
term.refs = refs
end
insert(terms, term)
end
return terms
end
if override then
local override_param_mods = {
alt = {},
t = {
-- [[Module:headword]] expects the gloss in "gloss".
item_dest = "gloss",
},
gloss = {},
g = {
-- [[Module:headword]] expects the genders in "genders".
item_dest = "genders",
type = "genders",
},
pos = {},
lit = {},
id = {},
-- Qualifiers and labels
q = {
type = "qualifier",
},
qq = {
type = "qualifier",
},
l = {
type = "labels",
},
ll = {
type = "labels",
},
ref = {
-- [[Module:headword]] expects the references in "refs".
item_dest = "refs",
type = "references",
},
}
local function generate_obj(formval, parse_err)
if formval == "+" then
return {term = "+", underlying_terms = get_slot_values()}
end
local val, uncertain = formval:match("^(.*)(%?)$")
val = val or formval
uncertain = not not uncertain
local ar, translit = val:match("^(.*)//(.*)$")
if not ar then
ar = formval
end
local retval = {term = ar, uncertain = uncertain}
retval.tr = translit
end
local terms
if override:find("<") then
terms = require(parse_utilities_module).parse_inline_modifiers(override, {
paramname = paramname,
param_mods = override_param_mods,
generate_obj = generate_obj,
splitchar = "[,،]",
escape_fun = escape_comma_whitespace,
unescape_fun = unescape_comma_whitespace,
})
else
terms = split_on_comma(override)
for i, split in ipairs(terms) do
terms[i] = generate_obj(split)
end
end
-- See if + was supplied and we have to potentially flatten multiple default terms and harmonize
-- default properties with override properties.
local saw_underlying_terms = false
for _, term in ipairs(terms) do
if term.underlying_terms then
saw_underlying_terms = true
break
end
end
if saw_underlying_terms then
-- Flatten any default terms, copying the corresponding override properties over the default
-- properties. Non-default terms get inserted directly.
local flattened = {}
for _, term in ipairs(terms) do
if term.underlying_terms then
for _, underlying in ipairs(term.underlying_terms) do
for k, v in pairs(term) do
if k ~= "term" and k ~= "underlying_terms" then
if k == "uncertain" then
underlying.uncertain = underlying.uncertain or v
elseif type(v) ~= "table" or v[1] then
-- Don't copy empty lists (which are the default) over possibly non-empty
-- lists.
underlying[k] = v
end
end
end
insert(flattened, underlying)
end
else
insert(flattened, term)
end
end
terms = flattened
end
if not slot_is_headword then
terms.label = label
end
return terms, slot
elseif not alternant_multiword_spec then
return nil, slot
else
if not slotval then
if slot_is_headword then
-- FIXME, put "uncertain" as qualifier? Does this ever happen?
return nil, slot
elseif alternant_multiword_spec.slot_uncertain[slot] then
return {label = label .. " uncertain"}, slot
elseif alternant_multiword_spec.slot_explicitly_missing[slot] then
return {label = "no " .. label}, slot
else
-- just say nothing about this slot
return nil, slot
end
end
local terms = get_slot_values()
if not slot_is_headword then
terms.label = label
end
return terms, slot
end
end
local gloss_parts = {}
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
insert(gloss_parts, "[[Appendix:Arabic verbs#Form " .. vform .. "|" .. vform .. "]]")
end
if gloss_parts[1] then
data.gloss = concat(gloss_parts, ", ")
end
if data.heads[1] and args.past then
error("Can't specify both head= and past= to {{ar-verb}}; prefer past=")
end
if not alternant_multiword_spec.has_active then
insert(data.inflections, {label = "passive-only"})
end
-- Do this always so `past_slot` is correctly filled.
local past, past_slot = do_slot(ar_verb.potential_lemma_slots, args.past, "-", "slot is headword")
if data.heads[1] then
-- user specified head=; don't override with past= or slot 'past_3sm' etc.
else
if past then
data.heads = past
end
end
local should_do_past1s = not not args.past1s
if not should_do_past1s then
local is_form_I = false
for _, vform in ipairs(alternant_multiword_spec.verb_forms) do
if vform == "I" then
is_form_I = true
break
end
end
if is_form_I then
require(inflection_utilities_module).map_word_specs(alternant_multiword_spec, function(base)
if base.verb_form == "I" then
for _, vowel_spec in ipairs(base.conj_vowels) do
-- For form-I geminate verbs, the final vowel of the past is elided in the citation form.
-- We want to display it for all cases other than active a~u and a~i (the most common
-- cases).
if vowel_spec.weakness == "geminate" then
if ar_verb.is_passive_only(base.passive) then
should_do_past1s = true
break
end
local past_vowel = ar_verb.rget(vowel_spec.past)
local nonpast_vowel = ar_verb.rget(vowel_spec.nonpast)
if not (past_vowel == ar.A and (nonpast_vowel == ar.U or nonpast_vowel == ar.I)) then
should_do_past1s = true
break
end
end
end
-- FIXME, provide way of breaking early from map_word_specs().
end
end)
end
end
local past1s
if should_do_past1s then
past1s, _ = do_slot({"past_1s", "past_pass_1s"}, args.past1s, "บุรุษที่หนึ่งเอกพจน์อดีตกาล")
if past1s then
insert(data.inflections, past1s)
end
end
local nonpast_slots
if not past_slot or past_slot:find("^past_") then
nonpast_slots = {"ind_3ms", "ind_pass_3ms", "imp_2ms"}
else
nonpast_slots = {}
end
local nonpast, _ = do_slot(nonpast_slots, args.nonpast, "ไม่ใช่อดีตกาล")
if nonpast then
insert(data.inflections, nonpast)
end
local vn, _ = do_slot({"vn"}, args.vn, "คำกริยานาม")
if vn then
insert(data.inflections, vn)
end
-- FIXME: Should we insert categories? Conjugation also does it and is more likely to be accurate.
--for _, cat in ipairs(alternant_multiword_spec.categories) do
-- insert(data.categories, cat)
--end
--[=[
-- FIXME: Review this to see if we need to port it.
-- If the user didn't explicitly specify head=, or specified exactly one head (not 2+) and we were able to
-- incorporate any links in that head into the 1= specification, use the infinitive generated by
-- [[Module:pt-verb]] in place of the user-specified or auto-generated head. This was copied from
-- [[Module:it-headword]], where doing this gets accents marked on the verb(s). We don't have accents marked on
-- the verb but by doing this we do get any footnotes on the infinitive propagated here. Don't do this if the
-- user gave multiple heads or gave a head with a multiword-linked verbal expression such as Italian
-- '[[dare esca]] [[al]] [[fuoco]]' (FIXME: give Portuguese equivalent).
if not data.user_specified_heads[1] or (
not data.user_specified_heads[2] and alternant_multiword_spec.incorporated_headword_head_into_lemma
) then
data.heads = {}
for _, lemma_obj in ipairs(alternant_multiword_spec.forms.infinitive_linked) do
local quals, refs = require(inflection_utilities_module).
convert_footnotes_to_qualifiers_and_references(lemma_obj.footnotes)
insert(data.heads, {term = lemma_obj.form, q = quals, refs = refs})
end
end
]=]
end
}
-----------------------------------------------------------------------------------------
-- Generic parts of speech --
-----------------------------------------------------------------------------------------
pos_functions.head_with_gender = {
params = function()
return {
[3] = {type = "genders"},
}
end,
func = function(data, args)
handle_gender(data, args, "nonlemma", 3)
end,
}
return export
1e744v5mn6bda9swd4kpefhlgwvbes6
มอดูล:category tree/รูปผัน
828
51422
5723277
5688013
2026-05-20T04:54:48Z
OctraBot
3198
5723277
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local en_utilities_module = "Module:en-utilities"
local th_utilities_module = "Module:th-utilities" --th
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["รูปผัน"] = {
description = "{{{langname}}} inflected forms of other [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "มูลฐาน",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["non-lemma forms"] = labels["รูปผัน"]
-- Handle specific types of non-lemma forms. Each spec is of the form {POS, PARENT_POS} where POS is the singular form
-- of a part of speech for which non-lemma forms exist (e.g. 'determiner' is listed because 'determiner forms' exist),
-- and PARENT_POS is the singular form of the parent category to add the category to. For example, the spec
-- {"circumfix", "morpheme"} means that 'circumfix forms' categories have the corresponding 'morpheme forms' categories
-- as their first parent. The second parent is the POS itself; e.g. 'morpheme forms' has 'morphemes' as its second
-- parent, with a sort key that places 'morpheme forms' at the beginning of the child categories. If PARENT_POS is
-- 'false', only the second parent appears as the parent. If a spec is a single string POS, the PARENT_POS defaults to
-- "non-lemma"; e.g. if the spec is "adjective", then 'adjective forms' categories have the corresponding
-- 'non-lemma forms' category as their first parent.
for _, spec in ipairs {
"คำคุณศัพท์",
"คำกริยาวิเศษณ์",
{"คำกำกับนาม", "ตัวกำหนด"},
{"หน่วยคำเติมคร่อม", "หน่วยคำเติม"},
"คำลักษณนาม",
{"คำคุณศัพท์ขั้นกว่า", false},
{"คำกริยาวิเศษณ์ขั้นกว่า", false},
{"ตัวกำหนดขั้นกว่า", false},
{"คำสรรพนามขั้นกว่า", false},
"คำสันธาน",
"ตัวกำหนด",
{"คำคุณศัพท์ขั้นเท่า", false},
{"คำกริยาวิเศษณ์ขั้นเท่า", false},
{"exaggerated adjective", false},
{"คำคุณศัพท์ขั้นเกิน", false},
{"รูปกริยากลาง", false},
"คำอุทาน",
"หน่วยคำเติม",
"คำนาม",
"เลข",
"รูปกริยาขยาย",
"คำอนุภาค",
{"รูปกริยาขยายอดีตกาล", "รูปกริยาขยาย"},
"predicative",
{"อุปสรรค", "หน่วยคำเติม"},
"คำวิสามานยนาม",
"คำปัจฉบท",
"คำบุพบท",
"คำสรรพนาม",
{"ปัจจัย", "หน่วยคำเติม"},
"คำกริยา",
{"คำคุณศัพท์ขั้นสุด", false},
{"คำกริยาวิเศษณ์ขั้นสุด", false},
{"ตัวกำหนดขั้นสุด", false},
{"คำสรรพนามขั้นสุด", false},
} do
local pos, parent_pos
if type(spec) == "table" then
pos, parent_pos = unpack(spec)
else
pos = spec
parent_pos = "รูปผัน"
end
local plpos = --[[require(en_utilities_module).pluralize(pos)]] pos
local parents = {}
if parent_pos ~= false then
--table.insert(parents, parent_pos .. " forms")
local parent_pos_form = require(th_utilities_module).th_pos_to_form(parent_pos)
table.insert(parents, parent_pos_form)
end
table.insert(parents, {name = plpos, sort = "**"})
local pos_form = require(th_utilities_module).th_pos_to_form(plpos)
--labels[pos .. " forms"] = {
labels[pos_form] = {
description = ("{{{langname}}} %s that are inflected to display grammatical relations other than the main form."):format(plpos),
parents = parents,
}
end
labels["รูปกริยาขยายกรรตุวาจก"] = {
description = "{{{langname}}} participles that express an agent actively performing an action.",
parents = {"รูปกริยาขยาย"},
}
labels["active participles"] = labels["รูปกริยาขยายกรรตุวาจก"]
labels["รูปกริยาขยายเชิงคุณศัพท์กรรตุวาจก"] = {
description = "{{{langname}}} participles that function as adjectives and express an agent actively performing an action.",
parents = {"รูปกริยาขยาย", "คำคุณศัพท์"},
}
labels["active adjectival participles"] = labels["รูปกริยาขยายเชิงคุณศัพท์กรรตุวาจก"]
labels["รูปกริยาขยายเชิงคุณศัพท์"] = {
description = "{{{langname}}} participles that function as adjectives.",
parents = {"รูปกริยาขยาย", "คำคุณศัพท์"},
}
labels["adjectival participles"] = labels["รูปกริยาขยายเชิงคุณศัพท์"]
labels["adjective construct forms"] = {
description = "{{{langname}}} adjectives that are inflected to modify a noun in a genitive construction.",
parents = {{name = "รูปคุณศัพท์", sort = "construct"}},
}
labels["รูปคุณศัพท์ชี้เฉพาะ"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to specific and identifiable nouns.",
parents = {{name = "รูปคุณศัพท์", sort = "ชี้เฉพาะ"}},
}
labels["adjective definite forms"] = labels["รูปคุณศัพท์ชี้เฉพาะ"]
labels["รูปคุณศัพท์ทวิพจน์"] = {
description = "{{{langname}}} adjectives that are inflected to be quantified as two.",
parents = {{name = "รูปคุณศัพท์", sort = "ทวิพจน์"}},
}
labels["adjective dual forms"] = labels["รูปคุณศัพท์ทวิพจน์"]
labels["รูปคุณศัพท์เพศหญิง"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns associated to female beings.",
parents = {{name = "รูปคุณศัพท์", sort = "หญิง"}},
}
labels["adjective feminine forms"] = labels["รูปคุณศัพท์เพศหญิง"]
labels["รูปกริยาขยายเชิงกริยาวิเศษณ์"] = {
description = "{{{langname}}} participles that function as adverbs.",
parents = {"รูปกริยาขยาย", "คำกริยาวิเศษณ์"},
}
labels["adverbial participles"] = labels["รูปกริยาขยายเชิงกริยาวิเศษณ์"]
labels["agent participles"] = {
description = "{{{langname}}} participles that express an agent by who something is done.",
parents = {"รูปกริยาขยาย"},
}
labels["anterior adverbial participles"] = {
description = "{{{langname}}} participles that function as adverbs and express an action completed before the one expressed by the primary verb.",
parents = {"รูปกริยาขยาย", "คำกริยาวิเศษณ์"},
}
labels["รูปลักษณนามเอกพจน์"] = {
description = "{{{langname}}} classifiers that are inflected for singular number.",
parents = {"รูปลักษณนาม"},
}
labels["classifier singular forms"] = labels["รูปลักษณนามเอกพจน์"]
labels["collective plurals"] = {
description = "{{{langname}}} nominal plural forms with specifically collective semantics.",
parents = {"รูปนาม"},
}
labels["elative adjectives"] = {
description = "{{{langname}}} adjectives that express attributes in a relatively higher degree, or in the highest possible degree.",
parents = {"รูปคุณศัพท์"},
}
labels["contemporary adverbial participles"] = {
description = "{{{langname}}} participles that function as adverbs and express an action occuring simultaneously with the one expressed by the primary verb.",
parents = {"รูปกริยาขยาย", "คำกริยาวิเศษณ์"},
}
labels["converbs"] = {
description = "{{{langname}}} verb forms that build clauses which function as adverbials.",
parents = {"รูปกริยา"},
}
for _, pos in ipairs { "คำคุณศัพท์", "คำกริยาวิเศษณ์", "ตัวกำหนด", "คำสรรพนาม" } do
local plpos = pos --.. "s"
local pos_form = require(th_utilities_module).th_pos_to_form(plpos)
labels[plpos .. "ขั้นกว่า"] = {
description = "{{{langname}}} " .. plpos .. " that express attributes in a relatively higher degree, or serve to set apart one thing from another.",
parents = {pos_form},
}
end
labels["determiner comparative forms"] = {
description = "{{{langname}}} determiners that are inflected to display relative degrees of given qualities between nouns.",
parents = {{name = "รูปตัวกำหนด", sort = "รูปขั้นกว่า"}},
}
labels["รูปกริยาเป็นนามบอกความเล็ก"] = {
description = "{{{langname}}} diminutives of gerunds.",
parents = {"รูปกริยา"},
}
labels["diminutive gerunds"] = labels["รูปกริยาเป็นนามบอกความเล็ก"]
labels["คำคุณศัพท์ขั้นเท่า"] = {
description = "{{{langname}}} adjectives that express similar degrees of given qualities between nouns, i.e. '''A''' is as ''(insert adjective)'' as '''B'''.",
parents = {"รูปคุณศัพท์"},
}
labels["equative adjectives"] = labels["คำคุณศัพท์ขั้นเท่า"]
labels["คำกริยาวิเศษณ์ขั้นเท่า"] = {
description = "{{{langname}}} adverbs that express similar degrees of given qualities between verbs, i.e. '''A''' as ''(insert adverb)'' as '''B'''.",
parents = {"รูปกริยาวิเศษณ์"},
}
labels["equative adverbs"] = labels["คำกริยาวิเศษณ์ขั้นเท่า"]
labels["exaggerated adjectives"] = {
description = "{{{langname}}} adjectives that express attributes in an even more magnified degree than the superlative forms.",
parents = {"รูปคุณศัพท์"},
}
labels["คำคุณศัพท์ขั้นเกิน"] = {
description = "{{{langname}}} adjectives that express attributes in an excessive degree.",
parents = {"รูปคุณศัพท์"},
}
labels["excessive adjectives"] = labels["คำคุณศัพท์ขั้นเกิน"]
labels["คำกริยาวิเศษณ์ขั้นเกิน"] = {
description = "{{{langname}}} adverbs that express attributes in an excessive degree.",
parents = {"รูปกริยาวิเศษณ์"},
}
labels["excessive adverbs"] = labels["คำกริยาวิเศษณ์ขั้นเกิน"]
labels["รูปคุณศัพท์ขยาย"] = {
parents = {"รูปคุณศัพท์"},
}
labels["extended adjective forms"] = labels["รูปคุณศัพท์ขยาย"]
labels["รูปกริยาขยายกรรตุวาจกอนาคตกาล"] = {
description = "{{{langname}}} participles that express an agent actively performing an action in future time.",
parents = {"รูปกริยาขยาย"},
}
labels["future active participles"] = labels["รูปกริยาขยายกรรตุวาจกอนาคตกาล"]
labels["รูปกริยาขยายอนาคตกาล"] = {
description = "{{{langname}}} participles that indicate future events.",
parents = {"รูปกริยาขยาย"},
}
labels["future participles"] = labels["รูปกริยาขยายอนาคตกาล"]
labels["รูปกริยาขยายกรรมวาจกอนาคตกาล"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in future time.",
parents = {"รูปกริยาขยาย"},
}
labels["future passive participles"] = labels["รูปกริยาขยายกรรมวาจกอนาคตกาล"]
local function gerund_description(data)
local default_text = "{{{langname}}} verbs that are conjugated to indicate ongoing events at unspecified moments."
if not data.lang then
-- This happens e.g. in [[:Category:Gerunds by language]].
return default_text
else
local langcode = data.lang:getCode()
if langcode == "sq" or langcode == "kmr" or langcode == "liv" or data.lang:inFamily("gem", "itc") then
return "{{{langname}}} forms that generally act as an action noun for the verb that they are formed from."
elseif langcode == "sa" or langcode == "pi" then
return "{{{langname}}} verb forms used in a clause to indicate a prior action by the subject of the sentence."
else
return default_text
end
end
end
labels["รูปกริยาเป็นนาม"] = {
description = gerund_description,
additional = "{{small|[Edit function gerund_description() in [[Module:category tree/non-lemma forms]] to change this description.]}}",
parents = {"รูปกริยา"},
}
labels["gerunds"] = labels["รูปกริยาเป็นนาม"]
labels["imperfect participles"] = {
description = "{{{langname}}} participles that express an ongoing or continuous action.",
parents = {"รูปกริยาขยาย"},
}
labels["รูปกริยากลาง"] = {
description = "{{{langname}}} non-finite verb forms of various kinds.",
parents = {"รูปกริยา"},
}
labels["infinitives"] = labels["รูปกริยากลาง"]
labels["intensive adjectives"] = {
description = "{{{langname}}} adjectives that are derived from a base word to express a stronger concept than the base word.",
parents = {"รูปคุณศัพท์"},
}
labels["manuscript forms"] = {
description = "{{{langname}}} words as they appear in original manuscripts.",
parents = {"รูปผัน"},
}
labels["รูปกลาย"] = {
description = "{{{langname}}} terms whose initial consonant is mutated due to the effect of the preceding word.",
parents = {"รูปผัน"},
}
labels["mutated forms"] = labels["รูปกลาย"]
local inflected_pos_for_mutation = {
"คำคุณศัพท์",
"คำกริยาวิเศษณ์",
"ตัวกำหนด",
"คำอุทาน",
"คำนาม",
"เลข",
"รูปกริยาขยาย",
"คำอนุภาค",
"คำอุปสรรค",
"คำบุพบท",
"คำสรรพนาม",
"คำวิสามานยนาม",
"คำกริยา",
}
for _, pos in ipairs(inflected_pos_for_mutation) do
local plpos = --[[require("Module:string utilities").pluralize(pos)]] pos
local pos_form = require(th_utilities_module).th_pos_to_form(plpos)
labels[pos_form .. "กลาย"] = {
description = "{{{langname}}} " .. plpos .. " whose initial consonant is mutated due to the effect of the preceding word.",
parents = {pos_form, {name = "รูปกลาย", sort = pos}},
}
end
local mutation_types = {
-- FIXME, we should add these terms to [[Appendix:Glossary]] and link to them.
["eclipsed"] = "[[Appendix:Irish mutations#Eclipsis|eclipsis]]",
["lenited"] = "[[Appendix:Irish mutations#Lenition|lenition]]",
["h-prothesized"] = "[[h-prothesis]]",
["t-prothesized"] = "[[t-prothesis]]",
["aspirate-mutation"] = "[[aspirate mutation]]",
["hard-mutation"] = "[[hard mutation]]",
["mixed-mutation"] = "[[mixed mutation]]",
["nasal-mutation"] = "[[nasal mutation]]",
["soft-mutation"] = "[[soft mutation]]",
}
for muttype, desc in pairs(mutation_types) do
labels["รูปกลาย" .. muttype] = {
description = "{{{langname}}} terms whose initial consonant is mutated through " .. desc .. ", due to the effect of the preceding word.",
parents = {"รูปกลาย"},
}
end
labels["negative participles"] = {
description = "{{{langname}}} participles that express lack of an action being performed.",
parents = {"รูปกริยาขยาย"},
}
labels["รูปกริยาขยายเชิงนาม"] = {
description = "{{{langname}}} participles that function as nouns.",
parents = {"รูปกริยาขยาย", "คำนาม"},
}
labels["nominal participles"] = labels["รูปกริยาขยายเชิงนาม"]
labels["noun construct forms"] = {
description = "{{{langname}}} nouns that are inflected to modify a noun in a genitive construction.",
parents = {{name = "รูปนาม", sort = "construct"}},
}
labels["รูปนามชี้เฉพาะ"] = {
description = "{{{langname}}} nouns that are inflected to designate an identified object.",
parents = {{name = "รูปนาม", sort = "ชี้เฉพาะ"}},
}
labels["noun definite forms"] = labels["รูปนามชี้เฉพาะ"]
labels["รูปนามเพศหญิง"] = {
description = "{{{langname}}} nouns that are inflected to be associated to female beings.",
parents = {{name = "รูปนาม", sort = "หญิง"}},
}
labels["noun feminine forms"] = labels["รูปนามเพศหญิง"]
labels["รูปนามไม่ชี้เฉพาะ"] = {
description = "{{{langname}}} nouns that are inflected to designate an unidentified object.",
parents = {{name = "รูปนาม", sort = "ไม่ชี้เฉพาะ"}},
}
labels["noun indefinite forms"] = labels["รูปนามไม่ชี้เฉพาะ"]
labels["รูปนามเพศชาย"] = {
description = "{{{langname}}} nouns that are inflected to be associated to male beings.",
parents = {{name = "รูปนาม", sort = "masculine"}},
}
labels["noun masculine forms"] = labels["รูปนามเพศชาย"]
labels["รูปนามบอกความน้อย"] = {
description = "{{{langname}}} nouns that are inflected to be quantified as between two (or three in some languages with dual number) and ten.",
parents = {{name = "รูปนาม", sort = "ตัวบอกความน้อย"}},
}
labels["noun paucal forms"] = labels["รูปนามบอกความน้อย"]
labels["noun possessive forms"] = {
description = "{{{langname}}} nouns that are inflected to indicate possession.",
parents = {{name = "รูปนาม", sort = "possessive"}},
}
labels["รูปกริยาขยาย"] = {
description = "{{{langname}}} verbal forms that behave syntactically like adjectives (or sometimes adverbs), and in some languages are often used in compound conjugations and/or reduced relative clauses.",
parents = {"รูปกริยา"},
}
labels["participles"] = labels["รูปกริยาขยาย"]
labels["รูปกริยาขยายกรรมวาจก"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it.",
parents = {"รูปกริยาขยาย"},
}
labels["passive participles"] = labels["รูปกริยาขยายกรรมวาจก"]
labels["รูปกริยาขยายเชิงคุณศัพท์กรรมวาจก"] = {
description = "{{{langname}}} participles that function as adjectives and express a patient having an action performed on it.",
parents = {"รูปกริยาขยาย", "คำคุณศัพท์"},
}
labels["passive adjectival participles"] = labels["รูปกริยาขยายเชิงคุณศัพท์กรรมวาจก"]
labels["past active aorist participles"] = {
description = "{{{langname}}} participles that express completed events in past time.",
parents = {"รูปกริยาขยาย"},
}
labels["past active imperfect participles"] = {
description = "{{{langname}}} participles that express ongoing events in past time.",
parents = {"รูปกริยาขยาย"},
}
labels["รูปกริยาขยายกรรตุวาจกอดีตกาล"] = {
description = "{{{langname}}} participles that express an agent actively performing an action in past time.",
parents = {"รูปกริยาขยาย"},
}
labels["past active participles"] = labels["รูปกริยาขยายกรรตุวาจกอดีตกาล"]
labels["รูปกริยาขยายเชิงกริยาวิเศษณ์อดีตกาล"] = {
description = "{{{langname}}} participles that function as adverbs and express actions in past time.",
parents = {"รูปกริยาขยายเชิงกริยาวิเศษณ์", "คำกริยาวิเศษณ์"},
}
labels["past adverbial participles"] = labels["รูปกริยาขยายเชิงกริยาวิเศษณ์อดีตกาล"]
labels["รูปกริยาขยายอดีตกาล"] = {
description = "{{{langname}}} participles that express actions in past time.",
parents = {"รูปกริยาขยาย"},
}
labels["past participles"] = labels["รูปกริยาขยายอดีตกาล"]
labels["รูปกริยาขยายกรรมวาจกอดีตกาล"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in past time.",
parents = {"รูปกริยาขยาย"},
}
labels["past passive participles"] = labels["รูปกริยาขยายกรรมวาจกอดีตกาล"]
labels["perfect participles"] = {
description = "{{{langname}}} participles that express having completed or undergone an action.",
parents = {"รูปกริยาขยาย"},
}
labels["perfect active participles"] = {
description = "{{{langname}}} participles that express an agent having completed an action.",
parents = {"รูปกริยาขยาย"},
}
labels["prepositional pronouns"] = {
description = "{{{langname}}} pronouns that are combined with a preposition.",
umbrella_parents = "Lemmas subcategories by language",
parents = {"รูปสรรพนาม", {name = "คำบุพบท", sort = "คำสรรพนาม"}},
}
labels["รูปกริยาขยายกรรตุวาจกปัจจุบันกาล"] = {
description = "{{{langname}}} participles that express an agent actively performing an action in present time.",
parents = {"รูปกริยาขยาย"},
}
labels["present active participles"] = labels["รูปกริยาขยายกรรตุวาจกปัจจุบันกาล"]
labels["รูปกริยาขยายเชิงกริยาวิเศษณ์ปัจจุบันกาล"] = {
description = "{{{langname}}} participles that function as adverbs and express actions in present time.",
parents = {"รูปกริยาขยายเชิงกริยาวิเศษณ์", "คำกริยาวิเศษณ์"},
}
labels["present adverbial participles"] = labels["รูปกริยาขยายเชิงกริยาวิเศษณ์ปัจจุบันกาล"]
labels["present middle participles"] = {
description = "{{{langname}}} participles that express an agent performing an action in present time in middle voice.",
parents = {"รูปกริยาขยาย"},
}
labels["รูปกริยาขยายปัจจุบันกาล"] = {
description = "{{{langname}}} participles that express actions occurring in the present time.",
parents = {"รูปกริยาขยาย"},
}
labels["present participles"] = labels["รูปกริยาขยายปัจจุบันกาล"]
labels["รูปกริยาขยายกรรมวาจกปัจจุบันกาล"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in present time.",
parents = {"รูปกริยาขยาย"},
}
labels["present passive participles"] = labels["รูปกริยาขยายกรรมวาจกปัจจุบันกาล"]
labels["pronoun possessive forms"] = {
description = "{{{langname}}} pronouns that are inflected to indicate possession.",
parents = {{name = "รูปสรรพนาม", sort = "possessive"}},
}
labels["pronunciation variants"] = {
description = "{{{langname}}} words that have alternative pronunciation-based spellings.",
parents = {"รูปผัน"},
}
labels["singulatives"] = {
description = "{{{langname}}} plural nouns that are inflected for singular number.",
parents = {"รูปนาม"},
}
for _, pos in ipairs { "คำคุณศัพท์", "คำกริยาวิเศษณ์", "ตัวกำหนด", "คำสรรพนาม" } do
local plpos = pos --.. "s"
local pos_form = require(th_utilities_module).th_pos_to_form(plpos)
labels[plpos .. "ขั้นสุด"] = {
description = "{{{langname}}} " .. plpos .. " that express attributes in their highest possible degrees.",
parents = {pos_form},
}
end
labels["verb causative forms"] = {
description = "{{{langname}}} verbs that are conjugated to express actions caused by external conditions.",
parents = {{name = "รูปกริยา", sort = "causative"}},
}
labels["verb irregular forms"] = {
description = "{{{langname}}} verb forms that don't follow standard patterns of conjugation.",
parents = {{name = "รูปกริยา", sort = "irregular"}},
}
labels["verb negative forms"] = {
description = "{{{langname}}} verbs that are conjugated to express negation.",
parents = {{name = "รูปกริยา", sort = "negative"}},
}
labels["verb passive forms"] = {
description = "{{{langname}}} verbs that are conjugated to direct the action to the grammatical subject, by means of passive voice.",
parents = {{name = "รูปกริยา", sort = "passive"}},
}
labels["verb simple past forms"] = {
description = "{{{langname}}} verbs that are conjugated to indicate events before the current moment.",
parents = {{name = "รูปกริยา", sort = "simple past"}},
}
local labels2 = {}
-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not
-- already present.
for key, data in pairs(labels) do
labels2[key] = data
if not data.umbrella_parents then
data.umbrella_parents = "หมวดหมู่ย่อยของรูปผันแบ่งตามภาษา"
end
labels2[key .. "ที่สืบสร้าง"] = {
description = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|reconstructed]].",
umbrella_parents = "หมวดหมู่ย่อยของรูปผันแบ่งตามภาษา",
parents = {key, {name = "ศัพท์ที่สืบสร้าง", sort = key}}
}
end
-- These are top-level; don't (for the moment at least) add 'reconstructed alternative forms'.
-- These are created by setting the altform= parameter to {{head}} or full_headword() in [[Module:headword]]. See
-- [[Wiktionary:Beer parlour/2024/June#Decluttering the altform mess]] for discussion.
labels2["รูปแบบอื่น"] = {
description = "{{{langname}}} alternative forms of [[Wiktionary:Lemmas|lemmas]], i.e. variant forms or spellings that are attested but secondary, and typically not in common use.",
additional = "Such terms may be uncommon spelling variants; dialectal forms; historical, archaic or obsolete spellings; spellings in less-used scripts; or the like. " ..
"They are kept out of the lemma category to avoid cluttering it. Commonly used variants should not be placed in this category, but should be treated as lemmas.",
umbrella_parents = "มูลฐาน",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels2["alternative forms"] = labels2["รูปแบบอื่น"]
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["หมวดหมู่ย่อยของรูปผันแบ่งตามภาษา"] = {
description = "Umbrella categories covering topics related to non-lemma forms.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"หมวดหมู่ใหญ่รวมหัวข้อ",
{name = "รูปผัน", is_label = true, sort = " "},
},
}
return {LABELS = labels2, RAW_CATEGORIES = raw_categories}
ekzhivlf4s8y3gchzga1x354rf8792u
แม่แบบ:ar-root
10
144345
5723268
511731
2026-05-20T04:38:06Z
OctraBot
3198
5723268
wikitext
text/x-wiki
{{#invoke:sem-arb-utilities|root|lang=ar|plain=true}}<noinclude>{{documentation}}</noinclude>
iikovjqcrd38omyf9t2xqjiby9j55kt
มอดูล:ar-utilities
828
144346
5723266
1608771
2026-05-20T04:01:56Z
OctraBot
3198
5723266
Scribunto
text/plain
local export = {}
local m_utilities = require("Module:utilities")
local lang = require("Module:languages").getByCode("ar")
local sc = require("Module:scripts").getByCode("Arab")
local rfind = mw.ustring.find
local rsubn = mw.ustring.gsub
local u = require("Module:string/char")
local consonants = "[بتثجحخدذرزسشصضطظعغقفلكمنهويء]"
-- version of rsubn() that discards all but the first return value
function export.rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
local rsub = export.rsub
-- synthesize a frame so that exported functions meant to be called from
-- templates can be called from the debug console.
function export.debug_frame(parargs, args)
return { args = args, getParent = function() return { args = parargs } end }
end
function export.catfix()
return m_utilities.catfix(lang, sc)
end
--------------------------- diacritics, letters and combinations ------------------------------
-- hamza variants
local HAMZA = u(0x0621) -- hamza on the line (stand-alone hamza) = ء
local HAMZA_ON_ALIF = u(0x0623)
local HAMZA_ON_WAW = u(0x0624)
local HAMZA_UNDER_ALIF = u(0x0625)
local HAMZA_ON_YA = u(0x0626)
local HAMZA_PH = u(0xFFF0) -- hamza placeholder
export.HAMZA = HAMZA
export.HAMZA_ON_ALIF = HAMZA_ON_ALIF
export.HAMZA_ON_WAW = HAMZA_ON_WAW
export.HAMZA_UNDER_ALIF = HAMZA_UNDER_ALIF
export.HAMZA_ON_YA = HAMZA_ON_YA
export.HAMZA_PH = HAMZA_PH
-- 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)
-- Pattern matching any diacritics that may be on a consonant other than shadda
local DIACRITIC_ANY_BUT_SH = "[" .. A .. I .. U .. AN .. IN .. UN .. SK .. DAGGER_ALIF .. "]"
-- Pattern matching short vowels
local AIU = "[" .. A .. I .. U .. "]"
-- Pattern matching any diacritics that may be on a consonant
local DIACRITIC = SH .. "?" .. DIACRITIC_ANY_BUT_SH
export.A = A
export.AN = AN
export.U = U
export.UN = UN
export.I = I
export.IN = IN
export.SK = SK
export.SH = SH
export.DAGGER_ALIF = DAGGER_ALIF
-- Pattern matching any diacritics that may be on a consonant other than shadda
export.DIACRITIC_ANY_BUT_SH = DIACRITIC_ANY_BUT_SH
-- Pattern matching short vowels
export.AIU = AIU
-- Pattern matching any diacritics that may be on a consonant
export.DIACRITIC = DIACRITIC
-- various letters and signs
local ALIF = u(0x0627) -- ʾalif = ا
local ALIF_WASLA = u(0x0671) -- ʾalif waṣla = hamzatu l-waṣl = ٱ
local AMAQ = u(0x0649) -- ʾalif maqṣūra = ى
local AMAD = u(0x0622) -- ʾalif madda = آ
local TAM = u(0x0629) -- tāʾ marbūṭa = ة
local WAW = u(0x0648) -- wāw = و
local W = WAW
local YA = u(0x064A) -- yā = ي
local Y = YA
local T = u(0x062A) -- tāʾ = ت
local HYPHEN = u(0x0640)
local N = u(0x0646) -- nūn = ن
local LRM = u(0x200E) -- left-to-right mark
export.ALIF = ALIF
export.ALIF_WASLA = ALIF_WASLA
export.AMAQ = AMAQ
export.AMAD = AMAD
export.TAM = TAM
export.WAW = WAW
export.W = W
export.YA = YA
export.Y = Y
export.T = T
export.HYPHEN = HYPHEN
export.N = N
export.LRM = LRM
-- common combinations
local AW = A .. W -- diphthong, construct state of some final-weak nouns, 3sm past of some final-weak verbs, etc.
local AY = A .. Y -- diphthong, construct state of most final-weak nouns, 3sm past of most final-weak verbs, etc.
local IY = I .. Y -- equivalent to long ī
local UW = U .. W -- equivalent to long ū
local AA = A .. ALIF -- long ā
local AAMAQ = A .. AMAQ -- vocalized ʾalif maqṣūra
local II = IY -- long ī
local IIN = IY .. N -- short strong masculine oblique plural ending
local IINA = IIN .. A -- full strong msaculine oblique plural ending
local UU = UW -- long ū
local UUN = UU .. N -- short strong masculine nominative plural ending
local UUNA = UUN .. A -- full strong masculine nominative plural ending
local AWN = AW .. SK .. N -- short verbal ending of some final-weak verbs
local AWNA = AWN .. A -- full verbal ending of some final-weak verbs
local AYN = AY .. SK .. N -- short oblique dual ending, verbal ending of some final-weak verbs
local AYNI = AYN .. I -- full oblique dual ending
local AYNA = AYN .. A -- full verbal ending of some final-weak verbs
local AAN = AA .. N -- short nominative dual ending
local AANI = AAN .. I -- full nominative dual ending
local UNU = "[" .. UN .. U .. "]" -- matches nominative singular of strong masculine triptotes and diptotes
local UNUOPT = UNU .. "?" -- optional equivalent of UNU, for short forms
local AH = A .. TAM -- feminine ending
local AAH = AA .. TAM -- final-weak feminine ending
local AAT = AA .. T -- short strong feminine plural ending
local AATUN = AAT .. UN -- full strong nominative feminine plural ending
local IYAH = I .. Y .. AH -- ending of some final-weak feminines
local AYAAT = AY .. AAT -- final-weak plural ending
local AYAAN = AY .. AAN -- final-weak dual ending
local IYAAT = IY .. AAT -- final-weak plural ending
local IYAAN = IY .. AAN -- final-weak dual ending
local IYY = IY .. SH -- masculine nisba ending
local IYYAH = IY .. SH .. AH -- feminine nisba ending
local ATAAN = A .. T .. AAN -- feminine dual ending
local AATAAN = AAT .. AAN -- final-weak feminine dual ending
-- other possibilities (currently found in verb module):
-- AT, AYSK, AWSK, N, NA, NI, M, MA, MU, TA, TU, _I = ALIF .. I, _U = ALIF .. U
export.AW = AW
export.AY = AY
export.IY = IY
export.UW = UW
export.AA = AA
export.AAMAQ = AAMAQ
export.II = II
export.IIN = IIN
export.IINA = IINA
export.UU = UU
export.UUN = UUN
export.UUNA = UUNA
export.AWN = AWN
export.AWNA = AWNA
export.AYN = AYN
export.AYNI = AYNI
export.AYNA = AYNA
export.AAN = AAN
export.AANI = AANI
export.UNU = UNU
export.UNUOPT = UNUOPT
export.AH = AH
export.AAH = AAH
export.AAT = AAT
export.AATUN = AATUN
export.IYAH = IYAH
export.AYAAT = AYAAT
export.AYAAN = AYAAN
export.IYAAT = IYAAT
export.IYAAN = IYAAN
export.IYY = IYY
export.IYYAH = IYYAH
export.ATAAN = ATAAN
export.AATAAN = AATAAN
function export.reorder_shadda(text)
-- 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. (For example, the code in
-- remove_in would fail to detect the -in in مُتَرَبٍّ because the shadda
-- would come after the -in.)
text = rsub(text, "(" .. DIACRITIC_ANY_BUT_SH .. ")" .. SH, SH .. "%1")
return text
end
function export.undo_reorder_shadda(text)
return mw.ustring.toNFC(text)
end
--------------------------- hamza processing ------------------------------
local hamza_subs = {
--------------------------- handle initial hamza --------------------------
-- put initial hamza on a seat according to following vowel.
{ "^" .. HAMZA_PH .. "([" .. I .. YA .. "])", HAMZA_UNDER_ALIF .. "%1" },
{ " " .. HAMZA_PH .. "([" .. I .. YA .. "])", " " .. HAMZA_UNDER_ALIF .. "%1" },
{ "^" .. HAMZA_PH, HAMZA_ON_ALIF }, -- if no vowel, assume a
{ " " .. HAMZA_PH, " " .. HAMZA_ON_ALIF }, -- if no vowel, assume a
----------------------------- handle final hamza --------------------------
-- "final" hamza may be followed by a short vowel or tanwīn sequence
-- use a previous short vowel to get the seat
{ "(" .. AIU .. ")(" .. HAMZA_PH .. ")(" .. DIACRITIC .. "?)$",
function(v, ham, diacrit)
ham = v == I and HAMZA_ON_YA or v == U and HAMZA_ON_WAW or HAMZA_ON_ALIF
return v .. ham .. diacrit
end
},
{ "(" .. AIU .. ")(" .. HAMZA_PH .. ")(" .. DIACRITIC .. "? )",
function(v, ham, diacrit)
ham = v == I and HAMZA_ON_YA or v == U and HAMZA_ON_WAW or HAMZA_ON_ALIF
return v .. ham .. diacrit
end
},
-- else hamza is on the line
{ HAMZA_PH .. "(" .. DIACRITIC .. "?)$", HAMZA .. "%1" },
---------------------------- handle medial hamza --------------------------
-- if long vowel or diphthong precedes, we need to ignore it.
{ "([" .. AMAD .. ALIF .. WAW .. YA .. "]" .. SK .. "?)(" .. HAMZA_PH .. ")(" .. SH .. "?)([^ ])",
function(prec, ham, shad, v2)
ham = (v2 == I or v2 == YA) and HAMZA_ON_YA or
(v2 == U or v2 == WAW) and HAMZA_ON_WAW or
rfind(prec, YA) and HAMZA_ON_YA or
HAMZA
return prec .. ham .. shad .. v2
end
},
-- otherwise, seat of medial hamza relates to vowels on one or both sides.
{ "([^ ])(" .. HAMZA_PH .. ")(" .. SH .. "?)(" .. AN .. "?[^ ])",
function(v1, ham, shad, v2)
ham = (v1 == I or v2 == I or v2 == YA) and HAMZA_ON_YA or
(v1 == U or v2 == U or v2 == WAW) and HAMZA_ON_WAW or
-- special exception for the accusative ending, in words like
-- جُزْءًا (juzʾan). By the rules of Thackston pp. 281-282 a
-- hamza-on-alif should appear, but that would result in
-- two alifs in a row, which is generally forbidden.
-- According to Haywood/Nahmad pp. 114-115, after sukūn before
-- the accusative ending (including when a pronominal suffix
-- follows) hamza is written on yāʾ if the previous letter
-- is connecting, else on the line. The only examples they
-- give involve preceding non-connecting z (جُزْءًا juzʾan and
-- (جُزْءَهُ juzʾahu) and preceding diphthongs, with the only
-- connecting letter being yāʾ, where we have hamza-on-yāʾ
-- anyway by the preceding regexp. Haywood/Nahmad's rule seems
-- too complicated, and since it conflicts with Thackston,
-- we only implement the case where otherwise two alifs would
-- appear with the indefinite accusative ending.
v2 == AN .. ALIF and HAMZA or
HAMZA_ON_ALIF
return v1 .. ham .. shad .. v2
end
},
--------------------------- handle alif madda -----------------------------
{ HAMZA_ON_ALIF .. A .. "?" .. ALIF, AMAD },
----------------------- catch any remaining hamzas ------------------------
{ HAMZA_PH, HAMZA }
}
function export.process_hamza(term)
-- convert HAMZA_PH into appropriate hamza seat
for _, sub in ipairs(hamza_subs) do
term = rsub(term, sub[1], sub[2])
end
-- sequence of hamza-on-wāw + wāw is problematic and leads to a preferred
-- alternative with some other type of hamza, as well as the original
-- sequence; sequence of wāw + hamza-on-wāw + wāw is especially problematic
-- and leads to two different alternatives with the original sequence not
-- one of them
if rfind(term, WAW .. "ؤُو") then
return { rsub(term, WAW .. "ؤُو", WAW .. "ئُو"), rsub(term, WAW .. "ؤُو", WAW .. "ءُو") }
elseif rfind(term, YA .. "ؤُو") then
return { rsub(term, YA .. "ؤُو", YA .. "ئُو"), term }
elseif rfind(term, ALIF .. "ؤُو") then
-- Here John Mace "Arabic Verbs" is inconsistent. In past-tense parts,
-- the preferred alternative has hamza on the line, whereas in
-- non-past parts the preferred alternative has hamza-on-yāʾ even
-- though the sequence of vowels is identical. It's too complicated to
-- propagate information about tense through to here so pick one.
return { rsub(term, ALIF .. "ؤُو", ALIF .. "ئُو"), term }
-- no alternative spelling in sequence of U/A + hamza-on-wāw + U + wāw;
-- sequence of I + hamza-on-wāw + U + wāw does not occur (has
-- hamza-on-yāʾ instead)
else
return { term }
end
end
----------------------------------- misc junk ---------------------------------
-- Used in {{ar-adj-in}} so that we can specify a full lemma rather than
-- requiring the user to truncate the -in ending. FIXME: Move ar-adj-in
-- into Lua.
function export.remove_in(frame)
local lemma = frame.args[1] or error("Lemma required.")
return rsub(export.reorder_shadda(lemma), IN .. "$", "")
end
-- Used in {{ar-adj-an}} so that we can specify a full lemma rather than
-- requiring the user to truncate the -an ending. FIXME: Move ar-adj-an
-- into Lua.
function export.remove_an(frame)
local lemma = frame.args[1] or error("Lemma required.")
return rsub(export.reorder_shadda(lemma), AN .. AMAQ .. "$", "")
end
-- Compare two words and find the alternation pattern (vowel changes, prefixes, suffixes etc.)
-- Still a WIP, doesn't work correctly yet.
function export.find_pattern(word1, word2)
return nil
end
function export.etymology(frame)
local text, categories = {}, {}
local linkText
local frame_params = {
[1] = { required = true },
}
local frame_args = require("Module:parameters").process(frame.args, frame_params)
local anchor = frame_args[1]
local data = {
["color adjective"] = {
anchor = "Color or defect adjectives",
text = "color adjective",
categories = { "color/defect adjectives" },
},
["defect adjective"] = {
anchor = "Color or defect adjectives",
text = "defect adjective",
categories = { "color/defect adjectives" },
},
}
local params = {
[1] = {},
["nocat"] = { type = "boolean", default = false },
["lc"] = { type = "boolean", default = false },
["nocap"] = { alias_of = "lc" },
["notext"] = { type = "boolean", default = false },
}
local args = require("Module:parameters").process(frame:getParent().args, params)
if anchor and data[anchor] then
local data = data[anchor]
anchor = data.anchor or error('The data table does not include an anchor for "' .. anchor .. '".')
linkText = data.text or error('The data table does not include link text for "' .. anchor .. '".')
if not args.lc then
linkText = rsubn(linkText, "^%a", function(a) return mw.ustring.upper(a) end)
end
if not args.notext then
table.insert(text, "[[Appendix:Arabic nominals#" .. anchor .. "|" .. linkText .. "]]")
end
if not args.nocat then
table.insert(categories, m_utilities.format_categories(data.categories, lang))
end
else
error('The anchor "' .. tostring(anchor) .. '" is not found in the list of anchors.')
end
return table.concat(text) .. table.concat(categories)
end
return export
b5yp8g0vr2gkhegct05upo1dfcwoet9
มอดูล:headword/data
828
162970
5723273
5686952
2026-05-20T04:48:34Z
OctraBot
3198
5723273
Scribunto
text/plain
local headword_page_module = "Module:headword/page"
local list_to_set = require("Module:table").listToSet
local data = {}
------ 1. Lists which are converted into sets. ------
--[==[ var:
Large pages where we disable label tracking, red link checking and similar.
]==]
data.large_pages = list_to_set {
-- pages that consistently hit timeouts
"a",
-- pages that sometimes hit timeouts
"A",
"baba",
"de",
"e",
"i",
"lima",
"o",
"u",
"и",
"山",
"子",
"月",
"一",
"人",
}
--[==[ var:
Map from singular to plural, and from plural to itself, for recognized parts of speech with irregular plurals. Most of
these are invariable plurals, e.g. `kanji` is its own plural; but we also have `mora` plural `morae`.
]==]
data.irregular_plurals = list_to_set({
"ชมาโว", --cmavo
"ชเมเน", --cmene
"ฟูฮิฝลา", --fu'ivla
"กิสมู", --gismu
"ฮั้นถื่อ", --Han tu
"ฮันจา", --hanja
"ฮั่นจื้อ", --hanzi
"ยฺหวืดเพ็ง", --jyutping
"คานะ", --kana
"คันจิ", --kanji
"ลุฌโว", --lujvo
"หนังสือวลี", --phrasebook
"พินอิน", --pinyin
"รัฟซี", --rafsi
}, function(_, item)
return item
end)
local irregular_plurals = data.irregular_plurals
-- Irregular non-zero plurals AND any regular plurals where the singular ends in "s",
-- because the module assumes that inputs ending in "s" are plurals. The singular and
-- plural both need to be added, as the module will generate a default plural if
-- the input doesn't match a key in this table.
for sg, pl in next, {
mora = "morae"
} do
irregular_plurals[sg], irregular_plurals[pl] = pl, pl
end
--[==[ var:
Recognized lemmas. If the part of speech in {{tl|head}} is set to one of these or its singular equivalent, the category
'LANG lemmas' will automatically be added. If the part of speech is not a singular or plural lemma or non-lemma form and
is not an abbreviation that expands to a recognized lemma or non-lemma form, the page will be added to various tracking
categories:
* [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos]]
* [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/LANG]]
* [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/pos/POS]]
* [[Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos/pos/POS/LANG]]
]==]
data.lemmas = list_to_set{
"คำย่อ", --abbreviations
"อักษรย่อรวมพยางค์", --acronyms
"คำคุณศัพท์", --adjectives
"adnominals",
"adpositions",
"คำกริยาวิเศษณ์", --adverbs
"หน่วยคำเติม", --affixes
"ambipositions",
"คำกำกับนาม", --articles
"หน่วยคำเติมคร่อม", --circumfixes
"circumpositions",
"คำลักษณนาม", --classifiers
"ชมาโว", --cmavo
"cmavo clusters",
"ชเมเน", --cmene
"combining forms",
"คำสันธาน", --conjunctions
"คำลักษณนาม", --counters = classifiers
"ตัวกำหนด", --determiners
"diacritical marks",
"ทวิอักษร", --digraphs
"equative adjectives",
"ฟูฮิฝลา", --fu'ivla
"กิสมู", --gismu
"อักษรจีน", --Han characters
"ฮั้นถื่อ", --Han tu
"ฮันจา", --hanja
"ฮั่นจื้อ", --hanzi
"ideophones",
"สำนวน", --idioms
"อาคม", --infixes
"อักษรย่อ", --initialisms
"เครื่องหมายซ้ำ", --iteration marks
"หน่วยคำเติมเชื่อม", --interfixes
"คำอุทาน", --interjections
"คานะ", --kana
"คันจิ", --kanji
"ตัวอักษร", --letters
"ตัวอักษรควบ", --ligatures
"logograms",
"ลุฌโว", --lujvo
"morae",
"หน่วยคำ", --morphemes
"non-constituents",
"คำนาม", --nouns
"จำนวน", --numbers
"ตัวเลข", --numeral symbols
"เลข", --numerals
"คำอนุภาค", --particles
"วลี", --phrases
"คำปัจฉบท", --postpositions
"postpositional phrases",
"predicatives",
"อุปสรรค", --prefixes
"prepositional phrases",
"คำบุพบท", --prepositions
"คำกริยาเติมหน้า", --preverbs
"pronominal adverbs",
"คำสรรพนาม", --pronouns
"คำวิสามานยนาม", --proper nouns
"สุภาษิต", --proverbs
"เครื่องหมายวรรคตอน", --punctuation marks
"relatives",
"ราก", --roots
"ต้นเค้าศัพท์", --stems
"ปัจจัย", --suffixes
"พยางค์", --syllables
"สัญลักษณ์", --symbols
"คำกริยา", --verbs
}
--[==[ var:
Recognized non-lemma forms. If the part of speech in {{tl|head}} is set to one of these or its singular equivalent, the
category 'LANG non-lemma forms' will automatically be added. If the part of speech is not a singular or plural lemma or
non-lemma form and is not an abbreviation that expands to a recognized lemma or non-lemma form, the page will be added
to various tracking categories; see the documentation of `data.lemmas`.
]==]
data.nonlemmas = list_to_set{
"รูปผันรูปกริยาขยายกรรตุวาจก", --active participle forms
"รูปกริยาขยายกรรตุวาจก", --active participles
"รูปกริยาขยายเชิงคุณศัพท์", --adjectival participles
"adjective case forms",
"รูปคุณศัพท์", --adjective forms
"adjective feminine forms",
"รูปคุณศัพท์พหูพจน์", --adjective plural forms
"รูปกริยาวิเศษณ์", --adverb forms
"รูปกริยาขยายเชิงกริยาวิเศษณ์", --adverbial participles
"agent participles",
"รูปกำกับนาม", --article forms
"รูปหน่วยคำเติมคร่อม", --circumfix forms
"combined forms",
"รูปคุณศัพท์ขั้นกว่า", --comparative adjective forms
"คำคุณศัพท์ขั้นกว่า", --comparative adjectives
"รูปกริยาวิเศษณ์ขั้นกว่า", --comparative adverb forms
"คำกริยาวิเศษณ์ขั้นกว่า", --comparative adverbs
"รูปสันธาน", --conjunction forms
"รูปหดย่อ", --contractions
"converbs",
"รูปตัวกำหนดขั้นกว่า", --determiner comparative forms
"รูปตัวกำหนด", --determiner forms
"รูปตัวกำหนดขั้นสุด", --determiner superlative forms
"คำนามบอกความเล็ก", --diminutive nouns
"elative adjectives",
"รูปคุณศัพท์ขั้นเท่า", --equative adjective forms
"คำคุณศัพท์ขั้นเท่า", --equative adjectives
"รูปกริยาขยายอนาคตกาล", --future participles
"รูปกริยาเป็นนาม", --gerunds
"infinitive forms",
"infinitives",
"รูปอุทาน", --interjection forms
"ยฺหวืดเพ็ง", --jyutping
"รูปสะกดผิด", --misspellings
"negative participles",
"nominal participles",
"noun case forms",
"noun construct forms",
"รูปนามทวิพจน์", --noun dual forms
"รูปนาม", --noun forms
"รูปนามบอกความน้อย", --noun paucal forms
"รูปนามพหูพจน์", --noun plural forms
"noun possessive forms",
"noun singulative forms",
"รูปผันเลข", --numeral forms
"รูปกริยาขยาย", --participles
"รูปผันรูปกริยาขยาย", --participle forms
"รูปอนุภาค", --particle forms
"รูปกริยาขยายกรรมวาจก", --passive participles
"รูปกริยาขยายกรรตุวาจกอดีตกาล", --past active participles
"past adverbial participles",
"รูปกริยาขยายอดีตกาล", --past participles
"รูปผันรูปกริยาขยายอดีตกาล", --past participle forms
"รูปกริยาขยายกรรมวาจกอดีตกาล", --past passive participles
"perfect active participles",
"perfect participles",
"perfect passive participles",
"พินอิน", --pinyin
"พหูพจน์", --plurals
"รูปปัจฉบท", --postposition forms
"รูปอุปสรรค", --prefix forms
"preposition contractions",
"รูปบุพบท", --preposition forms
"prepositional pronouns",
"รูปกริยาขยายกรรตุวาจกปัจจุบันกาล", --present active participles
"present adverbial participles",
"รูปกริยาขยายปัจจุบันกาล", --present participles
"รูปกริยาขยายกรรมวาจกปัจจุบันกาล", --present passive participles
"preverb forms",
"รูปสรรพนาม", --pronoun forms
"pronoun possessive forms",
"รูปวิสามานยนาม", --proper noun forms
"รูปวิสามานยนามพหูพจน์", --proper noun plural forms
"รัฟซี", --rafsi
"การถอดเป็นอักษรโรมัน", --romanizations
"root forms",
"singulatives",
"รูปปัจจัย", --suffix forms
"รูปคุณศัพท์ขั้นสุด", --superlative adjective forms
"คำคุณศัพท์ขั้นสุด", --superlative adjectives
"รูปกริยาวิเศษณ์ขั้นสุด", --superlative adverb forms
"คำกริยาวิเศษณ์ขั้นสุด", --superlative adverbs
"รูปกริยา", --verb forms
"คำกริยานาม", --verbal nouns
}
--[==[ var:
List of languages that will not have links to separate parts of the headword.
]==]
data.no_multiword_links = list_to_set{
"zh",
}
--[==[ var:
List of languages that will not have `LANG multiword terms` categories added. There are various reasons why languages
are in this list: (a) words are written without spaces between them; (b) syllables are written with spaces between them;
(c) variant reconstructions are notated with a tilde surrounded by spaces; (d) the language is a sign language, where
pagenames are multiword descriptions of the gesture(s) required to make an individual sign; (e) some other weirdnesses.
]==]
data.no_multiword_cat = list_to_set{
-------- Languages without spaces between words (sometimes spaces between phrases) --------
"blt", -- Tai Dam
"ja", -- Japanese
"khb", -- Lü
"km", -- Khmer
"lo", -- Lao
"mnw", -- Mon
"my", -- Burmese
"nan", -- Min Nan (some words in Latin script; hyphens between syllables)
"nan-hbl", -- Hokkien (some words in Latin script; hyphens between syllables)
"nod", -- Northern Thai
"ojp", -- Old Japanese
"shn", -- Shan
"sou", -- Southern Thai
"tdd", -- Tai Nüa
"th", -- Thai
"tts", -- Isan
"twh", -- Tai Dón
"txg", -- Tangut
"zh", -- Chinese (all varieties with Chinese characters)
"zkt", -- Khitan
-------- Languages with spaces between syllables --------
"ahk", -- Akha
"aou", -- A'ou
"atb", -- Zaiwa
"byk", -- Biao
"cdy", -- Chadong
--"duu", -- Drung; not sure
--"hmx-pro", -- Proto-Hmong-Mien
--"hnj", -- Green Hmong; not sure
"huq", -- Tsat
"ium", -- Iu Mien
--"lis", -- Lisu; not sure
"mtq", -- Muong
--"mww", -- White Hmong; not sure
"onb", -- Lingao
--"sit-gkh", -- Gokhy; not sure
--"swi", -- Sui; not sure
"tbq-lol-pro", -- Proto-Loloish
"tdh", -- Thulung
"ukk", -- Muak Sa-aak
"vi", -- Vietnamese
"yig", -- Wusa Nasu
"zng", -- Mang
-------- Languages with ~ with surrounding spaces used to separate variants --------
"mkh-ban-pro", -- Proto-Bahnaric
"sit-pro", -- Proto-Sino-Tibetan; listed above
-------- Other weirdnesses --------
"mul", -- Translingual; gestures, Morse code, etc.
"aot", -- Atong (India); bullet is a letter
-------- All sign languages --------
"ads",
"aed",
"aen",
"afg",
"ase",
"asf",
"asp",
"asq",
"asw",
"bfi",
"bfk",
"bog",
"bqn",
"bqy",
"bvl",
"bzs",
"cds",
"csc",
"csd",
"cse",
"csf",
"csg",
"csl",
"csn",
"csq",
"csr",
"doq",
"dse",
"dsl",
"ecs",
"esl",
"esn",
"eso",
"eth",
"fcs",
"fse",
"fsl",
"fss",
"gds",
"gse",
"gsg",
"gsm",
"gss",
"gus",
"hab",
"haf",
"hds",
"hks",
"hos",
"hps",
"hsh",
"hsl",
"icl",
"iks",
"ils",
"inl",
"ins",
"ise",
"isg",
"isr",
"jcs",
"jhs",
"jls",
"jos",
"jsl",
"jus",
"kgi",
"kvk",
"lbs",
"lls",
"lsl",
"lso",
"lsp",
"lst",
"lsy",
"lws",
"mdl",
"mfs",
"mre",
"msd",
"msr",
"mzc",
"mzg",
"mzy",
"nbs",
"ncs",
"nsi",
"nsl",
"nsp",
"nsr",
"nzs",
"okl",
"pgz",
"pks",
"prl",
"prz",
"psc",
"psd",
"psg",
"psl",
"pso",
"psp",
"psr",
"pys",
"rms",
"rsl",
"rsm",
"sdl",
"sfb",
"sfs",
"sgg",
"sgx",
"slf",
"sls",
"sqk",
"sqs",
"ssp",
"ssr",
"svk",
"swl",
"syy",
"tse",
"tsm",
"tsq",
"tss",
"tsy",
"tza",
"ugn",
"ugy",
"ukl",
"uks",
"vgt",
"vsi",
"vsl",
"vsv",
"xki",
"xml",
"xms",
"ygs",
"ysl",
"zib",
"zsl",
}
--[==[ var:
List of languages where a hyphen is not considered a word separator for the `LANG multiword terms` category. There are
numerous reasons why languages are in this list; by each language should be listed the reason for inclusion.
]==]
data.hyphen_not_multiword_sep = list_to_set{
"akk", -- Akkadian; hyphens between syllables
"akl", -- Aklanon; hyphens for mid-word glottal stops
"ber-pro", -- Proto-Berber; morphemes separated by hyphens
"ceb", -- Cebuano; hyphens for mid-word glottal stops
"cnk", -- Khumi Chin; hyphens used in single words
"cpi", -- Chinese Pidgin English; Chinese-derived words with hyphens between syllables
"de", -- German; too many false positives
"esx-esk-pro", -- hyphen used to separate morphemes
"fi", -- Finnish; hyphen used to separate components in compound words if the final and initial vowels match, respectively
"gd", -- Scottish Gaelic; too many false positives like [[a-chianaibh]], [[a-nìos]], [[an-dè]] and other adverbs in a- and an-
"hil", -- Hiligaynon; hyphens for mid-word glottal stops
"hnn", -- Hanunoo; too many false positives
"ilo", -- Ilocano; hyphens for mid-word glottal stops
"kne", -- Kankanaey; hyphens for mid-word glottal stops
"lcp", -- Western Lawa; dash as syllable joiner
"lwl", -- Eastern Lawa; dash as syllable joiner
"mfa", -- Pattani Malay in Thai script; dash as syllable joiner
"mkh-vie-pro", -- Proto-Vietic; morphemes separated by hyphens
"msb", -- Masbatenyo; too many false positives
"tl", -- Tagalog; too many false positives
"war", -- Waray-Waray; too many false positives
"yo", -- Yoruba; hyphens used to show lengthened nasal vowels
}
--[==[ var:
List of languages that will not have `LANG masculine nouns` and similar categories added. Generally, these languages are
lacking gender but use the gender field for other purposes. (This is a massive hack and should be changed.)
]==]
data.no_gender_cat = list_to_set{
-- Languages without gender but which use the gender field for other purposes
"ja",
"th",
}
--[==[ var:
List of languages where [[Module:headword]] should not attempt to generate a transliteration even if the term is written
in a non-Latin script. FIXME: Notate reasons why each language is in this list.
]==]
data.notranslit = list_to_set{
"ams",
"az",
"bbc",
"bug",
"cdo",
"cia",
"cjm",
"cjy",
"cmn",
"cnp",
"cpi",
"cpx",
"csp",
"czh",
"czo",
"gan",
"hak",
"hnm",
"hsn",
--"ja",
"kzg",
"lad",
"ltc",
"luh",
"lzh",
"mnp",
"ms",
"mul",
"mvi",
"nan",
"nan-dat",
"nan-hbl",
"nan-hlh",
"nan-lnx",
"nan-tws",
"nan-zhe",
"nan-zsh",
"och",
"oj",
"okn",
"ryn",
"rys",
"ryu",
"sh",
"sjc",
"tgt",
--"th",
"tkn",
"tly",
"txg",
"und",
--"vi",
"wuu",
"xug",
"yoi",
"yox",
"yue",
"za",
"zh",
"zhx-sic",
"zhx-tai",
-- ภาษาที่ใช้ Thai อย่างเดียว หรือ Thai/Latin นอกนั้นไปกำหนดใน languages
"th", --ไทย
"bzi", --บีซู
"cbn", --ญัฮกุร
"lcp", --เลอเวือะตะวันตก
"lwl", --เลอเวือะตะวันออก
"nyw", --ญ้อ
"skb", --แสก
"sou", --ปักษ์ใต้
"thm", --ทะวืง
"tts", --อีสาน
"ugo", --กฺ๋อง
"urk", --อูรักลาโวยจ
}
--[==[ var:
List of languages that will default to `sccat` being true, i.e. categories like `LANG POS in SCRIPT script` will
automatically be generated. This can be overridden using {{para|sccat|0}} in {{tl|head}} or setting `sccat` to
`false` in Lua.
]==]
data.default_sccat = list_to_set{
"inc-apa",
"inc-ash",
"kfr",
"ks",
"mr",
"mwr",
"inc-oaw",
"inc-ohi",
"omr",
"inc-opa",
"phr",
"pi",
"pra",
"sa",
"skr",
"sd",
}
--[==[ var:
List of script codes for which a script-tagged display title will be added.
]==]
data.toBeTagged = list_to_set{
"Ahom",
"Arab",
"fa-Arab",
"glk-Arab",
"kk-Arab",
"ks-Arab",
"ku-Arab",
"mzn-Arab",
"ms-Arab",
"ota-Arab",
"pa-Arab",
"ps-Arab",
"sd-Arab",
"tt-Arab",
"ug-Arab",
"ur-Arab",
"Armi",
"Armn",
"Avst",
"Bali",
"Bamu",
"Batk",
"Beng",
"as-Beng",
"Bopo",
"Brah",
"Brai",
"Bugi",
"Buhd",
"Cakm",
"Cans",
"Cari",
"Cham",
"Cher",
"Copt",
"Cprt",
"Cyrl",
"Cyrs",
"Deva",
"Dsrt",
"Egyd",
"Egyp",
"Ethi",
"Geok",
"Geor",
"Glag",
"Goth",
"Grek",
"Polyt",
"polytonic",
"Gujr",
"Guru",
"Hang",
"Hani",
"Hano",
"Hebr",
"Hira",
"Hluw",
"Ital",
"Java",
"Kali",
"Kana",
"Khar",
"Khmr",
"Knda",
"Kthi",
"Lana",
"Laoo",
"Latn",
"Latf",
"Latg",
"Latnx",
"Latinx",
"pjt-Latn",
"Lepc",
"Limb",
"Linb",
"Lisu",
"Lyci",
"Lydi",
"Mand",
"Mani",
"Marc",
"Merc",
"Mero",
"Mlym",
"Mong",
"mnc-Mong",
"sjo-Mong",
"xwo-Mong",
"Mtei",
"Mymr",
"Narb",
"Nkoo",
"Nshu",
"Ogam",
"Olck",
"Orkh",
"Orya",
"Osma",
"Ougr",
"Palm",
"Phag",
"Phli",
"Phlv",
"Phnx",
"Plrd",
"Prti",
"Rjng",
"Runr",
"Samr",
"Sarb",
"Saur",
"Sgnw",
"Shaw",
"Shrd",
"Sinh",
"Sora",
"Sund",
"Sylo",
"Syrc",
"Tagb",
"Tale",
"Talu",
"Taml",
"Tang",
"Tavt",
"Telu",
"Tfng",
"Tglg",
"Thaa",
"Thai",
"Tibt",
"Ugar",
"Vaii",
"Xpeo",
"Xsux",
"Yiii",
"Zmth",
"Zsym",
"Ipach",
"Music",
"Rumin",
}
--[==[ var:
Parts of speech which will not be categorised in categories like `English terms spelled with É` if the term is the
character in question (e.g. the letter entry for English [[é]]). This contrasts with entries like the French adjective
[[m̂]], which is a one-letter word spelled with the letter.
]==]
data.pos_not_spelled_with_self = list_to_set{
"diacritical marks",
"อักษรจีน", --Han characters
"ฮั้นถื่อ", --Han tu
"ฮันจา", --hanja
"ฮั่นจื้อ", --hanzi
"iteration marks",
"คานะ", --kana
"คันจิ", --kanji
"ตัวอักษร", --letters
"ตัวอักษรควบ", --ligatures
"logograms",
"morae",
"ตัวเลข", --numeral symbols
"เลข", --numerals
"เครื่องหมายวรรคตอน", --punctuation marks
"พยางค์", --syllables
"สัญลักษณ์", --symbols
}
------ 2. Lists not converted into sets. ------
--[==[ var:
Recognized aliases for parts of speech (param 2=). Key is the short form and value is the canonical singular (not
pluralized) form. It is singular so the same table can be used in [[Module:form of]] for the {{para|p}}/{{para|POS}}
param and [[Module:links]] for the pos= param. Note that any part of speech, abbreviated or not, can be suffixed with
`f` to generate the corresponding non-lemma form part of speech, such as `adjf`, `af` or `adjectivef` for
`adjective form`, and `nounf` or `nf` for `noun form`. This expansion happens even when it does not make sense for the
given part of speech (e.g. `pclf` expands to `particle form` and `symf` expands to `symbol form`), and currently also,
at least in [[Module:headword]] (but not [[Module:links]]), even if the part before the `f` is not a recognized part of
speech or abbreviation (hence `nerf` expands to `ner form`).
]==]
data.pos_aliases = {
a = "คำคุณศัพท์",
adj = "คำคุณศัพท์",
adv = "คำกริยาวิเศษณ์",
art = "คำกำกับนาม",
aug = "ตัวบอกความใหญ่",
cls = "คำลักษณนาม",
compadj = "คำคุณศัพท์ขั้นกว่า",
compadv = "คำกริยาวิเศษณ์ขั้นกว่า",
conj = "คำสันธาน",
contr = "รูปหดย่อ",
conv = "converb",
det = "ตัวกำหนด",
dim = "ตัวบอกความเล็ก",
int = "คำอุทาน",
interj = "คำอุทาน",
intj = "คำอุทาน",
n = "คำนาม",
-- the next two support Algonquian languages; see also vii/vai/vti/vta below
na = "คำนามมีชีวิต",
ni = "คำนามไม่มีชีวิต",
num = "เลข",
pastpart = "รูปกริยาขยายอดีตกาล",
part = "รูปกริยาขยาย",
pcl = "คำอนุภาค",
phr = "วลี",
pn = "คำวิสามานยนาม",
postp = "คำปัจฉบท",
pref = "อุปสรรค",
prep = "คำบุพบท",
prepphr = "prepositional phrase",
prespart = "รูปกริยาขยายปัจจุบันกาล",
pron = "คำสรรพนาม",
prop = "คำวิสามานยนาม",
proper = "คำวิสามานยนาม",
propn = "คำวิสามานยนาม",
rom = "การถอดเป็นอักษรโรมัน",
romanisation = "การถอดเป็นอักษรโรมัน",
romanisations = "การถอดเป็นอักษรโรมัน",
suf = "ปัจจัย",
supadj = "คำคุณศัพท์ขั้นสุด",
supadv = "คำกริยาวิเศษณ์ขั้นสุด",
sym = "สัญลักษณ์",
v = "คำกริยา",
vb = "คำกริยา",
vi = "คำอกรรมกริยา",
vm = "modal verb",
vt = "คำสกรรมกริยา",
-- the next four support Algonquian languages
vii = "คำอกรรมกริยาไม่มีชีวิต",
vai = "คำอกรรมกริยามีชีวิต",
vti = "คำสกรรมกริยาไม่มีชีวิต",
vta = "คำสกรรมกริยามีชีวิต",
}
--[==[ var:
Map of parts of speech for which categories like `German masculine nouns` or `Russian imperfective verbs` will be
generated if the headword is of the appropriate gender/number. The map is used to canonicalize parts of speech for
categorization purposes; specifically, proper nouns categorizes like nouns.
]==]
data.pos_for_gender_number_cat = {
["nouns"] = "nouns",
["proper nouns"] = "nouns",
["suffixes"] = "suffixes",
-- We include verbs because impf and pf are valid "genders".
["verbs"] = "verbs",
}
--[==[ var:
Lower limit for a "long" word in a particular language. Used to categorize terms into e.g.
[[:Category:Long English words]] automatically. Languages with no mapping here do not get categorized.
]==]
data.long_word_thresholds = {
["af"] = 20,
["bg"] = 20,
["cy"] = 25,
["de"] = 20,
["en"] = 25,
["es"] = 20,
["fr"] = 20,
["ka"] = 20,
["sv"] = 20,
["tl"] = 25,
}
------ 3. Page-wide processing (so that it only needs to be done once per page). ------
data.page = require(headword_page_module).process_page()
-- Set some page properties directly on `data` for ease of use.
data.pagename = data.page.pagename
data.encoded_pagename = data.page.encoded_pagename
return data
e8b0hiatmefluxjkj82i0l83d4vdq5e
มอดูล:languages/code to canonical name
828
174988
5723242
5720547
2026-05-20T03:24:28Z
OctraBot
3198
5723242
Scribunto
text/plain
return {
["aa"] = "อาฟาร์",
["aaa"] = "Ghotuo",
["aab"] = "Alumu-Tesu",
["aac"] = "Ari",
["aad"] = "Amal",
["aaf"] = "Aranadan",
["aag"] = "Ambrak",
["aah"] = "Abu'",
["aai"] = "Arifama-Miniafia",
["aak"] = "Ankave",
["aal"] = "Afade",
["aan"] = "Anambé",
["aap"] = "Arára (Pará)",
["aaq"] = "Penobscot",
["aas"] = "Aasax",
["aau"] = "Abau",
["aav-khs-pro"] = "คาเซียนดั้งเดิม",
["aav-nic-pro"] = "นิโคบารีสดั้งเดิม",
["aav-pkl-pro"] = "ปนัร-คาซี-ลึงงัมดั้งเดิม",
["aav-pro"] = "ออสโตรเอเชียติกดั้งเดิม",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "อับคาเซีย",
["aba"] = "อาเบ",
["abb"] = "Bankon",
["abc"] = "Ambala Ayta",
["abd"] = "Camarines Norte Agta",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "อาหรับแบบทาจิกิสถาน",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Abenlen Ayta",
["abq"] = "อาบาซา",
["abs"] = "Ambonese Malay",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "อาหรับแบบบาห์เรน",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "อาเจะฮ์",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "อาหรับแบบอิรัก",
["acn"] = "Achang",
["acp"] = "Eastern Acipa",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "อาหรับแบบฮิญาซ",
["acx"] = "อาหรับแบบโอมาน",
["acy"] = "อาหรับแบบไซปรัส",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Dhofari Arabic",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Adamorobe Sign Language",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "อะดีเกยา",
["adz"] = "Adzera",
["ae"] = "อเวสตะ",
["aea"] = "Areba",
["aeb"] = "อาหรับแบบตูนิเซีย",
["aed"] = "Argentine Sign Language",
["aee"] = "Northeast Pashayi",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Armenian Sign Language",
["aeq"] = "Aer",
["aer"] = "Eastern Arrernte",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "อาฟรีกานส์",
["afa-pro"] = "แอฟโฟรเอเชียติกดั้งเดิม",
["afb"] = "Gulf Arabic",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Afghan Sign Language",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Afro-Seminole Creole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agi"] = "Agariya",
["agj"] = "Argobba",
["agk"] = "Isarog Agta",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "อากูตายา",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Central Cagayan Agta",
["agu"] = "Aguacateca",
["agv"] = "Remontado Agta",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Southern Alta",
["agz"] = "Mount Iriga Agta",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "อาข่า",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "อาหม",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Antigua and Barbuda Creole English",
["aih"] = "Ai-Cham",
["aii"] = "Assyrian Neo-Aramaic",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "ไอนุ",
["aio"] = "อ่ายตน",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja",
["ajg"] = "Adja",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "อาหรับแบบลิแวนต์ใต้",
["ajw"] = "Ajawa",
["ajz"] = "Amri Karbi",
["ak"] = "อาคัน",
["akb"] = "Angkola Batak",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "แอกแคด",
["akl"] = "อักลัน",
["akm"] = "Aka-Bo",
["ako"] = "Akurio",
["akp"] = "Siwu",
["akq"] = "Ak",
["akr"] = "Araki",
["aks"] = "Akaselem",
["akt"] = "Akolet",
["aku"] = "Akum",
["akv"] = "Akhvakh",
["akw"] = "Akwa",
["akx"] = "Aka-Kede",
["aky"] = "Aka-Kol",
["akz"] = "แอละแบมา",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "แอลกองเคียนดั้งเดิม",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "อัลไตใต้",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Baïnounk Gubëeher",
["alv-bua-pro"] = "Proto-Bua",
["alv-cng-pro"] = "Proto-Cangin",
["alv-edk-pro"] = "Proto-Edekiri",
["alv-edo-pro"] = "Proto-Edoid",
["alv-fli-pro"] = "Proto-Fali",
["alv-gbe-pro"] = "กเบดั้งเดิม",
["alv-gng-pro"] = "Proto-Guang",
["alv-gtm-pro"] = "Proto-Central Togo",
["alv-gwa"] = "Gwara",
["alv-hei-pro"] = "Proto-Heiban",
["alv-ido-pro"] = "Proto-Idomoid",
["alv-igb-pro"] = "Proto-Igboid",
["alv-kwa-pro"] = "Proto-Kwa",
["alv-mum-pro"] = "Proto-Mumuye",
["alv-nup-pro"] = "Proto-Nupoid",
["alv-pro"] = "แอตแลนติก-คองโกดั้งเดิม",
["alv-von-pro"] = "วอลตา-ไนเจอร์ดั้งเดิม",
["alv-yor-pro"] = "โยรูบาดั้งเดิม",
["alv-yrd-pro"] = "โยรูบอยด์ดั้งเดิม",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "อัมฮารา",
["ama"] = "Amanayé",
["amb"] = "Ambo",
["amc"] = "Amahuaca",
["ame"] = "Yanesha'",
["amf"] = "Hamer-Banna",
["amg"] = "Amurdag",
["ami"] = "Amis",
["amj"] = "Amdang",
["amk"] = "Ambai",
["aml"] = "War-Jaintia",
["amm"] = "Ama",
["amn"] = "Amanab",
["amo"] = "Amo",
["amp"] = "Alamblak",
["amq"] = "Amahai",
["amr"] = "Amarakaeri",
["ams"] = "อามามิโอชิมะใต้",
["amt"] = "Amto",
["amu"] = "Guerrero Amuzgo",
["amv"] = "Ambelau",
["amw"] = "Western Neo-Aramaic",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "อารากอน",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "คังรังชือ",
["anf"] = "Animere",
["ang"] = "อังกฤษเก่า",
["anh"] = "Nend",
["ani"] = "Andi",
["anj"] = "Anor",
["ank"] = "Goemai",
["anl"] = "Anu",
["anm"] = "Anāl",
["ann"] = "Obolo",
["ano"] = "Andoque",
["anp"] = "Angika",
["anq"] = "Jarawa",
["anr"] = "Andh",
["ans"] = "Anserma",
["ant"] = "Antakarinya",
["anu"] = "Anuak",
["anv"] = "Denya",
["anw"] = "Anaang",
["anx"] = "Andra-Hus",
["any"] = "Anyi",
["anz"] = "Anem",
["aoa"] = "Angolar",
["aob"] = "Abom",
["aoc"] = "Pemon",
["aod"] = "Andarum",
["aoe"] = "Angal Enen",
["aof"] = "Bragat",
["aog"] = "Angoram",
["aoi"] = "Anindilyakwa",
["aoj"] = "Mufian",
["aok"] = "Arhö",
["aol"] = "Alorese",
["aom"] = "Ömie",
["aon"] = "Bumbita Arapesh",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "อะตง",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Proto-Apachean",
["apb"] = "Sa'a",
["apc"] = "North Levantine Arabic",
["apd"] = "อาหรับแบบซูดาน",
["ape"] = "Bukiyip",
["apf"] = "Pahanan Agta",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Plains Apache",
["apl"] = "Lipan",
["apm"] = "Chiricahua",
["apn"] = "Apinayé",
["apo"] = "Ambul",
["app"] = "Apma",
["apq"] = "A-Pucikwar",
["apr"] = "Arop-Lokep",
["aps"] = "Arop-Sissano",
["apt"] = "Apatani",
["apu"] = "Apurinã",
["apv"] = "Alapmunte",
["apw"] = "อะแพชีตะวันตก",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Ampari Dogon",
["aqg"] = "Arigidi",
["aql-pro"] = "แอลจิกดั้งเดิม",
["aqm"] = "Atohwaim",
["aqn"] = "Northern Alta",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "อาหรับ",
["arc"] = "อารามายา",
["ard"] = "Arabana",
["are"] = "Western Arrernte",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "อาหรับแบบแอลจีเรีย",
["arr"] = "Arara-Karo",
["ars"] = "Najdi Arabic",
["art-adu"] = "Adûni",
["art-bel"] = "Belter Creole",
["art-blk"] = "Bolak",
["art-bsp"] = "แบล็กสปีช",
["art-com"] = "Communicationssprache",
["art-dtk"] = "Dothraki",
["art-elo"] = "Eloi",
["art-gld"] = "Goa'uld",
["art-lap"] = "Lapine",
["art-man"] = "Mandalorian",
["art-mun"] = "Mundolinco",
["art-nav"] = "Naʼvi",
["art-vlh"] = "High Valyrian",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "โลโกโน",
["arx"] = "Aruá",
["ary"] = "อาหรับแบบโมร็อกโก",
["arz"] = "อาหรับแบบอียิปต์",
["as"] = "อัสสัม",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Casuarina Coast Asmat",
["ase"] = "มืออเมริกัน",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Xingú Asuriní",
["aso"] = "Dano",
["asp"] = "Algerian Sign Language",
["asq"] = "Austrian Sign Language",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "อัสตูเรียส",
["asu"] = "Tocantins Asurini",
["asv"] = "Asoa",
["asw"] = "Australian Aboriginal Sign Language",
["asx"] = "Muratayak",
["asy"] = "Yaosakor Asmat",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Ata Manobo",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Proto-Athabaskan",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Mount Iraya Agta",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Pudtol Atta",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Pamplona Atta",
["atu"] = "Reel",
["atv"] = "อัลไตเหนือ",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "อาเนตยูม",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Huaorani",
["aud"] = "Anuta",
["auf-pro"] = "Proto-Arawa",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjila",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Asu",
["aun"] = "Molmo One",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus-alu"] = "Alungul",
["aus-and"] = "Andjingith",
["aus-ang"] = "Angkula",
["aus-arn-pro"] = "Proto-Arnhem",
["aus-bra"] = "Barranbinya",
["aus-brm"] = "Barunggam",
["aus-cww-pro"] = "Proto-Central New South Wales",
["aus-dal-pro"] = "Proto-Daly",
["aus-guw"] = "Guwar",
["aus-lsw"] = "Little Swanport",
["aus-mbi"] = "Mbiywom",
["aus-ngk"] = "Ngkoth",
["aus-nyu-pro"] = "Proto-Nyulnyulan",
["aus-pam-pro"] = "Proto-Pama-Nyungan",
["aus-tul"] = "Tulua",
["aus-uwi"] = "Uwinymil",
["aus-wdj-pro"] = "Proto-Iwaidjan",
["aus-won"] = "Wong-gie",
["aus-wul"] = "Wulguru",
["aus-ynk"] = "Yangkaal",
["aut"] = "Austral",
["auu"] = "Auye",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Auyana",
["auz"] = "อาหรับแบบอุซเบกิสถาน",
["av"] = "อะวาร์",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "โคทาวา",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avo"] = "Agavotaguerra",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "อวัธ",
["awb"] = "Awa (New Guinea)",
["awc"] = "Cicipu",
["awd-ama"] = "Amarizana",
["awd-amc-pro"] = "Proto-Amuesha-Chamicuro",
["awd-ana"] = "Anauyá",
["awd-apo"] = "Apolista",
["awd-cab"] = "Cabre",
["awd-gnu"] = "Guinau",
["awd-kar"] = "Cariay",
["awd-kaw"] = "Kawishana",
["awd-kmp-pro"] = "Proto-Kampa",
["awd-kus"] = "Kustenau",
["awd-man"] = "Manao",
["awd-mar"] = "Marawan",
["awd-mpr"] = "Maipure",
["awd-mrt"] = "Mariaté",
["awd-nwk-pro"] = "Proto-Nawiki",
["awd-pai"] = "Paikoneka",
["awd-pas"] = "Pasé",
["awd-pro"] = "Proto-Arawak",
["awd-prw-pro"] = "Proto-Paresi-Waura",
["awd-she"] = "Shebayo",
["awd-taa-pro"] = "Proto-Ta-Arawak",
["awd-wai"] = "Wainumá",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "South Awyu",
["awt"] = "Araweté",
["awu"] = "Central Awyu",
["awv"] = "Jair Awyu",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Edera Awyu",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Central Africa)",
["axl"] = "Lower Southern Aranda",
["axm"] = "อาร์มีเนียกลาง",
["axx"] = "Xârâgurè",
["ay"] = "ไอย์มารา",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "อาหรับแบบลิเบีย",
["ayn"] = "อาหรับแบบเยเมน",
["ayo"] = "Ayoreo",
["ayp"] = "อาหรับแบบเมโสโปเตเมียเหนือ",
["ayq"] = "Ayi",
["ays"] = "Sorsogon Ayta",
["ayt"] = "Bataan Ayta",
["ayu"] = "Ayu",
["ayy"] = "Tayabas Ayta",
["ayz"] = "Maybrat",
["az"] = "อาเซอร์ไบจาน",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Proto-Cupan",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "นาวันดั้งเดิม",
["azc-num-pro"] = "Proto-Numic",
["azc-pro"] = "ยูโต-แอซเทกันดั้งเดิม",
["azc-tak-pro"] = "Proto-Takic",
["azc-tat"] = "Tataviam",
["azd"] = "Eastern Durango Nahuatl",
["azg"] = "San Pedro Amuzgos Amuzgo",
["azm"] = "Ipalapa Amuzgo",
["azn"] = "Western Durango Nahuatl",
["azo"] = "Awing",
["azt"] = "Faire Atta",
["azz"] = "Highland Puebla Nahuatl",
["ba"] = "แบชเคียร์",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Baduy",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Bahamian Creole",
["baj"] = "Barakai",
["bal"] = "บาโลจ",
["ban"] = "บาหลี",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "บาวาเรีย",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Toba Batak",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "บัตส์",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "West Central Banda",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Central Bai",
["bcb"] = "Bainouk-Samik",
["bcd"] = "North Babar",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "บีโคลตอนกลาง",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Bali",
["bcq"] = "Bench",
["bcr"] = "Babine-Witsuwit'en",
["bcs"] = "Kohumono",
["bct"] = "Bendi",
["bcu"] = "Biliau",
["bcv"] = "Shoo-Minda-Nye",
["bcw"] = "Bana",
["bcy"] = "Bacama",
["bcz"] = "Bainouk-Gunyaamolo",
["bda"] = "Bayot",
["bdb"] = "Basap",
["bdc"] = "Emberá-Baudó",
["bdd"] = "Bunama",
["bde"] = "Bade",
["bdf"] = "Biage",
["bdg"] = "Bonggi",
["bdh"] = "Tara Baka",
["bdi"] = "Burun",
["bdj"] = "Bai (South Sudan)",
["bdk"] = "Budukh",
["bdl"] = "บาเจาแบบอินโดนีเซีย",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "บะห์นัร",
["bdr"] = "บาเจาแบบเวสต์โคสต์",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "เบลารุส",
["bea"] = "Beaver",
["beb"] = "Bebele",
["bec"] = "Iceve-Maci",
["bed"] = "Bedoanas",
["bee"] = "Byangsi",
["bef"] = "Benabena",
["beg"] = "Belait",
["beh"] = "Biali",
["bei"] = "Bekati'",
["bej"] = "Beja",
["bek"] = "Bebeli",
["bem"] = "Bemba",
["beo"] = "Beami",
["bep"] = "Besoa",
["beq"] = "Beembe",
["ber-fog"] = "Fogaha",
["ber-pro"] = "เบอร์เบอร์ดั้งเดิม",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "บลาการ์",
["bev"] = "Daloa Bété",
["bew"] = "เบอตาวี",
["bex"] = "Jur Modo",
["bey"] = "Akuwagel",
["bez"] = "Kibena",
["bfa"] = "Bari",
["bfb"] = "Pauri Bareli",
["bfc"] = "Panyi Bai",
["bfd"] = "Bafut",
["bfe"] = "Betaf",
["bff"] = "Bofi",
["bfg"] = "Busang Kayan",
["bfh"] = "Blafe",
["bfi"] = "British Sign Language",
["bfj"] = "Bafanji",
["bfk"] = "Ban Khor Sign Language",
["bfl"] = "Banda-Ndélé",
["bfm"] = "Mmen",
["bfn"] = "Bunak",
["bfo"] = "Malba Birifor",
["bfp"] = "Beba",
["bfq"] = "พทคะ",
["bfr"] = "Bazigar",
["bfs"] = "Southern Bai",
["bft"] = "บัลติ",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "บัลแกเรีย",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Bawm Chin",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "พิหาร",
["bha"] = "Bharia",
["bhb"] = "Bhili",
["bhc"] = "Biga",
["bhd"] = "Bhadrawahi",
["bhe"] = "Bhaya",
["bhf"] = "Odiai",
["bhg"] = "Binandere",
["bhh"] = "Bukhari",
["bhi"] = "Bhilali",
["bhj"] = "Bahing",
["bhl"] = "Bimin",
["bhm"] = "Bathari",
["bhn"] = "Bohtan Neo-Aramaic",
["bho"] = "โภชปุระ",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi South",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "บิสลามา",
["bia"] = "Badimaya",
["bib"] = "Bissa",
["bic"] = "Bikaru",
["bid"] = "Bidiyo",
["bie"] = "Bepour",
["bif"] = "Biafada",
["big"] = "Biangai",
["bij"] = "Kwanka",
["bil"] = "Bile",
["bim"] = "Bimoba",
["bin"] = "Edo",
["bio"] = "Nai",
["bip"] = "Bila",
["biq"] = "Bipi",
["bir"] = "Bisorio",
["bit"] = "Berinomo",
["biu"] = "Biete",
["biv"] = "Southern Birifor",
["biw"] = "Kol (Cameroon)",
["bix"] = "Bijori",
["biy"] = "Birhor",
["biz"] = "Baloi",
["bja"] = "Budza",
["bjb"] = "Barngarla",
["bjc"] = "Bariji",
["bje"] = "Biao-Jiao Mien",
["bjf"] = "Barzani Jewish Neo-Aramaic",
["bjg"] = "Bidyogo",
["bjh"] = "Bahinemo",
["bji"] = "Burji",
["bjj"] = "Kannauji",
["bjk"] = "Barok",
["bjl"] = "Bulu (New Guinea)",
["bjm"] = "Bajelani",
["bjn"] = "บันจาร์",
["bjo"] = "Mid-Southern Banda",
["bjp"] = "Fanamaket",
["bjr"] = "Binumarien",
["bjs"] = "Bajan",
["bjt"] = "Balanta-Ganja",
["bju"] = "Busuu",
["bjv"] = "Bedjond",
["bjw"] = "Bakwé",
["bjx"] = "Banao Itneg",
["bjy"] = "Bayali",
["bjz"] = "Baruga",
["bka"] = "Kyak",
["bkc"] = "Baka",
["bkd"] = "บีนูกิด",
["bkf"] = "Beeke",
["bkg"] = "Buraka",
["bkh"] = "Bakoko",
["bki"] = "Baki",
["bkj"] = "Pande",
["bkk"] = "Brokskat",
["bkl"] = "Berik",
["bkm"] = "Kom (Cameroon)",
["bkn"] = "Bukitan",
["bko"] = "Kwa'",
["bkp"] = "Iboko",
["bkq"] = "Bakairí",
["bkr"] = "Bakumpai",
["bks"] = "Masbate Sorsogon",
["bkt"] = "Boloki",
["bku"] = "Buhid",
["bkv"] = "Bekwarra",
["bkw"] = "Bekwel",
["bkx"] = "Baikeno",
["bky"] = "Bokyi",
["bkz"] = "Bungku",
["bla"] = "Blackfoot",
["blb"] = "Bilua",
["blc"] = "Bella Coola",
["bld"] = "Bolango",
["ble"] = "Balanta-Kentohe",
["blf"] = "Buol",
["blg"] = "Balau",
["blh"] = "Kuwaa",
["bli"] = "Bolia",
["blj"] = "Bulungan",
["blk"] = "กะเหรี่ยงปะโอ",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Southern Catanduanes Bicolano",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "ไทดำ",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "บัมบารา",
["bma"] = "Lame",
["bmb"] = "Bembe",
["bmc"] = "Biem",
["bmd"] = "Baga Manduri",
["bme"] = "Limassa",
["bmf"] = "Bom",
["bmg"] = "Bamwe",
["bmh"] = "Kein",
["bmi"] = "Bagirmi",
["bmj"] = "Bote-Majhi",
["bmk"] = "Ghayavi",
["bml"] = "Bomboli",
["bmn"] = "Bina",
["bmo"] = "Bambalang",
["bmp"] = "Bulgebi",
["bmq"] = "Bomu",
["bmr"] = "Muinane",
["bmt"] = "Biao Mon",
["bmu"] = "Somba-Siawari",
["bmv"] = "Bum",
["bmw"] = "Bomwali",
["bmx"] = "Baimak",
["bmz"] = "Baramu",
["bn"] = "เบงกอล",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Eastern Tawbuid",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "อาซี",
["bnp"] = "Bola",
["bnq"] = "Bantik",
["bnr"] = "Butmas-Tur",
["bns"] = "Bundeli",
["bnt-bal"] = "Balong",
["bnt-bon"] = "Boma Nkuu",
["bnt-boy"] = "Boma Yumu",
["bnt-bwa"] = "Bwala",
["bnt-cmw"] = "Chimwiini",
["bnt-ind"] = "Indanga",
["bnt-lal"] = "Lala (South Africa)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "งูนีดั้งเดิม",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "แบนทูดั้งเดิม",
["bnt-sab-pro"] = "Proto-Sabaki",
["bnt-sbo"] = "South Boma",
["bnt-sts-pro"] = "Proto-Sotho-Tswana",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Bintulu",
["bnz"] = "Beezen",
["bo"] = "ทิเบต",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "North Boma",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "โบล",
["bom"] = "Berom",
["bon"] = "Bine",
["boo"] = "Tiemacèwè Bozo",
["bop"] = "Bonkiman",
["boq"] = "Bogaya",
["bor"] = "Borôro",
["bot"] = "Bongo",
["bou"] = "Bondei",
["bov"] = "Tuwuli",
["bow"] = "Rema",
["box"] = "Buamu",
["boy"] = "Bodo (Central Africa)",
["boz"] = "Tiéyaxo Bozo",
["bpa"] = "Daakaka",
["bpd"] = "Banda-Banda",
["bpg"] = "Bonggo",
["bph"] = "Botlikh",
["bpi"] = "Bagupi",
["bpj"] = "Binji",
["bpk"] = "Orowe",
["bpl"] = "Broome Pearling Lugger Pidgin",
["bpm"] = "Biyom",
["bpn"] = "Dzao Min",
["bpo"] = "Anasi",
["bpp"] = "Kaure",
["bpq"] = "Banda Malay",
["bpr"] = "Koronadal Blaan",
["bps"] = "Sarangani Blaan",
["bpt"] = "Barrow Point",
["bpu"] = "Bongu",
["bpv"] = "Bian Marind",
["bpx"] = "Palya Bareli",
["bpy"] = "Bishnupriya Manipuri",
["bpz"] = "Bilba",
["bqa"] = "Tchumbuli",
["bqb"] = "Bagusa",
["bqc"] = "Boko",
["bqd"] = "Bung",
["bqf"] = "Baga Kaloum",
["bqg"] = "Bago-Kusuntu",
["bqh"] = "Baima",
["bqi"] = "Bakhtiari",
["bqj"] = "Bandial",
["bqk"] = "Banda-Mbrès",
["bql"] = "Bilakura",
["bqm"] = "Wumboko",
["bqn"] = "Bulgarian Sign Language",
["bqo"] = "Balo",
["bqp"] = "Busa",
["bqq"] = "Biritai",
["bqr"] = "Burusu",
["bqs"] = "Bosngun",
["bqt"] = "Bamukumbit",
["bqu"] = "Boguru",
["bqv"] = "Begbere-Ejar",
["bqw"] = "Buru (Nigeria)",
["bqx"] = "Baangi",
["bqy"] = "Bengkala Sign Language",
["bqz"] = "Bakaka",
["br"] = "เบรอตง",
["bra"] = "พรัช",
["brb"] = "Lave",
["brc"] = "Berbice Creole Dutch",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "บราฮุอี",
["bri"] = "Mokpwe",
["brj"] = "Bieria",
["brk"] = "Birgid",
["brl"] = "Birwa",
["brm"] = "Barambu",
["brn"] = "Boruca",
["bro"] = "Brokkat",
["brp"] = "Barapasi",
["brq"] = "Breri",
["brr"] = "Birao",
["brs"] = "Baras",
["brt"] = "Bitare",
["bru"] = "บรูตะวันออก",
["brv"] = "บรูตะวันตก",
["brw"] = "Bellari",
["brx"] = "โบโด",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Brunei Bisaya",
["bsc"] = "Bassari",
["bse"] = "Wushi",
["bsf"] = "Bauchi",
["bsg"] = "Bashkardi",
["bsh"] = "Kamkata-viri",
["bsi"] = "Bassossi",
["bsj"] = "Bangwinji",
["bsk"] = "Burushaski",
["bsl"] = "Basa-Gumna",
["bsm"] = "Busami",
["bsn"] = "Barasana",
["bso"] = "Buso",
["bsp"] = "Baga Sitemu",
["bsq"] = "Bassa",
["bsr"] = "Bassa-Kontagora",
["bss"] = "Akoose",
["bst"] = "Basketo",
["bsu"] = "Bahonsuai",
["bsv"] = "Baga Sobané",
["bsw"] = "Baiso",
["bsx"] = "Yangkam",
["bsy"] = "Sabah Bisaya",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Dairi Batak",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Biatah Bidayuh",
["bti"] = "Burate",
["btj"] = "Bacanese Malay",
["btk-pro"] = "Proto-Batak",
["btm"] = "Mandailing Batak",
["btn"] = "Ratagnon",
["bto"] = "Iriga Bicolano",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Simalungun Batak",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Karo Batak",
["bty"] = "Bobot",
["btz"] = "Alas-Kluet Batak",
["bua"] = "บูร์ยัต",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "บูกิส",
["buh"] = "Younuo Bunu",
["bui"] = "Bongili",
["buj"] = "Basa-Gurmana",
["buk"] = "Bukawa",
["bum"] = "Bulu (Cameroon)",
["bun"] = "Sherbro",
["buo"] = "Terei",
["bup"] = "Busoa",
["buq"] = "Brem",
["bus"] = "Bokobaru",
["but"] = "Bungain",
["buu"] = "Budu",
["buv"] = "Bun",
["buw"] = "Bubi",
["bux"] = "Boghom",
["buy"] = "Mmani",
["bva"] = "Barein",
["bvb"] = "Bube",
["bvc"] = "Baelelea",
["bvd"] = "Baeggu",
["bve"] = "Berau Malay",
["bvf"] = "Boor",
["bvg"] = "Bonkeng",
["bvh"] = "Bure",
["bvi"] = "Belanda Viri",
["bvj"] = "Baan",
["bvk"] = "Bukat",
["bvl"] = "Bolivian Sign Language",
["bvm"] = "Bamunka",
["bvn"] = "Buna",
["bvo"] = "Bolgo",
["bvp"] = "Bumang",
["bvq"] = "Birri",
["bvr"] = "Burarra",
["bvt"] = "Bati (Indonesia)",
["bvu"] = "Bukit Malay",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Bwe Karen",
["bwf"] = "Boselewa",
["bwg"] = "Barwe",
["bwh"] = "Bishuo",
["bwi"] = "Baniwa",
["bwj"] = "Láá Láá Bwamu",
["bwk"] = "Bauwaki",
["bwl"] = "Bwela",
["bwm"] = "Biwat",
["bwn"] = "Wunai Bunu",
["bwo"] = "Shinasha",
["bwp"] = "Mandobo Bawah",
["bwq"] = "Southern Bobo",
["bwr"] = "Bura",
["bws"] = "Bomboma",
["bwt"] = "Bafaw",
["bwu"] = "Buli (Ghana)",
["bww"] = "Bwa",
["bwx"] = "Bu-Nao Bunu",
["bwy"] = "Cwi Bwamu",
["bwz"] = "Bwisi",
["bxa"] = "Bauro",
["bxb"] = "Belanda Bor",
["bxc"] = "Molengue",
["bxd"] = "Pela",
["bxe"] = "Ongota",
["bxf"] = "Bilur",
["bxg"] = "Bangala",
["bxh"] = "Buhutu",
["bxi"] = "Pirlatapa",
["bxj"] = "Bayungu",
["bxk"] = "Bukusu",
["bxl"] = "Jalkunan",
["bxn"] = "Burduna",
["bxo"] = "Barikanchi",
["bxp"] = "Bebil",
["bxq"] = "Beele",
["bxs"] = "Busam",
["bxv"] = "Berakou",
["bxw"] = "Banka",
["bxz"] = "Binahari",
["bya"] = "Palawan Batak",
["byb"] = "Bikya",
["byc"] = "Ubaghara",
["byd"] = "Benyadu'",
["bye"] = "Pouye",
["byf"] = "Bete",
["byg"] = "Baygo",
["byh"] = "Bujhyal",
["byi"] = "Buyu",
["byj"] = "Binawa",
["byk"] = "Biao",
["byl"] = "Bayono",
["bym"] = "Bidyara",
["byn"] = "Blin",
["byo"] = "Biyo",
["byp"] = "Bumaji",
["byq"] = "Basay",
["byr"] = "Baruya",
["bys"] = "Burak",
["byt"] = "Berti",
["byv"] = "Medumba",
["byw"] = "Belhariya",
["byx"] = "Qaqet",
["byz"] = "Banaro",
["bza"] = "Bandi",
["bzb"] = "Andio",
["bzd"] = "Bribri",
["bze"] = "Jenaama Bozo",
["bzf"] = "Boikin",
["bzg"] = "Babuza",
["bzh"] = "Mapos Buang",
["bzi"] = "บีซู",
["bzj"] = "Belizean Creole",
["bzk"] = "Nicaraguan Creole",
["bzl"] = "Boano (Sulawesi)",
["bzm"] = "Bolondo",
["bzn"] = "Boano (Maluku)",
["bzo"] = "Bozaba",
["bzp"] = "Kemberano",
["bzq"] = "Buli (Indonesia)",
["bzr"] = "Biri",
["bzs"] = "Brazilian Sign Language",
["bzu"] = "Burmeso",
["bzv"] = "Bebe",
["bzw"] = "Basa",
["bzx"] = "Hainyaxo Bozo",
["bzy"] = "Obanliku",
["bzz"] = "Evant",
["ca"] = "กาตาลา",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Southern Carrier",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cèmuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "คาร์นิโคบาร์",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Proto-Abkhaz-Abaza",
["cau-and-pro"] = "Proto-Andian",
["cau-ava-pro"] = "Proto-Avaro-Andian",
["cau-cir-pro"] = "Proto-Circassian",
["cau-drg-pro"] = "Proto-Dargwa",
["cau-lzg-pro"] = "Proto-Lezghian",
["cau-nec-pro"] = "คอเคเซียนตะวันออกเฉียงเหนือดั้งเดิม",
["cau-nkh-pro"] = "นัคดั้งเดิม",
["cau-nwc-pro"] = "คอเคเซียนตะวันตกเฉียงเหนือดั้งเดิม",
["cau-tsz-pro"] = "Proto-Tsezian",
["cav"] = "Cavineña",
["caw"] = "Kallawaya",
["cax"] = "Chiquitano",
["cay"] = "Cayuga",
["caz"] = "Canichana",
["cba-ata"] = "Atanques",
["cba-cat"] = "Catío Chibcha",
["cba-dor"] = "Dorasque",
["cba-dui"] = "Duit",
["cba-hue"] = "Huetar",
["cba-nut"] = "Nutabe",
["cba-pro"] = "Proto-Chibchan",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbg"] = "Chimila",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "ชาบากาโน",
["cbl"] = "Bualkhaw Chin",
["cbn"] = "ญัฮกุร",
["cbo"] = "Izora",
["cbq"] = "Tsucuba",
["cbr"] = "Cashibo-Cacataibo",
["cbs"] = "Cashinahua",
["cbt"] = "Chayahuita",
["cbu"] = "Candoshi-Shapra",
["cbv"] = "Cacua",
["cbw"] = "Kinabalian",
["cby"] = "Carabayo",
["cca"] = "Cauca",
["ccc"] = "Chamicuro",
["ccd"] = "Cafundó",
["cce"] = "Chopi",
["ccg"] = "Chamba Daka",
["cch"] = "Atsam",
["ccj"] = "Kasanga",
["ccl"] = "Cutchi-Swahili",
["ccm"] = "Malaccan Creole Malay",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "จักมา",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "จอร์เจียน-แซนดั้งเดิม",
["ccs-pro"] = "คาร์ทเวเลียนดั้งเดิม",
["cda"] = "Choni",
["cdc-cbm-pro"] = "ชาดิกตอนกลางดั้งเดิม",
["cdc-mas-pro"] = "Proto-Masa",
["cdc-pro"] = "ชาดิกดั้งเดิม",
["cdd-pro"] = "Proto-Caddoan",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "หมิ่นตะวันออก",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Chadian Sign Language",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "เชเชน",
["cea"] = "Lower Chehalis",
["ceb"] = "เซบัวโน",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "บริทอนิกดั้งเดิม",
["cel-gal"] = "Gallaecian",
["cel-gau"] = "กอล",
["cel-pro"] = "เคลติกดั้งเดิม",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Falam Chin",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "ชามอร์โร",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Chontal Maya",
["chg"] = "ชากาทาย",
["chh"] = "Chinook",
["chi-pro"] = "Proto-Chimakuan",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuukese",
["chl"] = "Cahuilla",
["chm-pro"] = "Proto-Mari",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "เชโรกี",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "เชเยนน์",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tinrin",
["ciy"] = "Chaima",
["cja"] = "จามตะวันตก",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "จามตะวันออก",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "โชร์",
["cjv"] = "Chuave",
["cjy"] = "จิ้น",
["ckb"] = "เคิร์ดตอนกลาง",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Kaang Chin",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "ชุกชี",
["cku"] = "Koasati",
["ckv"] = "กบาลัน",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Kaqchikel-K'iche' Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Laitu Chin",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Lutuv",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Eastern Highland Chatino",
["cma"] = "หมะ",
["cmc-pro"] = "จามิกดั้งเดิม",
["cme"] = "Cerma",
["cmg"] = "มองโกเลียคลาสสิก",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "จีนกลาง",
["cmo"] = "มนองตอนกลาง",
["cmr"] = "Mro Chin",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chinbon Chin",
["cnc"] = "Cốông",
["cng"] = "Northern Qiang",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Khumi Chin",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "ผิงเหนือ",
["cns"] = "Central Asmat",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Ngawn Chin",
["cnx"] = "Middle Cornish",
["co"] = "คอร์ซิกา",
["coa"] = "Cocos Islands Malay",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "ชอง",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "คอปติก",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "เฉ่าเหมียว",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Cappadocian Greek",
["cpi"] = "Chinese Pidgin English",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "ผูเซียน",
["cpy"] = "South Ucayali Ashéninka",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "ครี",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "ตาตาร์แบบไครเมีย",
["cri"] = "Sãotomense",
["crj"] = "Southern East Cree",
["crk"] = "Plains Cree",
["crl"] = "Northern East Cree",
["crm"] = "Moose Cree",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Basque-Icelandic Pidgin",
["crp-gep"] = "West Greenlandic Pidgin",
["crp-kia"] = "Kiautschou German Pidgin",
["crp-mar"] = "Maroon Spirit Language",
["crp-mpp"] = "Macau Pidgin Portuguese",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Solombala English",
["crp-spp"] = "Samoan Plantation Pidgin",
["crp-tpr"] = "Taimyr Pidgin Russian",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Carolina Algonquian",
["crs"] = "Seychellois Creole",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "เช็ก",
["csa"] = "Chiltepec Chinantec",
["csb"] = "คาชุบ",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Asho Chin",
["csi"] = "Coast Miwok",
["csj"] = "Songlai Chin",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Central Sierra Miwok",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "ผิงใต้",
["csq"] = "Croatian Sign Language",
["csr"] = "Costa Rican Sign Language",
["css"] = "Southern Ohlone",
["cst"] = "Northern Ohlone",
["csu-bba-pro"] = "Proto-Bongo-Bagirmi",
["csu-maa-pro"] = "Proto-Mangbetu",
["csu-pro"] = "Proto-Central Sudanic",
["csu-sar-pro"] = "Proto-Sara",
["csv"] = "Sumtu Chin",
["csw"] = "Swampy Cree",
["csx"] = "Cambodian Sign Language",
["csy"] = "Siyin Chin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Tedim Chin",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagonian",
["cth"] = "Thaiphum Chin",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Western Highland Chatino",
["cts"] = "Northern Catanduanes Bicolano",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "สลาวอนิกคริสตจักรเก่า",
["cua"] = "Cua",
["cub"] = "Cubeo",
["cuc"] = "Usila Chinantec",
["cug"] = "Cung",
["cuh"] = "Chuka",
["cui"] = "Cuiba",
["cuj"] = "Mashco Piro",
["cuk"] = "Kuna",
["cul"] = "Culina",
["cuo"] = "Cumanagoto",
["cup"] = "Cupeño",
["cuq"] = "จุน",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Proto-Highland East Cushitic",
["cus-pro"] = "Proto-Cushitic",
["cus-som-pro"] = "โซมาลอยด์ดั้งเดิม",
["cus-sou-pro"] = "Proto-South Cushitic",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "ชูวัช",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "เวลส์",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "หมิ่นตอนกลาง",
["czt"] = "Zotung Chin",
["da"] = "เดนมาร์ก",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "ดาโคตา",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Daai Chin",
["daq"] = "Dandami Maria",
["dar"] = "Dargwa",
["das"] = "Daho-Doo",
["dau"] = "Dar Sila Daju",
["dav"] = "Taita",
["daw"] = "Davawenyo",
["dax"] = "Dayi",
["daz"] = "Dao",
["dba"] = "Bangime",
["dbb"] = "Deno",
["dbd"] = "Dadiya",
["dbe"] = "Dabe",
["dbf"] = "Edopi",
["dbg"] = "Dogul Dom",
["dbi"] = "Doka",
["dbj"] = "อีดาอัน",
["dbl"] = "Dyirbal",
["dbm"] = "Duguri",
["dbn"] = "Duriankere",
["dbo"] = "Dulbu",
["dbp"] = "Duwai",
["dbq"] = "Daba",
["dbr"] = "Dabarre",
["dbt"] = "Ben Tey",
["dbu"] = "Bondum Dom Dogon",
["dbv"] = "Dungu",
["dbw"] = "Bankan Tey Dogon",
["dby"] = "Dibiyaso",
["dcc"] = "Deccani",
["dcr"] = "เนเกอร์ฮอลันดส์",
["dda"] = "Dadi Dadi",
["ddd"] = "Dongotono",
["dde"] = "Doondo",
["ddg"] = "Fataluku",
["ddi"] = "Diodio",
["ddj"] = "Jaru",
["ddn"] = "Dendi",
["ddo"] = "Tsez",
["ddr"] = "Dhudhuroa",
["dds"] = "Donno So Dogon",
["ddw"] = "Dawera-Daweloor",
["de"] = "เยอรมัน",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Southern Dagaare",
["dgb"] = "Bunoge",
["dgc"] = "Casiguran Dumagat Agta",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Northern Dagara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["dhd"] = "Dhundhari",
["dhg"] = "Dhangu",
["dhi"] = "Dhimal",
["dhl"] = "Dhalandji",
["dhm"] = "Zemba",
["dhn"] = "Dhanki",
["dho"] = "Dhodia",
["dhr"] = "Tharrgari",
["dhs"] = "Dhaiso",
["dhu"] = "Dhurga",
["dhv"] = "Drehu",
["dhw"] = "Danuwar",
["dhx"] = "Dhungaloo",
["dia"] = "Dia",
["dib"] = "South Central Dinka",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Southwestern Dinka",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Northeastern Dinka",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Northwestern Dinka",
["dix"] = "Dixon Reef",
["diy"] = "Diuwe",
["diz"] = "Ding",
["dja"] = "Djadjawurrung",
["djb"] = "Djinba",
["djc"] = "Dar Daju Daju",
["djd"] = "Jaminjung",
["dje"] = "Zarma",
["djf"] = "Djangun",
["dji"] = "Djinang",
["djj"] = "Ndjébbana",
["djk"] = "Aukan",
["djl"] = "Djiwarli",
["djm"] = "Jamsay",
["djn"] = "Djauan",
["djo"] = "Jangkang",
["djr"] = "Djambarrpuyngu",
["dju"] = "Kapriman",
["djw"] = "Djawi",
["dka"] = "Dakpa",
["dkk"] = "Dakka",
["dkr"] = "Kuijau",
["dks"] = "Southeastern Dinka",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "แดลเมเชีย",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "กีนาบาตางันตอนบน",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Proto-Western Mande",
["dmn-pro"] = "Proto-Mande",
["dmo"] = "Kemezung",
["dmr"] = "East Damar",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "ดุงกาน",
["dni"] = "Lower Grand Valley Dani",
["dnj"] = "Dan",
["dnk"] = "Dengka",
["dnn"] = "Dzuun",
["dno"] = "Ndrulo",
["dnr"] = "Danaru",
["dnt"] = "Mid Grand Valley Dani",
["dnu"] = "Danau",
["dnv"] = "Danu",
["dnw"] = "Western Dani",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "ต้งเหนือ",
["doe"] = "Doe",
["dof"] = "Domu",
["doh"] = "Dong",
["doi"] = "Dogri",
["dok"] = "Dondo",
["dol"] = "Doso",
["don"] = "Doura",
["doo"] = "Dongo",
["dop"] = "Lukpa",
["doq"] = "Dominican Sign Language",
["dor"] = "Dori'o",
["dos"] = "Dogosé",
["dot"] = "Dass",
["dov"] = "Toka-Leya",
["dow"] = "Doyayo",
["dox"] = "Bussa",
["doy"] = "Dompo",
["doz"] = "Dorze",
["dpp"] = "Papar",
["dra-bry"] = "Beary",
["dra-cen-pro"] = "ดราวิเดียนตอนกลางดั้งเดิม",
["dra-mkn"] = "Middle Kannada",
["dra-nor-pro"] = "ดราวิเดียนเหนือดั้งเดิม",
["dra-okn"] = "Old Kannada",
["dra-ote"] = "Old Telugu",
["dra-pro"] = "ดราวิเดียนดั้งเดิม",
["dra-sdo-pro"] = "ดราวิเดียนใต้ที่หนึ่งดั้งเดิม",
["dra-sdt-pro"] = "ดราวิเดียนใต้ที่สองดั้งเดิม",
["dra-sou-pro"] = "ดราวิเดียนใต้ดั้งเดิม",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "West Damar",
["dro"] = "Daro-Matu Melanau",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Proto-Rukai",
["dry"] = "Darai",
["dsb"] = "ซอร์บตอนล่าง",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Labuk-Kinabatangan Kadazan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "ดูซุนตอนกลาง",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Umiray Dumaget Agta",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Alabat Island Agta",
["dum"] = "ดัตช์กลาง",
["dun"] = "Dusun Deyah",
["duo"] = "Dupaningan Agta",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Dicamay Agta",
["duz"] = "Duli",
["dv"] = "มัลดีฟส์",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "เดาโร",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Villa Viciosa Agta",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "ซองคา",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Eastern Bontoc",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Ecuadorian Sign Language",
["ecy"] = "Eteocypriot",
["ee"] = "เอเว",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "เอมีเลีย",
["ego"] = "Eggon",
["egx-dem"] = "Demotic Egyptian",
["egy"] = "อียิปต์",
["ehu"] = "Ehueun",
["eip"] = "Eipomek",
["eit"] = "Eitiep",
["eiv"] = "Askopan",
["eja"] = "Ejamat",
["eka"] = "Ekajuk",
["eke"] = "Ekit",
["ekg"] = "Ekari",
["eki"] = "Eki",
["ekl"] = "Kolhe",
["ekm"] = "Elip",
["eko"] = "Koti",
["ekp"] = "Ekpeye",
["ekr"] = "Yace",
["eky"] = "กะยาตะวันออก",
["el"] = "กรีก",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elamite",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Eastern Meohang",
["emi"] = "Mussau-Emira",
["emk"] = "Eastern Maninkakan",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Northern Emberá",
["ems"] = "อาลูตีก",
["emu"] = "Eastern Muria",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Epigraphic Mayan",
["en"] = "อังกฤษ",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Forest Enets",
["enh"] = "Tundra Enets",
["enl"] = "Enlhet",
["enm"] = "อังกฤษกลาง",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "เอสเปรันโต",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "South Efate",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "สเปน",
["ese"] = "Ese Ejja",
["esh"] = "เอชเตฮาร์ด",
["esl"] = "Egyptian Sign Language",
["esm"] = "Esuma",
["esn"] = "Salvadoran Sign Language",
["eso"] = "Estonian Sign Language",
["esq"] = "Esselen",
["ess"] = "Central Siberian Yupik",
["esu"] = "ยุปปิก",
["esx-esk-pro"] = "เอสกิโมดั้งเดิม",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "อินุอิตดั้งเดิม",
["esx-pro"] = "Proto-Eskimo-Aleut",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "เอสโตเนีย",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Ethiopian Sign Language",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "อีทรัสคัน",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "บาสก์",
["euq-pro"] = "บาสก์ดั้งเดิม",
["eve"] = "เอเว็น",
["evh"] = "Uvbie",
["evn"] = "เอเวนค์",
["ewo"] = "Ewondo",
["ext"] = "เอซเตรมาดูรา",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "เปอร์เซีย",
["faa"] = "Fasu",
["fab"] = "Annobonese",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Baissa Fali",
["fai"] = "Faiwol",
["faj"] = "Faita",
["fak"] = "Fang (Beboid)",
["fal"] = "South Fali",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "ฟาลา",
["fay"] = "Southwestern Fars",
["faz"] = "Northwestern Fars",
["fbl"] = "West Albay Bikol",
["fcs"] = "Quebec Sign Language",
["fer"] = "Feroge",
["ff"] = "ฟูลา",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "ฟินแลนด์",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "ฟีจี",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Montana Salish",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "North Fali",
["fln"] = "Flinders Island",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Far Western Muria",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "แฟโร",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "ฝรั่งเศส",
["frd"] = "Fordata",
["frm"] = "ฝรั่งเศสกลาง",
["fro"] = "ฝรั่งเศสเก่า",
["frp"] = "ฟร็องโก-พรอว็องส์",
["frq"] = "Forak",
["frr"] = "ฟรีเชียเหนือ",
["frt"] = "Fortsenal",
["fse"] = "Finnish Sign Language",
["fsl"] = "French Sign Language",
["fss"] = "Finnish-Swedish Sign Language",
["fud"] = "East Futuna",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "ฟรียูลี",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "ฟรีเชียตะวันตก",
["ga"] = "ไอริช",
["gaa"] = "Ga",
["gab"] = "Gabri",
["gac"] = "Mixed Great Andamanese",
["gad"] = "Gaddang",
["gae"] = "Warekena",
["gaf"] = "Gende",
["gag"] = "กากาอุซ",
["gah"] = "Alekano",
["gai"] = "Borei",
["gaj"] = "Gadsup",
["gak"] = "Gamkonora",
["gal"] = "Galoli",
["gam"] = "Kandawo",
["gan"] = "กั้น",
["gao"] = "Gants",
["gap"] = "Gal",
["gaq"] = "Gata'",
["gar"] = "Galeya",
["gas"] = "Adiwasi Garasia",
["gat"] = "Kenati",
["gau"] = "Kondekor",
["gaw"] = "Nobonob",
["gay"] = "Gayo",
["gba-pro"] = "Proto-Gbaya",
["gbb"] = "Kaytetye",
["gbd"] = "Karadjeri",
["gbe"] = "Niksek",
["gbf"] = "Gaikundi",
["gbg"] = "Gbanziri",
["gbh"] = "Defi Gbe",
["gbi"] = "Galela",
["gbj"] = "Bodo Gadaba",
["gbk"] = "Gaddi",
["gbl"] = "Gamit",
["gbm"] = "Garhwali",
["gbn"] = "Mo'da",
["gbo"] = "Northern Grebo",
["gbp"] = "Gbaya-Bossangoa",
["gbq"] = "Gbaya-Bozoum",
["gbr"] = "Gbagyi",
["gbs"] = "Gbesi Gbe",
["gbu"] = "Gagadu",
["gbv"] = "Gbanu",
["gbw"] = "Gabi",
["gbx"] = "Eastern Xwla Gbe",
["gby"] = "Gbari",
["gcc"] = "Mali",
["gcd"] = "Ganggalida",
["gce"] = "Galice",
["gcf"] = "Antillean Creole",
["gcl"] = "Grenadian Creole English",
["gcn"] = "Gaina",
["gcr"] = "Guianese Creole",
["gct"] = "Colonia Tovar German",
["gd"] = "แกลิกแบบสกอตแลนด์",
["gdb"] = "Ollari",
["gdc"] = "Gugu Badhun",
["gdd"] = "Gedaged",
["gde"] = "Gude",
["gdf"] = "Guduf-Gava",
["gdg"] = "Ga'dang",
["gdh"] = "Gadjerawang",
["gdi"] = "Gundi",
["gdj"] = "Kurtjar",
["gdk"] = "Gadang",
["gdl"] = "Dirasha",
["gdm"] = "Laal",
["gdn"] = "Umanakaina",
["gdo"] = "Godoberi",
["gdq"] = "Mehri",
["gdr"] = "Wipi",
["gds"] = "Ghandruk Sign Language",
["gdt"] = "Kungardutyi",
["gdu"] = "Gudu",
["gdx"] = "Godwari",
["gea"] = "Geruma",
["geb"] = "Kire",
["gec"] = "Gboloo Grebo",
["ged"] = "Gade",
["geg"] = "Gengle",
["geh"] = "Hutterisch",
["gei"] = "Gebe",
["gej"] = "Gen",
["gek"] = "Gerka",
["gel"] = "Fakkanci",
["gem-pro"] = "เจอร์แมนิกดั้งเดิม",
["geq"] = "Geme",
["ges"] = "Geser-Gorom",
["gev"] = "Viya",
["gew"] = "Gera",
["gex"] = "Garre",
["gey"] = "Enya",
["gez"] = "กืออึซ",
["gfk"] = "Patpatar",
["gft"] = "Gafat",
["gga"] = "Gao",
["ggb"] = "Gbii",
["ggd"] = "Gugadj",
["gge"] = "Guragone",
["ggg"] = "Gurgula",
["ggk"] = "Kungarakany",
["ggl"] = "Ganglau",
["ggn"] = "Eastern Gurung",
["ggt"] = "Gitua",
["ggu"] = "Gban",
["ggw"] = "Gogodala",
["gha"] = "Ghadames",
["ghc"] = "แกลิกคลาสสิก",
["ghe"] = "Southern Ghale",
["ghh"] = "Northern Ghale",
["ghk"] = "Geko Karen",
["ghl"] = "Ghulfan",
["ghn"] = "Ghanongga",
["gho"] = "Ghomara",
["ghr"] = "Ghera",
["ghs"] = "Guhu-Samane",
["ght"] = "Kutang Ghale",
["gia"] = "Kitja",
["gib"] = "Gibanawa",
["gid"] = "Gidar",
["gie"] = "Guébie",
["gig"] = "Goaria",
["gih"] = "Githabul",
["gii"] = "Girirra",
["gil"] = "กิลเบิร์ต",
["gim"] = "Gimi (Papuan)",
["gin"] = "Hinukh",
["gip"] = "Gimi (Austronesian)",
["giq"] = "Green Gelao",
["gir"] = "Red Gelao",
["gis"] = "North Giziga",
["git"] = "Gitxsan",
["giu"] = "Mulao",
["giw"] = "White Gelao",
["gix"] = "Gilima",
["giy"] = "Giyug",
["giz"] = "South Giziga",
["gji"] = "Geji",
["gjk"] = "Kachi Koli",
["gjm"] = "Gunditjmara",
["gjn"] = "Gonja",
["gjr"] = "Gurindji Kriol",
["gju"] = "Gojri",
["gka"] = "Guya",
["gkd"] = "Magɨ",
["gke"] = "Ndai",
["gkn"] = "Gokana",
["gko"] = "Kok-Nar",
["gkp"] = "Guinea Kpelle",
["gl"] = "กาลิเซีย",
["glc"] = "Bon Gula",
["gld"] = "Nanai",
["glh"] = "Northwest Pashayi",
["glj"] = "Kulaal",
["glk"] = "Gilaki",
["glo"] = "Galambu",
["glr"] = "Glaro-Twabo",
["glu"] = "Gula",
["glw"] = "Glavda",
["gly"] = "Gule",
["gma"] = "Gambera",
["gmb"] = "Gula'alaa",
["gmd"] = "Mághdì",
["gme-bur"] = "Burgundian",
["gme-cgo"] = "กอทแบบไครเมีย",
["gmg"] = "Magiyi",
["gmh"] = "เยอรมันสูงกลาง",
["gml"] = "เยอรมันต่ำกลาง",
["gmm"] = "Gbaya-Mbodomo",
["gmn"] = "Gimnime",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "นอร์เวย์กลาง",
["gmq-oda"] = "เดนมาร์กเก่า",
["gmq-ogt"] = "Old Gutnish",
["gmq-osw"] = "สวีเดนเก่า",
["gmq-pro"] = "นอร์สดั้งเดิม",
["gmq-scy"] = "Scanian",
["gmr"] = "Mirning",
["gmu"] = "Gumalu",
["gmv"] = "กาโม",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "ฟรังโกเนียตอนกลาง",
["gmw-ecg"] = "เยอรมันตอนกลางตะวันออก",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Jersey Dutch",
["gmw-msc"] = "Middle Scots",
["gmw-pro"] = "เจอร์แมนิกตะวันตกดั้งเดิม",
["gmw-rfr"] = "ฟรังโกเนียแบบไรน์",
["gmw-stm"] = "Sathmar Swabian",
["gmw-tsx"] = "Transylvanian Saxon",
["gmw-vog"] = "เยอรมันแบบว็อลกา",
["gmw-zps"] = "เยอรมันแบบซิพเซอร์",
["gmx"] = "Magoma",
["gmy"] = "กรีกแบบไมซีนี",
["gmz"] = "Mgbo",
["gn-cls"] = "กัวรานีคลาสสิก",
["gna"] = "Kaansa",
["gnb"] = "Gangte",
["gnc"] = "Guanche",
["gnd"] = "Zulgo-Gemzek",
["gne"] = "Ganang",
["gng"] = "Ngangam",
["gnh"] = "Lere",
["gni"] = "กูนียันดี",
["gnj"] = "Ngen of Djonkro",
["gnk"] = "ǁGana",
["gnl"] = "Gangulu",
["gnm"] = "Ginuman",
["gnn"] = "Gumatj",
["gnq"] = "Gana",
["gnr"] = "Gureng Gureng",
["gnt"] = "Guntai",
["gnu"] = "Gnau",
["gnw"] = "Western Bolivian Guarani",
["gnz"] = "Ganzi",
["goa"] = "Guro",
["gob"] = "Playero",
["goc"] = "Gorakor",
["god"] = "Godié",
["goe"] = "Gongduk",
["gof"] = "โกฟา",
["gog"] = "Gogo",
["goh"] = "เยอรมันสูงเก่า",
["goi"] = "Gobasi",
["goj"] = "Gowlan",
["gol"] = "Gola",
["gon"] = "โคณฑี",
["goo"] = "Gone Dau",
["gop"] = "Yeretuar",
["goq"] = "Gorap",
["gor"] = "Gorontalo",
["got"] = "กอท",
["gou"] = "Gavar",
["gov"] = "Goo",
["gow"] = "Gorwaa",
["gox"] = "Gobu",
["goy"] = "Goundo",
["goz"] = "Gozarkhani",
["gpa"] = "Gupa-Abawa",
["gpn"] = "Taiap",
["gqa"] = "Ga'anda",
["gqi"] = "Guiqiong",
["gqn"] = "Kinikinao",
["gqr"] = "Gor",
["gqu"] = "Qau",
["gra"] = "Rajput Garasia",
["grc"] = "กรีกโบราณ",
["grd"] = "Guruntum",
["grg"] = "Madi",
["grh"] = "Gbiri-Niragu",
["gri"] = "Ghari",
["grj"] = "Southern Grebo",
["grk-cal"] = "Calabrian Greek",
["grk-ita"] = "Italiot Greek",
["grk-mar"] = "Mariupol Greek",
["grk-pro"] = "เฮลเลนิกดั้งเดิม",
["grm"] = "Kota Marudu Talantang",
["gro"] = "Groma",
["grq"] = "Gorovu",
["grs"] = "Gresi",
["grt"] = "กาโร",
["gru"] = "Kistane",
["grv"] = "Central Grebo",
["grw"] = "Gweda",
["grx"] = "Guriaso",
["gry"] = "Barclayville Grebo",
["grz"] = "Guramalum",
["gse"] = "Ghanaian Sign Language",
["gsg"] = "German Sign Language",
["gsl"] = "Gusilay",
["gsm"] = "Guatemalan Sign Language",
["gsn"] = "Gusan",
["gso"] = "Southwest Gbaya",
["gsp"] = "Wasembo",
["gss"] = "Greek Sign Language",
["gsw"] = "เยอรมันแบบอลามันเนีย",
["gta"] = "Guató",
["gtu"] = "Aghu Tharrnggala",
["gu"] = "คุชราต",
["gua"] = "Shiki",
["gub"] = "Guajajára",
["guc"] = "Wayuu",
["gud"] = "Yocoboué Dida",
["gue"] = "Gurindji",
["guf"] = "Gupapuyngu",
["gug"] = "กัวรานีแบบปารากวัย",
["guh"] = "Guahibo",
["gui"] = "Eastern Bolivian Guarani",
["guk"] = "Gumuz",
["gul"] = "Gullah",
["gum"] = "Guambiano",
["gun"] = "Mbya Guarani",
["guo"] = "Guayabero",
["gup"] = "Gunwinggu",
["guq"] = "Aché",
["gur"] = "ฟราฟรา",
["gus"] = "Guinean Sign Language",
["gut"] = "Maléku Jaíka",
["guu"] = "Yanomamö",
["guv"] = "Gey",
["guw"] = "Gun",
["gux"] = "Gourmanchéma",
["guz"] = "Gusii",
["gv"] = "แมงซ์",
["gva"] = "Kaskihá",
["gvc"] = "Guanano",
["gve"] = "Duwet",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Pará Gavião",
["gvr"] = "Western Gurung",
["gvs"] = "Gumawana",
["gvy"] = "Guyani",
["gwa"] = "Mbato",
["gwb"] = "Gwa",
["gwc"] = "Kalami",
["gwd"] = "Gawwada",
["gwe"] = "Gweno",
["gwf"] = "Gowro",
["gwg"] = "Moo",
["gwi"] = "Gwich'in",
["gwj"] = "Gcwi",
["gwm"] = "Awngthim",
["gwn"] = "Gwandara",
["gwr"] = "Gwere",
["gwt"] = "Gawar-Bati",
["gwu"] = "Guwamu",
["gww"] = "Kwini",
["gwx"] = "Gua",
["gxx"] = "Wè Southern",
["gya"] = "Northwest Gbaya",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Guyanese Creole English",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "เฮาซา",
["haa"] = "Hän",
["hab"] = "Hanoi Sign Language",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Haiphong Sign Language",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "ฮาชอง",
["hak"] = "แคะ",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "ฮาวาย",
["hax"] = "Southern Haida",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Andaman Creole Hindi",
["hch"] = "Huichol",
["hdn"] = "Northern Haida",
["hds"] = "Honduras Sign Language",
["hdy"] = "Hadiyya",
["he"] = "ฮีบรู",
["hea"] = "Northern Qiandong Miao",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "ฮินดี",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "ฮินดีแบบฟีจี",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "ฮีลีไกโนน",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Hittite",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Hong Kong Sign Language",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Southern Mashan Hmong",
["hmb"] = "Humburi Senni",
["hmc"] = "Central Huishui Hmong",
["hmd"] = "A-Hmao",
["hme"] = "Eastern Huishui Hmong",
["hmf"] = "Hmong Don",
["hmg"] = "Southwestern Guiyang Hmong",
["hmh"] = "Southwestern Huishui Hmong",
["hmi"] = "Northern Huishui Hmong",
["hmj"] = "Ge",
["hmk"] = "Yemaek",
["hml"] = "Luopohe Hmong",
["hmm"] = "Central Mashan Hmong",
["hmn-pro"] = "ม้งดั้งเดิม",
["hmp"] = "Northern Mashan Hmong",
["hmq"] = "Eastern Qiandong Miao",
["hmr"] = "Hmar",
["hms"] = "Southern Qiandong Miao",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Western Mashan Hmong",
["hmx-mie-pro"] = "เมี่ยนดั้งเดิม",
["hmx-pro"] = "ม้ง-เมี่ยนดั้งเดิม",
["hmy"] = "Southern Guiyang Hmong",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Southern Hindko",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "ม้งเขียว",
["hnm"] = "ไหหลำ",
["hnn"] = "ฮานูโนโอ",
["hno"] = "Northern Hindko",
["hns"] = "ฮินดูสตานีแบบแคริบเบียน",
["hnu"] = "Hung",
["ho"] = "ฮีรีโมตู",
["hoa"] = "Hoava",
["hob"] = "Austronesian Mari",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadoti",
["hol"] = "Holu",
["hom"] = "Homa",
["hoo"] = "Holoholo",
["hop"] = "Hopi",
["hor"] = "Horo",
["hos"] = "Ho Chi Minh City Sign Language",
["hot"] = "Hote",
["hov"] = "Hovongan",
["how"] = "Honi",
["hoy"] = "Holiya",
["hoz"] = "Hozo",
["hpo"] = "Hpon",
["hps"] = "Hawai'i Pidgin Sign Language",
["hra"] = "Hrangkhol",
["hrc"] = "Niwer Mil",
["hre"] = "Hrê",
["hrk"] = "Haruku",
["hrm"] = "Horned Miao",
["hro"] = "Haroi",
["hrp"] = "Nhirrpi",
["hrt"] = "Hértevin",
["hru"] = "Hruso",
["hrw"] = "Warwar Feni",
["hrx"] = "ฮุนสริก",
["hrz"] = "Harzani",
["hsb"] = "ซอร์บตอนบน",
["hsh"] = "Hungarian Sign Language",
["hsl"] = "Hausa Sign Language",
["hsn"] = "เซียง",
["hss"] = "Harsusi",
["ht"] = "ครีโอลเฮติ",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "ฮังการี",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Northern Guiyang Hmong",
["huk"] = "Hulung",
["hul"] = "Hula",
["hum"] = "Hungana",
["huo"] = "Hu",
["hup"] = "Hupa",
["huq"] = "Tsat",
["hur"] = "Halkomelem",
["hus"] = "Wastek",
["huu"] = "Murui Huitoto",
["huv"] = "Huave",
["huw"] = "Hukumina",
["hux"] = "Nüpode Huitoto",
["huy"] = "Hulaulá",
["huz"] = "Hunzib",
["hvc"] = "Haitian Vodoun Culture Language",
["hvk"] = "Haveke",
["hvn"] = "Sabu",
["hwa"] = "Wané",
["hwc"] = "Hawaiian Creole",
["hwo"] = "Hwana",
["hy"] = "อาร์มีเนีย",
["hya"] = "Hya",
["hyx-pro"] = "อาร์มีเนียนดั้งเดิม",
["hz"] = "เฮเรโร",
["ia"] = "อินเทอร์ลิงกวา",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "อีบัน",
["ibb"] = "Ibibio",
["ibd"] = "Iwaidja",
["ibe"] = "Akpes",
["ibg"] = "Ibanag",
["ibh"] = "Bih",
["ibl"] = "Ibaloi",
["ibm"] = "Agoi",
["ibn"] = "Ibino",
["ibr"] = "Ibuoro",
["ibu"] = "Ibu",
["iby"] = "Ibani",
["ica"] = "Ede Ica",
["ich"] = "Etkywan",
["icl"] = "Icelandic Sign Language",
["icr"] = "Islander Creole English",
["id"] = "อินโดนีเซีย",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portuguese",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "อินเทร์ลิงเกว",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "อิกโบ",
["igb"] = "Ebira",
["ige"] = "Igede",
["igg"] = "Igana",
["igl"] = "Igala",
["igm"] = "Kanggape",
["ign"] = "Ignaciano",
["igo"] = "Isebe",
["igs"] = "Glosa",
["igw"] = "Igwe",
["ihb"] = "Pidgin Iha",
["ihi"] = "Ihievbe",
["ihp"] = "Iha",
["ii"] = "นอซู",
["iir-nur-pro"] = "Proto-Nuristani",
["iir-pro"] = "อินโด-อิเรเนียนดั้งเดิม",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo-pro"] = "Proto-Ijoid",
["ijs"] = "Southeast Ijo",
["ik"] = "Inupiaq",
["ike"] = "Eastern Canadian Inuktitut",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Inuit Sign Language",
["ikt"] = "Inuvialuktun",
["ikv"] = "Iku-Gora-Ankwa",
["ikw"] = "Ikwere",
["ikx"] = "Ik",
["ikz"] = "Ikizu",
["ila"] = "Ile Ape",
["ilb"] = "Ila",
["ilg"] = "Ilgar",
["ili"] = "Ili Turki",
["ilk"] = "Ilongot",
["ill"] = "อีรานุน",
["ilo"] = "อีโลกาโน",
["ils"] = "International Sign",
["ilu"] = "Ili'uun",
["ilv"] = "Ilue",
["ima"] = "Mala Malasar",
["imi"] = "Anamgura",
["iml"] = "Miluk",
["imn"] = "Imonda",
["imo"] = "Imbongu",
["imr"] = "Imroing",
["ims"] = "Marsian",
["imy"] = "Milyan",
["inb"] = "Inga",
["inc-apa"] = "Apabhramsa",
["inc-ash"] = "ปรากฤตแบบอโศก",
["inc-dng-pro"] = "Proto-Dangari",
["inc-kam"] = "กามรูป",
["inc-kho"] = "Kholosi",
["inc-krd-pro"] = "Proto-Kamta",
["inc-mas"] = "อัสสัมกลาง",
["inc-mbn"] = "เบงกอลกลาง",
["inc-mgu"] = "คุชราตกลาง",
["inc-mor"] = "โอริยากลาง",
["inc-oas"] = "อัสสัมช่วงต้น",
["inc-oaw"] = "Old Awadhi",
["inc-obn"] = "เบงกอลเก่า",
["inc-ogu"] = "คุชราตเก่า",
["inc-ohi"] = "ฮินดีเก่า",
["inc-oor"] = "โอริยาเก่า",
["inc-opa"] = "ปัญจาบเก่า",
["inc-pro"] = "อินโด-อารยันดั้งเดิม",
["ine-ana-pro"] = "อานาโตเลียนดั้งเดิม",
["ine-bsl-pro"] = "บอลโต-สลาวิกดั้งเดิม",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonian",
["ine-pro"] = "อินโด-ยูโรเปียนดั้งเดิม",
["ine-toc-pro"] = "โทแคเรียนดั้งเดิม",
["ing"] = "Deg Xinag",
["inh"] = "อิงกุช",
["inj"] = "Jungle Inga",
["inl"] = "มืออินโดนีเซีย",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "มืออินเดีย",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "อีโด",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Proto-Komisenian",
["ira-mny-pro"] = "Proto-Munji-Yidgha",
["ira-mpr-pro"] = "Proto-Medo-Parthian",
["ira-pat-pro"] = "ปาทานดั้งเดิม",
["ira-pro"] = "อิเรเนียนดั้งเดิม",
["ira-sgc-pro"] = "ซอกดิกดั้งเดิม",
["ira-sgi-pro"] = "Proto-Sanglechi-Ishkashimi",
["ira-shr-pro"] = "Proto-Shughni-Roshani",
["ira-shy-pro"] = "Proto-Shughni-Yazghulami",
["ira-sym-pro"] = "Proto-Shughni-Yazghulami-Munji",
["ira-wnj"] = "Vanji",
["ira-zgr-pro"] = "Proto-Zaza-Gorani",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Rigwe",
["irk"] = "Iraqw",
["irn"] = "Irantxe",
["iro-ere"] = "Erie",
["iro-min"] = "Mingo",
["iro-nor-pro"] = "Proto-North Iroquoian",
["iro-pro"] = "Proto-Iroquoian",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "ไอซ์แลนด์",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Italian Sign Language",
["isg"] = "Irish Sign Language",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Israeli Sign Language",
["ist"] = "อิสเตรีย",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "อิตาลี",
["itb"] = "Binongan Itneg",
["itc-pro"] = "อิตาลิกดั้งเดิม",
["itc-psa"] = "Pre-Samnite",
["itd"] = "Southern Tidung",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Italian",
["itl"] = "Itelmen",
["itm"] = "Itu Mbon Uzo",
["ito"] = "Itonama",
["itr"] = "Iteri",
["its"] = "Itsekiri",
["itt"] = "Maeng Itneg",
["itv"] = "Itawit",
["itw"] = "Ito",
["itx"] = "Itik",
["ity"] = "Moyadan Itneg",
["itz"] = "Itza'",
["iu"] = "อินุกติตุต",
["ium"] = "เมี่ยน",
["ivb"] = "Ibatan",
["ivv"] = "Ivatan",
["iwk"] = "I-Wak",
["iwm"] = "Iwam",
["iwo"] = "Iwur",
["iws"] = "Sepik Iwam",
["ixc"] = "Ixcatec",
["ixl"] = "Ixil",
["iya"] = "Iyayu",
["iyo"] = "Mesaka",
["iyx"] = "Yaa",
["izh"] = "อิงเกรีย",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "ญี่ปุ่น",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jal"] = "Yalahatan",
["jam"] = "ครีโอลจาเมกา",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "ชวาแบบนิวแคลิโดเนีย",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Jambi Malay",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "โลจบาน",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Jamaican Country Sign Language",
["jct"] = "Krymchak",
["jda"] = "Jad",
["jdg"] = "Jadgali",
["jdt"] = "Judeo-Tat",
["jeb"] = "Jebero",
["jee"] = "Jerung",
["jeg"] = "Jeng",
["jeh"] = "Jeh",
["jei"] = "Yei",
["jek"] = "Jeri Kuo",
["jel"] = "Yelmek",
["jen"] = "Dza",
["jer"] = "Jere",
["jet"] = "Manem",
["jeu"] = "Jonkor Bourmataguil",
["jgb"] = "Ngbee",
["jgk"] = "Gwak",
["jgo"] = "Ngomba",
["jhi"] = "Jehai",
["jhs"] = "Jhankot Sign Language",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "เจียเม่า",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "เชจู",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkp"] = "Paku Karen",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Jamaican Sign Language",
["jma"] = "Dima",
["jmb"] = "Zumbun",
["jmc"] = "Machame",
["jmd"] = "Yamdena",
["jmi"] = "Jimi",
["jml"] = "Jumli",
["jmn"] = "Makuri Naga",
["jmr"] = "Kamara",
["jmw"] = "Mouwase",
["jmx"] = "Western Juxtlahuaca Mixtec",
["jna"] = "Jangshung",
["jnd"] = "Jandavra",
["jng"] = "Yangman",
["jni"] = "Janji",
["jnj"] = "Yemsa",
["jnl"] = "Rawat",
["jns"] = "Jaunsari",
["job"] = "Joba",
["jod"] = "Wojenaka",
["jor"] = "Jorá",
["jos"] = "Jordanian Sign Language",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "แจพอนิกดั้งเดิม",
["jpx-ryu-pro"] = "Proto-Ryukyuan",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Japanese Sign Language",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "จูร์เชน",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Jumla Sign Language",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "ชวา",
["jvd"] = "Javindo",
["jvn"] = "ชวาแบบแคริบเบียน",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "จอร์เจีย",
["kaa"] = "การากัลปัก",
["kab"] = "กะไบล์",
["kac"] = "จิ่งเผาะ",
["kad"] = "Kadara",
["kae"] = "Ketangalan",
["kaf"] = "Katso",
["kag"] = "Kajaman",
["kah"] = "Fer",
["kai"] = "Karekare",
["kaj"] = "Jju",
["kak"] = "Kayapa Kallahan",
["kam"] = "Kamba",
["kao"] = "Kassonke",
["kap"] = "Bezhta",
["kaq"] = "Capanahua",
["kar-pro"] = "กะเหรี่ยงดั้งเดิม",
["kaw"] = "ชวาเก่า",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "คาบาร์เดีย",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (Central Africa)",
["kbo"] = "Keliko",
["kbp"] = "Kabiyé",
["kbq"] = "Kamano",
["kbr"] = "Kafa",
["kbs"] = "Kande",
["kbt"] = "Gabadi",
["kbu"] = "Kabutra",
["kbv"] = "Kamberataro",
["kbw"] = "Kaiep",
["kbx"] = "Ap Ma",
["kbz"] = "Duhwa",
["kca-eas"] = "Eastern Khanty",
["kca-nor"] = "Northern Khanty",
["kca-pro"] = "Proto-Khanty",
["kca-sou"] = "Southern Khanty",
["kcb"] = "Kawacha",
["kcc"] = "Lubila",
["kcd"] = "Ngkâlmpw Kanum",
["kce"] = "Kaivi",
["kcf"] = "Ukaan",
["kcg"] = "Tyap",
["kch"] = "Vono",
["kci"] = "Kamantan",
["kcj"] = "Kobiana",
["kck"] = "Kalanga",
["kcl"] = "Kala",
["kcm"] = "Tar Gula",
["kcn"] = "Nubi",
["kco"] = "Kinalakna",
["kcp"] = "Kanga",
["kcq"] = "Kamo",
["kcr"] = "Katla",
["kcs"] = "Koenoem",
["kct"] = "Kaian",
["kcu"] = "Kikami",
["kcv"] = "Kete",
["kcw"] = "Kabwari",
["kcx"] = "Kachama-Ganjule",
["kcy"] = "Korandje",
["kcz"] = "Konongo",
["kda"] = "Worimi",
["kdc"] = "Kutu",
["kdd"] = "Yankunytjatjara",
["kde"] = "Makonde",
["kdf"] = "Mamusi",
["kdg"] = "Seba",
["kdh"] = "Tem",
["kdi"] = "Kumam",
["kdj"] = "Karamojong",
["kdk"] = "Numèè",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "กูย",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "ครีโอลกาบูเวร์ดี",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Eastern Keres",
["kef"] = "Kpessi",
["keg"] = "Tese",
["keh"] = "Keak",
["kei"] = "Kei",
["kej"] = "Kadar",
["kek"] = "Q'eqchi",
["kel"] = "Kela-Yela",
["kem"] = "Kemak",
["ken"] = "Kenyang",
["keo"] = "Kakwa",
["kep"] = "Kaikadi",
["keq"] = "Kamar",
["ker"] = "Kera",
["kes"] = "Kugbo",
["ket"] = "Ket",
["keu"] = "Akebu",
["kev"] = "Kanikkaran",
["kew"] = "Kewa",
["kex"] = "Kukna",
["key"] = "Kupia",
["kez"] = "Kukele",
["kfa"] = "Kodava",
["kfb"] = "Kolami",
["kfc"] = "Konda-Dora",
["kfd"] = "Korra Koraga",
["kfe"] = "Kota (India)",
["kff"] = "Koya",
["kfg"] = "Kudiya",
["kfh"] = "Kurichiya",
["kfi"] = "Kannada Kurumba",
["kfj"] = "Kemiehua",
["kfk"] = "Kinnauri",
["kfl"] = "Kung",
["kfn"] = "Kuk",
["kfo"] = "Koro (West Africa)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "กัจฉ์",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "คองโก",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgn"] = "Karingani",
["kgo"] = "Krongo",
["kgp"] = "Kaingang",
["kgq"] = "Kamoro",
["kgr"] = "Abun",
["kgs"] = "Kumbainggar",
["kgt"] = "Somyev",
["kgu"] = "Kobol",
["kgv"] = "Karas",
["kgw"] = "Karon Dori",
["kgx"] = "Kamaru",
["kgy"] = "Kyerung",
["kha"] = "คาซี",
["khb"] = "ไทลื้อ",
["khc"] = "Tukang Besi North",
["khd"] = "Bädi Kanum",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khh"] = "Kehu",
["khi-kho-pro"] = "Proto-Khoe",
["khi-kun"] = "ǃKung",
["khj"] = "Kuturmi",
["khl"] = "Lusi",
["khn"] = "Khandeshi",
["kho"] = "โคตาน",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "คำตี้",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "เกโกโย",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Eastern Parbate Kham",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "โตฟา",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Northeast Kiwai",
["kix"] = "Khiamniungan Naga",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Coastal Konjo",
["kjd"] = "Southern Kiwai",
["kje"] = "Kisar",
["kjg"] = "ขมุ",
["kjh"] = "คาคัส",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Western Parbate Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "กะเหรี่ยงโปตะวันออก",
["kjq"] = "Western Keres",
["kjr"] = "Kurudu",
["kjs"] = "East Kewa",
["kjt"] = "กะเหรี่ยงโปแพร่",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "คาซัค",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Kalaktang Monpa",
["kkg"] = "Mabaka Valley Kalinga",
["kkh"] = "เขิน",
["kki"] = "Kagulu",
["kkj"] = "Kako",
["kkk"] = "Kokota",
["kkl"] = "Kosarek Yale",
["kkm"] = "Kiong",
["kkn"] = "Kon Keu",
["kko"] = "Karko",
["kkp"] = "Koko-Bera",
["kkq"] = "Kaiku",
["kkr"] = "Kir-Balar",
["kks"] = "Kirfi",
["kkt"] = "Koi",
["kku"] = "Tumi",
["kkv"] = "Kangean",
["kkw"] = "Teke-Kukuya",
["kkx"] = "Kohin",
["kky"] = "Guugu Yimidhirr",
["kkz"] = "Kaska",
["kl"] = "กรีนแลนด์",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "กาลากันแบบตากาเกาลู",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "กาลากันแบบกากัน",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "ลินดู",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "เขมร",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "ต้งใต้",
["kmd"] = "Madukayang Kalinga",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Limos Kalinga",
["kml"] = "Tanudan Kalinga",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "เคิร์ดเหนือ",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Karipúna Creole French",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Khorasani Turkish",
["kn"] = "กันนฑะ",
["kna"] = "Kanakuru",
["knb"] = "Lubuagan Kalinga",
["knd"] = "Konda",
["kne"] = "กันกานาอือ",
["knf"] = "Mankanya",
["kni"] = "Kanufi",
["knj"] = "Akatek",
["knk"] = "Kuranko",
["knl"] = "Keninjal",
["knm"] = "Kanamari",
["kno"] = "Kono (Sierra Leone)",
["knp"] = "Kwanja",
["knq"] = "Kintaq",
["knr"] = "Kaningra",
["kns"] = "Kensiu",
["knt"] = "Katukina",
["knu"] = "Kono (Guinea)",
["knv"] = "Tabo",
["knx"] = "Kendayan",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "เกาหลี",
["ko-ear"] = "เกาหลีใหม่ช่วงต้น",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "กงกัณ",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosraean",
["kot"] = "Lagwan",
["kou"] = "Koke",
["kov"] = "Kudu-Camo",
["kow"] = "Kugama",
["koy"] = "Koyukon",
["koz"] = "Korak",
["kpa"] = "Kutto",
["kpb"] = "Mullu Kurumba",
["kpc"] = "Curripaco",
["kpd"] = "Koba",
["kpe"] = "Kpelle",
["kpf"] = "Komba",
["kpg"] = "Kapingamarangi",
["kph"] = "Kplang",
["kpi"] = "Kofei",
["kpj"] = "Karajá",
["kpk"] = "Kpan",
["kpl"] = "Kpala",
["kpm"] = "เกอฮอ",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Mountain Koiari",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "กาลากัน",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Kotafon Gbe",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Eastern Krahn",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Northern Kissi",
["kqt"] = "Klias River Kadazan",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "กานูรี",
["kra"] = "Kumhali",
["krb"] = "Karkin",
["krc"] = "Karachay-Balkar",
["krd"] = "Kairui-Midiki",
["kre"] = "Panará",
["krf"] = "Koro (Vanuatu)",
["krh"] = "Kurama",
["kri"] = "Krio",
["krj"] = "Kinaray-a",
["krk"] = "Kerek",
["krl"] = "คาเรเลีย",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Proto-Kru",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "กุรุข",
["krv"] = "Kavet",
["krw"] = "Western Krahn",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "แคชเมียร์",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Southern Kalinga",
["ksd"] = "Tolai",
["kse"] = "Kuni",
["ksf"] = "Bafia",
["ksg"] = "Kusaghe",
["ksi"] = "Krisa",
["ksj"] = "Uare",
["ksk"] = "Kansa",
["ksl"] = "Kumalu",
["ksm"] = "Kumba",
["ksn"] = "Kasiguranin",
["kso"] = "Kofa",
["ksp"] = "Kaba",
["ksq"] = "Kwaami",
["ksr"] = "Borong",
["kss"] = "Southern Kissi",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "กะเหรี่ยงสะกอ",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "North Muyu",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Kota Marudu Tinagas",
["kts"] = "South Muyu",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "กะตูตะวันออก",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "เคอร์ดิชดั้งเดิม",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "กะตูตะวันตก",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "คูมุก",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Ktunaxa",
["kuu"] = "Upper Kuskokwim",
["kuv"] = "Kur",
["kuw"] = "Kpagua",
["kux"] = "Kukatja",
["kuy"] = "Kuuku-Ya'u",
["kuz"] = "Kunza",
["kva"] = "Bagvalal",
["kvb"] = "Kubu",
["kvc"] = "Kove",
["kvd"] = "Kui (Indonesia)",
["kve"] = "Kalabakan",
["kvf"] = "Kabalai",
["kvg"] = "Kuni-Boazi",
["kvh"] = "Komodo",
["kvi"] = "Kwang",
["kvj"] = "Psikye",
["kvk"] = "Korean Sign Language",
["kvl"] = "Brek Karen",
["kvm"] = "Kendem",
["kvn"] = "Border Kuna",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Geba Karen",
["kvr"] = "Kerinci",
["kvt"] = "Lahta Karen",
["kvu"] = "Yinbaw Karen",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Yintale Karen",
["kvz"] = "Tsakwambo",
["kw"] = "คอร์นวอลล์",
["kwa"] = "Dâw",
["kwb"] = "Baa",
["kwc"] = "Likwala",
["kwd"] = "Kwaio",
["kwe"] = "Kwerba",
["kwf"] = "Kwara'ae",
["kwg"] = "Sara Kaba Deme",
["kwh"] = "Kowiai",
["kwi"] = "Awa-Cuaiquer",
["kwj"] = "Kwanga",
["kwk"] = "Kwak'wala",
["kwl"] = "Kofyar",
["kwm"] = "Kwambi",
["kwn"] = "Kwangali",
["kwo"] = "Kwomtari",
["kwp"] = "Kodia",
["kwq"] = "Kwak",
["kwr"] = "Kwer",
["kws"] = "Kwese",
["kwt"] = "Kwesten",
["kwu"] = "Kwakum",
["kwv"] = "Sara Kaba Náà",
["kww"] = "Kwinti",
["kwx"] = "Khirwar",
["kwz"] = "Kwadi",
["kxa"] = "Kairiru",
["kxb"] = "Krobu",
["kxc"] = "Konso",
["kxd"] = "มลายูแบบบรูไน",
["kxe"] = "Kakihum",
["kxf"] = "Manumanaw Karen",
["kxh"] = "Karo",
["kxi"] = "Keningau Murut",
["kxj"] = "Kulfa",
["kxk"] = "Zayein Karen",
["kxl"] = "Nepali Kurux",
["kxm"] = "เขมรเหนือ",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Manus Koro",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "คีร์กีซ",
["kya"] = "Kwaya",
["kyb"] = "Butbut Kalinga",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "กาเรา",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Baram Kayan",
["kyt"] = "Kayagar",
["kyu"] = "กะยาตะวันตก",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Western Karaboro",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "กาดาซันชายฝั่ง",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Sugut Dusun",
["kzt"] = "Tambunan Dusun",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "ละติน",
["laa"] = "Lapuyan Subanun",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "ลาดิโน",
["lae"] = "Pattani",
["laf"] = "Lafofa",
["lag"] = "Langi",
["lah"] = "Lahnda",
["lai"] = "Lambya",
["laj"] = "Lango (Uganda)",
["lak"] = "Laka",
["lam"] = "Lamba",
["lan"] = "Laru",
["lap"] = "Kabba-Laka",
["laq"] = "Qabiao",
["lar"] = "Larteh",
["las"] = "Gur Lama",
["lau"] = "Laba",
["law"] = "Lauje",
["lax"] = "Tiwa",
["lay"] = "Lama Bai",
["laz"] = "Aribwatsa",
["lb"] = "ลักเซมเบิร์ก",
["lbb"] = "Label",
["lbc"] = "ลักเกีย",
["lbe"] = "ลัก",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "ลาดัก",
["lbk"] = "Central Bontoc",
["lbl"] = "Libon Bikol",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Northern Lorung",
["lbs"] = "Libyan Sign Language",
["lbt"] = "Lachi",
["lbu"] = "Labu",
["lbv"] = "Lavatbura-Lamusong",
["lbw"] = "Tolaki",
["lbx"] = "Lawangan",
["lby"] = "Lamu-Lamu",
["lbz"] = "Lardil",
["lcc"] = "Legenyem",
["lcd"] = "Lola",
["lce"] = "Loncong",
["lcf"] = "Lubu",
["lch"] = "Luchazi",
["lcl"] = "Lisela",
["lcm"] = "Tungag",
["lcp"] = "เลอเวือะตะวันตก",
["lcq"] = "Luhu",
["lcs"] = "Lisabata-Nuniali",
["lda"] = "Kla",
["ldb"] = "Idun",
["ldd"] = "Luri (Nigeria)",
["ldg"] = "Lenyima",
["ldh"] = "Lamja-Dengsa-Tola",
["ldj"] = "Lemoro",
["ldk"] = "Leelau",
["ldl"] = "Kaan",
["ldm"] = "Landoma",
["ldn"] = "Láadan",
["ldo"] = "Loo",
["ldp"] = "Tso",
["ldq"] = "Lufu",
["lea"] = "Lega-Shabunda",
["leb"] = "Lala-Bisa",
["lec"] = "Leco",
["led"] = "Lendu",
["lee"] = "Lyélé",
["lef"] = "Lelemi",
["leh"] = "Lenje",
["lei"] = "Lemio",
["lej"] = "Lengola",
["lek"] = "Leipon",
["lel"] = "Lele (Congo)",
["lem"] = "Nomaande",
["len"] = "Honduran Lenca",
["leo"] = "Mengisa",
["lep"] = "Lepcha",
["leq"] = "Lembena",
["ler"] = "Lenkau",
["les"] = "Lese",
["let"] = "Lesing-Gelimi",
["leu"] = "Kara (New Guinea)",
["lev"] = "Lamma",
["lew"] = "Ledo Kaili",
["lex"] = "Luang",
["ley"] = "Lemolang",
["lez"] = "เลซกี",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "ลูกันดา",
["lga"] = "Lungga",
["lgb"] = "Laghu",
["lgg"] = "Lugbara",
["lgh"] = "Laghuu",
["lgi"] = "Lengilu",
["lgk"] = "Neverver",
["lgl"] = "Wala",
["lgm"] = "Lega-Mwenga",
["lgn"] = "Opuuo",
["lgq"] = "Logba",
["lgr"] = "Lengo",
["lgs"] = "Guinea-Bissau Sign Language",
["lgt"] = "Pahi",
["lgu"] = "Longgu",
["lgz"] = "Ligenza",
["lha"] = "Laha (Vietnam)",
["lhh"] = "Laha (Indonesia)",
["lhi"] = "Lahu Shi",
["lhl"] = "Lahul Lohar",
["lhn"] = "Lahanan",
["lhp"] = "Lhokpu",
["lhs"] = "Mlahsö",
["lht"] = "Lo-Toga",
["lhu"] = "Lahu",
["li"] = "ลิมเบิร์ก",
["lia"] = "West-Central Limba",
["lib"] = "Likum",
["lic"] = "ไหล",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "ลิมบู",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "ลีกูเรีย",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "ลีสู่",
["liu"] = "Logorik",
["liv"] = "ลีโวเนีย",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "ลาดิน",
["lle"] = "Lele (New Guinea)",
["llf"] = "Hermit",
["llg"] = "Lole",
["llh"] = "Lamu",
["lli"] = "Teke-Laali",
["llj"] = "Ladji-Ladji",
["llk"] = "Lelak",
["lll"] = "Lilau",
["llm"] = "Lasalimu",
["lln"] = "Lele (Chad)",
["llo"] = "Khlor",
["llp"] = "North Efate",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "East Limba",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "South Lembata",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "West Lembata",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "ลอมบาร์ด",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "ลัมโบยา",
["lmz"] = "Lumbee",
["ln"] = "ลิงกาลา",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "South Central Banda",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "ลาว",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "เบอราวัน",
["loe"] = "Saluan",
["lof"] = "Logol",
["log"] = "Logo",
["loh"] = "Narim",
["loi"] = "Lomakka",
["loj"] = "Lou",
["lok"] = "Loko",
["lol"] = "Mongo",
["lom"] = "Loma",
["lon"] = "Malawi Lomwe",
["loo"] = "Lombo",
["lop"] = "Lopa",
["loq"] = "Lobala",
["lor"] = "Téén",
["los"] = "Loniu",
["lot"] = "Lotuko",
["lou"] = "ครีโอลลุยเซียนา",
["lov"] = "Lopi",
["low"] = "Tampias Lobu",
["lox"] = "Loun",
["loz"] = "Lozi",
["lpa"] = "Lelepa",
["lpe"] = "Lepki",
["lpn"] = "Long Phuri Naga",
["lpo"] = "Lipo",
["lpx"] = "Lopit",
["lra"] = "Rara Bakati'",
["lrc"] = "Northern Luri",
["lre"] = "Laurentian",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Southern Lorung",
["lrt"] = "Larantuka Malay",
["lrv"] = "Larëvat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Latvian Sign Language",
["lsm"] = "Saamia",
["lsn"] = "Tibetan Sign Language",
["lso"] = "Laos Sign Language",
["lsp"] = "Panamanian Sign Language",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Trinidad and Tobago Sign Language",
["lsv"] = "Sivia Sign Language",
["lsy"] = "Mauritian Sign Language",
["lt"] = "ลิทัวเนีย",
["ltc"] = "จีนยุคกลาง",
["ltg"] = "ลัตเกล",
["lti"] = "Leti",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["luh"] = "หล่อยแอว๋",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "มีโซ",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Southern Luri",
["lv"] = "ลัตเวีย",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "White Lachi",
["lwl"] = "เลอเวือะตะวันออก",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "ลึงงัม",
["lyn"] = "Luyana",
["lzh"] = "จีนวรรณกรรม",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "ลัซ",
["maa"] = "San Jerónimo Tecóatl Mazatec",
["mab"] = "Yutanduchi Mixtec",
["mad"] = "Madurese",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "มคหะ",
["mai"] = "ไมถิลี",
["maj"] = "Jalapa de Díaz Mazatec",
["mak"] = "มากัซซาร์",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Proto-Atayalic",
["map-bms"] = "Banyumasan",
["map-pro"] = "ออสโตรนีเซียนดั้งเดิม",
["maq"] = "Chiquihuitlán Mazatec",
["mas"] = "มาไซ",
["mat"] = "Matlatzinca",
["mau"] = "Huautla Mazatec",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "North Moluccan Malay",
["maz"] = "Central Mazahua",
["mba"] = "Higaonon",
["mbb"] = "Western Bukidnon Manobo",
["mbc"] = "Macushi",
["mbd"] = "Dibabawon Manobo",
["mbe"] = "Molale",
["mbf"] = "Baba Malay",
["mbh"] = "Mangseng",
["mbi"] = "Ilianen Manobo",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Sarangani Manobo",
["mbt"] = "Matigsalug Manobo",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Sepik Mari",
["mby"] = "Memoni",
["mbz"] = "Amoltepec Mixtec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Itundujia Mixtec",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Coatlán Mixe",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Cameroon Mambila",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "South Watut",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Bura Mabang",
["mdf"] = "มอกชา",
["mdg"] = "Massalat",
["mdh"] = "มากินดาเนา",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Maltese Sign Language",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Santa Lucía Monteverde Mixtec",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Southwestern Tlaxiaco Mixtec",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Central Melanau",
["mem"] = "Mangala",
["men"] = "Mende",
["meo"] = "มลายูแบบเกอดะฮ์",
["mep"] = "Miriwung",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Hassaniya Arabic",
["mez"] = "Menominee",
["mfa"] = "มลายูแบบปัตตานี",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "ครีโอลมอริเชียส",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "North Mofu",
["mfl"] = "Putai",
["mfm"] = "Marghi South",
["mfn"] = "Cross River Mbembe",
["mfo"] = "Mbe",
["mfp"] = "Makassar Malay",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Mexican Sign Language",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "มาลากาซี",
["mga"] = "ไอริชกลาง",
["mgb"] = "Mararit",
["mgc"] = "Morokodo",
["mgd"] = "Moru",
["mge"] = "Mango",
["mgf"] = "Maklew",
["mgg"] = "Mpongmpong",
["mgh"] = "Makhuwa-Meetto",
["mgi"] = "Jili",
["mgj"] = "Abureni",
["mgk"] = "Mawes",
["mgl"] = "Maleu-Kilenge",
["mgm"] = "Mambae",
["mgn"] = "Mbangi",
["mgo"] = "Meta'",
["mgp"] = "Eastern Magar",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mongol",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "มาร์แชลล์",
["mha"] = "Manda (India)",
["mhb"] = "Mahongwe",
["mhc"] = "Mocho",
["mhd"] = "Mbugu",
["mhe"] = "Besisi",
["mhf"] = "Mamaa",
["mhg"] = "Marrgu",
["mhi"] = "Ma'di",
["mhj"] = "Mogholi",
["mhk"] = "Mungaka",
["mhl"] = "Mauwake",
["mhm"] = "Makhuwa-Moniga",
["mhn"] = "โมเชโน",
["mho"] = "Mashi",
["mhp"] = "Balinese Malay",
["mhq"] = "Mandan",
["mhr"] = "Eastern Mari",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesian)",
["mi"] = "มาวรี",
["mia"] = "Miami",
["mib"] = "Atatláhuca Mixtec",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaic",
["mie"] = "Ocotepec Mixtec",
["mif"] = "Mofu-Gudur",
["mig"] = "San Miguel el Grande Mixtec",
["mih"] = "Chayuco Mixtec",
["mii"] = "Chigmecatitlán Mixtec",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Peñoles Mixtec",
["mim"] = "Alacatlatzala Mixtec",
["min"] = "มีนังกาเบา",
["mio"] = "Pinotepa Nacional Mixtec",
["mip"] = "Apasco-Apoala Mixtec",
["miq"] = "Miskito",
["mir"] = "Isthmus Mixe",
["mis-hkl"] = "Kelantan Peranakan Hokkien",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isaurian",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi of Decorse",
["mis-mmn"] = "Mimi of Nachtigal",
["mis-phi"] = "Philistine",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulian",
["mis-tdt"] = "Turdetanian",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Southern Puebla Mixtec",
["miu"] = "Cacaloxtepec Mixtec",
["miw"] = "Akoye",
["mix"] = "Mixtepec Mixtec",
["miy"] = "Ayutla Mixtec",
["miz"] = "Coatzospan Mixtec",
["mjb"] = "Makalero",
["mjc"] = "San Juan Colorado Mixtec",
["mjd"] = "Northwest Maidu",
["mje"] = "Muskum",
["mjg-mgl"] = "Mongghul",
["mjg-mgr"] = "Mangghuer",
["mji"] = "Kim Mun",
["mjj"] = "Mawak",
["mjk"] = "Matukar",
["mjl"] = "Mandeali",
["mjm"] = "Medebur",
["mjn"] = "Mebu",
["mjo"] = "Malankuravan",
["mjp"] = "Malapandaram",
["mjq"] = "Malaryan",
["mjr"] = "Malavedan",
["mjs"] = "Miship",
["mjt"] = "Sawriya Paharia",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Majhi",
["mk"] = "มาซิโดเนีย",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Proto-Aslian",
["mkh-ban-pro"] = "Proto-Bahnaric",
["mkh-kat-pro"] = "Proto-Katuic",
["mkh-khm-pro"] = "ขมุอิกดั้งเดิม",
["mkh-kmr-pro"] = "เขมรดั้งเดิม",
["mkh-mmn"] = "มอญกลาง",
["mkh-mnc-pro"] = "มอญดั้งเดิม",
["mkh-mvi"] = "เวียดนามกลาง",
["mkh-pal-pro"] = "ปะหล่องดั้งเดิม",
["mkh-pea-pro"] = "Proto-Pearic",
["mkh-pkn-pro"] = "Proto-Pakanic",
["mkh-pro"] = "มอญ-เขมรดั้งเดิม",
["mkh-vie-pro"] = "เวียตติกดั้งเดิม",
["mki"] = "Dhatki",
["mkj"] = "โมกิล",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Kupang Malay",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Bay Miwok",
["mkr"] = "Malas",
["mks"] = "Silacayoapan Mixtec",
["mkt"] = "Vamale",
["mku"] = "Konyanka Maninka",
["mkv"] = "Mav̋ea",
["mkx"] = "Cinamiguin Manobo",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "มลยาฬัม",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "มัล",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Malua Bay",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Western Maninkakan",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Michoacán Mazahua",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "North Ambrym",
["mmh"] = "Mehináku",
["mmi"] = "Musar",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Western Xiangxi Miao",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "มองโกเลีย",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "แมนจู",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Eastern Mnong",
["mnh"] = "Mono (Congo)",
["mni"] = "มณีปุระ",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "มนองใต้",
["mnp"] = "หมิ่นเหนือ",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Central Mansi",
["mns-nor"] = "Northern Mansi",
["mns-pro"] = "Proto-Mansi",
["mns-sou"] = "Southern Mansi",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennellese",
["mnw"] = "มอญ",
["mnw-tha"] = "มอญแบบไทย",
["mnx"] = "Manikion",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilian",
["moe"] = "มงตาแญ",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Monimbo",
["moo"] = "Monom",
["mop"] = "Mopan Maya",
["moq"] = "Mor (Papuan)",
["mor"] = "Moro",
["mos"] = "Moore",
["mot"] = "Barí",
["mou"] = "Mogum",
["mov"] = "Mojave",
["mow"] = "Moi (Congo)",
["mox"] = "Molima",
["moy"] = "Shekkacho",
["moz"] = "Mukulu",
["mpa"] = "Mpoto",
["mpb"] = "Mullukmulluk",
["mpc"] = "Mangarayi",
["mpd"] = "Machinere",
["mpe"] = "Majang",
["mpg"] = "Marba",
["mph"] = "Maung",
["mpi"] = "Mpade",
["mpj"] = "Martu Wangka",
["mpk"] = "Mbara (Chad)",
["mpl"] = "Middle Watut",
["mpm"] = "Yosondúa Mixtec",
["mpn"] = "Mindiri",
["mpo"] = "Miu",
["mpp"] = "Migabac",
["mpq"] = "Matís",
["mpr"] = "Vangunu",
["mps"] = "Dadibi",
["mpt"] = "Mian",
["mpu"] = "Makuráp",
["mpv"] = "Mungkip",
["mpw"] = "Mapidian",
["mpx"] = "Misima-Paneati",
["mpy"] = "Mapia",
["mpz"] = "Mpi",
["mqa"] = "Maba",
["mqb"] = "Mbuko",
["mqc"] = "Mangole",
["mqe"] = "Matepi",
["mqf"] = "Momuna",
["mqg"] = "Kota Bangun Kutai Malay",
["mqh"] = "Tlazoyaltepec Mixtec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Rajah Kabunsuwan Manobo",
["mql"] = "Mbelime",
["mqm"] = "South Marquesan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "West Makian",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "มราฐี",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Western Magar",
["mre"] = "Martha's Vineyard Sign Language",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Mara Chin",
["mrj"] = "Western Mari",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlockese",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "North Marquesan",
["mrr"] = "Hill Maria",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangarevan",
["mrw"] = "มาราเนา",
["mrx"] = "Dineor",
["mry"] = "Karaga Mandaya",
["mrz"] = "Marind",
["ms"] = "มาเลเซีย",
["msb"] = "มัสบาเต",
["msc"] = "Sankaran Maninka",
["msd"] = "Yucatec Maya Sign Language",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Sabah Malay",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Agusan Manobo",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Mongolian Sign Language",
["mss"] = "West Masela",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "มอลตา",
["mta"] = "Cotabato Manobo",
["mtb"] = "Anyin Morofo",
["mtc"] = "Munit",
["mtd"] = "Mualang",
["mte"] = "Alu",
["mtf"] = "Murik (New Guinea)",
["mtg"] = "Una",
["mth"] = "Munggui",
["mti"] = "Maiwa (New Guinea)",
["mtj"] = "Moskona",
["mtk"] = "Mbe'",
["mtl"] = "Montol",
["mtm"] = "Mator",
["mtn"] = "Matagalpa",
["mto"] = "Totontepec Mixe",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "เหมื่อง",
["mtr"] = "เมวาร์",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Tututepec Mixtec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Tidaá Mixtec",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Mednyj Aleut",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "มูซี",
["muj"] = "Mabire",
["mul"] = "ร่วม",
["mum"] = "Maiwala",
["mun-pro"] = "มุนดาดั้งเดิม",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Eastern Xiangxi Miao",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Western Muria",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Yucuañe Mixtec",
["mvh"] = "Mire",
["mvi"] = "มิยาโกะ",
["mvk"] = "Mekmek",
["mvl"] = "Mbara (Australia)",
["mvm"] = "Muya",
["mvn"] = "Minaveha",
["mvo"] = "Marovo",
["mvp"] = "Duri",
["mvq"] = "Moere",
["mvr"] = "Marau",
["mvs"] = "Massep",
["mvt"] = "Mpotovoro",
["mvu"] = "Marfa",
["mvv"] = "Tagal Murut",
["mvw"] = "Machinga",
["mvx"] = "Meoswar",
["mvy"] = "Indus Kohistani",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Kita Maninkakan",
["mwl"] = "มีรังดา",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "มาร์วาร์",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "ม้งขาว",
["mwz"] = "Moingi",
["mxa"] = "Northwest Oaxaca Mixtec",
["mxb"] = "Tezoatlán Mixtec",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarabic",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Tlahuitoltepec Mixe",
["mxq"] = "Juquila Mixe",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Huitepec Mixtec",
["mxt"] = "Jamiltepec Mixtec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Metlatónoc Mixtec",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Southeastern Nochixtlán Mixtec",
["mxz"] = "Central Masela",
["my"] = "พม่า",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara Senoufo",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "มายันดั้งเดิม",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "เอร์เซีย",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Classical Mandaic",
["mza"] = "Santa María Zacatepec Mixtec",
["mzb"] = "Northern Saharan Berber",
["mzc"] = "Madagascar Sign Language",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Monastic Sign Language",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Ixcatlán Mazatec",
["mzj"] = "Manya",
["mzk"] = "Nigeria Mambila",
["mzl"] = "Mazatlán Mixe",
["mzm"] = "Mumuye",
["mzn"] = "มอแซนแดรอน",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "ครีโอลมาเก๊า",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Mozambican Sign Language",
["mzz"] = "Maiadomu",
["na"] = "นาอูรู",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Naga Pidgin",
["nah"] = "นาวัตล์",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Proto-Chumash",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Proto-Chinookan",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Proto-Kalapuyan",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Proto-Maidun",
["nai-miz-pro"] = "Proto-Mixe-Zoque",
["nai-mus-pro"] = "Proto-Muskogean",
["nai-nao"] = "Naolan",
["nai-nrs"] = "New River Shasta",
["nai-okw"] = "Okwanuchu",
["nai-per"] = "Pericú",
["nai-pic"] = "Picuris",
["nai-plp-pro"] = "Proto-Plateau Penutian",
["nai-pom-pro"] = "Proto-Pomo",
["nai-qng"] = "Quinigua",
["nai-sca-pro"] = "Proto-Siouan-Catawban",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Salvadoran Lenca",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Proto-Totozoquean",
["nai-tsi-pro"] = "Proto-Tsimshianic",
["nai-utn-pro"] = "Proto-Utian",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Western Jicaque",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "หมิ่นใต้",
["nan-dat"] = "Datian Min",
["nan-hbl"] = "ฮกเกี้ยน",
["nan-hlh"] = "Hailufeng Min",
["nan-lnx"] = "Longyan Min",
["nan-tws"] = "แต้จิ๋ว",
["nan-zhe"] = "Zhenan Min",
["nan-zsh"] = "Sanxiang Min",
["nao"] = "Naaba",
["nap"] = "นาโปลี",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Coatepec Nahuatl",
["nb"] = "นอร์เวย์แบบบุ๊กมอล",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Konyak Naga",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Mao Naga",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Namibian Sign Language",
["nbt"] = "Na",
["nbu"] = "Rongmei Naga",
["nbv"] = "Ngamambo",
["nbw"] = "Southern Ngbandi",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "นิโคบาร์กลาง",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Central Huasteca Nahuatl",
["nci"] = "นาวัตล์คลาสสิก",
["ncj"] = "Northern Puebla Nahuatl",
["nck"] = "Nakara",
["ncl"] = "Michoacán Nahuatl",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Nicaraguan Sign Language",
["nct"] = "Chothe Naga",
["ncu"] = "Chumburung",
["ncx"] = "Central Puebla Nahuatl",
["ncz"] = "Natchez",
["nd"] = "Northern Ndebele",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvian",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "เยอรมันต่ำ",
["nds-de"] = "เยอรมันต่ำแบบเยอรมนี",
["nds-nl"] = "Dutch Low Saxon",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "เนปาล",
["nea"] = "Eastern Ngad'a",
["neb"] = "Toura",
["nec"] = "Nedebang",
["ned"] = "Nde-Gbite",
["nee"] = "Kumak",
["nef"] = "Nefamese",
["neg"] = "Negidal",
["neh"] = "Nyenkha",
["nej"] = "Neko",
["nek"] = "Neku",
["nem"] = "Nemi",
["nen"] = "Nengone",
["neo"] = "Ná-Meo",
["neq"] = "North Central Mixe",
["ner"] = "Yahadian",
["nes"] = "Bhoti Kinnauri",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "เนวาร์",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Northern Ngbandi",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Central African Republic)",
["nge"] = "Ngemba",
["ngf-pro"] = "Proto-Trans-New Guinea",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Ngatik Men's Creole",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Guerrero Nahuatl",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Tabasco Nahuatl",
["nhd"] = "Chiripá",
["nhe"] = "Eastern Huasteca Nahuatl",
["nhf"] = "Nhuwala",
["nhg"] = "Tetelcingo Nahuatl",
["nhh"] = "Nahari",
["nhi"] = "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl",
["nhk"] = "Cosoleacaque Nahuatl",
["nhm"] = "Morelos Nahuatl",
["nhn"] = "นาวัตล์ตอนกลาง",
["nho"] = "Takuu",
["nhp"] = "Pajapan Nahuatl",
["nhq"] = "Huaxcaleca Nahuatl",
["nhr"] = "Naro",
["nht"] = "Ometepec Nahuatl",
["nhu"] = "Noone",
["nhv"] = "Temascaltepec Nahuatl",
["nhw"] = "Western Huasteca Nahuatl",
["nhx"] = "Mecayapan Nahuatl",
["nhy"] = "Northern Oaxaca Nahuatl",
["nhz"] = "Santa María La Alta Nahuatl",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "เบนูเอ-คองโกดั้งเดิม",
["nic-bod-pro"] = "แบนทอยด์ดั้งเดิม",
["nic-eov-pro"] = "Proto-Eastern Oti-Volta",
["nic-gns-pro"] = "Proto-Gurunsi",
["nic-grf-pro"] = "Proto-Grassfields",
["nic-gur-pro"] = "กูร์ดั้งเดิม",
["nic-jkn-pro"] = "Proto-Jukunoid",
["nic-lcr-pro"] = "Proto-Lower Cross River",
["nic-ogo-pro"] = "Proto-Ogoni",
["nic-ovo-pro"] = "Proto-Oti-Volta",
["nic-plt-pro"] = "Proto-Plateau",
["nic-pro"] = "ไนเจอร์-คองโกดั้งเดิม",
["nic-ubg-pro"] = "Proto-Ubangian",
["nic-ucr-pro"] = "Proto-Upper Cross River",
["nic-vco-pro"] = "วอลตา-คองโกดั้งเดิม",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Southern Nicobarese",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Southeastern Kolami",
["niu"] = "นีวเว",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Lotha Naga",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Liangmai Naga",
["njo"] = "Ao",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Ndyuka-Trio Pidgin",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Khoibu Naga",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Inpui Naga",
["nkg"] = "Nekgini",
["nkh"] = "Khezha Naga",
["nki"] = "Thangal Naga",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "North Asmat",
["nkt"] = "Nyika",
["nku"] = "Bouna Kulango",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "ดัตช์",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "East Nyala",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Ninia Yali",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngul",
["nlq"] = "Lao Naga",
["nlu"] = "Nchumbulu",
["nlv"] = "Orizaba Nahuatl",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Maram Naga",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Mzieme Naga",
["nmf"] = "Tangkhul Naga",
["nmg"] = "Kwasio",
["nmh"] = "Monsang Naga",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Central African Republic)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Moyon Naga",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Northeast Maidu",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "นอร์เวย์แบบนือนอสก์",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "West Ambae",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Maring Naga",
["nnh"] = "Ngiemboon",
["nni"] = "North Nuaulu",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Northern Rengma Naga",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Southern Nuni",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "นอร์เวย์",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "คำเมือง",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["nom"] = "Nocamán",
["non"] = "นอร์สเก่า",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Eastern Nisu",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "โนเวียล",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Southeastern Puebla Nahuatl",
["npn"] = "Mondropolon",
["npo"] = "Pochuri Naga",
["nps"] = "Nipsan",
["npu"] = "Puimei Naga",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Kyan-Karyaw Naga",
["nqy"] = "Akyaung Ari",
["nr"] = "Southern Ndebele",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Southern Rengma Naga",
["nrf"] = "นอร์มัน",
["nrg"] = "Narango",
["nri"] = "Chokri Naga",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "North Picene",
["nrr"] = "Norra",
["nrt"] = "Northern Kalapuya",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Sangtam Naga",
["nsb"] = "Lower Nossob",
["nsc"] = "Nshi",
["nsd"] = "Southern Nisu",
["nse"] = "Nsenga",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Nigerian Sign Language",
["nsk"] = "Naskapi",
["nsl"] = "Norwegian Sign Language",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "ซูทูเหนือ",
["nsp"] = "มือเนปาล",
["nsq"] = "Northern Sierra Miwok",
["nsr"] = "Maritime Sign Language",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Sierra Negra Nahuatl",
["nsv"] = "Southwestern Nisu",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Northern Tidung",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Northern Tepehuan",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "นูเบียนดั้งเดิม",
["nuc"] = "Nukuini",
["nud"] = "Ngala",
["nue"] = "Ngundu",
["nuf"] = "Nusu",
["nug"] = "Nungali",
["nuh"] = "Ndunda",
["nui"] = "Ngumbi",
["nuj"] = "Nyole (Uganda)",
["nuk"] = "Nootka",
["nul"] = "Nusa Laut",
["num"] = "Niuafo'ou",
["nun"] = "Anong",
["nuo"] = "หง่วน",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "นุง",
["nuu"] = "Ngbundu",
["nuv"] = "Northern Nuni",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Tlamacazapa Nahuatl",
["nv"] = "นาวาโฮ",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "เนวาร์คลาสสิก",
["nwe"] = "Ngwe",
["nwi"] = "Southwest Tanna",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "เนวาร์กลาง",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "South Nuaulu",
["nxm"] = "Numidian",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "เจวา",
["nyb"] = "Nyangbo",
["nyc"] = "Nyanga-li",
["nyd"] = "Nyole (Kenya)",
["nye"] = "Nyengo",
["nyf"] = "Giryama",
["nyg"] = "Nyindu",
["nyh"] = "Nyigina",
["nyi"] = "Nyimang",
["nyj"] = "Nyanga (Congo)",
["nyk"] = "Nyaneka",
["nyl"] = "Nyeu",
["nym"] = "Nyamwezi",
["nyn"] = "Nyankole",
["nyo"] = "Nyoro",
["nyp"] = "Nyang'i",
["nys"] = "Nyunga",
["nyt"] = "Nyawaygi",
["nyu"] = "Nyungwe",
["nyv"] = "Nyulnyul",
["nyw"] = "ญ้อ",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Tigon Mbembe",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Zeme Naga",
["nzs"] = "New Zealand Sign Language",
["nzu"] = "Central Teke",
["nzy"] = "Nzakambay",
["nzz"] = "Nanga Dama Dogon",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oak"] = "Noakhali",
["oav"] = "อะวาร์เก่า",
["obi"] = "Obispeño",
["obk"] = "Southern Bontoc",
["obl"] = "Oblo",
["obm"] = "โมอับ",
["obo"] = "Obo Manobo",
["obr"] = "พม่าเก่า",
["obt"] = "เบรอตงเก่า",
["obu"] = "Obulom",
["oc"] = "อุตซิตา",
["oca"] = "Ocaina",
["och"] = "จีนเก่า",
["oco"] = "คอร์นวอลล์เก่า",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "ดัตช์เก่า",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "ฟรีเชียเก่า",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "จอร์เจียเก่า",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "ฮังการีเก่า",
["oia"] = "Oirata",
["oin"] = "Inebu One",
["oj"] = "โอจิบเว",
["ojb"] = "Northwestern Ojibwa",
["ojc"] = "Central Ojibwa",
["ojg"] = "Eastern Ojibwa",
["ojp"] = "ญี่ปุ่นเก่า",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Ontong Java",
["ojw"] = "Western Ojibwa",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Southwestern Edo)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Old Kentish Sign Language",
["okm"] = "เกาหลีกลาง",
["okn"] = "โอกิโนเอราบุ",
["oko"] = "เกาหลีเก่า",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Northwestern Edo)",
["okz"] = "เขมรเก่า",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "ลิววี",
["olr"] = "Olrat",
["olt"] = "ลิทัวเนียเก่า",
["olu"] = "Kuvale",
["om"] = "ออโรโม",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "ไมนอส",
["omo"] = "Utarmbung",
["omp"] = "มณีปุระเก่า",
["omq-cha-pro"] = "Proto-Chatino",
["omq-maz-pro"] = "Proto-Mazatec",
["omq-mix-pro"] = "Proto-Mixtecan",
["omq-mxt-pro"] = "Proto-Mixtec",
["omq-otp-pro"] = "Proto-Oto-Pamean",
["omq-pro"] = "Proto-Oto-Manguean",
["omq-sjq"] = "San Juan Quiahije Chatino",
["omq-tel"] = "Teposcolula Mixtec",
["omq-teo"] = "Teojomulco Chatino",
["omq-tri-pro"] = "Proto-Triqui",
["omq-zap-pro"] = "Proto-Zapotecan",
["omq-zpc-pro"] = "Proto-Zapotec",
["omr"] = "มราฐีเก่า",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Proto-Aroid",
["omv-diz-pro"] = "Proto-Dizoid",
["omv-pro"] = "Proto-Omotic",
["omw"] = "South Tairora",
["omx"] = "มอญเก่า",
["ona"] = "Selk'nam",
["onb"] = "เบ",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "Northern One",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "นิวเบียเก่า",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "โอริยา",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ort"] = "Adivasi Odia",
["oru"] = "Ormuri",
["orv"] = "สลาวิกตะวันออกเก่า",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "ออสซีเซีย",
["osa"] = "Osage",
["osc"] = "Oscan",
["osi"] = "โอซิง",
["osn"] = "Old Sundanese",
["oso"] = "Ososo",
["osp"] = "สเปนเก่า",
["ost"] = "Osatu",
["osu"] = "Southern One",
["osx"] = "แซกซันเก่า",
["ota"] = "ตุรกีแบบออตโตมัน",
["otb"] = "ทิเบตเก่า",
["otd"] = "Ot Danum",
["ote"] = "Mezquital Otomi",
["oti"] = "Oti",
["otk"] = "เตอร์กิกเก่า",
["otl"] = "Tilapa Otomi",
["otm"] = "Eastern Highland Otomi",
["otn"] = "Tenango Otomi",
["oto-otm-pro"] = "Proto-Otomi",
["oto-pro"] = "Proto-Otomian",
["otq"] = "Querétaro Otomi",
["otr"] = "Otoro",
["ots"] = "Estado de México Otomi",
["ott"] = "Temoaya Otomi",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Texcatepec Otomi",
["oty"] = "ทมิฬเก่า",
["otz"] = "Ixtenco Otomi",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "อุยกูร์เก่า",
["oum"] = "Ouma",
["ovd"] = "แอลฟ์ดาเลิน",
["owi"] = "Owiniga",
["owl"] = "เวลส์เก่า",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "ปัญจาบ",
["paa-bin-pro"] = "Proto-Binanderean",
["paa-kom"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-nha-pro"] = "Proto-North Halmahera",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "ปาโกะห์",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "เปอร์เซียกลาง",
["pam"] = "กาปัมปางัน",
["pao"] = "Northern Paiute",
["pap"] = "ปาเปียเมนตู",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pau"] = "ปาเลา",
["pav"] = "Wari'",
["paw"] = "Pawnee",
["pax"] = "Pankararé",
["pay"] = "Pech",
["paz"] = "Pankararú",
["pbb"] = "Páez",
["pbc"] = "Patamona",
["pbe"] = "Mezontla Popoloca",
["pbf"] = "Coyotepec Popoloca",
["pbg"] = "Paraujano",
["pbh"] = "Panare",
["pbi"] = "Podoko",
["pbl"] = "Mak (Nigeria)",
["pbm"] = "Puebla Mazatec",
["pbn"] = "Kpasam",
["pbo"] = "Papel",
["pbp"] = "Badyara",
["pbr"] = "Pangwa",
["pbs"] = "Central Pame",
["pbv"] = "ปนัร",
["pby"] = "Pyu (New Guinea)",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "ปู้อี",
["pcd"] = "ปีการ์",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Nigerian Pidgin",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "เยอรมันแบบเพนซิลเวเนีย",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "เพลาท์ดิทช์",
["pdu"] = "กะยัน",
["pea"] = "Peranakan Indonesian",
["peb"] = "Eastern Pomo",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Northeastern Pomo",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Northern Pomo",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "เปอร์เซียเก่า",
["pep"] = "Kunja",
["peq"] = "Southern Pomo",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Eastern Penan",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Juba Arabic",
["pgd"] = "คานธาระ",
["pgg"] = "ปังควาฬฺ",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Papua New Guinean Sign Language",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Dinapigue Agta",
["phi-kal-pro"] = "คาลาเมียนดั้งเดิม",
["phi-nag"] = "Nagtipunan Agta",
["phi-pro"] = "ฟิลิปปินส์ดั้งเดิม",
["phk"] = "พ่าเก",
["phl"] = "Palula",
["phm"] = "Phimbi",
["phn"] = "ฟินิเชีย",
["pho"] = "ผู้น้อย",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "ผู้ไท",
["phu"] = "พวน",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "บาลี",
["pia"] = "Pima Bajo",
["pib"] = "Yine",
["pic"] = "Pinji",
["pid"] = "Piaroa",
["pie"] = "Piro",
["pif"] = "Pingelapese",
["pig"] = "Pisabo",
["pih"] = "Pitcairn-Norfolk",
["pii"] = "Pini",
["pij"] = "Pijao",
["pil"] = "Yom",
["pim"] = "Powhatan",
["pin"] = "Piame",
["pio"] = "Piapoco",
["pip"] = "Pero",
["pir"] = "Piratapuyo",
["pis"] = "Pijin",
["pit"] = "Pitta-Pitta",
["piu"] = "Pintupi-Luritja",
["piv"] = "Pileni",
["piw"] = "Pimbwe",
["pix"] = "Piu",
["piy"] = "Piya-Kwonci",
["piz"] = "Pije",
["pjt"] = "Pitjantjatjara",
["pkb"] = "Kipfokomo",
["pkc"] = "แพ็กเจ",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "ปูกาปูกา",
["pkr"] = "Attapady Kurumba",
["pks"] = "Pakistan Sign Language",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "โปแลนด์",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "ปาลาวาโนตอนกลาง",
["ple"] = "Palu'e",
["plg"] = "Pilagá",
["plh"] = "Paulohi",
["plj"] = "Polci",
["plk"] = "Kohistani Shina",
["pll"] = "Shwe Palaung",
["pln"] = "Palenquero",
["plo"] = "Oluta Popoluca",
["plq"] = "Palaic",
["plr"] = "Palaka Senoufo",
["pls"] = "San Marcos Tlalcoyalco Popoloca",
["plu"] = "Palikur",
["plv"] = "ปาลาวาโนตะวันตกเฉียงใต้",
["plw"] = "ปาลาวาโนแบบบรูกส์พอยต์",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paamese",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamèi",
["pmf"] = "Pamona",
["pmi"] = "Northern Pumi",
["pmj"] = "Southern Pumi",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Northern Pame",
["pmr"] = "Paynamar",
["pms"] = "ปีเยมอนเต",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Western Penan",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaka",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (West Africa)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Pontic Greek",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Central Africa)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Southeastern Pomo",
["pon"] = "Pohnpeian",
["poo"] = "Central Pomo",
["pop"] = "Pwapwâ",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "ครีโอลกินี-บิสเซา",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabian",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Proto-Bungku-Tolaki",
["poz-cet-pro"] = "มาลาโย-พอลินีเชียนตอนกลาง-ตะวันออกดั้งเดิม",
["poz-hce-pro"] = "Proto-Halmahera-Cenderawasih",
["poz-lgx-pro"] = "ลัมปุงกิกดั้งเดิม",
["poz-mcm-pro"] = "มาลาโย-จามิกดั้งเดิม",
["poz-mic-pro"] = "ไมโครนีเซียนดั้งเดิม",
["poz-mly-pro"] = "มาเลย์อิกดั้งเดิม",
["poz-msa-pro"] = "มาลาโย-ซุมบาวันดั้งเดิม",
["poz-oce-pro"] = "โอเชียนิกดั้งเดิม",
["poz-pep-pro"] = "พอลินีเชียนตะวันออกดั้งเดิม",
["poz-pnp-pro"] = "นิวเคลียร์พอลินีเชียนดั้งเดิม",
["poz-pol-pro"] = "พอลินีเชียนดั้งเดิม",
["poz-pro"] = "มาลาโย-พอลินีเชียนดั้งเดิม",
["poz-sml"] = "Sarawak Malay",
["poz-ssw-pro"] = "ซูลาเวซีใต้ดั้งเดิม",
["poz-swa-pro"] = "ซาราวักเหนือดั้งเดิม",
["poz-ter"] = "มลายูแบบตรังกานู",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "ปีปิล",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "มาลาโย-พอลินีเชียนตะวันออกดั้งเดิม",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "ปรากฤต",
["pra-niy"] = "Niya Prakrit",
["prc"] = "Parachi",
["pre"] = "Principense",
["prf"] = "Paranan",
["prg"] = "Old Prussian",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Peruvian Sign Language",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "อุตซิตาเก่า",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Providencia Sign Language",
["ps"] = "ปาทาน",
["psa"] = "Asue Awyu",
["psc"] = "Persian Sign Language",
["psd"] = "Plains Indian Sign Language",
["pse"] = "มลายูตอนกลาง",
["psg"] = "Penang Sign Language",
["psh"] = "Southwest Pashayi",
["psi"] = "Southeast Pashayi",
["psl"] = "Puerto Rican Sign Language",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Polish Sign Language",
["psp"] = "Philippine Sign Language",
["psq"] = "Pasi",
["psr"] = "Portuguese Sign Language",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "โปรตุเกส",
["pta"] = "Pai Tavytera",
["pth"] = "Pataxó Hã-Ha-Hãe",
["pti"] = "Pintiini",
["ptn"] = "Patani",
["pto"] = "Zo'é",
["ptp"] = "Patep",
["ptq"] = "Pattapu",
["ptr"] = "Piamatsina",
["ptt"] = "Enrekang",
["ptu"] = "Bambam",
["ptv"] = "Port Vato",
["ptw"] = "Pentlatch",
["pty"] = "Pathiya",
["pua"] = "Purepecha",
["pub"] = "Purum",
["puc"] = "Punan Merap",
["pud"] = "Punan Aput",
["pue"] = "Puelche",
["puf"] = "Punan Merah",
["pug"] = "Phuie",
["pui"] = "Puinave",
["puj"] = "Punan Tubu",
["pum"] = "Puma",
["puo"] = "Puoc",
["pup"] = "Pulabu",
["puq"] = "Puquina",
["pur"] = "Puruborá",
["put"] = "Putoh",
["puu"] = "Punu",
["puw"] = "Puluwat",
["pux"] = "Puare",
["puy"] = "Purisimeño",
["pwa"] = "Pawaia",
["pwb"] = "Panawa",
["pwg"] = "Gapapaiwa",
["pwi"] = "Patwin",
["pwm"] = "Molbog",
["pwn"] = "ไปวัน",
["pwo"] = "กะเหรี่ยงโปตะวันตก",
["pwr"] = "Powari",
["pww"] = "กะเหรี่ยงโปเหนือ",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Paraguayan Sign Language",
["pyu"] = "Puyuma",
["pyx"] = "ปยู",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "เกรตอันดามันนีสดั้งเดิม",
["qfa-bet-pro"] = "เบ-ไทดั้งเดิม",
["qfa-cka-pro"] = "Proto-Chukotko-Kamchatkan",
["qfa-hur-pro"] = "Proto-Hurro-Urartian",
["qfa-kad-pro"] = "Proto-Kadu",
["qfa-kms-pro"] = "Proto-Kam-Sui",
["qfa-kor-pro"] = "เกาหลีดั้งเดิม",
["qfa-kra-pro"] = "ขร้าดั้งเดิม",
["qfa-lic-pro"] = "ไหลดั้งเดิม",
["qfa-onb-pro"] = "เบดั้งเดิม",
["qfa-ong-pro"] = "Proto-Ongan",
["qfa-tak-pro"] = "ขร้า-ไทดั้งเดิม",
["qfa-yen-pro"] = "Proto-Yeniseian",
["qfa-yuk-pro"] = "Proto-Yukaghir",
["qu"] = "เกชัว",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "เกชัวคลาสสิก",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "เกชวนดั้งเดิม",
["qwm"] = "คูมาน",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "เควนยา",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Western Meohang",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "ราปานูอี",
["raq"] = "Saam",
["rar"] = "ราโรโตงา",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "เรอหวั่ง",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Northern Bontoc",
["rbl"] = "Miraya Bikol",
["rcf"] = "Réunion Creole French",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Rejang Kayan",
["reg"] = "Kara (Tanzania)",
["rei"] = "Reli",
["rej"] = "Rejang",
["rel"] = "Rendille",
["rem"] = "Remo",
["ren"] = "Rengao",
["rer"] = "Rer Bare",
["res"] = "Reshe",
["ret"] = "Retta",
["rey"] = "Reyesano",
["rga"] = "Roria",
["rge"] = "Romano-Greek",
["rgk"] = "Rangkas",
["rgn"] = "โรมัญญา",
["rgr"] = "Resígaro",
["rgs"] = "Southern Roglai",
["rgu"] = "Ringgou",
["rhg"] = "โรฮีนจา",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "ริฟ",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "ราชพังสี",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "ยะไข่",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "โรมานช์",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Carpathian Romani",
["rmd"] = "Traveller Danish",
["rme"] = "Angloromani",
["rmf"] = "Kalo Finnish Romani",
["rmg"] = "Traveller Norwegian",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Baltic Romani",
["rmm"] = "Roma",
["rmn"] = "Balkan Romani",
["rmo"] = "Sinte Romani",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Romanian Sign Language",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Welsh Romani",
["rmx"] = "Romam",
["rmy"] = "Vlax Romani",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "โรมาเนีย",
["roa-ang"] = "Angevin",
["roa-bbn"] = "บูร์บอแน-แบรีชง",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Italic of Basilicata",
["roa-gis"] = "Gallo-Italic of Sicily",
["roa-leo"] = "เลออน",
["roa-lor"] = "Lorrain",
["roa-oca"] = "กาตาลาเก่า",
["roa-ole"] = "เลออนเก่า",
["roa-ona"] = "Old Navarro-Aragonese",
["roa-opt"] = "กาลิเซีย-โปรตุเกสเก่า",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Cacgia Roglai",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Northern Roglai",
["rol"] = "Romblomanon",
["rom"] = "โรมานี",
["roo"] = "Rotokas",
["rop"] = "Australian Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbian",
["rsk"] = "รูซินแบบพันโนเนีย",
["rsl"] = "มือรัสเซีย",
["rsm"] = "Miriwoong Sign Language",
["rsn"] = "Rwandan Sign Language",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuman",
["rtw"] = "Rathawi",
["ru"] = "รัสเซีย",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "รูซินแบบคาร์พาเทีย",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romanian",
["rup"] = "Aromanian",
["ruq"] = "Megleno-Romanian",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "รวันดา-รุนดี",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "อามามิโอชิมะเหนือ",
["rys"] = "ยาเอยามะ",
["ryu"] = "โอกินาวะ",
["rzh"] = "Razihi",
["sa"] = "สันสกฤต",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "ซาคา",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Proto-Boran",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Proto-Cariban",
["sai-cat"] = "Catacao",
["sai-cer-pro"] = "Proto-Cerrado",
["sai-chi"] = "Chirino",
["sai-chn"] = "Chaná",
["sai-chp"] = "Chapacura",
["sai-chr"] = "Charrua",
["sai-chu"] = "Churuya",
["sai-cje-pro"] = "Proto-Central Jê",
["sai-cmg"] = "Comechingon",
["sai-cno"] = "Chono",
["sai-cnr"] = "Cañari",
["sai-coe"] = "Coeruna",
["sai-col"] = "Colán",
["sai-cop"] = "Copallén",
["sai-crd"] = "Coroado Puri",
["sai-ctq"] = "Catuquinaru",
["sai-cul"] = "Culli",
["sai-cva"] = "Cueva",
["sai-esm"] = "Esmeralda",
["sai-ewa"] = "Ewarhuyana",
["sai-gam"] = "Gamela",
["sai-gay"] = "Gayón",
["sai-gmo"] = "Guamo",
["sai-gua"] = "Guachí",
["sai-gue"] = "Güenoa",
["sai-hau"] = "Haush",
["sai-jee-pro"] = "Proto-Jê",
["sai-jko"] = "Jeikó",
["sai-jrj"] = "Jirajara",
["sai-kat"] = "Katembri",
["sai-mal"] = "Malalí",
["sai-mar"] = "Maratino",
["sai-mat"] = "Matanawi",
["sai-mcn"] = "Mocana",
["sai-men"] = "Menien",
["sai-mil"] = "Millcayac",
["sai-mlb"] = "Malibu",
["sai-msk"] = "Masakará",
["sai-muc"] = "Mucuchí",
["sai-mue"] = "Muellama",
["sai-muz"] = "Muzo",
["sai-mys"] = "Maynas",
["sai-nat"] = "Natú",
["sai-nje-pro"] = "Proto-Northern Jê",
["sai-opo"] = "Opón",
["sai-oto"] = "Otomaco",
["sai-pal"] = "Palta",
["sai-pam"] = "Pamigua",
["sai-par"] = "Paratió",
["sai-peb"] = "Peba",
["sai-pnz"] = "Panzaleo",
["sai-prh"] = "Puruhá",
["sai-ptg"] = "Patagón",
["sai-pur"] = "Purukotó",
["sai-pyg"] = "Payaguá",
["sai-pyk"] = "Pykobjê",
["sai-qmb"] = "Quimbaya",
["sai-qtm"] = "Quitemo",
["sai-rab"] = "Rabona",
["sai-ram"] = "Ramanos",
["sai-sac"] = "Sácata",
["sai-san"] = "Sanaviron",
["sai-sap"] = "Sapará",
["sai-sec"] = "Sechura",
["sai-sin"] = "Sinúfana",
["sai-sje-pro"] = "Proto-Southern Jê",
["sai-tab"] = "Tabancale",
["sai-tal"] = "Tallán",
["sai-tap"] = "Tapayuna",
["sai-tar-pro"] = "Proto-Taranoan",
["sai-teu"] = "Teushen",
["sai-tim"] = "Timote",
["sai-tpr"] = "Taparita",
["sai-trr"] = "Tarairiú",
["sai-wai"] = "Waitaká",
["sai-way"] = "Wayumara",
["sai-wit-pro"] = "Proto-Witotoan",
["sai-wnm"] = "Wanham",
["sai-xoc"] = "Xocó",
["sai-yao"] = "Yao (South America)",
["sai-yar"] = "Yarumá",
["sai-yri"] = "Yuri",
["sai-yup"] = "Yupua",
["sai-yur"] = "Yurumanguí",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal-pro"] = "Proto-Salish",
["sam"] = "Samaritan Aramaic",
["sao"] = "Sause",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sat"] = "สันถาลี",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Southern Samo",
["sbe"] = "Saliba (New Guinea)",
["sbf"] = "Shabo",
["sbg"] = "Seget",
["sbh"] = "Sori-Harengan",
["sbi"] = "Seti",
["sbj"] = "Surbakhal",
["sbk"] = "Safwa",
["sbl"] = "Botolan Sambal",
["sbm"] = "Sagala",
["sbn"] = "Sindhi Bhil",
["sbo"] = "Sabüm",
["sbp"] = "Sangu (Tanzania)",
["sbq"] = "Sileibi",
["sbr"] = "Sembakung Murut",
["sbs"] = "Subiya",
["sbt"] = "Kimki",
["sbu"] = "Stod Bhoti",
["sbv"] = "Sabine",
["sbw"] = "Simba",
["sbx"] = "Seberuang",
["sby"] = "Soli",
["sbz"] = "Sara Kaba",
["sc"] = "ซาร์ดิเนีย",
["scb"] = "Chut",
["sce"] = "ตงเซียง",
["scf"] = "San Miguel Creole French",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Sri Lankan Creole Malay",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "ซิซิลี",
["sco"] = "สกอต",
["scp"] = "Yolmo",
["scq"] = "สะโอจ",
["scs"] = "North Slavey",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["scz"] = "Shetland",
["sd"] = "สินธ์",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "ซัสซารี",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Southern Kurdish",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallurese",
["sdo"] = "Bukar-Sadung Bidayuh",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "เบอร์เบอร์แบบตูนีเซีย",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Proto-Daju",
["sdv-eje-pro"] = "Proto-Eastern Jebel",
["sdv-nil-pro"] = "Proto-Nilotic",
["sdv-nyi-pro"] = "Proto-Nyima",
["sdv-tmn-pro"] = "Proto-Taman",
["sdx"] = "Sibu Melanau",
["se"] = "ซามีเหนือ",
["sea"] = "เซอไม",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Northern Selkup",
["sel-pro"] = "Proto-Selkup",
["sel-sou"] = "Southern Selkup",
["sem-amm"] = "อัมโมน",
["sem-amo"] = "Amorite",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadanitic",
["sem-dum"] = "Dumaitic",
["sem-has"] = "Hasaitic",
["sem-his"] = "Hismaic",
["sem-mhr"] = "Muher",
["sem-pro"] = "เซมิติกดั้งเดิม",
["sem-saf"] = "Safaitic",
["sem-sam"] = "Samalian",
["sem-srb"] = "Old South Arabian",
["sem-tay"] = "Taymanitic",
["sem-tha"] = "Thamudic",
["sem-wes-pro"] = "เซมิติกตะวันตกดั้งเดิม",
["sen"] = "Nanerigé Sénoufo",
["seo"] = "Suarmin",
["sep"] = "Sìcìté Sénoufo",
["seq"] = "Senara Sénoufo",
["ser"] = "Serrano",
["ses"] = "Koyraboro Senni",
["set"] = "Sentani",
["seu"] = "Serui-Laut",
["sev"] = "Nyarafolo Senoufo",
["sew"] = "Sewa Bay",
["sey"] = "Secoya",
["sez"] = "Senthang Chin",
["sfb"] = "French Belgian Sign Language",
["sfe"] = "Eastern Subanun",
["sfm"] = "Small Flowery Miao",
["sfs"] = "South African Sign Language",
["sfw"] = "Sehwi",
["sg"] = "ซังโก",
["sga"] = "ไอริชเก่า",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "ซูรีเกาโนน",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitian",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "เซอร์โบ-โครเอเชีย",
["sha"] = "Shall-Zwall",
["shb"] = "Ninam",
["shc"] = "Sonde",
["shd"] = "Kundal Shahi",
["she"] = "Sheko",
["shg"] = "Shua",
["shh"] = "Shoshone",
["shi"] = "Tashelhit",
["shj"] = "Shatt",
["shk"] = "Shilluk",
["shl"] = "Shendu",
["shm"] = "Shahrudi",
["shn"] = "ไทใหญ่",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Chadian Arabic",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "สิงหล",
["sia"] = "Akkala Sami",
["sib"] = "Sebop",
["sid"] = "ซีดามา",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Sîshëë",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Proto-Siouan",
["sip"] = "สิกขิม",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Proto-Central Naga",
["sit-bai-pro"] = "Proto-Bai",
["sit-ban"] = "Bangru",
["sit-bdi-pro"] = "Proto-Bodish",
["sit-bok"] = "Bokar",
["sit-cai"] = "Caijia",
["sit-cha"] = "Chairel",
["sit-ers-pro"] = "Proto-Ersuic",
["sit-hrs-pro"] = "Proto-Hrusish",
["sit-jap"] = "Japhug",
["sit-kha-pro"] = "Proto-Kham",
["sit-khb-pro"] = "Proto-Kho-Bwa",
["sit-khp-pro"] = "Proto-Puroik",
["sit-khw-pro"] = "Proto-Western Kho-Bwa",
["sit-kon-pro"] = "Proto-Northern Naga",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "ลูอิชดั้งเดิม",
["sit-nas-pro"] = "Proto-Naish",
["sit-prn"] = "Puiron",
["sit-pro"] = "ซีโน-ทิเบตันดั้งเดิม",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Proto-Tamangic",
["sit-tan-pro"] = "Proto-Tani",
["sit-tgm"] = "ตางัม",
["sit-tng-pro"] = "Proto-Tangkhulic",
["sit-tos"] = "Tosu",
["sit-tsh"] = "Tshobdun",
["sit-zbu"] = "Zbu",
["siu"] = "Sinagen",
["siv"] = "Sumariup",
["siw"] = "Siwai",
["six"] = "Sumau",
["siy"] = "Sivandi",
["siz"] = "Siwi",
["sja"] = "Epena",
["sjb"] = "Sajau Basap",
["sjc"] = "Shaojiang Min",
["sjd"] = "ซามีแบบกิลดิน",
["sje"] = "ซามีแบบปีเต",
["sjg"] = "Assangori",
["sjk"] = "Kemi Sami",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "ซินดาริน",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja de Srair",
["sjt"] = "Ter Sami",
["sju"] = "Ume Sami",
["sjw"] = "Shawnee",
["sk"] = "สโลวัก",
["ska"] = "Skagit",
["skb"] = "แสก",
["skc"] = "Ma Manda",
["skd"] = "Southern Sierra Miwok",
["ske"] = "Ske",
["skf"] = "Mekéns",
["skh"] = "Sikule",
["ski"] = "Sika",
["skj"] = "Seke",
["skk"] = "Sok",
["skm"] = "Sakam",
["skn"] = "Kolibugan Subanon",
["sko"] = "Seko Tengah",
["skp"] = "Sekapan",
["skq"] = "Sininkere",
["skr"] = "Saraiki",
["sks"] = "ไมยา",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Skepi Creole Dutch",
["skx"] = "Seko Padang",
["sky"] = "ซีกายานา",
["skz"] = "Sekar",
["sl"] = "สโลวีเนีย",
["sla-pro"] = "สลาวิกดั้งเดิม",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sisaala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Southern Puget Sound Salish",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "ซามาแบบปางูตารัน",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slr"] = "ซาลาร์",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "ซามัว",
["sma"] = "ซามีใต้",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "ซามิกดั้งเดิม",
["smj"] = "ซามีแบบลูเล",
["smk"] = "โบลีเนา",
["sml"] = "ซามาตอนกลาง",
["smm"] = "Musasa",
["smn"] = "ซามีแบบอีนารี",
["smp"] = "Samaritan Hebrew",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Skolt Sami",
["smt"] = "Simte",
["smu"] = "สมราย",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "โชนา",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bau Bidayuh",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Southern Ma'di",
["snn"] = "Siona",
["sno"] = "Snohomish",
["snp"] = "Siane",
["snq"] = "Sangu (Gabon)",
["snr"] = "Sihan",
["sns"] = "Nahavaq",
["snu"] = "Senggi",
["snv"] = "Sa'ban",
["snw"] = "Selee",
["snx"] = "Sam",
["sny"] = "Saniyo-Hiyewe",
["snz"] = "Kou",
["so"] = "โซมาลี",
["soa"] = "โซ่ง",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdian",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Proto-Songhay",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "ปักษ์ใต้",
["sov"] = "Sonsorolese",
["sow"] = "Sowanda",
["sox"] = "Swo",
["soy"] = "Miyobe",
["soz"] = "Temi",
["spb"] = "Sepa (Indonesia)",
["spc"] = "Sapé",
["spd"] = "Saep",
["spe"] = "Sepa (New Guinea)",
["spg"] = "Sian",
["spi"] = "Saponi",
["spk"] = "Sengo",
["spl"] = "Selepet",
["spm"] = "Sepen",
["spn"] = "Sanapaná",
["spo"] = "Spokane",
["spp"] = "Supyire",
["spr"] = "Saparua",
["sps"] = "Saposa",
["spt"] = "Spiti Bhoti",
["spu"] = "Sapuan",
["spv"] = "Sambalpuri",
["spx"] = "South Picene",
["spy"] = "Sabaot",
["sq"] = "แอลเบเนีย",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "แอลเบเนียนดั้งเดิม",
["sqk"] = "Albanian Sign Language",
["sqm"] = "Suma",
["sqn"] = "Susquehannock",
["sqo"] = "Sorkhei",
["sqq"] = "Sou",
["sqr"] = "Siculo-Arabic",
["sqs"] = "Sri Lankan Sign Language",
["sqt"] = "Soqotri",
["squ"] = "Squamish",
["sra"] = "Saruga",
["srb"] = "Sora",
["sre"] = "Sara",
["srf"] = "Nafi",
["srg"] = "Sulod",
["srh"] = "Sarikoli",
["sri"] = "Siriano",
["srk"] = "Serudung Murut",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Sranan Tongo",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Proto-Kuliak",
["ssa-kom-pro"] = "Proto-Koman",
["ssa-pro"] = "Proto-Nilo-Saharan",
["ssb"] = "Southern Sama",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Shihhi Arabic",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Western Sisaala",
["ssm"] = "Semnam",
["sso"] = "Sissano",
["ssp"] = "Spanish Sign Language",
["ssq"] = "So'a",
["ssr"] = "Swiss-French Sign Language",
["sss"] = "Sô",
["sst"] = "Sinasina",
["ssu"] = "Susuami",
["ssv"] = "Shark Bay",
["ssx"] = "Samberigi",
["ssy"] = "ซาโฮ",
["ssz"] = "Sengseng",
["st"] = "ซูทู",
["stb"] = "Northern Subanen",
["std"] = "Sentinelese",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Southeastern Tepehuan",
["stq"] = "ฟรีเชียแบบซาเทอร์ลันท์",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawalese",
["sty"] = "Siberian Tatar",
["su"] = "ซุนดา",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Western Subanon",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Puroik",
["suw"] = "Sumbwa",
["sux"] = "ซูเมอร์",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "สวีเดน",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Vincentian Creole English",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "สวาฮีลี",
["swb"] = "Maore Comorian",
["swf"] = "Sere",
["swg"] = "Swabian",
["swi"] = "สุ่ย",
["swj"] = "Sira",
["swl"] = "Swedish Sign Language",
["swm"] = "Samosa",
["swn"] = "Sokna",
["swo"] = "Shanenawa",
["swp"] = "Suau",
["swq"] = "Sharwa",
["swr"] = "Saweru",
["sws"] = "Seluwasan",
["swt"] = "Sawila",
["swu"] = "Suwawa",
["sww"] = "Sowa",
["swx"] = "Suruahá",
["swy"] = "Sarua",
["sxb"] = "Suba",
["sxc"] = "Sicanian",
["sxe"] = "Sighu",
["sxg"] = "Shixing",
["sxk"] = "Southern Kalapuya",
["sxl"] = "Selonian",
["sxm"] = "สำเร",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Central Subanen",
["syc"] = "ซีรีแอกคลาสสิก",
["syd-pro"] = "Proto-Samoyedic",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "สิเลฏ",
["sym"] = "Maya Samo",
["syn"] = "Senaya",
["syo"] = "Suoy",
["sys"] = "Sinyar",
["syw"] = "Kagate",
["syx"] = "Osamayi",
["syy"] = "Al-Sayyid Bedouin Sign Language",
["sza"] = "Semelai",
["szb"] = "Ngalum",
["szc"] = "Semaq Beri",
["szd"] = "Seru",
["sze"] = "Seze",
["szg"] = "Sengele",
["szl"] = "ไซลีเซีย",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "ซากีซายา",
["ta"] = "ทมิฬ",
["taa"] = "Lower Tanana",
["tab"] = "ทาบาซารัน",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "ไทดั้งเดิม",
["tai-swe-pro"] = "ไทตะวันตกเฉียงใต้ดั้งเดิม",
["taj"] = "Eastern Tamang",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "ยามี",
["tap"] = "Taabwa",
["tar"] = "Central Tarahumara",
["tas"] = "Tây Bồi",
["tau"] = "Upper Tanana",
["tav"] = "Tatuyo",
["taw"] = "Tai",
["tax"] = "Tamki",
["tay"] = "Atayal",
["taz"] = "Tocho",
["tba"] = "Aikanã",
["tbb"] = "Tapeba",
["tbc"] = "Takia",
["tbd"] = "Kaki Ae",
["tbe"] = "Tanimbili",
["tbf"] = "Mandara",
["tbg"] = "North Tairora",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "ตโบลี",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "โบโด-กาโรดั้งเดิม",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Proto-Burmish",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Proto-Kuki-Chin",
["tbq-lal-pro"] = "Proto-Lalo",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "โลโล-เบอร์มีซดั้งเดิม",
["tbq-lol-pro"] = "โลโลอิชดั้งเดิม",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Aborlan Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Southern Tutchone",
["tcf"] = "Malinaltepec Tlapanec",
["tcg"] = "Tamagario",
["tch"] = "Turks and Caicos Creole English",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Tawr Chin",
["tcq"] = "Kaiy",
["tcs"] = "Torres Strait Creole",
["tct"] = "T'en",
["tcu"] = "Southeastern Tarahumara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "โตทา",
["tcy"] = "ตูลู",
["tcz"] = "Thado Chin",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "ไทใต้คง",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Western Tamang",
["tdh"] = "Thulung",
["tdi"] = "Tomadino",
["tdj"] = "Tajio",
["tdk"] = "Tambas",
["tdl"] = "Sur",
["tdm"] = "Taruma",
["tdn"] = "Tondano",
["tdo"] = "Teme",
["tdq"] = "Tita",
["tdr"] = "Todrah",
["tds"] = "Doutai",
["tdt"] = "Tetun Dili",
["tdu"] = "Tempasuk Dusun",
["tdv"] = "Toro",
["tdy"] = "Tadyawan",
["te"] = "เตลูกู",
["tea"] = "เตอเมียร์",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Huehuetla Tepehua",
["tef"] = "Teressa",
["teg"] = "Teke-Tege",
["teh"] = "Tehuelche",
["tei"] = "Torricelli",
["tek"] = "Ibali Teke",
["tem"] = "Temne",
["ten"] = "Tama (Colombia)",
["teo"] = "Ateso",
["tep"] = "Tepecano",
["teq"] = "Temein",
["ter"] = "Tereno",
["tes"] = "Tengger",
["tet"] = "เตตุน",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "เตอร์นาเต",
["tg"] = "ทาจิก",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Eastern Gorkha Tamang",
["tgf"] = "Chali",
["tgh"] = "Tobagonian Creole English",
["tgi"] = "Lawunuia",
["tgn"] = "ตันดากาโนน",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Central Tagbanwa",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "ไทย",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Northern Tarahumara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "ทะวืง",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "ทือกรึญญา",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "ทือเกร",
["tih"] = "Timugon Murut",
["tii"] = "Tiene",
["tij"] = "Tilung",
["tik"] = "Tikar",
["til"] = "Tillamook",
["tim"] = "Timbe",
["tin"] = "Tindi",
["tio"] = "Teop",
["tip"] = "Trimuris",
["tiq"] = "Tiéfo",
["tis"] = "Masadiit Itneg",
["tit"] = "Tinigua",
["tiu"] = "Adasen",
["tiv"] = "Tiv",
["tiw"] = "Tiwi",
["tix"] = "Southern Tiwa",
["tiy"] = "ตีรูไร",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Northern Tujia",
["tjl"] = "ไทแหล่ง",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Southern Tujia",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "เติร์กเมน",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelauan",
["tkm"] = "Takelma",
["tkn"] = "โทกูโนชิมะ",
["tkp"] = "Tikopia",
["tkq"] = "Tee",
["tkr"] = "Tsakhur",
["tks"] = "Ramandi",
["tkt"] = "Kathoriya Tharu",
["tku"] = "Upper Necaxa Totonac",
["tkv"] = "Mur Pano",
["tkw"] = "Teanu",
["tkx"] = "Tangko",
["tkz"] = "Takua",
["tl"] = "ตากาล็อก",
["tla"] = "Southwestern Tepehuan",
["tlb"] = "Tobelo",
["tlc"] = "Misantla Totonac",
["tld"] = "Talaud",
["tlf"] = "Telefol",
["tlg"] = "Tofanma",
["tlh"] = "Klingon",
["tli"] = "Tlingit",
["tlj"] = "Talinga-Bwisi",
["tlk"] = "Taloki",
["tll"] = "Tetela",
["tlm"] = "Tolomako",
["tln"] = "Talondo'",
["tlo"] = "Talodi",
["tlp"] = "Filomena Mata-Coahuitlán Totonac",
["tlq"] = "Tai Loi",
["tlr"] = "Talise",
["tls"] = "Tambotalo",
["tlt"] = "Teluti",
["tlu"] = "Tulehu",
["tlv"] = "Taliabu",
["tlx"] = "Khehek",
["tly"] = "Talysh",
["tma"] = "Tama (Chad)",
["tmb"] = "Avava",
["tmc"] = "Tumak",
["tmd"] = "Haruai",
["tme"] = "Tremembé",
["tmf"] = "Toba-Maskoy",
["tmg"] = "Ternateño",
["tmh"] = "Tuareg",
["tmi"] = "Tutuba",
["tmj"] = "Samarokena",
["tmk"] = "Northwestern Tamang",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "สวานา",
["tna"] = "Tacana",
["tnb"] = "Western Tunebo",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "North Tanna",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "ตาอีโน",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "ตองงา",
["tob"] = "Toba",
["toc"] = "Coyutla Totonac",
["tod"] = "Toma",
["tof"] = "Gizrra",
["tog"] = "Tonga (Malawi)",
["toh"] = "Tonga (Mozambique)",
["toi"] = "Tonga (Zambia)",
["toj"] = "Tojolabal",
["tok"] = "Toki Pona",
["tol"] = "Tolowa",
["tom"] = "Tombulu",
["too"] = "Xicotepec de Juárez Totonac",
["top"] = "Papantla Totonac",
["toq"] = "Toposa",
["tor"] = "Togbo-Vara Banda",
["tos"] = "Highland Totonac",
["tou"] = "Tho",
["tov"] = "Upper Taromi",
["tow"] = "Jemez",
["tox"] = "Tobian",
["toy"] = "Topoiyo",
["toz"] = "To",
["tpa"] = "Taupota",
["tpc"] = "Azoyú Me'phaa",
["tpe"] = "Tippera",
["tpf"] = "Tarpia",
["tpg"] = "Kula",
["tpi"] = "ตอกปีซิน",
["tpj"] = "Tapieté",
["tpk"] = "Tupinikin",
["tpl"] = "Tlacoapa Me'phaa",
["tpm"] = "Tampulma",
["tpn"] = "Tupinambá",
["tpo"] = "Tai Pao",
["tpp"] = "Pisaflores Tepehua",
["tpq"] = "Tukpa",
["tpr"] = "Tuparí",
["tpt"] = "Tlachichilco Tepehua",
["tpu"] = "Tampuan",
["tpv"] = "Tanapag",
["tpw"] = "ตูปีเก่า",
["tpx"] = "Acatepec Me'phaa",
["tpy"] = "Trumai",
["tpz"] = "Tinputz",
["tqb"] = "Tembé",
["tql"] = "Lehali",
["tqm"] = "Turumsa",
["tqn"] = "Tenino",
["tqo"] = "Toaripi",
["tqp"] = "Tomoip",
["tqq"] = "Tunni",
["tqr"] = "Torona",
["tqt"] = "Western Totonac",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "ตุรกี",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "East Tarangan",
["trf"] = "Trinidadian Creole English",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Early Old Oghuz",
["trk-oat"] = "ตุรกีแบบอานาโตเลียเก่า",
["trk-pro"] = "เตอร์กิกดั้งเดิม",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "กอกบอรอก",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "ตุรุง",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Tunisian Sign Language",
["tsf"] = "Southwestern Tamang",
["tsg"] = "ซูก",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Turkish Sign Language",
["tsp"] = "Northern Toussian",
["tsq"] = "มือไทย",
["tsr"] = "Akei",
["tss"] = "Taiwan Sign Language",
["tsu"] = "โจว",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Tebul Sign Language",
["tt"] = "ตาตาร์",
["tta"] = "Tutelo",
["ttb"] = "Gaa",
["ttc"] = "Tektiteko",
["ttd"] = "Tauade",
["tte"] = "Bwanabwana",
["ttf"] = "Tuotomb",
["ttg"] = "Tutong",
["tth"] = "Upper Ta'oih",
["tti"] = "Tobati",
["ttj"] = "Tooro",
["ttk"] = "Totoro",
["ttl"] = "Totela",
["ttm"] = "Northern Tutchone",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "อีสาน",
["ttt"] = "Tat",
["ttu"] = "Torau",
["ttv"] = "Titan",
["ttw"] = "Long Wat",
["tty"] = "Sikaritai",
["ttz"] = "Tsum",
["tua"] = "Wiarumus",
["tub"] = "Tübatulabal",
["tuc"] = "Mutu",
["tud"] = "Tuxá",
["tue"] = "Tuyuca",
["tuf"] = "Central Tunebo",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "ตูปี-กัวรานีดั้งเดิม",
["tup-kab"] = "Kabishiana",
["tup-pro"] = "ตูเปียนดั้งเดิม",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Proto-Tungusic",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Southeast Ambrym",
["tvl"] = "ตูวาลู",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "ตีโดเร",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Western Tawbuid",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "เทาส์",
["twg"] = "Tereweng",
["twh"] = "ไทขาว",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Southwestern Tarahumara",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "โทแคเรียนบี",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "ตังกุต",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "West Tarangan",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "ตาฮีตี",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "ไทแมน",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "ไทแดง",
["tys"] = "ซาปา",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "ตูวา",
["tyx"] = "Teke-Tyee",
["tyz"] = "ตั่ย",
["tza"] = "Tanzanian Sign Language",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Central Atlas Tamazight",
["tzn"] = "Tugun",
["tzo"] = "โซตซิล",
["tzx"] = "Tabriak",
["uam"] = "Uamué",
["uan"] = "Kuan",
["uar"] = "Tairuma",
["uba"] = "Ubang",
["ubi"] = "Ubi",
["ubl"] = "Buhi'non Bikol",
["ubr"] = "Ubir",
["ubu"] = "Umbu-Ungu",
["uby"] = "Ubykh",
["uda"] = "Uda",
["ude"] = "Udihe",
["udg"] = "Muduga",
["udi"] = "อูดี",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "อุดมูร์ต",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "อุยกูร์",
["uga"] = "ยูการิต",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "กฺ๋อง",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "ยูเครน",
["uka"] = "Kaburi",
["ukg"] = "Ukuriguma",
["ukh"] = "Ukhwejo",
["ukk"] = "Muak Sa-aak",
["ukl"] = "Ukrainian Sign Language",
["ukp"] = "Ukpe-Bayobiri",
["ukq"] = "Ukwa",
["uks"] = "Kaapor Sign Language",
["uku"] = "Ukue",
["ukw"] = "Ukwuani-Aboh-Ndoni",
["uky"] = "Kuuk Yak",
["ula"] = "Fungwa",
["ulb"] = "Olukumi",
["ulc"] = "Ulch",
["ule"] = "Lule",
["ulf"] = "Afra",
["uli"] = "Ulithian",
["ulk"] = "Meriam",
["ull"] = "Ullatan",
["ulm"] = "Ulumanda'",
["uln"] = "อุนเซอร์ด็อยทช์",
["ulu"] = "Uma' Lung",
["ulw"] = "Ulwa",
["uma"] = "Umatilla",
["umb"] = "Umbundu",
["umc"] = "Marrucinian",
["umd"] = "Umbindhamu",
["umg"] = "Umbuygamu",
["umi"] = "Ukit",
["umm"] = "Umon",
["umn"] = "Makyan Naga",
["umo"] = "Umotína",
["ump"] = "Umpila",
["umr"] = "Umbugarla",
["ums"] = "Pendau",
["umu"] = "Munsee",
["una"] = "North Watut",
["und"] = "Undetermined",
["une"] = "Uneme",
["ung"] = "Ngarinyin",
["unk"] = "Enawené-Nawé",
["unm"] = "Unami",
["unn"] = "Kurnai",
["unr"] = "Mundari",
["unu"] = "Unubahe",
["unx"] = "Munda",
["unz"] = "Unde Kaili",
["uok"] = "Uokha",
["uon"] = "Kulon",
["upi"] = "Umeda",
["upv"] = "Northeast Malakula",
["ur"] = "อูรดู",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "ฟินนิกดั้งเดิม",
["urj-koo"] = "Old Komi",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Proto-Mordvinic",
["urj-prm-pro"] = "เปอร์มิกดั้งเดิม",
["urj-pro"] = "ยูราลิกดั้งเดิม",
["urj-ugr-pro"] = "ยูกริกดั้งเดิม",
["urk"] = "อูรักลาโวยจ",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (New Guinea)",
["urp"] = "Uru-Pa-In",
["urr"] = "Löyöp",
["urt"] = "Urat",
["uru"] = "Urumi",
["urv"] = "Uruava",
["urw"] = "Sop",
["urx"] = "Urimo",
["ury"] = "Orya",
["urz"] = "Uru-Eu-Wau-Wau",
["usa"] = "Usarufa",
["ush"] = "Ushojo",
["usi"] = "Usui",
["usk"] = "Usaghade",
["usp"] = "Uspanteco",
["uss"] = "Saare",
["usu"] = "Uya",
["uta"] = "Otank",
["ute"] = "Ute",
["uth"] = "Hun",
["utp"] = "Aba",
["utr"] = "Etulo",
["utu"] = "Utu",
["uum"] = "Urum",
["uun"] = "Kulon-Pazeh",
["uur"] = "Ura (Vanuatu)",
["uuu"] = "U",
["uve"] = "West Uvean",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "อุซเบก",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "ไว",
["vaj"] = "Sekele",
["val"] = "Vehes",
["vam"] = "Vanimo",
["van"] = "Valman",
["vao"] = "Vao",
["vap"] = "Vaiphei",
["var"] = "Huarijio",
["vas"] = "Vasavi",
["vau"] = "Vanuma",
["vav"] = "Varli",
["vay"] = "Vayu",
["vbb"] = "Southeast Babar",
["vbk"] = "Southwestern Bontoc",
["ve"] = "เวนดา",
["vec"] = "เวเนโต",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "เวปส์",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "เวียดนาม",
["vic"] = "Virgin Islands Creole",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vjk"] = "Bajjika",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Korlai Creole Portuguese",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "West Flemish",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Juxtlahuaca Mixtec",
["vmd"] = "Mudu Koraga",
["vme"] = "East Masela",
["vmf"] = "East Franconian",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Ixtayutla Mixtec",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mitlatongo Mixtec",
["vmp"] = "Soyaltepec Mazatec",
["vmq"] = "Soyaltepec Mixtec",
["vmr"] = "Marenje",
["vmu"] = "Muluridyi",
["vmv"] = "Valley Maidu",
["vmw"] = "Makhuwa",
["vmx"] = "Tamazola Mixtec",
["vmy"] = "Ayautla Mazatec",
["vmz"] = "Mazatlán Mazatec",
["vnk"] = "Lovono",
["vnm"] = "Neve'ei",
["vnp"] = "Vunapu",
["vo"] = "โวลาปุก",
["vor"] = "Voro",
["vot"] = "โวต",
["vra"] = "Vera'a",
["vro"] = "เวอโร",
["vrs"] = "Varisi",
["vrt"] = "Burmbar",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "วัลลูน",
["waa"] = "Walla Walla",
["wab"] = "Wab",
["wac"] = "Wasco-Wishram",
["wad"] = "Wandamen",
["waf"] = "Wakoná",
["wag"] = "Wa'ema",
["wah"] = "Watubela",
["waj"] = "Waffa",
["wal"] = "Wolaytta",
["wam"] = "Massachusett",
["wan"] = "Wan",
["wao"] = "Wappo",
["wap"] = "Wapishana",
["waq"] = "Wageman",
["war"] = "วาไร",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "วาราโอ",
["wbb"] = "Wabo",
["wbe"] = "Waritai",
["wbf"] = "Wara",
["wbh"] = "Wanda",
["wbi"] = "Wanji",
["wbj"] = "Alagwa",
["wbk"] = "Waigali",
["wbl"] = "Wakhi",
["wbm"] = "Wa",
["wbp"] = "Warlpiri",
["wbq"] = "Waddar",
["wbr"] = "Wagdi",
["wbt"] = "Wanman",
["wbv"] = "Wajarri",
["wbw"] = "Woi",
["wca"] = "Yanomam",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Western",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Cameroon Pidgin",
["wet"] = "Perai",
["weu"] = "Welaung",
["wew"] = "Weyewa",
["wfg"] = "Yafi",
["wga"] = "Wagaya",
["wgb"] = "Wagawaga",
["wgg"] = "Wangganguru",
["wgi"] = "Wahgi",
["wgo"] = "Waigeo",
["wgu"] = "Wirangu",
["wgy"] = "Warrgamay",
["wha"] = "Manusela",
["whg"] = "North Wahgi",
["whk"] = "Wahau Kenyah",
["whu"] = "Wahau Kayan",
["wib"] = "Southern Toussian",
["wic"] = "Wichita",
["wie"] = "Wik-Epa",
["wif"] = "Wik-Keyangan",
["wig"] = "Wik-Ngathana",
["wih"] = "Wik-Me'anha",
["wii"] = "Minidien",
["wij"] = "Wik-Iiyanh",
["wik"] = "Wikalkan",
["wil"] = "Wilawila",
["wim"] = "Wik-Mungkan",
["win"] = "วินเนอเบโก",
["wir"] = "Wiraféd",
["wiu"] = "Wiru",
["wiv"] = "Muduapa",
["wiy"] = "Wiyot",
["wja"] = "Waja",
["wji"] = "Warji",
["wka"] = "Kw'adza",
["wkb"] = "Kumbaran",
["wkd"] = "Mo",
["wkl"] = "Kalanadi",
["wku"] = "Kunduvadi",
["wkw"] = "Wakawaka",
["wky"] = "Wangkayutyuru",
["wla"] = "Walio",
["wlc"] = "Mwali Comorian",
["wle"] = "Wolane",
["wlg"] = "Kunbarlang",
["wli"] = "Waioli",
["wlk"] = "Wailaki",
["wll"] = "Wali (Sudan)",
["wlm"] = "เวลส์กลาง",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallisian",
["wlu"] = "Wuliwuli",
["wlv"] = "Wichí Lhamtés Vejoz",
["wlw"] = "Walak",
["wlx"] = "Wali (Ghana)",
["wly"] = "Waling",
["wmb"] = "Wambaya",
["wmc"] = "Wamas",
["wmd"] = "Mamaindé",
["wme"] = "Wambule",
["wmh"] = "Waima'a",
["wmi"] = "Wamin",
["wmm"] = "Maiwa (Indonesia)",
["wmn"] = "Waamwang",
["wmo"] = "Wam",
["wms"] = "Wambon",
["wmt"] = "Walmajarri",
["wmw"] = "มวานี",
["wmx"] = "Womo",
["wnb"] = "Wanambre",
["wnc"] = "Wantoat",
["wnd"] = "Wandarang",
["wne"] = "Waneci",
["wng"] = "Wanggom",
["wni"] = "Ndzwani Comorian",
["wnk"] = "Wanukaka",
["wnm"] = "Wanggamala",
["wno"] = "Wano",
["wnp"] = "Wanap",
["wnu"] = "Usan",
["wnw"] = "Wintu",
["wny"] = "Wanyi",
["wo"] = "โวลอฟ",
["woa"] = "Tyaraity",
["wob"] = "Wobé",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleaian",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["woy"] = "Weyto",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradjuri",
["wri"] = "Wariyangga",
["wrk"] = "Garawa",
["wrl"] = "Warlmanpa",
["wrm"] = "Warumungu",
["wrn"] = "Warnang",
["wro"] = "Worora",
["wrp"] = "Waropen",
["wrr"] = "Wardaman",
["wrs"] = "Waris",
["wru"] = "Waru",
["wrv"] = "Waruna",
["wrw"] = "Gugu Warra",
["wrx"] = "Wae Rana",
["wrz"] = "Warray",
["wsa"] = "Warembori",
["wsi"] = "Wusi",
["wsk"] = "Waskia",
["wsr"] = "Owenia",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "อู๋",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxiang",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "วีลามอวิตแซ",
["wyr"] = "Wayoró",
["wyy"] = "Western Fijian",
["xaa"] = "อาหรับแบบอันดะลุส",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "คัลมึค",
["xam"] = "ǀXam",
["xan"] = "Xamtanga",
["xao"] = "Khao",
["xap"] = "Apalachee",
["xaq"] = "Aquitanian",
["xar"] = "Karami",
["xas"] = "Kamassian",
["xat"] = "Katawixi",
["xau"] = "Kauwera",
["xav"] = "Xavante",
["xaw"] = "Kawaiisu",
["xay"] = "Kayan Mahakam",
["xbb"] = "Lower Burdekin",
["xbc"] = "แบกเตรีย",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "เบรอตงกลาง",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "กัมเบอรา",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "อาร์มีเนียเก่า",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezmian",
["xcr"] = "Carian",
["xct"] = "ทิเบตคลาสสิก",
["xcu"] = "Curonian",
["xcv"] = "Chuvan",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "เอโดม",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Eblaite",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "ฟาลิสกุส",
["xga"] = "Galatian",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindian",
["xgm"] = "Darumbal",
["xgn-pro"] = "มองโกลิกดั้งเดิม",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "โคซา",
["xha"] = "Harami",
["xhc"] = "Hunnic",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "เขมรกลาง",
["xhr"] = "Hernican",
["xht"] = "Hattic",
["xhu"] = "ฮูร์เรีย",
["xhv"] = "Khua",
["xib"] = "Iberian",
["xii"] = "Xiri",
["xil"] = "Illyrian",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Harappan",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Mendalam Kayan",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Kenyan Sign Language",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan River Kayan",
["xko"] = "Kiorr",
["xkp"] = "Kabatei",
["xkq"] = "Koroni",
["xkr"] = "Xakriabá",
["xks"] = "Kumbewaha",
["xkt"] = "Kantosi",
["xku"] = "Kaamba",
["xkv"] = "Kgalagadi",
["xkw"] = "Kembra",
["xkx"] = "Karore",
["xky"] = "Uma' Lasan",
["xkz"] = "Kurtöp",
["xla"] = "Kamula",
["xlb"] = "Loup B",
["xlc"] = "Lycian",
["xld"] = "Lydian",
["xle"] = "Lemnian",
["xlg"] = "Ancient Ligurian",
["xli"] = "Liburnian",
["xln"] = "Alanic",
["xlo"] = "Loup A",
["xlp"] = "Lepontic",
["xls"] = "Lusitanian",
["xlu"] = "Luwian",
["xly"] = "Elymian",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanic",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Middle Median",
["xme-old"] = "Old Median",
["xme-ott"] = "Old Tati",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Proto-Tatic",
["xmf"] = "มิงเกรเลีย",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Ancient Macedonian",
["xml"] = "Malaysian Sign Language",
["xmm"] = "มลายูแบบมานาโด",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroitic",
["xms"] = "Moroccan Sign Language",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Ancient North Arabian",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Proto-Na-Dene",
["xng"] = "มองโกเลียกลาง",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "กันกานาอือเหนือ",
["xnr"] = "Kangri",
["xns"] = "Kanashi",
["xnt"] = "Narragansett",
["xnu"] = "Nukunul",
["xny"] = "Nyiyaparli",
["xoc"] = "O'chi'chi'",
["xod"] = "Kokoda",
["xog"] = "Soga",
["xoi"] = "Kominimung",
["xok"] = "Xokleng",
["xom"] = "Komo",
["xon"] = "Konkomba",
["xoo"] = "Xukurú",
["xop"] = "Kopar",
["xor"] = "Korubo",
["xow"] = "Kowaki",
["xpa"] = "Pirriya",
["xpb"] = "Pyemmairre",
["xpc"] = "Pecheneg",
["xpd"] = "Paredarerme",
["xpe"] = "Liberia Kpelle",
["xpf"] = "Southeast Tasmanian",
["xpg"] = "Phrygian",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pictish",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "พาร์เทีย",
["xps"] = "Pisidian",
["xpu"] = "Punic",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Bruny Island",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Eastern Karaboro",
["xrd"] = "Gundungurra",
["xre"] = "Kreye",
["xrg"] = "Minang",
["xri"] = "Krikati-Timbira",
["xrm"] = "Armazic",
["xrn"] = "Arin",
["xrq"] = "Karranga",
["xrr"] = "Raetic",
["xrt"] = "Aranama-Tamique",
["xru"] = "Marriammu",
["xrw"] = "Karawa",
["xsa"] = "Sabaean",
["xsb"] = "ซัมบัล",
["xsc-pro"] = "Proto-Scythian",
["xsc-sak-pro"] = "Proto-Saka",
["xsc-sar-pro"] = "Proto-Sarmatian",
["xsc-skw-pro"] = "Proto-Saka-Wakhi",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "South Slavey",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "เศรปา",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "ซูโดเวีย",
["xsy"] = "Saisiyat",
["xta"] = "Alcozauca Mixtec",
["xtb"] = "Chazumba Mixtec",
["xtc"] = "Kadugli",
["xtd"] = "Diuxi-Tilantongo Mixtec",
["xte"] = "Ketengban",
["xth"] = "Yitha Yitha",
["xti"] = "Sinicahua Mixtec",
["xtj"] = "San Juan Teita Mixtec",
["xtl"] = "Tijaltepec Mixtec",
["xtm"] = "Magdalena Peñasco Mixtec",
["xtn"] = "Northern Tlaxiaco Mixtec",
["xto"] = "โทแคเรียนเอ",
["xtp"] = "San Miguel Piedras Mixtec",
["xtq"] = "ตุมซุก",
["xtr"] = "Early Tripuri",
["xts"] = "Sindihui Mixtec",
["xtt"] = "Tacahua Mixtec",
["xtu"] = "Cuyamecalco Mixtec",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Yoloxochitl Mixtec",
["xua"] = "Alu Kurumba",
["xub"] = "Betta Kurumba",
["xud"] = "Umiida",
["xug"] = "คูนิงามิ",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "อุมเบรีย",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "วันดัล",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Western Xwla Gbe",
["xwo"] = "Written Oirat",
["xwr"] = "Kwerba Mamberamo",
["xww"] = "Wemba-Wemba",
["xxb"] = "Boro",
["xxk"] = "Ke'o",
["xxm"] = "Minkin",
["xxr"] = "Koropó",
["xxt"] = "Tambora",
["xya"] = "Yaygir",
["xyb"] = "Yandjibara",
["xyl"] = "Yalakalore",
["xyt"] = "Mayi-Thakurti",
["xyy"] = "Yorta Yorta",
["xzh"] = "Zhang-Zhung",
["xzm"] = "Semigallian",
["xzp"] = "Ancient Zapotec",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "ยามานา",
["yah"] = "Yazghulami",
["yai"] = "Yaghnobi",
["yaj"] = "Banda-Yangere",
["yak"] = "Yakima",
["yal"] = "Yalunka",
["yam"] = "Yamba",
["yan"] = "Mayangna",
["yao"] = "Yao",
["yap"] = "Yapese",
["yaq"] = "Yaqui",
["yar"] = "Yabarana",
["yas"] = "Gunu",
["yat"] = "Yambeta",
["yau"] = "Yuwana",
["yav"] = "Yangben",
["yaw"] = "Yawalapití",
["yay"] = "Agwagwune",
["yaz"] = "Lokaa",
["yba"] = "Yala",
["ybb"] = "Yemba",
["ybe"] = "Western Yugur",
["ybh"] = "Yakkha",
["ybi"] = "Yamphu",
["ybj"] = "Hasha",
["ybk"] = "Bokha",
["ybl"] = "Yukuben",
["ybm"] = "Yaben",
["ybn"] = "Yabaâna",
["ybo"] = "Yabong",
["ybx"] = "Yawiyo",
["yby"] = "Yaweyuha",
["ych"] = "Chesu",
["ycl"] = "Lolopo",
["ycn"] = "Yucuna",
["ycp"] = "Chepya",
["ycr"] = "Yilan Creole",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yenish",
["yee"] = "Yimas",
["yei"] = "Yeni",
["yej"] = "Yevanic",
["yen"] = "Yendang",
["yer"] = "Tarok",
["yes"] = "Yeskwa",
["yet"] = "Yetfa",
["yeu"] = "Yerukula",
["yev"] = "Yapunda",
["yey"] = "Yeyi",
["ygi"] = "Yiningayi",
["ygl"] = "Yangum Gel",
["ygm"] = "Yagomi",
["ygp"] = "Gepo",
["ygr"] = "Yagaria",
["ygs"] = "Yolngu Sign Language",
["ygu"] = "Yugul",
["ygw"] = "Yagwoia",
["yha"] = "Baha",
["yhl"] = "Hlepho Phowa",
["yi"] = "ยิดดิช",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Micha",
["yir"] = "North Awyu",
["yis"] = "Yis",
["yit"] = "Eastern Lalu",
["yiu"] = "Lope",
["yiv"] = "Northern Nisu",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "ยากัน",
["ykg"] = "Northern Yukaghir",
["ykh"] = "Khamnigan Mongol",
["yki"] = "Yoke",
["ykk"] = "Yakaikeke",
["ykl"] = "Khlula",
["ykm"] = "Kap",
["ykn"] = "Kua-nsi",
["yko"] = "Yasa",
["ykr"] = "Yekora",
["ykt"] = "Kathu",
["yku"] = "Kuamasi",
["yky"] = "Yakoma",
["yla"] = "Yaul",
["ylb"] = "Yaleba",
["yle"] = "Yele",
["ylg"] = "Yelogu",
["yli"] = "Angguruk Yali",
["yll"] = "Yil",
["ylm"] = "Limi",
["yln"] = "Langnian Buyang",
["ylo"] = "Naruo",
["ylr"] = "Yalarnnga",
["ylu"] = "Aribwaung",
["yly"] = "Nyelâyu",
["ymb"] = "Yambes",
["ymc"] = "Southern Muji",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Yangum Mon",
["ymp"] = "Yamap",
["ymq"] = "Qila Muji",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Northern Muji",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynb"] = "Yamben",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "ยอง",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "โยรูบา",
["yob"] = "Yoba",
["yog"] = "โยกัด",
["yoi"] = "โยนางูนิ",
["yok-bvy"] = "Buena Vista Yokuts",
["yok-dly"] = "Delta Yokuts",
["yok-gsy"] = "Gashowu Yokuts",
["yok-kry"] = "Kings River Yokuts",
["yok-nvy"] = "Northern Valley Yokuts",
["yok-ply"] = "Palewyami Yokuts",
["yok-svy"] = "Southern Valley Yokuts",
["yok-tky"] = "Tule-Kaweah Yokuts",
["yol"] = "ยอลอ",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "โยรง",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Labo Phowa",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk-pro"] = "Proto-Yupik",
["ypm"] = "Phuma",
["ypn"] = "Ani Phowa",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk-for"] = "Forest Nenets",
["yrk-tun"] = "Tundra Nenets",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Ỹaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Southern Lolopo",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Toloza",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Yucatec Maya",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "กวางตุ้ง",
["yuf"] = "Havasupai-Walapai-Yavapai",
["yug"] = "Yug",
["yui"] = "Yurutí",
["yuj"] = "Karkar-Yuri",
["yuk"] = "Yuki",
["yul"] = "Yulu",
["yum"] = "Yuma",
["yun"] = "Bena",
["yup"] = "Yukpa",
["yuq"] = "Yuqui",
["yur"] = "Yurok",
["yut"] = "Yopno",
["yuw"] = "Finisterre Yau",
["yux"] = "Southern Yukaghir",
["yuy"] = "East Yugur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Western Lalu",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng",
["yww"] = "Yawarawarga",
["yxa"] = "Mayawali",
["yxg"] = "Yagara",
["yxl"] = "Yarli",
["yxm"] = "Yinwum",
["yxu"] = "Yuyu",
["yxy"] = "Yabula Yabula",
["yyu"] = "Torricelli Yau",
["yyz"] = "Ayizi",
["yzg"] = "E'ma Buyang",
["yzk"] = "Zokhuo",
["za"] = "จ้วง",
["zaa"] = "Sierra de Juárez Zapotec",
["zab"] = "San Juan Guelavía Zapotec",
["zac"] = "Ocotlán Zapotec",
["zad"] = "Cajonos Zapotec",
["zae"] = "Yareni Zapotec",
["zaf"] = "Ayoquesco Zapotec",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Isthmus Zapotec",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Central Mahuatlán Zapotec",
["zao"] = "Ozolotepec Zapotec",
["zap"] = "Zapotec",
["zaq"] = "Aloápam Zapotec",
["zar"] = "Rincón Zapotec",
["zas"] = "Santo Domingo Albarradas Zapotec",
["zat"] = "Tabaa Zapotec",
["zau"] = "ซันสการ์",
["zav"] = "Yatzachi Zapotec",
["zaw"] = "Mitla Zapotec",
["zax"] = "Xadani Zapotec",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Coatecas Altas Zapotec",
["zdj"] = "Ngazidja Comorian",
["zea"] = "Zealandic",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Moroccan Amazigh",
["zgr"] = "Magori",
["zh"] = "จีน",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "จ้วงแบบหนง",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "หมิ่นดั้งเดิม",
["zhx-sht"] = "Shaozhou Tuhua",
["zhx-sic"] = "เสฉวน",
["zhx-tai"] = "ห่อยซัน",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkd"] = "กะดู",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "São Paulo Kaingáng",
["zkr"] = "Zakhring",
["zkt"] = "คีตัน",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Old Novgorodian",
["zle-ort"] = "รูซินเก่า",
["zls-chs"] = "Church Slavonic",
["zlw-ocs"] = "เช็กเก่า",
["zlw-opl"] = "โปแลนด์เก่า",
["zlw-osk"] = "สโลวักเก่า",
["zlw-slv"] = "สโลวินช์",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Negeri Sembilan Malay",
["zmj"] = "Maridjabin",
["zmk"] = "Mandandanyi",
["zml"] = "Madngele",
["zmm"] = "Marimanindji",
["zmn"] = "Mbangwe",
["zmo"] = "Molo",
["zmp"] = "Mbuun",
["zmq"] = "Mituku",
["zmr"] = "Maranungku",
["zms"] = "Mbesa",
["zmt"] = "Maringarr",
["zmu"] = "Muruwari",
["zmv"] = "Mbariman-Gudhinma",
["zmw"] = "Mbo (Congo)",
["zmx"] = "Bomitaba",
["zmy"] = "Mariyedi",
["zmz"] = "Mbandja",
["zna"] = "Zan Gula",
["zne"] = "Zande",
["zng"] = "Mang",
["znk"] = "Manangkari",
["zns"] = "Mangas",
["zoc"] = "Copainalá Zoque",
["zoh"] = "Chimalapa Zoque",
["zom"] = "Zou",
["zoo"] = "Asunción Mixtepec Zapotec",
["zoq"] = "Tabasco Zoque",
["zor"] = "Rayón Zoque",
["zos"] = "Francisco León Zoque",
["zpa"] = "Lachiguiri Zapotec",
["zpb"] = "Yautepec Zapotec",
["zpc"] = "Choapan Zapotec",
["zpd"] = "Southeastern Ixtlán Zapotec",
["zpe"] = "Petapa Zapotec",
["zpf"] = "San Pedro Quiatoni Zapotec",
["zpg"] = "Guevea de Humboldt Zapotec",
["zph"] = "Totomachapan Zapotec",
["zpi"] = "Santa María Quiegolani Zapotec",
["zpj"] = "Quiavicuzas Zapotec",
["zpk"] = "Tlacolulita Zapotec",
["zpl"] = "Lachixío Zapotec",
["zpm"] = "Mixtepec Zapotec",
["zpn"] = "Santa Inés Yatzechi Zapotec",
["zpo"] = "Amatlán Zapotec",
["zpp"] = "El Alto Zapotec",
["zpq"] = "Zoogocho Zapotec",
["zpr"] = "Santiago Xanica Zapotec",
["zps"] = "Coatlán Zapotec",
["zpt"] = "San Vicente Coatlán Zapotec",
["zpu"] = "Yalálag Zapotec",
["zpv"] = "Chichicapan Zapotec",
["zpw"] = "Zaniza Zapotec",
["zpx"] = "San Baltazar Loxicha Zapotec",
["zpy"] = "Mazaltepec Zapotec",
["zpz"] = "Texmelucan Zapotec",
["zra"] = "Gaya",
["zrg"] = "Mirgan",
["zrn"] = "Zirenkel",
["zro"] = "Záparo",
["zrs"] = "Mairasi",
["zsa"] = "Sarasira",
["zsk"] = "Kaskean",
["zsl"] = "Zambian Sign Language",
["zsr"] = "Southern Rincon Zapotec",
["zsu"] = "Sukurum",
["zte"] = "Elotepec Zapotec",
["ztg"] = "Xanaguía Zapotec",
["ztl"] = "Lapaguía-Guivini Zapotec",
["ztm"] = "San Agustín Mixtepec Zapotec",
["ztn"] = "Santa Catarina Albarradas Zapotec",
["ztp"] = "Loxicha Zapotec",
["ztq"] = "Quioquitani-Quierí Zapotec",
["zts"] = "Tilquiapan Zapotec",
["ztt"] = "Tejalapan Zapotec",
["ztu"] = "San Pablo Güilá Zapotec",
["ztx"] = "Zaachila Zapotec",
["zty"] = "Yatee Zapotec",
["zu"] = "ซูลู",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "ซูนี",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "ซาซา",
["zzj"] = "จ้วงแบบจั่วเจียง",
}
brpjdnbjkpd0zn6u8xkmu85vqb4efdi
5723247
5723242
2026-05-20T03:29:12Z
OctraBot
3198
5723247
Scribunto
text/plain
return {
["aa"] = "อาฟาร์",
["aaa"] = "Ghotuo",
["aab"] = "Alumu-Tesu",
["aac"] = "Ari",
["aad"] = "Amal",
["aaf"] = "Aranadan",
["aag"] = "Ambrak",
["aah"] = "Abu'",
["aai"] = "Arifama-Miniafia",
["aak"] = "Ankave",
["aal"] = "Afade",
["aan"] = "Anambé",
["aap"] = "Arára (Pará)",
["aaq"] = "Penobscot",
["aas"] = "Aasax",
["aau"] = "Abau",
["aav-khs-pro"] = "คาเซียนดั้งเดิม",
["aav-nic-pro"] = "นิโคบารีสดั้งเดิม",
["aav-pkl-pro"] = "ปนัร-คาซี-ลึงงัมดั้งเดิม",
["aav-pro"] = "ออสโตรเอเชียติกดั้งเดิม",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "อับคาเซีย",
["aba"] = "อาเบ",
["abb"] = "Bankon",
["abc"] = "Ambala Ayta",
["abd"] = "Camarines Norte Agta",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "อาหรับแบบทาจิกิสถาน",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Abenlen Ayta",
["abq"] = "อาบาซา",
["abs"] = "Ambonese Malay",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "อาหรับแบบบาห์เรน",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "อาเจะฮ์",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "อาหรับแบบอิรัก",
["acn"] = "Achang",
["acp"] = "Eastern Acipa",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "อาหรับแบบฮิญาซ",
["acx"] = "อาหรับแบบโอมาน",
["acy"] = "อาหรับแบบไซปรัส",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Dhofari Arabic",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Adamorobe Sign Language",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "อะดีเกยา",
["adz"] = "Adzera",
["ae"] = "อเวสตะ",
["aea"] = "Areba",
["aeb"] = "อาหรับแบบตูนิเซีย",
["aed"] = "Argentine Sign Language",
["aee"] = "Northeast Pashayi",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Armenian Sign Language",
["aeq"] = "Aer",
["aer"] = "Eastern Arrernte",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "อาฟรีกานส์",
["afa-pro"] = "แอฟโฟรเอเชียติกดั้งเดิม",
["afb"] = "Gulf Arabic",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Afghan Sign Language",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Afro-Seminole Creole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agi"] = "Agariya",
["agj"] = "Argobba",
["agk"] = "Isarog Agta",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "อากูตายา",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Central Cagayan Agta",
["agu"] = "Aguacateca",
["agv"] = "Remontado Agta",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Southern Alta",
["agz"] = "Mount Iriga Agta",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "อาข่า",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "อาหม",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Antigua and Barbuda Creole English",
["aih"] = "Ai-Cham",
["aii"] = "อารามายาใหม่แบบอัสซีเรีย",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "ไอนุ",
["aio"] = "อ่ายตน",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja",
["ajg"] = "Adja",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "อาหรับแบบลิแวนต์ใต้",
["ajw"] = "Ajawa",
["ajz"] = "Amri Karbi",
["ak"] = "อาคัน",
["akb"] = "Angkola Batak",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "แอกแคด",
["akl"] = "อักลัน",
["akm"] = "Aka-Bo",
["ako"] = "Akurio",
["akp"] = "Siwu",
["akq"] = "Ak",
["akr"] = "Araki",
["aks"] = "Akaselem",
["akt"] = "Akolet",
["aku"] = "Akum",
["akv"] = "Akhvakh",
["akw"] = "Akwa",
["akx"] = "Aka-Kede",
["aky"] = "Aka-Kol",
["akz"] = "แอละแบมา",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "แอลกองเคียนดั้งเดิม",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "อัลไตใต้",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Baïnounk Gubëeher",
["alv-bua-pro"] = "Proto-Bua",
["alv-cng-pro"] = "Proto-Cangin",
["alv-edk-pro"] = "Proto-Edekiri",
["alv-edo-pro"] = "Proto-Edoid",
["alv-fli-pro"] = "Proto-Fali",
["alv-gbe-pro"] = "กเบดั้งเดิม",
["alv-gng-pro"] = "Proto-Guang",
["alv-gtm-pro"] = "Proto-Central Togo",
["alv-gwa"] = "Gwara",
["alv-hei-pro"] = "Proto-Heiban",
["alv-ido-pro"] = "Proto-Idomoid",
["alv-igb-pro"] = "Proto-Igboid",
["alv-kwa-pro"] = "Proto-Kwa",
["alv-mum-pro"] = "Proto-Mumuye",
["alv-nup-pro"] = "Proto-Nupoid",
["alv-pro"] = "แอตแลนติก-คองโกดั้งเดิม",
["alv-von-pro"] = "วอลตา-ไนเจอร์ดั้งเดิม",
["alv-yor-pro"] = "โยรูบาดั้งเดิม",
["alv-yrd-pro"] = "โยรูบอยด์ดั้งเดิม",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "อัมฮารา",
["ama"] = "Amanayé",
["amb"] = "Ambo",
["amc"] = "Amahuaca",
["ame"] = "Yanesha'",
["amf"] = "Hamer-Banna",
["amg"] = "Amurdag",
["ami"] = "Amis",
["amj"] = "Amdang",
["amk"] = "Ambai",
["aml"] = "War-Jaintia",
["amm"] = "Ama",
["amn"] = "Amanab",
["amo"] = "Amo",
["amp"] = "Alamblak",
["amq"] = "Amahai",
["amr"] = "Amarakaeri",
["ams"] = "อามามิโอชิมะใต้",
["amt"] = "Amto",
["amu"] = "Guerrero Amuzgo",
["amv"] = "Ambelau",
["amw"] = "Western Neo-Aramaic",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "อารากอน",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "คังรังชือ",
["anf"] = "Animere",
["ang"] = "อังกฤษเก่า",
["anh"] = "Nend",
["ani"] = "Andi",
["anj"] = "Anor",
["ank"] = "Goemai",
["anl"] = "Anu",
["anm"] = "Anāl",
["ann"] = "Obolo",
["ano"] = "Andoque",
["anp"] = "Angika",
["anq"] = "Jarawa",
["anr"] = "Andh",
["ans"] = "Anserma",
["ant"] = "Antakarinya",
["anu"] = "Anuak",
["anv"] = "Denya",
["anw"] = "Anaang",
["anx"] = "Andra-Hus",
["any"] = "Anyi",
["anz"] = "Anem",
["aoa"] = "Angolar",
["aob"] = "Abom",
["aoc"] = "Pemon",
["aod"] = "Andarum",
["aoe"] = "Angal Enen",
["aof"] = "Bragat",
["aog"] = "Angoram",
["aoi"] = "Anindilyakwa",
["aoj"] = "Mufian",
["aok"] = "Arhö",
["aol"] = "Alorese",
["aom"] = "Ömie",
["aon"] = "Bumbita Arapesh",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "อะตง",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Proto-Apachean",
["apb"] = "Sa'a",
["apc"] = "North Levantine Arabic",
["apd"] = "อาหรับแบบซูดาน",
["ape"] = "Bukiyip",
["apf"] = "Pahanan Agta",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Plains Apache",
["apl"] = "Lipan",
["apm"] = "Chiricahua",
["apn"] = "Apinayé",
["apo"] = "Ambul",
["app"] = "Apma",
["apq"] = "A-Pucikwar",
["apr"] = "Arop-Lokep",
["aps"] = "Arop-Sissano",
["apt"] = "Apatani",
["apu"] = "Apurinã",
["apv"] = "Alapmunte",
["apw"] = "อะแพชีตะวันตก",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Ampari Dogon",
["aqg"] = "Arigidi",
["aql-pro"] = "แอลจิกดั้งเดิม",
["aqm"] = "Atohwaim",
["aqn"] = "Northern Alta",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "อาหรับ",
["arc"] = "อารามายา",
["ard"] = "Arabana",
["are"] = "Western Arrernte",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "อาหรับแบบแอลจีเรีย",
["arr"] = "Arara-Karo",
["ars"] = "Najdi Arabic",
["art-adu"] = "Adûni",
["art-bel"] = "Belter Creole",
["art-blk"] = "Bolak",
["art-bsp"] = "แบล็กสปีช",
["art-com"] = "Communicationssprache",
["art-dtk"] = "Dothraki",
["art-elo"] = "Eloi",
["art-gld"] = "Goa'uld",
["art-lap"] = "Lapine",
["art-man"] = "Mandalorian",
["art-mun"] = "Mundolinco",
["art-nav"] = "Naʼvi",
["art-vlh"] = "High Valyrian",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "โลโกโน",
["arx"] = "Aruá",
["ary"] = "อาหรับแบบโมร็อกโก",
["arz"] = "อาหรับแบบอียิปต์",
["as"] = "อัสสัม",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Casuarina Coast Asmat",
["ase"] = "มืออเมริกัน",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Xingú Asuriní",
["aso"] = "Dano",
["asp"] = "Algerian Sign Language",
["asq"] = "Austrian Sign Language",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "อัสตูเรียส",
["asu"] = "Tocantins Asurini",
["asv"] = "Asoa",
["asw"] = "Australian Aboriginal Sign Language",
["asx"] = "Muratayak",
["asy"] = "Yaosakor Asmat",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Ata Manobo",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Proto-Athabaskan",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Mount Iraya Agta",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Pudtol Atta",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Pamplona Atta",
["atu"] = "Reel",
["atv"] = "อัลไตเหนือ",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "อาเนตยูม",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Huaorani",
["aud"] = "Anuta",
["auf-pro"] = "Proto-Arawa",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjila",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Asu",
["aun"] = "Molmo One",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus-alu"] = "Alungul",
["aus-and"] = "Andjingith",
["aus-ang"] = "Angkula",
["aus-arn-pro"] = "Proto-Arnhem",
["aus-bra"] = "Barranbinya",
["aus-brm"] = "Barunggam",
["aus-cww-pro"] = "Proto-Central New South Wales",
["aus-dal-pro"] = "Proto-Daly",
["aus-guw"] = "Guwar",
["aus-lsw"] = "Little Swanport",
["aus-mbi"] = "Mbiywom",
["aus-ngk"] = "Ngkoth",
["aus-nyu-pro"] = "Proto-Nyulnyulan",
["aus-pam-pro"] = "Proto-Pama-Nyungan",
["aus-tul"] = "Tulua",
["aus-uwi"] = "Uwinymil",
["aus-wdj-pro"] = "Proto-Iwaidjan",
["aus-won"] = "Wong-gie",
["aus-wul"] = "Wulguru",
["aus-ynk"] = "Yangkaal",
["aut"] = "Austral",
["auu"] = "Auye",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Auyana",
["auz"] = "อาหรับแบบอุซเบกิสถาน",
["av"] = "อะวาร์",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "โคทาวา",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avo"] = "Agavotaguerra",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "อวัธ",
["awb"] = "Awa (New Guinea)",
["awc"] = "Cicipu",
["awd-ama"] = "Amarizana",
["awd-amc-pro"] = "Proto-Amuesha-Chamicuro",
["awd-ana"] = "Anauyá",
["awd-apo"] = "Apolista",
["awd-cab"] = "Cabre",
["awd-gnu"] = "Guinau",
["awd-kar"] = "Cariay",
["awd-kaw"] = "Kawishana",
["awd-kmp-pro"] = "Proto-Kampa",
["awd-kus"] = "Kustenau",
["awd-man"] = "Manao",
["awd-mar"] = "Marawan",
["awd-mpr"] = "Maipure",
["awd-mrt"] = "Mariaté",
["awd-nwk-pro"] = "Proto-Nawiki",
["awd-pai"] = "Paikoneka",
["awd-pas"] = "Pasé",
["awd-pro"] = "Proto-Arawak",
["awd-prw-pro"] = "Proto-Paresi-Waura",
["awd-she"] = "Shebayo",
["awd-taa-pro"] = "Proto-Ta-Arawak",
["awd-wai"] = "Wainumá",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "South Awyu",
["awt"] = "Araweté",
["awu"] = "Central Awyu",
["awv"] = "Jair Awyu",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Edera Awyu",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Central Africa)",
["axl"] = "Lower Southern Aranda",
["axm"] = "อาร์มีเนียกลาง",
["axx"] = "Xârâgurè",
["ay"] = "ไอย์มารา",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "อาหรับแบบลิเบีย",
["ayn"] = "อาหรับแบบเยเมน",
["ayo"] = "Ayoreo",
["ayp"] = "อาหรับแบบเมโสโปเตเมียเหนือ",
["ayq"] = "Ayi",
["ays"] = "Sorsogon Ayta",
["ayt"] = "Bataan Ayta",
["ayu"] = "Ayu",
["ayy"] = "Tayabas Ayta",
["ayz"] = "Maybrat",
["az"] = "อาเซอร์ไบจาน",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Proto-Cupan",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "นาวันดั้งเดิม",
["azc-num-pro"] = "Proto-Numic",
["azc-pro"] = "ยูโต-แอซเทกันดั้งเดิม",
["azc-tak-pro"] = "Proto-Takic",
["azc-tat"] = "Tataviam",
["azd"] = "Eastern Durango Nahuatl",
["azg"] = "San Pedro Amuzgos Amuzgo",
["azm"] = "Ipalapa Amuzgo",
["azn"] = "Western Durango Nahuatl",
["azo"] = "Awing",
["azt"] = "Faire Atta",
["azz"] = "Highland Puebla Nahuatl",
["ba"] = "แบชเคียร์",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Baduy",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Bahamian Creole",
["baj"] = "Barakai",
["bal"] = "บาโลจ",
["ban"] = "บาหลี",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "บาวาเรีย",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Toba Batak",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "บัตส์",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "West Central Banda",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Central Bai",
["bcb"] = "Bainouk-Samik",
["bcd"] = "North Babar",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "บีโคลตอนกลาง",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Bali",
["bcq"] = "Bench",
["bcr"] = "Babine-Witsuwit'en",
["bcs"] = "Kohumono",
["bct"] = "Bendi",
["bcu"] = "Biliau",
["bcv"] = "Shoo-Minda-Nye",
["bcw"] = "Bana",
["bcy"] = "Bacama",
["bcz"] = "Bainouk-Gunyaamolo",
["bda"] = "Bayot",
["bdb"] = "Basap",
["bdc"] = "Emberá-Baudó",
["bdd"] = "Bunama",
["bde"] = "Bade",
["bdf"] = "Biage",
["bdg"] = "Bonggi",
["bdh"] = "Tara Baka",
["bdi"] = "Burun",
["bdj"] = "Bai (South Sudan)",
["bdk"] = "Budukh",
["bdl"] = "บาเจาแบบอินโดนีเซีย",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "บะห์นัร",
["bdr"] = "บาเจาแบบเวสต์โคสต์",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "เบลารุส",
["bea"] = "Beaver",
["beb"] = "Bebele",
["bec"] = "Iceve-Maci",
["bed"] = "Bedoanas",
["bee"] = "Byangsi",
["bef"] = "Benabena",
["beg"] = "Belait",
["beh"] = "Biali",
["bei"] = "Bekati'",
["bej"] = "Beja",
["bek"] = "Bebeli",
["bem"] = "Bemba",
["beo"] = "Beami",
["bep"] = "Besoa",
["beq"] = "Beembe",
["ber-fog"] = "Fogaha",
["ber-pro"] = "เบอร์เบอร์ดั้งเดิม",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "บลาการ์",
["bev"] = "Daloa Bété",
["bew"] = "เบอตาวี",
["bex"] = "Jur Modo",
["bey"] = "Akuwagel",
["bez"] = "Kibena",
["bfa"] = "Bari",
["bfb"] = "Pauri Bareli",
["bfc"] = "Panyi Bai",
["bfd"] = "Bafut",
["bfe"] = "Betaf",
["bff"] = "Bofi",
["bfg"] = "Busang Kayan",
["bfh"] = "Blafe",
["bfi"] = "British Sign Language",
["bfj"] = "Bafanji",
["bfk"] = "Ban Khor Sign Language",
["bfl"] = "Banda-Ndélé",
["bfm"] = "Mmen",
["bfn"] = "Bunak",
["bfo"] = "Malba Birifor",
["bfp"] = "Beba",
["bfq"] = "พทคะ",
["bfr"] = "Bazigar",
["bfs"] = "Southern Bai",
["bft"] = "บัลติ",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "บัลแกเรีย",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Bawm Chin",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "พิหาร",
["bha"] = "Bharia",
["bhb"] = "Bhili",
["bhc"] = "Biga",
["bhd"] = "Bhadrawahi",
["bhe"] = "Bhaya",
["bhf"] = "Odiai",
["bhg"] = "Binandere",
["bhh"] = "Bukhari",
["bhi"] = "Bhilali",
["bhj"] = "Bahing",
["bhl"] = "Bimin",
["bhm"] = "Bathari",
["bhn"] = "Bohtan Neo-Aramaic",
["bho"] = "โภชปุระ",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi South",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "บิสลามา",
["bia"] = "Badimaya",
["bib"] = "Bissa",
["bic"] = "Bikaru",
["bid"] = "Bidiyo",
["bie"] = "Bepour",
["bif"] = "Biafada",
["big"] = "Biangai",
["bij"] = "Kwanka",
["bil"] = "Bile",
["bim"] = "Bimoba",
["bin"] = "Edo",
["bio"] = "Nai",
["bip"] = "Bila",
["biq"] = "Bipi",
["bir"] = "Bisorio",
["bit"] = "Berinomo",
["biu"] = "Biete",
["biv"] = "Southern Birifor",
["biw"] = "Kol (Cameroon)",
["bix"] = "Bijori",
["biy"] = "Birhor",
["biz"] = "Baloi",
["bja"] = "Budza",
["bjb"] = "Barngarla",
["bjc"] = "Bariji",
["bje"] = "Biao-Jiao Mien",
["bjf"] = "Barzani Jewish Neo-Aramaic",
["bjg"] = "Bidyogo",
["bjh"] = "Bahinemo",
["bji"] = "Burji",
["bjj"] = "Kannauji",
["bjk"] = "Barok",
["bjl"] = "Bulu (New Guinea)",
["bjm"] = "Bajelani",
["bjn"] = "บันจาร์",
["bjo"] = "Mid-Southern Banda",
["bjp"] = "Fanamaket",
["bjr"] = "Binumarien",
["bjs"] = "Bajan",
["bjt"] = "Balanta-Ganja",
["bju"] = "Busuu",
["bjv"] = "Bedjond",
["bjw"] = "Bakwé",
["bjx"] = "Banao Itneg",
["bjy"] = "Bayali",
["bjz"] = "Baruga",
["bka"] = "Kyak",
["bkc"] = "Baka",
["bkd"] = "บีนูกิด",
["bkf"] = "Beeke",
["bkg"] = "Buraka",
["bkh"] = "Bakoko",
["bki"] = "Baki",
["bkj"] = "Pande",
["bkk"] = "Brokskat",
["bkl"] = "Berik",
["bkm"] = "Kom (Cameroon)",
["bkn"] = "Bukitan",
["bko"] = "Kwa'",
["bkp"] = "Iboko",
["bkq"] = "Bakairí",
["bkr"] = "Bakumpai",
["bks"] = "Masbate Sorsogon",
["bkt"] = "Boloki",
["bku"] = "Buhid",
["bkv"] = "Bekwarra",
["bkw"] = "Bekwel",
["bkx"] = "Baikeno",
["bky"] = "Bokyi",
["bkz"] = "Bungku",
["bla"] = "Blackfoot",
["blb"] = "Bilua",
["blc"] = "Bella Coola",
["bld"] = "Bolango",
["ble"] = "Balanta-Kentohe",
["blf"] = "Buol",
["blg"] = "Balau",
["blh"] = "Kuwaa",
["bli"] = "Bolia",
["blj"] = "Bulungan",
["blk"] = "กะเหรี่ยงปะโอ",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Southern Catanduanes Bicolano",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "ไทดำ",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "บัมบารา",
["bma"] = "Lame",
["bmb"] = "Bembe",
["bmc"] = "Biem",
["bmd"] = "Baga Manduri",
["bme"] = "Limassa",
["bmf"] = "Bom",
["bmg"] = "Bamwe",
["bmh"] = "Kein",
["bmi"] = "Bagirmi",
["bmj"] = "Bote-Majhi",
["bmk"] = "Ghayavi",
["bml"] = "Bomboli",
["bmn"] = "Bina",
["bmo"] = "Bambalang",
["bmp"] = "Bulgebi",
["bmq"] = "Bomu",
["bmr"] = "Muinane",
["bmt"] = "Biao Mon",
["bmu"] = "Somba-Siawari",
["bmv"] = "Bum",
["bmw"] = "Bomwali",
["bmx"] = "Baimak",
["bmz"] = "Baramu",
["bn"] = "เบงกอล",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Eastern Tawbuid",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "อาซี",
["bnp"] = "Bola",
["bnq"] = "Bantik",
["bnr"] = "Butmas-Tur",
["bns"] = "Bundeli",
["bnt-bal"] = "Balong",
["bnt-bon"] = "Boma Nkuu",
["bnt-boy"] = "Boma Yumu",
["bnt-bwa"] = "Bwala",
["bnt-cmw"] = "Chimwiini",
["bnt-ind"] = "Indanga",
["bnt-lal"] = "Lala (South Africa)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "งูนีดั้งเดิม",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "แบนทูดั้งเดิม",
["bnt-sab-pro"] = "Proto-Sabaki",
["bnt-sbo"] = "South Boma",
["bnt-sts-pro"] = "Proto-Sotho-Tswana",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Bintulu",
["bnz"] = "Beezen",
["bo"] = "ทิเบต",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "North Boma",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "โบล",
["bom"] = "Berom",
["bon"] = "Bine",
["boo"] = "Tiemacèwè Bozo",
["bop"] = "Bonkiman",
["boq"] = "Bogaya",
["bor"] = "Borôro",
["bot"] = "Bongo",
["bou"] = "Bondei",
["bov"] = "Tuwuli",
["bow"] = "Rema",
["box"] = "Buamu",
["boy"] = "Bodo (Central Africa)",
["boz"] = "Tiéyaxo Bozo",
["bpa"] = "Daakaka",
["bpd"] = "Banda-Banda",
["bpg"] = "Bonggo",
["bph"] = "Botlikh",
["bpi"] = "Bagupi",
["bpj"] = "Binji",
["bpk"] = "Orowe",
["bpl"] = "Broome Pearling Lugger Pidgin",
["bpm"] = "Biyom",
["bpn"] = "Dzao Min",
["bpo"] = "Anasi",
["bpp"] = "Kaure",
["bpq"] = "Banda Malay",
["bpr"] = "Koronadal Blaan",
["bps"] = "Sarangani Blaan",
["bpt"] = "Barrow Point",
["bpu"] = "Bongu",
["bpv"] = "Bian Marind",
["bpx"] = "Palya Bareli",
["bpy"] = "Bishnupriya Manipuri",
["bpz"] = "Bilba",
["bqa"] = "Tchumbuli",
["bqb"] = "Bagusa",
["bqc"] = "Boko",
["bqd"] = "Bung",
["bqf"] = "Baga Kaloum",
["bqg"] = "Bago-Kusuntu",
["bqh"] = "Baima",
["bqi"] = "Bakhtiari",
["bqj"] = "Bandial",
["bqk"] = "Banda-Mbrès",
["bql"] = "Bilakura",
["bqm"] = "Wumboko",
["bqn"] = "Bulgarian Sign Language",
["bqo"] = "Balo",
["bqp"] = "Busa",
["bqq"] = "Biritai",
["bqr"] = "Burusu",
["bqs"] = "Bosngun",
["bqt"] = "Bamukumbit",
["bqu"] = "Boguru",
["bqv"] = "Begbere-Ejar",
["bqw"] = "Buru (Nigeria)",
["bqx"] = "Baangi",
["bqy"] = "Bengkala Sign Language",
["bqz"] = "Bakaka",
["br"] = "เบรอตง",
["bra"] = "พรัช",
["brb"] = "Lave",
["brc"] = "Berbice Creole Dutch",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "บราฮุอี",
["bri"] = "Mokpwe",
["brj"] = "Bieria",
["brk"] = "Birgid",
["brl"] = "Birwa",
["brm"] = "Barambu",
["brn"] = "Boruca",
["bro"] = "Brokkat",
["brp"] = "Barapasi",
["brq"] = "Breri",
["brr"] = "Birao",
["brs"] = "Baras",
["brt"] = "Bitare",
["bru"] = "บรูตะวันออก",
["brv"] = "บรูตะวันตก",
["brw"] = "Bellari",
["brx"] = "โบโด",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Brunei Bisaya",
["bsc"] = "Bassari",
["bse"] = "Wushi",
["bsf"] = "Bauchi",
["bsg"] = "Bashkardi",
["bsh"] = "Kamkata-viri",
["bsi"] = "Bassossi",
["bsj"] = "Bangwinji",
["bsk"] = "Burushaski",
["bsl"] = "Basa-Gumna",
["bsm"] = "Busami",
["bsn"] = "Barasana",
["bso"] = "Buso",
["bsp"] = "Baga Sitemu",
["bsq"] = "Bassa",
["bsr"] = "Bassa-Kontagora",
["bss"] = "Akoose",
["bst"] = "Basketo",
["bsu"] = "Bahonsuai",
["bsv"] = "Baga Sobané",
["bsw"] = "Baiso",
["bsx"] = "Yangkam",
["bsy"] = "Sabah Bisaya",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Dairi Batak",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Biatah Bidayuh",
["bti"] = "Burate",
["btj"] = "Bacanese Malay",
["btk-pro"] = "Proto-Batak",
["btm"] = "Mandailing Batak",
["btn"] = "Ratagnon",
["bto"] = "Iriga Bicolano",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Simalungun Batak",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Karo Batak",
["bty"] = "Bobot",
["btz"] = "Alas-Kluet Batak",
["bua"] = "บูร์ยัต",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "บูกิส",
["buh"] = "Younuo Bunu",
["bui"] = "Bongili",
["buj"] = "Basa-Gurmana",
["buk"] = "Bukawa",
["bum"] = "Bulu (Cameroon)",
["bun"] = "Sherbro",
["buo"] = "Terei",
["bup"] = "Busoa",
["buq"] = "Brem",
["bus"] = "Bokobaru",
["but"] = "Bungain",
["buu"] = "Budu",
["buv"] = "Bun",
["buw"] = "Bubi",
["bux"] = "Boghom",
["buy"] = "Mmani",
["bva"] = "Barein",
["bvb"] = "Bube",
["bvc"] = "Baelelea",
["bvd"] = "Baeggu",
["bve"] = "Berau Malay",
["bvf"] = "Boor",
["bvg"] = "Bonkeng",
["bvh"] = "Bure",
["bvi"] = "Belanda Viri",
["bvj"] = "Baan",
["bvk"] = "Bukat",
["bvl"] = "Bolivian Sign Language",
["bvm"] = "Bamunka",
["bvn"] = "Buna",
["bvo"] = "Bolgo",
["bvp"] = "Bumang",
["bvq"] = "Birri",
["bvr"] = "Burarra",
["bvt"] = "Bati (Indonesia)",
["bvu"] = "Bukit Malay",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Bwe Karen",
["bwf"] = "Boselewa",
["bwg"] = "Barwe",
["bwh"] = "Bishuo",
["bwi"] = "Baniwa",
["bwj"] = "Láá Láá Bwamu",
["bwk"] = "Bauwaki",
["bwl"] = "Bwela",
["bwm"] = "Biwat",
["bwn"] = "Wunai Bunu",
["bwo"] = "Shinasha",
["bwp"] = "Mandobo Bawah",
["bwq"] = "Southern Bobo",
["bwr"] = "Bura",
["bws"] = "Bomboma",
["bwt"] = "Bafaw",
["bwu"] = "Buli (Ghana)",
["bww"] = "Bwa",
["bwx"] = "Bu-Nao Bunu",
["bwy"] = "Cwi Bwamu",
["bwz"] = "Bwisi",
["bxa"] = "Bauro",
["bxb"] = "Belanda Bor",
["bxc"] = "Molengue",
["bxd"] = "Pela",
["bxe"] = "Ongota",
["bxf"] = "Bilur",
["bxg"] = "Bangala",
["bxh"] = "Buhutu",
["bxi"] = "Pirlatapa",
["bxj"] = "Bayungu",
["bxk"] = "Bukusu",
["bxl"] = "Jalkunan",
["bxn"] = "Burduna",
["bxo"] = "Barikanchi",
["bxp"] = "Bebil",
["bxq"] = "Beele",
["bxs"] = "Busam",
["bxv"] = "Berakou",
["bxw"] = "Banka",
["bxz"] = "Binahari",
["bya"] = "Palawan Batak",
["byb"] = "Bikya",
["byc"] = "Ubaghara",
["byd"] = "Benyadu'",
["bye"] = "Pouye",
["byf"] = "Bete",
["byg"] = "Baygo",
["byh"] = "Bujhyal",
["byi"] = "Buyu",
["byj"] = "Binawa",
["byk"] = "Biao",
["byl"] = "Bayono",
["bym"] = "Bidyara",
["byn"] = "Blin",
["byo"] = "Biyo",
["byp"] = "Bumaji",
["byq"] = "Basay",
["byr"] = "Baruya",
["bys"] = "Burak",
["byt"] = "Berti",
["byv"] = "Medumba",
["byw"] = "Belhariya",
["byx"] = "Qaqet",
["byz"] = "Banaro",
["bza"] = "Bandi",
["bzb"] = "Andio",
["bzd"] = "Bribri",
["bze"] = "Jenaama Bozo",
["bzf"] = "Boikin",
["bzg"] = "Babuza",
["bzh"] = "Mapos Buang",
["bzi"] = "บีซู",
["bzj"] = "Belizean Creole",
["bzk"] = "Nicaraguan Creole",
["bzl"] = "Boano (Sulawesi)",
["bzm"] = "Bolondo",
["bzn"] = "Boano (Maluku)",
["bzo"] = "Bozaba",
["bzp"] = "Kemberano",
["bzq"] = "Buli (Indonesia)",
["bzr"] = "Biri",
["bzs"] = "Brazilian Sign Language",
["bzu"] = "Burmeso",
["bzv"] = "Bebe",
["bzw"] = "Basa",
["bzx"] = "Hainyaxo Bozo",
["bzy"] = "Obanliku",
["bzz"] = "Evant",
["ca"] = "กาตาลา",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Southern Carrier",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cèmuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "คาร์นิโคบาร์",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Proto-Abkhaz-Abaza",
["cau-and-pro"] = "Proto-Andian",
["cau-ava-pro"] = "Proto-Avaro-Andian",
["cau-cir-pro"] = "Proto-Circassian",
["cau-drg-pro"] = "Proto-Dargwa",
["cau-lzg-pro"] = "Proto-Lezghian",
["cau-nec-pro"] = "คอเคเซียนตะวันออกเฉียงเหนือดั้งเดิม",
["cau-nkh-pro"] = "นัคดั้งเดิม",
["cau-nwc-pro"] = "คอเคเซียนตะวันตกเฉียงเหนือดั้งเดิม",
["cau-tsz-pro"] = "Proto-Tsezian",
["cav"] = "Cavineña",
["caw"] = "Kallawaya",
["cax"] = "Chiquitano",
["cay"] = "Cayuga",
["caz"] = "Canichana",
["cba-ata"] = "Atanques",
["cba-cat"] = "Catío Chibcha",
["cba-dor"] = "Dorasque",
["cba-dui"] = "Duit",
["cba-hue"] = "Huetar",
["cba-nut"] = "Nutabe",
["cba-pro"] = "Proto-Chibchan",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbg"] = "Chimila",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "ชาบากาโน",
["cbl"] = "Bualkhaw Chin",
["cbn"] = "ญัฮกุร",
["cbo"] = "Izora",
["cbq"] = "Tsucuba",
["cbr"] = "Cashibo-Cacataibo",
["cbs"] = "Cashinahua",
["cbt"] = "Chayahuita",
["cbu"] = "Candoshi-Shapra",
["cbv"] = "Cacua",
["cbw"] = "Kinabalian",
["cby"] = "Carabayo",
["cca"] = "Cauca",
["ccc"] = "Chamicuro",
["ccd"] = "Cafundó",
["cce"] = "Chopi",
["ccg"] = "Chamba Daka",
["cch"] = "Atsam",
["ccj"] = "Kasanga",
["ccl"] = "Cutchi-Swahili",
["ccm"] = "Malaccan Creole Malay",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "จักมา",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "จอร์เจียน-แซนดั้งเดิม",
["ccs-pro"] = "คาร์ทเวเลียนดั้งเดิม",
["cda"] = "Choni",
["cdc-cbm-pro"] = "ชาดิกตอนกลางดั้งเดิม",
["cdc-mas-pro"] = "Proto-Masa",
["cdc-pro"] = "ชาดิกดั้งเดิม",
["cdd-pro"] = "Proto-Caddoan",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "หมิ่นตะวันออก",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Chadian Sign Language",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "เชเชน",
["cea"] = "Lower Chehalis",
["ceb"] = "เซบัวโน",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "บริทอนิกดั้งเดิม",
["cel-gal"] = "Gallaecian",
["cel-gau"] = "กอล",
["cel-pro"] = "เคลติกดั้งเดิม",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Falam Chin",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "ชามอร์โร",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Chontal Maya",
["chg"] = "ชากาทาย",
["chh"] = "Chinook",
["chi-pro"] = "Proto-Chimakuan",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuukese",
["chl"] = "Cahuilla",
["chm-pro"] = "Proto-Mari",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "เชโรกี",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "เชเยนน์",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tinrin",
["ciy"] = "Chaima",
["cja"] = "จามตะวันตก",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "จามตะวันออก",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "โชร์",
["cjv"] = "Chuave",
["cjy"] = "จิ้น",
["ckb"] = "เคิร์ดตอนกลาง",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Kaang Chin",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "ชุกชี",
["cku"] = "Koasati",
["ckv"] = "กบาลัน",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Kaqchikel-K'iche' Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Laitu Chin",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Lutuv",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Eastern Highland Chatino",
["cma"] = "หมะ",
["cmc-pro"] = "จามิกดั้งเดิม",
["cme"] = "Cerma",
["cmg"] = "มองโกเลียคลาสสิก",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "จีนกลาง",
["cmo"] = "มนองตอนกลาง",
["cmr"] = "Mro Chin",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chinbon Chin",
["cnc"] = "Cốông",
["cng"] = "Northern Qiang",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Khumi Chin",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "ผิงเหนือ",
["cns"] = "Central Asmat",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Ngawn Chin",
["cnx"] = "Middle Cornish",
["co"] = "คอร์ซิกา",
["coa"] = "Cocos Islands Malay",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "ชอง",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "คอปติก",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "เฉ่าเหมียว",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Cappadocian Greek",
["cpi"] = "Chinese Pidgin English",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "ผูเซียน",
["cpy"] = "South Ucayali Ashéninka",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "ครี",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "ตาตาร์แบบไครเมีย",
["cri"] = "Sãotomense",
["crj"] = "Southern East Cree",
["crk"] = "Plains Cree",
["crl"] = "Northern East Cree",
["crm"] = "Moose Cree",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Basque-Icelandic Pidgin",
["crp-gep"] = "West Greenlandic Pidgin",
["crp-kia"] = "Kiautschou German Pidgin",
["crp-mar"] = "Maroon Spirit Language",
["crp-mpp"] = "Macau Pidgin Portuguese",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Solombala English",
["crp-spp"] = "Samoan Plantation Pidgin",
["crp-tpr"] = "Taimyr Pidgin Russian",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Carolina Algonquian",
["crs"] = "Seychellois Creole",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "เช็ก",
["csa"] = "Chiltepec Chinantec",
["csb"] = "คาชุบ",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Asho Chin",
["csi"] = "Coast Miwok",
["csj"] = "Songlai Chin",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Central Sierra Miwok",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "ผิงใต้",
["csq"] = "Croatian Sign Language",
["csr"] = "Costa Rican Sign Language",
["css"] = "Southern Ohlone",
["cst"] = "Northern Ohlone",
["csu-bba-pro"] = "Proto-Bongo-Bagirmi",
["csu-maa-pro"] = "Proto-Mangbetu",
["csu-pro"] = "Proto-Central Sudanic",
["csu-sar-pro"] = "Proto-Sara",
["csv"] = "Sumtu Chin",
["csw"] = "Swampy Cree",
["csx"] = "Cambodian Sign Language",
["csy"] = "Siyin Chin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Tedim Chin",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagonian",
["cth"] = "Thaiphum Chin",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Western Highland Chatino",
["cts"] = "Northern Catanduanes Bicolano",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "สลาวอนิกคริสตจักรเก่า",
["cua"] = "Cua",
["cub"] = "Cubeo",
["cuc"] = "Usila Chinantec",
["cug"] = "Cung",
["cuh"] = "Chuka",
["cui"] = "Cuiba",
["cuj"] = "Mashco Piro",
["cuk"] = "Kuna",
["cul"] = "Culina",
["cuo"] = "Cumanagoto",
["cup"] = "Cupeño",
["cuq"] = "จุน",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Proto-Highland East Cushitic",
["cus-pro"] = "Proto-Cushitic",
["cus-som-pro"] = "โซมาลอยด์ดั้งเดิม",
["cus-sou-pro"] = "Proto-South Cushitic",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "ชูวัช",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "เวลส์",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "หมิ่นตอนกลาง",
["czt"] = "Zotung Chin",
["da"] = "เดนมาร์ก",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "ดาโคตา",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Daai Chin",
["daq"] = "Dandami Maria",
["dar"] = "Dargwa",
["das"] = "Daho-Doo",
["dau"] = "Dar Sila Daju",
["dav"] = "Taita",
["daw"] = "Davawenyo",
["dax"] = "Dayi",
["daz"] = "Dao",
["dba"] = "Bangime",
["dbb"] = "Deno",
["dbd"] = "Dadiya",
["dbe"] = "Dabe",
["dbf"] = "Edopi",
["dbg"] = "Dogul Dom",
["dbi"] = "Doka",
["dbj"] = "อีดาอัน",
["dbl"] = "Dyirbal",
["dbm"] = "Duguri",
["dbn"] = "Duriankere",
["dbo"] = "Dulbu",
["dbp"] = "Duwai",
["dbq"] = "Daba",
["dbr"] = "Dabarre",
["dbt"] = "Ben Tey",
["dbu"] = "Bondum Dom Dogon",
["dbv"] = "Dungu",
["dbw"] = "Bankan Tey Dogon",
["dby"] = "Dibiyaso",
["dcc"] = "Deccani",
["dcr"] = "เนเกอร์ฮอลันดส์",
["dda"] = "Dadi Dadi",
["ddd"] = "Dongotono",
["dde"] = "Doondo",
["ddg"] = "Fataluku",
["ddi"] = "Diodio",
["ddj"] = "Jaru",
["ddn"] = "Dendi",
["ddo"] = "Tsez",
["ddr"] = "Dhudhuroa",
["dds"] = "Donno So Dogon",
["ddw"] = "Dawera-Daweloor",
["de"] = "เยอรมัน",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Southern Dagaare",
["dgb"] = "Bunoge",
["dgc"] = "Casiguran Dumagat Agta",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Northern Dagara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["dhd"] = "Dhundhari",
["dhg"] = "Dhangu",
["dhi"] = "Dhimal",
["dhl"] = "Dhalandji",
["dhm"] = "Zemba",
["dhn"] = "Dhanki",
["dho"] = "Dhodia",
["dhr"] = "Tharrgari",
["dhs"] = "Dhaiso",
["dhu"] = "Dhurga",
["dhv"] = "Drehu",
["dhw"] = "Danuwar",
["dhx"] = "Dhungaloo",
["dia"] = "Dia",
["dib"] = "South Central Dinka",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Southwestern Dinka",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Northeastern Dinka",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Northwestern Dinka",
["dix"] = "Dixon Reef",
["diy"] = "Diuwe",
["diz"] = "Ding",
["dja"] = "Djadjawurrung",
["djb"] = "Djinba",
["djc"] = "Dar Daju Daju",
["djd"] = "Jaminjung",
["dje"] = "Zarma",
["djf"] = "Djangun",
["dji"] = "Djinang",
["djj"] = "Ndjébbana",
["djk"] = "Aukan",
["djl"] = "Djiwarli",
["djm"] = "Jamsay",
["djn"] = "Djauan",
["djo"] = "Jangkang",
["djr"] = "Djambarrpuyngu",
["dju"] = "Kapriman",
["djw"] = "Djawi",
["dka"] = "Dakpa",
["dkk"] = "Dakka",
["dkr"] = "Kuijau",
["dks"] = "Southeastern Dinka",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "แดลเมเชีย",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "กีนาบาตางันตอนบน",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Proto-Western Mande",
["dmn-pro"] = "Proto-Mande",
["dmo"] = "Kemezung",
["dmr"] = "East Damar",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "ดุงกาน",
["dni"] = "Lower Grand Valley Dani",
["dnj"] = "Dan",
["dnk"] = "Dengka",
["dnn"] = "Dzuun",
["dno"] = "Ndrulo",
["dnr"] = "Danaru",
["dnt"] = "Mid Grand Valley Dani",
["dnu"] = "Danau",
["dnv"] = "Danu",
["dnw"] = "Western Dani",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "ต้งเหนือ",
["doe"] = "Doe",
["dof"] = "Domu",
["doh"] = "Dong",
["doi"] = "Dogri",
["dok"] = "Dondo",
["dol"] = "Doso",
["don"] = "Doura",
["doo"] = "Dongo",
["dop"] = "Lukpa",
["doq"] = "Dominican Sign Language",
["dor"] = "Dori'o",
["dos"] = "Dogosé",
["dot"] = "Dass",
["dov"] = "Toka-Leya",
["dow"] = "Doyayo",
["dox"] = "Bussa",
["doy"] = "Dompo",
["doz"] = "Dorze",
["dpp"] = "Papar",
["dra-bry"] = "Beary",
["dra-cen-pro"] = "ดราวิเดียนตอนกลางดั้งเดิม",
["dra-mkn"] = "Middle Kannada",
["dra-nor-pro"] = "ดราวิเดียนเหนือดั้งเดิม",
["dra-okn"] = "Old Kannada",
["dra-ote"] = "Old Telugu",
["dra-pro"] = "ดราวิเดียนดั้งเดิม",
["dra-sdo-pro"] = "ดราวิเดียนใต้ที่หนึ่งดั้งเดิม",
["dra-sdt-pro"] = "ดราวิเดียนใต้ที่สองดั้งเดิม",
["dra-sou-pro"] = "ดราวิเดียนใต้ดั้งเดิม",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "West Damar",
["dro"] = "Daro-Matu Melanau",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Proto-Rukai",
["dry"] = "Darai",
["dsb"] = "ซอร์บตอนล่าง",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Labuk-Kinabatangan Kadazan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "ดูซุนตอนกลาง",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Umiray Dumaget Agta",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Alabat Island Agta",
["dum"] = "ดัตช์กลาง",
["dun"] = "Dusun Deyah",
["duo"] = "Dupaningan Agta",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Dicamay Agta",
["duz"] = "Duli",
["dv"] = "มัลดีฟส์",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "เดาโร",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Villa Viciosa Agta",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "ซองคา",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Eastern Bontoc",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Ecuadorian Sign Language",
["ecy"] = "Eteocypriot",
["ee"] = "เอเว",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "เอมีเลีย",
["ego"] = "Eggon",
["egx-dem"] = "Demotic Egyptian",
["egy"] = "อียิปต์",
["ehu"] = "Ehueun",
["eip"] = "Eipomek",
["eit"] = "Eitiep",
["eiv"] = "Askopan",
["eja"] = "Ejamat",
["eka"] = "Ekajuk",
["eke"] = "Ekit",
["ekg"] = "Ekari",
["eki"] = "Eki",
["ekl"] = "Kolhe",
["ekm"] = "Elip",
["eko"] = "Koti",
["ekp"] = "Ekpeye",
["ekr"] = "Yace",
["eky"] = "กะยาตะวันออก",
["el"] = "กรีก",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elamite",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Eastern Meohang",
["emi"] = "Mussau-Emira",
["emk"] = "Eastern Maninkakan",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Northern Emberá",
["ems"] = "อาลูตีก",
["emu"] = "Eastern Muria",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Epigraphic Mayan",
["en"] = "อังกฤษ",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Forest Enets",
["enh"] = "Tundra Enets",
["enl"] = "Enlhet",
["enm"] = "อังกฤษกลาง",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "เอสเปรันโต",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "South Efate",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "สเปน",
["ese"] = "Ese Ejja",
["esh"] = "เอชเตฮาร์ด",
["esl"] = "Egyptian Sign Language",
["esm"] = "Esuma",
["esn"] = "Salvadoran Sign Language",
["eso"] = "Estonian Sign Language",
["esq"] = "Esselen",
["ess"] = "Central Siberian Yupik",
["esu"] = "ยุปปิก",
["esx-esk-pro"] = "เอสกิโมดั้งเดิม",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "อินุอิตดั้งเดิม",
["esx-pro"] = "Proto-Eskimo-Aleut",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "เอสโตเนีย",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Ethiopian Sign Language",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "อีทรัสคัน",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "บาสก์",
["euq-pro"] = "บาสก์ดั้งเดิม",
["eve"] = "เอเว็น",
["evh"] = "Uvbie",
["evn"] = "เอเวนค์",
["ewo"] = "Ewondo",
["ext"] = "เอซเตรมาดูรา",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "เปอร์เซีย",
["faa"] = "Fasu",
["fab"] = "Annobonese",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Baissa Fali",
["fai"] = "Faiwol",
["faj"] = "Faita",
["fak"] = "Fang (Beboid)",
["fal"] = "South Fali",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "ฟาลา",
["fay"] = "Southwestern Fars",
["faz"] = "Northwestern Fars",
["fbl"] = "West Albay Bikol",
["fcs"] = "Quebec Sign Language",
["fer"] = "Feroge",
["ff"] = "ฟูลา",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "ฟินแลนด์",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "ฟีจี",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Montana Salish",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "North Fali",
["fln"] = "Flinders Island",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Far Western Muria",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "แฟโร",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "ฝรั่งเศส",
["frd"] = "Fordata",
["frm"] = "ฝรั่งเศสกลาง",
["fro"] = "ฝรั่งเศสเก่า",
["frp"] = "ฟร็องโก-พรอว็องส์",
["frq"] = "Forak",
["frr"] = "ฟรีเชียเหนือ",
["frt"] = "Fortsenal",
["fse"] = "Finnish Sign Language",
["fsl"] = "French Sign Language",
["fss"] = "Finnish-Swedish Sign Language",
["fud"] = "East Futuna",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "ฟรียูลี",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "ฟรีเชียตะวันตก",
["ga"] = "ไอริช",
["gaa"] = "Ga",
["gab"] = "Gabri",
["gac"] = "Mixed Great Andamanese",
["gad"] = "Gaddang",
["gae"] = "Warekena",
["gaf"] = "Gende",
["gag"] = "กากาอุซ",
["gah"] = "Alekano",
["gai"] = "Borei",
["gaj"] = "Gadsup",
["gak"] = "Gamkonora",
["gal"] = "Galoli",
["gam"] = "Kandawo",
["gan"] = "กั้น",
["gao"] = "Gants",
["gap"] = "Gal",
["gaq"] = "Gata'",
["gar"] = "Galeya",
["gas"] = "Adiwasi Garasia",
["gat"] = "Kenati",
["gau"] = "Kondekor",
["gaw"] = "Nobonob",
["gay"] = "Gayo",
["gba-pro"] = "Proto-Gbaya",
["gbb"] = "Kaytetye",
["gbd"] = "Karadjeri",
["gbe"] = "Niksek",
["gbf"] = "Gaikundi",
["gbg"] = "Gbanziri",
["gbh"] = "Defi Gbe",
["gbi"] = "Galela",
["gbj"] = "Bodo Gadaba",
["gbk"] = "Gaddi",
["gbl"] = "Gamit",
["gbm"] = "Garhwali",
["gbn"] = "Mo'da",
["gbo"] = "Northern Grebo",
["gbp"] = "Gbaya-Bossangoa",
["gbq"] = "Gbaya-Bozoum",
["gbr"] = "Gbagyi",
["gbs"] = "Gbesi Gbe",
["gbu"] = "Gagadu",
["gbv"] = "Gbanu",
["gbw"] = "Gabi",
["gbx"] = "Eastern Xwla Gbe",
["gby"] = "Gbari",
["gcc"] = "Mali",
["gcd"] = "Ganggalida",
["gce"] = "Galice",
["gcf"] = "Antillean Creole",
["gcl"] = "Grenadian Creole English",
["gcn"] = "Gaina",
["gcr"] = "Guianese Creole",
["gct"] = "Colonia Tovar German",
["gd"] = "แกลิกแบบสกอตแลนด์",
["gdb"] = "Ollari",
["gdc"] = "Gugu Badhun",
["gdd"] = "Gedaged",
["gde"] = "Gude",
["gdf"] = "Guduf-Gava",
["gdg"] = "Ga'dang",
["gdh"] = "Gadjerawang",
["gdi"] = "Gundi",
["gdj"] = "Kurtjar",
["gdk"] = "Gadang",
["gdl"] = "Dirasha",
["gdm"] = "Laal",
["gdn"] = "Umanakaina",
["gdo"] = "Godoberi",
["gdq"] = "Mehri",
["gdr"] = "Wipi",
["gds"] = "Ghandruk Sign Language",
["gdt"] = "Kungardutyi",
["gdu"] = "Gudu",
["gdx"] = "Godwari",
["gea"] = "Geruma",
["geb"] = "Kire",
["gec"] = "Gboloo Grebo",
["ged"] = "Gade",
["geg"] = "Gengle",
["geh"] = "Hutterisch",
["gei"] = "Gebe",
["gej"] = "Gen",
["gek"] = "Gerka",
["gel"] = "Fakkanci",
["gem-pro"] = "เจอร์แมนิกดั้งเดิม",
["geq"] = "Geme",
["ges"] = "Geser-Gorom",
["gev"] = "Viya",
["gew"] = "Gera",
["gex"] = "Garre",
["gey"] = "Enya",
["gez"] = "กืออึซ",
["gfk"] = "Patpatar",
["gft"] = "Gafat",
["gga"] = "Gao",
["ggb"] = "Gbii",
["ggd"] = "Gugadj",
["gge"] = "Guragone",
["ggg"] = "Gurgula",
["ggk"] = "Kungarakany",
["ggl"] = "Ganglau",
["ggn"] = "Eastern Gurung",
["ggt"] = "Gitua",
["ggu"] = "Gban",
["ggw"] = "Gogodala",
["gha"] = "Ghadames",
["ghc"] = "แกลิกคลาสสิก",
["ghe"] = "Southern Ghale",
["ghh"] = "Northern Ghale",
["ghk"] = "Geko Karen",
["ghl"] = "Ghulfan",
["ghn"] = "Ghanongga",
["gho"] = "Ghomara",
["ghr"] = "Ghera",
["ghs"] = "Guhu-Samane",
["ght"] = "Kutang Ghale",
["gia"] = "Kitja",
["gib"] = "Gibanawa",
["gid"] = "Gidar",
["gie"] = "Guébie",
["gig"] = "Goaria",
["gih"] = "Githabul",
["gii"] = "Girirra",
["gil"] = "กิลเบิร์ต",
["gim"] = "Gimi (Papuan)",
["gin"] = "Hinukh",
["gip"] = "Gimi (Austronesian)",
["giq"] = "Green Gelao",
["gir"] = "Red Gelao",
["gis"] = "North Giziga",
["git"] = "Gitxsan",
["giu"] = "Mulao",
["giw"] = "White Gelao",
["gix"] = "Gilima",
["giy"] = "Giyug",
["giz"] = "South Giziga",
["gji"] = "Geji",
["gjk"] = "Kachi Koli",
["gjm"] = "Gunditjmara",
["gjn"] = "Gonja",
["gjr"] = "Gurindji Kriol",
["gju"] = "Gojri",
["gka"] = "Guya",
["gkd"] = "Magɨ",
["gke"] = "Ndai",
["gkn"] = "Gokana",
["gko"] = "Kok-Nar",
["gkp"] = "Guinea Kpelle",
["gl"] = "กาลิเซีย",
["glc"] = "Bon Gula",
["gld"] = "Nanai",
["glh"] = "Northwest Pashayi",
["glj"] = "Kulaal",
["glk"] = "Gilaki",
["glo"] = "Galambu",
["glr"] = "Glaro-Twabo",
["glu"] = "Gula",
["glw"] = "Glavda",
["gly"] = "Gule",
["gma"] = "Gambera",
["gmb"] = "Gula'alaa",
["gmd"] = "Mághdì",
["gme-bur"] = "Burgundian",
["gme-cgo"] = "กอทแบบไครเมีย",
["gmg"] = "Magiyi",
["gmh"] = "เยอรมันสูงกลาง",
["gml"] = "เยอรมันต่ำกลาง",
["gmm"] = "Gbaya-Mbodomo",
["gmn"] = "Gimnime",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "นอร์เวย์กลาง",
["gmq-oda"] = "เดนมาร์กเก่า",
["gmq-ogt"] = "Old Gutnish",
["gmq-osw"] = "สวีเดนเก่า",
["gmq-pro"] = "นอร์สดั้งเดิม",
["gmq-scy"] = "Scanian",
["gmr"] = "Mirning",
["gmu"] = "Gumalu",
["gmv"] = "กาโม",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "ฟรังโกเนียตอนกลาง",
["gmw-ecg"] = "เยอรมันตอนกลางตะวันออก",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Jersey Dutch",
["gmw-msc"] = "Middle Scots",
["gmw-pro"] = "เจอร์แมนิกตะวันตกดั้งเดิม",
["gmw-rfr"] = "ฟรังโกเนียแบบไรน์",
["gmw-stm"] = "Sathmar Swabian",
["gmw-tsx"] = "Transylvanian Saxon",
["gmw-vog"] = "เยอรมันแบบว็อลกา",
["gmw-zps"] = "เยอรมันแบบซิพเซอร์",
["gmx"] = "Magoma",
["gmy"] = "กรีกแบบไมซีนี",
["gmz"] = "Mgbo",
["gn-cls"] = "กัวรานีคลาสสิก",
["gna"] = "Kaansa",
["gnb"] = "Gangte",
["gnc"] = "Guanche",
["gnd"] = "Zulgo-Gemzek",
["gne"] = "Ganang",
["gng"] = "Ngangam",
["gnh"] = "Lere",
["gni"] = "กูนียันดี",
["gnj"] = "Ngen of Djonkro",
["gnk"] = "ǁGana",
["gnl"] = "Gangulu",
["gnm"] = "Ginuman",
["gnn"] = "Gumatj",
["gnq"] = "Gana",
["gnr"] = "Gureng Gureng",
["gnt"] = "Guntai",
["gnu"] = "Gnau",
["gnw"] = "Western Bolivian Guarani",
["gnz"] = "Ganzi",
["goa"] = "Guro",
["gob"] = "Playero",
["goc"] = "Gorakor",
["god"] = "Godié",
["goe"] = "Gongduk",
["gof"] = "โกฟา",
["gog"] = "Gogo",
["goh"] = "เยอรมันสูงเก่า",
["goi"] = "Gobasi",
["goj"] = "Gowlan",
["gol"] = "Gola",
["gon"] = "โคณฑี",
["goo"] = "Gone Dau",
["gop"] = "Yeretuar",
["goq"] = "Gorap",
["gor"] = "Gorontalo",
["got"] = "กอท",
["gou"] = "Gavar",
["gov"] = "Goo",
["gow"] = "Gorwaa",
["gox"] = "Gobu",
["goy"] = "Goundo",
["goz"] = "Gozarkhani",
["gpa"] = "Gupa-Abawa",
["gpn"] = "Taiap",
["gqa"] = "Ga'anda",
["gqi"] = "Guiqiong",
["gqn"] = "Kinikinao",
["gqr"] = "Gor",
["gqu"] = "Qau",
["gra"] = "Rajput Garasia",
["grc"] = "กรีกโบราณ",
["grd"] = "Guruntum",
["grg"] = "Madi",
["grh"] = "Gbiri-Niragu",
["gri"] = "Ghari",
["grj"] = "Southern Grebo",
["grk-cal"] = "Calabrian Greek",
["grk-ita"] = "Italiot Greek",
["grk-mar"] = "Mariupol Greek",
["grk-pro"] = "เฮลเลนิกดั้งเดิม",
["grm"] = "Kota Marudu Talantang",
["gro"] = "Groma",
["grq"] = "Gorovu",
["grs"] = "Gresi",
["grt"] = "กาโร",
["gru"] = "Kistane",
["grv"] = "Central Grebo",
["grw"] = "Gweda",
["grx"] = "Guriaso",
["gry"] = "Barclayville Grebo",
["grz"] = "Guramalum",
["gse"] = "Ghanaian Sign Language",
["gsg"] = "German Sign Language",
["gsl"] = "Gusilay",
["gsm"] = "Guatemalan Sign Language",
["gsn"] = "Gusan",
["gso"] = "Southwest Gbaya",
["gsp"] = "Wasembo",
["gss"] = "Greek Sign Language",
["gsw"] = "เยอรมันแบบอลามันเนีย",
["gta"] = "Guató",
["gtu"] = "Aghu Tharrnggala",
["gu"] = "คุชราต",
["gua"] = "Shiki",
["gub"] = "Guajajára",
["guc"] = "Wayuu",
["gud"] = "Yocoboué Dida",
["gue"] = "Gurindji",
["guf"] = "Gupapuyngu",
["gug"] = "กัวรานีแบบปารากวัย",
["guh"] = "Guahibo",
["gui"] = "Eastern Bolivian Guarani",
["guk"] = "Gumuz",
["gul"] = "Gullah",
["gum"] = "Guambiano",
["gun"] = "Mbya Guarani",
["guo"] = "Guayabero",
["gup"] = "Gunwinggu",
["guq"] = "Aché",
["gur"] = "ฟราฟรา",
["gus"] = "Guinean Sign Language",
["gut"] = "Maléku Jaíka",
["guu"] = "Yanomamö",
["guv"] = "Gey",
["guw"] = "Gun",
["gux"] = "Gourmanchéma",
["guz"] = "Gusii",
["gv"] = "แมงซ์",
["gva"] = "Kaskihá",
["gvc"] = "Guanano",
["gve"] = "Duwet",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Pará Gavião",
["gvr"] = "Western Gurung",
["gvs"] = "Gumawana",
["gvy"] = "Guyani",
["gwa"] = "Mbato",
["gwb"] = "Gwa",
["gwc"] = "Kalami",
["gwd"] = "Gawwada",
["gwe"] = "Gweno",
["gwf"] = "Gowro",
["gwg"] = "Moo",
["gwi"] = "Gwich'in",
["gwj"] = "Gcwi",
["gwm"] = "Awngthim",
["gwn"] = "Gwandara",
["gwr"] = "Gwere",
["gwt"] = "Gawar-Bati",
["gwu"] = "Guwamu",
["gww"] = "Kwini",
["gwx"] = "Gua",
["gxx"] = "Wè Southern",
["gya"] = "Northwest Gbaya",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Guyanese Creole English",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "เฮาซา",
["haa"] = "Hän",
["hab"] = "Hanoi Sign Language",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Haiphong Sign Language",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "ฮาชอง",
["hak"] = "แคะ",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "ฮาวาย",
["hax"] = "Southern Haida",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Andaman Creole Hindi",
["hch"] = "Huichol",
["hdn"] = "Northern Haida",
["hds"] = "Honduras Sign Language",
["hdy"] = "Hadiyya",
["he"] = "ฮีบรู",
["hea"] = "Northern Qiandong Miao",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "ฮินดี",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "ฮินดีแบบฟีจี",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "ฮีลีไกโนน",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Hittite",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Hong Kong Sign Language",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Southern Mashan Hmong",
["hmb"] = "Humburi Senni",
["hmc"] = "Central Huishui Hmong",
["hmd"] = "A-Hmao",
["hme"] = "Eastern Huishui Hmong",
["hmf"] = "Hmong Don",
["hmg"] = "Southwestern Guiyang Hmong",
["hmh"] = "Southwestern Huishui Hmong",
["hmi"] = "Northern Huishui Hmong",
["hmj"] = "Ge",
["hmk"] = "Yemaek",
["hml"] = "Luopohe Hmong",
["hmm"] = "Central Mashan Hmong",
["hmn-pro"] = "ม้งดั้งเดิม",
["hmp"] = "Northern Mashan Hmong",
["hmq"] = "Eastern Qiandong Miao",
["hmr"] = "Hmar",
["hms"] = "Southern Qiandong Miao",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Western Mashan Hmong",
["hmx-mie-pro"] = "เมี่ยนดั้งเดิม",
["hmx-pro"] = "ม้ง-เมี่ยนดั้งเดิม",
["hmy"] = "Southern Guiyang Hmong",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Southern Hindko",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "ม้งเขียว",
["hnm"] = "ไหหลำ",
["hnn"] = "ฮานูโนโอ",
["hno"] = "Northern Hindko",
["hns"] = "ฮินดูสตานีแบบแคริบเบียน",
["hnu"] = "Hung",
["ho"] = "ฮีรีโมตู",
["hoa"] = "Hoava",
["hob"] = "Austronesian Mari",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadoti",
["hol"] = "Holu",
["hom"] = "Homa",
["hoo"] = "Holoholo",
["hop"] = "Hopi",
["hor"] = "Horo",
["hos"] = "Ho Chi Minh City Sign Language",
["hot"] = "Hote",
["hov"] = "Hovongan",
["how"] = "Honi",
["hoy"] = "Holiya",
["hoz"] = "Hozo",
["hpo"] = "Hpon",
["hps"] = "Hawai'i Pidgin Sign Language",
["hra"] = "Hrangkhol",
["hrc"] = "Niwer Mil",
["hre"] = "Hrê",
["hrk"] = "Haruku",
["hrm"] = "Horned Miao",
["hro"] = "Haroi",
["hrp"] = "Nhirrpi",
["hrt"] = "Hértevin",
["hru"] = "Hruso",
["hrw"] = "Warwar Feni",
["hrx"] = "ฮุนสริก",
["hrz"] = "Harzani",
["hsb"] = "ซอร์บตอนบน",
["hsh"] = "Hungarian Sign Language",
["hsl"] = "Hausa Sign Language",
["hsn"] = "เซียง",
["hss"] = "Harsusi",
["ht"] = "ครีโอลเฮติ",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "ฮังการี",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Northern Guiyang Hmong",
["huk"] = "Hulung",
["hul"] = "Hula",
["hum"] = "Hungana",
["huo"] = "Hu",
["hup"] = "Hupa",
["huq"] = "Tsat",
["hur"] = "Halkomelem",
["hus"] = "Wastek",
["huu"] = "Murui Huitoto",
["huv"] = "Huave",
["huw"] = "Hukumina",
["hux"] = "Nüpode Huitoto",
["huy"] = "Hulaulá",
["huz"] = "Hunzib",
["hvc"] = "Haitian Vodoun Culture Language",
["hvk"] = "Haveke",
["hvn"] = "Sabu",
["hwa"] = "Wané",
["hwc"] = "Hawaiian Creole",
["hwo"] = "Hwana",
["hy"] = "อาร์มีเนีย",
["hya"] = "Hya",
["hyx-pro"] = "อาร์มีเนียนดั้งเดิม",
["hz"] = "เฮเรโร",
["ia"] = "อินเทอร์ลิงกวา",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "อีบัน",
["ibb"] = "Ibibio",
["ibd"] = "Iwaidja",
["ibe"] = "Akpes",
["ibg"] = "Ibanag",
["ibh"] = "Bih",
["ibl"] = "Ibaloi",
["ibm"] = "Agoi",
["ibn"] = "Ibino",
["ibr"] = "Ibuoro",
["ibu"] = "Ibu",
["iby"] = "Ibani",
["ica"] = "Ede Ica",
["ich"] = "Etkywan",
["icl"] = "Icelandic Sign Language",
["icr"] = "Islander Creole English",
["id"] = "อินโดนีเซีย",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portuguese",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "อินเทร์ลิงเกว",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "อิกโบ",
["igb"] = "Ebira",
["ige"] = "Igede",
["igg"] = "Igana",
["igl"] = "Igala",
["igm"] = "Kanggape",
["ign"] = "Ignaciano",
["igo"] = "Isebe",
["igs"] = "Glosa",
["igw"] = "Igwe",
["ihb"] = "Pidgin Iha",
["ihi"] = "Ihievbe",
["ihp"] = "Iha",
["ii"] = "นอซู",
["iir-nur-pro"] = "Proto-Nuristani",
["iir-pro"] = "อินโด-อิเรเนียนดั้งเดิม",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo-pro"] = "Proto-Ijoid",
["ijs"] = "Southeast Ijo",
["ik"] = "Inupiaq",
["ike"] = "Eastern Canadian Inuktitut",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Inuit Sign Language",
["ikt"] = "Inuvialuktun",
["ikv"] = "Iku-Gora-Ankwa",
["ikw"] = "Ikwere",
["ikx"] = "Ik",
["ikz"] = "Ikizu",
["ila"] = "Ile Ape",
["ilb"] = "Ila",
["ilg"] = "Ilgar",
["ili"] = "Ili Turki",
["ilk"] = "Ilongot",
["ill"] = "อีรานุน",
["ilo"] = "อีโลกาโน",
["ils"] = "International Sign",
["ilu"] = "Ili'uun",
["ilv"] = "Ilue",
["ima"] = "Mala Malasar",
["imi"] = "Anamgura",
["iml"] = "Miluk",
["imn"] = "Imonda",
["imo"] = "Imbongu",
["imr"] = "Imroing",
["ims"] = "Marsian",
["imy"] = "Milyan",
["inb"] = "Inga",
["inc-apa"] = "Apabhramsa",
["inc-ash"] = "ปรากฤตแบบอโศก",
["inc-dng-pro"] = "Proto-Dangari",
["inc-kam"] = "กามรูป",
["inc-kho"] = "Kholosi",
["inc-krd-pro"] = "Proto-Kamta",
["inc-mas"] = "อัสสัมกลาง",
["inc-mbn"] = "เบงกอลกลาง",
["inc-mgu"] = "คุชราตกลาง",
["inc-mor"] = "โอริยากลาง",
["inc-oas"] = "อัสสัมช่วงต้น",
["inc-oaw"] = "Old Awadhi",
["inc-obn"] = "เบงกอลเก่า",
["inc-ogu"] = "คุชราตเก่า",
["inc-ohi"] = "ฮินดีเก่า",
["inc-oor"] = "โอริยาเก่า",
["inc-opa"] = "ปัญจาบเก่า",
["inc-pro"] = "อินโด-อารยันดั้งเดิม",
["ine-ana-pro"] = "อานาโตเลียนดั้งเดิม",
["ine-bsl-pro"] = "บอลโต-สลาวิกดั้งเดิม",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonian",
["ine-pro"] = "อินโด-ยูโรเปียนดั้งเดิม",
["ine-toc-pro"] = "โทแคเรียนดั้งเดิม",
["ing"] = "Deg Xinag",
["inh"] = "อิงกุช",
["inj"] = "Jungle Inga",
["inl"] = "มืออินโดนีเซีย",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "มืออินเดีย",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "อีโด",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Proto-Komisenian",
["ira-mny-pro"] = "Proto-Munji-Yidgha",
["ira-mpr-pro"] = "Proto-Medo-Parthian",
["ira-pat-pro"] = "ปาทานดั้งเดิม",
["ira-pro"] = "อิเรเนียนดั้งเดิม",
["ira-sgc-pro"] = "ซอกดิกดั้งเดิม",
["ira-sgi-pro"] = "Proto-Sanglechi-Ishkashimi",
["ira-shr-pro"] = "Proto-Shughni-Roshani",
["ira-shy-pro"] = "Proto-Shughni-Yazghulami",
["ira-sym-pro"] = "Proto-Shughni-Yazghulami-Munji",
["ira-wnj"] = "Vanji",
["ira-zgr-pro"] = "Proto-Zaza-Gorani",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Rigwe",
["irk"] = "Iraqw",
["irn"] = "Irantxe",
["iro-ere"] = "Erie",
["iro-min"] = "Mingo",
["iro-nor-pro"] = "Proto-North Iroquoian",
["iro-pro"] = "Proto-Iroquoian",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "ไอซ์แลนด์",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Italian Sign Language",
["isg"] = "Irish Sign Language",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Israeli Sign Language",
["ist"] = "อิสเตรีย",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "อิตาลี",
["itb"] = "Binongan Itneg",
["itc-pro"] = "อิตาลิกดั้งเดิม",
["itc-psa"] = "Pre-Samnite",
["itd"] = "Southern Tidung",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Italian",
["itl"] = "Itelmen",
["itm"] = "Itu Mbon Uzo",
["ito"] = "Itonama",
["itr"] = "Iteri",
["its"] = "Itsekiri",
["itt"] = "Maeng Itneg",
["itv"] = "Itawit",
["itw"] = "Ito",
["itx"] = "Itik",
["ity"] = "Moyadan Itneg",
["itz"] = "Itza'",
["iu"] = "อินุกติตุต",
["ium"] = "เมี่ยน",
["ivb"] = "Ibatan",
["ivv"] = "Ivatan",
["iwk"] = "I-Wak",
["iwm"] = "Iwam",
["iwo"] = "Iwur",
["iws"] = "Sepik Iwam",
["ixc"] = "Ixcatec",
["ixl"] = "Ixil",
["iya"] = "Iyayu",
["iyo"] = "Mesaka",
["iyx"] = "Yaa",
["izh"] = "อิงเกรีย",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "ญี่ปุ่น",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jal"] = "Yalahatan",
["jam"] = "ครีโอลจาเมกา",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "ชวาแบบนิวแคลิโดเนีย",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Jambi Malay",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "โลจบาน",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Jamaican Country Sign Language",
["jct"] = "Krymchak",
["jda"] = "Jad",
["jdg"] = "Jadgali",
["jdt"] = "Judeo-Tat",
["jeb"] = "Jebero",
["jee"] = "Jerung",
["jeg"] = "Jeng",
["jeh"] = "Jeh",
["jei"] = "Yei",
["jek"] = "Jeri Kuo",
["jel"] = "Yelmek",
["jen"] = "Dza",
["jer"] = "Jere",
["jet"] = "Manem",
["jeu"] = "Jonkor Bourmataguil",
["jgb"] = "Ngbee",
["jgk"] = "Gwak",
["jgo"] = "Ngomba",
["jhi"] = "Jehai",
["jhs"] = "Jhankot Sign Language",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "เจียเม่า",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "เชจู",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkp"] = "Paku Karen",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Jamaican Sign Language",
["jma"] = "Dima",
["jmb"] = "Zumbun",
["jmc"] = "Machame",
["jmd"] = "Yamdena",
["jmi"] = "Jimi",
["jml"] = "Jumli",
["jmn"] = "Makuri Naga",
["jmr"] = "Kamara",
["jmw"] = "Mouwase",
["jmx"] = "Western Juxtlahuaca Mixtec",
["jna"] = "Jangshung",
["jnd"] = "Jandavra",
["jng"] = "Yangman",
["jni"] = "Janji",
["jnj"] = "Yemsa",
["jnl"] = "Rawat",
["jns"] = "Jaunsari",
["job"] = "Joba",
["jod"] = "Wojenaka",
["jor"] = "Jorá",
["jos"] = "Jordanian Sign Language",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "แจพอนิกดั้งเดิม",
["jpx-ryu-pro"] = "Proto-Ryukyuan",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Japanese Sign Language",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "จูร์เชน",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Jumla Sign Language",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "ชวา",
["jvd"] = "Javindo",
["jvn"] = "ชวาแบบแคริบเบียน",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "จอร์เจีย",
["kaa"] = "การากัลปัก",
["kab"] = "กะไบล์",
["kac"] = "จิ่งเผาะ",
["kad"] = "Kadara",
["kae"] = "Ketangalan",
["kaf"] = "Katso",
["kag"] = "Kajaman",
["kah"] = "Fer",
["kai"] = "Karekare",
["kaj"] = "Jju",
["kak"] = "Kayapa Kallahan",
["kam"] = "Kamba",
["kao"] = "Kassonke",
["kap"] = "Bezhta",
["kaq"] = "Capanahua",
["kar-pro"] = "กะเหรี่ยงดั้งเดิม",
["kaw"] = "ชวาเก่า",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "คาบาร์เดีย",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (Central Africa)",
["kbo"] = "Keliko",
["kbp"] = "Kabiyé",
["kbq"] = "Kamano",
["kbr"] = "Kafa",
["kbs"] = "Kande",
["kbt"] = "Gabadi",
["kbu"] = "Kabutra",
["kbv"] = "Kamberataro",
["kbw"] = "Kaiep",
["kbx"] = "Ap Ma",
["kbz"] = "Duhwa",
["kca-eas"] = "Eastern Khanty",
["kca-nor"] = "Northern Khanty",
["kca-pro"] = "Proto-Khanty",
["kca-sou"] = "Southern Khanty",
["kcb"] = "Kawacha",
["kcc"] = "Lubila",
["kcd"] = "Ngkâlmpw Kanum",
["kce"] = "Kaivi",
["kcf"] = "Ukaan",
["kcg"] = "Tyap",
["kch"] = "Vono",
["kci"] = "Kamantan",
["kcj"] = "Kobiana",
["kck"] = "Kalanga",
["kcl"] = "Kala",
["kcm"] = "Tar Gula",
["kcn"] = "Nubi",
["kco"] = "Kinalakna",
["kcp"] = "Kanga",
["kcq"] = "Kamo",
["kcr"] = "Katla",
["kcs"] = "Koenoem",
["kct"] = "Kaian",
["kcu"] = "Kikami",
["kcv"] = "Kete",
["kcw"] = "Kabwari",
["kcx"] = "Kachama-Ganjule",
["kcy"] = "Korandje",
["kcz"] = "Konongo",
["kda"] = "Worimi",
["kdc"] = "Kutu",
["kdd"] = "Yankunytjatjara",
["kde"] = "Makonde",
["kdf"] = "Mamusi",
["kdg"] = "Seba",
["kdh"] = "Tem",
["kdi"] = "Kumam",
["kdj"] = "Karamojong",
["kdk"] = "Numèè",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "กูย",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "ครีโอลกาบูเวร์ดี",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Eastern Keres",
["kef"] = "Kpessi",
["keg"] = "Tese",
["keh"] = "Keak",
["kei"] = "Kei",
["kej"] = "Kadar",
["kek"] = "Q'eqchi",
["kel"] = "Kela-Yela",
["kem"] = "Kemak",
["ken"] = "Kenyang",
["keo"] = "Kakwa",
["kep"] = "Kaikadi",
["keq"] = "Kamar",
["ker"] = "Kera",
["kes"] = "Kugbo",
["ket"] = "Ket",
["keu"] = "Akebu",
["kev"] = "Kanikkaran",
["kew"] = "Kewa",
["kex"] = "Kukna",
["key"] = "Kupia",
["kez"] = "Kukele",
["kfa"] = "Kodava",
["kfb"] = "Kolami",
["kfc"] = "Konda-Dora",
["kfd"] = "Korra Koraga",
["kfe"] = "Kota (India)",
["kff"] = "Koya",
["kfg"] = "Kudiya",
["kfh"] = "Kurichiya",
["kfi"] = "Kannada Kurumba",
["kfj"] = "Kemiehua",
["kfk"] = "Kinnauri",
["kfl"] = "Kung",
["kfn"] = "Kuk",
["kfo"] = "Koro (West Africa)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "กัจฉ์",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "คองโก",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgn"] = "Karingani",
["kgo"] = "Krongo",
["kgp"] = "Kaingang",
["kgq"] = "Kamoro",
["kgr"] = "Abun",
["kgs"] = "Kumbainggar",
["kgt"] = "Somyev",
["kgu"] = "Kobol",
["kgv"] = "Karas",
["kgw"] = "Karon Dori",
["kgx"] = "Kamaru",
["kgy"] = "Kyerung",
["kha"] = "คาซี",
["khb"] = "ไทลื้อ",
["khc"] = "Tukang Besi North",
["khd"] = "Bädi Kanum",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khh"] = "Kehu",
["khi-kho-pro"] = "Proto-Khoe",
["khi-kun"] = "ǃKung",
["khj"] = "Kuturmi",
["khl"] = "Lusi",
["khn"] = "Khandeshi",
["kho"] = "โคตาน",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "คำตี้",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "เกโกโย",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Eastern Parbate Kham",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "โตฟา",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Northeast Kiwai",
["kix"] = "Khiamniungan Naga",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Coastal Konjo",
["kjd"] = "Southern Kiwai",
["kje"] = "Kisar",
["kjg"] = "ขมุ",
["kjh"] = "คาคัส",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Western Parbate Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "กะเหรี่ยงโปตะวันออก",
["kjq"] = "Western Keres",
["kjr"] = "Kurudu",
["kjs"] = "East Kewa",
["kjt"] = "กะเหรี่ยงโปแพร่",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "คาซัค",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Kalaktang Monpa",
["kkg"] = "Mabaka Valley Kalinga",
["kkh"] = "เขิน",
["kki"] = "Kagulu",
["kkj"] = "Kako",
["kkk"] = "Kokota",
["kkl"] = "Kosarek Yale",
["kkm"] = "Kiong",
["kkn"] = "Kon Keu",
["kko"] = "Karko",
["kkp"] = "Koko-Bera",
["kkq"] = "Kaiku",
["kkr"] = "Kir-Balar",
["kks"] = "Kirfi",
["kkt"] = "Koi",
["kku"] = "Tumi",
["kkv"] = "Kangean",
["kkw"] = "Teke-Kukuya",
["kkx"] = "Kohin",
["kky"] = "Guugu Yimidhirr",
["kkz"] = "Kaska",
["kl"] = "กรีนแลนด์",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "กาลากันแบบตากาเกาลู",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "กาลากันแบบกากัน",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "ลินดู",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "เขมร",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "ต้งใต้",
["kmd"] = "Madukayang Kalinga",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Limos Kalinga",
["kml"] = "Tanudan Kalinga",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "เคิร์ดเหนือ",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Karipúna Creole French",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Khorasani Turkish",
["kn"] = "กันนฑะ",
["kna"] = "Kanakuru",
["knb"] = "Lubuagan Kalinga",
["knd"] = "Konda",
["kne"] = "กันกานาอือ",
["knf"] = "Mankanya",
["kni"] = "Kanufi",
["knj"] = "Akatek",
["knk"] = "Kuranko",
["knl"] = "Keninjal",
["knm"] = "Kanamari",
["kno"] = "Kono (Sierra Leone)",
["knp"] = "Kwanja",
["knq"] = "Kintaq",
["knr"] = "Kaningra",
["kns"] = "Kensiu",
["knt"] = "Katukina",
["knu"] = "Kono (Guinea)",
["knv"] = "Tabo",
["knx"] = "Kendayan",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "เกาหลี",
["ko-ear"] = "เกาหลีใหม่ช่วงต้น",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "กงกัณ",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosraean",
["kot"] = "Lagwan",
["kou"] = "Koke",
["kov"] = "Kudu-Camo",
["kow"] = "Kugama",
["koy"] = "Koyukon",
["koz"] = "Korak",
["kpa"] = "Kutto",
["kpb"] = "Mullu Kurumba",
["kpc"] = "Curripaco",
["kpd"] = "Koba",
["kpe"] = "Kpelle",
["kpf"] = "Komba",
["kpg"] = "Kapingamarangi",
["kph"] = "Kplang",
["kpi"] = "Kofei",
["kpj"] = "Karajá",
["kpk"] = "Kpan",
["kpl"] = "Kpala",
["kpm"] = "เกอฮอ",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Mountain Koiari",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "กาลากัน",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Kotafon Gbe",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Eastern Krahn",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Northern Kissi",
["kqt"] = "Klias River Kadazan",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "กานูรี",
["kra"] = "Kumhali",
["krb"] = "Karkin",
["krc"] = "Karachay-Balkar",
["krd"] = "Kairui-Midiki",
["kre"] = "Panará",
["krf"] = "Koro (Vanuatu)",
["krh"] = "Kurama",
["kri"] = "Krio",
["krj"] = "Kinaray-a",
["krk"] = "Kerek",
["krl"] = "คาเรเลีย",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Proto-Kru",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "กุรุข",
["krv"] = "Kavet",
["krw"] = "Western Krahn",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "แคชเมียร์",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Southern Kalinga",
["ksd"] = "Tolai",
["kse"] = "Kuni",
["ksf"] = "Bafia",
["ksg"] = "Kusaghe",
["ksi"] = "Krisa",
["ksj"] = "Uare",
["ksk"] = "Kansa",
["ksl"] = "Kumalu",
["ksm"] = "Kumba",
["ksn"] = "Kasiguranin",
["kso"] = "Kofa",
["ksp"] = "Kaba",
["ksq"] = "Kwaami",
["ksr"] = "Borong",
["kss"] = "Southern Kissi",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "กะเหรี่ยงสะกอ",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "North Muyu",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Kota Marudu Tinagas",
["kts"] = "South Muyu",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "กะตูตะวันออก",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "เคอร์ดิชดั้งเดิม",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "กะตูตะวันตก",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "คูมุก",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Ktunaxa",
["kuu"] = "Upper Kuskokwim",
["kuv"] = "Kur",
["kuw"] = "Kpagua",
["kux"] = "Kukatja",
["kuy"] = "Kuuku-Ya'u",
["kuz"] = "Kunza",
["kva"] = "Bagvalal",
["kvb"] = "Kubu",
["kvc"] = "Kove",
["kvd"] = "Kui (Indonesia)",
["kve"] = "Kalabakan",
["kvf"] = "Kabalai",
["kvg"] = "Kuni-Boazi",
["kvh"] = "Komodo",
["kvi"] = "Kwang",
["kvj"] = "Psikye",
["kvk"] = "Korean Sign Language",
["kvl"] = "Brek Karen",
["kvm"] = "Kendem",
["kvn"] = "Border Kuna",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Geba Karen",
["kvr"] = "Kerinci",
["kvt"] = "Lahta Karen",
["kvu"] = "Yinbaw Karen",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Yintale Karen",
["kvz"] = "Tsakwambo",
["kw"] = "คอร์นวอลล์",
["kwa"] = "Dâw",
["kwb"] = "Baa",
["kwc"] = "Likwala",
["kwd"] = "Kwaio",
["kwe"] = "Kwerba",
["kwf"] = "Kwara'ae",
["kwg"] = "Sara Kaba Deme",
["kwh"] = "Kowiai",
["kwi"] = "Awa-Cuaiquer",
["kwj"] = "Kwanga",
["kwk"] = "Kwak'wala",
["kwl"] = "Kofyar",
["kwm"] = "Kwambi",
["kwn"] = "Kwangali",
["kwo"] = "Kwomtari",
["kwp"] = "Kodia",
["kwq"] = "Kwak",
["kwr"] = "Kwer",
["kws"] = "Kwese",
["kwt"] = "Kwesten",
["kwu"] = "Kwakum",
["kwv"] = "Sara Kaba Náà",
["kww"] = "Kwinti",
["kwx"] = "Khirwar",
["kwz"] = "Kwadi",
["kxa"] = "Kairiru",
["kxb"] = "Krobu",
["kxc"] = "Konso",
["kxd"] = "มลายูแบบบรูไน",
["kxe"] = "Kakihum",
["kxf"] = "Manumanaw Karen",
["kxh"] = "Karo",
["kxi"] = "Keningau Murut",
["kxj"] = "Kulfa",
["kxk"] = "Zayein Karen",
["kxl"] = "Nepali Kurux",
["kxm"] = "เขมรเหนือ",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Manus Koro",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "คีร์กีซ",
["kya"] = "Kwaya",
["kyb"] = "Butbut Kalinga",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "กาเรา",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Baram Kayan",
["kyt"] = "Kayagar",
["kyu"] = "กะยาตะวันตก",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Western Karaboro",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "กาดาซันชายฝั่ง",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Sugut Dusun",
["kzt"] = "Tambunan Dusun",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "ละติน",
["laa"] = "Lapuyan Subanun",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "ลาดิโน",
["lae"] = "Pattani",
["laf"] = "Lafofa",
["lag"] = "Langi",
["lah"] = "Lahnda",
["lai"] = "Lambya",
["laj"] = "Lango (Uganda)",
["lak"] = "Laka",
["lam"] = "Lamba",
["lan"] = "Laru",
["lap"] = "Kabba-Laka",
["laq"] = "Qabiao",
["lar"] = "Larteh",
["las"] = "Gur Lama",
["lau"] = "Laba",
["law"] = "Lauje",
["lax"] = "Tiwa",
["lay"] = "Lama Bai",
["laz"] = "Aribwatsa",
["lb"] = "ลักเซมเบิร์ก",
["lbb"] = "Label",
["lbc"] = "ลักเกีย",
["lbe"] = "ลัก",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "ลาดัก",
["lbk"] = "Central Bontoc",
["lbl"] = "Libon Bikol",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Northern Lorung",
["lbs"] = "Libyan Sign Language",
["lbt"] = "Lachi",
["lbu"] = "Labu",
["lbv"] = "Lavatbura-Lamusong",
["lbw"] = "Tolaki",
["lbx"] = "Lawangan",
["lby"] = "Lamu-Lamu",
["lbz"] = "Lardil",
["lcc"] = "Legenyem",
["lcd"] = "Lola",
["lce"] = "Loncong",
["lcf"] = "Lubu",
["lch"] = "Luchazi",
["lcl"] = "Lisela",
["lcm"] = "Tungag",
["lcp"] = "เลอเวือะตะวันตก",
["lcq"] = "Luhu",
["lcs"] = "Lisabata-Nuniali",
["lda"] = "Kla",
["ldb"] = "Idun",
["ldd"] = "Luri (Nigeria)",
["ldg"] = "Lenyima",
["ldh"] = "Lamja-Dengsa-Tola",
["ldj"] = "Lemoro",
["ldk"] = "Leelau",
["ldl"] = "Kaan",
["ldm"] = "Landoma",
["ldn"] = "Láadan",
["ldo"] = "Loo",
["ldp"] = "Tso",
["ldq"] = "Lufu",
["lea"] = "Lega-Shabunda",
["leb"] = "Lala-Bisa",
["lec"] = "Leco",
["led"] = "Lendu",
["lee"] = "Lyélé",
["lef"] = "Lelemi",
["leh"] = "Lenje",
["lei"] = "Lemio",
["lej"] = "Lengola",
["lek"] = "Leipon",
["lel"] = "Lele (Congo)",
["lem"] = "Nomaande",
["len"] = "Honduran Lenca",
["leo"] = "Mengisa",
["lep"] = "Lepcha",
["leq"] = "Lembena",
["ler"] = "Lenkau",
["les"] = "Lese",
["let"] = "Lesing-Gelimi",
["leu"] = "Kara (New Guinea)",
["lev"] = "Lamma",
["lew"] = "Ledo Kaili",
["lex"] = "Luang",
["ley"] = "Lemolang",
["lez"] = "เลซกี",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "ลูกันดา",
["lga"] = "Lungga",
["lgb"] = "Laghu",
["lgg"] = "Lugbara",
["lgh"] = "Laghuu",
["lgi"] = "Lengilu",
["lgk"] = "Neverver",
["lgl"] = "Wala",
["lgm"] = "Lega-Mwenga",
["lgn"] = "Opuuo",
["lgq"] = "Logba",
["lgr"] = "Lengo",
["lgs"] = "Guinea-Bissau Sign Language",
["lgt"] = "Pahi",
["lgu"] = "Longgu",
["lgz"] = "Ligenza",
["lha"] = "Laha (Vietnam)",
["lhh"] = "Laha (Indonesia)",
["lhi"] = "Lahu Shi",
["lhl"] = "Lahul Lohar",
["lhn"] = "Lahanan",
["lhp"] = "Lhokpu",
["lhs"] = "Mlahsö",
["lht"] = "Lo-Toga",
["lhu"] = "Lahu",
["li"] = "ลิมเบิร์ก",
["lia"] = "West-Central Limba",
["lib"] = "Likum",
["lic"] = "ไหล",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "ลิมบู",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "ลีกูเรีย",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "ลีสู่",
["liu"] = "Logorik",
["liv"] = "ลีโวเนีย",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "ลาดิน",
["lle"] = "Lele (New Guinea)",
["llf"] = "Hermit",
["llg"] = "Lole",
["llh"] = "Lamu",
["lli"] = "Teke-Laali",
["llj"] = "Ladji-Ladji",
["llk"] = "Lelak",
["lll"] = "Lilau",
["llm"] = "Lasalimu",
["lln"] = "Lele (Chad)",
["llo"] = "Khlor",
["llp"] = "North Efate",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "East Limba",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "South Lembata",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "West Lembata",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "ลอมบาร์ด",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "ลัมโบยา",
["lmz"] = "Lumbee",
["ln"] = "ลิงกาลา",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "South Central Banda",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "ลาว",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "เบอราวัน",
["loe"] = "Saluan",
["lof"] = "Logol",
["log"] = "Logo",
["loh"] = "Narim",
["loi"] = "Lomakka",
["loj"] = "Lou",
["lok"] = "Loko",
["lol"] = "Mongo",
["lom"] = "Loma",
["lon"] = "Malawi Lomwe",
["loo"] = "Lombo",
["lop"] = "Lopa",
["loq"] = "Lobala",
["lor"] = "Téén",
["los"] = "Loniu",
["lot"] = "Lotuko",
["lou"] = "ครีโอลลุยเซียนา",
["lov"] = "Lopi",
["low"] = "Tampias Lobu",
["lox"] = "Loun",
["loz"] = "Lozi",
["lpa"] = "Lelepa",
["lpe"] = "Lepki",
["lpn"] = "Long Phuri Naga",
["lpo"] = "Lipo",
["lpx"] = "Lopit",
["lra"] = "Rara Bakati'",
["lrc"] = "Northern Luri",
["lre"] = "Laurentian",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Southern Lorung",
["lrt"] = "Larantuka Malay",
["lrv"] = "Larëvat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Latvian Sign Language",
["lsm"] = "Saamia",
["lsn"] = "Tibetan Sign Language",
["lso"] = "Laos Sign Language",
["lsp"] = "Panamanian Sign Language",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Trinidad and Tobago Sign Language",
["lsv"] = "Sivia Sign Language",
["lsy"] = "Mauritian Sign Language",
["lt"] = "ลิทัวเนีย",
["ltc"] = "จีนยุคกลาง",
["ltg"] = "ลัตเกล",
["lti"] = "Leti",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["luh"] = "หล่อยแอว๋",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "มีโซ",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Southern Luri",
["lv"] = "ลัตเวีย",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "White Lachi",
["lwl"] = "เลอเวือะตะวันออก",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "ลึงงัม",
["lyn"] = "Luyana",
["lzh"] = "จีนวรรณกรรม",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "ลัซ",
["maa"] = "San Jerónimo Tecóatl Mazatec",
["mab"] = "Yutanduchi Mixtec",
["mad"] = "Madurese",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "มคหะ",
["mai"] = "ไมถิลี",
["maj"] = "Jalapa de Díaz Mazatec",
["mak"] = "มากัซซาร์",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Proto-Atayalic",
["map-bms"] = "Banyumasan",
["map-pro"] = "ออสโตรนีเซียนดั้งเดิม",
["maq"] = "Chiquihuitlán Mazatec",
["mas"] = "มาไซ",
["mat"] = "Matlatzinca",
["mau"] = "Huautla Mazatec",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "North Moluccan Malay",
["maz"] = "Central Mazahua",
["mba"] = "Higaonon",
["mbb"] = "Western Bukidnon Manobo",
["mbc"] = "Macushi",
["mbd"] = "Dibabawon Manobo",
["mbe"] = "Molale",
["mbf"] = "Baba Malay",
["mbh"] = "Mangseng",
["mbi"] = "Ilianen Manobo",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Sarangani Manobo",
["mbt"] = "Matigsalug Manobo",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Sepik Mari",
["mby"] = "Memoni",
["mbz"] = "Amoltepec Mixtec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Itundujia Mixtec",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Coatlán Mixe",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Cameroon Mambila",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "South Watut",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Bura Mabang",
["mdf"] = "มอกชา",
["mdg"] = "Massalat",
["mdh"] = "มากินดาเนา",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Maltese Sign Language",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Santa Lucía Monteverde Mixtec",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Southwestern Tlaxiaco Mixtec",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Central Melanau",
["mem"] = "Mangala",
["men"] = "Mende",
["meo"] = "มลายูแบบเกอดะฮ์",
["mep"] = "Miriwung",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Hassaniya Arabic",
["mez"] = "Menominee",
["mfa"] = "มลายูแบบปัตตานี",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "ครีโอลมอริเชียส",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "North Mofu",
["mfl"] = "Putai",
["mfm"] = "Marghi South",
["mfn"] = "Cross River Mbembe",
["mfo"] = "Mbe",
["mfp"] = "Makassar Malay",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Mexican Sign Language",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "มาลากาซี",
["mga"] = "ไอริชกลาง",
["mgb"] = "Mararit",
["mgc"] = "Morokodo",
["mgd"] = "Moru",
["mge"] = "Mango",
["mgf"] = "Maklew",
["mgg"] = "Mpongmpong",
["mgh"] = "Makhuwa-Meetto",
["mgi"] = "Jili",
["mgj"] = "Abureni",
["mgk"] = "Mawes",
["mgl"] = "Maleu-Kilenge",
["mgm"] = "Mambae",
["mgn"] = "Mbangi",
["mgo"] = "Meta'",
["mgp"] = "Eastern Magar",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mongol",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "มาร์แชลล์",
["mha"] = "Manda (India)",
["mhb"] = "Mahongwe",
["mhc"] = "Mocho",
["mhd"] = "Mbugu",
["mhe"] = "Besisi",
["mhf"] = "Mamaa",
["mhg"] = "Marrgu",
["mhi"] = "Ma'di",
["mhj"] = "Mogholi",
["mhk"] = "Mungaka",
["mhl"] = "Mauwake",
["mhm"] = "Makhuwa-Moniga",
["mhn"] = "โมเชโน",
["mho"] = "Mashi",
["mhp"] = "Balinese Malay",
["mhq"] = "Mandan",
["mhr"] = "Eastern Mari",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesian)",
["mi"] = "มาวรี",
["mia"] = "Miami",
["mib"] = "Atatláhuca Mixtec",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaic",
["mie"] = "Ocotepec Mixtec",
["mif"] = "Mofu-Gudur",
["mig"] = "San Miguel el Grande Mixtec",
["mih"] = "Chayuco Mixtec",
["mii"] = "Chigmecatitlán Mixtec",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Peñoles Mixtec",
["mim"] = "Alacatlatzala Mixtec",
["min"] = "มีนังกาเบา",
["mio"] = "Pinotepa Nacional Mixtec",
["mip"] = "Apasco-Apoala Mixtec",
["miq"] = "Miskito",
["mir"] = "Isthmus Mixe",
["mis-hkl"] = "Kelantan Peranakan Hokkien",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isaurian",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi of Decorse",
["mis-mmn"] = "Mimi of Nachtigal",
["mis-phi"] = "Philistine",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulian",
["mis-tdt"] = "Turdetanian",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Southern Puebla Mixtec",
["miu"] = "Cacaloxtepec Mixtec",
["miw"] = "Akoye",
["mix"] = "Mixtepec Mixtec",
["miy"] = "Ayutla Mixtec",
["miz"] = "Coatzospan Mixtec",
["mjb"] = "Makalero",
["mjc"] = "San Juan Colorado Mixtec",
["mjd"] = "Northwest Maidu",
["mje"] = "Muskum",
["mjg-mgl"] = "Mongghul",
["mjg-mgr"] = "Mangghuer",
["mji"] = "Kim Mun",
["mjj"] = "Mawak",
["mjk"] = "Matukar",
["mjl"] = "Mandeali",
["mjm"] = "Medebur",
["mjn"] = "Mebu",
["mjo"] = "Malankuravan",
["mjp"] = "Malapandaram",
["mjq"] = "Malaryan",
["mjr"] = "Malavedan",
["mjs"] = "Miship",
["mjt"] = "Sawriya Paharia",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Majhi",
["mk"] = "มาซิโดเนีย",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Proto-Aslian",
["mkh-ban-pro"] = "Proto-Bahnaric",
["mkh-kat-pro"] = "Proto-Katuic",
["mkh-khm-pro"] = "ขมุอิกดั้งเดิม",
["mkh-kmr-pro"] = "เขมรดั้งเดิม",
["mkh-mmn"] = "มอญกลาง",
["mkh-mnc-pro"] = "มอญดั้งเดิม",
["mkh-mvi"] = "เวียดนามกลาง",
["mkh-pal-pro"] = "ปะหล่องดั้งเดิม",
["mkh-pea-pro"] = "Proto-Pearic",
["mkh-pkn-pro"] = "Proto-Pakanic",
["mkh-pro"] = "มอญ-เขมรดั้งเดิม",
["mkh-vie-pro"] = "เวียตติกดั้งเดิม",
["mki"] = "Dhatki",
["mkj"] = "โมกิล",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Kupang Malay",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Bay Miwok",
["mkr"] = "Malas",
["mks"] = "Silacayoapan Mixtec",
["mkt"] = "Vamale",
["mku"] = "Konyanka Maninka",
["mkv"] = "Mav̋ea",
["mkx"] = "Cinamiguin Manobo",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "มลยาฬัม",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "มัล",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Malua Bay",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Western Maninkakan",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Michoacán Mazahua",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "North Ambrym",
["mmh"] = "Mehináku",
["mmi"] = "Musar",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Western Xiangxi Miao",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "มองโกเลีย",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "แมนจู",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Eastern Mnong",
["mnh"] = "Mono (Congo)",
["mni"] = "มณีปุระ",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "มนองใต้",
["mnp"] = "หมิ่นเหนือ",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Central Mansi",
["mns-nor"] = "Northern Mansi",
["mns-pro"] = "Proto-Mansi",
["mns-sou"] = "Southern Mansi",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennellese",
["mnw"] = "มอญ",
["mnw-tha"] = "มอญแบบไทย",
["mnx"] = "Manikion",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilian",
["moe"] = "มงตาแญ",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Monimbo",
["moo"] = "Monom",
["mop"] = "Mopan Maya",
["moq"] = "Mor (Papuan)",
["mor"] = "Moro",
["mos"] = "Moore",
["mot"] = "Barí",
["mou"] = "Mogum",
["mov"] = "Mojave",
["mow"] = "Moi (Congo)",
["mox"] = "Molima",
["moy"] = "Shekkacho",
["moz"] = "Mukulu",
["mpa"] = "Mpoto",
["mpb"] = "Mullukmulluk",
["mpc"] = "Mangarayi",
["mpd"] = "Machinere",
["mpe"] = "Majang",
["mpg"] = "Marba",
["mph"] = "Maung",
["mpi"] = "Mpade",
["mpj"] = "Martu Wangka",
["mpk"] = "Mbara (Chad)",
["mpl"] = "Middle Watut",
["mpm"] = "Yosondúa Mixtec",
["mpn"] = "Mindiri",
["mpo"] = "Miu",
["mpp"] = "Migabac",
["mpq"] = "Matís",
["mpr"] = "Vangunu",
["mps"] = "Dadibi",
["mpt"] = "Mian",
["mpu"] = "Makuráp",
["mpv"] = "Mungkip",
["mpw"] = "Mapidian",
["mpx"] = "Misima-Paneati",
["mpy"] = "Mapia",
["mpz"] = "Mpi",
["mqa"] = "Maba",
["mqb"] = "Mbuko",
["mqc"] = "Mangole",
["mqe"] = "Matepi",
["mqf"] = "Momuna",
["mqg"] = "Kota Bangun Kutai Malay",
["mqh"] = "Tlazoyaltepec Mixtec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Rajah Kabunsuwan Manobo",
["mql"] = "Mbelime",
["mqm"] = "South Marquesan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "West Makian",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "มราฐี",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Western Magar",
["mre"] = "Martha's Vineyard Sign Language",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Mara Chin",
["mrj"] = "Western Mari",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlockese",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "North Marquesan",
["mrr"] = "Hill Maria",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangarevan",
["mrw"] = "มาราเนา",
["mrx"] = "Dineor",
["mry"] = "Karaga Mandaya",
["mrz"] = "Marind",
["ms"] = "มาเลเซีย",
["msb"] = "มัสบาเต",
["msc"] = "Sankaran Maninka",
["msd"] = "Yucatec Maya Sign Language",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Sabah Malay",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Agusan Manobo",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Mongolian Sign Language",
["mss"] = "West Masela",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "มอลตา",
["mta"] = "Cotabato Manobo",
["mtb"] = "Anyin Morofo",
["mtc"] = "Munit",
["mtd"] = "Mualang",
["mte"] = "Alu",
["mtf"] = "Murik (New Guinea)",
["mtg"] = "Una",
["mth"] = "Munggui",
["mti"] = "Maiwa (New Guinea)",
["mtj"] = "Moskona",
["mtk"] = "Mbe'",
["mtl"] = "Montol",
["mtm"] = "Mator",
["mtn"] = "Matagalpa",
["mto"] = "Totontepec Mixe",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "เหมื่อง",
["mtr"] = "เมวาร์",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Tututepec Mixtec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Tidaá Mixtec",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Mednyj Aleut",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "มูซี",
["muj"] = "Mabire",
["mul"] = "ร่วม",
["mum"] = "Maiwala",
["mun-pro"] = "มุนดาดั้งเดิม",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Eastern Xiangxi Miao",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Western Muria",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Yucuañe Mixtec",
["mvh"] = "Mire",
["mvi"] = "มิยาโกะ",
["mvk"] = "Mekmek",
["mvl"] = "Mbara (Australia)",
["mvm"] = "Muya",
["mvn"] = "Minaveha",
["mvo"] = "Marovo",
["mvp"] = "Duri",
["mvq"] = "Moere",
["mvr"] = "Marau",
["mvs"] = "Massep",
["mvt"] = "Mpotovoro",
["mvu"] = "Marfa",
["mvv"] = "Tagal Murut",
["mvw"] = "Machinga",
["mvx"] = "Meoswar",
["mvy"] = "Indus Kohistani",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Kita Maninkakan",
["mwl"] = "มีรังดา",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "มาร์วาร์",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "ม้งขาว",
["mwz"] = "Moingi",
["mxa"] = "Northwest Oaxaca Mixtec",
["mxb"] = "Tezoatlán Mixtec",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarabic",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Tlahuitoltepec Mixe",
["mxq"] = "Juquila Mixe",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Huitepec Mixtec",
["mxt"] = "Jamiltepec Mixtec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Metlatónoc Mixtec",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Southeastern Nochixtlán Mixtec",
["mxz"] = "Central Masela",
["my"] = "พม่า",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara Senoufo",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "มายันดั้งเดิม",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "เอร์เซีย",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Classical Mandaic",
["mza"] = "Santa María Zacatepec Mixtec",
["mzb"] = "Northern Saharan Berber",
["mzc"] = "Madagascar Sign Language",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Monastic Sign Language",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Ixcatlán Mazatec",
["mzj"] = "Manya",
["mzk"] = "Nigeria Mambila",
["mzl"] = "Mazatlán Mixe",
["mzm"] = "Mumuye",
["mzn"] = "มอแซนแดรอน",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "ครีโอลมาเก๊า",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Mozambican Sign Language",
["mzz"] = "Maiadomu",
["na"] = "นาอูรู",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Naga Pidgin",
["nah"] = "นาวัตล์",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Proto-Chumash",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Proto-Chinookan",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Proto-Kalapuyan",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Proto-Maidun",
["nai-miz-pro"] = "Proto-Mixe-Zoque",
["nai-mus-pro"] = "Proto-Muskogean",
["nai-nao"] = "Naolan",
["nai-nrs"] = "New River Shasta",
["nai-okw"] = "Okwanuchu",
["nai-per"] = "Pericú",
["nai-pic"] = "Picuris",
["nai-plp-pro"] = "Proto-Plateau Penutian",
["nai-pom-pro"] = "Proto-Pomo",
["nai-qng"] = "Quinigua",
["nai-sca-pro"] = "Proto-Siouan-Catawban",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Salvadoran Lenca",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Proto-Totozoquean",
["nai-tsi-pro"] = "Proto-Tsimshianic",
["nai-utn-pro"] = "Proto-Utian",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Western Jicaque",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "หมิ่นใต้",
["nan-dat"] = "Datian Min",
["nan-hbl"] = "ฮกเกี้ยน",
["nan-hlh"] = "Hailufeng Min",
["nan-lnx"] = "Longyan Min",
["nan-tws"] = "แต้จิ๋ว",
["nan-zhe"] = "Zhenan Min",
["nan-zsh"] = "Sanxiang Min",
["nao"] = "Naaba",
["nap"] = "นาโปลี",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Coatepec Nahuatl",
["nb"] = "นอร์เวย์แบบบุ๊กมอล",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Konyak Naga",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Mao Naga",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Namibian Sign Language",
["nbt"] = "Na",
["nbu"] = "Rongmei Naga",
["nbv"] = "Ngamambo",
["nbw"] = "Southern Ngbandi",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "นิโคบาร์กลาง",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Central Huasteca Nahuatl",
["nci"] = "นาวัตล์คลาสสิก",
["ncj"] = "Northern Puebla Nahuatl",
["nck"] = "Nakara",
["ncl"] = "Michoacán Nahuatl",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Nicaraguan Sign Language",
["nct"] = "Chothe Naga",
["ncu"] = "Chumburung",
["ncx"] = "Central Puebla Nahuatl",
["ncz"] = "Natchez",
["nd"] = "Northern Ndebele",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvian",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "เยอรมันต่ำ",
["nds-de"] = "เยอรมันต่ำแบบเยอรมนี",
["nds-nl"] = "Dutch Low Saxon",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "เนปาล",
["nea"] = "Eastern Ngad'a",
["neb"] = "Toura",
["nec"] = "Nedebang",
["ned"] = "Nde-Gbite",
["nee"] = "Kumak",
["nef"] = "Nefamese",
["neg"] = "Negidal",
["neh"] = "Nyenkha",
["nej"] = "Neko",
["nek"] = "Neku",
["nem"] = "Nemi",
["nen"] = "Nengone",
["neo"] = "Ná-Meo",
["neq"] = "North Central Mixe",
["ner"] = "Yahadian",
["nes"] = "Bhoti Kinnauri",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "เนวาร์",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Northern Ngbandi",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Central African Republic)",
["nge"] = "Ngemba",
["ngf-pro"] = "Proto-Trans-New Guinea",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Ngatik Men's Creole",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Guerrero Nahuatl",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Tabasco Nahuatl",
["nhd"] = "Chiripá",
["nhe"] = "Eastern Huasteca Nahuatl",
["nhf"] = "Nhuwala",
["nhg"] = "Tetelcingo Nahuatl",
["nhh"] = "Nahari",
["nhi"] = "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl",
["nhk"] = "Cosoleacaque Nahuatl",
["nhm"] = "Morelos Nahuatl",
["nhn"] = "นาวัตล์ตอนกลาง",
["nho"] = "Takuu",
["nhp"] = "Pajapan Nahuatl",
["nhq"] = "Huaxcaleca Nahuatl",
["nhr"] = "Naro",
["nht"] = "Ometepec Nahuatl",
["nhu"] = "Noone",
["nhv"] = "Temascaltepec Nahuatl",
["nhw"] = "Western Huasteca Nahuatl",
["nhx"] = "Mecayapan Nahuatl",
["nhy"] = "Northern Oaxaca Nahuatl",
["nhz"] = "Santa María La Alta Nahuatl",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "เบนูเอ-คองโกดั้งเดิม",
["nic-bod-pro"] = "แบนทอยด์ดั้งเดิม",
["nic-eov-pro"] = "Proto-Eastern Oti-Volta",
["nic-gns-pro"] = "Proto-Gurunsi",
["nic-grf-pro"] = "Proto-Grassfields",
["nic-gur-pro"] = "กูร์ดั้งเดิม",
["nic-jkn-pro"] = "Proto-Jukunoid",
["nic-lcr-pro"] = "Proto-Lower Cross River",
["nic-ogo-pro"] = "Proto-Ogoni",
["nic-ovo-pro"] = "Proto-Oti-Volta",
["nic-plt-pro"] = "Proto-Plateau",
["nic-pro"] = "ไนเจอร์-คองโกดั้งเดิม",
["nic-ubg-pro"] = "Proto-Ubangian",
["nic-ucr-pro"] = "Proto-Upper Cross River",
["nic-vco-pro"] = "วอลตา-คองโกดั้งเดิม",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Southern Nicobarese",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Southeastern Kolami",
["niu"] = "นีวเว",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Lotha Naga",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Liangmai Naga",
["njo"] = "Ao",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Ndyuka-Trio Pidgin",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Khoibu Naga",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Inpui Naga",
["nkg"] = "Nekgini",
["nkh"] = "Khezha Naga",
["nki"] = "Thangal Naga",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "North Asmat",
["nkt"] = "Nyika",
["nku"] = "Bouna Kulango",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "ดัตช์",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "East Nyala",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Ninia Yali",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngul",
["nlq"] = "Lao Naga",
["nlu"] = "Nchumbulu",
["nlv"] = "Orizaba Nahuatl",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Maram Naga",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Mzieme Naga",
["nmf"] = "Tangkhul Naga",
["nmg"] = "Kwasio",
["nmh"] = "Monsang Naga",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Central African Republic)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Moyon Naga",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Northeast Maidu",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "นอร์เวย์แบบนือนอสก์",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "West Ambae",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Maring Naga",
["nnh"] = "Ngiemboon",
["nni"] = "North Nuaulu",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Northern Rengma Naga",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Southern Nuni",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "นอร์เวย์",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "คำเมือง",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["nom"] = "Nocamán",
["non"] = "นอร์สเก่า",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Eastern Nisu",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "โนเวียล",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Southeastern Puebla Nahuatl",
["npn"] = "Mondropolon",
["npo"] = "Pochuri Naga",
["nps"] = "Nipsan",
["npu"] = "Puimei Naga",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Kyan-Karyaw Naga",
["nqy"] = "Akyaung Ari",
["nr"] = "Southern Ndebele",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Southern Rengma Naga",
["nrf"] = "นอร์มัน",
["nrg"] = "Narango",
["nri"] = "Chokri Naga",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "North Picene",
["nrr"] = "Norra",
["nrt"] = "Northern Kalapuya",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Sangtam Naga",
["nsb"] = "Lower Nossob",
["nsc"] = "Nshi",
["nsd"] = "Southern Nisu",
["nse"] = "Nsenga",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Nigerian Sign Language",
["nsk"] = "Naskapi",
["nsl"] = "Norwegian Sign Language",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "ซูทูเหนือ",
["nsp"] = "มือเนปาล",
["nsq"] = "Northern Sierra Miwok",
["nsr"] = "Maritime Sign Language",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Sierra Negra Nahuatl",
["nsv"] = "Southwestern Nisu",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Northern Tidung",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Northern Tepehuan",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "นูเบียนดั้งเดิม",
["nuc"] = "Nukuini",
["nud"] = "Ngala",
["nue"] = "Ngundu",
["nuf"] = "Nusu",
["nug"] = "Nungali",
["nuh"] = "Ndunda",
["nui"] = "Ngumbi",
["nuj"] = "Nyole (Uganda)",
["nuk"] = "Nootka",
["nul"] = "Nusa Laut",
["num"] = "Niuafo'ou",
["nun"] = "Anong",
["nuo"] = "หง่วน",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "นุง",
["nuu"] = "Ngbundu",
["nuv"] = "Northern Nuni",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Tlamacazapa Nahuatl",
["nv"] = "นาวาโฮ",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "เนวาร์คลาสสิก",
["nwe"] = "Ngwe",
["nwi"] = "Southwest Tanna",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "เนวาร์กลาง",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "South Nuaulu",
["nxm"] = "Numidian",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "เจวา",
["nyb"] = "Nyangbo",
["nyc"] = "Nyanga-li",
["nyd"] = "Nyole (Kenya)",
["nye"] = "Nyengo",
["nyf"] = "Giryama",
["nyg"] = "Nyindu",
["nyh"] = "Nyigina",
["nyi"] = "Nyimang",
["nyj"] = "Nyanga (Congo)",
["nyk"] = "Nyaneka",
["nyl"] = "Nyeu",
["nym"] = "Nyamwezi",
["nyn"] = "Nyankole",
["nyo"] = "Nyoro",
["nyp"] = "Nyang'i",
["nys"] = "Nyunga",
["nyt"] = "Nyawaygi",
["nyu"] = "Nyungwe",
["nyv"] = "Nyulnyul",
["nyw"] = "ญ้อ",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Tigon Mbembe",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Zeme Naga",
["nzs"] = "New Zealand Sign Language",
["nzu"] = "Central Teke",
["nzy"] = "Nzakambay",
["nzz"] = "Nanga Dama Dogon",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oak"] = "Noakhali",
["oav"] = "อะวาร์เก่า",
["obi"] = "Obispeño",
["obk"] = "Southern Bontoc",
["obl"] = "Oblo",
["obm"] = "โมอับ",
["obo"] = "Obo Manobo",
["obr"] = "พม่าเก่า",
["obt"] = "เบรอตงเก่า",
["obu"] = "Obulom",
["oc"] = "อุตซิตา",
["oca"] = "Ocaina",
["och"] = "จีนเก่า",
["oco"] = "คอร์นวอลล์เก่า",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "ดัตช์เก่า",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "ฟรีเชียเก่า",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "จอร์เจียเก่า",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "ฮังการีเก่า",
["oia"] = "Oirata",
["oin"] = "Inebu One",
["oj"] = "โอจิบเว",
["ojb"] = "Northwestern Ojibwa",
["ojc"] = "Central Ojibwa",
["ojg"] = "Eastern Ojibwa",
["ojp"] = "ญี่ปุ่นเก่า",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Ontong Java",
["ojw"] = "Western Ojibwa",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Southwestern Edo)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Old Kentish Sign Language",
["okm"] = "เกาหลีกลาง",
["okn"] = "โอกิโนเอราบุ",
["oko"] = "เกาหลีเก่า",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Northwestern Edo)",
["okz"] = "เขมรเก่า",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "ลิววี",
["olr"] = "Olrat",
["olt"] = "ลิทัวเนียเก่า",
["olu"] = "Kuvale",
["om"] = "ออโรโม",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "ไมนอส",
["omo"] = "Utarmbung",
["omp"] = "มณีปุระเก่า",
["omq-cha-pro"] = "Proto-Chatino",
["omq-maz-pro"] = "Proto-Mazatec",
["omq-mix-pro"] = "Proto-Mixtecan",
["omq-mxt-pro"] = "Proto-Mixtec",
["omq-otp-pro"] = "Proto-Oto-Pamean",
["omq-pro"] = "Proto-Oto-Manguean",
["omq-sjq"] = "San Juan Quiahije Chatino",
["omq-tel"] = "Teposcolula Mixtec",
["omq-teo"] = "Teojomulco Chatino",
["omq-tri-pro"] = "Proto-Triqui",
["omq-zap-pro"] = "Proto-Zapotecan",
["omq-zpc-pro"] = "Proto-Zapotec",
["omr"] = "มราฐีเก่า",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Proto-Aroid",
["omv-diz-pro"] = "Proto-Dizoid",
["omv-pro"] = "Proto-Omotic",
["omw"] = "South Tairora",
["omx"] = "มอญเก่า",
["ona"] = "Selk'nam",
["onb"] = "เบ",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "Northern One",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "นิวเบียเก่า",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "โอริยา",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ort"] = "Adivasi Odia",
["oru"] = "Ormuri",
["orv"] = "สลาวิกตะวันออกเก่า",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "ออสซีเซีย",
["osa"] = "Osage",
["osc"] = "Oscan",
["osi"] = "โอซิง",
["osn"] = "Old Sundanese",
["oso"] = "Ososo",
["osp"] = "สเปนเก่า",
["ost"] = "Osatu",
["osu"] = "Southern One",
["osx"] = "แซกซันเก่า",
["ota"] = "ตุรกีแบบออตโตมัน",
["otb"] = "ทิเบตเก่า",
["otd"] = "Ot Danum",
["ote"] = "Mezquital Otomi",
["oti"] = "Oti",
["otk"] = "เตอร์กิกเก่า",
["otl"] = "Tilapa Otomi",
["otm"] = "Eastern Highland Otomi",
["otn"] = "Tenango Otomi",
["oto-otm-pro"] = "Proto-Otomi",
["oto-pro"] = "Proto-Otomian",
["otq"] = "Querétaro Otomi",
["otr"] = "Otoro",
["ots"] = "Estado de México Otomi",
["ott"] = "Temoaya Otomi",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Texcatepec Otomi",
["oty"] = "ทมิฬเก่า",
["otz"] = "Ixtenco Otomi",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "อุยกูร์เก่า",
["oum"] = "Ouma",
["ovd"] = "แอลฟ์ดาเลิน",
["owi"] = "Owiniga",
["owl"] = "เวลส์เก่า",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "ปัญจาบ",
["paa-bin-pro"] = "Proto-Binanderean",
["paa-kom"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-nha-pro"] = "Proto-North Halmahera",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "ปาโกะห์",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "เปอร์เซียกลาง",
["pam"] = "กาปัมปางัน",
["pao"] = "Northern Paiute",
["pap"] = "ปาเปียเมนตู",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pau"] = "ปาเลา",
["pav"] = "Wari'",
["paw"] = "Pawnee",
["pax"] = "Pankararé",
["pay"] = "Pech",
["paz"] = "Pankararú",
["pbb"] = "Páez",
["pbc"] = "Patamona",
["pbe"] = "Mezontla Popoloca",
["pbf"] = "Coyotepec Popoloca",
["pbg"] = "Paraujano",
["pbh"] = "Panare",
["pbi"] = "Podoko",
["pbl"] = "Mak (Nigeria)",
["pbm"] = "Puebla Mazatec",
["pbn"] = "Kpasam",
["pbo"] = "Papel",
["pbp"] = "Badyara",
["pbr"] = "Pangwa",
["pbs"] = "Central Pame",
["pbv"] = "ปนัร",
["pby"] = "Pyu (New Guinea)",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "ปู้อี",
["pcd"] = "ปีการ์",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Nigerian Pidgin",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "เยอรมันแบบเพนซิลเวเนีย",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "เพลาท์ดิทช์",
["pdu"] = "กะยัน",
["pea"] = "Peranakan Indonesian",
["peb"] = "Eastern Pomo",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Northeastern Pomo",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Northern Pomo",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "เปอร์เซียเก่า",
["pep"] = "Kunja",
["peq"] = "Southern Pomo",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Eastern Penan",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Juba Arabic",
["pgd"] = "คานธาระ",
["pgg"] = "ปังควาฬฺ",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Papua New Guinean Sign Language",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Dinapigue Agta",
["phi-kal-pro"] = "คาลาเมียนดั้งเดิม",
["phi-nag"] = "Nagtipunan Agta",
["phi-pro"] = "ฟิลิปปินส์ดั้งเดิม",
["phk"] = "พ่าเก",
["phl"] = "Palula",
["phm"] = "Phimbi",
["phn"] = "ฟินิเชีย",
["pho"] = "ผู้น้อย",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "ผู้ไท",
["phu"] = "พวน",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "บาลี",
["pia"] = "Pima Bajo",
["pib"] = "Yine",
["pic"] = "Pinji",
["pid"] = "Piaroa",
["pie"] = "Piro",
["pif"] = "Pingelapese",
["pig"] = "Pisabo",
["pih"] = "Pitcairn-Norfolk",
["pii"] = "Pini",
["pij"] = "Pijao",
["pil"] = "Yom",
["pim"] = "Powhatan",
["pin"] = "Piame",
["pio"] = "Piapoco",
["pip"] = "Pero",
["pir"] = "Piratapuyo",
["pis"] = "Pijin",
["pit"] = "Pitta-Pitta",
["piu"] = "Pintupi-Luritja",
["piv"] = "Pileni",
["piw"] = "Pimbwe",
["pix"] = "Piu",
["piy"] = "Piya-Kwonci",
["piz"] = "Pije",
["pjt"] = "Pitjantjatjara",
["pkb"] = "Kipfokomo",
["pkc"] = "แพ็กเจ",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "ปูกาปูกา",
["pkr"] = "Attapady Kurumba",
["pks"] = "Pakistan Sign Language",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "โปแลนด์",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "ปาลาวาโนตอนกลาง",
["ple"] = "Palu'e",
["plg"] = "Pilagá",
["plh"] = "Paulohi",
["plj"] = "Polci",
["plk"] = "Kohistani Shina",
["pll"] = "Shwe Palaung",
["pln"] = "Palenquero",
["plo"] = "Oluta Popoluca",
["plq"] = "Palaic",
["plr"] = "Palaka Senoufo",
["pls"] = "San Marcos Tlalcoyalco Popoloca",
["plu"] = "Palikur",
["plv"] = "ปาลาวาโนตะวันตกเฉียงใต้",
["plw"] = "ปาลาวาโนแบบบรูกส์พอยต์",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paamese",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamèi",
["pmf"] = "Pamona",
["pmi"] = "Northern Pumi",
["pmj"] = "Southern Pumi",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Northern Pame",
["pmr"] = "Paynamar",
["pms"] = "ปีเยมอนเต",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Western Penan",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaka",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (West Africa)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Pontic Greek",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Central Africa)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Southeastern Pomo",
["pon"] = "Pohnpeian",
["poo"] = "Central Pomo",
["pop"] = "Pwapwâ",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "ครีโอลกินี-บิสเซา",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabian",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Proto-Bungku-Tolaki",
["poz-cet-pro"] = "มาลาโย-พอลินีเชียนตอนกลาง-ตะวันออกดั้งเดิม",
["poz-hce-pro"] = "Proto-Halmahera-Cenderawasih",
["poz-lgx-pro"] = "ลัมปุงกิกดั้งเดิม",
["poz-mcm-pro"] = "มาลาโย-จามิกดั้งเดิม",
["poz-mic-pro"] = "ไมโครนีเซียนดั้งเดิม",
["poz-mly-pro"] = "มาเลย์อิกดั้งเดิม",
["poz-msa-pro"] = "มาลาโย-ซุมบาวันดั้งเดิม",
["poz-oce-pro"] = "โอเชียนิกดั้งเดิม",
["poz-pep-pro"] = "พอลินีเชียนตะวันออกดั้งเดิม",
["poz-pnp-pro"] = "นิวเคลียร์พอลินีเชียนดั้งเดิม",
["poz-pol-pro"] = "พอลินีเชียนดั้งเดิม",
["poz-pro"] = "มาลาโย-พอลินีเชียนดั้งเดิม",
["poz-sml"] = "Sarawak Malay",
["poz-ssw-pro"] = "ซูลาเวซีใต้ดั้งเดิม",
["poz-swa-pro"] = "ซาราวักเหนือดั้งเดิม",
["poz-ter"] = "มลายูแบบตรังกานู",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "ปีปิล",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "มาลาโย-พอลินีเชียนตะวันออกดั้งเดิม",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "ปรากฤต",
["pra-niy"] = "Niya Prakrit",
["prc"] = "Parachi",
["pre"] = "Principense",
["prf"] = "Paranan",
["prg"] = "Old Prussian",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Peruvian Sign Language",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "อุตซิตาเก่า",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Providencia Sign Language",
["ps"] = "ปาทาน",
["psa"] = "Asue Awyu",
["psc"] = "Persian Sign Language",
["psd"] = "Plains Indian Sign Language",
["pse"] = "มลายูตอนกลาง",
["psg"] = "Penang Sign Language",
["psh"] = "Southwest Pashayi",
["psi"] = "Southeast Pashayi",
["psl"] = "Puerto Rican Sign Language",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Polish Sign Language",
["psp"] = "Philippine Sign Language",
["psq"] = "Pasi",
["psr"] = "Portuguese Sign Language",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "โปรตุเกส",
["pta"] = "Pai Tavytera",
["pth"] = "Pataxó Hã-Ha-Hãe",
["pti"] = "Pintiini",
["ptn"] = "Patani",
["pto"] = "Zo'é",
["ptp"] = "Patep",
["ptq"] = "Pattapu",
["ptr"] = "Piamatsina",
["ptt"] = "Enrekang",
["ptu"] = "Bambam",
["ptv"] = "Port Vato",
["ptw"] = "Pentlatch",
["pty"] = "Pathiya",
["pua"] = "Purepecha",
["pub"] = "Purum",
["puc"] = "Punan Merap",
["pud"] = "Punan Aput",
["pue"] = "Puelche",
["puf"] = "Punan Merah",
["pug"] = "Phuie",
["pui"] = "Puinave",
["puj"] = "Punan Tubu",
["pum"] = "Puma",
["puo"] = "Puoc",
["pup"] = "Pulabu",
["puq"] = "Puquina",
["pur"] = "Puruborá",
["put"] = "Putoh",
["puu"] = "Punu",
["puw"] = "Puluwat",
["pux"] = "Puare",
["puy"] = "Purisimeño",
["pwa"] = "Pawaia",
["pwb"] = "Panawa",
["pwg"] = "Gapapaiwa",
["pwi"] = "Patwin",
["pwm"] = "Molbog",
["pwn"] = "ไปวัน",
["pwo"] = "กะเหรี่ยงโปตะวันตก",
["pwr"] = "Powari",
["pww"] = "กะเหรี่ยงโปเหนือ",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Paraguayan Sign Language",
["pyu"] = "Puyuma",
["pyx"] = "ปยู",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "เกรตอันดามันนีสดั้งเดิม",
["qfa-bet-pro"] = "เบ-ไทดั้งเดิม",
["qfa-cka-pro"] = "Proto-Chukotko-Kamchatkan",
["qfa-hur-pro"] = "Proto-Hurro-Urartian",
["qfa-kad-pro"] = "Proto-Kadu",
["qfa-kms-pro"] = "Proto-Kam-Sui",
["qfa-kor-pro"] = "เกาหลีดั้งเดิม",
["qfa-kra-pro"] = "ขร้าดั้งเดิม",
["qfa-lic-pro"] = "ไหลดั้งเดิม",
["qfa-onb-pro"] = "เบดั้งเดิม",
["qfa-ong-pro"] = "Proto-Ongan",
["qfa-tak-pro"] = "ขร้า-ไทดั้งเดิม",
["qfa-yen-pro"] = "Proto-Yeniseian",
["qfa-yuk-pro"] = "Proto-Yukaghir",
["qu"] = "เกชัว",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "เกชัวคลาสสิก",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "เกชวนดั้งเดิม",
["qwm"] = "คูมาน",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "เควนยา",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Western Meohang",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "ราปานูอี",
["raq"] = "Saam",
["rar"] = "ราโรโตงา",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "เรอหวั่ง",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Northern Bontoc",
["rbl"] = "Miraya Bikol",
["rcf"] = "Réunion Creole French",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Rejang Kayan",
["reg"] = "Kara (Tanzania)",
["rei"] = "Reli",
["rej"] = "Rejang",
["rel"] = "Rendille",
["rem"] = "Remo",
["ren"] = "Rengao",
["rer"] = "Rer Bare",
["res"] = "Reshe",
["ret"] = "Retta",
["rey"] = "Reyesano",
["rga"] = "Roria",
["rge"] = "Romano-Greek",
["rgk"] = "Rangkas",
["rgn"] = "โรมัญญา",
["rgr"] = "Resígaro",
["rgs"] = "Southern Roglai",
["rgu"] = "Ringgou",
["rhg"] = "โรฮีนจา",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "ริฟ",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "ราชพังสี",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "ยะไข่",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "โรมานช์",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Carpathian Romani",
["rmd"] = "Traveller Danish",
["rme"] = "Angloromani",
["rmf"] = "Kalo Finnish Romani",
["rmg"] = "Traveller Norwegian",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Baltic Romani",
["rmm"] = "Roma",
["rmn"] = "Balkan Romani",
["rmo"] = "Sinte Romani",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Romanian Sign Language",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Welsh Romani",
["rmx"] = "Romam",
["rmy"] = "Vlax Romani",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "โรมาเนีย",
["roa-ang"] = "Angevin",
["roa-bbn"] = "บูร์บอแน-แบรีชง",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Italic of Basilicata",
["roa-gis"] = "Gallo-Italic of Sicily",
["roa-leo"] = "เลออน",
["roa-lor"] = "Lorrain",
["roa-oca"] = "กาตาลาเก่า",
["roa-ole"] = "เลออนเก่า",
["roa-ona"] = "Old Navarro-Aragonese",
["roa-opt"] = "กาลิเซีย-โปรตุเกสเก่า",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Cacgia Roglai",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Northern Roglai",
["rol"] = "Romblomanon",
["rom"] = "โรมานี",
["roo"] = "Rotokas",
["rop"] = "Australian Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbian",
["rsk"] = "รูซินแบบพันโนเนีย",
["rsl"] = "มือรัสเซีย",
["rsm"] = "Miriwoong Sign Language",
["rsn"] = "Rwandan Sign Language",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuman",
["rtw"] = "Rathawi",
["ru"] = "รัสเซีย",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "รูซินแบบคาร์พาเทีย",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romanian",
["rup"] = "Aromanian",
["ruq"] = "Megleno-Romanian",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "รวันดา-รุนดี",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "อามามิโอชิมะเหนือ",
["rys"] = "ยาเอยามะ",
["ryu"] = "โอกินาวะ",
["rzh"] = "Razihi",
["sa"] = "สันสกฤต",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "ซาคา",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Proto-Boran",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Proto-Cariban",
["sai-cat"] = "Catacao",
["sai-cer-pro"] = "Proto-Cerrado",
["sai-chi"] = "Chirino",
["sai-chn"] = "Chaná",
["sai-chp"] = "Chapacura",
["sai-chr"] = "Charrua",
["sai-chu"] = "Churuya",
["sai-cje-pro"] = "Proto-Central Jê",
["sai-cmg"] = "Comechingon",
["sai-cno"] = "Chono",
["sai-cnr"] = "Cañari",
["sai-coe"] = "Coeruna",
["sai-col"] = "Colán",
["sai-cop"] = "Copallén",
["sai-crd"] = "Coroado Puri",
["sai-ctq"] = "Catuquinaru",
["sai-cul"] = "Culli",
["sai-cva"] = "Cueva",
["sai-esm"] = "Esmeralda",
["sai-ewa"] = "Ewarhuyana",
["sai-gam"] = "Gamela",
["sai-gay"] = "Gayón",
["sai-gmo"] = "Guamo",
["sai-gua"] = "Guachí",
["sai-gue"] = "Güenoa",
["sai-hau"] = "Haush",
["sai-jee-pro"] = "Proto-Jê",
["sai-jko"] = "Jeikó",
["sai-jrj"] = "Jirajara",
["sai-kat"] = "Katembri",
["sai-mal"] = "Malalí",
["sai-mar"] = "Maratino",
["sai-mat"] = "Matanawi",
["sai-mcn"] = "Mocana",
["sai-men"] = "Menien",
["sai-mil"] = "Millcayac",
["sai-mlb"] = "Malibu",
["sai-msk"] = "Masakará",
["sai-muc"] = "Mucuchí",
["sai-mue"] = "Muellama",
["sai-muz"] = "Muzo",
["sai-mys"] = "Maynas",
["sai-nat"] = "Natú",
["sai-nje-pro"] = "Proto-Northern Jê",
["sai-opo"] = "Opón",
["sai-oto"] = "Otomaco",
["sai-pal"] = "Palta",
["sai-pam"] = "Pamigua",
["sai-par"] = "Paratió",
["sai-peb"] = "Peba",
["sai-pnz"] = "Panzaleo",
["sai-prh"] = "Puruhá",
["sai-ptg"] = "Patagón",
["sai-pur"] = "Purukotó",
["sai-pyg"] = "Payaguá",
["sai-pyk"] = "Pykobjê",
["sai-qmb"] = "Quimbaya",
["sai-qtm"] = "Quitemo",
["sai-rab"] = "Rabona",
["sai-ram"] = "Ramanos",
["sai-sac"] = "Sácata",
["sai-san"] = "Sanaviron",
["sai-sap"] = "Sapará",
["sai-sec"] = "Sechura",
["sai-sin"] = "Sinúfana",
["sai-sje-pro"] = "Proto-Southern Jê",
["sai-tab"] = "Tabancale",
["sai-tal"] = "Tallán",
["sai-tap"] = "Tapayuna",
["sai-tar-pro"] = "Proto-Taranoan",
["sai-teu"] = "Teushen",
["sai-tim"] = "Timote",
["sai-tpr"] = "Taparita",
["sai-trr"] = "Tarairiú",
["sai-wai"] = "Waitaká",
["sai-way"] = "Wayumara",
["sai-wit-pro"] = "Proto-Witotoan",
["sai-wnm"] = "Wanham",
["sai-xoc"] = "Xocó",
["sai-yao"] = "Yao (South America)",
["sai-yar"] = "Yarumá",
["sai-yri"] = "Yuri",
["sai-yup"] = "Yupua",
["sai-yur"] = "Yurumanguí",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal-pro"] = "Proto-Salish",
["sam"] = "Samaritan Aramaic",
["sao"] = "Sause",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sat"] = "สันถาลี",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Southern Samo",
["sbe"] = "Saliba (New Guinea)",
["sbf"] = "Shabo",
["sbg"] = "Seget",
["sbh"] = "Sori-Harengan",
["sbi"] = "Seti",
["sbj"] = "Surbakhal",
["sbk"] = "Safwa",
["sbl"] = "Botolan Sambal",
["sbm"] = "Sagala",
["sbn"] = "Sindhi Bhil",
["sbo"] = "Sabüm",
["sbp"] = "Sangu (Tanzania)",
["sbq"] = "Sileibi",
["sbr"] = "Sembakung Murut",
["sbs"] = "Subiya",
["sbt"] = "Kimki",
["sbu"] = "Stod Bhoti",
["sbv"] = "Sabine",
["sbw"] = "Simba",
["sbx"] = "Seberuang",
["sby"] = "Soli",
["sbz"] = "Sara Kaba",
["sc"] = "ซาร์ดิเนีย",
["scb"] = "Chut",
["sce"] = "ตงเซียง",
["scf"] = "San Miguel Creole French",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Sri Lankan Creole Malay",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "ซิซิลี",
["sco"] = "สกอต",
["scp"] = "Yolmo",
["scq"] = "สะโอจ",
["scs"] = "North Slavey",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["scz"] = "Shetland",
["sd"] = "สินธ์",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "ซัสซารี",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Southern Kurdish",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallurese",
["sdo"] = "Bukar-Sadung Bidayuh",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "เบอร์เบอร์แบบตูนีเซีย",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Proto-Daju",
["sdv-eje-pro"] = "Proto-Eastern Jebel",
["sdv-nil-pro"] = "Proto-Nilotic",
["sdv-nyi-pro"] = "Proto-Nyima",
["sdv-tmn-pro"] = "Proto-Taman",
["sdx"] = "Sibu Melanau",
["se"] = "ซามีเหนือ",
["sea"] = "เซอไม",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Northern Selkup",
["sel-pro"] = "Proto-Selkup",
["sel-sou"] = "Southern Selkup",
["sem-amm"] = "อัมโมน",
["sem-amo"] = "Amorite",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadanitic",
["sem-dum"] = "Dumaitic",
["sem-has"] = "Hasaitic",
["sem-his"] = "Hismaic",
["sem-mhr"] = "Muher",
["sem-pro"] = "เซมิติกดั้งเดิม",
["sem-saf"] = "Safaitic",
["sem-sam"] = "Samalian",
["sem-srb"] = "Old South Arabian",
["sem-tay"] = "Taymanitic",
["sem-tha"] = "Thamudic",
["sem-wes-pro"] = "เซมิติกตะวันตกดั้งเดิม",
["sen"] = "Nanerigé Sénoufo",
["seo"] = "Suarmin",
["sep"] = "Sìcìté Sénoufo",
["seq"] = "Senara Sénoufo",
["ser"] = "Serrano",
["ses"] = "Koyraboro Senni",
["set"] = "Sentani",
["seu"] = "Serui-Laut",
["sev"] = "Nyarafolo Senoufo",
["sew"] = "Sewa Bay",
["sey"] = "Secoya",
["sez"] = "Senthang Chin",
["sfb"] = "French Belgian Sign Language",
["sfe"] = "Eastern Subanun",
["sfm"] = "Small Flowery Miao",
["sfs"] = "South African Sign Language",
["sfw"] = "Sehwi",
["sg"] = "ซังโก",
["sga"] = "ไอริชเก่า",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "ซูรีเกาโนน",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitian",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "เซอร์โบ-โครเอเชีย",
["sha"] = "Shall-Zwall",
["shb"] = "Ninam",
["shc"] = "Sonde",
["shd"] = "Kundal Shahi",
["she"] = "Sheko",
["shg"] = "Shua",
["shh"] = "Shoshone",
["shi"] = "Tashelhit",
["shj"] = "Shatt",
["shk"] = "Shilluk",
["shl"] = "Shendu",
["shm"] = "Shahrudi",
["shn"] = "ไทใหญ่",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Chadian Arabic",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "สิงหล",
["sia"] = "Akkala Sami",
["sib"] = "Sebop",
["sid"] = "ซีดามา",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Sîshëë",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Proto-Siouan",
["sip"] = "สิกขิม",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Proto-Central Naga",
["sit-bai-pro"] = "Proto-Bai",
["sit-ban"] = "Bangru",
["sit-bdi-pro"] = "Proto-Bodish",
["sit-bok"] = "Bokar",
["sit-cai"] = "Caijia",
["sit-cha"] = "Chairel",
["sit-ers-pro"] = "Proto-Ersuic",
["sit-hrs-pro"] = "Proto-Hrusish",
["sit-jap"] = "Japhug",
["sit-kha-pro"] = "Proto-Kham",
["sit-khb-pro"] = "Proto-Kho-Bwa",
["sit-khp-pro"] = "Proto-Puroik",
["sit-khw-pro"] = "Proto-Western Kho-Bwa",
["sit-kon-pro"] = "Proto-Northern Naga",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "ลูอิชดั้งเดิม",
["sit-nas-pro"] = "Proto-Naish",
["sit-prn"] = "Puiron",
["sit-pro"] = "ซีโน-ทิเบตันดั้งเดิม",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Proto-Tamangic",
["sit-tan-pro"] = "Proto-Tani",
["sit-tgm"] = "ตางัม",
["sit-tng-pro"] = "Proto-Tangkhulic",
["sit-tos"] = "Tosu",
["sit-tsh"] = "Tshobdun",
["sit-zbu"] = "Zbu",
["siu"] = "Sinagen",
["siv"] = "Sumariup",
["siw"] = "Siwai",
["six"] = "Sumau",
["siy"] = "Sivandi",
["siz"] = "Siwi",
["sja"] = "Epena",
["sjb"] = "Sajau Basap",
["sjc"] = "Shaojiang Min",
["sjd"] = "ซามีแบบกิลดิน",
["sje"] = "ซามีแบบปีเต",
["sjg"] = "Assangori",
["sjk"] = "Kemi Sami",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "ซินดาริน",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja de Srair",
["sjt"] = "Ter Sami",
["sju"] = "Ume Sami",
["sjw"] = "Shawnee",
["sk"] = "สโลวัก",
["ska"] = "Skagit",
["skb"] = "แสก",
["skc"] = "Ma Manda",
["skd"] = "Southern Sierra Miwok",
["ske"] = "Ske",
["skf"] = "Mekéns",
["skh"] = "Sikule",
["ski"] = "Sika",
["skj"] = "Seke",
["skk"] = "Sok",
["skm"] = "Sakam",
["skn"] = "Kolibugan Subanon",
["sko"] = "Seko Tengah",
["skp"] = "Sekapan",
["skq"] = "Sininkere",
["skr"] = "Saraiki",
["sks"] = "ไมยา",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Skepi Creole Dutch",
["skx"] = "Seko Padang",
["sky"] = "ซีกายานา",
["skz"] = "Sekar",
["sl"] = "สโลวีเนีย",
["sla-pro"] = "สลาวิกดั้งเดิม",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sisaala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Southern Puget Sound Salish",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "ซามาแบบปางูตารัน",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slr"] = "ซาลาร์",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "ซามัว",
["sma"] = "ซามีใต้",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "ซามิกดั้งเดิม",
["smj"] = "ซามีแบบลูเล",
["smk"] = "โบลีเนา",
["sml"] = "ซามาตอนกลาง",
["smm"] = "Musasa",
["smn"] = "ซามีแบบอีนารี",
["smp"] = "Samaritan Hebrew",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Skolt Sami",
["smt"] = "Simte",
["smu"] = "สมราย",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "โชนา",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bau Bidayuh",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Southern Ma'di",
["snn"] = "Siona",
["sno"] = "Snohomish",
["snp"] = "Siane",
["snq"] = "Sangu (Gabon)",
["snr"] = "Sihan",
["sns"] = "Nahavaq",
["snu"] = "Senggi",
["snv"] = "Sa'ban",
["snw"] = "Selee",
["snx"] = "Sam",
["sny"] = "Saniyo-Hiyewe",
["snz"] = "Kou",
["so"] = "โซมาลี",
["soa"] = "โซ่ง",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdian",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Proto-Songhay",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "ปักษ์ใต้",
["sov"] = "Sonsorolese",
["sow"] = "Sowanda",
["sox"] = "Swo",
["soy"] = "Miyobe",
["soz"] = "Temi",
["spb"] = "Sepa (Indonesia)",
["spc"] = "Sapé",
["spd"] = "Saep",
["spe"] = "Sepa (New Guinea)",
["spg"] = "Sian",
["spi"] = "Saponi",
["spk"] = "Sengo",
["spl"] = "Selepet",
["spm"] = "Sepen",
["spn"] = "Sanapaná",
["spo"] = "Spokane",
["spp"] = "Supyire",
["spr"] = "Saparua",
["sps"] = "Saposa",
["spt"] = "Spiti Bhoti",
["spu"] = "Sapuan",
["spv"] = "Sambalpuri",
["spx"] = "South Picene",
["spy"] = "Sabaot",
["sq"] = "แอลเบเนีย",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "แอลเบเนียนดั้งเดิม",
["sqk"] = "Albanian Sign Language",
["sqm"] = "Suma",
["sqn"] = "Susquehannock",
["sqo"] = "Sorkhei",
["sqq"] = "Sou",
["sqr"] = "Siculo-Arabic",
["sqs"] = "Sri Lankan Sign Language",
["sqt"] = "Soqotri",
["squ"] = "Squamish",
["sra"] = "Saruga",
["srb"] = "Sora",
["sre"] = "Sara",
["srf"] = "Nafi",
["srg"] = "Sulod",
["srh"] = "Sarikoli",
["sri"] = "Siriano",
["srk"] = "Serudung Murut",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Sranan Tongo",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Proto-Kuliak",
["ssa-kom-pro"] = "Proto-Koman",
["ssa-pro"] = "Proto-Nilo-Saharan",
["ssb"] = "Southern Sama",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Shihhi Arabic",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Western Sisaala",
["ssm"] = "Semnam",
["sso"] = "Sissano",
["ssp"] = "Spanish Sign Language",
["ssq"] = "So'a",
["ssr"] = "Swiss-French Sign Language",
["sss"] = "Sô",
["sst"] = "Sinasina",
["ssu"] = "Susuami",
["ssv"] = "Shark Bay",
["ssx"] = "Samberigi",
["ssy"] = "ซาโฮ",
["ssz"] = "Sengseng",
["st"] = "ซูทู",
["stb"] = "Northern Subanen",
["std"] = "Sentinelese",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Southeastern Tepehuan",
["stq"] = "ฟรีเชียแบบซาเทอร์ลันท์",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawalese",
["sty"] = "Siberian Tatar",
["su"] = "ซุนดา",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Western Subanon",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Puroik",
["suw"] = "Sumbwa",
["sux"] = "ซูเมอร์",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "สวีเดน",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Vincentian Creole English",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "สวาฮีลี",
["swb"] = "Maore Comorian",
["swf"] = "Sere",
["swg"] = "Swabian",
["swi"] = "สุ่ย",
["swj"] = "Sira",
["swl"] = "Swedish Sign Language",
["swm"] = "Samosa",
["swn"] = "Sokna",
["swo"] = "Shanenawa",
["swp"] = "Suau",
["swq"] = "Sharwa",
["swr"] = "Saweru",
["sws"] = "Seluwasan",
["swt"] = "Sawila",
["swu"] = "Suwawa",
["sww"] = "Sowa",
["swx"] = "Suruahá",
["swy"] = "Sarua",
["sxb"] = "Suba",
["sxc"] = "Sicanian",
["sxe"] = "Sighu",
["sxg"] = "Shixing",
["sxk"] = "Southern Kalapuya",
["sxl"] = "Selonian",
["sxm"] = "สำเร",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Central Subanen",
["syc"] = "ซีรีแอกคลาสสิก",
["syd-pro"] = "Proto-Samoyedic",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "สิเลฏ",
["sym"] = "Maya Samo",
["syn"] = "Senaya",
["syo"] = "Suoy",
["sys"] = "Sinyar",
["syw"] = "Kagate",
["syx"] = "Osamayi",
["syy"] = "Al-Sayyid Bedouin Sign Language",
["sza"] = "Semelai",
["szb"] = "Ngalum",
["szc"] = "Semaq Beri",
["szd"] = "Seru",
["sze"] = "Seze",
["szg"] = "Sengele",
["szl"] = "ไซลีเซีย",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "ซากีซายา",
["ta"] = "ทมิฬ",
["taa"] = "Lower Tanana",
["tab"] = "ทาบาซารัน",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "ไทดั้งเดิม",
["tai-swe-pro"] = "ไทตะวันตกเฉียงใต้ดั้งเดิม",
["taj"] = "Eastern Tamang",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "ยามี",
["tap"] = "Taabwa",
["tar"] = "Central Tarahumara",
["tas"] = "Tây Bồi",
["tau"] = "Upper Tanana",
["tav"] = "Tatuyo",
["taw"] = "Tai",
["tax"] = "Tamki",
["tay"] = "Atayal",
["taz"] = "Tocho",
["tba"] = "Aikanã",
["tbb"] = "Tapeba",
["tbc"] = "Takia",
["tbd"] = "Kaki Ae",
["tbe"] = "Tanimbili",
["tbf"] = "Mandara",
["tbg"] = "North Tairora",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "ตโบลี",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "โบโด-กาโรดั้งเดิม",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Proto-Burmish",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Proto-Kuki-Chin",
["tbq-lal-pro"] = "Proto-Lalo",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "โลโล-เบอร์มีซดั้งเดิม",
["tbq-lol-pro"] = "โลโลอิชดั้งเดิม",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Aborlan Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Southern Tutchone",
["tcf"] = "Malinaltepec Tlapanec",
["tcg"] = "Tamagario",
["tch"] = "Turks and Caicos Creole English",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Tawr Chin",
["tcq"] = "Kaiy",
["tcs"] = "Torres Strait Creole",
["tct"] = "T'en",
["tcu"] = "Southeastern Tarahumara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "โตทา",
["tcy"] = "ตูลู",
["tcz"] = "Thado Chin",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "ไทใต้คง",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Western Tamang",
["tdh"] = "Thulung",
["tdi"] = "Tomadino",
["tdj"] = "Tajio",
["tdk"] = "Tambas",
["tdl"] = "Sur",
["tdm"] = "Taruma",
["tdn"] = "Tondano",
["tdo"] = "Teme",
["tdq"] = "Tita",
["tdr"] = "Todrah",
["tds"] = "Doutai",
["tdt"] = "Tetun Dili",
["tdu"] = "Tempasuk Dusun",
["tdv"] = "Toro",
["tdy"] = "Tadyawan",
["te"] = "เตลูกู",
["tea"] = "เตอเมียร์",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Huehuetla Tepehua",
["tef"] = "Teressa",
["teg"] = "Teke-Tege",
["teh"] = "Tehuelche",
["tei"] = "Torricelli",
["tek"] = "Ibali Teke",
["tem"] = "Temne",
["ten"] = "Tama (Colombia)",
["teo"] = "Ateso",
["tep"] = "Tepecano",
["teq"] = "Temein",
["ter"] = "Tereno",
["tes"] = "Tengger",
["tet"] = "เตตุน",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "เตอร์นาเต",
["tg"] = "ทาจิก",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Eastern Gorkha Tamang",
["tgf"] = "Chali",
["tgh"] = "Tobagonian Creole English",
["tgi"] = "Lawunuia",
["tgn"] = "ตันดากาโนน",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Central Tagbanwa",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "ไทย",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Northern Tarahumara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "ทะวืง",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "ทือกรึญญา",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "ทือเกร",
["tih"] = "Timugon Murut",
["tii"] = "Tiene",
["tij"] = "Tilung",
["tik"] = "Tikar",
["til"] = "Tillamook",
["tim"] = "Timbe",
["tin"] = "Tindi",
["tio"] = "Teop",
["tip"] = "Trimuris",
["tiq"] = "Tiéfo",
["tis"] = "Masadiit Itneg",
["tit"] = "Tinigua",
["tiu"] = "Adasen",
["tiv"] = "Tiv",
["tiw"] = "Tiwi",
["tix"] = "Southern Tiwa",
["tiy"] = "ตีรูไร",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Northern Tujia",
["tjl"] = "ไทแหล่ง",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Southern Tujia",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "เติร์กเมน",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelauan",
["tkm"] = "Takelma",
["tkn"] = "โทกูโนชิมะ",
["tkp"] = "Tikopia",
["tkq"] = "Tee",
["tkr"] = "Tsakhur",
["tks"] = "Ramandi",
["tkt"] = "Kathoriya Tharu",
["tku"] = "Upper Necaxa Totonac",
["tkv"] = "Mur Pano",
["tkw"] = "Teanu",
["tkx"] = "Tangko",
["tkz"] = "Takua",
["tl"] = "ตากาล็อก",
["tla"] = "Southwestern Tepehuan",
["tlb"] = "Tobelo",
["tlc"] = "Misantla Totonac",
["tld"] = "Talaud",
["tlf"] = "Telefol",
["tlg"] = "Tofanma",
["tlh"] = "Klingon",
["tli"] = "Tlingit",
["tlj"] = "Talinga-Bwisi",
["tlk"] = "Taloki",
["tll"] = "Tetela",
["tlm"] = "Tolomako",
["tln"] = "Talondo'",
["tlo"] = "Talodi",
["tlp"] = "Filomena Mata-Coahuitlán Totonac",
["tlq"] = "Tai Loi",
["tlr"] = "Talise",
["tls"] = "Tambotalo",
["tlt"] = "Teluti",
["tlu"] = "Tulehu",
["tlv"] = "Taliabu",
["tlx"] = "Khehek",
["tly"] = "Talysh",
["tma"] = "Tama (Chad)",
["tmb"] = "Avava",
["tmc"] = "Tumak",
["tmd"] = "Haruai",
["tme"] = "Tremembé",
["tmf"] = "Toba-Maskoy",
["tmg"] = "Ternateño",
["tmh"] = "Tuareg",
["tmi"] = "Tutuba",
["tmj"] = "Samarokena",
["tmk"] = "Northwestern Tamang",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "สวานา",
["tna"] = "Tacana",
["tnb"] = "Western Tunebo",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "North Tanna",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "ตาอีโน",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "ตองงา",
["tob"] = "Toba",
["toc"] = "Coyutla Totonac",
["tod"] = "Toma",
["tof"] = "Gizrra",
["tog"] = "Tonga (Malawi)",
["toh"] = "Tonga (Mozambique)",
["toi"] = "Tonga (Zambia)",
["toj"] = "Tojolabal",
["tok"] = "Toki Pona",
["tol"] = "Tolowa",
["tom"] = "Tombulu",
["too"] = "Xicotepec de Juárez Totonac",
["top"] = "Papantla Totonac",
["toq"] = "Toposa",
["tor"] = "Togbo-Vara Banda",
["tos"] = "Highland Totonac",
["tou"] = "Tho",
["tov"] = "Upper Taromi",
["tow"] = "Jemez",
["tox"] = "Tobian",
["toy"] = "Topoiyo",
["toz"] = "To",
["tpa"] = "Taupota",
["tpc"] = "Azoyú Me'phaa",
["tpe"] = "Tippera",
["tpf"] = "Tarpia",
["tpg"] = "Kula",
["tpi"] = "ตอกปีซิน",
["tpj"] = "Tapieté",
["tpk"] = "Tupinikin",
["tpl"] = "Tlacoapa Me'phaa",
["tpm"] = "Tampulma",
["tpn"] = "Tupinambá",
["tpo"] = "Tai Pao",
["tpp"] = "Pisaflores Tepehua",
["tpq"] = "Tukpa",
["tpr"] = "Tuparí",
["tpt"] = "Tlachichilco Tepehua",
["tpu"] = "Tampuan",
["tpv"] = "Tanapag",
["tpw"] = "ตูปีเก่า",
["tpx"] = "Acatepec Me'phaa",
["tpy"] = "Trumai",
["tpz"] = "Tinputz",
["tqb"] = "Tembé",
["tql"] = "Lehali",
["tqm"] = "Turumsa",
["tqn"] = "Tenino",
["tqo"] = "Toaripi",
["tqp"] = "Tomoip",
["tqq"] = "Tunni",
["tqr"] = "Torona",
["tqt"] = "Western Totonac",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "ตุรกี",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "East Tarangan",
["trf"] = "Trinidadian Creole English",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Early Old Oghuz",
["trk-oat"] = "ตุรกีแบบอานาโตเลียเก่า",
["trk-pro"] = "เตอร์กิกดั้งเดิม",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "กอกบอรอก",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "ตุรุง",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Tunisian Sign Language",
["tsf"] = "Southwestern Tamang",
["tsg"] = "ซูก",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Turkish Sign Language",
["tsp"] = "Northern Toussian",
["tsq"] = "มือไทย",
["tsr"] = "Akei",
["tss"] = "Taiwan Sign Language",
["tsu"] = "โจว",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Tebul Sign Language",
["tt"] = "ตาตาร์",
["tta"] = "Tutelo",
["ttb"] = "Gaa",
["ttc"] = "Tektiteko",
["ttd"] = "Tauade",
["tte"] = "Bwanabwana",
["ttf"] = "Tuotomb",
["ttg"] = "Tutong",
["tth"] = "Upper Ta'oih",
["tti"] = "Tobati",
["ttj"] = "Tooro",
["ttk"] = "Totoro",
["ttl"] = "Totela",
["ttm"] = "Northern Tutchone",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "อีสาน",
["ttt"] = "Tat",
["ttu"] = "Torau",
["ttv"] = "Titan",
["ttw"] = "Long Wat",
["tty"] = "Sikaritai",
["ttz"] = "Tsum",
["tua"] = "Wiarumus",
["tub"] = "Tübatulabal",
["tuc"] = "Mutu",
["tud"] = "Tuxá",
["tue"] = "Tuyuca",
["tuf"] = "Central Tunebo",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "ตูปี-กัวรานีดั้งเดิม",
["tup-kab"] = "Kabishiana",
["tup-pro"] = "ตูเปียนดั้งเดิม",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Proto-Tungusic",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Southeast Ambrym",
["tvl"] = "ตูวาลู",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "ตีโดเร",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Western Tawbuid",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "เทาส์",
["twg"] = "Tereweng",
["twh"] = "ไทขาว",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Southwestern Tarahumara",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "โทแคเรียนบี",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "ตังกุต",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "West Tarangan",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "ตาฮีตี",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "ไทแมน",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "ไทแดง",
["tys"] = "ซาปา",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "ตูวา",
["tyx"] = "Teke-Tyee",
["tyz"] = "ตั่ย",
["tza"] = "Tanzanian Sign Language",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Central Atlas Tamazight",
["tzn"] = "Tugun",
["tzo"] = "โซตซิล",
["tzx"] = "Tabriak",
["uam"] = "Uamué",
["uan"] = "Kuan",
["uar"] = "Tairuma",
["uba"] = "Ubang",
["ubi"] = "Ubi",
["ubl"] = "Buhi'non Bikol",
["ubr"] = "Ubir",
["ubu"] = "Umbu-Ungu",
["uby"] = "Ubykh",
["uda"] = "Uda",
["ude"] = "Udihe",
["udg"] = "Muduga",
["udi"] = "อูดี",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "อุดมูร์ต",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "อุยกูร์",
["uga"] = "ยูการิต",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "กฺ๋อง",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "ยูเครน",
["uka"] = "Kaburi",
["ukg"] = "Ukuriguma",
["ukh"] = "Ukhwejo",
["ukk"] = "Muak Sa-aak",
["ukl"] = "Ukrainian Sign Language",
["ukp"] = "Ukpe-Bayobiri",
["ukq"] = "Ukwa",
["uks"] = "Kaapor Sign Language",
["uku"] = "Ukue",
["ukw"] = "Ukwuani-Aboh-Ndoni",
["uky"] = "Kuuk Yak",
["ula"] = "Fungwa",
["ulb"] = "Olukumi",
["ulc"] = "Ulch",
["ule"] = "Lule",
["ulf"] = "Afra",
["uli"] = "Ulithian",
["ulk"] = "Meriam",
["ull"] = "Ullatan",
["ulm"] = "Ulumanda'",
["uln"] = "อุนเซอร์ด็อยทช์",
["ulu"] = "Uma' Lung",
["ulw"] = "Ulwa",
["uma"] = "Umatilla",
["umb"] = "Umbundu",
["umc"] = "Marrucinian",
["umd"] = "Umbindhamu",
["umg"] = "Umbuygamu",
["umi"] = "Ukit",
["umm"] = "Umon",
["umn"] = "Makyan Naga",
["umo"] = "Umotína",
["ump"] = "Umpila",
["umr"] = "Umbugarla",
["ums"] = "Pendau",
["umu"] = "Munsee",
["una"] = "North Watut",
["und"] = "Undetermined",
["une"] = "Uneme",
["ung"] = "Ngarinyin",
["unk"] = "Enawené-Nawé",
["unm"] = "Unami",
["unn"] = "Kurnai",
["unr"] = "Mundari",
["unu"] = "Unubahe",
["unx"] = "Munda",
["unz"] = "Unde Kaili",
["uok"] = "Uokha",
["uon"] = "Kulon",
["upi"] = "Umeda",
["upv"] = "Northeast Malakula",
["ur"] = "อูรดู",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "ฟินนิกดั้งเดิม",
["urj-koo"] = "Old Komi",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Proto-Mordvinic",
["urj-prm-pro"] = "เปอร์มิกดั้งเดิม",
["urj-pro"] = "ยูราลิกดั้งเดิม",
["urj-ugr-pro"] = "ยูกริกดั้งเดิม",
["urk"] = "อูรักลาโวยจ",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (New Guinea)",
["urp"] = "Uru-Pa-In",
["urr"] = "Löyöp",
["urt"] = "Urat",
["uru"] = "Urumi",
["urv"] = "Uruava",
["urw"] = "Sop",
["urx"] = "Urimo",
["ury"] = "Orya",
["urz"] = "Uru-Eu-Wau-Wau",
["usa"] = "Usarufa",
["ush"] = "Ushojo",
["usi"] = "Usui",
["usk"] = "Usaghade",
["usp"] = "Uspanteco",
["uss"] = "Saare",
["usu"] = "Uya",
["uta"] = "Otank",
["ute"] = "Ute",
["uth"] = "Hun",
["utp"] = "Aba",
["utr"] = "Etulo",
["utu"] = "Utu",
["uum"] = "Urum",
["uun"] = "Kulon-Pazeh",
["uur"] = "Ura (Vanuatu)",
["uuu"] = "U",
["uve"] = "West Uvean",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "อุซเบก",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "ไว",
["vaj"] = "Sekele",
["val"] = "Vehes",
["vam"] = "Vanimo",
["van"] = "Valman",
["vao"] = "Vao",
["vap"] = "Vaiphei",
["var"] = "Huarijio",
["vas"] = "Vasavi",
["vau"] = "Vanuma",
["vav"] = "Varli",
["vay"] = "Vayu",
["vbb"] = "Southeast Babar",
["vbk"] = "Southwestern Bontoc",
["ve"] = "เวนดา",
["vec"] = "เวเนโต",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "เวปส์",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "เวียดนาม",
["vic"] = "Virgin Islands Creole",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vjk"] = "Bajjika",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Korlai Creole Portuguese",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "West Flemish",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Juxtlahuaca Mixtec",
["vmd"] = "Mudu Koraga",
["vme"] = "East Masela",
["vmf"] = "East Franconian",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Ixtayutla Mixtec",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mitlatongo Mixtec",
["vmp"] = "Soyaltepec Mazatec",
["vmq"] = "Soyaltepec Mixtec",
["vmr"] = "Marenje",
["vmu"] = "Muluridyi",
["vmv"] = "Valley Maidu",
["vmw"] = "Makhuwa",
["vmx"] = "Tamazola Mixtec",
["vmy"] = "Ayautla Mazatec",
["vmz"] = "Mazatlán Mazatec",
["vnk"] = "Lovono",
["vnm"] = "Neve'ei",
["vnp"] = "Vunapu",
["vo"] = "โวลาปุก",
["vor"] = "Voro",
["vot"] = "โวต",
["vra"] = "Vera'a",
["vro"] = "เวอโร",
["vrs"] = "Varisi",
["vrt"] = "Burmbar",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "วัลลูน",
["waa"] = "Walla Walla",
["wab"] = "Wab",
["wac"] = "Wasco-Wishram",
["wad"] = "Wandamen",
["waf"] = "Wakoná",
["wag"] = "Wa'ema",
["wah"] = "Watubela",
["waj"] = "Waffa",
["wal"] = "Wolaytta",
["wam"] = "Massachusett",
["wan"] = "Wan",
["wao"] = "Wappo",
["wap"] = "Wapishana",
["waq"] = "Wageman",
["war"] = "วาไร",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "วาราโอ",
["wbb"] = "Wabo",
["wbe"] = "Waritai",
["wbf"] = "Wara",
["wbh"] = "Wanda",
["wbi"] = "Wanji",
["wbj"] = "Alagwa",
["wbk"] = "Waigali",
["wbl"] = "Wakhi",
["wbm"] = "Wa",
["wbp"] = "Warlpiri",
["wbq"] = "Waddar",
["wbr"] = "Wagdi",
["wbt"] = "Wanman",
["wbv"] = "Wajarri",
["wbw"] = "Woi",
["wca"] = "Yanomam",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Western",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Cameroon Pidgin",
["wet"] = "Perai",
["weu"] = "Welaung",
["wew"] = "Weyewa",
["wfg"] = "Yafi",
["wga"] = "Wagaya",
["wgb"] = "Wagawaga",
["wgg"] = "Wangganguru",
["wgi"] = "Wahgi",
["wgo"] = "Waigeo",
["wgu"] = "Wirangu",
["wgy"] = "Warrgamay",
["wha"] = "Manusela",
["whg"] = "North Wahgi",
["whk"] = "Wahau Kenyah",
["whu"] = "Wahau Kayan",
["wib"] = "Southern Toussian",
["wic"] = "Wichita",
["wie"] = "Wik-Epa",
["wif"] = "Wik-Keyangan",
["wig"] = "Wik-Ngathana",
["wih"] = "Wik-Me'anha",
["wii"] = "Minidien",
["wij"] = "Wik-Iiyanh",
["wik"] = "Wikalkan",
["wil"] = "Wilawila",
["wim"] = "Wik-Mungkan",
["win"] = "วินเนอเบโก",
["wir"] = "Wiraféd",
["wiu"] = "Wiru",
["wiv"] = "Muduapa",
["wiy"] = "Wiyot",
["wja"] = "Waja",
["wji"] = "Warji",
["wka"] = "Kw'adza",
["wkb"] = "Kumbaran",
["wkd"] = "Mo",
["wkl"] = "Kalanadi",
["wku"] = "Kunduvadi",
["wkw"] = "Wakawaka",
["wky"] = "Wangkayutyuru",
["wla"] = "Walio",
["wlc"] = "Mwali Comorian",
["wle"] = "Wolane",
["wlg"] = "Kunbarlang",
["wli"] = "Waioli",
["wlk"] = "Wailaki",
["wll"] = "Wali (Sudan)",
["wlm"] = "เวลส์กลาง",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallisian",
["wlu"] = "Wuliwuli",
["wlv"] = "Wichí Lhamtés Vejoz",
["wlw"] = "Walak",
["wlx"] = "Wali (Ghana)",
["wly"] = "Waling",
["wmb"] = "Wambaya",
["wmc"] = "Wamas",
["wmd"] = "Mamaindé",
["wme"] = "Wambule",
["wmh"] = "Waima'a",
["wmi"] = "Wamin",
["wmm"] = "Maiwa (Indonesia)",
["wmn"] = "Waamwang",
["wmo"] = "Wam",
["wms"] = "Wambon",
["wmt"] = "Walmajarri",
["wmw"] = "มวานี",
["wmx"] = "Womo",
["wnb"] = "Wanambre",
["wnc"] = "Wantoat",
["wnd"] = "Wandarang",
["wne"] = "Waneci",
["wng"] = "Wanggom",
["wni"] = "Ndzwani Comorian",
["wnk"] = "Wanukaka",
["wnm"] = "Wanggamala",
["wno"] = "Wano",
["wnp"] = "Wanap",
["wnu"] = "Usan",
["wnw"] = "Wintu",
["wny"] = "Wanyi",
["wo"] = "โวลอฟ",
["woa"] = "Tyaraity",
["wob"] = "Wobé",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleaian",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["woy"] = "Weyto",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradjuri",
["wri"] = "Wariyangga",
["wrk"] = "Garawa",
["wrl"] = "Warlmanpa",
["wrm"] = "Warumungu",
["wrn"] = "Warnang",
["wro"] = "Worora",
["wrp"] = "Waropen",
["wrr"] = "Wardaman",
["wrs"] = "Waris",
["wru"] = "Waru",
["wrv"] = "Waruna",
["wrw"] = "Gugu Warra",
["wrx"] = "Wae Rana",
["wrz"] = "Warray",
["wsa"] = "Warembori",
["wsi"] = "Wusi",
["wsk"] = "Waskia",
["wsr"] = "Owenia",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "อู๋",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxiang",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "วีลามอวิตแซ",
["wyr"] = "Wayoró",
["wyy"] = "Western Fijian",
["xaa"] = "อาหรับแบบอันดะลุส",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "คัลมึค",
["xam"] = "ǀXam",
["xan"] = "Xamtanga",
["xao"] = "Khao",
["xap"] = "Apalachee",
["xaq"] = "Aquitanian",
["xar"] = "Karami",
["xas"] = "Kamassian",
["xat"] = "Katawixi",
["xau"] = "Kauwera",
["xav"] = "Xavante",
["xaw"] = "Kawaiisu",
["xay"] = "Kayan Mahakam",
["xbb"] = "Lower Burdekin",
["xbc"] = "แบกเตรีย",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "เบรอตงกลาง",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "กัมเบอรา",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "อาร์มีเนียเก่า",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezmian",
["xcr"] = "Carian",
["xct"] = "ทิเบตคลาสสิก",
["xcu"] = "Curonian",
["xcv"] = "Chuvan",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "เอโดม",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Eblaite",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "ฟาลิสกุส",
["xga"] = "Galatian",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindian",
["xgm"] = "Darumbal",
["xgn-pro"] = "มองโกลิกดั้งเดิม",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "โคซา",
["xha"] = "Harami",
["xhc"] = "Hunnic",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "เขมรกลาง",
["xhr"] = "Hernican",
["xht"] = "Hattic",
["xhu"] = "ฮูร์เรีย",
["xhv"] = "Khua",
["xib"] = "Iberian",
["xii"] = "Xiri",
["xil"] = "Illyrian",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Harappan",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Mendalam Kayan",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Kenyan Sign Language",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan River Kayan",
["xko"] = "Kiorr",
["xkp"] = "Kabatei",
["xkq"] = "Koroni",
["xkr"] = "Xakriabá",
["xks"] = "Kumbewaha",
["xkt"] = "Kantosi",
["xku"] = "Kaamba",
["xkv"] = "Kgalagadi",
["xkw"] = "Kembra",
["xkx"] = "Karore",
["xky"] = "Uma' Lasan",
["xkz"] = "Kurtöp",
["xla"] = "Kamula",
["xlb"] = "Loup B",
["xlc"] = "Lycian",
["xld"] = "Lydian",
["xle"] = "Lemnian",
["xlg"] = "Ancient Ligurian",
["xli"] = "Liburnian",
["xln"] = "Alanic",
["xlo"] = "Loup A",
["xlp"] = "Lepontic",
["xls"] = "Lusitanian",
["xlu"] = "Luwian",
["xly"] = "Elymian",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanic",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Middle Median",
["xme-old"] = "Old Median",
["xme-ott"] = "Old Tati",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Proto-Tatic",
["xmf"] = "มิงเกรเลีย",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Ancient Macedonian",
["xml"] = "Malaysian Sign Language",
["xmm"] = "มลายูแบบมานาโด",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroitic",
["xms"] = "Moroccan Sign Language",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Ancient North Arabian",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Proto-Na-Dene",
["xng"] = "มองโกเลียกลาง",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "กันกานาอือเหนือ",
["xnr"] = "Kangri",
["xns"] = "Kanashi",
["xnt"] = "Narragansett",
["xnu"] = "Nukunul",
["xny"] = "Nyiyaparli",
["xoc"] = "O'chi'chi'",
["xod"] = "Kokoda",
["xog"] = "Soga",
["xoi"] = "Kominimung",
["xok"] = "Xokleng",
["xom"] = "Komo",
["xon"] = "Konkomba",
["xoo"] = "Xukurú",
["xop"] = "Kopar",
["xor"] = "Korubo",
["xow"] = "Kowaki",
["xpa"] = "Pirriya",
["xpb"] = "Pyemmairre",
["xpc"] = "Pecheneg",
["xpd"] = "Paredarerme",
["xpe"] = "Liberia Kpelle",
["xpf"] = "Southeast Tasmanian",
["xpg"] = "Phrygian",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pictish",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "พาร์เทีย",
["xps"] = "Pisidian",
["xpu"] = "Punic",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Bruny Island",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Eastern Karaboro",
["xrd"] = "Gundungurra",
["xre"] = "Kreye",
["xrg"] = "Minang",
["xri"] = "Krikati-Timbira",
["xrm"] = "Armazic",
["xrn"] = "Arin",
["xrq"] = "Karranga",
["xrr"] = "Raetic",
["xrt"] = "Aranama-Tamique",
["xru"] = "Marriammu",
["xrw"] = "Karawa",
["xsa"] = "Sabaean",
["xsb"] = "ซัมบัล",
["xsc-pro"] = "Proto-Scythian",
["xsc-sak-pro"] = "Proto-Saka",
["xsc-sar-pro"] = "Proto-Sarmatian",
["xsc-skw-pro"] = "Proto-Saka-Wakhi",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "South Slavey",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "เศรปา",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "ซูโดเวีย",
["xsy"] = "Saisiyat",
["xta"] = "Alcozauca Mixtec",
["xtb"] = "Chazumba Mixtec",
["xtc"] = "Kadugli",
["xtd"] = "Diuxi-Tilantongo Mixtec",
["xte"] = "Ketengban",
["xth"] = "Yitha Yitha",
["xti"] = "Sinicahua Mixtec",
["xtj"] = "San Juan Teita Mixtec",
["xtl"] = "Tijaltepec Mixtec",
["xtm"] = "Magdalena Peñasco Mixtec",
["xtn"] = "Northern Tlaxiaco Mixtec",
["xto"] = "โทแคเรียนเอ",
["xtp"] = "San Miguel Piedras Mixtec",
["xtq"] = "ตุมซุก",
["xtr"] = "Early Tripuri",
["xts"] = "Sindihui Mixtec",
["xtt"] = "Tacahua Mixtec",
["xtu"] = "Cuyamecalco Mixtec",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Yoloxochitl Mixtec",
["xua"] = "Alu Kurumba",
["xub"] = "Betta Kurumba",
["xud"] = "Umiida",
["xug"] = "คูนิงามิ",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "อุมเบรีย",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "วันดัล",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Western Xwla Gbe",
["xwo"] = "Written Oirat",
["xwr"] = "Kwerba Mamberamo",
["xww"] = "Wemba-Wemba",
["xxb"] = "Boro",
["xxk"] = "Ke'o",
["xxm"] = "Minkin",
["xxr"] = "Koropó",
["xxt"] = "Tambora",
["xya"] = "Yaygir",
["xyb"] = "Yandjibara",
["xyl"] = "Yalakalore",
["xyt"] = "Mayi-Thakurti",
["xyy"] = "Yorta Yorta",
["xzh"] = "Zhang-Zhung",
["xzm"] = "Semigallian",
["xzp"] = "Ancient Zapotec",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "ยามานา",
["yah"] = "Yazghulami",
["yai"] = "Yaghnobi",
["yaj"] = "Banda-Yangere",
["yak"] = "Yakima",
["yal"] = "Yalunka",
["yam"] = "Yamba",
["yan"] = "Mayangna",
["yao"] = "Yao",
["yap"] = "Yapese",
["yaq"] = "Yaqui",
["yar"] = "Yabarana",
["yas"] = "Gunu",
["yat"] = "Yambeta",
["yau"] = "Yuwana",
["yav"] = "Yangben",
["yaw"] = "Yawalapití",
["yay"] = "Agwagwune",
["yaz"] = "Lokaa",
["yba"] = "Yala",
["ybb"] = "Yemba",
["ybe"] = "Western Yugur",
["ybh"] = "Yakkha",
["ybi"] = "Yamphu",
["ybj"] = "Hasha",
["ybk"] = "Bokha",
["ybl"] = "Yukuben",
["ybm"] = "Yaben",
["ybn"] = "Yabaâna",
["ybo"] = "Yabong",
["ybx"] = "Yawiyo",
["yby"] = "Yaweyuha",
["ych"] = "Chesu",
["ycl"] = "Lolopo",
["ycn"] = "Yucuna",
["ycp"] = "Chepya",
["ycr"] = "Yilan Creole",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yenish",
["yee"] = "Yimas",
["yei"] = "Yeni",
["yej"] = "Yevanic",
["yen"] = "Yendang",
["yer"] = "Tarok",
["yes"] = "Yeskwa",
["yet"] = "Yetfa",
["yeu"] = "Yerukula",
["yev"] = "Yapunda",
["yey"] = "Yeyi",
["ygi"] = "Yiningayi",
["ygl"] = "Yangum Gel",
["ygm"] = "Yagomi",
["ygp"] = "Gepo",
["ygr"] = "Yagaria",
["ygs"] = "Yolngu Sign Language",
["ygu"] = "Yugul",
["ygw"] = "Yagwoia",
["yha"] = "Baha",
["yhl"] = "Hlepho Phowa",
["yi"] = "ยิดดิช",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Micha",
["yir"] = "North Awyu",
["yis"] = "Yis",
["yit"] = "Eastern Lalu",
["yiu"] = "Lope",
["yiv"] = "Northern Nisu",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "ยากัน",
["ykg"] = "Northern Yukaghir",
["ykh"] = "Khamnigan Mongol",
["yki"] = "Yoke",
["ykk"] = "Yakaikeke",
["ykl"] = "Khlula",
["ykm"] = "Kap",
["ykn"] = "Kua-nsi",
["yko"] = "Yasa",
["ykr"] = "Yekora",
["ykt"] = "Kathu",
["yku"] = "Kuamasi",
["yky"] = "Yakoma",
["yla"] = "Yaul",
["ylb"] = "Yaleba",
["yle"] = "Yele",
["ylg"] = "Yelogu",
["yli"] = "Angguruk Yali",
["yll"] = "Yil",
["ylm"] = "Limi",
["yln"] = "Langnian Buyang",
["ylo"] = "Naruo",
["ylr"] = "Yalarnnga",
["ylu"] = "Aribwaung",
["yly"] = "Nyelâyu",
["ymb"] = "Yambes",
["ymc"] = "Southern Muji",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Yangum Mon",
["ymp"] = "Yamap",
["ymq"] = "Qila Muji",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Northern Muji",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynb"] = "Yamben",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "ยอง",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "โยรูบา",
["yob"] = "Yoba",
["yog"] = "โยกัด",
["yoi"] = "โยนางูนิ",
["yok-bvy"] = "Buena Vista Yokuts",
["yok-dly"] = "Delta Yokuts",
["yok-gsy"] = "Gashowu Yokuts",
["yok-kry"] = "Kings River Yokuts",
["yok-nvy"] = "Northern Valley Yokuts",
["yok-ply"] = "Palewyami Yokuts",
["yok-svy"] = "Southern Valley Yokuts",
["yok-tky"] = "Tule-Kaweah Yokuts",
["yol"] = "ยอลอ",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "โยรง",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Labo Phowa",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk-pro"] = "Proto-Yupik",
["ypm"] = "Phuma",
["ypn"] = "Ani Phowa",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk-for"] = "Forest Nenets",
["yrk-tun"] = "Tundra Nenets",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Ỹaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Southern Lolopo",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Toloza",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Yucatec Maya",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "กวางตุ้ง",
["yuf"] = "Havasupai-Walapai-Yavapai",
["yug"] = "Yug",
["yui"] = "Yurutí",
["yuj"] = "Karkar-Yuri",
["yuk"] = "Yuki",
["yul"] = "Yulu",
["yum"] = "Yuma",
["yun"] = "Bena",
["yup"] = "Yukpa",
["yuq"] = "Yuqui",
["yur"] = "Yurok",
["yut"] = "Yopno",
["yuw"] = "Finisterre Yau",
["yux"] = "Southern Yukaghir",
["yuy"] = "East Yugur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Western Lalu",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng",
["yww"] = "Yawarawarga",
["yxa"] = "Mayawali",
["yxg"] = "Yagara",
["yxl"] = "Yarli",
["yxm"] = "Yinwum",
["yxu"] = "Yuyu",
["yxy"] = "Yabula Yabula",
["yyu"] = "Torricelli Yau",
["yyz"] = "Ayizi",
["yzg"] = "E'ma Buyang",
["yzk"] = "Zokhuo",
["za"] = "จ้วง",
["zaa"] = "Sierra de Juárez Zapotec",
["zab"] = "San Juan Guelavía Zapotec",
["zac"] = "Ocotlán Zapotec",
["zad"] = "Cajonos Zapotec",
["zae"] = "Yareni Zapotec",
["zaf"] = "Ayoquesco Zapotec",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Isthmus Zapotec",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Central Mahuatlán Zapotec",
["zao"] = "Ozolotepec Zapotec",
["zap"] = "Zapotec",
["zaq"] = "Aloápam Zapotec",
["zar"] = "Rincón Zapotec",
["zas"] = "Santo Domingo Albarradas Zapotec",
["zat"] = "Tabaa Zapotec",
["zau"] = "ซันสการ์",
["zav"] = "Yatzachi Zapotec",
["zaw"] = "Mitla Zapotec",
["zax"] = "Xadani Zapotec",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Coatecas Altas Zapotec",
["zdj"] = "Ngazidja Comorian",
["zea"] = "Zealandic",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Moroccan Amazigh",
["zgr"] = "Magori",
["zh"] = "จีน",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "จ้วงแบบหนง",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "หมิ่นดั้งเดิม",
["zhx-sht"] = "Shaozhou Tuhua",
["zhx-sic"] = "เสฉวน",
["zhx-tai"] = "ห่อยซัน",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkd"] = "กะดู",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "São Paulo Kaingáng",
["zkr"] = "Zakhring",
["zkt"] = "คีตัน",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Old Novgorodian",
["zle-ort"] = "รูซินเก่า",
["zls-chs"] = "Church Slavonic",
["zlw-ocs"] = "เช็กเก่า",
["zlw-opl"] = "โปแลนด์เก่า",
["zlw-osk"] = "สโลวักเก่า",
["zlw-slv"] = "สโลวินช์",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Negeri Sembilan Malay",
["zmj"] = "Maridjabin",
["zmk"] = "Mandandanyi",
["zml"] = "Madngele",
["zmm"] = "Marimanindji",
["zmn"] = "Mbangwe",
["zmo"] = "Molo",
["zmp"] = "Mbuun",
["zmq"] = "Mituku",
["zmr"] = "Maranungku",
["zms"] = "Mbesa",
["zmt"] = "Maringarr",
["zmu"] = "Muruwari",
["zmv"] = "Mbariman-Gudhinma",
["zmw"] = "Mbo (Congo)",
["zmx"] = "Bomitaba",
["zmy"] = "Mariyedi",
["zmz"] = "Mbandja",
["zna"] = "Zan Gula",
["zne"] = "Zande",
["zng"] = "Mang",
["znk"] = "Manangkari",
["zns"] = "Mangas",
["zoc"] = "Copainalá Zoque",
["zoh"] = "Chimalapa Zoque",
["zom"] = "Zou",
["zoo"] = "Asunción Mixtepec Zapotec",
["zoq"] = "Tabasco Zoque",
["zor"] = "Rayón Zoque",
["zos"] = "Francisco León Zoque",
["zpa"] = "Lachiguiri Zapotec",
["zpb"] = "Yautepec Zapotec",
["zpc"] = "Choapan Zapotec",
["zpd"] = "Southeastern Ixtlán Zapotec",
["zpe"] = "Petapa Zapotec",
["zpf"] = "San Pedro Quiatoni Zapotec",
["zpg"] = "Guevea de Humboldt Zapotec",
["zph"] = "Totomachapan Zapotec",
["zpi"] = "Santa María Quiegolani Zapotec",
["zpj"] = "Quiavicuzas Zapotec",
["zpk"] = "Tlacolulita Zapotec",
["zpl"] = "Lachixío Zapotec",
["zpm"] = "Mixtepec Zapotec",
["zpn"] = "Santa Inés Yatzechi Zapotec",
["zpo"] = "Amatlán Zapotec",
["zpp"] = "El Alto Zapotec",
["zpq"] = "Zoogocho Zapotec",
["zpr"] = "Santiago Xanica Zapotec",
["zps"] = "Coatlán Zapotec",
["zpt"] = "San Vicente Coatlán Zapotec",
["zpu"] = "Yalálag Zapotec",
["zpv"] = "Chichicapan Zapotec",
["zpw"] = "Zaniza Zapotec",
["zpx"] = "San Baltazar Loxicha Zapotec",
["zpy"] = "Mazaltepec Zapotec",
["zpz"] = "Texmelucan Zapotec",
["zra"] = "Gaya",
["zrg"] = "Mirgan",
["zrn"] = "Zirenkel",
["zro"] = "Záparo",
["zrs"] = "Mairasi",
["zsa"] = "Sarasira",
["zsk"] = "Kaskean",
["zsl"] = "Zambian Sign Language",
["zsr"] = "Southern Rincon Zapotec",
["zsu"] = "Sukurum",
["zte"] = "Elotepec Zapotec",
["ztg"] = "Xanaguía Zapotec",
["ztl"] = "Lapaguía-Guivini Zapotec",
["ztm"] = "San Agustín Mixtepec Zapotec",
["ztn"] = "Santa Catarina Albarradas Zapotec",
["ztp"] = "Loxicha Zapotec",
["ztq"] = "Quioquitani-Quierí Zapotec",
["zts"] = "Tilquiapan Zapotec",
["ztt"] = "Tejalapan Zapotec",
["ztu"] = "San Pablo Güilá Zapotec",
["ztx"] = "Zaachila Zapotec",
["zty"] = "Yatee Zapotec",
["zu"] = "ซูลู",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "ซูนี",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "ซาซา",
["zzj"] = "จ้วงแบบจั่วเจียง",
}
re1wugr62vpc8h43zfejgrkma8xdgyd
มอดูล:languages/canonical names
828
211224
5723241
5720546
2026-05-20T03:24:22Z
OctraBot
3198
5723241
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",
["Abenaki"] = "abe",
["Abenlen Ayta"] = "abp",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abom"] = "aob",
["Abon"] = "abo",
["Aborlan Tagbanwa"] = "tbw",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Acatepec Me'phaa"] = "tpx",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Aché"] = "guq",
["Acroá"] = "acs",
["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",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afghan Sign Language"] = "afg",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["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",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["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",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akhvakh"] = "akv",
["Akkala Sami"] = "sia",
["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",
["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 Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Alekano"] = "gah",
["Aleut"] = "ale",
["Algerian Sign Language"] = "asp",
["Algonquin"] = "alq",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alorese"] = "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",
["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",
["Amganad Ifugao"] = "ifa",
["Ami"] = "amy",
["Amis"] = "ami",
["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",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anauyá"] = "awd-ana",
["Ancient Ligurian"] = "xlg",
["Ancient Macedonian"] = "xmk",
["Ancient North Arabian"] = "xna",
["Ancient Zapotec"] = "xzp",
["Andai"] = "afd",
["Andajin"] = "ajn",
["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",
["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",
["Anāl"] = "anm",
["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",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["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 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",
["Arára (Mato Grosso)"] = "axg",
["Arára (Pará)"] = "aap",
["As"] = "asz",
["Asaro'o"] = "mtv",
["Ashe"] = "ahs",
["Ashkun"] = "ask",
["Asho Chin"] = "csh",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asoa"] = "asv",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["Assyrian Neo-Aramaic"] = "aii",
["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",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["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",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["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",
["Ayomán"] = "sai-ayo",
["Ayoquesco Zapotec"] = "zaf",
["Ayoreo"] = "ayo",
["Ayu"] = "ayu",
["Ayutla Mixtec"] = "miy",
["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",
["Bada"] = "bhz",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Baduy"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["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",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahonsuai"] = "bsu",
["Bai (South Sudan)"] = "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 Malay"] = "mhp",
["Balkan Gagauz Turkish"] = "bgx",
["Balkan Romani"] = "rmn",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Baltic Romani"] = "rml",
["Baluan-Pam"] = "blq",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["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",
["Bangru"] = "sit-ban",
["Bangubangu"] = "bnx",
["Bangwinji"] = "bsj",
["Baniva"] = "bvv",
["Baniwa"] = "bwi",
["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",
["Basketo"] = "bst",
["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",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bau Bidayuh"] = "sne",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["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",
["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",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berau Malay"] = "bve",
["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",
["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",
["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",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["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",
["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",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["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 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",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["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",
["Bourguignon"] = "roa-brg",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brazilian Sign Language"] = "bzs",
["Brek Karen"] = "kvl",
["Brem"] = "buq",
["Breri"] = "brq",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Brunei Bisaya"] = "bsb",
["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",
["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 Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bulungan"] = "blj",
["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",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["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",
["Cambodian Sign Language"] = "csx",
["Cameroon Mambila"] = "mcu",
["Cameroon Pidgin"] = "wes",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Cappadocian Greek"] = "cpg",
["Caquinte"] = "cot",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carijona"] = "cbd",
["Carolina Algonquian"] = "crr",
["Carolinian"] = "cal",
["Carpathian Romani"] = "rmc",
["Carrier"] = "crx",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Casiguran Dumagat Agta"] = "dgc",
["Casuarina Coast Asmat"] = "asc",
["Catacao"] = "sai-cat",
["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",
["Celtiberian"] = "xce",
["Cen"] = "cen",
["Central Asmat"] = "cns",
["Central Atlas Tamazight"] = "tzm",
["Central Awyu"] = "awu",
["Central Bai"] = "bca",
["Central Bontoc"] = "lbk",
["Central Cagayan Agta"] = "agt",
["ฟรังโกเนียตอนกลาง"] = "gmw-cfr",
["Central Grebo"] = "grv",
["Central Huasteca Nahuatl"] = "nch",
["Central Huishui Hmong"] = "hmc",
["Central Mahuatlán Zapotec"] = "zam",
["Central Mansi"] = "mns-cen",
["Central Masela"] = "mxz",
["Central Mashan Hmong"] = "hmm",
["Central Mazahua"] = "maz",
["Central Melanau"] = "mel",
["Central Ojibwa"] = "ojc",
["Central Pame"] = "pbs",
["Central Pomo"] = "poo",
["Central Puebla Nahuatl"] = "ncx",
["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",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["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",
["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",
["Chayahuita"] = "cbt",
["Chayuco Mixtec"] = "mih",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chicahuaxtla Triqui"] = "trs",
["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 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",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chontal Maya"] = "chf",
["Chopi"] = "cce",
["Chothe Naga"] = "nct",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Church Slavonic"] = "zls-chs",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuukese"] = "chk",
["Chuvan"] = "xcv",
["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",
["แกลิกคลาสสิก"] = "ghc",
["Classical Mandaic"] = "myz",
["ซีรีแอกคลาสสิก"] = "syc",
["Coahuilteco"] = "xcw",
["Coast Miwok"] = "csi",
["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",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Coroado Puri"] = "sai-crd",
["Cosoleacaque Nahuatl"] = "nhk",
["Costa Rican Sign Language"] = "csr",
["Cotabato Manobo"] = "mta",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Creek"] = "mus",
["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",
["Cung"] = "cug",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyamecalco Mixtec"] = "xtu",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["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",
["Dakpa"] = "dka",
["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 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",
["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",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Delta Yokuts"] = "yok-dly",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demotic Egyptian"] = "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",
["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",
["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",
["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 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",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Early Old Oghuz"] = "trk-eog",
["Early Tripuri"] = "xtr",
["East Damar"] = "dmr",
["East Franconian"] = "vmf",
["East Futuna"] = "fud",
["East Kewa"] = "kjs",
["East Limba"] = "lma",
["East Masela"] = "vme",
["East Nyala"] = "nle",
["East Tarangan"] = "tre",
["East Yugur"] = "yuy",
["Eastern Acipa"] = "acp",
["Eastern Arrernte"] = "aer",
["Eastern Bolivian Guarani"] = "gui",
["Eastern Bontoc"] = "ebk",
["Eastern Canadian Inuktitut"] = "ike",
["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 Keres"] = "kee",
["Eastern Khanty"] = "kca-eas",
["Eastern Krahn"] = "kqo",
["Eastern Lalu"] = "yit",
["Eastern Magar"] = "mgp",
["Eastern Maninkakan"] = "emk",
["Eastern Mari"] = "mhr",
["Eastern Meohang"] = "emg",
["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 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",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["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",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["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",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Esmeralda"] = "sai-esm",
["Esselen"] = "esq",
["Estado de México Otomi"] = "ots",
["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",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewondo"] = "ewo",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faire Atta"] = "azt",
["Faita"] = "faj",
["Faiwol"] = "fai",
["Fakkanci"] = "gel",
["Falam Chin"] = "cfm",
["Fali"] = "fli",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Far Western Muria"] = "fmu",
["ฟราฟรา"] = "gur",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["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"] = "yrk-for",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["French Belgian Sign Language"] = "sfb",
["French Sign Language"] = "fsl",
["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",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Gaikundi"] = "gbf",
["Gaina"] = "gcn",
["Gal"] = "gap",
["Galambu"] = "glo",
["Galatian"] = "xga",
["Galela"] = "gbi",
["Galeya"] = "gar",
["Galice"] = "gce",
["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-Ningi"] = "bte",
["Gana"] = "gnq",
["Ganang"] = "gne",
["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",
["Garre"] = "gex",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gashowu Yokuts"] = "yok-gsy",
["Gata'"] = "gaq",
["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",
["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",
["Gepo"] = "ygp",
["Gera"] = "gew",
["Gerka"] = "gek",
["German Sign Language"] = "gsg",
["Geruma"] = "gea",
["Geser-Gorom"] = "ges",
["Geshiza"] = "ero-gsz",
["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",
["Gilima"] = "gix",
["Gimi (Austronesian)"] = "gip",
["Gimi (Papuan)"] = "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",
["Gogo"] = "gog",
["Gogodala"] = "ggw",
["Goguryeo"] = "zkg",
["Gojri"] = "gju",
["Gokana"] = "gkn",
["Gokhy"] = "tbq-gkh",
["Gola"] = "gol",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gone Dau"] = "goo",
["Gongduk"] = "goe",
["Gonja"] = "gjn",
["Goo"] = "gov",
["Gor"] = "gqr",
["Gorakor"] = "goc",
["Gorap"] = "goq",
["Goreng"] = "xgg",
["Gorontalo"] = "gor",
["Gorovu"] = "grq",
["Gorwaa"] = "gow",
["Gottscheerish"] = "gmw-gts",
["Goundo"] = "goy",
["Gourmanchéma"] = "gux",
["Gowlan"] = "goj",
["Gowro"] = "gwf",
["Gozarkhani"] = "goz",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Greek Sign Language"] = "gss",
["Green Gelao"] = "giq",
["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",
["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 Sign Language"] = "lgs",
["Guinean Sign Language"] = "gus",
["Guiqiong"] = "gqi",
["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",
["Hadoti"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haigwai"] = "hgw",
["Hailufeng Min"] = "nan-hlh",
["Hainyaxo Bozo"] = "bzx",
["Haiphong Sign Language"] = "haf",
["Haisla"] = "has",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["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",
["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 Sign Language"] = "hsl",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaiian Creole"] = "hwc",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiltsuk"] = "hei",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Herdé"] = "hed",
["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",
["Hijuk"] = "hij",
["Hill Maria"] = "mrr",
["Himarimã"] = "hir",
["Hindi Dogri"] = "dgo",
["Hinduri"] = "hii",
["Hinukh"] = "gin",
["Hismaic"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hittite"] = "hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["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",
["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",
["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 Sign Language"] = "hsh",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunnic"] = "xhc",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["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",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberian"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Icelandic Sign Language"] = "icl",
["Iceve-Maci"] = "bec",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Idoma"] = "idu",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["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",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Portuguese"] = "idb",
["Indri"] = "idr",
["Indus Kohistani"] = "mvy",
["Inebu One"] = "oin",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Inpui Naga"] = "nkf",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuit Sign Language"] = "iks",
["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",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Iresim"] = "ire",
["Iriga Bicolano"] = "bto",
["Irish Sign Language"] = "isg",
["Irula"] = "iru",
["Isabi"] = "isa",
["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",
["Istro-Romanian"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["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",
["Itza'"] = "itz",
["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 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 Sign Language"] = "jsl",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javindo"] = "jvd",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["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",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jina"] = "jia",
["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",
["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",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachi Koli"] = "gjk",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadiwéu"] = "kbc",
["Kado"] = "kdv",
["Kadugli"] = "xtc",
["Kaduo"] = "ktp",
["Kaera"] = "jka",
["Kafa"] = "kbr",
["Kafoa"] = "kpu",
["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",
["Kaitag"] = "xdq",
["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",
["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",
["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",
["Kamasa"] = "klp",
["Kamasau"] = "kms",
["Kamassian"] = "xas",
["Kamayo"] = "kyk",
["Kamayurá"] = "kay",
["Kamba"] = "kam",
["Kambaata"] = "ktb",
["Kambaira"] = "kyy",
["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",
["Kannada Kurumba"] = "kfi",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["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",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Kare (Central Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["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",
["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",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayan Mahakam"] = "xay",
["Kayan River Kayan"] = "xkn",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kaytetye"] = "gbb",
["Kayupulau"] = "kzu",
["Kazukuru"] = "kzk",
["Ke'o"] = "xxk",
["Keak"] = "keh",
["Keapara"] = "khz",
["Kedang"] = "ksx",
["Keder"] = "kdy",
["Kehu"] = "khh",
["Kei"] = "kei",
["Keiga"] = "kec",
["Kein"] = "bmh",
["Keiyo"] = "eyo",
["Kela-Yela"] = "kel",
["Kelabit"] = "kzi",
["Kelantan Peranakan Hokkien"] = "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",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Khamnigan Mongol"] = "ykh",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khezha Naga"] = "nkh",
["Khiamniungan Naga"] = "kix",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khoekhoe"] = "naq",
["Khoibu Naga"] = "nkb",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khorasani Turkish"] = "kmz",
["Khorezmian Turkic"] = "zkh",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khumi Chin"] = "cnk",
["Khvarshi"] = "khv",
["Khwarezmian"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Kiautschou German Pidgin"] = "crp-kia",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["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",
["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",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Nar"] = "gko",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["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",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konso"] = "kxc",
["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 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",
["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",
["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",
["Ktunaxa"] = "kut",
["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",
["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",
["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",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutang Ghale"] = "ght",
["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",
["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",
["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",
["Labu"] = "lbu",
["Labuk-Kinabatangan Kadazan"] = "dtb",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["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",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["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 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",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvian Sign Language"] = "lsl",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentian"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["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",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (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",
["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",
["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 Sign Language"] = "lbs",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limbum"] = "lmp",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Limos Kalinga"] = "kmk",
["Linear A"] = "lab",
["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",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["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",
["Loun"] = "lox",
["Loup A"] = "xlo",
["Loup B"] = "xlb",
["Lovono"] = "vnk",
["Lower Burdekin"] = "xbb",
["Lower Chehalis"] = "cea",
["Lower Grand Valley Dani"] = "dni",
["Lower Nossob"] = "nsb",
["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",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Lukpa"] = "dop",
["Lule"] = "ule",
["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",
["Lutuv"] = "clt",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwian"] = "xlu",
["Luwo"] = "lwo",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycian"] = "xlc",
["Lydian"] = "xld",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabaka Valley Kalinga"] = "kkg",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macau Pidgin Portuguese"] = "crp-mpp",
["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",
["Magdalena Peñasco Mixtec"] = "xtm",
["Magiyi"] = "gmg",
["Magoma"] = "gmx",
["Magori"] = "zgr",
["Magɨ"] = "gkd",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["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",
["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 Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malaccan Creole Malay"] = "ccm",
["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",
["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 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",
["มลายูแบบมานาโด"] = "xmm",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["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",
["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",
["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",
["Manya"] = "mzj",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Mao Naga"] = "nbi",
["Maonan"] = "mmd",
["Maore Comorian"] = "swb",
["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",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["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",
["Marsian"] = "ims",
["Martha's Vineyard Sign Language"] = "mre",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marúbo"] = "mzr",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["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",
["Mator"] = "mtm",
["Matsés"] = "mcf",
["Mattole"] = "mvb",
["Matukar"] = "mjk",
["Matumbi"] = "mgw",
["Matya Samo"] = "stj",
["Matís"] = "mpq",
["Maung"] = "mph",
["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",
["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",
["Mbya Guarani"] = "gun",
["Me'en"] = "mym",
["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",
["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 Cornish"] = "cnx",
["Middle Kannada"] = "dra-mkn",
["Middle Median"] = "xme-mid",
["Middle Scots"] = "gmw-msc",
["Middle Watut"] = "mpl",
["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",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miraya Bikol"] = "rbl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong Sign Language"] = "rsm",
["Miriwung"] = "mep",
["Mirning"] = "gmr",
["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",
["Miyobe"] = "soy",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mo"] = "wkd",
["Mo'da"] = "gbn",
["Moba"] = "mfq",
["Mobilian"] = "mod",
["Mobu"] = "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",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["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",
["Monastic Sign Language"] = "mzg",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol"] = "mgt",
["Mongolian Sign Language"] = "msr",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Monimbo"] = "mom",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monsang Naga"] = "nmh",
["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 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",
["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",
["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",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mzieme Naga"] = "nme",
["Mághdì"] = "gmd",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["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",
["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",
["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",
["Natioro"] = "nti",
["Natú"] = "sai-nat",
["Natügu"] = "ntu",
["Nauete"] = "nxa",
["Naukanski"] = "ynk",
["Nauna"] = "ncn",
["Nauo"] = "nwo",
["Navut"] = "nsw",
["Nawaru"] = "nwr",
["Nawathinehena"] = "nwa",
["Nawdm"] = "nmz",
["Nawuri"] = "naw",
["Naxi"] = "nxq",
["Nayi"] = "noz",
["Naʼvi"] = "art-nav",
["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",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["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",
["Nepali Kurux"] = "kxl",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New River Shasta"] = "nai-nrs",
["New Zealand Sign Language"] = "nzs",
["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",
["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",
["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",
["Noakhali"] = "oak",
["Nobiin"] = "fia",
["Nobonob"] = "gaw",
["Nocamán"] = "nom",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["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 Giziga"] = "gis",
["North Levantine Arabic"] = "apc",
["North Marquesan"] = "mrq",
["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 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 Khanty"] = "kca-nor",
["Northern Kissi"] = "kqs",
["Northern Lorung"] = "lbr",
["Northern Luri"] = "lrc",
["Northern Mansi"] = "mns-nor",
["Northern Mashan Hmong"] = "hmp",
["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 Pomo"] = "pej",
["Northern Puebla Nahuatl"] = "ncj",
["Northern Pumi"] = "pmi",
["Northern Qiandong Miao"] = "hea",
["Northern Qiang"] = "cng",
["Northern Rengma Naga"] = "nnl",
["Northern Roglai"] = "rog",
["Northern Saharan Berber"] = "mzb",
["Northern Selkup"] = "sel-nor",
["Northern Sierra Miwok"] = "nsq",
["Northern Subanen"] = "stb",
["Northern Tarahumara"] = "thh",
["Northern Tepehuan"] = "ntp",
["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 Sign Language"] = "nsl",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["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",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["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",
["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ü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",
["Ocotepec Mixtec"] = "mie",
["Ocotlán Zapotec"] = "zac",
["Od"] = "odk",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oirata"] = "oia",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Okiek"] = "oki",
["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 Awadhi"] = "inc-oaw",
["Old Gutnish"] = "gmq-ogt",
["Old Kannada"] = "dra-okn",
["Old Kentish Sign Language"] = "okl",
["Old Komi"] = "urj-koo",
["Old Median"] = "xme-old",
["Old Navarro-Aragonese"] = "roa-ona",
["Old Novgorodian"] = "zle-ono",
["Old Prussian"] = "prg",
["รูซินเก่า"] = "zle-ort",
["Old South Arabian"] = "sem-srb",
["Old Sundanese"] = "osn",
["Old Tati"] = "xme-ott",
["Old Telugu"] = "dra-ote",
["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",
["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",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Oscan"] = "osc",
["Ososo"] = "oso",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Otomaco"] = "sai-oto",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["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-Hng"] = "pha",
["Paamese"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["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",
["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",
["Palawan Batak"] = "bya",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Palewyami Yokuts"] = "yok-ply",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palula"] = "phl",
["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",
["Pangwa"] = "pbr",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["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",
["Papora"] = "ppu",
["Papua New Guinean Sign Language"] = "pgz",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["พาร์เทีย"] = "xpr",
["Parya"] = "paq",
["Pará Gavião"] = "gvp",
["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",
["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",
["Peba"] = "sai-peb",
["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",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Pero"] = "pip",
["Persian Sign Language"] = "psc",
["Peruvian Sign Language"] = "prl",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Peñoles Mixtec"] = "mil",
["Phai"] = "prt",
["Phala"] = "ypa",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Philippine Sign Language"] = "psp",
["Philistine"] = "mis-phi",
["Phimbi"] = "phm",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrygian"] = "xpg",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pictish"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Delaware"] = "dep",
["Pidgin Iha"] = "ihb",
["Pidgin Onin"] = "onx",
["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",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidian"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["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",
["Playero"] = "gob",
["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 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 Sign Language"] = "psr",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Prasuni"] = "prn",
["Pre-Samnite"] = "itc-psa",
["Primitive Irish"] = "pgl",
["Principense"] = "pre",
["Proto-Abkhaz-Abaza"] = "cau-abz-pro",
["Proto-Amuesha-Chamicuro"] = "awd-amc-pro",
["Proto-Andian"] = "cau-and-pro",
["Proto-Apachean"] = "apa-pro",
["Proto-Arawa"] = "auf-pro",
["Proto-Arawak"] = "awd-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-Avaro-Andian"] = "cau-ava-pro",
["Proto-Bahnaric"] = "mkh-ban-pro",
["Proto-Bai"] = "sit-bai-pro",
["Proto-Batak"] = "btk-pro",
["Proto-Binanderean"] = "paa-bin-pro",
["Proto-Bodish"] = "sit-bdi-pro",
["Proto-Bongo-Bagirmi"] = "csu-bba-pro",
["Proto-Boran"] = "sai-bor-pro",
["Proto-Bua"] = "alv-bua-pro",
["Proto-Bungku-Tolaki"] = "poz-btk-pro",
["Proto-Burmish"] = "tbq-brm-pro",
["Proto-Caddoan"] = "cdd-pro",
["Proto-Cangin"] = "alv-cng-pro",
["Proto-Cariban"] = "sai-car-pro",
["Proto-Central Jê"] = "sai-cje-pro",
["Proto-Central Naga"] = "sit-aao-pro",
["Proto-Central New South Wales"] = "aus-cww-pro",
["Proto-Central Sudanic"] = "csu-pro",
["Proto-Central Togo"] = "alv-gtm-pro",
["Proto-Cerrado"] = "sai-cer-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-Dangari"] = "inc-dng-pro",
["Proto-Dargwa"] = "cau-drg-pro",
["Proto-Dizoid"] = "omv-diz-pro",
["Proto-Eastern Jebel"] = "sdv-eje-pro",
["Proto-Eastern Oti-Volta"] = "nic-eov-pro",
["Proto-Edekiri"] = "alv-edk-pro",
["Proto-Edoid"] = "alv-edo-pro",
["Proto-Ersuic"] = "sit-ers-pro",
["Proto-Eskimo-Aleut"] = "esx-pro",
["Proto-Fali"] = "alv-fli-pro",
["Proto-Gbaya"] = "gba-pro",
["Proto-Grassfields"] = "nic-grf-pro",
["Proto-Guang"] = "alv-gng-pro",
["Proto-Gurunsi"] = "nic-gns-pro",
["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro",
["Proto-Heiban"] = "alv-hei-pro",
["Proto-Highland East Cushitic"] = "cus-hec-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-Iroquoian"] = "iro-pro",
["Proto-Iwaidjan"] = "aus-wdj-pro",
["Proto-Jukunoid"] = "nic-jkn-pro",
["Proto-Jê"] = "sai-jee-pro",
["Proto-Kadu"] = "qfa-kad-pro",
["Proto-Kalapuyan"] = "nai-klp-pro",
["Proto-Kam-Sui"] = "qfa-kms-pro",
["Proto-Kampa"] = "awd-kmp-pro",
["Proto-Kamta"] = "inc-krd-pro",
["Proto-Katuic"] = "mkh-kat-pro",
["Proto-Kham"] = "sit-kha-pro",
["Proto-Khanty"] = "kca-pro",
["Proto-Kho-Bwa"] = "sit-khb-pro",
["Proto-Khoe"] = "khi-kho-pro",
["Proto-Koman"] = "ssa-kom-pro",
["Proto-Komisenian"] = "ira-kms-pro",
["Proto-Kru"] = "kro-pro",
["Proto-Kuki-Chin"] = "tbq-kuk-pro",
["Proto-Kuliak"] = "ssa-klk-pro",
["Proto-Kwa"] = "alv-kwa-pro",
["Proto-Lalo"] = "tbq-lal-pro",
["Proto-Lezghian"] = "cau-lzg-pro",
["Proto-Lower Cross River"] = "nic-lcr-pro",
["Proto-Maidun"] = "nai-mdu-pro",
["Proto-Mande"] = "dmn-pro",
["Proto-Mangbetu"] = "csu-maa-pro",
["Proto-Mansi"] = "mns-pro",
["Proto-Mari"] = "chm-pro",
["Proto-Masa"] = "cdc-mas-pro",
["Proto-Mazatec"] = "omq-maz-pro",
["Proto-Medo-Parthian"] = "ira-mpr-pro",
["Proto-Mixe-Zoque"] = "nai-miz-pro",
["Proto-Mixtec"] = "omq-mxt-pro",
["Proto-Mixtecan"] = "omq-mix-pro",
["Proto-Mordvinic"] = "urj-mdv-pro",
["Proto-Mumuye"] = "alv-mum-pro",
["Proto-Munji-Yidgha"] = "ira-mny-pro",
["Proto-Muskogean"] = "nai-mus-pro",
["Proto-Na-Dene"] = "xnd-pro",
["Proto-Naish"] = "sit-nas-pro",
["Proto-Nawiki"] = "awd-nwk-pro",
["Proto-Nilo-Saharan"] = "ssa-pro",
["Proto-Nilotic"] = "sdv-nil-pro",
["Proto-North Halmahera"] = "paa-nha-pro",
["Proto-North Iroquoian"] = "iro-nor-pro",
["Proto-Northern Jê"] = "sai-nje-pro",
["Proto-Northern Naga"] = "sit-kon-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-Ogoni"] = "nic-ogo-pro",
["Proto-Omotic"] = "omv-pro",
["Proto-Ongan"] = "qfa-ong-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-Pama-Nyungan"] = "aus-pam-pro",
["Proto-Paresi-Waura"] = "awd-prw-pro",
["Proto-Pearic"] = "mkh-pea-pro",
["Proto-Plateau"] = "nic-plt-pro",
["Proto-Plateau Penutian"] = "nai-plp-pro",
["Proto-Pomo"] = "nai-pom-pro",
["Proto-Puroik"] = "sit-khp-pro",
["Proto-Rukai"] = "dru-pro",
["Proto-Ryukyuan"] = "jpx-ryu-pro",
["Proto-Sabaki"] = "bnt-sab-pro",
["Proto-Saka"] = "xsc-sak-pro",
["Proto-Saka-Wakhi"] = "xsc-skw-pro",
["Proto-Salish"] = "sal-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-Shughni-Roshani"] = "ira-shr-pro",
["Proto-Shughni-Yazghulami"] = "ira-shy-pro",
["Proto-Shughni-Yazghulami-Munji"] = "ira-sym-pro",
["Proto-Siouan"] = "sio-pro",
["Proto-Siouan-Catawban"] = "nai-sca-pro",
["Proto-Songhay"] = "son-pro",
["Proto-Sotho-Tswana"] = "bnt-sts-pro",
["Proto-South Cushitic"] = "cus-sou-pro",
["Proto-Southern Jê"] = "sai-sje-pro",
["Proto-Ta-Arawak"] = "awd-taa-pro",
["Proto-Takic"] = "azc-tak-pro",
["Proto-Taman"] = "sdv-tmn-pro",
["Proto-Tamangic"] = "sit-tam-pro",
["Proto-Tangkhulic"] = "sit-tng-pro",
["Proto-Tani"] = "sit-tan-pro",
["Proto-Taranoan"] = "sai-tar-pro",
["Proto-Tatic"] = "xme-ttc-pro",
["Proto-Totozoquean"] = "nai-tot-pro",
["Proto-Trans-New Guinea"] = "ngf-pro",
["Proto-Triqui"] = "omq-tri-pro",
["Proto-Tsezian"] = "cau-tsz-pro",
["Proto-Tsimshianic"] = "nai-tsi-pro",
["Proto-Tungusic"] = "tuw-pro",
["Proto-Ubangian"] = "nic-ubg-pro",
["Proto-Upper Cross River"] = "nic-ucr-pro",
["Proto-Utian"] = "nai-utn-pro",
["Proto-Western Kho-Bwa"] = "sit-khw-pro",
["Proto-Western Mande"] = "dmn-mdw-pro",
["Proto-Witotoan"] = "sai-wit-pro",
["Proto-Yeniseian"] = "qfa-yen-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",
["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",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puroik"] = "suv",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamèi"] = "pme",
["Pwapwâ"] = "pop",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu (New Guinea)"] = "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",
["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",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rajput Garasia"] = "gra",
["Rakahanga-Manihiki"] = "rkh",
["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",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["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",
["ฟรังโกเนียแบบไรน์"] = "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",
["Roma"] = "rmm",
["Romam"] = "rmx",
["Romanian Sign Language"] = "rms",
["Romano-Greek"] = "rge",
["Romano-Serbian"] = "rsb",
["Romanova"] = "rmv",
["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",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwandan Sign Language"] = "rsn",
["Réunion Creole French"] = "rcf",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["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",
["Saep"] = "spd",
["Safaitic"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sala"] = "shq",
["Salampasu"] = "slx",
["Salas"] = "sgu",
["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",
["Samalian"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samaritan Hebrew"] = "smp",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Samo"] = "smq",
["Samoan Plantation Pidgin"] = "crp-spp",
["Samogitian"] = "sgs",
["Samosa"] = "swm",
["Sampang"] = "rav",
["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",
["Sangtam Naga"] = "nsa",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sankaran Maninka"] = "msc",
["Sansi"] = "ssi",
["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",
["Santiago Xanica Zapotec"] = "zpr",
["Santo Domingo Albarradas Zapotec"] = "zas",
["Sanumá"] = "xsu",
["Sanxiang Min"] = "nan-zsh",
["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",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Satawalese"] = "stw",
["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",
["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",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semigallian"] = "xzm",
["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",
["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",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Shaojiang Min"] = "sjc",
["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",
["Sheshi Kham"] = "kip",
["Shetland"] = "scz",
["Shi"] = "shr",
["Shihhi Arabic"] = "ssh",
["Shiki"] = "gua",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shoo-Minda-Nye"] = "bcv",
["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",
["Siculo-Arabic"] = "sqr",
["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",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikule"] = "skh",
["Sila"] = "slt",
["Silacayoapan Mixtec"] = "mks",
["Sileibi"] = "sbq",
["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",
["Sindhi Bhil"] = "sbn",
["Sindihui Mixtec"] = "xts",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["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",
["Sisaala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Sivia Sign Language"] = "lsv",
["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",
["Slovakian Sign Language"] = "svk",
["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",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["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",
["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 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 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 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 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 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 Samo"] = "sbd",
["Southern Selkup"] = "sel-sou",
["Southern Sierra Miwok"] = "skd",
["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 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 Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sranan Tongo"] = "srn",
["Sri Lankan Creole Malay"] = "sci",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudest"] = "tgo",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sugut Dusun"] = "kzs",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumtu Chin"] = "csv",
["Sunam"] = "ssk",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["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",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["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",
["Taba"] = "mky",
["Tabaa Zapotec"] = "zat",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["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",
["Tagal Murut"] = "mvv",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Pao"] = "tpo",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taiap"] = "gpn",
["Taikat"] = "aos",
["Taimyr Pidgin Russian"] = "crp-tpr",
["Tainae"] = "ago",
["Tairuma"] = "uar",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taiwan Sign Language"] = "tss",
["Taje"] = "pee",
["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",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tanggu"] = "tgu",
["Tangkhul Naga"] = "nmf",
["Tangko"] = "tkx",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangwang"] = "mis-tnw",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanudan Kalinga"] = "kml",
["Tanzanian Sign Language"] = "tza",
["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",
["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",
["Tataviam"] = "azc-tat",
["Tatuyo"] = "tav",
["Tauade"] = "ttd",
["Taulil"] = "tuh",
["Taungyo"] = "tco",
["Taupota"] = "tpa",
["Tause"] = "tad",
["Taushiro"] = "trr",
["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",
["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",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Temascaltepec Nahuatl"] = "nhv",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["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",
["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",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetelcingo Nahuatl"] = "nhg",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["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",
["Thaiphum Chin"] = "cth",
["Thakali"] = "ths",
["Thamudic"] = "sem-tha",
["Thangal Naga"] = "nki",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibetan Sign Language"] = "lsn",
["Ticuna"] = "tca",
["Tidaá Mixtec"] = "mtx",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigon Mbembe"] = "nza",
["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",
["Tinrin"] = "cir",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["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",
["Tocho"] = "taz",
["Todrah"] = "tdr",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelauan"] = "tkl",
["Toki Pona"] = "tok",
["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",
["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",
["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",
["Tsucuba"] = "cbq",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["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-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tundra Enets"] = "enh",
["Tundra Nenets"] = "yrk-tun",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tunia"] = "tug",
["Tunica"] = "tun",
["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",
["Turdetanian"] = "mis-tdt",
["Turdulian"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turkish Sign Language"] = "tsm",
["Turks and Caicos Creole English"] = "tch",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Tuscarora"] = "tus",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututepec Mixtec"] = "mtu",
["Tututni"] = "tuu",
["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",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["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",
["Udihe"] = "ude",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ughele"] = "uge",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["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",
["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",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urali"] = "url",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["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",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["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",
["Venetic"] = "xve",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["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",
["Volscian"] = "xvo",
["Vono"] = "kch",
["Voro"] = "vor",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["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",
["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",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["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",
["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 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 Damar"] = "drn",
["West Flemish"] = "vls",
["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 Arrernte"] = "are",
["Western Bolivian Guarani"] = "gnw",
["Western Bukidnon Manobo"] = "mbb",
["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 Keres"] = "kjq",
["Western Krahn"] = "krw",
["Western Lalu"] = "ywl",
["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 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",
["Weyto"] = "woy",
["White Gelao"] = "giw",
["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",
["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",
["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",
["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",
["Xianbei"] = "mis-xbi",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["Xingú Asuriní"] = "asn",
["Xiongnu"] = "mis-xnu",
["Xipaya"] = "xiy",
["Xiri"] = "xii",
["Xiriâna"] = "xir",
["Xishanba Lalo"] = "ywt",
["Xocó"] = "sai-xoc",
["Xokleng"] = "xok",
["Xukurú"] = "xoo",
["Xwela Gbe"] = "xwe",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yaghnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yamben"] = "ynb",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["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",
["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",
["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",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yoloxochitl Mixtec"] = "xty",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yorta Yorta"] = "xyy",
["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",
["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",
["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",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayein Karen"] = "kxk",
["Zayse-Zergulla"] = "zay",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zealandic"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zeme Naga"] = "nzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhenan Min"] = "nan-zhe",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zotung Chin"] = "czt",
["Zou"] = "zom",
["Zulgo-Gemzek"] = "gnd",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["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",
["กงกัณ"] = "kok",
["กบาลัน"] = "ckv",
["กรีก"] = "el",
["กรีกแบบไมซีนี"] = "gmy",
["กรีกโบราณ"] = "grc",
["กรีนแลนด์"] = "kl",
["กวางตุ้ง"] = "yue",
["กอกบอรอก"] = "trp",
["กอท"] = "got",
["กอทแบบไครเมีย"] = "gme-cgo",
["กอล"] = "cel-gau",
["กะดู"] = "zkd",
["กะตูตะวันตก"] = "kuf",
["กะตูตะวันออก"] = "ktv",
["กะยัน"] = "pdu",
["กะยาตะวันตก"] = "kyu",
["กะยาตะวันออก"] = "eky",
["กะเหรี่ยงดั้งเดิม"] = "kar-pro",
["กะเหรี่ยงปะโอ"] = "blk",
["กะเหรี่ยงสะกอ"] = "ksw",
["กะเหรี่ยงโปตะวันตก"] = "pwo",
["กะเหรี่ยงโปตะวันออก"] = "kjp",
["กะเหรี่ยงโปเหนือ"] = "pww",
["กะเหรี่ยงโปแพร่"] = "kjt",
["กะไบล์"] = "kab",
["กัจฉ์"] = "kfr",
["กันกานาอือ"] = "kne",
["กันกานาอือเหนือ"] = "xnn",
["กันนฑะ"] = "kn",
["กัมเบอรา"] = "xbr",
["กัวรานีคลาสสิก"] = "gn-cls",
["กัวรานีแบบปารากวัย"] = "gug",
["กั้น"] = "gan",
["กากาอุซ"] = "gag",
["กาดาซันชายฝั่ง"] = "kzj",
["กาตาลา"] = "ca",
["กาตาลาเก่า"] = "roa-oca",
["กานูรี"] = "kr",
["กาปัมปางัน"] = "pam",
["กามรูป"] = "inc-kam",
["การากัลปัก"] = "kaa",
["กาลากัน"] = "kqe",
["กาลากันแบบกากัน"] = "kll",
["กาลากันแบบตากาเกาลู"] = "klg",
["กาลิเซีย"] = "gl",
["กาลิเซีย-โปรตุเกสเก่า"] = "roa-opt",
["กาเรา"] = "kyj",
["กาโม"] = "gmv",
["กาโร"] = "grt",
["กิลเบิร์ต"] = "gil",
["กีนาบาตางันตอนบน"] = "dmg",
["กืออึซ"] = "gez",
["กุรุข"] = "kru",
["กูนียันดี"] = "gni",
["กูย"] = "kdt",
["กูร์ดั้งเดิม"] = "nic-gur-pro",
["กฺ๋อง"] = "ugo",
["กเบดั้งเดิม"] = "alv-gbe-pro",
["ขมุ"] = "kjg",
["ขมุอิกดั้งเดิม"] = "mkh-khm-pro",
["ขร้า-ไทดั้งเดิม"] = "qfa-tak-pro",
["ขร้าดั้งเดิม"] = "qfa-kra-pro",
["ครี"] = "cr",
["ครีโอลกาบูเวร์ดี"] = "kea",
["ครีโอลกินี-บิสเซา"] = "pov",
["ครีโอลจาเมกา"] = "jam",
["ครีโอลมอริเชียส"] = "mfe",
["ครีโอลมาเก๊า"] = "mzs",
["ครีโอลลุยเซียนา"] = "lou",
["ครีโอลเฮติ"] = "ht",
["คองโก"] = "kg",
["คอปติก"] = "cop",
["คอร์ซิกา"] = "co",
["คอร์นวอลล์"] = "kw",
["คอร์นวอลล์เก่า"] = "oco",
["คอเคเซียนตะวันตกเฉียงเหนือดั้งเดิม"] = "cau-nwc-pro",
["คอเคเซียนตะวันออกเฉียงเหนือดั้งเดิม"] = "cau-nec-pro",
["คังรังชือ"] = "ane",
["คัลมึค"] = "xal",
["คาคัส"] = "kjh",
["คาชุบ"] = "csb",
["คาซัค"] = "kk",
["คาซี"] = "kha",
["คานธาระ"] = "pgd",
["คาบาร์เดีย"] = "kbd",
["คาร์ทเวเลียนดั้งเดิม"] = "ccs-pro",
["คาร์นิโคบาร์"] = "caq",
["คาลาเมียนดั้งเดิม"] = "phi-kal-pro",
["คาเซียนดั้งเดิม"] = "aav-khs-pro",
["คาเรเลีย"] = "krl",
["คำตี้"] = "kht",
["คำเมือง"] = "nod",
["คีตัน"] = "zkt",
["คีร์กีซ"] = "ky",
["คุชราต"] = "gu",
["คุชราตกลาง"] = "inc-mgu",
["คุชราตเก่า"] = "inc-ogu",
["คูนิงามิ"] = "xug",
["คูมาน"] = "qwm",
["คูมุก"] = "kum",
["งูนีดั้งเดิม"] = "bnt-ngu-pro",
["จอร์เจีย"] = "ka",
["จอร์เจียน-แซนดั้งเดิม"] = "ccs-gzn-pro",
["จอร์เจียเก่า"] = "oge",
["จักมา"] = "ccp",
["จามตะวันตก"] = "cja",
["จามตะวันออก"] = "cjm",
["จามิกดั้งเดิม"] = "cmc-pro",
["จิ่งเผาะ"] = "kac",
["จิ้น"] = "cjy",
["จีน"] = "zh",
["จีนกลาง"] = "cmn",
["จีนยุคกลาง"] = "ltc",
["จีนวรรณกรรม"] = "lzh",
["จีนเก่า"] = "och",
["จุน"] = "cuq",
["จูร์เชน"] = "juc",
["จ้วง"] = "za",
["จ้วงแบบจั่วเจียง"] = "zzj",
["จ้วงแบบหนง"] = "zhn",
["ชวา"] = "jv",
["ชวาเก่า"] = "kaw",
["ชวาแบบนิวแคลิโดเนีย"] = "jas",
["ชวาแบบแคริบเบียน"] = "jvn",
["ชอง"] = "cog",
["ชากาทาย"] = "chg",
["ชาดิกดั้งเดิม"] = "cdc-pro",
["ชาดิกตอนกลางดั้งเดิม"] = "cdc-cbm-pro",
["ชาบากาโน"] = "cbk",
["ชามอร์โร"] = "ch",
["ชุกชี"] = "ckt",
["ชูวัช"] = "cv",
["ซอกดิกดั้งเดิม"] = "ira-sgc-pro",
["ซองคา"] = "dz",
["ซอร์บตอนบน"] = "hsb",
["ซอร์บตอนล่าง"] = "dsb",
["ซังโก"] = "sg",
["ซันสการ์"] = "zau",
["ซัมบัล"] = "xsb",
["ซัสซารี"] = "sdc",
["ซากีซายา"] = "szy",
["ซาคา"] = "sah",
["ซาซา"] = "zza",
["ซาปา"] = "tys",
["ซามัว"] = "sm",
["ซามาตอนกลาง"] = "sml",
["ซามาแบบปางูตารัน"] = "slm",
["ซามิกดั้งเดิม"] = "smi-pro",
["ซามีเหนือ"] = "se",
["ซามีแบบกิลดิน"] = "sjd",
["ซามีแบบปีเต"] = "sje",
["ซามีแบบลูเล"] = "smj",
["ซามีแบบอีนารี"] = "smn",
["ซามีใต้"] = "sma",
["ซาราวักเหนือดั้งเดิม"] = "poz-swa-pro",
["ซาร์ดิเนีย"] = "sc",
["ซาลาร์"] = "slr",
["ซาโฮ"] = "ssy",
["ซิซิลี"] = "scn",
["ซินดาริน"] = "sjn",
["ซีกายานา"] = "sky",
["ซีดามา"] = "sid",
["ซีโน-ทิเบตันดั้งเดิม"] = "sit-pro",
["ซุนดา"] = "su",
["ซูก"] = "tsg",
["ซูทู"] = "st",
["ซูทูเหนือ"] = "nso",
["ซูนี"] = "zun",
["ซูรีเกาโนน"] = "sgd",
["ซูลาเวซีใต้ดั้งเดิม"] = "poz-ssw-pro",
["ซูลู"] = "zu",
["ซูเมอร์"] = "sux",
["ซูโดเวีย"] = "xsv",
["ญัฮกุร"] = "cbn",
["ญี่ปุ่น"] = "ja",
["ญี่ปุ่นเก่า"] = "ojp",
["ญ้อ"] = "nyw",
["ดราวิเดียนดั้งเดิม"] = "dra-pro",
["ดราวิเดียนตอนกลางดั้งเดิม"] = "dra-cen-pro",
["ดราวิเดียนเหนือดั้งเดิม"] = "dra-nor-pro",
["ดราวิเดียนใต้ดั้งเดิม"] = "dra-sou-pro",
["ดราวิเดียนใต้ที่สองดั้งเดิม"] = "dra-sdt-pro",
["ดราวิเดียนใต้ที่หนึ่งดั้งเดิม"] = "dra-sdo-pro",
["ดัตช์"] = "nl",
["ดัตช์กลาง"] = "dum",
["ดัตช์เก่า"] = "odt",
["ดาโคตา"] = "dak",
["ดุงกาน"] = "dng",
["ดูซุนตอนกลาง"] = "dtp",
["ตงเซียง"] = "sce",
["ตองงา"] = "to",
["ตังกุต"] = "txg",
["ตันดากาโนน"] = "tgn",
["ตั่ย"] = "tyz",
["ตากาล็อก"] = "tl",
["ตางัม"] = "sit-tgm",
["ตาตาร์"] = "tt",
["ตาตาร์แบบไครเมีย"] = "crh",
["ตาอีโน"] = "tnq",
["ตาฮีตี"] = "ty",
["ตีรูไร"] = "tiy",
["ตีโดเร"] = "tvo",
["ตุมซุก"] = "xtq",
["ตุรกี"] = "tr",
["ตุรกีแบบออตโตมัน"] = "ota",
["ตุรกีแบบอานาโตเลียเก่า"] = "trk-oat",
["ตุรุง"] = "try",
["ตูปี-กัวรานีดั้งเดิม"] = "tup-gua-pro",
["ตูปีเก่า"] = "tpw",
["ตูลู"] = "tcy",
["ตูวา"] = "tyv",
["ตูวาลู"] = "tvl",
["ตูเปียนดั้งเดิม"] = "tup-pro",
["ตโบลี"] = "tbl",
["ต้งเหนือ"] = "doc",
["ต้งใต้"] = "kmc",
["ทมิฬ"] = "ta",
["ทมิฬเก่า"] = "oty",
["ตอกปีซิน"] = "tpi",
["ทะวืง"] = "thm",
["ทาจิก"] = "tg",
["ทาบาซารัน"] = "tab",
["ทิเบต"] = "bo",
["ทิเบตคลาสสิก"] = "xct",
["ทิเบตเก่า"] = "otb",
["ทือกรึญญา"] = "ti",
["ทือเกร"] = "tig",
["นอซู"] = "ii",
["นอร์มัน"] = "nrf",
["นอร์สดั้งเดิม"] = "gmq-pro",
["นอร์สเก่า"] = "non",
["นอร์เวย์"] = "no",
["นอร์เวย์กลาง"] = "gmq-mno",
["นอร์เวย์แบบนือนอสก์"] = "nn",
["นอร์เวย์แบบบุ๊กมอล"] = "nb",
["นัคดั้งเดิม"] = "cau-nkh-pro",
["นาวัตล์"] = "nah",
["นาวัตล์คลาสสิก"] = "nci",
["นาวัตล์ตอนกลาง"] = "nhn",
["นาวันดั้งเดิม"] = "azc-nah-pro",
["นาวาโฮ"] = "nv",
["นาอูรู"] = "na",
["นาโปลี"] = "nap",
["นิวเคลียร์พอลินีเชียนดั้งเดิม"] = "poz-pnp-pro",
["นิวเบียเก่า"] = "onw",
["นิโคบารีสดั้งเดิม"] = "aav-nic-pro",
["นิโคบาร์กลาง"] = "ncb",
["นีวเว"] = "niu",
["นุง"] = "nut",
["นูเบียนดั้งเดิม"] = "nub-pro",
["บราฮุอี"] = "brh",
["บริทอนิกดั้งเดิม"] = "cel-bry-pro",
["บรูตะวันตก"] = "brv",
["บรูตะวันออก"] = "bru",
["บลาการ์"] = "beu",
["บอลโต-สลาวิกดั้งเดิม"] = "ine-bsl-pro",
["บะห์นัร"] = "bdq",
["บัตส์"] = "bbl",
["บันจาร์"] = "bjn",
["บัมบารา"] = "bm",
["บัลติ"] = "bft",
["บัลแกเรีย"] = "bg",
["บาลี"] = "pi",
["บาวาเรีย"] = "bar",
["บาสก์"] = "eu",
["บาสก์ดั้งเดิม"] = "euq-pro",
["บาหลี"] = "ban",
["บาเจาแบบอินโดนีเซีย"] = "bdl",
["บาเจาแบบเวสต์โคสต์"] = "bdr",
["บาโลจ"] = "bal",
["บิสลามา"] = "bi",
["บีซู"] = "bzi",
["บีนูกิด"] = "bkd",
["บีโคลตอนกลาง"] = "bcl",
["บูกิส"] = "bug",
["บูร์บอแน-แบรีชง"] = "roa-bbn",
["บูร์ยัต"] = "bua",
["ปนัร"] = "pbv",
["ปนัร-คาซี-ลึงงัมดั้งเดิม"] = "aav-pkl-pro",
["ปยู"] = "pyx",
["ปรากฤต"] = "pra",
["ปรากฤตแบบอโศก"] = "inc-ash",
["ปะหล่องดั้งเดิม"] = "mkh-pal-pro",
["ปักษ์ใต้"] = "sou",
["ปังควาฬฺ"] = "pgg",
["ปัญจาบ"] = "pa",
["ปัญจาบเก่า"] = "inc-opa",
["ปาทาน"] = "ps",
["ปาทานดั้งเดิม"] = "ira-pat-pro",
["ปาลาวาโนตอนกลาง"] = "plc",
["ปาลาวาโนตะวันตกเฉียงใต้"] = "plv",
["ปาลาวาโนแบบบรูกส์พอยต์"] = "plw",
["ปาเปียเมนตู"] = "pap",
["ปาเลา"] = "pau",
["ปาโกะห์"] = "pac",
["ปีการ์"] = "pcd",
["ปีปิล"] = "ppl",
["ปีเยมอนเต"] = "pms",
["ปูกาปูกา"] = "pkp",
["ปู้อี"] = "pcc",
["ผิงเหนือ"] = "cnp",
["ผิงใต้"] = "csp",
["ผูเซียน"] = "cpx",
["ผู้น้อย"] = "pho",
["ผู้ไท"] = "pht",
["ฝรั่งเศส"] = "fr",
["ฝรั่งเศสกลาง"] = "frm",
["ฝรั่งเศสเก่า"] = "fro",
["พทคะ"] = "bfq",
["พม่า"] = "my",
["พม่าเก่า"] = "obr",
["พรัช"] = "bra",
["พวน"] = "phu",
["พอลินีเชียนดั้งเดิม"] = "poz-pol-pro",
["พอลินีเชียนตะวันออกดั้งเดิม"] = "poz-pep-pro",
["พิหาร"] = "bh",
["พ่าเก"] = "phk",
["ฟรียูลี"] = "fur",
["ฟรีเชียตะวันตก"] = "fy",
["ฟรีเชียเก่า"] = "ofs",
["ฟรีเชียเหนือ"] = "frr",
["ฟรีเชียแบบซาเทอร์ลันท์"] = "stq",
["ฟร็องโก-พรอว็องส์"] = "frp",
["ฟาลา"] = "fax",
["ฟาลิสกุส"] = "xfa",
["ฟินนิกดั้งเดิม"] = "urj-fin-pro",
["ฟินิเชีย"] = "phn",
["ฟินแลนด์"] = "fi",
["ฟิลิปปินส์ดั้งเดิม"] = "phi-pro",
["ฟีจี"] = "fj",
["ฟูลา"] = "ff",
["มคหะ"] = "mag",
["มงตาแญ"] = "moe",
["มณีปุระ"] = "mni",
["มณีปุระเก่า"] = "omp",
["มนองตอนกลาง"] = "cmo",
["มนองใต้"] = "mnn",
["มราฐี"] = "mr",
["มราฐีเก่า"] = "omr",
["มลยาฬัม"] = "ml",
["มลายูตอนกลาง"] = "pse",
["มลายูแบบตรังกานู"] = "poz-ter",
["มลายูแบบบรูไน"] = "kxd",
["มลายูแบบปัตตานี"] = "mfa",
["มลายูแบบเกอดะฮ์"] = "meo",
["มวานี"] = "wmw",
["มอกชา"] = "mdf",
["มองโกลิกดั้งเดิม"] = "xgn-pro",
["มองโกเลีย"] = "mn",
["มองโกเลียกลาง"] = "xng",
["มองโกเลียคลาสสิก"] = "cmg",
["มอญ"] = "mnw",
["มอญ-เขมรดั้งเดิม"] = "mkh-pro",
["มอญกลาง"] = "mkh-mmn",
["มอญดั้งเดิม"] = "mkh-mnc-pro",
["มอญเก่า"] = "omx",
["มอญแบบไทย"] = "mnw-tha",
["มอลตา"] = "mt",
["มอแซนแดรอน"] = "mzn",
["มัล"] = "mlf",
["มัลดีฟส์"] = "dv",
["มัสบาเต"] = "msb",
["มากัซซาร์"] = "mak",
["มากินดาเนา"] = "mdh",
["มาซิโดเนีย"] = "mk",
["มายันดั้งเดิม"] = "myn-pro",
["มาราเนา"] = "mrw",
["มาร์วาร์"] = "mwr",
["มาร์แชลล์"] = "mh",
["มาลากาซี"] = "mg",
["มาลาโย-จามิกดั้งเดิม"] = "poz-mcm-pro",
["มาลาโย-ซุมบาวันดั้งเดิม"] = "poz-msa-pro",
["มาลาโย-พอลินีเชียนดั้งเดิม"] = "poz-pro",
["มาลาโย-พอลินีเชียนตอนกลาง-ตะวันออกดั้งเดิม"] = "poz-cet-pro",
["มาลาโย-พอลินีเชียนตะวันออกดั้งเดิม"] = "pqe-pro",
["มาวรี"] = "mi",
["มาเลย์อิกดั้งเดิม"] = "poz-mly-pro",
["มาเลเซีย"] = "ms",
["มาไซ"] = "mas",
["มิงเกรเลีย"] = "xmf",
["มิยาโกะ"] = "mvi",
["มีนังกาเบา"] = "min",
["มีรังดา"] = "mwl",
["มีโซ"] = "lus",
["มือรัสเซีย"] = "rsl",
["มืออินเดีย"] = "ins",
["มืออินโดนีเซีย"] = "inl",
["มืออเมริกัน"] = "ase",
["มือเนปาล"] = "nsp",
["มือไทย"] = "tsq",
["มุนดาดั้งเดิม"] = "mun-pro",
["มูซี"] = "mui",
["ม้ง-เมี่ยนดั้งเดิม"] = "hmx-pro",
["ม้งขาว"] = "mww",
["ม้งดั้งเดิม"] = "hmn-pro",
["ม้งเขียว"] = "hnj",
["ยอง"] = "yno",
["ยอลอ"] = "yol",
["ยะไข่"] = "rki",
["ยากัน"] = "yka",
["ยามานา"] = "yag",
["ยามี"] = "tao",
["ยาเอยามะ"] = "rys",
["ยิดดิช"] = "yi",
["ยุปปิก"] = "esu",
["ยูกริกดั้งเดิม"] = "urj-ugr-pro",
["ยูการิต"] = "uga",
["ยูราลิกดั้งเดิม"] = "urj-pro",
["ยูเครน"] = "uk",
["ยูโต-แอซเทกันดั้งเดิม"] = "azc-pro",
["รวันดา-รุนดี"] = "rw",
["รัสเซีย"] = "ru",
["ราชพังสี"] = "rjs",
["ราปานูอี"] = "rap",
["ราโรโตงา"] = "rar",
["ริฟ"] = "rif",
["รูซินแบบคาร์พาเทีย"] = "rue",
["รูซินแบบพันโนเนีย"] = "rsk",
["ร่วม"] = "mul",
["ลอมบาร์ด"] = "lmo",
["ละติน"] = "la",
["ลัก"] = "lbe",
["ลักเกีย"] = "lbc",
["ลักเซมเบิร์ก"] = "lb",
["ลัซ"] = "lzz",
["ลัตเกล"] = "ltg",
["ลัตเวีย"] = "lv",
["ลัมปุงกิกดั้งเดิม"] = "poz-lgx-pro",
["ลัมโบยา"] = "lmy",
["ลาดัก"] = "lbj",
["ลาดิน"] = "lld",
["ลาดิโน"] = "lad",
["ลาว"] = "lo",
["ลิงกาลา"] = "ln",
["ลิทัวเนีย"] = "lt",
["ลิทัวเนียเก่า"] = "olt",
["ลินดู"] = "klw",
["ลิมบู"] = "lif",
["ลิมเบิร์ก"] = "li",
["ลิววี"] = "olo",
["ลีกูเรีย"] = "lij",
["ลีสู่"] = "lis",
["ลีโวเนีย"] = "liv",
["ลึงงัม"] = "lyg",
["ลูกันดา"] = "lg",
["ลูอิชดั้งเดิม"] = "sit-luu-pro",
["วอลตา-คองโกดั้งเดิม"] = "nic-vco-pro",
["วอลตา-ไนเจอร์ดั้งเดิม"] = "alv-von-pro",
["วันดัล"] = "xvn",
["วัลลูน"] = "wa",
["วาราโอ"] = "wba",
["วาไร"] = "war",
["วินเนอเบโก"] = "win",
["วีลามอวิตแซ"] = "wym",
["สกอต"] = "sco",
["สมราย"] = "smu",
["สลาวอนิกคริสตจักรเก่า"] = "cu",
["สลาวิกดั้งเดิม"] = "sla-pro",
["สลาวิกตะวันออกเก่า"] = "orv",
["สวานา"] = "tn",
["สวาฮีลี"] = "sw",
["สวีเดน"] = "sv",
["สวีเดนเก่า"] = "gmq-osw",
["สะโอจ"] = "scq",
["สันถาลี"] = "sat",
["สันสกฤต"] = "sa",
["สำเร"] = "sxm",
["สิกขิม"] = "sip",
["สิงหล"] = "si",
["สินธ์"] = "sd",
["สิเลฏ"] = "syl",
["สุ่ย"] = "swi",
["สเปน"] = "es",
["สเปนเก่า"] = "osp",
["สโลวัก"] = "sk",
["สโลวักเก่า"] = "zlw-osk",
["สโลวินช์"] = "zlw-slv",
["สโลวีเนีย"] = "sl",
["หง่วน"] = "nuo",
["หมะ"] = "cma",
["หมิ่นดั้งเดิม"] = "zhx-min-pro",
["หมิ่นตอนกลาง"] = "czo",
["หมิ่นตะวันออก"] = "cdo",
["หมิ่นเหนือ"] = "mnp",
["หมิ่นใต้"] = "nan",
["หล่อยแอว๋"] = "luh",
["ห่อยซัน"] = "zhx-tai",
["อวัธ"] = "awa",
["ออสซีเซีย"] = "os",
["ออสโตรนีเซียนดั้งเดิม"] = "map-pro",
["ออสโตรเอเชียติกดั้งเดิม"] = "aav-pro",
["ออโรโม"] = "om",
["อะดีเกยา"] = "ady",
["อะตง"] = "aot",
["อะวาร์"] = "av",
["อะวาร์เก่า"] = "oav",
["อะแพชีตะวันตก"] = "apw",
["อักลัน"] = "akl",
["อังกฤษ"] = "en",
["อังกฤษกลาง"] = "enm",
["อังกฤษเก่า"] = "ang",
["อับคาเซีย"] = "ab",
["อัมฮารา"] = "am",
["อัมโมน"] = "sem-amm",
["อัลไตเหนือ"] = "atv",
["อัลไตใต้"] = "alt",
["อัสตูเรียส"] = "ast",
["อัสสัม"] = "as",
["อัสสัมกลาง"] = "inc-mas",
["อัสสัมช่วงต้น"] = "inc-oas",
["อากูตายา"] = "agn",
["อาข่า"] = "ahk",
["อาคัน"] = "ak",
["อาซี"] = "bno",
["อานาโตเลียนดั้งเดิม"] = "ine-ana-pro",
["อาบาซา"] = "abq",
["อาฟรีกานส์"] = "af",
["อาฟาร์"] = "aa",
["อามามิโอชิมะเหนือ"] = "ryn",
["อามามิโอชิมะใต้"] = "ams",
["อารากอน"] = "an",
["อารามายา"] = "arc",
["อาร์มีเนีย"] = "hy",
["อาร์มีเนียกลาง"] = "axm",
["อาร์มีเนียนดั้งเดิม"] = "hyx-pro",
["อาร์มีเนียเก่า"] = "xcl",
["อาลูตีก"] = "ems",
["อาหม"] = "aho",
["อาหรับ"] = "ar",
["อาหรับแบบซูดาน"] = "apd",
["อาหรับแบบตูนิเซีย"] = "aeb",
["อาหรับแบบทาจิกิสถาน"] = "abh",
["อาหรับแบบบาห์เรน"] = "abv",
["อาหรับแบบลิเบีย"] = "ayl",
["อาหรับแบบลิแวนต์ใต้"] = "ajp",
["อาหรับแบบอันดะลุส"] = "xaa",
["อาหรับแบบอิรัก"] = "acm",
["อาหรับแบบอียิปต์"] = "arz",
["อาหรับแบบอุซเบกิสถาน"] = "auz",
["อาหรับแบบฮิญาซ"] = "acw",
["อาหรับแบบเมโสโปเตเมียเหนือ"] = "ayp",
["อาหรับแบบเยเมน"] = "ayn",
["อาหรับแบบแอลจีเรีย"] = "arq",
["อาหรับแบบโมร็อกโก"] = "ary",
["อาหรับแบบโอมาน"] = "acx",
["อาหรับแบบไซปรัส"] = "acy",
["อาเจะฮ์"] = "ace",
["อาเซอร์ไบจาน"] = "az",
["อาเนตยูม"] = "aty",
["อาเบ"] = "aba",
["อิกโบ"] = "ig",
["อิงกุช"] = "inh",
["อิงเกรีย"] = "izh",
["อิตาลิกดั้งเดิม"] = "itc-pro",
["อิตาลี"] = "it",
["อินุกติตุต"] = "iu",
["อินุอิตดั้งเดิม"] = "esx-inu-pro",
["อินเทร์ลิงเกว"] = "ie",
["อินเทอร์ลิงกวา"] = "ia",
["อินโด-ยูโรเปียนดั้งเดิม"] = "ine-pro",
["อินโด-อารยันดั้งเดิม"] = "inc-pro",
["อินโด-อิเรเนียนดั้งเดิม"] = "iir-pro",
["อินโดนีเซีย"] = "id",
["อิสเตรีย"] = "ist",
["อิเรเนียนดั้งเดิม"] = "ira-pro",
["อีดาอัน"] = "dbj",
["อีทรัสคัน"] = "ett",
["อีบัน"] = "iba",
["อียิปต์"] = "egy",
["อีรานุน"] = "ill",
["อีสาน"] = "tts",
["อีโด"] = "io",
["อีโลกาโน"] = "ilo",
["อุซเบก"] = "uz",
["อุดมูร์ต"] = "udm",
["อุตซิตา"] = "oc",
["อุตซิตาเก่า"] = "pro",
["อุนเซอร์ด็อยทช์"] = "uln",
["อุมเบรีย"] = "xum",
["อุยกูร์"] = "ug",
["อุยกูร์เก่า"] = "oui",
["อูดี"] = "udi",
["อูรดู"] = "ur",
["อูรักลาโวยจ"] = "urk",
["อู๋"] = "wuu",
["อเวสตะ"] = "ae",
["อ่ายตน"] = "aio",
["ฮกเกี้ยน"] = "nan-hbl",
["ฮังการี"] = "hu",
["ฮังการีเก่า"] = "ohu",
["ฮาชอง"] = "haj",
["ฮานูโนโอ"] = "hnn",
["ฮาวาย"] = "haw",
["ฮินดี"] = "hi",
["ฮินดีเก่า"] = "inc-ohi",
["ฮินดีแบบฟีจี"] = "hif",
["ฮินดูสตานีแบบแคริบเบียน"] = "hns",
["ฮีบรู"] = "he",
["ฮีรีโมตู"] = "ho",
["ฮีลีไกโนน"] = "hil",
["ฮุนสริก"] = "hrx",
["ฮูร์เรีย"] = "xhu",
["เกชวนดั้งเดิม"] = "qwe-pro",
["เกชัว"] = "qu",
["เกชัวคลาสสิก"] = "qwc",
["เกรตอันดามันนีสดั้งเดิม"] = "qfa-adm-pro",
["เกอฮอ"] = "kpm",
["เกาหลี"] = "ko",
["เกาหลีกลาง"] = "okm",
["เกาหลีดั้งเดิม"] = "qfa-kor-pro",
["เกาหลีเก่า"] = "oko",
["เกาหลีใหม่ช่วงต้น"] = "ko-ear",
["เกโกโย"] = "ki",
["เขมร"] = "km",
["เขมรกลาง"] = "xhm",
["เขมรดั้งเดิม"] = "mkh-kmr-pro",
["เขมรเก่า"] = "okz",
["เขมรเหนือ"] = "kxm",
["เขิน"] = "kkh",
["เคลติกดั้งเดิม"] = "cel-pro",
["เควนยา"] = "qya",
["เคอร์ดิชดั้งเดิม"] = "ku-pro",
["เคิร์ดตอนกลาง"] = "ckb",
["เคิร์ดเหนือ"] = "kmr",
["เจวา"] = "ny",
["เจอร์แมนิกดั้งเดิม"] = "gem-pro",
["เจอร์แมนิกตะวันตกดั้งเดิม"] = "gmw-pro",
["เจียเม่า"] = "jio",
["เฉ่าเหมียว"] = "cov",
["เชจู"] = "jje",
["เชเชน"] = "ce",
["เชเยนน์"] = "chy",
["เชโรกี"] = "chr",
["เช็ก"] = "cs",
["เช็กเก่า"] = "zlw-ocs",
["เซบัวโน"] = "ceb",
["เซมิติกดั้งเดิม"] = "sem-pro",
["เซมิติกตะวันตกดั้งเดิม"] = "sem-wes-pro",
["เซอร์โบ-โครเอเชีย"] = "sh",
["เซอไม"] = "sea",
["เซียง"] = "hsn",
["เดนมาร์ก"] = "da",
["เดนมาร์กเก่า"] = "gmq-oda",
["เดาโร"] = "dwr",
["เตตุน"] = "tet",
["เตลูกู"] = "te",
["เตอร์กิกดั้งเดิม"] = "trk-pro",
["เตอร์กิกเก่า"] = "otk",
["เตอร์นาเต"] = "tft",
["เตอเมียร์"] = "tea",
["เติร์กเมน"] = "tk",
["เทาส์"] = "twf",
["เนปาล"] = "ne",
["เนวาร์"] = "new",
["เนวาร์กลาง"] = "nwx",
["เนวาร์คลาสสิก"] = "nwc",
["เนเกอร์ฮอลันดส์"] = "dcr",
["เบ"] = "onb",
["เบ-ไทดั้งเดิม"] = "qfa-bet-pro",
["เบงกอล"] = "bn",
["เบงกอลกลาง"] = "inc-mbn",
["เบงกอลเก่า"] = "inc-obn",
["เบดั้งเดิม"] = "qfa-onb-pro",
["เบนูเอ-คองโกดั้งเดิม"] = "nic-bco-pro",
["เบรอตง"] = "br",
["เบรอตงกลาง"] = "xbm",
["เบรอตงเก่า"] = "obt",
["เบลารุส"] = "be",
["เบอตาวี"] = "bew",
["เบอราวัน"] = "lod",
["เบอร์เบอร์ดั้งเดิม"] = "ber-pro",
["เบอร์เบอร์แบบตูนีเซีย"] = "sds",
["เปอร์มิกดั้งเดิม"] = "urj-prm-pro",
["เปอร์เซีย"] = "fa",
["เปอร์เซียกลาง"] = "pal",
["เปอร์เซียเก่า"] = "peo",
["เพลาท์ดิทช์"] = "pdt",
["เมวาร์"] = "mtr",
["เมี่ยน"] = "ium",
["เมี่ยนดั้งเดิม"] = "hmx-mie-pro",
["เยอรมัน"] = "de",
["เยอรมันตอนกลางตะวันออก"] = "gmw-ecg",
["เยอรมันต่ำ"] = "nds",
["เยอรมันต่ำกลาง"] = "gml",
["เยอรมันต่ำแบบเยอรมนี"] = "nds-de",
["เยอรมันสูงกลาง"] = "gmh",
["เยอรมันสูงเก่า"] = "goh",
["เยอรมันแบบซิพเซอร์"] = "gmw-zps",
["เยอรมันแบบว็อลกา"] = "gmw-vog",
["เยอรมันแบบอลามันเนีย"] = "gsw",
["เยอรมันแบบเพนซิลเวเนีย"] = "pdc",
["เรอหวั่ง"] = "raw",
["เลซกี"] = "lez",
["เลออน"] = "roa-leo",
["เลออนเก่า"] = "roa-ole",
["เลอเวือะตะวันตก"] = "lcp",
["เลอเวือะตะวันออก"] = "lwl",
["เวนดา"] = "ve",
["เวปส์"] = "vep",
["เวลส์"] = "cy",
["เวลส์กลาง"] = "wlm",
["เวลส์เก่า"] = "owl",
["เวอโร"] = "vro",
["เวียดนาม"] = "vi",
["เวียดนามกลาง"] = "mkh-mvi",
["เวียตติกดั้งเดิม"] = "mkh-vie-pro",
["เวเนโต"] = "vec",
["เศรปา"] = "xsr",
["เสฉวน"] = "zhx-sic",
["เหมื่อง"] = "mtq",
["เอชเตฮาร์ด"] = "esh",
["เอซเตรมาดูรา"] = "ext",
["เอมีเลีย"] = "egl",
["เอร์เซีย"] = "myv",
["เอสกิโมดั้งเดิม"] = "esx-esk-pro",
["เอสเปรันโต"] = "eo",
["เอสโตเนีย"] = "et",
["เอเว"] = "ee",
["เอเวนค์"] = "evn",
["เอเว็น"] = "eve",
["เอโดม"] = "xdm",
["เฮลเลนิกดั้งเดิม"] = "grk-pro",
["เฮาซา"] = "ha",
["เฮเรโร"] = "hz",
["แกลิกแบบสกอตแลนด์"] = "gd",
["แคชเมียร์"] = "ks",
["แคะ"] = "hak",
["แจพอนิกดั้งเดิม"] = "jpx-pro",
["แซกซันเก่า"] = "osx",
["แดลเมเชีย"] = "dlm",
["แต้จิ๋ว"] = "nan-tws",
["แบกเตรีย"] = "xbc",
["แบชเคียร์"] = "ba",
["แบนทอยด์ดั้งเดิม"] = "nic-bod-pro",
["แบนทูดั้งเดิม"] = "bnt-pro",
["แบล็กสปีช"] = "art-bsp",
["แพ็กเจ"] = "pkc",
["แฟโร"] = "fo",
["แมงซ์"] = "gv",
["แมนจู"] = "mnc",
["แสก"] = "skb",
["แอกแคด"] = "akk",
["แอตแลนติก-คองโกดั้งเดิม"] = "alv-pro",
["แอฟโฟรเอเชียติกดั้งเดิม"] = "afa-pro",
["แอลกองเคียนดั้งเดิม"] = "alg-pro",
["แอลจิกดั้งเดิม"] = "aql-pro",
["แอลฟ์ดาเลิน"] = "ovd",
["แอละแบมา"] = "akz",
["แอลเบเนีย"] = "sq",
["แอลเบเนียนดั้งเดิม"] = "sqj-pro",
["โกฟา"] = "gof",
["โคซา"] = "xh",
["โคณฑี"] = "gon",
["โคตาน"] = "kho",
["โคทาวา"] = "avk",
["โจว"] = "tsu",
["โชนา"] = "sn",
["โชร์"] = "cjs",
["โซตซิล"] = "tzo",
["โซมาลอยด์ดั้งเดิม"] = "cus-som-pro",
["โซมาลี"] = "so",
["โซ่ง"] = "soa",
["โตทา"] = "tcx",
["โตฟา"] = "kim",
["โทกูโนชิมะ"] = "tkn",
["โทแคเรียนดั้งเดิม"] = "ine-toc-pro",
["โทแคเรียนบี"] = "txb",
["โทแคเรียนเอ"] = "xto",
["โนเวียล"] = "nov",
["โบล"] = "bol",
["โบลีเนา"] = "smk",
["โบโด"] = "brx",
["โบโด-กาโรดั้งเดิม"] = "tbq-bdg-pro",
["โปรตุเกส"] = "pt",
["โปแลนด์"] = "pl",
["โปแลนด์เก่า"] = "zlw-opl",
["โภชปุระ"] = "bho",
["โมกิล"] = "mkj",
["โมอับ"] = "obm",
["โมเชโน"] = "mhn",
["โยกัด"] = "yog",
["โยนางูนิ"] = "yoi",
["โยรง"] = "yox",
["โยรูบอยด์ดั้งเดิม"] = "alv-yrd-pro",
["โยรูบา"] = "yo",
["โยรูบาดั้งเดิม"] = "alv-yor-pro",
["โรมัญญา"] = "rgn",
["โรมานช์"] = "rm",
["โรมานี"] = "rom",
["โรมาเนีย"] = "ro",
["โรฮีนจา"] = "rhg",
["โลจบาน"] = "jbo",
["โลโกโน"] = "arw",
["โลโล-เบอร์มีซดั้งเดิม"] = "tbq-lob-pro",
["โลโลอิชดั้งเดิม"] = "tbq-lol-pro",
["โวต"] = "vot",
["โวลอฟ"] = "wo",
["โวลาปุก"] = "vo",
["โอกินาวะ"] = "ryu",
["โอกิโนเอราบุ"] = "okn",
["โอจิบเว"] = "oj",
["โอซิง"] = "osi",
["โอริยา"] = "or",
["โอริยากลาง"] = "inc-mor",
["โอริยาเก่า"] = "inc-oor",
["โอเชียนิกดั้งเดิม"] = "poz-oce-pro",
["ไซลีเซีย"] = "szl",
["ไทขาว"] = "twh",
["ไทดั้งเดิม"] = "tai-pro",
["ไทดำ"] = "blt",
["ไทตะวันตกเฉียงใต้ดั้งเดิม"] = "tai-swe-pro",
["ไทย"] = "th",
["ไทลื้อ"] = "khb",
["ไทแดง"] = "tyr",
["ไทแมน"] = "tyj",
["ไทแหล่ง"] = "tjl",
["ไทใต้คง"] = "tdd",
["ไทใหญ่"] = "shn",
["ไนเจอร์-คองโกดั้งเดิม"] = "nic-pro",
["ไปวัน"] = "pwn",
["ไมถิลี"] = "mai",
["ไมนอส"] = "omn",
["ไมยา"] = "sks",
["ไมโครนีเซียนดั้งเดิม"] = "poz-mic-pro",
["ไว"] = "vai",
["ไหล"] = "lic",
["ไหลดั้งเดิม"] = "qfa-lic-pro",
["ไหหลำ"] = "hnm",
["ไอซ์แลนด์"] = "is",
["ไอนุ"] = "ain",
["ไอย์มารา"] = "ay",
["ไอริช"] = "ga",
["ไอริชกลาง"] = "mga",
["ไอริชเก่า"] = "sga",
["Ỹaroamë"] = "yro",
}
nrk5t8cab6qajbld22st4z6fb87uj5k
5723246
5723241
2026-05-20T03:29:03Z
OctraBot
3198
5723246
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",
["Abenaki"] = "abe",
["Abenlen Ayta"] = "abp",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abom"] = "aob",
["Abon"] = "abo",
["Aborlan Tagbanwa"] = "tbw",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Acatepec Me'phaa"] = "tpx",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Aché"] = "guq",
["Acroá"] = "acs",
["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",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afghan Sign Language"] = "afg",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["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",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["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",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akhvakh"] = "akv",
["Akkala Sami"] = "sia",
["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",
["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 Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Alekano"] = "gah",
["Aleut"] = "ale",
["Algerian Sign Language"] = "asp",
["Algonquin"] = "alq",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alorese"] = "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",
["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",
["Amganad Ifugao"] = "ifa",
["Ami"] = "amy",
["Amis"] = "ami",
["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",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anauyá"] = "awd-ana",
["Ancient Ligurian"] = "xlg",
["Ancient Macedonian"] = "xmk",
["Ancient North Arabian"] = "xna",
["Ancient Zapotec"] = "xzp",
["Andai"] = "afd",
["Andajin"] = "ajn",
["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",
["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",
["Anāl"] = "anm",
["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",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["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 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",
["Arára (Mato Grosso)"] = "axg",
["Arára (Pará)"] = "aap",
["As"] = "asz",
["Asaro'o"] = "mtv",
["Ashe"] = "ahs",
["Ashkun"] = "ask",
["Asho Chin"] = "csh",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asoa"] = "asv",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["อารามายาใหม่แบบอัสซีเรีย"] = "aii",
["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",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["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",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["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",
["Ayomán"] = "sai-ayo",
["Ayoquesco Zapotec"] = "zaf",
["Ayoreo"] = "ayo",
["Ayu"] = "ayu",
["Ayutla Mixtec"] = "miy",
["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",
["Bada"] = "bhz",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Baduy"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["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",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahonsuai"] = "bsu",
["Bai (South Sudan)"] = "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 Malay"] = "mhp",
["Balkan Gagauz Turkish"] = "bgx",
["Balkan Romani"] = "rmn",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Baltic Romani"] = "rml",
["Baluan-Pam"] = "blq",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["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",
["Bangru"] = "sit-ban",
["Bangubangu"] = "bnx",
["Bangwinji"] = "bsj",
["Baniva"] = "bvv",
["Baniwa"] = "bwi",
["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",
["Basketo"] = "bst",
["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",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bau Bidayuh"] = "sne",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["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",
["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",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berau Malay"] = "bve",
["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",
["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",
["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",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["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",
["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",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["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 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",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["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",
["Bourguignon"] = "roa-brg",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brazilian Sign Language"] = "bzs",
["Brek Karen"] = "kvl",
["Brem"] = "buq",
["Breri"] = "brq",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Brunei Bisaya"] = "bsb",
["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",
["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 Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bulungan"] = "blj",
["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",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["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",
["Cambodian Sign Language"] = "csx",
["Cameroon Mambila"] = "mcu",
["Cameroon Pidgin"] = "wes",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Cappadocian Greek"] = "cpg",
["Caquinte"] = "cot",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carijona"] = "cbd",
["Carolina Algonquian"] = "crr",
["Carolinian"] = "cal",
["Carpathian Romani"] = "rmc",
["Carrier"] = "crx",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Casiguran Dumagat Agta"] = "dgc",
["Casuarina Coast Asmat"] = "asc",
["Catacao"] = "sai-cat",
["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",
["Celtiberian"] = "xce",
["Cen"] = "cen",
["Central Asmat"] = "cns",
["Central Atlas Tamazight"] = "tzm",
["Central Awyu"] = "awu",
["Central Bai"] = "bca",
["Central Bontoc"] = "lbk",
["Central Cagayan Agta"] = "agt",
["ฟรังโกเนียตอนกลาง"] = "gmw-cfr",
["Central Grebo"] = "grv",
["Central Huasteca Nahuatl"] = "nch",
["Central Huishui Hmong"] = "hmc",
["Central Mahuatlán Zapotec"] = "zam",
["Central Mansi"] = "mns-cen",
["Central Masela"] = "mxz",
["Central Mashan Hmong"] = "hmm",
["Central Mazahua"] = "maz",
["Central Melanau"] = "mel",
["Central Ojibwa"] = "ojc",
["Central Pame"] = "pbs",
["Central Pomo"] = "poo",
["Central Puebla Nahuatl"] = "ncx",
["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",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["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",
["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",
["Chayahuita"] = "cbt",
["Chayuco Mixtec"] = "mih",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chicahuaxtla Triqui"] = "trs",
["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 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",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chontal Maya"] = "chf",
["Chopi"] = "cce",
["Chothe Naga"] = "nct",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Church Slavonic"] = "zls-chs",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuukese"] = "chk",
["Chuvan"] = "xcv",
["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",
["แกลิกคลาสสิก"] = "ghc",
["Classical Mandaic"] = "myz",
["ซีรีแอกคลาสสิก"] = "syc",
["Coahuilteco"] = "xcw",
["Coast Miwok"] = "csi",
["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",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Coroado Puri"] = "sai-crd",
["Cosoleacaque Nahuatl"] = "nhk",
["Costa Rican Sign Language"] = "csr",
["Cotabato Manobo"] = "mta",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Creek"] = "mus",
["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",
["Cung"] = "cug",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyamecalco Mixtec"] = "xtu",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["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",
["Dakpa"] = "dka",
["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 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",
["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",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Delta Yokuts"] = "yok-dly",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demotic Egyptian"] = "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",
["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",
["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",
["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 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",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Early Old Oghuz"] = "trk-eog",
["Early Tripuri"] = "xtr",
["East Damar"] = "dmr",
["East Franconian"] = "vmf",
["East Futuna"] = "fud",
["East Kewa"] = "kjs",
["East Limba"] = "lma",
["East Masela"] = "vme",
["East Nyala"] = "nle",
["East Tarangan"] = "tre",
["East Yugur"] = "yuy",
["Eastern Acipa"] = "acp",
["Eastern Arrernte"] = "aer",
["Eastern Bolivian Guarani"] = "gui",
["Eastern Bontoc"] = "ebk",
["Eastern Canadian Inuktitut"] = "ike",
["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 Keres"] = "kee",
["Eastern Khanty"] = "kca-eas",
["Eastern Krahn"] = "kqo",
["Eastern Lalu"] = "yit",
["Eastern Magar"] = "mgp",
["Eastern Maninkakan"] = "emk",
["Eastern Mari"] = "mhr",
["Eastern Meohang"] = "emg",
["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 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",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["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",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["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",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Esmeralda"] = "sai-esm",
["Esselen"] = "esq",
["Estado de México Otomi"] = "ots",
["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",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewondo"] = "ewo",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faire Atta"] = "azt",
["Faita"] = "faj",
["Faiwol"] = "fai",
["Fakkanci"] = "gel",
["Falam Chin"] = "cfm",
["Fali"] = "fli",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Far Western Muria"] = "fmu",
["ฟราฟรา"] = "gur",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["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"] = "yrk-for",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["French Belgian Sign Language"] = "sfb",
["French Sign Language"] = "fsl",
["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",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Gaikundi"] = "gbf",
["Gaina"] = "gcn",
["Gal"] = "gap",
["Galambu"] = "glo",
["Galatian"] = "xga",
["Galela"] = "gbi",
["Galeya"] = "gar",
["Galice"] = "gce",
["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-Ningi"] = "bte",
["Gana"] = "gnq",
["Ganang"] = "gne",
["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",
["Garre"] = "gex",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gashowu Yokuts"] = "yok-gsy",
["Gata'"] = "gaq",
["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",
["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",
["Gepo"] = "ygp",
["Gera"] = "gew",
["Gerka"] = "gek",
["German Sign Language"] = "gsg",
["Geruma"] = "gea",
["Geser-Gorom"] = "ges",
["Geshiza"] = "ero-gsz",
["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",
["Gilima"] = "gix",
["Gimi (Austronesian)"] = "gip",
["Gimi (Papuan)"] = "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",
["Gogo"] = "gog",
["Gogodala"] = "ggw",
["Goguryeo"] = "zkg",
["Gojri"] = "gju",
["Gokana"] = "gkn",
["Gokhy"] = "tbq-gkh",
["Gola"] = "gol",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gone Dau"] = "goo",
["Gongduk"] = "goe",
["Gonja"] = "gjn",
["Goo"] = "gov",
["Gor"] = "gqr",
["Gorakor"] = "goc",
["Gorap"] = "goq",
["Goreng"] = "xgg",
["Gorontalo"] = "gor",
["Gorovu"] = "grq",
["Gorwaa"] = "gow",
["Gottscheerish"] = "gmw-gts",
["Goundo"] = "goy",
["Gourmanchéma"] = "gux",
["Gowlan"] = "goj",
["Gowro"] = "gwf",
["Gozarkhani"] = "goz",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Greek Sign Language"] = "gss",
["Green Gelao"] = "giq",
["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",
["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 Sign Language"] = "lgs",
["Guinean Sign Language"] = "gus",
["Guiqiong"] = "gqi",
["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",
["Hadoti"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haigwai"] = "hgw",
["Hailufeng Min"] = "nan-hlh",
["Hainyaxo Bozo"] = "bzx",
["Haiphong Sign Language"] = "haf",
["Haisla"] = "has",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["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",
["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 Sign Language"] = "hsl",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaiian Creole"] = "hwc",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiltsuk"] = "hei",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Herdé"] = "hed",
["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",
["Hijuk"] = "hij",
["Hill Maria"] = "mrr",
["Himarimã"] = "hir",
["Hindi Dogri"] = "dgo",
["Hinduri"] = "hii",
["Hinukh"] = "gin",
["Hismaic"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hittite"] = "hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["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",
["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",
["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 Sign Language"] = "hsh",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunnic"] = "xhc",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["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",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberian"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Icelandic Sign Language"] = "icl",
["Iceve-Maci"] = "bec",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Idoma"] = "idu",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["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",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Portuguese"] = "idb",
["Indri"] = "idr",
["Indus Kohistani"] = "mvy",
["Inebu One"] = "oin",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Inpui Naga"] = "nkf",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuit Sign Language"] = "iks",
["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",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Iresim"] = "ire",
["Iriga Bicolano"] = "bto",
["Irish Sign Language"] = "isg",
["Irula"] = "iru",
["Isabi"] = "isa",
["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",
["Istro-Romanian"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["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",
["Itza'"] = "itz",
["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 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 Sign Language"] = "jsl",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javindo"] = "jvd",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["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",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jina"] = "jia",
["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",
["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",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachi Koli"] = "gjk",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadiwéu"] = "kbc",
["Kado"] = "kdv",
["Kadugli"] = "xtc",
["Kaduo"] = "ktp",
["Kaera"] = "jka",
["Kafa"] = "kbr",
["Kafoa"] = "kpu",
["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",
["Kaitag"] = "xdq",
["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",
["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",
["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",
["Kamasa"] = "klp",
["Kamasau"] = "kms",
["Kamassian"] = "xas",
["Kamayo"] = "kyk",
["Kamayurá"] = "kay",
["Kamba"] = "kam",
["Kambaata"] = "ktb",
["Kambaira"] = "kyy",
["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",
["Kannada Kurumba"] = "kfi",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["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",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Kare (Central Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["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",
["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",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayan Mahakam"] = "xay",
["Kayan River Kayan"] = "xkn",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kaytetye"] = "gbb",
["Kayupulau"] = "kzu",
["Kazukuru"] = "kzk",
["Ke'o"] = "xxk",
["Keak"] = "keh",
["Keapara"] = "khz",
["Kedang"] = "ksx",
["Keder"] = "kdy",
["Kehu"] = "khh",
["Kei"] = "kei",
["Keiga"] = "kec",
["Kein"] = "bmh",
["Keiyo"] = "eyo",
["Kela-Yela"] = "kel",
["Kelabit"] = "kzi",
["Kelantan Peranakan Hokkien"] = "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",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Khamnigan Mongol"] = "ykh",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khezha Naga"] = "nkh",
["Khiamniungan Naga"] = "kix",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khoekhoe"] = "naq",
["Khoibu Naga"] = "nkb",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khorasani Turkish"] = "kmz",
["Khorezmian Turkic"] = "zkh",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khumi Chin"] = "cnk",
["Khvarshi"] = "khv",
["Khwarezmian"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Kiautschou German Pidgin"] = "crp-kia",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["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",
["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",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Nar"] = "gko",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["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",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konso"] = "kxc",
["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 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",
["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",
["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",
["Ktunaxa"] = "kut",
["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",
["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",
["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",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutang Ghale"] = "ght",
["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",
["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",
["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",
["Labu"] = "lbu",
["Labuk-Kinabatangan Kadazan"] = "dtb",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["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",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["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 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",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvian Sign Language"] = "lsl",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentian"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["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",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (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",
["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",
["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 Sign Language"] = "lbs",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limbum"] = "lmp",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Limos Kalinga"] = "kmk",
["Linear A"] = "lab",
["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",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["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",
["Loun"] = "lox",
["Loup A"] = "xlo",
["Loup B"] = "xlb",
["Lovono"] = "vnk",
["Lower Burdekin"] = "xbb",
["Lower Chehalis"] = "cea",
["Lower Grand Valley Dani"] = "dni",
["Lower Nossob"] = "nsb",
["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",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Lukpa"] = "dop",
["Lule"] = "ule",
["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",
["Lutuv"] = "clt",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwian"] = "xlu",
["Luwo"] = "lwo",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycian"] = "xlc",
["Lydian"] = "xld",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabaka Valley Kalinga"] = "kkg",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macau Pidgin Portuguese"] = "crp-mpp",
["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",
["Magdalena Peñasco Mixtec"] = "xtm",
["Magiyi"] = "gmg",
["Magoma"] = "gmx",
["Magori"] = "zgr",
["Magɨ"] = "gkd",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["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",
["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 Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malaccan Creole Malay"] = "ccm",
["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",
["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 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",
["มลายูแบบมานาโด"] = "xmm",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["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",
["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",
["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",
["Manya"] = "mzj",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Mao Naga"] = "nbi",
["Maonan"] = "mmd",
["Maore Comorian"] = "swb",
["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",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["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",
["Marsian"] = "ims",
["Martha's Vineyard Sign Language"] = "mre",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marúbo"] = "mzr",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["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",
["Mator"] = "mtm",
["Matsés"] = "mcf",
["Mattole"] = "mvb",
["Matukar"] = "mjk",
["Matumbi"] = "mgw",
["Matya Samo"] = "stj",
["Matís"] = "mpq",
["Maung"] = "mph",
["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",
["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",
["Mbya Guarani"] = "gun",
["Me'en"] = "mym",
["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",
["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 Cornish"] = "cnx",
["Middle Kannada"] = "dra-mkn",
["Middle Median"] = "xme-mid",
["Middle Scots"] = "gmw-msc",
["Middle Watut"] = "mpl",
["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",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miraya Bikol"] = "rbl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong Sign Language"] = "rsm",
["Miriwung"] = "mep",
["Mirning"] = "gmr",
["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",
["Miyobe"] = "soy",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mo"] = "wkd",
["Mo'da"] = "gbn",
["Moba"] = "mfq",
["Mobilian"] = "mod",
["Mobu"] = "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",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["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",
["Monastic Sign Language"] = "mzg",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol"] = "mgt",
["Mongolian Sign Language"] = "msr",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Monimbo"] = "mom",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monsang Naga"] = "nmh",
["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 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",
["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",
["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",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mzieme Naga"] = "nme",
["Mághdì"] = "gmd",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["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",
["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",
["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",
["Natioro"] = "nti",
["Natú"] = "sai-nat",
["Natügu"] = "ntu",
["Nauete"] = "nxa",
["Naukanski"] = "ynk",
["Nauna"] = "ncn",
["Nauo"] = "nwo",
["Navut"] = "nsw",
["Nawaru"] = "nwr",
["Nawathinehena"] = "nwa",
["Nawdm"] = "nmz",
["Nawuri"] = "naw",
["Naxi"] = "nxq",
["Nayi"] = "noz",
["Naʼvi"] = "art-nav",
["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",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["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",
["Nepali Kurux"] = "kxl",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New River Shasta"] = "nai-nrs",
["New Zealand Sign Language"] = "nzs",
["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",
["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",
["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",
["Noakhali"] = "oak",
["Nobiin"] = "fia",
["Nobonob"] = "gaw",
["Nocamán"] = "nom",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["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 Giziga"] = "gis",
["North Levantine Arabic"] = "apc",
["North Marquesan"] = "mrq",
["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 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 Khanty"] = "kca-nor",
["Northern Kissi"] = "kqs",
["Northern Lorung"] = "lbr",
["Northern Luri"] = "lrc",
["Northern Mansi"] = "mns-nor",
["Northern Mashan Hmong"] = "hmp",
["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 Pomo"] = "pej",
["Northern Puebla Nahuatl"] = "ncj",
["Northern Pumi"] = "pmi",
["Northern Qiandong Miao"] = "hea",
["Northern Qiang"] = "cng",
["Northern Rengma Naga"] = "nnl",
["Northern Roglai"] = "rog",
["Northern Saharan Berber"] = "mzb",
["Northern Selkup"] = "sel-nor",
["Northern Sierra Miwok"] = "nsq",
["Northern Subanen"] = "stb",
["Northern Tarahumara"] = "thh",
["Northern Tepehuan"] = "ntp",
["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 Sign Language"] = "nsl",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["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",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["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",
["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ü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",
["Ocotepec Mixtec"] = "mie",
["Ocotlán Zapotec"] = "zac",
["Od"] = "odk",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oirata"] = "oia",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Okiek"] = "oki",
["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 Awadhi"] = "inc-oaw",
["Old Gutnish"] = "gmq-ogt",
["Old Kannada"] = "dra-okn",
["Old Kentish Sign Language"] = "okl",
["Old Komi"] = "urj-koo",
["Old Median"] = "xme-old",
["Old Navarro-Aragonese"] = "roa-ona",
["Old Novgorodian"] = "zle-ono",
["Old Prussian"] = "prg",
["รูซินเก่า"] = "zle-ort",
["Old South Arabian"] = "sem-srb",
["Old Sundanese"] = "osn",
["Old Tati"] = "xme-ott",
["Old Telugu"] = "dra-ote",
["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",
["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",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Oscan"] = "osc",
["Ososo"] = "oso",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Otomaco"] = "sai-oto",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["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-Hng"] = "pha",
["Paamese"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["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",
["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",
["Palawan Batak"] = "bya",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Palewyami Yokuts"] = "yok-ply",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palula"] = "phl",
["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",
["Pangwa"] = "pbr",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["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",
["Papora"] = "ppu",
["Papua New Guinean Sign Language"] = "pgz",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["พาร์เทีย"] = "xpr",
["Parya"] = "paq",
["Pará Gavião"] = "gvp",
["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",
["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",
["Peba"] = "sai-peb",
["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",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Pero"] = "pip",
["Persian Sign Language"] = "psc",
["Peruvian Sign Language"] = "prl",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Peñoles Mixtec"] = "mil",
["Phai"] = "prt",
["Phala"] = "ypa",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Philippine Sign Language"] = "psp",
["Philistine"] = "mis-phi",
["Phimbi"] = "phm",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrygian"] = "xpg",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pictish"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Delaware"] = "dep",
["Pidgin Iha"] = "ihb",
["Pidgin Onin"] = "onx",
["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",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidian"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["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",
["Playero"] = "gob",
["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 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 Sign Language"] = "psr",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Prasuni"] = "prn",
["Pre-Samnite"] = "itc-psa",
["Primitive Irish"] = "pgl",
["Principense"] = "pre",
["Proto-Abkhaz-Abaza"] = "cau-abz-pro",
["Proto-Amuesha-Chamicuro"] = "awd-amc-pro",
["Proto-Andian"] = "cau-and-pro",
["Proto-Apachean"] = "apa-pro",
["Proto-Arawa"] = "auf-pro",
["Proto-Arawak"] = "awd-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-Avaro-Andian"] = "cau-ava-pro",
["Proto-Bahnaric"] = "mkh-ban-pro",
["Proto-Bai"] = "sit-bai-pro",
["Proto-Batak"] = "btk-pro",
["Proto-Binanderean"] = "paa-bin-pro",
["Proto-Bodish"] = "sit-bdi-pro",
["Proto-Bongo-Bagirmi"] = "csu-bba-pro",
["Proto-Boran"] = "sai-bor-pro",
["Proto-Bua"] = "alv-bua-pro",
["Proto-Bungku-Tolaki"] = "poz-btk-pro",
["Proto-Burmish"] = "tbq-brm-pro",
["Proto-Caddoan"] = "cdd-pro",
["Proto-Cangin"] = "alv-cng-pro",
["Proto-Cariban"] = "sai-car-pro",
["Proto-Central Jê"] = "sai-cje-pro",
["Proto-Central Naga"] = "sit-aao-pro",
["Proto-Central New South Wales"] = "aus-cww-pro",
["Proto-Central Sudanic"] = "csu-pro",
["Proto-Central Togo"] = "alv-gtm-pro",
["Proto-Cerrado"] = "sai-cer-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-Dangari"] = "inc-dng-pro",
["Proto-Dargwa"] = "cau-drg-pro",
["Proto-Dizoid"] = "omv-diz-pro",
["Proto-Eastern Jebel"] = "sdv-eje-pro",
["Proto-Eastern Oti-Volta"] = "nic-eov-pro",
["Proto-Edekiri"] = "alv-edk-pro",
["Proto-Edoid"] = "alv-edo-pro",
["Proto-Ersuic"] = "sit-ers-pro",
["Proto-Eskimo-Aleut"] = "esx-pro",
["Proto-Fali"] = "alv-fli-pro",
["Proto-Gbaya"] = "gba-pro",
["Proto-Grassfields"] = "nic-grf-pro",
["Proto-Guang"] = "alv-gng-pro",
["Proto-Gurunsi"] = "nic-gns-pro",
["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro",
["Proto-Heiban"] = "alv-hei-pro",
["Proto-Highland East Cushitic"] = "cus-hec-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-Iroquoian"] = "iro-pro",
["Proto-Iwaidjan"] = "aus-wdj-pro",
["Proto-Jukunoid"] = "nic-jkn-pro",
["Proto-Jê"] = "sai-jee-pro",
["Proto-Kadu"] = "qfa-kad-pro",
["Proto-Kalapuyan"] = "nai-klp-pro",
["Proto-Kam-Sui"] = "qfa-kms-pro",
["Proto-Kampa"] = "awd-kmp-pro",
["Proto-Kamta"] = "inc-krd-pro",
["Proto-Katuic"] = "mkh-kat-pro",
["Proto-Kham"] = "sit-kha-pro",
["Proto-Khanty"] = "kca-pro",
["Proto-Kho-Bwa"] = "sit-khb-pro",
["Proto-Khoe"] = "khi-kho-pro",
["Proto-Koman"] = "ssa-kom-pro",
["Proto-Komisenian"] = "ira-kms-pro",
["Proto-Kru"] = "kro-pro",
["Proto-Kuki-Chin"] = "tbq-kuk-pro",
["Proto-Kuliak"] = "ssa-klk-pro",
["Proto-Kwa"] = "alv-kwa-pro",
["Proto-Lalo"] = "tbq-lal-pro",
["Proto-Lezghian"] = "cau-lzg-pro",
["Proto-Lower Cross River"] = "nic-lcr-pro",
["Proto-Maidun"] = "nai-mdu-pro",
["Proto-Mande"] = "dmn-pro",
["Proto-Mangbetu"] = "csu-maa-pro",
["Proto-Mansi"] = "mns-pro",
["Proto-Mari"] = "chm-pro",
["Proto-Masa"] = "cdc-mas-pro",
["Proto-Mazatec"] = "omq-maz-pro",
["Proto-Medo-Parthian"] = "ira-mpr-pro",
["Proto-Mixe-Zoque"] = "nai-miz-pro",
["Proto-Mixtec"] = "omq-mxt-pro",
["Proto-Mixtecan"] = "omq-mix-pro",
["Proto-Mordvinic"] = "urj-mdv-pro",
["Proto-Mumuye"] = "alv-mum-pro",
["Proto-Munji-Yidgha"] = "ira-mny-pro",
["Proto-Muskogean"] = "nai-mus-pro",
["Proto-Na-Dene"] = "xnd-pro",
["Proto-Naish"] = "sit-nas-pro",
["Proto-Nawiki"] = "awd-nwk-pro",
["Proto-Nilo-Saharan"] = "ssa-pro",
["Proto-Nilotic"] = "sdv-nil-pro",
["Proto-North Halmahera"] = "paa-nha-pro",
["Proto-North Iroquoian"] = "iro-nor-pro",
["Proto-Northern Jê"] = "sai-nje-pro",
["Proto-Northern Naga"] = "sit-kon-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-Ogoni"] = "nic-ogo-pro",
["Proto-Omotic"] = "omv-pro",
["Proto-Ongan"] = "qfa-ong-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-Pama-Nyungan"] = "aus-pam-pro",
["Proto-Paresi-Waura"] = "awd-prw-pro",
["Proto-Pearic"] = "mkh-pea-pro",
["Proto-Plateau"] = "nic-plt-pro",
["Proto-Plateau Penutian"] = "nai-plp-pro",
["Proto-Pomo"] = "nai-pom-pro",
["Proto-Puroik"] = "sit-khp-pro",
["Proto-Rukai"] = "dru-pro",
["Proto-Ryukyuan"] = "jpx-ryu-pro",
["Proto-Sabaki"] = "bnt-sab-pro",
["Proto-Saka"] = "xsc-sak-pro",
["Proto-Saka-Wakhi"] = "xsc-skw-pro",
["Proto-Salish"] = "sal-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-Shughni-Roshani"] = "ira-shr-pro",
["Proto-Shughni-Yazghulami"] = "ira-shy-pro",
["Proto-Shughni-Yazghulami-Munji"] = "ira-sym-pro",
["Proto-Siouan"] = "sio-pro",
["Proto-Siouan-Catawban"] = "nai-sca-pro",
["Proto-Songhay"] = "son-pro",
["Proto-Sotho-Tswana"] = "bnt-sts-pro",
["Proto-South Cushitic"] = "cus-sou-pro",
["Proto-Southern Jê"] = "sai-sje-pro",
["Proto-Ta-Arawak"] = "awd-taa-pro",
["Proto-Takic"] = "azc-tak-pro",
["Proto-Taman"] = "sdv-tmn-pro",
["Proto-Tamangic"] = "sit-tam-pro",
["Proto-Tangkhulic"] = "sit-tng-pro",
["Proto-Tani"] = "sit-tan-pro",
["Proto-Taranoan"] = "sai-tar-pro",
["Proto-Tatic"] = "xme-ttc-pro",
["Proto-Totozoquean"] = "nai-tot-pro",
["Proto-Trans-New Guinea"] = "ngf-pro",
["Proto-Triqui"] = "omq-tri-pro",
["Proto-Tsezian"] = "cau-tsz-pro",
["Proto-Tsimshianic"] = "nai-tsi-pro",
["Proto-Tungusic"] = "tuw-pro",
["Proto-Ubangian"] = "nic-ubg-pro",
["Proto-Upper Cross River"] = "nic-ucr-pro",
["Proto-Utian"] = "nai-utn-pro",
["Proto-Western Kho-Bwa"] = "sit-khw-pro",
["Proto-Western Mande"] = "dmn-mdw-pro",
["Proto-Witotoan"] = "sai-wit-pro",
["Proto-Yeniseian"] = "qfa-yen-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",
["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",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puroik"] = "suv",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamèi"] = "pme",
["Pwapwâ"] = "pop",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu (New Guinea)"] = "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",
["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",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rajput Garasia"] = "gra",
["Rakahanga-Manihiki"] = "rkh",
["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",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["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",
["ฟรังโกเนียแบบไรน์"] = "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",
["Roma"] = "rmm",
["Romam"] = "rmx",
["Romanian Sign Language"] = "rms",
["Romano-Greek"] = "rge",
["Romano-Serbian"] = "rsb",
["Romanova"] = "rmv",
["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",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwandan Sign Language"] = "rsn",
["Réunion Creole French"] = "rcf",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["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",
["Saep"] = "spd",
["Safaitic"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sala"] = "shq",
["Salampasu"] = "slx",
["Salas"] = "sgu",
["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",
["Samalian"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samaritan Hebrew"] = "smp",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Samo"] = "smq",
["Samoan Plantation Pidgin"] = "crp-spp",
["Samogitian"] = "sgs",
["Samosa"] = "swm",
["Sampang"] = "rav",
["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",
["Sangtam Naga"] = "nsa",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sankaran Maninka"] = "msc",
["Sansi"] = "ssi",
["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",
["Santiago Xanica Zapotec"] = "zpr",
["Santo Domingo Albarradas Zapotec"] = "zas",
["Sanumá"] = "xsu",
["Sanxiang Min"] = "nan-zsh",
["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",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Satawalese"] = "stw",
["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",
["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",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semigallian"] = "xzm",
["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",
["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",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Shaojiang Min"] = "sjc",
["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",
["Sheshi Kham"] = "kip",
["Shetland"] = "scz",
["Shi"] = "shr",
["Shihhi Arabic"] = "ssh",
["Shiki"] = "gua",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shoo-Minda-Nye"] = "bcv",
["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",
["Siculo-Arabic"] = "sqr",
["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",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikule"] = "skh",
["Sila"] = "slt",
["Silacayoapan Mixtec"] = "mks",
["Sileibi"] = "sbq",
["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",
["Sindhi Bhil"] = "sbn",
["Sindihui Mixtec"] = "xts",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["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",
["Sisaala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Sivia Sign Language"] = "lsv",
["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",
["Slovakian Sign Language"] = "svk",
["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",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["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",
["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 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 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 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 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 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 Samo"] = "sbd",
["Southern Selkup"] = "sel-sou",
["Southern Sierra Miwok"] = "skd",
["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 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 Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sranan Tongo"] = "srn",
["Sri Lankan Creole Malay"] = "sci",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudest"] = "tgo",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sugut Dusun"] = "kzs",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumtu Chin"] = "csv",
["Sunam"] = "ssk",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["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",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["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",
["Taba"] = "mky",
["Tabaa Zapotec"] = "zat",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["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",
["Tagal Murut"] = "mvv",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Pao"] = "tpo",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taiap"] = "gpn",
["Taikat"] = "aos",
["Taimyr Pidgin Russian"] = "crp-tpr",
["Tainae"] = "ago",
["Tairuma"] = "uar",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taiwan Sign Language"] = "tss",
["Taje"] = "pee",
["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",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tanggu"] = "tgu",
["Tangkhul Naga"] = "nmf",
["Tangko"] = "tkx",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangwang"] = "mis-tnw",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanudan Kalinga"] = "kml",
["Tanzanian Sign Language"] = "tza",
["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",
["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",
["Tataviam"] = "azc-tat",
["Tatuyo"] = "tav",
["Tauade"] = "ttd",
["Taulil"] = "tuh",
["Taungyo"] = "tco",
["Taupota"] = "tpa",
["Tause"] = "tad",
["Taushiro"] = "trr",
["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",
["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",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Temascaltepec Nahuatl"] = "nhv",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["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",
["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",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetelcingo Nahuatl"] = "nhg",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["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",
["Thaiphum Chin"] = "cth",
["Thakali"] = "ths",
["Thamudic"] = "sem-tha",
["Thangal Naga"] = "nki",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibetan Sign Language"] = "lsn",
["Ticuna"] = "tca",
["Tidaá Mixtec"] = "mtx",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigon Mbembe"] = "nza",
["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",
["Tinrin"] = "cir",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["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",
["Tocho"] = "taz",
["Todrah"] = "tdr",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelauan"] = "tkl",
["Toki Pona"] = "tok",
["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",
["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",
["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",
["Tsucuba"] = "cbq",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["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-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tundra Enets"] = "enh",
["Tundra Nenets"] = "yrk-tun",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tunia"] = "tug",
["Tunica"] = "tun",
["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",
["Turdetanian"] = "mis-tdt",
["Turdulian"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turkish Sign Language"] = "tsm",
["Turks and Caicos Creole English"] = "tch",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Tuscarora"] = "tus",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututepec Mixtec"] = "mtu",
["Tututni"] = "tuu",
["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",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["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",
["Udihe"] = "ude",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ughele"] = "uge",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["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",
["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",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urali"] = "url",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["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",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["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",
["Venetic"] = "xve",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["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",
["Volscian"] = "xvo",
["Vono"] = "kch",
["Voro"] = "vor",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["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",
["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",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["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",
["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 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 Damar"] = "drn",
["West Flemish"] = "vls",
["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 Arrernte"] = "are",
["Western Bolivian Guarani"] = "gnw",
["Western Bukidnon Manobo"] = "mbb",
["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 Keres"] = "kjq",
["Western Krahn"] = "krw",
["Western Lalu"] = "ywl",
["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 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",
["Weyto"] = "woy",
["White Gelao"] = "giw",
["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",
["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",
["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",
["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",
["Xianbei"] = "mis-xbi",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["Xingú Asuriní"] = "asn",
["Xiongnu"] = "mis-xnu",
["Xipaya"] = "xiy",
["Xiri"] = "xii",
["Xiriâna"] = "xir",
["Xishanba Lalo"] = "ywt",
["Xocó"] = "sai-xoc",
["Xokleng"] = "xok",
["Xukurú"] = "xoo",
["Xwela Gbe"] = "xwe",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yaghnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yamben"] = "ynb",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["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",
["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",
["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",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yoloxochitl Mixtec"] = "xty",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yorta Yorta"] = "xyy",
["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",
["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",
["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",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayein Karen"] = "kxk",
["Zayse-Zergulla"] = "zay",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zealandic"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zeme Naga"] = "nzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhenan Min"] = "nan-zhe",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zotung Chin"] = "czt",
["Zou"] = "zom",
["Zulgo-Gemzek"] = "gnd",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["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",
["กงกัณ"] = "kok",
["กบาลัน"] = "ckv",
["กรีก"] = "el",
["กรีกแบบไมซีนี"] = "gmy",
["กรีกโบราณ"] = "grc",
["กรีนแลนด์"] = "kl",
["กวางตุ้ง"] = "yue",
["กอกบอรอก"] = "trp",
["กอท"] = "got",
["กอทแบบไครเมีย"] = "gme-cgo",
["กอล"] = "cel-gau",
["กะดู"] = "zkd",
["กะตูตะวันตก"] = "kuf",
["กะตูตะวันออก"] = "ktv",
["กะยัน"] = "pdu",
["กะยาตะวันตก"] = "kyu",
["กะยาตะวันออก"] = "eky",
["กะเหรี่ยงดั้งเดิม"] = "kar-pro",
["กะเหรี่ยงปะโอ"] = "blk",
["กะเหรี่ยงสะกอ"] = "ksw",
["กะเหรี่ยงโปตะวันตก"] = "pwo",
["กะเหรี่ยงโปตะวันออก"] = "kjp",
["กะเหรี่ยงโปเหนือ"] = "pww",
["กะเหรี่ยงโปแพร่"] = "kjt",
["กะไบล์"] = "kab",
["กัจฉ์"] = "kfr",
["กันกานาอือ"] = "kne",
["กันกานาอือเหนือ"] = "xnn",
["กันนฑะ"] = "kn",
["กัมเบอรา"] = "xbr",
["กัวรานีคลาสสิก"] = "gn-cls",
["กัวรานีแบบปารากวัย"] = "gug",
["กั้น"] = "gan",
["กากาอุซ"] = "gag",
["กาดาซันชายฝั่ง"] = "kzj",
["กาตาลา"] = "ca",
["กาตาลาเก่า"] = "roa-oca",
["กานูรี"] = "kr",
["กาปัมปางัน"] = "pam",
["กามรูป"] = "inc-kam",
["การากัลปัก"] = "kaa",
["กาลากัน"] = "kqe",
["กาลากันแบบกากัน"] = "kll",
["กาลากันแบบตากาเกาลู"] = "klg",
["กาลิเซีย"] = "gl",
["กาลิเซีย-โปรตุเกสเก่า"] = "roa-opt",
["กาเรา"] = "kyj",
["กาโม"] = "gmv",
["กาโร"] = "grt",
["กิลเบิร์ต"] = "gil",
["กีนาบาตางันตอนบน"] = "dmg",
["กืออึซ"] = "gez",
["กุรุข"] = "kru",
["กูนียันดี"] = "gni",
["กูย"] = "kdt",
["กูร์ดั้งเดิม"] = "nic-gur-pro",
["กฺ๋อง"] = "ugo",
["กเบดั้งเดิม"] = "alv-gbe-pro",
["ขมุ"] = "kjg",
["ขมุอิกดั้งเดิม"] = "mkh-khm-pro",
["ขร้า-ไทดั้งเดิม"] = "qfa-tak-pro",
["ขร้าดั้งเดิม"] = "qfa-kra-pro",
["ครี"] = "cr",
["ครีโอลกาบูเวร์ดี"] = "kea",
["ครีโอลกินี-บิสเซา"] = "pov",
["ครีโอลจาเมกา"] = "jam",
["ครีโอลมอริเชียส"] = "mfe",
["ครีโอลมาเก๊า"] = "mzs",
["ครีโอลลุยเซียนา"] = "lou",
["ครีโอลเฮติ"] = "ht",
["คองโก"] = "kg",
["คอปติก"] = "cop",
["คอร์ซิกา"] = "co",
["คอร์นวอลล์"] = "kw",
["คอร์นวอลล์เก่า"] = "oco",
["คอเคเซียนตะวันตกเฉียงเหนือดั้งเดิม"] = "cau-nwc-pro",
["คอเคเซียนตะวันออกเฉียงเหนือดั้งเดิม"] = "cau-nec-pro",
["คังรังชือ"] = "ane",
["คัลมึค"] = "xal",
["คาคัส"] = "kjh",
["คาชุบ"] = "csb",
["คาซัค"] = "kk",
["คาซี"] = "kha",
["คานธาระ"] = "pgd",
["คาบาร์เดีย"] = "kbd",
["คาร์ทเวเลียนดั้งเดิม"] = "ccs-pro",
["คาร์นิโคบาร์"] = "caq",
["คาลาเมียนดั้งเดิม"] = "phi-kal-pro",
["คาเซียนดั้งเดิม"] = "aav-khs-pro",
["คาเรเลีย"] = "krl",
["คำตี้"] = "kht",
["คำเมือง"] = "nod",
["คีตัน"] = "zkt",
["คีร์กีซ"] = "ky",
["คุชราต"] = "gu",
["คุชราตกลาง"] = "inc-mgu",
["คุชราตเก่า"] = "inc-ogu",
["คูนิงามิ"] = "xug",
["คูมาน"] = "qwm",
["คูมุก"] = "kum",
["งูนีดั้งเดิม"] = "bnt-ngu-pro",
["จอร์เจีย"] = "ka",
["จอร์เจียน-แซนดั้งเดิม"] = "ccs-gzn-pro",
["จอร์เจียเก่า"] = "oge",
["จักมา"] = "ccp",
["จามตะวันตก"] = "cja",
["จามตะวันออก"] = "cjm",
["จามิกดั้งเดิม"] = "cmc-pro",
["จิ่งเผาะ"] = "kac",
["จิ้น"] = "cjy",
["จีน"] = "zh",
["จีนกลาง"] = "cmn",
["จีนยุคกลาง"] = "ltc",
["จีนวรรณกรรม"] = "lzh",
["จีนเก่า"] = "och",
["จุน"] = "cuq",
["จูร์เชน"] = "juc",
["จ้วง"] = "za",
["จ้วงแบบจั่วเจียง"] = "zzj",
["จ้วงแบบหนง"] = "zhn",
["ชวา"] = "jv",
["ชวาเก่า"] = "kaw",
["ชวาแบบนิวแคลิโดเนีย"] = "jas",
["ชวาแบบแคริบเบียน"] = "jvn",
["ชอง"] = "cog",
["ชากาทาย"] = "chg",
["ชาดิกดั้งเดิม"] = "cdc-pro",
["ชาดิกตอนกลางดั้งเดิม"] = "cdc-cbm-pro",
["ชาบากาโน"] = "cbk",
["ชามอร์โร"] = "ch",
["ชุกชี"] = "ckt",
["ชูวัช"] = "cv",
["ซอกดิกดั้งเดิม"] = "ira-sgc-pro",
["ซองคา"] = "dz",
["ซอร์บตอนบน"] = "hsb",
["ซอร์บตอนล่าง"] = "dsb",
["ซังโก"] = "sg",
["ซันสการ์"] = "zau",
["ซัมบัล"] = "xsb",
["ซัสซารี"] = "sdc",
["ซากีซายา"] = "szy",
["ซาคา"] = "sah",
["ซาซา"] = "zza",
["ซาปา"] = "tys",
["ซามัว"] = "sm",
["ซามาตอนกลาง"] = "sml",
["ซามาแบบปางูตารัน"] = "slm",
["ซามิกดั้งเดิม"] = "smi-pro",
["ซามีเหนือ"] = "se",
["ซามีแบบกิลดิน"] = "sjd",
["ซามีแบบปีเต"] = "sje",
["ซามีแบบลูเล"] = "smj",
["ซามีแบบอีนารี"] = "smn",
["ซามีใต้"] = "sma",
["ซาราวักเหนือดั้งเดิม"] = "poz-swa-pro",
["ซาร์ดิเนีย"] = "sc",
["ซาลาร์"] = "slr",
["ซาโฮ"] = "ssy",
["ซิซิลี"] = "scn",
["ซินดาริน"] = "sjn",
["ซีกายานา"] = "sky",
["ซีดามา"] = "sid",
["ซีโน-ทิเบตันดั้งเดิม"] = "sit-pro",
["ซุนดา"] = "su",
["ซูก"] = "tsg",
["ซูทู"] = "st",
["ซูทูเหนือ"] = "nso",
["ซูนี"] = "zun",
["ซูรีเกาโนน"] = "sgd",
["ซูลาเวซีใต้ดั้งเดิม"] = "poz-ssw-pro",
["ซูลู"] = "zu",
["ซูเมอร์"] = "sux",
["ซูโดเวีย"] = "xsv",
["ญัฮกุร"] = "cbn",
["ญี่ปุ่น"] = "ja",
["ญี่ปุ่นเก่า"] = "ojp",
["ญ้อ"] = "nyw",
["ดราวิเดียนดั้งเดิม"] = "dra-pro",
["ดราวิเดียนตอนกลางดั้งเดิม"] = "dra-cen-pro",
["ดราวิเดียนเหนือดั้งเดิม"] = "dra-nor-pro",
["ดราวิเดียนใต้ดั้งเดิม"] = "dra-sou-pro",
["ดราวิเดียนใต้ที่สองดั้งเดิม"] = "dra-sdt-pro",
["ดราวิเดียนใต้ที่หนึ่งดั้งเดิม"] = "dra-sdo-pro",
["ดัตช์"] = "nl",
["ดัตช์กลาง"] = "dum",
["ดัตช์เก่า"] = "odt",
["ดาโคตา"] = "dak",
["ดุงกาน"] = "dng",
["ดูซุนตอนกลาง"] = "dtp",
["ตงเซียง"] = "sce",
["ตองงา"] = "to",
["ตังกุต"] = "txg",
["ตันดากาโนน"] = "tgn",
["ตั่ย"] = "tyz",
["ตากาล็อก"] = "tl",
["ตางัม"] = "sit-tgm",
["ตาตาร์"] = "tt",
["ตาตาร์แบบไครเมีย"] = "crh",
["ตาอีโน"] = "tnq",
["ตาฮีตี"] = "ty",
["ตีรูไร"] = "tiy",
["ตีโดเร"] = "tvo",
["ตุมซุก"] = "xtq",
["ตุรกี"] = "tr",
["ตุรกีแบบออตโตมัน"] = "ota",
["ตุรกีแบบอานาโตเลียเก่า"] = "trk-oat",
["ตุรุง"] = "try",
["ตูปี-กัวรานีดั้งเดิม"] = "tup-gua-pro",
["ตูปีเก่า"] = "tpw",
["ตูลู"] = "tcy",
["ตูวา"] = "tyv",
["ตูวาลู"] = "tvl",
["ตูเปียนดั้งเดิม"] = "tup-pro",
["ตโบลี"] = "tbl",
["ต้งเหนือ"] = "doc",
["ต้งใต้"] = "kmc",
["ทมิฬ"] = "ta",
["ทมิฬเก่า"] = "oty",
["ตอกปีซิน"] = "tpi",
["ทะวืง"] = "thm",
["ทาจิก"] = "tg",
["ทาบาซารัน"] = "tab",
["ทิเบต"] = "bo",
["ทิเบตคลาสสิก"] = "xct",
["ทิเบตเก่า"] = "otb",
["ทือกรึญญา"] = "ti",
["ทือเกร"] = "tig",
["นอซู"] = "ii",
["นอร์มัน"] = "nrf",
["นอร์สดั้งเดิม"] = "gmq-pro",
["นอร์สเก่า"] = "non",
["นอร์เวย์"] = "no",
["นอร์เวย์กลาง"] = "gmq-mno",
["นอร์เวย์แบบนือนอสก์"] = "nn",
["นอร์เวย์แบบบุ๊กมอล"] = "nb",
["นัคดั้งเดิม"] = "cau-nkh-pro",
["นาวัตล์"] = "nah",
["นาวัตล์คลาสสิก"] = "nci",
["นาวัตล์ตอนกลาง"] = "nhn",
["นาวันดั้งเดิม"] = "azc-nah-pro",
["นาวาโฮ"] = "nv",
["นาอูรู"] = "na",
["นาโปลี"] = "nap",
["นิวเคลียร์พอลินีเชียนดั้งเดิม"] = "poz-pnp-pro",
["นิวเบียเก่า"] = "onw",
["นิโคบารีสดั้งเดิม"] = "aav-nic-pro",
["นิโคบาร์กลาง"] = "ncb",
["นีวเว"] = "niu",
["นุง"] = "nut",
["นูเบียนดั้งเดิม"] = "nub-pro",
["บราฮุอี"] = "brh",
["บริทอนิกดั้งเดิม"] = "cel-bry-pro",
["บรูตะวันตก"] = "brv",
["บรูตะวันออก"] = "bru",
["บลาการ์"] = "beu",
["บอลโต-สลาวิกดั้งเดิม"] = "ine-bsl-pro",
["บะห์นัร"] = "bdq",
["บัตส์"] = "bbl",
["บันจาร์"] = "bjn",
["บัมบารา"] = "bm",
["บัลติ"] = "bft",
["บัลแกเรีย"] = "bg",
["บาลี"] = "pi",
["บาวาเรีย"] = "bar",
["บาสก์"] = "eu",
["บาสก์ดั้งเดิม"] = "euq-pro",
["บาหลี"] = "ban",
["บาเจาแบบอินโดนีเซีย"] = "bdl",
["บาเจาแบบเวสต์โคสต์"] = "bdr",
["บาโลจ"] = "bal",
["บิสลามา"] = "bi",
["บีซู"] = "bzi",
["บีนูกิด"] = "bkd",
["บีโคลตอนกลาง"] = "bcl",
["บูกิส"] = "bug",
["บูร์บอแน-แบรีชง"] = "roa-bbn",
["บูร์ยัต"] = "bua",
["ปนัร"] = "pbv",
["ปนัร-คาซี-ลึงงัมดั้งเดิม"] = "aav-pkl-pro",
["ปยู"] = "pyx",
["ปรากฤต"] = "pra",
["ปรากฤตแบบอโศก"] = "inc-ash",
["ปะหล่องดั้งเดิม"] = "mkh-pal-pro",
["ปักษ์ใต้"] = "sou",
["ปังควาฬฺ"] = "pgg",
["ปัญจาบ"] = "pa",
["ปัญจาบเก่า"] = "inc-opa",
["ปาทาน"] = "ps",
["ปาทานดั้งเดิม"] = "ira-pat-pro",
["ปาลาวาโนตอนกลาง"] = "plc",
["ปาลาวาโนตะวันตกเฉียงใต้"] = "plv",
["ปาลาวาโนแบบบรูกส์พอยต์"] = "plw",
["ปาเปียเมนตู"] = "pap",
["ปาเลา"] = "pau",
["ปาโกะห์"] = "pac",
["ปีการ์"] = "pcd",
["ปีปิล"] = "ppl",
["ปีเยมอนเต"] = "pms",
["ปูกาปูกา"] = "pkp",
["ปู้อี"] = "pcc",
["ผิงเหนือ"] = "cnp",
["ผิงใต้"] = "csp",
["ผูเซียน"] = "cpx",
["ผู้น้อย"] = "pho",
["ผู้ไท"] = "pht",
["ฝรั่งเศส"] = "fr",
["ฝรั่งเศสกลาง"] = "frm",
["ฝรั่งเศสเก่า"] = "fro",
["พทคะ"] = "bfq",
["พม่า"] = "my",
["พม่าเก่า"] = "obr",
["พรัช"] = "bra",
["พวน"] = "phu",
["พอลินีเชียนดั้งเดิม"] = "poz-pol-pro",
["พอลินีเชียนตะวันออกดั้งเดิม"] = "poz-pep-pro",
["พิหาร"] = "bh",
["พ่าเก"] = "phk",
["ฟรียูลี"] = "fur",
["ฟรีเชียตะวันตก"] = "fy",
["ฟรีเชียเก่า"] = "ofs",
["ฟรีเชียเหนือ"] = "frr",
["ฟรีเชียแบบซาเทอร์ลันท์"] = "stq",
["ฟร็องโก-พรอว็องส์"] = "frp",
["ฟาลา"] = "fax",
["ฟาลิสกุส"] = "xfa",
["ฟินนิกดั้งเดิม"] = "urj-fin-pro",
["ฟินิเชีย"] = "phn",
["ฟินแลนด์"] = "fi",
["ฟิลิปปินส์ดั้งเดิม"] = "phi-pro",
["ฟีจี"] = "fj",
["ฟูลา"] = "ff",
["มคหะ"] = "mag",
["มงตาแญ"] = "moe",
["มณีปุระ"] = "mni",
["มณีปุระเก่า"] = "omp",
["มนองตอนกลาง"] = "cmo",
["มนองใต้"] = "mnn",
["มราฐี"] = "mr",
["มราฐีเก่า"] = "omr",
["มลยาฬัม"] = "ml",
["มลายูตอนกลาง"] = "pse",
["มลายูแบบตรังกานู"] = "poz-ter",
["มลายูแบบบรูไน"] = "kxd",
["มลายูแบบปัตตานี"] = "mfa",
["มลายูแบบเกอดะฮ์"] = "meo",
["มวานี"] = "wmw",
["มอกชา"] = "mdf",
["มองโกลิกดั้งเดิม"] = "xgn-pro",
["มองโกเลีย"] = "mn",
["มองโกเลียกลาง"] = "xng",
["มองโกเลียคลาสสิก"] = "cmg",
["มอญ"] = "mnw",
["มอญ-เขมรดั้งเดิม"] = "mkh-pro",
["มอญกลาง"] = "mkh-mmn",
["มอญดั้งเดิม"] = "mkh-mnc-pro",
["มอญเก่า"] = "omx",
["มอญแบบไทย"] = "mnw-tha",
["มอลตา"] = "mt",
["มอแซนแดรอน"] = "mzn",
["มัล"] = "mlf",
["มัลดีฟส์"] = "dv",
["มัสบาเต"] = "msb",
["มากัซซาร์"] = "mak",
["มากินดาเนา"] = "mdh",
["มาซิโดเนีย"] = "mk",
["มายันดั้งเดิม"] = "myn-pro",
["มาราเนา"] = "mrw",
["มาร์วาร์"] = "mwr",
["มาร์แชลล์"] = "mh",
["มาลากาซี"] = "mg",
["มาลาโย-จามิกดั้งเดิม"] = "poz-mcm-pro",
["มาลาโย-ซุมบาวันดั้งเดิม"] = "poz-msa-pro",
["มาลาโย-พอลินีเชียนดั้งเดิม"] = "poz-pro",
["มาลาโย-พอลินีเชียนตอนกลาง-ตะวันออกดั้งเดิม"] = "poz-cet-pro",
["มาลาโย-พอลินีเชียนตะวันออกดั้งเดิม"] = "pqe-pro",
["มาวรี"] = "mi",
["มาเลย์อิกดั้งเดิม"] = "poz-mly-pro",
["มาเลเซีย"] = "ms",
["มาไซ"] = "mas",
["มิงเกรเลีย"] = "xmf",
["มิยาโกะ"] = "mvi",
["มีนังกาเบา"] = "min",
["มีรังดา"] = "mwl",
["มีโซ"] = "lus",
["มือรัสเซีย"] = "rsl",
["มืออินเดีย"] = "ins",
["มืออินโดนีเซีย"] = "inl",
["มืออเมริกัน"] = "ase",
["มือเนปาล"] = "nsp",
["มือไทย"] = "tsq",
["มุนดาดั้งเดิม"] = "mun-pro",
["มูซี"] = "mui",
["ม้ง-เมี่ยนดั้งเดิม"] = "hmx-pro",
["ม้งขาว"] = "mww",
["ม้งดั้งเดิม"] = "hmn-pro",
["ม้งเขียว"] = "hnj",
["ยอง"] = "yno",
["ยอลอ"] = "yol",
["ยะไข่"] = "rki",
["ยากัน"] = "yka",
["ยามานา"] = "yag",
["ยามี"] = "tao",
["ยาเอยามะ"] = "rys",
["ยิดดิช"] = "yi",
["ยุปปิก"] = "esu",
["ยูกริกดั้งเดิม"] = "urj-ugr-pro",
["ยูการิต"] = "uga",
["ยูราลิกดั้งเดิม"] = "urj-pro",
["ยูเครน"] = "uk",
["ยูโต-แอซเทกันดั้งเดิม"] = "azc-pro",
["รวันดา-รุนดี"] = "rw",
["รัสเซีย"] = "ru",
["ราชพังสี"] = "rjs",
["ราปานูอี"] = "rap",
["ราโรโตงา"] = "rar",
["ริฟ"] = "rif",
["รูซินแบบคาร์พาเทีย"] = "rue",
["รูซินแบบพันโนเนีย"] = "rsk",
["ร่วม"] = "mul",
["ลอมบาร์ด"] = "lmo",
["ละติน"] = "la",
["ลัก"] = "lbe",
["ลักเกีย"] = "lbc",
["ลักเซมเบิร์ก"] = "lb",
["ลัซ"] = "lzz",
["ลัตเกล"] = "ltg",
["ลัตเวีย"] = "lv",
["ลัมปุงกิกดั้งเดิม"] = "poz-lgx-pro",
["ลัมโบยา"] = "lmy",
["ลาดัก"] = "lbj",
["ลาดิน"] = "lld",
["ลาดิโน"] = "lad",
["ลาว"] = "lo",
["ลิงกาลา"] = "ln",
["ลิทัวเนีย"] = "lt",
["ลิทัวเนียเก่า"] = "olt",
["ลินดู"] = "klw",
["ลิมบู"] = "lif",
["ลิมเบิร์ก"] = "li",
["ลิววี"] = "olo",
["ลีกูเรีย"] = "lij",
["ลีสู่"] = "lis",
["ลีโวเนีย"] = "liv",
["ลึงงัม"] = "lyg",
["ลูกันดา"] = "lg",
["ลูอิชดั้งเดิม"] = "sit-luu-pro",
["วอลตา-คองโกดั้งเดิม"] = "nic-vco-pro",
["วอลตา-ไนเจอร์ดั้งเดิม"] = "alv-von-pro",
["วันดัล"] = "xvn",
["วัลลูน"] = "wa",
["วาราโอ"] = "wba",
["วาไร"] = "war",
["วินเนอเบโก"] = "win",
["วีลามอวิตแซ"] = "wym",
["สกอต"] = "sco",
["สมราย"] = "smu",
["สลาวอนิกคริสตจักรเก่า"] = "cu",
["สลาวิกดั้งเดิม"] = "sla-pro",
["สลาวิกตะวันออกเก่า"] = "orv",
["สวานา"] = "tn",
["สวาฮีลี"] = "sw",
["สวีเดน"] = "sv",
["สวีเดนเก่า"] = "gmq-osw",
["สะโอจ"] = "scq",
["สันถาลี"] = "sat",
["สันสกฤต"] = "sa",
["สำเร"] = "sxm",
["สิกขิม"] = "sip",
["สิงหล"] = "si",
["สินธ์"] = "sd",
["สิเลฏ"] = "syl",
["สุ่ย"] = "swi",
["สเปน"] = "es",
["สเปนเก่า"] = "osp",
["สโลวัก"] = "sk",
["สโลวักเก่า"] = "zlw-osk",
["สโลวินช์"] = "zlw-slv",
["สโลวีเนีย"] = "sl",
["หง่วน"] = "nuo",
["หมะ"] = "cma",
["หมิ่นดั้งเดิม"] = "zhx-min-pro",
["หมิ่นตอนกลาง"] = "czo",
["หมิ่นตะวันออก"] = "cdo",
["หมิ่นเหนือ"] = "mnp",
["หมิ่นใต้"] = "nan",
["หล่อยแอว๋"] = "luh",
["ห่อยซัน"] = "zhx-tai",
["อวัธ"] = "awa",
["ออสซีเซีย"] = "os",
["ออสโตรนีเซียนดั้งเดิม"] = "map-pro",
["ออสโตรเอเชียติกดั้งเดิม"] = "aav-pro",
["ออโรโม"] = "om",
["อะดีเกยา"] = "ady",
["อะตง"] = "aot",
["อะวาร์"] = "av",
["อะวาร์เก่า"] = "oav",
["อะแพชีตะวันตก"] = "apw",
["อักลัน"] = "akl",
["อังกฤษ"] = "en",
["อังกฤษกลาง"] = "enm",
["อังกฤษเก่า"] = "ang",
["อับคาเซีย"] = "ab",
["อัมฮารา"] = "am",
["อัมโมน"] = "sem-amm",
["อัลไตเหนือ"] = "atv",
["อัลไตใต้"] = "alt",
["อัสตูเรียส"] = "ast",
["อัสสัม"] = "as",
["อัสสัมกลาง"] = "inc-mas",
["อัสสัมช่วงต้น"] = "inc-oas",
["อากูตายา"] = "agn",
["อาข่า"] = "ahk",
["อาคัน"] = "ak",
["อาซี"] = "bno",
["อานาโตเลียนดั้งเดิม"] = "ine-ana-pro",
["อาบาซา"] = "abq",
["อาฟรีกานส์"] = "af",
["อาฟาร์"] = "aa",
["อามามิโอชิมะเหนือ"] = "ryn",
["อามามิโอชิมะใต้"] = "ams",
["อารากอน"] = "an",
["อารามายา"] = "arc",
["อาร์มีเนีย"] = "hy",
["อาร์มีเนียกลาง"] = "axm",
["อาร์มีเนียนดั้งเดิม"] = "hyx-pro",
["อาร์มีเนียเก่า"] = "xcl",
["อาลูตีก"] = "ems",
["อาหม"] = "aho",
["อาหรับ"] = "ar",
["อาหรับแบบซูดาน"] = "apd",
["อาหรับแบบตูนิเซีย"] = "aeb",
["อาหรับแบบทาจิกิสถาน"] = "abh",
["อาหรับแบบบาห์เรน"] = "abv",
["อาหรับแบบลิเบีย"] = "ayl",
["อาหรับแบบลิแวนต์ใต้"] = "ajp",
["อาหรับแบบอันดะลุส"] = "xaa",
["อาหรับแบบอิรัก"] = "acm",
["อาหรับแบบอียิปต์"] = "arz",
["อาหรับแบบอุซเบกิสถาน"] = "auz",
["อาหรับแบบฮิญาซ"] = "acw",
["อาหรับแบบเมโสโปเตเมียเหนือ"] = "ayp",
["อาหรับแบบเยเมน"] = "ayn",
["อาหรับแบบแอลจีเรีย"] = "arq",
["อาหรับแบบโมร็อกโก"] = "ary",
["อาหรับแบบโอมาน"] = "acx",
["อาหรับแบบไซปรัส"] = "acy",
["อาเจะฮ์"] = "ace",
["อาเซอร์ไบจาน"] = "az",
["อาเนตยูม"] = "aty",
["อาเบ"] = "aba",
["อิกโบ"] = "ig",
["อิงกุช"] = "inh",
["อิงเกรีย"] = "izh",
["อิตาลิกดั้งเดิม"] = "itc-pro",
["อิตาลี"] = "it",
["อินุกติตุต"] = "iu",
["อินุอิตดั้งเดิม"] = "esx-inu-pro",
["อินเทร์ลิงเกว"] = "ie",
["อินเทอร์ลิงกวา"] = "ia",
["อินโด-ยูโรเปียนดั้งเดิม"] = "ine-pro",
["อินโด-อารยันดั้งเดิม"] = "inc-pro",
["อินโด-อิเรเนียนดั้งเดิม"] = "iir-pro",
["อินโดนีเซีย"] = "id",
["อิสเตรีย"] = "ist",
["อิเรเนียนดั้งเดิม"] = "ira-pro",
["อีดาอัน"] = "dbj",
["อีทรัสคัน"] = "ett",
["อีบัน"] = "iba",
["อียิปต์"] = "egy",
["อีรานุน"] = "ill",
["อีสาน"] = "tts",
["อีโด"] = "io",
["อีโลกาโน"] = "ilo",
["อุซเบก"] = "uz",
["อุดมูร์ต"] = "udm",
["อุตซิตา"] = "oc",
["อุตซิตาเก่า"] = "pro",
["อุนเซอร์ด็อยทช์"] = "uln",
["อุมเบรีย"] = "xum",
["อุยกูร์"] = "ug",
["อุยกูร์เก่า"] = "oui",
["อูดี"] = "udi",
["อูรดู"] = "ur",
["อูรักลาโวยจ"] = "urk",
["อู๋"] = "wuu",
["อเวสตะ"] = "ae",
["อ่ายตน"] = "aio",
["ฮกเกี้ยน"] = "nan-hbl",
["ฮังการี"] = "hu",
["ฮังการีเก่า"] = "ohu",
["ฮาชอง"] = "haj",
["ฮานูโนโอ"] = "hnn",
["ฮาวาย"] = "haw",
["ฮินดี"] = "hi",
["ฮินดีเก่า"] = "inc-ohi",
["ฮินดีแบบฟีจี"] = "hif",
["ฮินดูสตานีแบบแคริบเบียน"] = "hns",
["ฮีบรู"] = "he",
["ฮีรีโมตู"] = "ho",
["ฮีลีไกโนน"] = "hil",
["ฮุนสริก"] = "hrx",
["ฮูร์เรีย"] = "xhu",
["เกชวนดั้งเดิม"] = "qwe-pro",
["เกชัว"] = "qu",
["เกชัวคลาสสิก"] = "qwc",
["เกรตอันดามันนีสดั้งเดิม"] = "qfa-adm-pro",
["เกอฮอ"] = "kpm",
["เกาหลี"] = "ko",
["เกาหลีกลาง"] = "okm",
["เกาหลีดั้งเดิม"] = "qfa-kor-pro",
["เกาหลีเก่า"] = "oko",
["เกาหลีใหม่ช่วงต้น"] = "ko-ear",
["เกโกโย"] = "ki",
["เขมร"] = "km",
["เขมรกลาง"] = "xhm",
["เขมรดั้งเดิม"] = "mkh-kmr-pro",
["เขมรเก่า"] = "okz",
["เขมรเหนือ"] = "kxm",
["เขิน"] = "kkh",
["เคลติกดั้งเดิม"] = "cel-pro",
["เควนยา"] = "qya",
["เคอร์ดิชดั้งเดิม"] = "ku-pro",
["เคิร์ดตอนกลาง"] = "ckb",
["เคิร์ดเหนือ"] = "kmr",
["เจวา"] = "ny",
["เจอร์แมนิกดั้งเดิม"] = "gem-pro",
["เจอร์แมนิกตะวันตกดั้งเดิม"] = "gmw-pro",
["เจียเม่า"] = "jio",
["เฉ่าเหมียว"] = "cov",
["เชจู"] = "jje",
["เชเชน"] = "ce",
["เชเยนน์"] = "chy",
["เชโรกี"] = "chr",
["เช็ก"] = "cs",
["เช็กเก่า"] = "zlw-ocs",
["เซบัวโน"] = "ceb",
["เซมิติกดั้งเดิม"] = "sem-pro",
["เซมิติกตะวันตกดั้งเดิม"] = "sem-wes-pro",
["เซอร์โบ-โครเอเชีย"] = "sh",
["เซอไม"] = "sea",
["เซียง"] = "hsn",
["เดนมาร์ก"] = "da",
["เดนมาร์กเก่า"] = "gmq-oda",
["เดาโร"] = "dwr",
["เตตุน"] = "tet",
["เตลูกู"] = "te",
["เตอร์กิกดั้งเดิม"] = "trk-pro",
["เตอร์กิกเก่า"] = "otk",
["เตอร์นาเต"] = "tft",
["เตอเมียร์"] = "tea",
["เติร์กเมน"] = "tk",
["เทาส์"] = "twf",
["เนปาล"] = "ne",
["เนวาร์"] = "new",
["เนวาร์กลาง"] = "nwx",
["เนวาร์คลาสสิก"] = "nwc",
["เนเกอร์ฮอลันดส์"] = "dcr",
["เบ"] = "onb",
["เบ-ไทดั้งเดิม"] = "qfa-bet-pro",
["เบงกอล"] = "bn",
["เบงกอลกลาง"] = "inc-mbn",
["เบงกอลเก่า"] = "inc-obn",
["เบดั้งเดิม"] = "qfa-onb-pro",
["เบนูเอ-คองโกดั้งเดิม"] = "nic-bco-pro",
["เบรอตง"] = "br",
["เบรอตงกลาง"] = "xbm",
["เบรอตงเก่า"] = "obt",
["เบลารุส"] = "be",
["เบอตาวี"] = "bew",
["เบอราวัน"] = "lod",
["เบอร์เบอร์ดั้งเดิม"] = "ber-pro",
["เบอร์เบอร์แบบตูนีเซีย"] = "sds",
["เปอร์มิกดั้งเดิม"] = "urj-prm-pro",
["เปอร์เซีย"] = "fa",
["เปอร์เซียกลาง"] = "pal",
["เปอร์เซียเก่า"] = "peo",
["เพลาท์ดิทช์"] = "pdt",
["เมวาร์"] = "mtr",
["เมี่ยน"] = "ium",
["เมี่ยนดั้งเดิม"] = "hmx-mie-pro",
["เยอรมัน"] = "de",
["เยอรมันตอนกลางตะวันออก"] = "gmw-ecg",
["เยอรมันต่ำ"] = "nds",
["เยอรมันต่ำกลาง"] = "gml",
["เยอรมันต่ำแบบเยอรมนี"] = "nds-de",
["เยอรมันสูงกลาง"] = "gmh",
["เยอรมันสูงเก่า"] = "goh",
["เยอรมันแบบซิพเซอร์"] = "gmw-zps",
["เยอรมันแบบว็อลกา"] = "gmw-vog",
["เยอรมันแบบอลามันเนีย"] = "gsw",
["เยอรมันแบบเพนซิลเวเนีย"] = "pdc",
["เรอหวั่ง"] = "raw",
["เลซกี"] = "lez",
["เลออน"] = "roa-leo",
["เลออนเก่า"] = "roa-ole",
["เลอเวือะตะวันตก"] = "lcp",
["เลอเวือะตะวันออก"] = "lwl",
["เวนดา"] = "ve",
["เวปส์"] = "vep",
["เวลส์"] = "cy",
["เวลส์กลาง"] = "wlm",
["เวลส์เก่า"] = "owl",
["เวอโร"] = "vro",
["เวียดนาม"] = "vi",
["เวียดนามกลาง"] = "mkh-mvi",
["เวียตติกดั้งเดิม"] = "mkh-vie-pro",
["เวเนโต"] = "vec",
["เศรปา"] = "xsr",
["เสฉวน"] = "zhx-sic",
["เหมื่อง"] = "mtq",
["เอชเตฮาร์ด"] = "esh",
["เอซเตรมาดูรา"] = "ext",
["เอมีเลีย"] = "egl",
["เอร์เซีย"] = "myv",
["เอสกิโมดั้งเดิม"] = "esx-esk-pro",
["เอสเปรันโต"] = "eo",
["เอสโตเนีย"] = "et",
["เอเว"] = "ee",
["เอเวนค์"] = "evn",
["เอเว็น"] = "eve",
["เอโดม"] = "xdm",
["เฮลเลนิกดั้งเดิม"] = "grk-pro",
["เฮาซา"] = "ha",
["เฮเรโร"] = "hz",
["แกลิกแบบสกอตแลนด์"] = "gd",
["แคชเมียร์"] = "ks",
["แคะ"] = "hak",
["แจพอนิกดั้งเดิม"] = "jpx-pro",
["แซกซันเก่า"] = "osx",
["แดลเมเชีย"] = "dlm",
["แต้จิ๋ว"] = "nan-tws",
["แบกเตรีย"] = "xbc",
["แบชเคียร์"] = "ba",
["แบนทอยด์ดั้งเดิม"] = "nic-bod-pro",
["แบนทูดั้งเดิม"] = "bnt-pro",
["แบล็กสปีช"] = "art-bsp",
["แพ็กเจ"] = "pkc",
["แฟโร"] = "fo",
["แมงซ์"] = "gv",
["แมนจู"] = "mnc",
["แสก"] = "skb",
["แอกแคด"] = "akk",
["แอตแลนติก-คองโกดั้งเดิม"] = "alv-pro",
["แอฟโฟรเอเชียติกดั้งเดิม"] = "afa-pro",
["แอลกองเคียนดั้งเดิม"] = "alg-pro",
["แอลจิกดั้งเดิม"] = "aql-pro",
["แอลฟ์ดาเลิน"] = "ovd",
["แอละแบมา"] = "akz",
["แอลเบเนีย"] = "sq",
["แอลเบเนียนดั้งเดิม"] = "sqj-pro",
["โกฟา"] = "gof",
["โคซา"] = "xh",
["โคณฑี"] = "gon",
["โคตาน"] = "kho",
["โคทาวา"] = "avk",
["โจว"] = "tsu",
["โชนา"] = "sn",
["โชร์"] = "cjs",
["โซตซิล"] = "tzo",
["โซมาลอยด์ดั้งเดิม"] = "cus-som-pro",
["โซมาลี"] = "so",
["โซ่ง"] = "soa",
["โตทา"] = "tcx",
["โตฟา"] = "kim",
["โทกูโนชิมะ"] = "tkn",
["โทแคเรียนดั้งเดิม"] = "ine-toc-pro",
["โทแคเรียนบี"] = "txb",
["โทแคเรียนเอ"] = "xto",
["โนเวียล"] = "nov",
["โบล"] = "bol",
["โบลีเนา"] = "smk",
["โบโด"] = "brx",
["โบโด-กาโรดั้งเดิม"] = "tbq-bdg-pro",
["โปรตุเกส"] = "pt",
["โปแลนด์"] = "pl",
["โปแลนด์เก่า"] = "zlw-opl",
["โภชปุระ"] = "bho",
["โมกิล"] = "mkj",
["โมอับ"] = "obm",
["โมเชโน"] = "mhn",
["โยกัด"] = "yog",
["โยนางูนิ"] = "yoi",
["โยรง"] = "yox",
["โยรูบอยด์ดั้งเดิม"] = "alv-yrd-pro",
["โยรูบา"] = "yo",
["โยรูบาดั้งเดิม"] = "alv-yor-pro",
["โรมัญญา"] = "rgn",
["โรมานช์"] = "rm",
["โรมานี"] = "rom",
["โรมาเนีย"] = "ro",
["โรฮีนจา"] = "rhg",
["โลจบาน"] = "jbo",
["โลโกโน"] = "arw",
["โลโล-เบอร์มีซดั้งเดิม"] = "tbq-lob-pro",
["โลโลอิชดั้งเดิม"] = "tbq-lol-pro",
["โวต"] = "vot",
["โวลอฟ"] = "wo",
["โวลาปุก"] = "vo",
["โอกินาวะ"] = "ryu",
["โอกิโนเอราบุ"] = "okn",
["โอจิบเว"] = "oj",
["โอซิง"] = "osi",
["โอริยา"] = "or",
["โอริยากลาง"] = "inc-mor",
["โอริยาเก่า"] = "inc-oor",
["โอเชียนิกดั้งเดิม"] = "poz-oce-pro",
["ไซลีเซีย"] = "szl",
["ไทขาว"] = "twh",
["ไทดั้งเดิม"] = "tai-pro",
["ไทดำ"] = "blt",
["ไทตะวันตกเฉียงใต้ดั้งเดิม"] = "tai-swe-pro",
["ไทย"] = "th",
["ไทลื้อ"] = "khb",
["ไทแดง"] = "tyr",
["ไทแมน"] = "tyj",
["ไทแหล่ง"] = "tjl",
["ไทใต้คง"] = "tdd",
["ไทใหญ่"] = "shn",
["ไนเจอร์-คองโกดั้งเดิม"] = "nic-pro",
["ไปวัน"] = "pwn",
["ไมถิลี"] = "mai",
["ไมนอส"] = "omn",
["ไมยา"] = "sks",
["ไมโครนีเซียนดั้งเดิม"] = "poz-mic-pro",
["ไว"] = "vai",
["ไหล"] = "lic",
["ไหลดั้งเดิม"] = "qfa-lic-pro",
["ไหหลำ"] = "hnm",
["ไอซ์แลนด์"] = "is",
["ไอนุ"] = "ain",
["ไอย์มารา"] = "ay",
["ไอริช"] = "ga",
["ไอริชกลาง"] = "mga",
["ไอริชเก่า"] = "sga",
["Ỹaroamë"] = "yro",
}
j4pa79rk9g4btwc8v0rt0jq4n4i3oal
Laoso
0
215041
5723305
5693169
2026-05-20T07:02:39Z
OctraBot
3198
/* ภาษาเอสเปรันโต */ เก็บกวาด
5723305
wikitext
text/x-wiki
== ภาษาเอสเปรันโต ==
{{wp|eo:}}
[[ไฟล์:Laos in its region.svg|thumb|450px|'''Laoso''']]
=== การออกเสียง ===
{{eo-pr|a=Eo-Laoso.ogg;LL-Q143 (epo)-Lepticed7-Laoso.wav;LL-Q143 (epo)-Robin van der Vliet-Laoso.wav}}
=== คำวิสามานยนาม ===
{{eo-head}}
# {{tcl|eo|ลาว|id=Q819}}
=== ดูเพิ่ม ===
{{compass|eo|n=Ĉinio|e=Vjetnamio|s=Kamboĝo|w=Birmo,Tajlando}}
h0yrfy6j4g5p1v329l27bhzaegpiqel
มอดูล:ar-nominals
828
243322
5723275
5634108
2026-05-20T04:50:57Z
OctraBot
3198
5723275
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:languages").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="เอกพจน์", du="ทวิพจน์", pl="พหูพจน์",
coll="คำสมุหนาม", sing="คำเอกนาม", pauc="ตัวบอกความน้อย"},
engnumberscap = {sg="เอกพจน์", du="ทวิพจน์", pl="พหูพจน์",
coll="คำสมุหนาม", sing="คำเอกนาม", pauc="ตัวบอกความน้อย (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 "คำนาม"
else
return "คำคุณศัพท์"
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 == "แม่แบบ" 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 = "คำนาม"
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 = "คำนาม"
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 = "คำนาม"
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, "คำนาม")
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, "เลข")
end
-- The main entry point for adjective tables.
function export.show_adj(frame)
return show_gendered(frame, true, "คำคุณศัพท์")
end
-- Inflection functions
function do_translit(term)
--return (lang:transliterate(term)) or track("cant-translit") and BOGUS_CHAR
return require("Module:ar-translit-Latn").tr(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)
-- add links to specialised grammatical terms
engvalue = rsub(engvalue, "triptote", "[[triptote]]")
engvalue = rsub(engvalue, "diptote", "[[diptote]]")
engvalue = rsub(engvalue, "broken plural", "BBB")
engvalue = rsub(engvalue, "sound plural", "SSS")
engvalue = rsub(engvalue, "broken", "[[broken plural|broken]]")
engvalue = rsub(engvalue, "sound", "[[sound plural|sound]]")
engvalue = rsub(engvalue, "BBB", "[[broken plural]]")
engvalue = rsub(engvalue, "SSS", "[[sound plural]]")
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 == "คำคุณศัพท์" 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 == "คำคุณศัพท์" 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
-- 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 = "—"
elseif 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: var(--wikt-palette-grey-8,#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)
if arabic_span == "?" then
return "?"
else
return arabic_span .. "<br />" .. latin_span
end
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 .. "<br>")
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 [=[! ไม่ชี้เฉพาะ
! ชี้เฉพาะ
! construct
|-
! ไม่ทางการ
| {{{inf_]=] .. num .. [=[_ind}}}
| {{{inf_]=] .. num .. [=[_def}}}
| {{{inf_]=] .. num .. [=[_con}}}
|-
! กรรตุการก
| {{{nom_]=] .. num .. [=[_ind}}}
| {{{nom_]=] .. num .. [=[_def}}}
| {{{nom_]=] .. num .. [=[_con}}}
|-
! กรรมการก
| {{{acc_]=] .. num .. [=[_ind}}}
| {{{acc_]=] .. num .. [=[_def}}}
| {{{acc_]=] .. num .. [=[_con}}}
|-
! สัมพันธการก
| {{{gen_]=] .. num .. [=[_ind}}}
| {{{gen_]=] .. num .. [=[_def}}}
| {{{gen_]=] .. num .. [=[_con}}}
]=]
end
-- Make the noun table
function make_noun_table(data)
local wikicode = mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = 'การผันรูปของ{{{pos}}} {{{lemma}}}',
tall = 'yes',
palette = "green",
category = 'declension',
class = 'tr-alongside', -- temp hack to prevent extra line break
}
}
for _, num in ipairs(data.numbers) do
if num == "du" then
wikicode = wikicode .. [=[|-
! class="outer" | ทวิพจน์
]=] .. generate_noun_num("du")
else
wikicode = wikicode .. [=[|-
! class="outer" rowspan=2 | ]=] .. data.engnumberscap[num] .. "\n" .. [=[
! class="outer" style="font-style:normal" colspan=3 | {{{]=] .. num .. [=[_type}}}
|-
]=] .. generate_noun_num(num)
end
end
wikicode = wikicode .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' }
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 [=[|-
! ไม่ชี้เฉพาะ
! ชี้เฉพาะ
! construct
! ไม่ชี้เฉพาะ
! ชี้เฉพาะ
! construct
|-
! ไม่ทางการ
| {{{inf_m_]=] .. num .. [=[_ind}}}
| {{{inf_m_]=] .. num .. [=[_def}}}
| {{{inf_m_]=] .. num .. [=[_con}}}
| {{{inf_f_]=] .. num .. [=[_ind}}}
| {{{inf_f_]=] .. num .. [=[_def}}}
| {{{inf_f_]=] .. num .. [=[_con}}}
|-
! กรรตุการก
| {{{nom_m_]=] .. num .. [=[_ind}}}
| {{{nom_m_]=] .. num .. [=[_def}}}
| {{{nom_m_]=] .. num .. [=[_con}}}
| {{{nom_f_]=] .. num .. [=[_ind}}}
| {{{nom_f_]=] .. num .. [=[_def}}}
| {{{nom_f_]=] .. num .. [=[_con}}}
|-
! กรรมการก
| {{{acc_m_]=] .. num .. [=[_ind}}}
| {{{acc_m_]=] .. num .. [=[_def}}}
| {{{acc_m_]=] .. num .. [=[_con}}}
| {{{acc_f_]=] .. num .. [=[_ind}}}
| {{{acc_f_]=] .. num .. [=[_def}}}
| {{{acc_f_]=] .. num .. [=[_con}}}
|-
! สัมพันธการก
| {{{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 = mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = 'การผันรูปของ{{{pos}}} {{{lemma}}}',
tall = 'yes',
palette = "green",
category = 'declension',
class = 'tr-alongside', -- temp hack to prevent extra line break
}
}
for _, num in ipairs(data.numbers) do
if num == "du" then
wikicode = wikicode .. [=[|-
! class="outer" rowspan=2 | ทวิพจน์
! class="outer" colspan=3 | เพศชาย
! class="outer" colspan=3 | เพศหญิง
]=] .. generate_gendered_noun_num("du")
else
wikicode = wikicode .. [=[|-
! class="outer" rowspan=3 | ]=] .. data.engnumberscap[num] .. "\n" .. [=[
! class="outer" colspan=3 | เพศชาย
! class="outer" colspan=3 | เพศหญิง
|-
! class="outer" style="font-style:normal" colspan=3 | {{{m_]=] .. num .. [=[_type}}}
! class="outer" style="font-style:normal" colspan=3 | {{{f_]=] .. num .. [=[_type}}}
]=] .. generate_gendered_noun_num(num)
end
end
wikicode = wikicode .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' }
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 [=[|-
! ไม่ชี้เฉพาะ
! ชี้เฉพาะ
! ไม่ชี้เฉพาะ
! ชี้เฉพาะ
|-
! ไม่ทางการ
| {{{inf_m_]=] .. num .. [=[_ind}}}
| {{{inf_m_]=] .. num .. [=[_def}}}
| {{{inf_f_]=] .. num .. [=[_ind}}}
| {{{inf_f_]=] .. num .. [=[_def}}}
|-
! กรรตุการก
| {{{nom_m_]=] .. num .. [=[_ind}}}
| {{{nom_m_]=] .. num .. [=[_def}}}
| {{{nom_f_]=] .. num .. [=[_ind}}}
| {{{nom_f_]=] .. num .. [=[_def}}}
|-
! กรรมการก
| {{{acc_m_]=] .. num .. [=[_ind}}}
| {{{acc_m_]=] .. num .. [=[_def}}}
| {{{acc_f_]=] .. num .. [=[_ind}}}
| {{{acc_f_]=] .. num .. [=[_def}}}
|-
! สัมพันธการก
| {{{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 = mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = 'การผันรูปของ{{{pos}}} {{{lemma}}}',
tall = 'yes',
palette = "green",
category = 'declension',
class = 'tr-alongside', -- temp hack to prevent extra line break
}
}
if contains(data.numbers, "sg") then
wikicode = wikicode .. [=[|-
! class="outer" rowspan=3 | เอกพจน์
! class="outer" colspan=2 | เพศชาย
! class="outer" colspan=2 | เพศหญิง
|-
! class="outer" style="font-style:normal" colspan=2 | {{{m_sg_type}}}
! class="outer" style="font-style:normal" colspan=2 | {{{f_sg_type}}}
]=] .. generate_adj_num("sg")
end
if contains(data.numbers, "du") then
wikicode = wikicode .. [=[|-
! class="outer" rowspan=2 | ทวิพจน์
! class="outer" colspan=2 | เพศชาย
! class="outer" colspan=2 | เพศหญิง
]=] .. generate_adj_num("du")
end
if contains(data.numbers, "pl") then
wikicode = wikicode .. [=[|-
! class="outer" rowspan=3 | พหูพจน์
! class="outer" colspan=2 | เพศชาย
! class="outer" colspan=2 | เพศหญิง
|-
! class="outer" style="font-style:normal" colspan=2 | {{{m_pl_type}}}
! class="outer" style="font-style:normal" colspan=2 | {{{f_pl_type}}}
]=] .. generate_adj_num("pl")
end
wikicode = wikicode .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' }
return make_table(data, wikicode)
end
return export
-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet:
t4vif5wycnpwk8f7hfqb9y50pr5iarr
اسم
0
244596
5723280
1874378
2026-05-20T05:02:29Z
OctraBot
3198
/* ภาษาอาหรับ */ เก็บกวาด
5723280
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== รากศัพท์ 1 ===
{{etymon|ar|id=name|:inh|sem-pro:*šim-<id:name>|:root|ar:و س م<id:root>|ar:س م و<id:root>}}
จาก{{inh|ar|sem-pro|*šim-}}, จาก{{inh|ar|afa-pro|*sim-|t=ชื่อ}}; Leveled in Arabic to the roots {{ar-root|و س م}} and {{ar-root|س م و}}.
ร่วมเชื้อสายกับ{{cog|he|שם|tr=shém}}, {{cog|am|ስም|tr=sɨm}}.
==== การออกเสียง ====
{{ar-pr|اِسْم}}
* {{audio|ar|Ar-اسم.ogg}}
** {{a|afb|Gulf}} {{IPA|afb|/ɪ.sɪm/}}
==== คำนาม ====
{{ar-noun|اِسْم|m|pl=أَسْمَاء,أَسَامٍ}}
# [[ชื่อ]]
#: {{uxa|ar|مَا '''ٱسْمُكَ'''؟|What is '''your name'''?}}
#: {{uxa|ar|'''بِسْمِ''' اللّٰهِ الرَّحْمٰنِ الرَّحِيمِ|'''in the name of''' God, the Merciful, the Compassionate}}
#: {{uxa|ar|'''بِسْمِ''' ٱلْآبِ وَٱلِٱبْنِ وَٱلرُّوحِ ٱلْقُدُسِ|'''In the name of''' the Father, the Son, and the Holy Ghost}}
# [[สมญา]], [[ฉายา]]
# [[ชื่อเสียง]], [[เกียรติยศ]]
# {{C|ar|Nouns|Parts of speech}} {{lb|ar|grammar}} [[noun]] {{gloss|a category above, including [[pronoun]]s and [[substantive]]s like [[adjective]]s and [[participle]]s, ''see the derived terms to get a picture of the usage''}}
===== การผันรูป =====
{{ar-decl-noun|اِسْم|m|pl=أَسْمَاء|pl2=أَسَامٍ}}
===== ลูกคำ =====
{{col|ar
|اَلْأَسْمَاء الْخَمْسَة<t:the five nouns>
|اِسْم آلَة<t:nomen instrumenti>
|اِسْم إِشَارَة<t:pronomen demonstrativum>
|اِسْم اِسْتِفْهَام<t:pronomen interrogativum>
|اِسْم تَفْضِيل<t:elativus>
|اِسْم جَمْع<t:nomen generis>
|اِسْم جِنْس إِفْرَادِيّ
|اِسْم جِنْس جَمْعِيّ
|اِسْم جِنْس<t:nomen appellativum>
|اِسْم زَمَان<t:nomen temporis>
|اِسْم عَدَد<t:nomen numeri>
|اِسْم عَلَم<t:nomen proprium>
|اِسْم فَاعِل<t:participium activum>
|اِسْم مَرَّة<t:nomen vicis>
|اِسْم مَفْعُول<t:participium passivum>
|اِسْم مَقْصُور<t:noun ending in {{l|ar|ى}} or {{l|ar|ا}}>
|اِسْم مَكَان<t:nomen loci>
|اِسْم مَنْقُوص<t:noun ending in {{l|ar|ـٍ}}>
|اِسْم مَوْصُول<t:pronomen relativum>
|اِسْم نَوْع<t:nomen speciei>
|اِسْم هَيْئَة<t:nomen speciei>
|اِسْم وَحْدَة<t:nomen unitatis>
|اِسْم وِعَاء<t:nomen vasis>
|اِسْمِيّ<t:[[nominal]], [[titular]]>
}}
===== คำสืบทอด =====
{{top2}}
* {{desc|acy|ism}}
* {{desc|arz|اسم|tr=ism}}
* {{desc|acw|اسم|tr=isim}}
* {{desc|mt|isem}}
* {{desc|ary|اسم|tr=ism}}
* {{desc|aeb|اسم|tr=ism}}
* {{desc|az|isim|bor=1}}
* {{desctree|fa-cls|اِسْم|bor=1}}
* {{desc|ms|isim|bor=1}}
* {{desc|sw|isimu|bor=1}}
{{bottom}}
=== รากศัพท์ 2 ===
{{nonlemma}}
==== คำกริยา ====
{{ar-verb form|+سما<I>}}
=== อ่านเพิ่ม ===
* {{R:ar:Freytag|volume=2|pages=359–360}}
* {{cite-book|editors=Manuel Sartori, Manuela E. B. Giolfo, Philippe Cassuto|title=Approaches to the History and Dialectology of Arabic in Honor of Pierre Larcher|chapter=The Seven Deadly Sins of Arabic Studies|page=519–521|year=2017|publisher=Brill|location=Leiden|author=Carter, Michael George|series=Studies in Semitic Languages and Linguistics|seriesvolume=88|isbn=978-90-04-31150-3}}
* {{cite-web|last=Kasher|first=Almog|title=Term Ism in Medieval Arabic Grammatical Tradition: A Hyponym of Itself|url=https://academic.oup.com/jss/article-abstract/54/2/459/1735368|work=Journal of Semitic Studies|publisher=Oxford Academix|date=1 October 2009|accessdate=26 October 2018}}
* {{R:ar:Wehr-4|سم}}
{{cln|ar|autohyponyms|autological terms}}
ifoakvqrer8kkoeee02ja94d9y38heo
5723281
5723280
2026-05-20T05:03:06Z
OctraBot
3198
/* คำนาม */
5723281
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== รากศัพท์ 1 ===
{{etymon|ar|id=name|:inh|sem-pro:*šim-<id:name>|:root|ar:و س م<id:root>|ar:س م و<id:root>}}
จาก{{inh|ar|sem-pro|*šim-}}, จาก{{inh|ar|afa-pro|*sim-|t=ชื่อ}}; Leveled in Arabic to the roots {{ar-root|و س م}} and {{ar-root|س م و}}.
ร่วมเชื้อสายกับ{{cog|he|שם|tr=shém}}, {{cog|am|ስም|tr=sɨm}}.
==== การออกเสียง ====
{{ar-pr|اِسْم}}
* {{audio|ar|Ar-اسم.ogg}}
** {{a|afb|Gulf}} {{IPA|afb|/ɪ.sɪm/}}
==== คำนาม ====
{{ar-noun|اِسْم|m|pl=أَسْمَاء,أَسَامٍ}}
# [[ชื่อ]], [[นาม]]
#: {{uxa|ar|مَا '''ٱسْمُكَ'''؟|What is '''your name'''?}}
#: {{uxa|ar|'''بِسْمِ''' اللّٰهِ الرَّحْمٰنِ الرَّحِيمِ|'''in the name of''' God, the Merciful, the Compassionate}}
#: {{uxa|ar|'''بِسْمِ''' ٱلْآبِ وَٱلِٱبْنِ وَٱلرُّوحِ ٱلْقُدُسِ|'''In the name of''' the Father, the Son, and the Holy Ghost}}
# [[สมญา]], [[ฉายา]]
# [[ชื่อเสียง]], [[เกียรติยศ]]
# {{C|ar|Nouns|Parts of speech}} {{lb|ar|grammar}} [[noun]] {{gloss|a category above, including [[pronoun]]s and [[substantive]]s like [[adjective]]s and [[participle]]s, ''see the derived terms to get a picture of the usage''}}
===== การผันรูป =====
{{ar-decl-noun|اِسْم|m|pl=أَسْمَاء|pl2=أَسَامٍ}}
===== ลูกคำ =====
{{col|ar
|اَلْأَسْمَاء الْخَمْسَة<t:the five nouns>
|اِسْم آلَة<t:nomen instrumenti>
|اِسْم إِشَارَة<t:pronomen demonstrativum>
|اِسْم اِسْتِفْهَام<t:pronomen interrogativum>
|اِسْم تَفْضِيل<t:elativus>
|اِسْم جَمْع<t:nomen generis>
|اِسْم جِنْس إِفْرَادِيّ
|اِسْم جِنْس جَمْعِيّ
|اِسْم جِنْس<t:nomen appellativum>
|اِسْم زَمَان<t:nomen temporis>
|اِسْم عَدَد<t:nomen numeri>
|اِسْم عَلَم<t:nomen proprium>
|اِسْم فَاعِل<t:participium activum>
|اِسْم مَرَّة<t:nomen vicis>
|اِسْم مَفْعُول<t:participium passivum>
|اِسْم مَقْصُور<t:noun ending in {{l|ar|ى}} or {{l|ar|ا}}>
|اِسْم مَكَان<t:nomen loci>
|اِسْم مَنْقُوص<t:noun ending in {{l|ar|ـٍ}}>
|اِسْم مَوْصُول<t:pronomen relativum>
|اِسْم نَوْع<t:nomen speciei>
|اِسْم هَيْئَة<t:nomen speciei>
|اِسْم وَحْدَة<t:nomen unitatis>
|اِسْم وِعَاء<t:nomen vasis>
|اِسْمِيّ<t:[[nominal]], [[titular]]>
}}
===== คำสืบทอด =====
{{top2}}
* {{desc|acy|ism}}
* {{desc|arz|اسم|tr=ism}}
* {{desc|acw|اسم|tr=isim}}
* {{desc|mt|isem}}
* {{desc|ary|اسم|tr=ism}}
* {{desc|aeb|اسم|tr=ism}}
* {{desc|az|isim|bor=1}}
* {{desctree|fa-cls|اِسْم|bor=1}}
* {{desc|ms|isim|bor=1}}
* {{desc|sw|isimu|bor=1}}
{{bottom}}
=== รากศัพท์ 2 ===
{{nonlemma}}
==== คำกริยา ====
{{ar-verb form|+سما<I>}}
=== อ่านเพิ่ม ===
* {{R:ar:Freytag|volume=2|pages=359–360}}
* {{cite-book|editors=Manuel Sartori, Manuela E. B. Giolfo, Philippe Cassuto|title=Approaches to the History and Dialectology of Arabic in Honor of Pierre Larcher|chapter=The Seven Deadly Sins of Arabic Studies|page=519–521|year=2017|publisher=Brill|location=Leiden|author=Carter, Michael George|series=Studies in Semitic Languages and Linguistics|seriesvolume=88|isbn=978-90-04-31150-3}}
* {{cite-web|last=Kasher|first=Almog|title=Term Ism in Medieval Arabic Grammatical Tradition: A Hyponym of Itself|url=https://academic.oup.com/jss/article-abstract/54/2/459/1735368|work=Journal of Semitic Studies|publisher=Oxford Academix|date=1 October 2009|accessdate=26 October 2018}}
* {{R:ar:Wehr-4|سم}}
{{cln|ar|autohyponyms|autological terms}}
le3qu62gdlqt0vg0oygyey4nlgoqzhn
5723282
5723281
2026-05-20T05:04:34Z
OctraBot
3198
/* คำนาม */
5723282
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== รากศัพท์ 1 ===
{{etymon|ar|id=name|:inh|sem-pro:*šim-<id:name>|:root|ar:و س م<id:root>|ar:س م و<id:root>}}
จาก{{inh|ar|sem-pro|*šim-}}, จาก{{inh|ar|afa-pro|*sim-|t=ชื่อ}}; Leveled in Arabic to the roots {{ar-root|و س م}} and {{ar-root|س م و}}.
ร่วมเชื้อสายกับ{{cog|he|שם|tr=shém}}, {{cog|am|ስም|tr=sɨm}}.
==== การออกเสียง ====
{{ar-pr|اِسْم}}
* {{audio|ar|Ar-اسم.ogg}}
** {{a|afb|Gulf}} {{IPA|afb|/ɪ.sɪm/}}
==== คำนาม ====
{{ar-noun|اِسْم|m|pl=أَسْمَاء,أَسَامٍ}}
# [[ชื่อ]], [[นาม]]
#: {{uxa|ar|مَا '''ٱسْمُكَ'''؟|What is '''your name'''?}}
#: {{uxa|ar|'''بِسْمِ''' اللّٰهِ الرَّحْمٰنِ الرَّحِيمِ|'''in the name of''' God, the Merciful, the Compassionate}}
#: {{uxa|ar|'''بِسْمِ''' ٱلْآبِ وَٱلِٱبْنِ وَٱلرُّوحِ ٱلْقُدُسِ|'''In the name of''' the Father, the Son, and the Holy Ghost}}
# [[สมญา]], [[ฉายา]]
# [[ชื่อเสียง]], [[เกียรติยศ]]
# {{C|ar|Nouns|Parts of speech}} {{lb|ar|grammar}} [[คำนาม]] {{gloss|รวมทุกประเภทไปถึง[[คำสรรพนาม]]และคำอื่นที่ใช้เป็นคำนาม}}
===== การผันรูป =====
{{ar-decl-noun|اِسْم|m|pl=أَسْمَاء|pl2=أَسَامٍ}}
===== ลูกคำ =====
{{col|ar
|اَلْأَسْمَاء الْخَمْسَة<t:the five nouns>
|اِسْم آلَة<t:nomen instrumenti>
|اِسْم إِشَارَة<t:pronomen demonstrativum>
|اِسْم اِسْتِفْهَام<t:pronomen interrogativum>
|اِسْم تَفْضِيل<t:elativus>
|اِسْم جَمْع<t:nomen generis>
|اِسْم جِنْس إِفْرَادِيّ
|اِسْم جِنْس جَمْعِيّ
|اِسْم جِنْس<t:nomen appellativum>
|اِسْم زَمَان<t:nomen temporis>
|اِسْم عَدَد<t:nomen numeri>
|اِسْم عَلَم<t:nomen proprium>
|اِسْم فَاعِل<t:participium activum>
|اِسْم مَرَّة<t:nomen vicis>
|اِسْم مَفْعُول<t:participium passivum>
|اِسْم مَقْصُور<t:noun ending in {{l|ar|ى}} or {{l|ar|ا}}>
|اِسْم مَكَان<t:nomen loci>
|اِسْم مَنْقُوص<t:noun ending in {{l|ar|ـٍ}}>
|اِسْم مَوْصُول<t:pronomen relativum>
|اِسْم نَوْع<t:nomen speciei>
|اِسْم هَيْئَة<t:nomen speciei>
|اِسْم وَحْدَة<t:nomen unitatis>
|اِسْم وِعَاء<t:nomen vasis>
|اِسْمِيّ<t:[[nominal]], [[titular]]>
}}
===== คำสืบทอด =====
{{top2}}
* {{desc|acy|ism}}
* {{desc|arz|اسم|tr=ism}}
* {{desc|acw|اسم|tr=isim}}
* {{desc|mt|isem}}
* {{desc|ary|اسم|tr=ism}}
* {{desc|aeb|اسم|tr=ism}}
* {{desc|az|isim|bor=1}}
* {{desctree|fa-cls|اِسْم|bor=1}}
* {{desc|ms|isim|bor=1}}
* {{desc|sw|isimu|bor=1}}
{{bottom}}
=== รากศัพท์ 2 ===
{{nonlemma}}
==== คำกริยา ====
{{ar-verb form|+سما<I>}}
=== อ่านเพิ่ม ===
* {{R:ar:Freytag|volume=2|pages=359–360}}
* {{cite-book|editors=Manuel Sartori, Manuela E. B. Giolfo, Philippe Cassuto|title=Approaches to the History and Dialectology of Arabic in Honor of Pierre Larcher|chapter=The Seven Deadly Sins of Arabic Studies|page=519–521|year=2017|publisher=Brill|location=Leiden|author=Carter, Michael George|series=Studies in Semitic Languages and Linguistics|seriesvolume=88|isbn=978-90-04-31150-3}}
* {{cite-web|last=Kasher|first=Almog|title=Term Ism in Medieval Arabic Grammatical Tradition: A Hyponym of Itself|url=https://academic.oup.com/jss/article-abstract/54/2/459/1735368|work=Journal of Semitic Studies|publisher=Oxford Academix|date=1 October 2009|accessdate=26 October 2018}}
* {{R:ar:Wehr-4|سم}}
{{cln|ar|autohyponyms|autological terms}}
mkqo29dy8iq4hc9kb16egyct0n63z6t
فأرة
0
255356
5723283
1070101
2026-05-20T05:06:45Z
OctraBot
3198
เก็บกวาด
5723283
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== คำนาม ===
{{ar-sing-noun|فَأْرَة|pl=فِئْرَان|coll=+}}
# [[หนู]]
==== การผันรูป ====
{{ar-decl-sing-noun|فَأْرَة|pl=فِئْرَان}}
3fz8y8ic11m9wvjvib0mpnhzh0uqm3g
แม่แบบ:ar-sing-noun
10
255357
5723284
1070102
2026-05-20T05:07:32Z
OctraBot
3198
5723284
wikitext
text/x-wiki
{{#invoke:ar-headword|show|คำเอกนาม}}<!--
--><noinclude>{{documentation}}</noinclude>
rqu583x9dzkr5li30m1oog81z0yhlyk
มอดูล:form of/data/2
828
272890
5723276
5715166
2026-05-20T04:53:53Z
OctraBot
3198
5723276
Scribunto
text/plain
--[=[
This module lists the less common recognized inflection tags, in the same format as for [[Module:form of/data/1]] (which
contains the more common tags). We split the tags this way to save memory, so we avoid loading the less common tags in
the majority of cases.
]=]
local m_form_of_data = require("Module:form of/data")
local APPENDIX = m_form_of_data.APPENDIX
local WP = m_form_of_data.WP
local WIKT = m_form_of_data.WIKT
local tags = {}
local shortcuts = {}
----------------------- Person -----------------------
tags["บุรุษที่สี่"] = {
"person",
"wikt:fourth person",
{"4", "fourth-person", "fourth person"},
3348541,
}
tags["second-person-object form"] = {
"person",
APPENDIX,
"2o",
}
----------------------- Number -----------------------
tags["associative plural"] = {
"number",
WIKT,
{"ass p", "ass pl", "assoc p", "assoc pl"},
}
tags["collective"] = {
"number",
"collective number",
"col",
694268,
}
tags["collective-possession"] = {
"number",
"collective number",
{"cpos", "colpos"},
}
tags["distributive paucal"] = {
"number",
WIKT,
"dpau",
}
tags["ตัวบอกความน้อย"] = {
"number",
WIKT,
{"pau", "paucal"},
489410,
}
tags["singulative"] = {
"number",
"singulative number",
"sgl",
1450795,
}
tags["transnumeral"] = {
"number",
APPENDIX,
"trn",
113631596,
display = "เอกพจน์หรือพหูพจน์",
}
tags["ไตรพจน์"] = {
"number",
APPENDIX,
{"tri", "trial", "trial number"},
2142560,
}
----------------------- Gender -----------------------
tags["natural feminine"] = {
"gender",
"gender",
"natf",
}
tags["virile"] = {
"gender",
APPENDIX,
"vr",
}
----------------------- Animacy -----------------------
----------------------- Tense/aspect -----------------------
tags["abtemporal"] = {
"tense-aspect",
WIKT,
"abtemp",
}
tags["anterior"] = {
"tense-aspect",
"w:relative and absolute tense",
"ant",
}
tags["cessative"] = {
"tense-aspect",
WP,
"cess",
17027342,
}
-- Aspect in Tagalog; presumably similar to the perfect tense/aspect but not necessarily similar enough to use the same
-- Wikidata ID
tags["complete"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"compl",
}
tags["concomitant"] = {
"tense-aspect",
WIKT,
"concom",
}
tags["confirmative"] = {
"tense-aspect",
WIKT,
"conf",
}
-- Aspect in Tagalog
tags["contemplative"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"contem",
}
tags["contemporal"] = {
"tense-aspect",
WIKT,
"contemp",
}
tags["continuative"] = {
"tense-aspect",
WP,
nil,
28130104,
}
tags["continuous"] = {
"tense-aspect",
"w:continuous aspect",
"cont",
12721117,
}
tags["delimitative"] = {
"tense-aspect",
"w:delimitative aspect",
"delim",
5316270,
}
tags["durative"] = {
"tense-aspect",
WP,
"dur",
}
tags["futuritive"] = {
"tense-aspect",
WP,
{"futv", "futrv"},
}
tags["frequentative"] = {
"tense-aspect",
WP,
"freq",
467562,
}
tags["habitual"] = {
"tense-aspect",
"w:habitual aspect",
"hab",
5636904,
}
-- same as the habitual; used in Mongolian linguistics
tags["habitive"] = {
"tense-aspect",
WP,
"habv",
}
tags["immediative"] = {
"tense-aspect",
WIKT,
{"imm", "immed"},
}
tags["incidental"] = {
"tense-aspect",
WIKT,
"incid",
}
tags["iterative"] = {
"tense-aspect",
"w:iterative aspect",
"iter",
2866772,
}
tags["momentane"] = {
"tense-aspect",
WP,
nil,
6897160,
}
tags["momentaneous"] = {
"tense-aspect",
WIKT,
"mom",
115110791,
}
tags["posterior"] = {
"tense-aspect",
"w:relative and absolute tense",
"post",
}
tags["preconditional"] = {
"tense-aspect",
WIKT,
"precond",
}
-- Type of participle in Hindi; also called agentive or agentive-prospective
tags["prospective"] = {
"tense-aspect",
"w:prospective aspect",
"pros",
}
tags["purposive"] = {
"tense-aspect",
WIKT,
"purp",
}
-- Aspect in Tagalog; presumably similar to the perfect tense/aspect but not necessarily similar enough to use the same
-- Wikidata ID
tags["recently complete"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"rcompl",
}
tags["resultative"] = {
"tense-aspect",
WP,
"res",
7316356,
}
tags["semelfactive"] = {
"tense-aspect",
WP,
"semf",
7449203,
}
tags["serial"] = {
"tense-aspect",
WIKT,
"ser",
}
tags["successive"] = {
"tense-aspect",
WIKT,
"succ",
}
-- be careful not to clash with terminative case tag
tags["terminative aspect"] = {
"tense-aspect",
"w:cessative aspect",
"term",
display = "terminative",
}
----------------------- Mood -----------------------
tags["benedictive"] = {
"mood",
WP,
"bened",
4887358,
}
tags["cohortative"] = {
"mood",
"w:cohortative mood",
{"coho", "cohort"},
}
tags["concessive"] = {
"mood",
WIKT,
"conc",
}
tags["contrafactual"] = {
"mood",
WIKT,
"cfact",
110323459,
}
-- Same as the contrafactual, but terminology depends on language.
tags["counterfactual"] = {
"mood",
WP,
"counterf",
1783264, -- for "counterfactual conditional"
}
tags["desiderative"] = {
"mood",
WP,
{"des", "desid"},
1200631,
}
tags["dubitative"] = {
"mood",
"w:dubitative mood",
"dub",
1263049,
}
tags["energetic"] = {
"mood",
"w:energetic mood",
"ener",
}
tags["inferential"] = {
"mood",
"w:inferential mood",
{"infer", "infr"},
-- Per [[w:inferential mood]], also called "renarrative mood" or (in Estonian) "oblique mood" (but
-- "renarrative mood" may be different, see its entry).
3332616,
}
-- It's not clear that this is exactly a mood, but I'm not sure where
-- else to group it
tags["intensive"] = {
"mood",
WP,
"inten",
10965321, -- for "intensive word form"
}
tags["intentional"] = {
"mood",
WIKT,
"intent",
}
tags["มาลาถาม"] = {
"mood",
WP,
{"interr", "interrog", "interrogative"},
12021746,
}
tags["necessitative"] = {
"mood",
WIKT,
"nec",
}
tags["permissive"] = {
"mood",
"w:permissive mood",
"perm",
4351483,
}
tags["potential"] = {
"mood",
"w:potential mood",
"potn",
2296856,
}
tags["precative"] = {
"mood",
WIKT,
"prec",
}
tags["prescriptive"] = {
"mood",
WIKT,
"prescr",
}
tags["presumptive"] = {
"mood",
"w:presumptive mood",
"presump",
25463575,
}
-- Exists at least in Estonian
tags["quotative"] = {
"mood",
"w:quotative evidential mood",
"quot",
-- 7272884, -- this is for "quotative" morphemes, not the same
}
tags["renarrative"] = {
"mood",
"w:renarrative mood",
"renarr",
-- Per [[w:inferential mood]], renarrative and inferential mood are the same; but per
-- [[w:Bulgarian verbs#Evidentials]], they are different, and Bulgarian has both.
3332616,
}
tags["volitive"] = {
"mood",
"w:volitive mood",
"voli",
10716592,
}
tags["voluntative"] = {
"mood",
WIKT,
{"voln", "volun"},
}
----------------------- Voice/valence -----------------------
tags["antipassive"] = {
"voice-valence",
"w:antipassive voice",
{"apass", "apasv", "apsv"},
287232,
}
tags["applicative"] = {
"voice-valence",
"w:applicative voice",
"appl",
621634,
}
tags["cooperative"] = { -- ("all together") used in Mongolian
"voice-valence",
"wikt:cooperative voice",
"coop",
114033228,
}
tags["pluritative"] = { -- ("many together") used in Mongolian
"voice-valence",
"wikt:pluritative voice",
"plur",
114033289,
}
tags["reciprocal"] = {
"voice-valence",
"w:reciprocal (grammar)",
{"recp", "recip"},
1964083,
}
-- Specific to Modern Irish, similar to impersonal
tags["autonomous"] = {
"voice-valence",
WIKT,
"auton",
}
----------------------- Non-finite -----------------------
-- be careful not to clash with agentive case tag
tags["agentive"] = {
"non-finite",
"w:agent noun",
{"ag", "agent"},
}
-- Latin etc.
tags["gerundive"] = {
"non-finite",
WP,
"gerv",
731298, -- Wikidata claims this is a grammatical mood, which is not really correct
}
-- Old Irish etc.
tags["verbal of necessity"] = {
"non-finite",
"w:gerundive",
"verbnec",
731298, -- gerundive
}
tags["l-participle"] = {
"non-finite",
"participle",
{"l-ptcp", "lptcp"},
814722, -- "participle"
}
-- Finnish agent participle
tags["agent participle"] = {
"non-finite",
"w:Finnish grammar#Agent participle",
"agentpart",
}
-- Hungarian participle
tags["verbal participle"] = {
"non-finite",
WIKT,
nil,
2361676, -- attributive verb, aka verbal participle
}
tags["converb"] = {
"non-finite",
WP,
"conv",
149761,
}
tags["connegative"] = {
"non-finite",
APPENDIX,
{"conn", "conneg"},
5161718,
}
-- Occurs in Hindi as a type of participle used to conjoin two clauses; similarly occurs in Japanese as the "te-form"
tags["conjunctive"] = {
"non-finite",
"w:serial verb construction", -- FIXME! No good link for "conjunctive"; another possibility is "converb"
"conj",
}
tags["absolutive verb form"] = {
"non-finite",
"wikt:absolutive#Noun",
"absvf",
display = "absolutive",
}
-- FIXME! Should this be a mood?
tags["debitive"] = {
"non-finite",
WP,
"deb",
17119041,
}
----------------------- Case -----------------------
tags["abessive"] = {
"case",
"w:abessive case",
"abe",
319822,
}
tags["absolutive"] = {
"case",
"w:absolutive case",
"absv", -- FIXME, find uses of "abs" = absolutive
332734,
}
tags["adessive"] = {
"case",
"w:adessive case",
"ade",
281954,
}
-- be careful not to clash with adverbial grammar tag
tags["วิเศษณการก"] = {
"case",
WP,
{"advc", "adverbial case"},
--display = "adverbial",
}
-- be careful not to clash with agentive non-finite tag
tags["agentive case"] = {
"case",
WP,
"agc",
display = "agentive",
}
tags["allative"] = {
"case",
"wikt:allative case",
"all",
655020,
}
--No evidence of the existence of this case on the web, and the shortcuts are better used elsewhere.
--tags["anterior"] = {
-- "case",
-- nil,
-- {"ant"},
--}
tags["associative"] = {
"case",
"w:associative case",
{"ass", "assoc"},
15948746,
}
tags["อุปถัมภการก"] = {
"case",
"w:benefactive case",
{"ben", "bene", "benefactive", "benefactive case"},
664905,
}
tags["causal"] = {
"case",
"w:causal case",
{"cauc", "causc"},
2943136,
}
tags["causal-final"] = {
"case",
"w:causal-final case",
{"cfi", "cfin"},
18012653,
}
tags["comitative"] = {
"case",
"w:comitative case",
"com",
838581,
}
-- be careful not to clash with comparative degree
tags["comparative case"] = {
"case",
WP,
"comc",
5155633,
display = "comparative",
}
tags["delative"] = {
"case",
"w:delative case",
"del",
1183901,
}
tags["การกตรง"] = {
"case",
APPENDIX,
{"dir", "direct", "direct case"},
1751855,
}
tags["directive"] = {
"case",
"wikt:directive case",
"dirc",
56526905,
}
tags["distributive"] = {
"case",
"w:distributive case",
{"dis", "dist", "distr"},
492457,
}
tags["elative"] = {
"case",
"elative case",
"ela",
394253,
}
tags["สาธกการก"] = {
"case",
APPENDIX,
{"erg", "ergative", "ergative case"},
324305,
}
-- be careful not to clash with equative degree tag
tags["equative"] = {
"case",
"w:equative case",
"equc",
3177653,
}
tags["essive-formal"] = {
"case",
"w:essive-formal case",
{"esf", "efor"},
3827688,
}
tags["essive-modal"] = {
"case",
"w:essive-modal case",
{"esm", "emod"},
3827703,
}
tags["essive"] = {
"case",
"w:essive case",
"ess",
148465,
}
--No evidence of the existence of this case on the web, and the shortcuts are better used elsewhere.
--tags["exclusive"] = {
-- "case",
-- nil,
-- {"exc", "excl"},
--}
tags["illative"] = {
"case",
"w:illative case",
"ill",
474668,
}
--[=[ ใช้รวมกับ oblique
tags["indirect"] = {
"case",
"w:direct case",
"indir",
1233197, -- Same as oblique.
}
--]=]
tags["inessive"] = {
"case",
"w:inessive case",
"ine",
282031,
}
tags["instructive"] = {
"case",
"w:instructive case",
"ist",
1665275,
}
tags["lative"] = {
"case",
"w:lative case",
"lat",
260425,
}
tags["limitative"] = {
"case",
"w:list of grammatical cases",
"lim",
35870079,
}
tags["locative-qualitative"] = {
"case",
"locative-qualitative case",
{"lqu", "lqua"},
}
tags["objective"] = {
"case",
"objective case",
"objv", -- obj used for "object"
1233197, -- Same as oblique.
}
tags["การกอ้อม"] = {
"case",
APPENDIX,
{"obl", "oblique", "oblique case", "indir", "indirect", "indirect case"},
1233197,
}
tags["ภาคยการก"] = {
"case",
APPENDIX,
{"ptv", "par", "partitive", "partitive case"},
857325,
}
--certain languages use this term for the abessive
tags["privative"] = {
"case",
"w:privative case",
"priv",
319822,
}
tags["prolative"] = {
"case",
"w:prolative case",
{"pro", "prol"},
952933,
}
tags["สหัตถการก"] = {
"case",
"w:sociative case",
{"soc", "sociative", "sociative case"},
3773161,
}
tags["subjective"] = {
"case",
"w:subjective case",
{"subjv", "sbjv"}, -- "sub" and "subj" used for subjunctive, "sbj" for "subject"
131105, -- Same as nominative.
}
tags["sublative"] = {
"case",
"w:sublative case",
{"sbl", "subl"},
2120615,
}
tags["superessive"] = {
"case",
"w:superessive case",
{"spe", "supe"},
222355,
}
tags["temporal"] = {
"case",
"w:temporal case",
{"tem", "temp"},
3235219,
}
-- be careful not to clash with terminative aspect tag
tags["terminative case"] = {
"case",
"w:terminative case",
"ter",
747019,
display = "terminative",
}
tags["translative"] = {
"case",
"w:translative case",
{"tra", "tran"},
950170,
}
----------------------- State -----------------------
tags["independent genitive"] = {
"state",
WIKT,
"indgen",
}
tags["possessor"] = {
"state",
WIKT,
{"posr", "possr"},
}
tags["reflexive possessive"] = {
"state",
WIKT,
{"reflposs", "refl poss"},
}
tags["substantive"] = {
"state",
APPENDIX,
{"subs", "subst"},
}
----------------------- Degrees of comparison -----------------------
tags["absolute superlative degree"] = {
"comparison",
"wikt:absolute superlative",
{"asupd", "absolute superlative"},
}
tags["relative superlative degree"] = {
"comparison",
"wikt:relative superlative",
{"rsupd", "relative superlative"},
}
tags["elative degree"] = {
"comparison",
"elative",
"elad", -- Can't use "elative" as shortcut because that's already used for the elative case
1555419,
}
-- be careful not to clash with equative case tag
tags["equative degree"] = {
"comparison",
"w:equative",
"equd",
5384239,
}
tags["excessive degree"] = {
"comparison",
nil,
"excd",
}
----------------------- Register -----------------------
tags["familiar"] = {
"register",
"w:T–V distinction",
"fam",
}
tags["สุภาพ"] = {
"register",
"w:T–V distinction",
{"pol", "polite"},
}
tags["intimate"] = {
"register",
-- "intimate" is also a possible formality level in the sociolinguistic register sense.
"w:T–V distinction",
"intim",
}
tags["ทางการ"] = {
"register",
"w:register (sociolinguistics)",
{"formal"},
}
tags["ไม่ทางการ"] = {
"register",
"w:register (sociolinguistics)",
{"inform", "informal"},
}
tags["ภาษาปาก"] = {
"register",
"w:colloquialism",
{"colloq", "colloquial", "ปาก"},
}
tags["สแลง"] = {
"register",
WP,
{"slang"},
}
tags["ร่วมสมัย"] = {
"register",
WIKT,
{"conty", "contemporary"},
}
tags["ภาษาหนังสือ"] = {
"register",
"w:literary language",
{"lit", "literary", "หนังสือ", "แบบ"},
}
tags["ล้าสมัย"] = {
"register",
WIKT,
{"dated", "ล้า"},
}
tags["โบราณ"] = {
"register",
"w:archaism",
{"arch", "archaic", "โบ"},
}
tags["เลิกใช้"] = {
"register",
WIKT,
{"obs", "obsolete", "เลิก"},
}
tags["emphatic"] = {
"register",
WIKT,
"emph",
}
----------------------- Deixis -----------------------
tags["proximal"] = {
"deixis",
"w:deixis",
{"prox", "prxl"},
}
tags["medial"] = {
"deixis",
"w:deixis",
"medl",
}
tags["distal"] = {
"deixis",
"w:deixis",
"dstl",
}
----------------------- Clusivity -----------------------
tags["inclusive"] = {
"clusivity",
"w:clusivity",
"incl",
}
tags["exclusive"] = {
"clusivity",
"w:clusivity",
"excl",
}
tags["obviative"] = {
"clusivity",
"w:clusivity",
"obv",
}
----------------------- Inflectional class -----------------------
tags["absolute"] = {
"grammar",
WIKT,
"abs",
}
tags["conjunct"] = {
"grammar",
WP,
"conjt",
}
tags["deuterotonic"] = {
"grammar",
"w:dependent and independent verb forms",
"deut",
}
tags["prototonic"] = {
"grammar",
"w:dependent and independent verb forms",
"prot",
}
----------------------- Attitude -----------------------
tags["endearing"] = {
"attitude",
-- FIXME! No good glossary entry for this; the entry for "hypocoristic" refers specifically to proper names.
"w:hypocoristic",
"end",
1130279, -- entry for "hypocorism"
}
tags["moderative"] = {
"attitude",
WIKT,
"moder",
}
----------------------- Sound changes -----------------------
tags["alliterative"] = {
"sound change",
"w:alliteration",
nil,
484495,
}
tags["back"] = {
"sound change",
"w:back vowel",
nil,
853589,
}
tags["front"] = {
"sound change",
"w:front vowel",
nil,
5505949,
}
tags["rounded"] = {
"sound change",
"w:roundedness",
"round",
}
tags["sigmatic"] = {
"sound change",
WIKT,
"sigm",
}
tags["unrounded"] = {
"sound change",
"w:roundedness",
"unround",
}
tags["vowel harmonic"] = {
"sound change",
"w:vowel harmony",
"vharm",
147137,
}
----------------------- Misc grammar -----------------------
tags["relative"] = {
"grammar",
WIKT,
"rel",
}
tags["direct relative"] = {
"grammar",
"w:relative_clause#Celtic_languages",
"dirrel",
}
tags["indirect relative"] = {
"grammar",
"w:relative_clause#Celtic_languages",
"indrel",
}
tags["synthetic"] = {
"grammar",
WIKT,
"synth",
}
tags["analytic"] = {
"grammar",
WIKT,
{"anal", "analytical"},
}
tags["periphrastic"] = {
"grammar",
WIKT,
"peri",
}
tags["affirmative"] = {
"grammar",
"w:affirmation and negation",
"aff",
}
tags["possessed"] = {
"grammar",
"w:possessive affix",
{"possd", "possed"}, -- posd = positive degree
804020, -- for possessive affix
}
tags["non-possessed"] = {
"grammar",
"w:possessive affix",
{"npossd", "npossed", "nonpossessed"},
}
tags["possessive affix"] = {
"grammar",
WP,
{"posaf", "possaf"},
804020,
}
tags["possessive suffix"] = {
"grammar",
"w:possessive affix",
"possuf",
804020,
}
tags["possessive prefix"] = {
"grammar",
"w:possessive affix",
{"pospref", "posspref"},
804020,
}
tags["prefix"] = {
"grammar",
APPENDIX,
"pref", -- pre = prepositional
134830,
}
tags["prefixal"] = {
"grammar",
WIKT,
"prefl", -- pre = prepositional
134830,
}
tags["suffix"] = {
"grammar",
APPENDIX,
{"suf", "suff"},
102047,
}
tags["suffixal"] = {
"grammar",
WIKT,
{"sufl", "suffl"},
102047,
}
tags["affix"] = {
"grammar",
WP,
"af", -- aff = affirmative
62155,
}
tags["affixal"] = {
"grammar",
WIKT,
"afl", -- aff = affirmative
62155,
}
tags["circumfix"] = {
"grammar",
WP,
{"circ", "cirf", "circf"},
124939,
}
tags["circumfixal"] = {
"grammar",
WIKT,
{"circl", "cirfl", "circfl"},
124939,
}
tags["infix"] = {
"grammar",
WP,
"infx",
201322,
}
tags["infixal"] = {
"grammar",
WIKT,
"infxl",
201322,
}
tags["nonfinite"] = {
"grammar",
APPENDIX,
"nonfin",
1050494, -- entry for "non-finite verb"
}
tags["อกาล"] = {
"grammar",
WIKT,
"tenseless",
}
tags["aspect"] = {
"grammar",
APPENDIX,
"asp",
208084,
}
tags["augmented"] = {
"grammar",
"augment",
nil,
760437,
}
tags["unaugmented"] = {
"grammar",
"augment",
nil,
760437,
}
----------------------- Other tags -----------------------
tags["–"] = { -- Unicode en-dash
"other",
no_space_on_left = true,
no_space_on_right = true,
}
tags["—"] = { -- Unicode em-dash
"other",
no_space_on_left = true,
no_space_on_right = true,
}
----------------------- Create the shortcuts list -----------------------
m_form_of_data.finalize(tags, shortcuts)
return {tags = tags, shortcuts = shortcuts}
qe0el5dw5y1f0t904lj7wu5av9jytjb
มอดูล:languages/data/3/g/extra
828
312319
5723238
5719158
2026-05-20T03:22:24Z
OctraBot
3198
5723238
Scribunto
text/plain
local m = {}
m["gaa"] = {
}
m["gab"] = {
aliases = {"Southern Gabri"},
}
m["gac"] = {
other_names = {"Great Andamanese creole", "Great Andamanese"},
}
m["gad"] = { -- not to be confused with gdk, gdg
other_names = {"Cagayan"},
}
m["gae"] = {
other_names = {"Guarequena", "Arekena"},
}
m["gaf"] = {
other_names = {"Gendeka", "Gene"},
}
m["gag"] = {
aliases = {"กากาอูซียา", "Gagauz"},
}
m["gah"] = {
other_names = {"Gahuku"},
}
m["gai"] = {
}
m["gaj"] = {
}
m["gak"] = {
}
m["gal"] = {
other_names = {"Galolen", "Talur"},
}
m["gam"] = {
other_names = {"Narake"},
}
m["gan"] = {
aliases = {"จีนกั้น", "Gan"},
}
m["gao"] = {
other_names = {"Gaj"},
}
m["gap"] = {
}
m["gaq"] = {
}
m["gar"] = {
}
m["gas"] = {
}
m["gat"] = {
}
m["gau"] = {
other_names = {"Gadaba", "San Gadaba", "Gadba", "Sano", "Kondekar", "Kondkor", "Konḍekor Gadaba", "Mudhili Gadaba"},
}
m["gaw"] = {
other_names = {"Garuh", "Nobanob", "Nobnob"},
}
m["gay"] = {
}
m["gbb"] = {
}
m["gbd"] = {
aliases = {"Garadjari", "Karajarri"},
}
m["gbe"] = {
}
m["gbf"] = {
}
m["gbg"] = {
other_names = {"Banziri", "Gbandere", "Gbanzili"},
}
m["gbh"] = {
}
m["gbi"] = {
}
m["gbj"] = {
other_names = {"Gutob", "Gadaba", "Gadba", "Gutop", "Gudwa", "Godwa", "Gadwa", "Boi Gadaba"},
}
m["gbk"] = {
}
m["gbl"] = {
}
m["gbm"] = {
}
m["gbn"] = {
}
m["gbo"] = {
}
m["gbp"] = {
other_names = {"Bossangoa", "Gbaya of Bossangoa"},
}
m["gbq"] = {
other_names = {"Bozom", "Gbaya of Bozom", "Gbaya-Bozom"},
}
m["gbr"] = {
}
m["gbs"] = {
}
m["gbu"] = {
}
m["gbv"] = {
}
m["gbw"] = {
aliases = {"Gabi-Gabi", "Gabi Gabi", "Gubbi-Gubbi", "Gubbi Gubbi"}, -- contrast xby
}
m["gbx"] = {
other_names = {"Houla", "Kpla", "Offra", "Ophra", "Phla", "Pla", "Popo", "Xwla"},
}
m["gby"] = {
}
m["gcc"] = {
}
m["gcd"] = {
}
m["gce"] = {
}
m["gcf"] = {
other_names = {"Antillean Creole French", "Guadeloupean Creole", "Guadeloupean Creole French", "Saint Lucian Creole", "Saint Lucian Creole French"},
}
m["gcl"] = {
}
m["gcn"] = {
}
m["gcr"] = {
other_names = {"French Guianese Creole", "Guianese French Creole", "Guyanais", "Guyanese French Creole"},
}
m["gct"] = {
other_names = {"Alemán Coloniero"},
}
m["gdb"] = {
other_names = {"Pottangi Ollar Gadaba", "Ollar Gadaba", "Ollaro", "Hallari", "Allar", "Hollar Gadbas"},
}
m["gdc"] = {
}
m["gdd"] = {
}
m["gde"] = {
}
m["gdf"] = {
}
m["gdg"] = { -- not to be confused with gad, gdk
}
m["gdh"] = {
}
m["gdi"] = {
}
m["gdj"] = {
other_names = {"Gurdjar", "Kunggara"},
}
m["gdk"] = { -- not to be confused with gad, gdg
}
m["gdl"] = {
}
m["gdm"] = {
}
m["gdn"] = {
}
m["gdo"] = {
aliases = {"Ghodoberi"},
}
m["gdq"] = {
aliases = {"Mahri"},
}
m["gdr"] = {
}
m["gds"] = {
}
m["gdt"] = {
}
m["gdu"] = {
}
m["gdx"] = {
}
m["gea"] = {
}
m["geb"] = {
}
m["gec"] = {
}
m["ged"] = {
}
m["geg"] = {
}
m["geh"] = {
aliases = {"Hutterite German", "Tirolean"},
}
m["gei"] = {
}
m["gej"] = {
}
m["gek"] = {
other_names = {"Yiwom"},
}
m["gel"] = {
other_names = {"Kag-Fer-Jiir-Koor-Ror-Us-Zuksun", "ut-Ma'in", "Fakai", "Kag", "Puku", "Fakanchi", "Et-Kag", "Jiir", "Gelanchi", "Et-Jiir", "Kur", "Kere", "Kar", "Keri-Ni", "Kelli-Ni", "Kelanchi", "Kelinci", "Zuksun", "Zussun", "Et-Zuksun", "Ror", "Et-Maror", "Tudanchi", "Er-Gwar", "Fer", "Fere", "Et-Fer", "Wipsi-Ni", "Kukum", "Us", "Et-Us", "Koor", "Kulu"},
}
m["geq"] = {
}
m["ges"] = {
}
m["gev"] = {
aliases = {"Eviya"},
}
m["gew"] = {
}
m["gex"] = {
}
m["gey"] = {
}
m["gez"] = {
aliases = {"เอธิโอเปีย", "Ge'ez", "Ethiopic", "Gi'iz", "Geez"},
}
m["gfk"] = {
}
m["gft"] = {
}
m["gga"] = {
}
m["ggb"] = {
}
m["ggd"] = {
}
m["gge"] = {
}
m["ggg"] = {
}
m["ggk"] = {
}
m["ggl"] = {
}
m["ggn"] = {
}
m["ggt"] = {
}
m["ggu"] = {
}
m["ggw"] = {
}
m["gha"] = {
aliases = {"Ghadamès"},
}
m["ghc"] = {
aliases = {"ไอริชใหม่ช่วงต้น", "แกลิกใหม่ช่วงต้น", "Classical Gaelic", "Early Modern Irish", "Early Modern Gaelic", "Hiberno-Scottish Gaelic"},
}
m["ghe"] = {
}
m["ghh"] = {
}
m["ghk"] = {
}
m["ghl"] = {
}
m["ghn"] = {
}
m["gho"] = {
}
m["ghr"] = {
}
m["ghs"] = {
}
m["ght"] = {
}
m["gia"] = {
}
m["gib"] = {
}
m["gid"] = {
}
m["gie"] = {
other_names = {"Gaɓogbo", "Gabogbo"},
}
m["gig"] = {
}
m["gih"] = {
}
m["gii"] = {
aliases = {"Gariire"},
}
m["gil"] = {
aliases = {"คิริบาส", "Gilbertese", "Kiribati", "Kiribatese"},
}
m["gim"] = {
aliases = {"Gimi", "Papuan Gimi", "Labogai"},
}
m["gin"] = {
aliases = {"Hinuq", "Hinux", "Ginukh", "Ginux"},
}
m["gip"] = {
aliases = {"Gimi", "Austronesian Gimi", "Loko"},
}
m["giq"] = {
other_names = {"Hagei", "Hakhi"},
}
m["gir"] = {
other_names = {"Vandu"},
}
m["gis"] = {
}
m["git"] = {
}
m["giu"] = {
}
m["giw"] = {
other_names = {"Telue", "Doulou", "Tolo"},
}
m["gix"] = {
}
m["giy"] = {
}
m["giz"] = {
}
m["gji"] = {
}
m["gjk"] = {
}
m["gjm"] = {
}
m["gjn"] = {
}
m["gjr"] = {
}
m["gju"] = {
aliases = {"Gojari", "Gujari", "Gujuri", "Gujjari", "Gujri", "Gurjari"},
}
m["gka"] = {
}
m["gkd"] = {
aliases = {"Magi"},
}
m["gke"] = {
}
m["gkn"] = {
}
m["gko"] = {
}
m["gkp"] = {
}
m["glc"] = {
}
m["gld"] = {
other_names = {"Goldi", "Hezhen"},
}
m["glh"] = {
}
m["glj"] = {
}
m["glk"] = {
}
m["glo"] = {
}
m["glr"] = {
}
m["glu"] = {
aliases = {"Sara Gula"},
}
m["glw"] = {
}
m["gly"] = {
}
m["gma"] = {
}
m["gmb"] = {
}
m["gmd"] = {
}
m["gmg"] = {
aliases = {"Magɨyi"},
}
m["gmh"] = {
aliases = {"Middle High German"},
}
m["gml"] = {
aliases = {"Middle Low German"},
}
m["gmm"] = {
}
m["gmn"] = {
}
m["gmu"] = {
}
m["gmv"] = {
aliases = {"เกมู", "Gamo", "Gemu"},
}
m["gmx"] = {
}
m["gmy"] = {
aliases = {"Mycenaean Greek"},
}
m["gmz"] = {
other_names = {"Mgbolizhia"},
}
m["gna"] = {
}
m["gnb"] = {
}
m["gnc"] = {
}
m["gnd"] = {
other_names = {"Zulgo", "Gemzek", "Mineo"},
}
m["gne"] = {
}
m["gng"] = {
}
m["gnh"] = {
}
m["gni"] = {
aliases = {"Guniyandi"},
}
m["gnj"] = {
aliases = {"Ngen"},
}
m["gnk"] = {
aliases = {"Gana", "Gǁana", "Gxana", "Dxana", "Xgana"},
}
m["gnl"] = {
}
m["gnm"] = {
}
m["gnn"] = {
}
m["gnq"] = {
}
m["gnr"] = {
}
m["gnt"] = {
}
m["gnu"] = {
}
m["gnw"] = {
other_names = {"Simba", "Simba Guarani"},
}
m["gnz"] = {
}
m["goa"] = {
}
m["gob"] = {
}
m["goc"] = {
}
m["god"] = {
}
m["goe"] = {
}
m["gof"] = {
aliases = {"โกฟฟา", "Gofa", "Goffa"},
}
m["gog"] = {
}
m["goh"] = {
aliases = {"เยอรมันสูงโบราณ", "Old High German"},
}
m["goi"] = {
other_names = {"Gobosi", "Gebusi", "Bibo", "Nomad"},
}
m["goj"] = {
}
-- gok is a spurious language, see [[w:Spurious languages]]
m["gol"] = {
}
m["gon"] = {
aliases = {"Gondi"},
varieties = {"Southern Gondi", "Northern Gondi", "Aheri Gondi", "Adilabad Gondi", "Dorla Gondi", "Koya Gondi", "Maria Gondi", "Muria Gondi", "Raj Gondi"},
}
m["goo"] = {
}
m["gop"] = {
}
m["goq"] = {
}
m["gor"] = {
}
m["got"] = {
aliases = {"กอทิก", "กอทิค", "กอธิก", "กอธิค", "โกทิก", "โกทิค", "โกธิก", "โกธิค", "Gothic"},
}
m["gou"] = {
aliases = {"Gawar"},
}
m["gov"] = {
}
m["gow"] = {
}
m["gox"] = {
}
m["goy"] = {
}
m["goz"] = {
}
m["gpa"] = {
}
m["gpn"] = {
other_names = {"Tayap", "Gapun"},
}
m["gqa"] = {
}
m["gqi"] = {
aliases = {"Guìqióng", "Guichong"},
}
m["gqn"] = { -- a variety of 'ter'
other_names = {"Guana", "Guaná", "Guana (Brazil)", "Arawakan Guana"},
}
m["gqr"] = {
}
m["gqu"] = {
other_names = {"Gao", "Aqao", "Qau Gelao"},
}
m["gra"] = {
}
m["grb"] = {
}
m["grc"] = {
aliases = {"กรีกคลาสสิก", "Ancient Greek", "Classical Greek"},
varieties = {"Egyptian Ancient Greek"},
}
m["grd"] = {
}
m["grg"] = {
}
m["grh"] = {
}
m["gri"] = {
other_names = {"Gari", "Tangarare", "Sughu", "West Guadalcanal"},
}
m["grj"] = {
}
m["grm"] = {
}
m["gro"] = {
}
m["grq"] = {
}
m["grs"] = {
}
m["grt"] = {
aliases = {"Garo", "Garrow", "Mandi", "Mande"},
}
m["gru"] = {
other_names = {"Soddo", "Aymälläl"},
}
m["grv"] = {
}
m["grw"] = {
}
m["grx"] = {
}
m["gry"] = {
}
m["grz"] = {
}
m["gse"] = {
}
m["gsg"] = {
aliases = {"Deutsche Gebärdensprache"},
}
m["gsl"] = {
}
m["gsm"] = {
}
m["gsn"] = {
}
m["gso"] = {
}
m["gsp"] = {
}
m["gss"] = {
}
m["gsw"] = {
aliases = {"เยอรมันแบบสวิส", "Alemannic German", "Swiss German"},
varieties = {"Walser German", "Walserdeutsch", "Walser", "Wallisertiitsch", "Italian Walser", "Pomattertitsch", "Formazza", "Kampel", "Remmaljertittschu", "Rimella", "Chalchoufe", "Titzschu", "Alagna", "Greschóneytitsch", "Greschóney", "Greschoney", "Gressoney", "Éischemtöitschu", "Issime"},
}
m["gta"] = {
}
m["gtu"] = {
aliases = {"Aghu Tharnggala", "Aghu Tharnggalu", "Tharrnggala", "Gogo Mini", "Kuku Mini"},
}
m["gua"] = {
}
m["gub"] = {
}
m["guc"] = {
aliases = {"Guajiro", "Goajiro", "Uagiro"},
}
m["gud"] = {
}
m["gue"] = {
}
m["guf"] = {
}
m["gug"] = {
aliases = {"Paraguayan Guarani", "Jopará", "Yopará"},
}
m["guh"] = {
}
m["gui"] = {
other_names = {"Ava Guaraní", "Chiriguanos"},
}
m["guk"] = {
}
m["gul"] = {
other_names = {"Geechee", "Sea Island Creole English"},
}
m["gum"] = {
}
m["gun"] = {
other_names = {"Mbyá", "Mbya", "Mbyhá", "Mbiá", "Mbua", "Mbüá", "Mbü'a", "Mbü'a Guaraní", "Jeguaká Tenondé", "Bwihá", "Caiua", "Kaiwá", "Kayová", "Cahygua", "Caingua"},
}
m["guo"] = {
}
m["gup"] = {
other_names = {"Bininj Gunwok", "Bininj Gun-Wok", "Bininj Kunwok", "Bininj Kun-Wok", "Kunwinjkuan", "Kunwinjku", "Gunwinjgu", "Kuninjku", "Kundjeyhmi", "Gundjeihmi", "Manyallaluk Mayali", "Mayali", "Kundedjnjenghmi", "Kune Dulerayek", "Kune Narayek", "Kune"},
}
m["guq"] = {
other_names = {"Guayaki"},
}
m["gur"] = {
aliases = {"แฟร์แฟร์", "Frafra", "Farefare"},
other_names = {"Gurene", "Gurenɛ", "Gurenne", "Gudenne", "Gudeni", "Zuadeni", "Nankani", "Naani", "Nankanse", "Ninkare", "Booni"},
}
m["gus"] = {
}
m["gut"] = {
}
m["guu"] = {
}
m["guv"] = {
}
m["guw"] = {
other_names = {"Gun-Gbe", "Gungbe"},
}
m["gux"] = {
}
m["guz"] = {
}
m["gva"] = {
other_names = {"Guana", "Guaná", "Guana (Paraguay)", "Mascoian Guana"},
}
m["gvc"] = {
}
m["gve"] = {
}
m["gvf"] = {
}
m["gvj"] = {
other_names = {"Awá", "Ayaya", "Guaxare", "Wazaizara"},
}
m["gvl"] = {
}
m["gvm"] = {
}
m["gvn"] = {
}
m["gvo"] = {
other_names = {"Gavião of Jiparaná", "Digüt", "Ikolen", "Gavião do Rondônia", "Zoró"},
}
m["gvp"] = {
}
m["gvr"] = {
}
m["gvs"] = {
}
m["gvy"] = {
}
m["gwa"] = {
}
m["gwb"] = {
}
m["gwc"] = {
}
m["gwd"] = {
}
m["gwe"] = {
}
m["gwf"] = {
}
m["gwg"] = {
}
m["gwi"] = {
other_names = {"Gwich’in", "Kutchin", "Takudh", "Tukudh", "Loucheux"},
}
m["gwj"] = {
aliases = {"Gǀwi", "Gǀui", "ǀGwi", "Dcui", "Gcui", "Cgui"},
}
m["gwm"] = {
}
m["gwn"] = {
}
m["gwr"] = {
}
m["gwt"] = {
}
m["gwu"] = {
}
m["gww"] = {
}
m["gwx"] = {
}
m["gxx"] = {
}
m["gya"] = {
}
m["gyb"] = {
}
m["gyd"] = {
}
m["gye"] = {
}
m["gyf"] = {
}
m["gyg"] = {
}
m["gyi"] = {
}
m["gyl"] = {
}
m["gym"] = {
}
m["gyn"] = {
aliases = {"Guyanese Creole", "Creolese", "Guyanese"},
}
m["gyo"] = {
}
m["gyr"] = {
aliases = {"Gwarayú"},
}
m["gyy"] = {
}
m["gza"] = {
}
m["gzn"] = {
}
return m
3omfi01rv813c0cnj9w4s25bsmtc29y
มอดูล:languages/data/3/a/extra
828
312391
5723245
5684384
2026-05-20T03:28:22Z
OctraBot
3198
5723245
Scribunto
text/plain
local m = {}
m["aaa"] = {
aliases = {"Otuo"},
}
m["aab"] = {
other_names = {"Alumu", "Tesu"},
}
m["aac"] = {
}
m["aad"] = {
other_names = {"Alai"},
}
m["aaf"] = {
aliases = {"Eranadan"},
}
m["aag"] = {
}
m["aah"] = {
other_names = {"Abu' Arapesh", "Ua"},
}
m["aai"] = {
other_names = {"Arifama", "Miniafia"},
}
m["aak"] = {
aliases = {"Angave"},
}
m["aal"] = {
}
m["aan"] = {
aliases = {"Anambe"},
}
m["aap"] = {
other_names = {"Arára"},
}
m["aaq"] = {
other_names = {"Eastern Abenaki", "Eastern Abnaki"},
}
m["aas"] = {
other_names = {"Aasáx", "Asa", "Aramanik", "Laramanik"},
}
m["aau"] = {
}
m["aaw"] = {
other_names = {"Arove", "Arawe"},
}
m["aax"] = {
}
m["aaz"] = {
}
m["aba"] = {
aliases = {"อับเบ", "Abé", "Abbé", "Abbey", "Abi"},
}
m["abb"] = {
other_names = {"Abo", "Bo", "Abaw", "Miang", "Mandouka"},
}
m["abc"] = {
}
m["abd"] = {
other_names = {"Manide"},
}
m["abe"] = {
other_names = {"Western Abenaki", "Abnaki", "Western Abnaki"},
}
m["abf"] = {
}
m["abg"] = {
}
m["abh"] = {
aliases = {"Tajiki Arabic"},
}
m["abi"] = {
}
m["abj"] = {
other_names = {"Bea", "Aka-Bea-da", "Akabeada", "Aka-Bia", "Bia", "Aka-Bia-da", "Akabiada", "Bojingiji"},
}
m["abl"] = {
other_names = {"Pepadun", "Lampung Nyo"},
}
m["abm"] = {
}
m["abn"] = {
}
m["abo"] = {
aliases = {"Abɔ̃"},
}
m["abp"] = {
}
m["abq"] = {
aliases = {"Abaza"},
}
m["abr"] = {
other_names = {"Brong"},
}
m["abs"] = {
}
m["abt"] = {
}
m["abu"] = {
}
m["abv"] = {
aliases = {"Baharna Arabic", "Bahrani Arabic"},
}
m["abw"] = {
}
m["abx"] = {
}
m["aby"] = {
}
m["abz"] = {
}
m["aca"] = {
aliases = {"Achawa", "Ajagua", "Axagua", "Achugua", "Ajaga", "Xagua", "Jagua"},
}
m["acb"] = {
}
m["acd"] = {
}
m["ace"] = {
aliases = {"อาเจะห์", "Acehnese", "Achinese", "Atjehnese"},
}
m["ach"] = {
aliases = {"Acoli", "Shuli", "Acooli"},
}
m["aci"] = {
other_names = {"Cari", "Aka-Kari", "Kari", "Chariar"},
}
m["ack"] = {
other_names = {"Kora"},
}
m["acl"] = {
other_names = {"Bale", "Bele", "Akar-Bele", "Balawa", "Balwa", "Bojingiji"},
}
m["acm"] = {
aliases = {"อาหรับแบบเมโสโปเตเมีย", "Iraqi Arabic", "Mesopotamian Arabic"},
}
m["acn"] = {
other_names = {"Xiandao", "Chintaw"},
}
m["acp"] = {
}
m["acr"] = {
other_names = {"Achí", "Achi Maya", "Cubulco Achi", "Cubulco Achí", "Cubulco Achi'"},
}
m["acs"] = {
aliases = {"Akroá", "Coroá", "Acroa"},
}
m["acu"] = {
other_names = {"Achuar-Shiwiar"},
}
m["acv"] = {
}
m["acw"] = {
aliases = {"Hijazi Arabic", "Hejazi Arabic", "West Arabian Arabic"},
}
m["acx"] = {
aliases = {"Omani Arabic"},
}
m["acy"] = {
aliases = {"Cypriot Arabic", "Cypriot Maronite Arabic", "Sanna"},
}
m["acz"] = {
aliases = {"Asheron"},
}
m["ada"] = {
aliases = {"Dangme"},
}
m["adb"] = {
}
m["add"] = {
other_names = {"Lidzonka"},
}
m["ade"] = {
}
m["adf"] = {
}
m["adg"] = {
}
m["adh"] = {
}
m["adi"] = {
other_names = {"Abor", "Ashing", "Minyong", "Mising", "Padam", "Panggi", "Pasi", "Shimong", "Ajukru"},
}
m["adj"] = {
aliases = {"Adjukru", "Adyoukrou", "Adyukru", "Ajukru"},
}
m["adl"] = {
other_names = {"Gallong"},
}
m["adn"] = {
}
m["ado"] = {
other_names = {"Adjora"},
}
m["adp"] = {
}
m["adq"] = {
other_names = {"Agotime"},
}
m["adr"] = {
}
m["ads"] = {
}
m["adt"] = {
}
m["adu"] = {
}
m["adw"] = {
aliases = {"Amundava"},
}
m["ady"] = {
aliases = {"Adyghe", "West Circassian"},
}
m["adz"] = {
}
m["aea"] = {
}
m["aeb"] = {
aliases = {"Tunisian Arabic"},
varieties = {"Judeo-Tunisian Arabic"}, --formerly ajt
}
m["aed"] = {
}
m["aee"] = {
other_names = {"Northeast Pashai", "Pashai"},
}
m["aek"] = {
}
m["ael"] = {
}
m["aem"] = {
}
m["aen"] = {
}
m["aeq"] = {
}
m["aer"] = {
}
m["aes"] = {
other_names = {"Yaquina", "Yakwina", "Alseya", "Yakona"}, -- names of the two dialects that make up the language
}
m["aeu"] = {
other_names = {"Chepya"},
}
m["aew"] = {
other_names = {"Aion", "Porapora"},
}
m["aey"] = {
}
m["aez"] = {
other_names = {"Aiga", "Orokaiva"}, -- last is the name of a macrolanguage
}
m["afb"] = {
}
m["afd"] = {
}
m["afe"] = {
}
m["afg"] = {
}
m["afh"] = {
}
m["afi"] = {
}
m["afk"] = {
}
m["afn"] = {
}
m["afo"] = {
}
m["afp"] = {
}
m["afs"] = {
}
m["aft"] = {
other_names = {"Affiti", "Ditti"},
}
m["afu"] = {
aliases = {"Efutu"},
}
m["afz"] = {
}
m["aga"] = {
}
m["agb"] = {
}
m["agc"] = {
}
m["agd"] = {
}
m["age"] = {
}
m["agf"] = {
}
m["agg"] = {
}
m["agh"] = {
}
m["agi"] = {
}
m["agj"] = {
}
m["agk"] = {
}
m["agl"] = {
other_names = {"Agala"},
}
m["agm"] = {
}
m["agn"] = {
aliases = {"อากูไตนึน", "Agutaynen"},
}
m["ago"] = {
}
m["agq"] = {
}
m["agr"] = {
}
m["ags"] = {
aliases = {"Isimbi"},
}
m["agt"] = {
}
m["agu"] = {
aliases = {"Aguacatec", "Aguacateco", "Awakatek", "Awakateko", "Awakateka"},
}
m["agv"] = {
other_names = {"Remontado Dumagat", "Sinauna", "Hatang Kayey"},
}
m["agw"] = {
}
m["agx"] = {
aliases = {"Agul"},
}
m["agy"] = {
}
m["agz"] = {
}
m["aha"] = {
}
m["ahb"] = {
}
m["ahg"] = {
}
m["ahh"] = {
}
m["ahi"] = {
}
m["ahk"] = {
aliases = {"Akha", "Aka", "Ako"},
}
m["ahl"] = {
}
m["ahm"] = {
}
m["ahn"] = {
aliases = {"Ahan", "Ahaan"},
}
m["aho"] = {
aliases = {"อะหม", "Ahom"},
}
m["ahp"] = {
}
m["ahr"] = {
other_names = {"Khandeshi", "Khandesi"},
}
m["ahs"] = {
}
m["aht"] = {
}
m["aia"] = {
}
m["aib"] = {
other_names = {"Aynu", "Ainu", "Ainu (China)", "Aini", "Eyni", "Ejnu", "Abdal", "Äynú"},
}
m["aic"] = {
}
m["aid"] = {
}
m["aie"] = {
}
m["aif"] = {
}
m["aig"] = {
other_names = {"Leeward Caribbean Creole English", "Antiguan Creole English", "Kokoy Creole English", "Saint Kitts Creole", "Montserrat Creole", "Anguillan Creole"},
}
m["aih"] = {
}
m["aii"] = {
aliases = {"Assyrian Neo-Aramaic"},
}
m["aij"] = {
}
m["aik"] = {
}
m["ail"] = {
}
m["aim"] = {
}
m["ain"] = {
aliases = {"Ainu", "Ainu (Japan)"},
}
m["aio"] = {
aliases = {"ไทอ่ายตน", "Aiton", "Tai Aiton", "Aitonia", "Sham Doaniya"},
}
m["aip"] = {
}
m["air"] = {
}
m["ait"] = {
}
m["aiw"] = {
}
m["aix"] = {
}
m["aiy"] = {
}
m["aja"] = {
aliases = {"Adja", "Aja (Sudan)"},
}
m["ajg"] = {
aliases = {"Aja", "Aja (Benin)", "Aja (Togo)", "Ajagbe"},
}
m["aji"] = {
other_names = {"Houailou"},
}
m["ajn"] = {
}
m["ajp"] = {
aliases = {"South Levantine Arabic"},
}
-- m["ajt"] Judeo-Tunisian Arabic now included in Tunisian Arabic
-- m["aju"] Judeo-Moroccan Arabic now included in Moroccan Arabic
m["ajw"] = {
}
m["ajz"] = {
}
m["akb"] = {
aliases = {"Batak Angkola"},
}
m["akc"] = {
}
m["akd"] = {
}
m["ake"] = {
aliases = {"Acauayo", "Acaguayo", "Akawai", "Acawai", "Accawai"},
}
m["akf"] = {
}
m["akg"] = {
}
m["akh"] = {
}
m["aki"] = {
aliases = {"Aiom", "Ayom"},
}
m["akj"] = {
other_names = {"Aka-Jeru"},
}
m["akk"] = {
aliases = {"Akkadian"},
}
m["akl"] = {
aliases = {"อักลาโนน", "Aklanon", "Aklan", "Akeanon"},
}
m["akm"] = {
other_names = {"Ba", "Bo"},
}
m["ako"] = {
}
m["akp"] = {
}
m["akq"] = {
}
m["akr"] = {
}
m["aks"] = {
other_names = {"Tchamba", "Akasele", "Tsamba"},
}
m["akt"] = {
}
m["aku"] = {
}
m["akv"] = {
}
m["akw"] = {
}
m["akx"] = {
other_names = {"Kede"},
}
m["aky"] = {
other_names = {"Kol", "Kawl", "Aka-Kawl", "Bojingiji"},
}
m["akz"] = {
aliases = {"Alabama"},
}
m["ala"] = {
}
m["alc"] = {
other_names = {"Qawasqar", "Alacaluf"},
}
m["ald"] = {
other_names = {"Alladyan", "Allagian", "Alaguian"},
}
m["ale"] = {
aliases = {"Aleutian"},
}
m["alf"] = {
}
m["alh"] = {
}
m["ali"] = {
}
m["alj"] = {
}
m["alk"] = {
}
m["all"] = {
other_names = {"Chatan"},
}
m["alm"] = {
}
m["alo"] = {
}
m["alp"] = {
}
m["alq"] = {
}
m["alr"] = {
aliases = {"Alyutor"},
}
m["alt"] = {
aliases = {"Southern Altai", "Southern Altay", "Altai", "Altay"},
}
m["alu"] = {
aliases = {"Areare"},
}
m["alw"] = {
other_names = {"Alaba-K'abeena", "Alaaba", "K'abeena"},
}
m["alx"] = {
}
m["aly"] = {
}
m["alz"] = {
}
m["ama"] = {
}
m["amb"] = {
}
m["amc"] = {
}
m["ame"] = {
other_names = {"Amuesha"},
}
m["amf"] = {
}
m["amg"] = {
other_names = {"Amarag"},
}
m["ami"] = {
other_names = {"Nataoran Amis"},
}
m["amj"] = {
other_names = {"Biltine", "Mimi"},
}
m["amk"] = {
other_names = {"Wadapi-Laut"},
}
m["aml"] = {
}
m["amm"] = {
aliases = {"Ama (New Guinea)", "Ama (Papua New Guinea)"},
}
m["amn"] = {
}
m["amo"] = {
other_names = {"Timap", "Map", "Among", "Amap", "Amon"},
}
m["amp"] = {
}
m["amq"] = {
}
m["amr"] = {
}
m["ams"] = {
aliases = {"Southern Amami-Oshima"},
}
m["amt"] = {
}
m["amu"] = {
other_names = {"Amuzgo", "Xochistlahuaca Amuzgo", "Northern Amuzgo", "Southern Amuzgo"},
}
m["amv"] = {
}
m["amw"] = {
}
m["amx"] = {
other_names = {"Namfau"},
}
m["amy"] = {
other_names = {"Ame", "Amijangal"},
}
m["amz"] = {
}
m["ana"] = {
aliases = {"Andaquí", "Andakí", "Andaki"},
}
m["anb"] = {
other_names = {"Shimigae", "Semigae", "Gae", "Gay", "Gaye", "Siaviri", "Katsakáti"},
}
m["anc"] = {
other_names = {"Angas", "Angass", "Hill Ngas", "Plain Ngas", "Hill Angas", "Plain Angas", "Karang", "Kerang"},
}
m["and"] = {
}
m["ane"] = {
aliases = {"Xârâcùù"},
}
m["anf"] = {
}
m["ang"] = {
aliases = {"อังกฤษโบราณ", "แองโกล-แซกซัน", "Old English", "Anglo-Saxon"},
}
m["anh"] = {
other_names = {"Nent", "Angaua"},
}
m["ani"] = {
}
m["anj"] = {
}
m["ank"] = {
}
m["anl"] = {
other_names = {"Khaungtso", "Anu-Hkongso", "Anu-Hkongso Chin"}, -- the last is the ISO's unattested blend of the names of its two dialects and half of the name of the place where it's spoken
}
m["anm"] = {
other_names = {"Anaal", "Namfau"}, -- Namfau is actually a placename
}
m["ann"] = {
}
m["ano"] = {
}
m["anp"] = {
}
m["anq"] = {
aliases = {"Jarawa (India)"},
}
m["anr"] = {
}
m["ans"] = {
}
m["ant"] = {
}
m["anu"] = {
aliases = {"Anyua", "Anywa", "Anyuak"},
}
m["anv"] = {
}
m["anw"] = {
other_names = {"Anang", "Annang", "Western Ibibio"},
}
m["anx"] = {
}
m["any"] = {
aliases = {"Anyin"},
}
m["anz"] = {
aliases = {"Anêm"},
}
m["aoa"] = {
}
m["aob"] = {
}
m["aoc"] = {
other_names = {"Pemón", "Arekuna", "Arecuna", "Taurepan", "Taurepán", "Taurepang", "Taulipang", "Taulipáng", "Kamarakoto", "Camaracoto", "Camaragoto"},
}
m["aod"] = {
}
m["aoe"] = {
}
m["aof"] = {
}
m["aog"] = {
other_names = {"Pondo", "Kanda", "Maramba"},
}
m["aoi"] = {
aliases = {"Enindhilyagwa"},
}
m["aoj"] = {
}
m["aok"] = {
}
m["aol"] = {
aliases = {"Alorese"},
}
m["aom"] = {
}
m["aon"] = {
}
m["aor"] = {
}
m["aos"] = {
}
m["aot"] = {
aliases = {"Atong (India)", "Atong", "A'tong"},
}
m["aou"] = {
other_names = {"Ayo", "A'ou Gelao"},
}
m["aox"] = {
}
m["aoz"] = {
}
m["apb"] = {
other_names = {"South Malaita", "Apae'aa"},
}
m["apc"] = {
}
m["apd"] = {
aliases = {"Sudanese Arabic"},
}
m["ape"] = {
}
m["apf"] = {
}
m["apg"] = {
}
m["aph"] = {
other_names = {"Athpariya"},
}
m["api"] = {
aliases = {"Apiacá"},
}
m["apj"] = {
aliases = {"Jicarilla Apache"},
}
m["apk"] = {
aliases = {"Kiowa Apache"},
}
m["apl"] = {
aliases = {"Lipan Apache"},
}
m["apm"] = {
other_names = {"Mescalero", "Mescalero-Chiricahua Apache"}, -- two dialects combined by Ethnologue
}
m["apn"] = {
aliases = {"Apinajé", "Apinagé", "Apinaye", "Apinaje", "Apinage"},
}
m["apo"] = {
}
m["app"] = {
}
m["apq"] = {
other_names = {"Pucikwar", "Puchikwar", "Aka-Pucikwar", "Pujjukar", "Bójigiáb", "Bojigiab", "Bojigyab"}, -- last three may apply also to other languages
}
m["apr"] = {
}
m["aps"] = {
}
m["apt"] = {
other_names = {"Apa Tani", "Tanii"},
}
m["apu"] = {
}
m["apv"] = {
}
m["apw"] = {
aliases = {"Western Apache"},
}
m["apx"] = {
}
m["apy"] = {
aliases = {"Apalai"},
}
m["apz"] = {
}
m["aqc"] = {
}
m["aqd"] = {
}
m["aqg"] = {
}
m["aqm"] = {
}
m["aqn"] = {
}
m["aqp"] = {
other_names = {"Akokisa", "Orcoquiza", "Eastern Atakapa", "Western Atakapa"},
}
m["aqr"] = {
}
m["aqt"] = {
}
m["aqz"] = {
}
m["arc"] = {
aliases = {"แอราเมอิก", "Aramaic", "Aramaean", "Aramean"},
-- varieties are in [[Module:etymology language/data]]
}
m["ard"] = {
}
m["are"] = {
}
m["arh"] = {
other_names = {"Ika"},
}
m["ari"] = {
}
m["arj"] = {
}
m["ark"] = {
}
m["arl"] = {
}
m["arn"] = {
other_names = {"Mapuche", "Mapudungün", "Mapuzugün", "Mapudungu", "Araucanian"},
}
m["aro"] = {
}
m["arp"] = {
}
m["arq"] = {
aliases = {"Algerian Arabic"},
}
m["arr"] = {
other_names = {"Karo", "Karo (Brazil)", "Ramarama", "Itanga", "Itogapuc", "Itogapúk", "Ntogapid", "Ntogapig", "Arára", "Arára de Rondonia", "Arára do Jiparaná", "Uruku", "Urukú"},
}
m["ars"] = {
}
m["aru"] = {
aliases = {"Aruá", "Arawa", "Arawá"}, -- extinct, northern Brazil, cf. 'arx'
}
m["arv"] = {
}
m["arw"] = {
aliases = {"อาราวัก", "อาโรวัก", "อารวก", "โลโคโน", "Lokono", "Arawak", "Arowak", "Aruak", "Locono"},
}
m["arx"] = {
aliases = {"Arua", "Aruashi", "Aruáshi", "Aruachi"}, -- moribund, central Brazil, cf 'aru'
}
m["ary"] = {
aliases = {"Moroccan Arabic"},
varieties = {"Judeo-Moroccan Arabic"}, -- formerly aju
}
m["arz"] = {
aliases = {"Egyptian Arabic"},
}
m["asa"] = {
other_names = {"Asu", "Asu (Tanzania)", "Chasu", "Kipare", "Southern Pare", "South Pare"},
}
m["asb"] = {
}
m["asc"] = {
}
m["ase"] = {
aliases = {"American Sign Language", "Ameslan", "ASL"},
}
m["asf"] = {
aliases = {"Australian Sign Language"},
}
m["asg"] = {
aliases = {"Shingini"},
}
m["ash"] = {
other_names = {"Tequiraca", "Tekiráka", "Avishiri", "Auishiri", "Agouisiri", "Avirxiri", "Abiquira", "Abigira", "Aiwa", "Aewa"},
}
m["asi"] = {
}
m["asj"] = {
aliases = {"Sari", "Saari"},
}
m["ask"] = {
}
m["asl"] = {
}
m["asn"] = {
}
m["aso"] = {
}
m["asp"] = {
}
m["asq"] = {
}
m["asr"] = {
aliases = {"Asur"},
}
m["ass"] = {
}
m["ast"] = {
aliases = {"Asturian"},
}
m["asu"] = {
other_names = {"Asurini", "Asuriní", "Asuriní of Tocantins", "Asuriní do Tocantins", "Akwawa", "Akwáwa"},
}
m["asv"] = {
}
m["asw"] = {
aliases = {"Australian Aborigines Sign Language"},
}
m["asx"] = {
}
m["asy"] = {
}
m["asz"] = {
}
m["ata"] = {
other_names = {"Ata", "Wasi"},
}
m["atb"] = {
}
m["atc"] = {
}
m["atd"] = {
}
m["ate"] = {
}
m["atg"] = {
other_names = {"Ivbie North", "Arhe", "Ivbie North-Okpela-Arhe"},
}
m["ati"] = {
}
m["atj"] = {
}
m["atk"] = {
}
m["atl"] = {
}
m["atm"] = {
}
m["ato"] = {
aliases = {"Atoŋ", "Atong"},
}
m["atp"] = {
}
m["atq"] = {
}
m["atr"] = {
}
m["ats"] = {
other_names = {"Atsina"},
}
m["att"] = {
}
m["atu"] = {
}
m["atv"] = {
aliases = {"Northern Altai", "Northern Altay", "Altai", "Altay"},
}
m["atw"] = {
aliases = {"Atsugé"},
}
m["atx"] = {
}
m["aty"] = {
aliases = {"Aneityum"},
}
m["atz"] = {
}
m["aua"] = {
}
m["aub"] = {
}
m["auc"] = {
other_names = {"Waorani", "Sabela", "Wao", "Huao", "Aushiri", "Ssabela", "Wao Terero", "Auka", "Auca"},
}
m["aud"] = {
}
m["aug"] = {
}
m["auh"] = {
}
m["aui"] = {
}
m["auj"] = {
aliases = {"Awjilah", "Augila"},
}
m["auk"] = {
}
m["aul"] = {
}
m["aum"] = {
other_names = {"Abewa", "Asu (Nigeria)"},
}
m["aun"] = {
}
m["auo"] = {
}
m["aup"] = {
other_names = {"Tirio", "Makaeyam", "Aturu", "Atura", "Adulu"},
}
m["auq"] = {
other_names = {"A", "Korur", "Korurnus"}, -- no name attested? lect may be same as 'pdn'
}
m["aur"] = {
}
m["aut"] = {
}
m["auu"] = {
aliases = {"Auwje"},
}
m["auw"] = {
aliases = {"Awye"},
}
m["aux"] = {
}
m["auy"] = {
aliases = {"Awiyaana"},
}
m["auz"] = {
aliases = {"Uzbeki Arabic", "Uzbek Arabic"},
}
m["avb"] = {
}
m["avd"] = {
other_names = {"Alviri", "Vidari"},
}
m["avi"] = {
}
m["avk"] = {
aliases = {"Kotava"},
}
m["avm"] = {
}
m["avn"] = {
}
m["avo"] = {
}
m["avs"] = {
}
m["avt"] = {
}
m["avu"] = {
}
m["avv"] = {
other_names = {"Avá", "Canoe"},
}
m["awa"] = {
aliases = {"อวธี", "โอธี", "Awadhi", "Oudhi"},
}
m["awb"] = {
aliases = {"Awa", "Awa (Papua New Guinea)"},
}
m["awc"] = {
aliases = {"Cipu"},
}
m["awe"] = {
}
m["awg"] = {
other_names = {"Alngith", "Leningitij", "Mpakwithi"},
}
m["awh"] = {
}
m["awi"] = {
other_names = {"Awin"},
}
m["awk"] = {
}
m["awm"] = {
}
m["awn"] = {
}
m["awo"] = {
}
m["awr"] = {
}
m["aws"] = {
}
m["awt"] = {
}
m["awu"] = {
}
m["awv"] = {
}
m["aww"] = {
}
m["awx"] = {
}
m["awy"] = {
}
m["axb"] = {
other_names = {"Abipon", "Callaga", "Kalyaga"},
}
m["axe"] = {
}
m["axg"] = {
}
m["axk"] = {
other_names = {"Yaka", "Yaka (Central African Republic)", "Aka", "Beka"}, -- cf 'iyx', 'yaf'
}
m["axl"] = {
other_names = {"Lower Southern Arrernte", "Southern Arrernte", "Southern Aranda"},
}
m["axm"] = {
aliases = {"Middle Armenian"},
}
m["axx"] = {
aliases = {"Xaragure"},
}
m["aya"] = {
}
m["ayb"] = {
aliases = {"Ayizo Gbe"},
}
m["ayd"] = {
aliases = {"Ayapathu", "Badhu"},
}
m["aye"] = {
}
m["ayg"] = {
aliases = {"Nyanga", "Ginyanga"},
}
m["ayi"] = {
}
m["ayk"] = {
}
m["ayl"] = {
aliases = {"Libyan Arabic"},
}
m["ayn"] = {
aliases = {"Yemeni Arabic"},
}
m["ayo"] = {
other_names = {"Morotoco", "Moro", "Ayoweo", "Ayoré", "Pyeta Yovai"},
}
m["ayp"] = {
aliases = {"North Mesopotamian Arabic"},
}
m["ayq"] = {
aliases = {"Ayi (New Guinea)", "Ayi (Papua New Guinea)"},
}
m["ays"] = {
}
m["ayt"] = {
other_names = {"Magbukun Ayta", "Mariveleño"},
}
m["ayu"] = {
}
m["ayy"] = {
}
m["ayz"] = {
other_names = {"Mai Brat", "Ajamaru", "Ayamaru"},
}
m["aza"] = {
}
m["azd"] = {
}
m["azg"] = {
other_names = {"Upper Eastern Amuzgo", "Oaxaca Amuzgo"},
}
m["azm"] = {
other_names = {"Lower Eastern Amuzgo"},
}
m["azn"] = {
}
m["azo"] = {
}
m["azt"] = {
}
m["azz"] = {
}
return m
53dzjkn85ixqas50s58haie9tm6qi1d
بدأ
0
332070
5723278
2000956
2026-05-20T04:59:59Z
OctraBot
3198
/* ภาษาอาหรับ */ เก็บกวาด
5723278
wikitext
text/x-wiki
== ภาษาอาหรับ ==
{{ar-rootbox|ب د ء}}
=== รากศัพท์ ===
{{etymon|ar|:root|ب د ء}}
ร่วมเชื้อสายกับ{{cog|hbo|בדא|tr=badā|t=คิดค้น}}
=== การออกเสียง ===
{{ar-pr|بَدَأَ}}
=== คำกริยา ===
{{ar-verb|I/a~a.pass.vn:بَدْء,بَدْأَة,بِدَايَة,مَبْدَأ,بُدَاءَة,بَدَاءَة}}
# [[เริ่ม]], [[เริ่มต้น]]
==== การผันรูป ====
{{ar-conj|I/a~a.pass.vn:بَدْء,بَدْأَة,بِدَايَة,مَبْدَأ,بُدَاءَة,بَدَاءَة}}
==== ดูเพิ่ม ====
{{list:kāda and her sisters/ar}}
=== อ้างอิง ===
* {{R:ar:Wehr-4|بدء}}
bdzh35veyovplyidgkz6kteu7nwqsz8
5723279
5723278
2026-05-20T05:00:24Z
OctraBot
3198
/* รากศัพท์ */
5723279
wikitext
text/x-wiki
== ภาษาอาหรับ ==
{{ar-rootbox|ب د ء}}
=== รากศัพท์ ===
{{etymon|ar|:root|ب د ء}}
ร่วมเชื้อสายกับ{{cog|hbo|בדא|tr=badā|t=ประดิษฐ์}}
=== การออกเสียง ===
{{ar-pr|بَدَأَ}}
=== คำกริยา ===
{{ar-verb|I/a~a.pass.vn:بَدْء,بَدْأَة,بِدَايَة,مَبْدَأ,بُدَاءَة,بَدَاءَة}}
# [[เริ่ม]], [[เริ่มต้น]]
==== การผันรูป ====
{{ar-conj|I/a~a.pass.vn:بَدْء,بَدْأَة,بِدَايَة,مَبْدَأ,بُدَاءَة,بَدَاءَة}}
==== ดูเพิ่ม ====
{{list:kāda and her sisters/ar}}
=== อ้างอิง ===
* {{R:ar:Wehr-4|بدء}}
3vkkv6fu5wh05rhz1sa6c2qpn14jepw
มอดูล:th-utilities
828
338046
5723272
5688507
2026-05-20T04:48:03Z
OctraBot
3198
5723272
Scribunto
text/plain
local export = {}
local sub = mw.ustring.sub
local gsub = mw.ustring.gsub
local len = mw.ustring.len
local find = mw.ustring.find
local match = mw.ustring.match
local en_utilities = require("Module:en-utilities")
local thai_digits = {"๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙"}
local thai_words = {"ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า"}
local thai_words2 = {["."]="จุด",["-"]="ขีด",["+"]="บวก",["−"]="ลบ",["/"]="ทับ"}
-- from [[Module:headword/data]]
local thai_pos = {
-- these are lemmas
["abbreviations"] = "คำย่อ",
["acronyms"] = "อักษรย่อรวมพยางค์",
["adjectives"] = "คำคุณศัพท์",
--["adnominals"] = "adnominals",
--["adpositions"] = "adpositions",
["adverbs"] = "คำกริยาวิเศษณ์",
["affixes"] = "หน่วยคำเติม",
--["ambipositions"] = "ambipositions",
["articles"] = "คำกำกับนาม",
["circumfixes"] = "หน่วยคำเติมคร่อม",
--["circumpositions"] = "circumpositions",
["classifiers"] = "คำลักษณนาม",
["cmavo"] = "ชมาโว",
--["cmavo clusters"] = "cmavo clusters",
["cmene"] = "ชเมเน",
--["combining forms"] = "combining forms",
["conjunctions"] = "คำสันธาน",
--["counters"] = "counters",
["determiners"] = "ตัวกำหนด",
--["diacritical marks"] = "diacritical marks",
["digraphs"] = "ทวิอักษร",
["fu'ivla"] = "ฟูฮิฝลา",
["gismu"] = "กิสมู",
["Han characters"] = "อักษรจีน",
["Han tu"] = "ฮั้นถื่อ",
["hanja"] = "ฮันจา",
["hanzi"] = "ฮั่นจื้อ",
--["ideophones"] = "ideophones",
["idioms"] = "สำนวน",
["infixes"] = "อาคม",
["initialisms"] = "อักษรย่อ",
["iteration marks"] = "เครื่องหมายซ้ำ",
["interfixes"] = "หน่วยคำเติมเชื่อม",
["interjections"] = "คำอุทาน",
["kana"] = "คานะ",
["kanji"] = "คันจิ",
["letters"] = "ตัวอักษร",
["ligatures"] = "ตัวอักษรควบ",
--["logograms"] = "logograms",
["lujvo"] = "ลุฌโว",
["morae"] = "มอรา",
["morphemes"] = "หน่วยคำ",
--["non-constituents"] = "non-constituents",
["nouns"] = "คำนาม",
["numbers"] = "จำนวน",
["numeral symbols"] = "ตัวเลข",
["numerals"] = "เลข", ["num"] = "เลข",
["particles"] = "คำอนุภาค",
["phrases"] = "วลี",
["postpositions"] = "คำปัจฉบท",
--["postpositional phrases"] = "postpositional phrases",
--["predicatives"] = "predicatives",
["prefixes"] = "อุปสรรค",
--["prepositional phrases"] = "prepositional phrases",
["prepositions"] = "คำบุพบท",
["preverbs"] = "คำกริยาเติมหน้า",
--["pronominal adverbs"] = "pronominal adverbs",
["pronouns"] = "คำสรรพนาม",
["proper nouns"] = "คำวิสามานยนาม", ["propn"] = "คำวิสามานยนาม",
["proverbs"] = "สุภาษิต",
["punctuation marks"] = "เครื่องหมายวรรคตอน",
--["relatives"] = "relatives",
["roots"] = "ราก",
["stems"] = "ต้นเค้าศัพท์",
["suffixes"] = "ปัจจัย",
["syllables"] = "พยางค์",
["symbols"] = "สัญลักษณ์",
["verbs"] = "คำกริยา",
-- these are non-lemmas
["active participle forms"] = "รูปผันรูปกริยาขยายกรรตุวาจก",
["active participles"] = "รูปกริยาขยายกรรตุวาจก",
["adjectival participles"] = "รูปกริยาขยายเชิงคุณศัพท์",
--["adjective case forms"] = "adjective case forms",
["adjective forms"] = "รูปคุณศัพท์",
--["adjective feminine forms"] = "adjective feminine forms",
["adjective plural forms"] = "รูปคุณศัพท์พหูพจน์",
["adverb forms"] = "รูปกริยาวิเศษณ์",
["adverbial participles"] = "รูปกริยาขยายเชิงกริยาวิเศษณ์",
--["agent participles"] = "agent participles",
["article forms"] = "รูปกำกับนาม",
["circumfix forms"] = "รูปหน่วยคำเติมคร่อม",
--["combined forms"] = "combined forms",
["comparative adjective forms"] = "รูปคุณศัพท์ขั้นกว่า",
["comparative adjectives"] = "คำคุณศัพท์ขั้นกว่า",
["comparative adverb forms"] = "รูปกริยาวิเศษณ์ขั้นกว่า",
["comparative adverbs"] = "คำกริยาวิเศษณ์ขั้นกว่า",
["conjunction forms"] = "รูปสันธาน",
["contractions"] = "รูปหดย่อ",
--["converbs"] = "converbs",
["determiner comparative forms"] = "รูปตัวกำหนดขั้นกว่า",
["determiner forms"] = "รูปตัวกำหนด",
["determiner superlative forms"] = "รูปตัวกำหนดขั้นสุด",
["diminutive nouns"] = "คำนามบอกความเล็ก",
--["elative adjectives"] = "elative adjectives",
["equative adjective forms"] = "รูปคุณศัพท์ขั้นเท่า",
["equative adjectives"] = "คำคุณศัพท์ขั้นเท่า",
["future participles"] = "รูปกริยาขยายอนาคตกาล",
["gerunds"] = "รูปกริยาเป็นนาม",
["infinitive forms"] = "รูปผันรูปกริยากลาง",
["infinitives"] = "รูปกริยากลาง",
["interjection forms"] = "รูปอุทาน",
["jyutping"] = "ยฺหวืดเพ็ง",
["misspellings"] = "รูปสะกดผิด",
--["negative participles"] = "negative participles",
--["nominal participles"] = "nominal participles",
--["noun case forms"] = "noun case forms",
["noun dual forms"] = "รูปนามทวิพจน์",
["noun forms"] = "รูปนาม", ["nf"] = "รูปนาม", ["nounf"] = "รูปนาม",
["noun paucal forms"] = "รูปนามบอกความน้อย",
["noun plural forms"] = "รูปนามพหูพจน์",
--["noun possessive forms"] = "noun possessive forms",
--["noun singulative forms"] = "noun singulative forms",
["numeral forms"] = "รูปเลข",
["participles"] = "รูปกริยาขยาย",
["participle forms"] = "รูปผันรูปกริยาขยาย",
["particle forms"] = "รูปอนุภาค",
["passive participles"] = "รูปกริยาขยายกรรมวาจก",
["past active participles"] = "รูปกริยาขยายกรรตุวาจกอดีตกาล",
["past participles"] = "รูปกริยาขยายอดีตกาล",
["past participle forms"] = "รูปผันรูปกริยาขยายอดีตกาล",
["past passive participles"] = "รูปกริยาขยายกรรมวาจกอดีตกาล",
--["perfect active participles"] = "perfect active participles",
--["perfect participles"] = "perfect participles",
--["perfect passive participles"] = "perfect passive participles",
["pinyin"] = "พินอิน",
["plurals"] = "พหูพจน์",
["postposition forms"] = "รูปปัจฉบท",
["prefix forms"] = "รูปอุปสรรค",
--["preposition contractions"] = "preposition contractions",
["preposition forms"] = "รูปบุพบท",
--["prepositional pronouns"] = "prepositional pronouns",
["present active participles"] = "รูปกริยาขยายกรรตุวาจกปัจจุบันกาล",
["present participles"] = "รูปกริยาขยายปัจจุบันกาล",
["present passive participles"] = "รูปกริยาขยายกรรมวาจกปัจจุบันกาล",
["pronoun forms"] = "รูปสรรพนาม",
--["pronoun possessive forms"] = "pronoun possessive forms",
["proper noun forms"] = "รูปวิสามานยนาม",
["proper noun plural forms"] = "รูปวิสามานยนามพหูพจน์",
["rafsi"] = "รัฟซี",
["romanizations"] = "การถอดเป็นอักษรโรมัน",
--["root forms"] = "root forms",
--["singulatives"] = "singulatives",
["suffix forms"] = "รูปปัจจัย",
["superlative adjective forms"] = "รูปคุณศัพท์ขั้นสุด",
["superlative adjectives"] = "คำคุณศัพท์ขั้นสุด",
["superlative adverb forms"] = "รูปกริยาวิเศษณ์ขั้นสุด",
["superlative adverbs"] = "คำกริยาวิเศษณ์ขั้นสุด",
["verb forms"] = "รูปกริยา",
["verbal nouns"] = "คำกริยานาม",
-- these are something else
["cardinal nouns"] = "คำนามเชิงการนับ",
["abstract nouns"] = "คำอาการนาม",
["auxiliary verbs"] = "คำกริยาช่วย",
["cardinal adjectives"] = "คำคุณศัพท์เชิงการนับ",
}
function export.th_pos(pos)
return thai_pos[pos] or thai_pos[en_utilities.pluralize(pos)] or pos
end
-- Converts Thai "lemma" category name into Thai "non-lemma form" category name
function export.th_pos_to_form(pos)
if pos == "" or pos == "คำหลัก" or pos == "รูปผัน" then
return "รูปผัน"
end
if find(pos, "^คำ") then
return gsub(pos, "^คำ", "รูป")
end
if find(pos, "^รูป") then
return "รูปผัน" .. pos
else
return "รูป" .. pos
end
end
-- Insert a full language name into a category name by Thai logic
function export.th_categorize(cat, langname)
local isEndWithThai = find(cat, "[ก-๛]$")
if find(cat, "^ศัพท์") then
return "ศัพท์" .. langname .. sub(cat, 6)
elseif find(cat, "^รายการ") then
return "รายการ" .. langname .. sub(cat, 7)
elseif find(cat, "★") then
return gsub(cat, "★", langname) -- insert in-between at ★
else
return cat .. (isEndWithThai and "" or " ") .. langname
end
end
-- Converts Arabic numbers (e.g., "123") to Thai numbers (e.g., "๑๒๓")
function export.arabic_to_thai_digits(num)
local str = tostring(num)
for i = 0, 9 do
str = gsub(str, tostring(i), thai_digits[i + 1])
end
return str
end
-- Converts Thai numbers (e.g., "๑๒๓") to Arabic numbers (e.g., "123")
function export.thai_to_arabic_digits(str)
str = tostring(str)
for i, thai_char in ipairs(thai_digits) do
str = gsub(str, thai_char, tostring(i - 1))
end
return str
end
-- Read Number as Value
function export.number_to_thai_words(num)
local str = tostring(num)
str = gsub(str, ",", "")
str = export.thai_to_arabic_digits(str)
-- Handle signs
local prefix = ""
local first_char = sub(str, 1, 1)
if first_char == "-" then
prefix = thai_words2["−"] -- Mathematical "ลบ"
str = sub(str, 2)
elseif first_char == "+" then
prefix = thai_words2["+"]
str = sub(str, 2)
end
-- Split string into integer and decimal parts
local intPart, decPart = match(str, "^(%d*)%.?(%d*)$")
if (not intPart or intPart == "") and (not decPart or decPart == "") then
return "Invalid input"
end
-- Strip leading zeros from integer part
if intPart == "" then intPart = "0" end
intPart = match(intPart, "^0*(.+)$") or "0"
-- Helper: Process Integer Part
local function get_integer_words(s)
if s == "0" then return thai_words[1] end
local positions = {"", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน"}
local result = ""
local length = len(s)
for i = 1, length do
local d = tonumber(sub(s, i, i))
local pos = length - i + 1
local effPos = ((pos - 1) % 6) + 1
if d ~= 0 then
local word = thai_words[d + 1]
if d == 1 and effPos == 1 and i > 1 then
word = "เอ็ด"
end
if d == 1 and effPos == 2 then
word = ""
end
if d == 2 and effPos == 2 then
word = "ยี่"
end
result = result .. word .. positions[effPos]
end
if pos > 1 and effPos == 1 then
result = result .. "ล้าน"
end
end
return result
end
-- Helper: Process Decimal Part
local function get_decimal_words(s)
if not s or s == "" then return "" end
local result = thai_words2["."]
for i = 1, len(s) do
local d = tonumber(sub(s, i, i))
result = result .. thai_words[d + 1]
end
return result
end
return prefix .. get_integer_words(intPart) .. get_decimal_words(decPart)
end
-- Read Number in Sequence
function export.read_number_in_sequence(num)
local str = tostring(num)
str = gsub(str, ",", "")
str = export.thai_to_arabic_digits(str)
local has_math_minus = false
if find(str, "−") then
has_math_minus = true
str = gsub(str, "−", "")
end
local result = ""
if has_math_minus then
result = result .. thai_words2["−"]
end
for i = 1, len(str) do
local char = sub(str, i, i)
local d = tonumber(char)
if d then
result = result .. thai_words[d + 1]
elseif thai_words2[char] then
result = result .. thai_words2[char]
end
end
return result
end
return export
fxl3y2udshspfv4sb473snz6dqws3um
มอดูล:sem-arb-headword
828
372774
5723271
5685355
2026-05-20T04:47:25Z
OctraBot
3198
5723271
Scribunto
text/plain
-- Based on [[Module:ar-headword]] by: Benwing, CodeCat
-- Adapted by Fenakhay
local sc = require("Module:scripts").getByCode("Arab")
local lang = require("Module:languages").getByCode("ar")
local export = {}
local pos_functions = {}
-----------------------
-- Utility functions --
-----------------------
-- If Not Empty
local function ine(arg)
if arg == "" then
return nil
else
return arg
end
end
local function list_to_set(list)
local set = {}
for _, item in ipairs(list) do
set[item] = true
end
return set
end
-- version of mw.ustring.gsub() that discards all but the first return value
function rsub(term, foo, bar)
local retval = mw.ustring.gsub(term, foo, bar)
return retval
end
-- Tracking functions
local trackfn = require("Module:debug").track
function track(page)
trackfn(lang:getCode() .. "-headword/" .. page)
return true
end
local function append_cat(data, pos)
table.insert(data.categories, pos .. lang:getCategoryName()) --th
end
local function glossary_link(entry, text)
text = text or entry
return "[[ภาคผนวก:อภิธานศัพท์#" .. entry .. "|" .. text .. "]]"
end
function remove_links(text)
text = rsub(text, "%[%[[^|%]]*|", "")
text = rsub(text, "%[%[", "")
text = rsub(text, "%]%]", "")
return text
end
local function make_unused_key_tracker(t)
local unused_keys = require "Module:table".listToSet(require "Module:table".keysToList(t))
local mt = {
__index = function(_, key)
if key ~= nil then
unused_keys[key] = nil
end
return t[key]
end,
__newindex = function(_, key, value)
t[key] = value
end
}
local proxy_table = setmetatable({}, mt)
return proxy_table, unused_keys
end
-- The main entry point.
function export.show(frame)
local PAGENAME = mw.loadData("Module:headword/data").pagename
local poscat =
frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local args, unused_keys = make_unused_key_tracker(frame:getParent().args)
if frame.args["lang"] then
lang = require("Module:languages").getByCode(frame.args["lang"])
else
error("Please specify a language code.")
end
-- Gather parameters
local data = {
lang = lang,
pos_category = poscat_th,
categories = {},
heads = {},
translits = {},
genders = {},
inflections = {}
}
local saw_head = false
local head = ine(args["head"])
if head then
saw_head = true
else
head = PAGENAME
end
local translit = ine(args["tr"])
local i = 1
while head do
table.insert(data.heads, head)
data.translits[#data.heads] = translit
i = i + 1
head = ine(args["head" .. i])
if head then
saw_head = true
end
translit = ine(args["tr" .. i])
end
data.no_redundant_head_cat = not saw_head
if pos_functions[poscat_th] then
pos_functions[poscat_th].func(args, data)
end
local unused_key_list = require "Module:table".keysToList(unused_keys)
if #unused_key_list > 0 then
local unused_key_string =
require "Module:array"(unused_key_list):map(
function(key)
return "|" .. key .. "=" .. args[key]
end
):concat("\n")
error("Unused arguments: " .. unused_key_string)
end
return require("Module:headword").full_headword(data)
end
-- Get a list of inflections. See handle_infl() for meaning of ARGS, ARGPREF
-- and DEFGENDER.
local function getargs(args, argpref, defgender)
-- Gather parameters
local forms = {}
if ine(args[position]) then
form = ine(args[position])
else
form = ine(args[argpref])
end
local translit = ine(args[argpref .. "tr"])
local gender = ine(args[argpref .. "g"])
local gender2 = ine(args[argpref .. "g2"])
local i = 1
while form do
local genderlist = (gender or gender2) and {gender, gender2} or defgender and {defgender} or nil
table.insert(forms, {term = form, tr = translit, genders = genderlist})
i = i + 1
form = ine(args[argpref .. i])
translit = ine(args[argpref .. i .. "tr"])
gender = ine(args[argpref .. i .. "g"])
gender2 = ine(args[argpref .. i .. "g2"])
end
return forms
end
local function handle_infl(args, data, argpref, label, defgender, position)
local newinfls = getargs(args, argpref, defgender, position)
newinfls.label = label
if #newinfls > 0 then
table.insert(data.inflections, newinfls)
end
end
local function handle_all_infl(args, data, argpref, label, nobase, position)
if not nobase and argpref ~= "" then
handle_infl(args, data, argpref, label, nil, position)
end
local labelsp = label == "" and "" or label .. " "
handle_infl(args, data, argpref .. "cons", labelsp .. "construct state")
end
-- Handle the case where pl=-, indicating an uncountable noun.
local function handle_noun_plural(args, data)
if args["pl"] == "-" then
table.insert(data.inflections, {label = "โดยปกติ[[ภาคผนวก:อภิธานศัพท์#นับไม่ได้|นับไม่ได้]]"})
append_cat(data, "คำนามนับไม่ได้")
else
handle_infl(args, data, "pl", "พหูพจน์")
handle_infl(args, data, "pauc", "ตัวบอกความน้อย")
end
end
local valid_genders =
list_to_set(
{
"s",
"m",
"m-s",
"f",
"f-s",
"m-p",
"f-p",
"p",
"d",
"m-d",
"f-d",
"mfbysense",
"mf"
}
)
local function handle_gender(args, data, default, nonlemma, optional)
local g = ine(args["g"]) or default
local g2 = ine(args["g2"])
local function process_gender(gender)
if not gender and not optional then
table.insert(data.genders, "?")
elseif not gender and optional then
-- do nothing
elseif valid_genders[g] then
table.insert(data.genders, gender)
else
error("Unrecognized gender: " .. gender)
end
end
process_gender(g)
if g2 then
process_gender(g2)
end
if nonlemma then
return
end
if g and g2 then
append_cat(data, "nouns with multiple genders")
end
end
-- Part-of-speech functions
pos_functions["คำคุณศัพท์"] = {
func = function(args, data)
if args[1] == "-" then
local forms = {}
forms.label = "ผันรูปไม่ได้"
table.insert(data.inflections, forms)
else
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "cpl", "พหูพจน์เพศรวม")
handle_all_infl(args, data, "pl", "พหูพจน์เพศชาย")
handle_all_infl(args, data, "fpl", "พหูพจน์เพศหญิง")
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
handle_infl(args, data, "el", "elative")
if ine(args["der"]) then
if args["der"] == "active" then
append_cat(data, "terms derived from active participles")
elseif args["der"] == "passive" then
append_cat(data, "terms derived from passive participles")
end
end
end
end
}
function handle_sing_coll_noun_infls(args, data)
handle_infl(args, data, "", "")
handle_infl(args, data, "d", "ทวิพจน์")
handle_infl(args, data, "pauc", "ตัวบอกความน้อย")
handle_infl(args, data, "pl", "พหูพจน์")
end
pos_functions["คำสมุหนาม"] = {
func = function(args, data)
data.pos_category = "คำนาม"
append_cat(data, "คำสมุหนาม")
table.insert(data.inflections, {label = glossary_link("คำสมุหนาม")})
handle_gender(args, data, "m")
-- Handle sing= (the corresponding singulative noun) and singg= (its gender)
handle_infl(args, data, "sing", "คำเอกนาม", "f")
handle_sing_coll_noun_infls(args, data)
end
}
pos_functions["คำเอกนาม"] = {
func = function(args, data)
data.pos_category = "คำนาม"
append_cat(data, "คำเอกนาม")
table.insert(data.inflections, {label = glossary_link("คำเอกนาม")})
handle_gender(args, data, "f")
-- Handle coll= (the corresponding collective noun) and collg= (its gender)
handle_infl(args, data, "coll", "คำสมุหนาม", "m")
handle_sing_coll_noun_infls(args, data)
end
}
function handle_noun_infls(args, data, singonly)
handle_all_infl(args, data, "", "")
if not singonly then
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_noun_plural(args, data)
handle_all_infl(args, data, "pl", "พหูพจน์", "nobase")
handle_all_infl(args, data, "pauc", "ตัวบอกความน้อย", "nobase")
end
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "m", "เพศชาย")
if not singonly then
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
end
end
pos_functions["คำนาม"] = {
func = function(args, data)
handle_gender(args, data)
handle_noun_infls(args, data)
local g = ine(args["g"]) or default
local g2 = ine(args["g2"])
end
}
pos_functions["คำกริยานาม"] = {
func = function(args, data)
handle_gender(args, data)
handle_infl(args, data, "inst", "instance noun")
end
}
pos_functions["เลข"] = {
func = function(args, data)
append_cat(data, "เลขเชิงการนับ")
handle_gender(args, data, nil, nil, true)
handle_noun_infls(args, data)
end
}
pos_functions["คำวิสามานยนาม"] = {
func = function(args, data)
handle_gender(args, data)
handle_noun_infls(args, data, "เอกพจน์เท่านั้น")
end
}
pos_functions["คำสรรพนาม"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
handle_gender(args, data, nil, nil, true)
handle_infl(args, data, "encl", "enclitic form")
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "pl", "พหูพจน์")
end
}
pos_functions["รูปคุณศัพท์เพศหญิง"] = {
params = {
["g"] = {},
["g2"] = {},
["pl"] = {},
["islemma"] = {type = boolean}
},
func = function(args, data)
data.pos_category = "รูปคุณศัพท์เพศหญิง"
handle_noun_plural(args, data)
handle_gender(args, data, "f", "nonlemma")
end
}
pos_functions["รูปคุณศัพท์พหูพจน์"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
data.pos_category = "รูปคุณศัพท์พหูพจน์"
handle_gender(args, data, "p", "nonlemma")
end
}
pos_functions["รูปนาม"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
handle_gender(args, data, nil, "nonlemma")
end
}
pos_functions["รูปนามทวิพจน์"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
append_cat(data, "รูปนามทวิพจน์")
handle_gender(args, data, "m-d", "nonlemma")
end
}
pos_functions["active participles"] = {
params = {
[2] = {}
},
func = function(args, data)
data.pos_category = "รูปกริยาขยาย"
append_cat(data, "รูปกริยาขยายกรรตุวาจก")
handle_infl(args, data, "", "")
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "cpl", "พหูพจน์เพศรวม")
handle_infl(args, data, "pl", "พหูพจน์เพศชาย")
handle_infl(args, data, "fpl", "พหูพจน์เพศหญิง")
end
}
pos_functions["passive participles"] = {
params = {
[2] = {}
},
func = function(args, data)
data.pos_category = "รูปกริยาขยาย"
append_cat(data, "รูปกริยาขยายกรรมวาจก")
handle_infl(args, data, "", "")
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "cpl", "พหูพจน์เพศรวม")
handle_infl(args, data, "pl", "พหูพจน์เพศชาย")
handle_infl(args, data, "fpl", "พหูพจน์เพศหญิง")
end
}
local verb_forms = {
["I"] = true,
["II"] = true,
["III"] = true,
["IV"] = true,
["V"] = true,
["VI"] = true,
["VII"] = true,
["VIII"] = true,
["IX"] = true,
["X"] = true,
["XI"] = true,
["Iq"] = true,
["IIq"] = true
}
local lang_exception = { ["ajp"] = true, ["acy"] = true}
pos_functions["คำกริยา"] = {
func = function(args, data)
data.pos_category = "คำกริยา"
if ine(args[1]) then
if verb_forms[args[1]] then
data.gloss = '<abbr title="Form ' .. args[1] .. '">[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป ' .. args[1] .. '|' .. args[1] .. ']]</abbr>'
append_cat(data, "คำกริยารูป " .. args[1])
else
error("Invalid verb form. Please provide a valid one.")
end
elseif mw.title.getCurrentTitle().nsText ~= "แม่แบบ" or args[1] ~= "-" then
track("verbs lacking forms")
end
if lang_exception[lang:getCode()] then
handle_infl(args, data, "pres", "present")
handle_infl(args, data, "subj", "subjunctive")
else handle_infl(args, data, "np", "non-past") end
handle_infl(args, data, "vn", "คำกริยานาม")
handle_infl(args, data, "ap", "รูปกริยาขยายกรรตุวาจก")
handle_infl(args, data, "pp", "รูปกริยาขยายกรรมวาจก")
end
}
local function handle_conj_form(args, data)
local form = ine(args[1])
if form then
if not verb_forms[form] then
error("Invalid verb conjugation form " .. form)
end
table.insert(data.inflections, {label = "[[ภาคผนวก:คำกริยาภาษาอาหรับ#รูป " .. form .. "|form " .. form .. "]]"})
end
end
pos_functions["รูปกริยา"] = {
params = {
[1] = {}
},
func = function(args, data)
handle_conj_form(args, data)
end
}
pos_functions["คำบุพบท"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
if ine(args["g"]) or ine(args["g2"]) then
handle_gender(args, data)
end
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "pl", "พหูพจน์")
end
}
pos_functions["ตัวกำหนด"] = {
params = {
["g"] = {},
["g2"] = {}
},
func = function(args, data)
handle_gender(args, data, nil, nil, true)
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "pl", "พหูพจน์")
end
}
pos_functions["คำกริยาวิเศษณ์"] = {
func = function(args, data)
handle_infl(args, data, "obl", "oblique form")
end
}
pos_functions["ปัจจัย"] = {
params = {
["g"] = {}
},
func = function(args, data)
handle_gender(args, data, nil, nil, true)
handle_infl(args, data, "f", "เพศหญิง")
handle_infl(args, data, "pl", "พหูพจน์")
end
}
return export
3grn9frslewhnpiznh1eashphy2b48w
คุยกับผู้ใช้:Peterxy
3
1857796
5723307
4933458
2026-05-20T10:44:55Z
Neriah
12116
Neriah ย้ายหน้า [[คุยกับผู้ใช้:Peterxy12]] ไปยัง [[คุยกับผู้ใช้:Peterxy]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Peterxy12|Peterxy12]]" เป็น "[[Special:CentralAuth/Peterxy|Peterxy]]"
4933458
wikitext
text/x-wiki
{{Template:Welcome|realName=|name=Peterxy12}}
-- [[ผู้ใช้:New user message|New user message]] ([[คุยกับผู้ใช้:New user message|คุย]]) 20:04, 20 กันยายน 2568 (+07)
h374qtp05eiq02go449v4cheiskjqd2
ʻIlana
0
2326658
5723297
5715111
2026-05-20T06:57:50Z
OctraBot
3198
/* คำกริยา */
5723297
wikitext
text/x-wiki
== ภาษาฮาวาย ==
=== การออกเสียง ===
* {{haw-IPA}}
=== คำวิสามานยนาม ===
{{head|haw|คำวิสามานยนาม}}
# {{tcl|haw|อิหร่าน|id=Q794}}
# [[ชาว]][[อิหร่าน]]
=== คำกริยา ===
{{head|haw|คำกริยา}}
# {{lb|haw|stative}} คือ/เป็นอิหร่าน
bocz6tawhnylzdt5x2hxunimqtd5dp6
มอดูล:mt-headword
828
2331348
5723274
5723132
2026-05-20T04:49:19Z
OctraBot
3198
5723274
Scribunto
text/plain
-- Based on [[Module:ar-headword]] by: Benwing, CodeCat
-- Adapted by Fenakhay
local lang = require("Module:languages").getByCode("mt")
local export = {}
local pos_functions = {}
local u = mw.ustring.char
local function glossary_link(entry, text)
text = text or entry
return "[[ภาคผนวก:อภิธานศัพท์#" .. entry .. "|" .. text .. "]]"
end
local function parse_qualifiers(quals, sense)
if quals == nil and sense == nil then
return nil
end
local qualifiers = { }
if quals ~= nil then
local list_quals = mw.text.split(quals, ',%s*')
for _, qual in ipairs(list_quals) do
table.insert(qualifiers, qual)
end
end
return qualifiers
end
-----------------------
-- Utility functions --
-----------------------
-- If Not Empty
local function ine(arg)
if arg == "" then
return nil
else
return arg
end
end
local function list_to_set(list)
local set = {}
for _, item in ipairs(list) do
set[item] = true
end
return set
end
-- version of mw.ustring.gsub() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = mw.ustring.gsub(term, foo, bar)
return retval
end
local rfind = mw.ustring.find
-- Tracking functions
local trackfn = require("Module:debug").track
local function track(page)
trackfn("mt-headword/" .. page)
return true
end
local function append_cat(data, pos)
table.insert(data.categories, pos .. lang:getCategoryName()) --th
end
local function remove_links(text)
text = rsub(text, "%[%[[^|%]]*|", "")
text = rsub(text, "%[%[", "")
text = rsub(text, "%]%]", "")
return text
end
local function make_unused_key_tracker(t)
local unused_keys = require "Module:table".listToSet(require "Module:table".keysToList(t))
local mt = {
__index = function(self, key)
if key ~= nil then
unused_keys[key] = nil
end
return t[key]
end,
__newindex = function(self, key, value)
t[key] = value
end
}
local proxy_table = setmetatable({}, mt)
return proxy_table, unused_keys
end
-- The main entry point.
function export.show(frame)
local PAGENAME = mw.loadData("Module:headword/data").pagename
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
-- หมวดหมู่เป็นภาษาไทย
local poscat_th = require("Module:th-utilities").th_pos(poscat)
local params = {
[1] = {list = "head", allow_holes = true, default = ""},
["head"] = {default = ""}
}
local args, unused_keys = make_unused_key_tracker(frame:getParent().args)
-- Gather parameters
local data = {lang = lang, pos_category = poscat_th, categories = {}, heads = {}, genders = {}, inflections = {}}
local saw_head = false
local head = ine(args["head"])
if head then
saw_head = true
else
head = PAGENAME
end
local i = 1
while head do
table.insert(data.heads, head)
i = i + 1
head = ine(args["head" .. i])
if head then
saw_head = true
end
end
data.no_redundant_head_cat = not saw_head
if pos_functions[poscat_th] then
pos_functions[poscat_th].func(args, data)
end
local unused_key_list = require "Module:table".keysToList(unused_keys)
if #unused_key_list > 0 then
local unused_key_string = require "Module:array"(unused_key_list)
:map(function(key)
return "|" .. key .. "=" .. args[key]
end)
:concat("\n")
error("Unused arguments: " .. unused_key_string)
end
if mw.ustring.match(PAGENAME, "[Gg]ħ") then
append_cat(data, "terms spelled with Għ")
end
return require("Module:headword").full_headword(data)
end
local function getargs(args, argpref, defgender, position)
-- Gather parameters
local forms = {}
local form
if ine(args[position]) then
form = ine(args[position])
else
form = ine(args[argpref])
end
local gender = ine(args[argpref .. "g"])
local gender2 = ine(args[argpref .. "g2"])
local qualifiers = ine(args[argpref .. "q"])
local senses = ine(args[argpref .. "id"])
if form ~= nil and rfind(form, "%*") ~= nil then
track("cleanup shit")
end
local i = 1
while form do
local genderlist = (gender or gender2) and {gender, gender2} or defgender and {defgender} or nil
table.insert(forms, {term = form, gender = genderlist, q = parse_qualifiers(qualifiers, senses)})
i = i + 1
form = ine(args[argpref .. i])
if form ~= nil and rfind(form, "%*") ~= nil then
track("cleanup shit")
end
gender = ine(args[argpref .. i .. "g"])
gender2 = ine(args[argpref .. i .. "g2"])
qualifiers = ine(args[argpref .. i .. "q"])
senses = ine(args[argpref .. i .. "id"])
end
return forms
end
local function handle_infl(args, data, argpref, label, defgender, position)
local newinfls = getargs(args, argpref, defgender, position)
newinfls.label = label
if #newinfls > 0 then
table.insert(data.inflections, newinfls)
end
end
local function handle_all_infl(args, data, argpref, label, nobase, position)
if not nobase and argpref ~= "" then
handle_infl(args, data, argpref, label, nil, position)
end
local labelsp = label == "" and "" or label .. " "
handle_infl(args, data, argpref .. "cons", labelsp .. "construct state")
end
-- Handle the case where p=-, indicating an uncountable noun.
local function handle_noun_plural(args, data)
if args["p"] == "-" then
table.insert(data.inflections, {label = "usually [[Appendix:Glossary#uncountable|uncountable]]"})
append_cat(data, "คำนามนับไม่ได้")
else
handle_infl(args, data, "p", "พหูพจน์")
handle_infl(args, data, "pauc", "ตัวบอกความน้อย")
end
end
local valid_genders = list_to_set(
{"m", "m-s",
"f", "f-s",
"m-p", "f-p", "p",
"d", "m-d", "f-d", "mf", "mfbysense"
})
local function is_masc_sg(g)
return g == "m" or g == "m-s" or g == "m-p" or g == "m-d" or g == "mf" or g == "mfbysense"
end
local function is_fem_sg(g)
return g == "f" or g == "f-s" or g == "f-p" or g == "f-d" or g == "mf" or g == "mfbysense"
end
local function handle_gender(args, data, default, nonlemma, optional)
local g = ine(args["g"]) or default
local g2 = ine(args["g2"])
local function process_gender(gender)
if not gender and not optional then
table.insert(data.genders, "?")
elseif not gender and optional then
-- do nothing
elseif valid_genders[g] then
table.insert(data.genders, gender)
else
error("Unrecognized gender: " .. gender)
end
end
process_gender(g)
if g2 then
process_gender(g2)
end
if nonlemma then
return
end
end
-- Part-of-speech functions
pos_functions["คำคุณศัพท์"] = {
func = function(args, data)
if args[1] == "-" then
local forms = {}
forms.label = glossary_link("ผันรูปไม่ได้")
append_cat(data, "คำคุณศัพท์ผันรูปไม่ได้")
table.insert(data.inflections, forms)
else
handle_all_infl(args, data, "f", "เพศหญิงเอกพจน์")
handle_all_infl(args, data, "p", "พหูพจน์")
end
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
handle_all_infl(args, data, "comp", "ขั้นกว่า")
end
}
local function handle_sing_coll_noun_infls(args, data)
handle_all_infl(args, data, "", "")
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_noun_plural(args, data)
end
pos_functions["คำสมุหนาม"] = {
func = function(args, data)
data.pos_category = "คำนาม"
append_cat(data, "คำสมุหนาม")
table.insert(data.inflections, {label = "คำสมุหนาม"})
handle_gender(args, data, "m")
-- Handle sing= (the corresponding singulative noun) and singg= (its gender)
handle_infl(args, data, "sing", "คำเอกนาม", "f")
handle_sing_coll_noun_infls(args, data)
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
end
}
pos_functions["คำเอกนาม"] = {
func = function(args, data)
data.pos_category = "รูปนาม"
append_cat(data, "คำเอกนาม")
table.insert(data.inflections, {label = "คำเอกนาม"})
handle_gender(args, data, "f")
-- Handle coll= (the corresponding collective noun) and collg= (its gender)
handle_infl(args, data, "coll", "คำสมุหนาม", "m")
handle_sing_coll_noun_infls(args, data)
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
end
}
local function handle_noun_infls(args, data, singonly)
handle_all_infl(args, data, "", "")
if not singonly then
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_noun_plural(args, data)
handle_all_infl(args, data, "p", "พหูพจน์", "nobase")
handle_all_infl(args, data, "pauc", "ตัวบอกความน้อย", "nobase")
end
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "m", "เพศชาย")
if not singonly then
handle_all_infl(args, data, "dim", "ตัวบอกความเล็ก")
end
end
pos_functions["คำนาม"] = {
func = function(args, data)
handle_gender(args, data)
handle_noun_infls(args, data)
local g = ine(args["g"]) or default
local g2 = ine(args["g2"])
if is_masc_sg(g) or is_masc_sg(g2) then
append_cat(data, "คำนามเพศชาย")
elseif is_fem_sg(g) or is_fem_sg(g2) then
append_cat(data, "คำนามเพศหญิง")
end
end
}
pos_functions["เลข"] = {
func = function(args, data)
append_cat(data, "เลขเชิงการนับ")
handle_gender(args, data)
handle_noun_infls(args, data)
end
}
pos_functions["คำวิสามานยนาม"] = {
func = function(args, data)
handle_gender(args, data, nil, nil, true)
handle_noun_infls(args, data, "เอกพจน์เท่านั้น")
end
}
pos_functions["คำกริยานาม"] = {
func = function(args, data)
data.pos_category = "คำนาม"
handle_gender(args, data)
handle_all_infl(args, data, "inst", "instance noun")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["รูปคุณศัพท์เพศหญิง"] = {
func = function(args, data)
data.pos_category = "รูปคุณศัพท์เพศหญิง"
handle_gender(args, data, "f", "nonlemma")
end
}
pos_functions["รูปคุณศัพท์พหูพจน์"] = {
func = function(args, data)
data.pos_category = "รูปคุณศัพท์พหูพจน์"
handle_gender(args, data, "p", "nonlemma")
end
}
pos_functions["รูปคุณศัพท์เพศหญิงพหูพจน์"] = {
func = function(args, data)
data.pos_category = nil
append_cat(data, "รูปคุณศัพท์พหูพจน์")
append_cat(data, "รูปคุณศัพท์เพศหญิง")
handle_gender(args, data, nil, "nonlemma", true)
end
}
pos_functions["รูปนาม"] = {
func = function(args, data)
data.pos_category = "รูปนาม"
handle_gender(args, data, nil, "nonlemma", true)
end
}
pos_functions["รูปนามทวิพจน์"] = {
params = {
["g"] = {},
["g2"] = {},
},
func = function(args, data)
append_cat(data, "รูปนามทวิพจน์")
handle_gender(args, data, "d", "nonlemma")
end
}
pos_functions["รูปนามเพศหญิงพหูพจน์"] = {
func = function(args, data)
data.pos_category = nil
append_cat(data, "รูปนามพหูพจน์")
append_cat(data, "คำนามเพศหญิง")
append_cat(data, "คำหลัก")
handle_gender(args, data, nil, "nonlemma", true)
end
}
pos_functions["คำกริยา"] = {
func = function(args, data)
data.pos_category = "คำกริยา"
handle_all_infl(args, data, "imper", "ไม่สมบูรณ์", nil, 1)
handle_all_infl(args, data, "pp", "รูปกริยาขยายอดีตกาล", nil, 2)
handle_all_infl(args, data, "ap", "รูปกริยาขยายกรรตุวาจก", nil, 3)
handle_all_infl(args, data, "vn", "คำกริยานาม", nil, 4)
if ine(args["ap"]) ~= nil or ine(args[3]) ~= nil then
track("active participle")
end
end
}
pos_functions["คำกริยาวิเศษณ์"] = {
func = function(args, data)
data.pos_category = "คำกริยาวิเศษณ์"
handle_all_infl(args, data, "stem", "stem")
handle_all_infl(args, data, "emph", "emphatic")
end
}
pos_functions["รูปเลข"] = {
func = function(args, data)
data.pos_category = "รูปเลข"
handle_gender(args, data)
end
}
pos_functions["รูปกริยาขยายอดีตกาล"] = {
func = function(args, data)
data.pos_category = "รูปกริยาขยาย"
append_cat(data, "รูปกริยาขยายอดีตกาล")
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["รูปกริยาขยายกรรตุวาจก"] = {
func = function(args, data)
data.pos_category = "รูปกริยาขยาย"
append_cat(data, "รูปกริยาขยายกรรตุวาจก")
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["ตัวกำหนด"] = {
func = function(args, data)
data.pos_category = "ตัวกำหนด"
handle_all_infl(args, data, "m", "เพศชาย")
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["ปัจจัย"] = {
func = function(args, data)
data.pos_category = "ปัจจัย"
handle_gender(args, data, nil, nil, true)
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["อุปสรรค"] = {
func = function(args, data)
data.pos_category = "อุปสรรค"
handle_gender(args, data, nil, nil, true)
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
pos_functions["คำสรรพนาม"] = {
func = function(args, data)
data.pos_category = "คำสรรพนาม"
handle_gender(args, data, nil, nil, true)
handle_all_infl(args, data, "f", "เพศหญิง")
handle_all_infl(args, data, "d", "ทวิพจน์")
handle_all_infl(args, data, "p", "พหูพจน์")
end
}
return export
faj09g64put3qpz3uc9e5xfss2z4s06
ผู้ใช้:OctraBot/กระบะทราย1
2
2331405
5723234
2026-05-20T03:02:25Z
OctraBot
3198
สร้างหน้าด้วย "{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}} * Abkhaz: {{t|ab|Лаос}} * Afrikaans: {{t|af|Laos}} * Albanian: {{t|sq|Laos|m}} {{qualifier|indefinite}}, {{t+|sq|Laosi|m}} {{qualifier|definite}} * Amharic: {{t|am|ላዎስ}} * Arabic: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}} * Aramaic: *: Assyrian Neo-Aramaic: {{t|aii|ܠܵܘܣ|f|tr=laws}} * Armenian: {{t+|hy|Լաո..."
5723234
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* Abkhaz: {{t|ab|Лаос}}
* Afrikaans: {{t|af|Laos}}
* Albanian: {{t|sq|Laos|m}} {{qualifier|indefinite}}, {{t+|sq|Laosi|m}} {{qualifier|definite}}
* Amharic: {{t|am|ላዎስ}}
* Arabic: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* Aramaic:
*: Assyrian Neo-Aramaic: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* Armenian: {{t+|hy|Լաոս}}
* Assamese: {{t|as|লাউচ}}
* Asturian: {{t+|ast|Laos}}
* Azerbaijani: {{t+|az|Laos}}
* Bashkir: {{t|ba|Лаос}}
* Belarusian: {{t|be|Лао́с|m}}
* Bengali: {{t+|bn|লাওস}}
* Breton: {{t|br|Laos}}
* Bulgarian: {{t+|bg|Лао́с|m}}
* Burmese: {{t|my|လာအို}}
* Catalan: {{t+|ca|Laos|m}}
* Chinese:
*: Mandarin: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|Taiwan}}
* Crimean Tatar: {{t|crh|Laos}}
*: Dobrujan Tatar: {{t|crh|Law}}
* Czech: {{t+|cs|Laos|m}}
* Danish: {{t|da|Laos|n}}
* Dhivehi: {{t|dv|ލާއޯސް}}
* Dutch: {{t+|nl|Laos|n}}
* Esperanto: {{t+|eo|Laoso}}
* Estonian: {{t+|et|Laos}}
* Farefare: {{t|gur|Laogo}}
* Faroese: {{t|fo|Laos|n}}
* Finnish: {{t+|fi|Laos}}
* French: {{t+|fr|Laos|m}}
* Georgian: {{t+|ka|ლაოსი}}
* German: {{t+|de|Laos|n}}
* Greek: {{t+|el|Λάος|n}}
* Hausa: {{t|ha|Laos}}
* Hebrew: {{t|he|לָאוֹס|f|tr=laos}}
* Hindi: {{t+|hi|लाओस|m}}
* Hmong:
*: Green Hmong: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|informal}}
*: White Hmong: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|informal}}
* Hungarian: {{t+|hu|Laosz}}
* Icelandic: {{t+|is|Laos|n}}
* Ido: {{t+|io|Laos}}
* Indonesian: {{t+|id|Laos}}
* Interlingua: {{t|ia|Laos}}
* Irish: {{t|ga|Laos|m}}
* Italian: {{t+|it|Laos|m}}
* Japanese: {{t+|ja|ラオス|tr=Raosu}}
* Kazakh: {{t+|kk|Лаос}}
* Khmer: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* Korean: {{t+|ko|^라오스}}
* Kurdish:
*: Northern Kurdish: {{t+|kmr|Laos}}
* Kyrgyz: {{t+|ky|Лаос}}
* Lao: {{t+|lo|ລາວ}}, {{t|lo|ເມືອງລາວ}}<!-- sum of parts -->, {{t|lo|ປະເທດລາວ}}<!-- sum of parts -->
* Latvian: {{t+|lv|Laosa|f}}
* Lithuanian: {{t+|lt|Laosas|m}}
* Lü: {{t|khb|ᦟᦱᧁ}}
* Macedonian: {{t+|mk|Лаос|m}}
* Malay: {{t+|ms|Laos}}
* Maltese: {{t+|mt|Laos}}
* Māori: {{t+|mi|Rāoho}}
* Mongolian:
*: Cyrillic: {{t+|mn|Лаос}}
*: Mongolian script: {{t|mn|ᠯᠠᠣᠰ}}
* Navajo: {{t|nv|Lááʼos}}
* Nepali: {{t|ne|लाओस}}
* Norman: {{t|nrf|Laos|m}}
* Norwegian:
*: Bokmål: {{t+|nb|Laos|n}}
*: Nynorsk: {{t+|nn|Laos|n}}
* Pashto: {{t|ps|لاوس|m|tr=lāwos}}
* Persian:
*: Dari: {{t|prs|لَائوس}}
*: Iranian Persian: {{t+|fa-ira|لائوس}}
* Polish: {{t+|pl|Laos|m-in}}
* Portuguese: {{t+|pt|Laos}}
* Romanian: {{t+|ro|Laos|n}}
* Russian: {{t+|ru|Лао́с|m}}
* Santali: {{t|sat|ᱞᱟᱣᱚᱥ}}
* Scots: {{t|sco|Laos}}
* Serbo-Croatian:
*: Cyrillic: {{t|sh|Ла̏ос|m}}
*: Latin: {{t|sh|Lȁos|m}}
* Sinhalese: {{t|si|ලාඕසය}}
* Slovak: {{t+|sk|Laos|m}}
* Slovene: {{t+|sl|Laos|m}}
* Spanish: {{t+|es|Laos}}
* Swahili: {{t|sw|Laos}}
* Swedish: {{t+|sv|Laos|n}}
* Tagalog: {{t+|tl|Laos}}
* Tajik: {{t+|tg|Лаос}}
* Tatar: {{t|tt|Лаос}}
* Telugu: {{t+|te|లావోస్}}
* Tetum: {{t|tet|Laos}}
* Thai: {{t+|th|ลาว}}
*: Northern Thai: {{t|nod|ᩃᩣ᩠ᩅ}}
* Tibetan: {{t|bo|ལའོ་སུ}}
* Turkish: {{t+|tr|Laos}}
* Turkmen: {{t|tk|Laos}}
* Ukrainian: {{t+|uk|Лао́с|m}}
* Urdu: {{t|ur|لاؤس|m}}
* Uyghur: {{t|ug|لائوس}}
* Uzbek: {{t+|uz|Laos}}
* Vietnamese: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* Yiddish: {{t|yi|לאַאָס|n}}
* Yoruba: {{t|yo|Laosi}}
* Zhuang: {{t|za|Laujvoh}}
{{trans-bottom}}
eoxvcwfzdf15u5w9fhlzt1ruwbnjd3j
5723235
5723234
2026-05-20T03:05:17Z
OctraBot
3198
5723235
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* Abkhaz: {{t|ab|Лаос}}
* Afrikaans: {{t|af|Laos}}
* Albanian: {{t|sq|Laos|m}} {{qualifier|indefinite}}, {{t+|sq|Laosi|m}} {{qualifier|definite}}
* Amharic: {{t|am|ላዎስ}}
* Arabic: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* Aramaic:
*: Assyrian Neo-Aramaic: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* Armenian: {{t+|hy|Լաոս}}
* Assamese: {{t|as|লাউচ}}
* Asturian: {{t+|ast|Laos}}
* Azerbaijani: {{t+|az|Laos}}
* Bashkir: {{t|ba|Лаос}}
* Belarusian: {{t|be|Лао́с|m}}
* Bengali: {{t+|bn|লাওস}}
* Breton: {{t|br|Laos}}
* Bulgarian: {{t+|bg|Лао́с|m}}
* Burmese: {{t|my|လာအို}}
* Catalan: {{t+|ca|Laos|m}}
* Chinese:
*: Mandarin: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|Taiwan}}
* Crimean Tatar: {{t|crh|Laos}}
*: Dobrujan Tatar: {{t|crh|Law}}
* Czech: {{t+|cs|Laos|m}}
* Danish: {{t|da|Laos|n}}
* Dhivehi: {{t|dv|ލާއޯސް}}
* Dutch: {{t+|nl|Laos|n}}
* Esperanto: {{t+|eo|Laoso}}
* Estonian: {{t+|et|Laos}}
* Farefare: {{t|gur|Laogo}}
* Faroese: {{t|fo|Laos|n}}
* Finnish: {{t+|fi|Laos}}
* French: {{t+|fr|Laos|m}}
* Georgian: {{t+|ka|ლაოსი}}
* German: {{t+|de|Laos|n}}
* Greek: {{t+|el|Λάος|n}}
* Hausa: {{t|ha|Laos}}
* Hebrew: {{t|he|לָאוֹס|f|tr=laos}}
* Hindi: {{t+|hi|लाओस|m}}
* Hmong:
*: Green Hmong: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|informal}}
*: White Hmong: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|informal}}
* Hungarian: {{t+|hu|Laosz}}
* Icelandic: {{t+|is|Laos|n}}
* Ido: {{t+|io|Laos}}
* Indonesian: {{t+|id|Laos}}
* Interlingua: {{t|ia|Laos}}
* Irish: {{t|ga|Laos|m}}
* Italian: {{t+|it|Laos|m}}
* Japanese: {{t+|ja|ラオス|tr=Raosu}}
* Kazakh: {{t+|kk|Лаос}}
* Khmer: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* Korean: {{t+|ko|^라오스}}
* Kurdish:
*: Northern Kurdish: {{t+|kmr|Laos}}
* Kyrgyz: {{t+|ky|Лаос}}
* Lao: {{t+|lo|ລາວ}}
* Latvian: {{t+|lv|Laosa|f}}
* Lithuanian: {{t+|lt|Laosas|m}}
* Lü: {{t|khb|ᦟᦱᧁ}}
* Macedonian: {{t+|mk|Лаос|m}}
* Malay: {{t+|ms|Laos}}
* Maltese: {{t+|mt|Laos}}
* Māori: {{t+|mi|Rāoho}}
* Mongolian:
*: Cyrillic: {{t+|mn|Лаос}}
*: Mongolian script: {{t|mn|ᠯᠠᠣᠰ}}
* Navajo: {{t|nv|Lááʼos}}
* Nepali: {{t|ne|लाओस}}
* Norman: {{t|nrf|Laos|m}}
* Norwegian:
*: Bokmål: {{t+|nb|Laos|n}}
*: Nynorsk: {{t+|nn|Laos|n}}
* Pashto: {{t|ps|لاوس|m|tr=lāwos}}
* Persian:
*: Dari: {{t|prs|لَائوس}}
*: Iranian Persian: {{t+|fa-ira|لائوس}}
* Polish: {{t+|pl|Laos|m-in}}
* Portuguese: {{t+|pt|Laos}}
* Romanian: {{t+|ro|Laos|n}}
* Russian: {{t+|ru|Лао́с|m}}
* Santali: {{t|sat|ᱞᱟᱣᱚᱥ}}
* Scots: {{t|sco|Laos}}
* Serbo-Croatian:
*: Cyrillic: {{t|sh|Ла̏ос|m}}
*: Latin: {{t|sh|Lȁos|m}}
* Sinhalese: {{t|si|ලාඕසය}}
* Slovak: {{t+|sk|Laos|m}}
* Slovene: {{t+|sl|Laos|m}}
* Spanish: {{t+|es|Laos}}
* Swahili: {{t|sw|Laos}}
* Swedish: {{t+|sv|Laos|n}}
* Tagalog: {{t+|tl|Laos}}
* Tajik: {{t+|tg|Лаос}}
* Tatar: {{t|tt|Лаос}}
* Telugu: {{t+|te|లావోస్}}
* Tetum: {{t|tet|Laos}}
* English: {{t+|en|Laos}}
* Northern Thai: {{t|nod|ᩃᩣ᩠ᩅ}}
* Tibetan: {{t|bo|ལའོ་སུ}}
* Turkish: {{t+|tr|Laos}}
* Turkmen: {{t|tk|Laos}}
* Ukrainian: {{t+|uk|Лао́с|m}}
* Urdu: {{t|ur|لاؤس|m}}
* Uyghur: {{t|ug|لائوس}}
* Uzbek: {{t+|uz|Laos}}
* Vietnamese: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* Yiddish: {{t|yi|לאַאָס|n}}
* Yoruba: {{t|yo|Laosi}}
* Zhuang: {{t|za|Laujvoh}}
* Shan: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
{{trans-bottom}}
r763314x0duk5yfe81bwdxpd50mwk10
5723236
5723235
2026-05-20T03:07:52Z
OctraBot
3198
5723236
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* {{#if:|อับคาเซีย|อับคาเซีย}}: {{t|ab|Лаос}}
* {{#if:|อาฟรีกานส์|อาฟรีกานส์}}: {{t|af|Laos}}
* {{#if:|แอลเบเนีย|แอลเบเนีย}}: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* {{#if:|อัมฮารา|อัมฮารา}}: {{t|am|ላዎስ}}
* {{#if:|อาหรับ|อาหรับ}}: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อารามายา:
*: {{#if:|Assyrian Neo-Aramaic|Assyrian Neo-Aramaic}}: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* {{#if:|อาร์มีเนีย|อาร์มีเนีย}}: {{t+|hy|Լաոս}}
* {{#if:|อัสสัม|อัสสัม}}: {{t|as|লাউচ}}
* {{#if:|อัสตูเรียส|อัสตูเรียส}}: {{t+|ast|Laos}}
* {{#if:|อาเซอร์ไบจาน|อาเซอร์ไบจาน}}: {{t+|az|Laos}}
* {{#if:|แบชเคียร์|แบชเคียร์}}: {{t|ba|Лаос}}
* {{#if:|เบลารุส|เบลารุส}}: {{t|be|Лао́с|m}}
* {{#if:|เบงกอล|เบงกอล}}: {{t+|bn|লাওস}}
* {{#if:|เบรอตง|เบรอตง}}: {{t|br|Laos}}
* {{#if:|บัลแกเรีย|บัลแกเรีย}}: {{t+|bg|Лао́с|m}}
* {{#if:|พม่า|พม่า}}: {{t|my|လာအို}}
* {{#if:|กาตาลา|กาตาลา}}: {{t+|ca|Laos|m}}
* จีน:
*: {{#if:|จีนกลาง|จีนกลาง}}: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|Taiwan}}
* {{#if:|ตาตาร์แบบไครเมีย|ตาตาร์แบบไครเมีย}}: {{t|crh|Laos}}
*: {{#if:|ตาตาร์แบบไครเมีย|ตาตาร์แบบไครเมีย}}: {{t|crh|Law}}
* {{#if:|เช็ก|เช็ก}}: {{t+|cs|Laos|m}}
* {{#if:|เดนมาร์ก|เดนมาร์ก}}: {{t|da|Laos|n}}
* {{#if:|มัลดีฟส์|มัลดีฟส์}}: {{t|dv|ލާއޯސް}}
* {{#if:|ดัตช์|ดัตช์}}: {{t+|nl|Laos|n}}
* {{#if:|เอสเปรันโต|เอสเปรันโต}}: {{t+|eo|Laoso}}
* {{#if:|เอสโตเนีย|เอสโตเนีย}}: {{t+|et|Laos}}
* {{#if:|Farefare|Farefare}}: {{t|gur|Laogo}}
* {{#if:|แฟโร|แฟโร}}: {{t|fo|Laos|n}}
* {{#if:|ฟินแลนด์|ฟินแลนด์}}: {{t+|fi|Laos}}
* {{#if:|ฝรั่งเศส|ฝรั่งเศส}}: {{t+|fr|Laos|m}}
* {{#if:|จอร์เจีย|จอร์เจีย}}: {{t+|ka|ლაოსი}}
* {{#if:|เยอรมัน|เยอรมัน}}: {{t+|de|Laos|n}}
* {{#if:|กรีก|กรีก}}: {{t+|el|Λάος|n}}
* {{#if:|เฮาซา|เฮาซา}}: {{t|ha|Laos}}
* {{#if:|ฮีบรู|ฮีบรู}}: {{t|he|לָאוֹס|f|tr=laos}}
* {{#if:|ฮินดี|ฮินดี}}: {{t+|hi|लाओस|m}}
* Hmong:
*: {{#if:|ม้งเขียว|ม้งเขียว}}: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: {{#if:|ม้งขาว|ม้งขาว}}: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* {{#if:|ฮังการี|ฮังการี}}: {{t+|hu|Laosz}}
* {{#if:|ไอซ์แลนด์|ไอซ์แลนด์}}: {{t+|is|Laos|n}}
* {{#if:|อีโด|อีโด}}: {{t+|io|Laos}}
* {{#if:|อินโดนีเซีย|อินโดนีเซีย}}: {{t+|id|Laos}}
* {{#if:|อินเทอร์ลิงกวา|อินเทอร์ลิงกวา}}: {{t|ia|Laos}}
* {{#if:|ไอริช|ไอริช}}: {{t|ga|Laos|m}}
* {{#if:|อิตาลี|อิตาลี}}: {{t+|it|Laos|m}}
* {{#if:|ญี่ปุ่น|ญี่ปุ่น}}: {{t+|ja|ラオス|tr=Raosu}}
* {{#if:|คาซัค|คาซัค}}: {{t+|kk|Лаос}}
* {{#if:|เขมร|เขมร}}: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* {{#if:|เกาหลี|เกาหลี}}: {{t+|ko|^라오스}}
* Kurdish:
*: {{#if:|เคิร์ดเหนือ|เคิร์ดเหนือ}}: {{t+|kmr|Laos}}
* {{#if:|คีร์กีซ|คีร์กีซ}}: {{t+|ky|Лаос}}
* {{#if:|ลาว|ลาว}}: {{t+|lo|ລາວ}}
* {{#if:|ลัตเวีย|ลัตเวีย}}: {{t+|lv|Laosa|f}}
* {{#if:|ลิทัวเนีย|ลิทัวเนีย}}: {{t+|lt|Laosas|m}}
* {{#if:|ไทลื้อ|ไทลื้อ}}: {{t|khb|ᦟᦱᧁ}}
* {{#if:|มาซิโดเนีย|มาซิโดเนีย}}: {{t+|mk|Лаос|m}}
* {{#if:|มาเลเซีย|มาเลเซีย}}: {{t+|ms|Laos}}
* {{#if:|มอลตา|มอลตา}}: {{t+|mt|Laos}}
* {{#if:|มาวรี|มาวรี}}: {{t+|mi|Rāoho}}
* Mongolian:
*: {{#if:|มองโกเลีย|มองโกเลีย}}: {{t+|mn|Лаос}}
*: {{#if:|มองโกเลีย|มองโกเลีย}}: {{t|mn|ᠯᠠᠣᠰ}}
* {{#if:|นาวาโฮ|นาวาโฮ}}: {{t|nv|Lááʼos}}
* {{#if:|เนปาล|เนปาล}}: {{t|ne|लाओस}}
* {{#if:|นอร์มัน|นอร์มัน}}: {{t|nrf|Laos|m}}
* Norwegian:
*: {{#if:|นอร์เวย์แบบบุ๊กมอล|นอร์เวย์แบบบุ๊กมอล}}: {{t+|nb|Laos|n}}
*: {{#if:|นอร์เวย์แบบนือนอสก์|นอร์เวย์แบบนือนอสก์}}: {{t+|nn|Laos|n}}
* {{#if:|ปาทาน|ปาทาน}}: {{t|ps|لاوس|m|tr=lāwos}}
* Persian:
*: {{#if:|ดารี|<strong class="error"><span class="scribunto-error mw-scribunto-error-89797950">ข้อผิดพลาด Lua ใน มอดูล:parameters บรรทัดที่ 677: Parameter 1 must be a valid language code; the value "prs" is not valid. See [[WT:LOL]].</span></strong>}}: {{t|prs|لَائوس}}
*: {{#if:|เปอร์เซียแบบอิหร่าน|<strong class="error"><span class="scribunto-error mw-scribunto-error-dc155273">ข้อผิดพลาด Lua ใน มอดูล:parameters บรรทัดที่ 677: Parameter 1 must be a valid language code; the value "fa-ira" is not valid. See [[WT:LOL]].</span></strong>}}: {{t+|fa-ira|لائوس}}
* {{#if:|โปแลนด์|โปแลนด์}}: {{t+|pl|Laos|m-in}}
* {{#if:|โปรตุเกส|โปรตุเกส}}: {{t+|pt|Laos}}
* {{#if:|โรมาเนีย|โรมาเนีย}}: {{t+|ro|Laos|n}}
* {{#if:|รัสเซีย|รัสเซีย}}: {{t+|ru|Лао́с|m}}
* {{#if:|สันถาลี|สันถาลี}}: {{t|sat|ᱞᱟᱣᱚᱥ}}
* {{#if:|สกอต|สกอต}}: {{t|sco|Laos}}
* Serbo-Croatian:
*: {{#if:|เซอร์โบ-โครเอเชีย|เซอร์โบ-โครเอเชีย}}: {{t|sh|Ла̏ос|m}}
*: {{#if:|เซอร์โบ-โครเอเชีย|เซอร์โบ-โครเอเชีย}}: {{t|sh|Lȁos|m}}
* {{#if:|สิงหล|สิงหล}}: {{t|si|ලාඕසය}}
* {{#if:|สโลวัก|สโลวัก}}: {{t+|sk|Laos|m}}
* {{#if:|สโลวีเนีย|สโลวีเนีย}}: {{t+|sl|Laos|m}}
* {{#if:|สเปน|สเปน}}: {{t+|es|Laos}}
* {{#if:|สวาฮีลี|สวาฮีลี}}: {{t|sw|Laos}}
* {{#if:|สวีเดน|สวีเดน}}: {{t+|sv|Laos|n}}
* {{#if:|ตากาล็อก|ตากาล็อก}}: {{t+|tl|Laos}}
* {{#if:|ทาจิก|ทาจิก}}: {{t+|tg|Лаос}}
* {{#if:|ตาตาร์|ตาตาร์}}: {{t|tt|Лаос}}
* {{#if:|เตลูกู|เตลูกู}}: {{t+|te|లావోస్}}
* {{#if:|เตตุน|เตตุน}}: {{t|tet|Laos}}
* {{#if:|อังกฤษ|อังกฤษ}}: {{t+|en|Laos}}
* {{#if:|คำเมือง|คำเมือง}}: {{t|nod|ᩃᩣ᩠ᩅ}}
* {{#if:|ทิเบต|ทิเบต}}: {{t|bo|ལའོ་སུ}}
* {{#if:|ตุรกี|ตุรกี}}: {{t+|tr|Laos}}
* {{#if:|เติร์กเมน|เติร์กเมน}}: {{t|tk|Laos}}
* {{#if:|ยูเครน|ยูเครน}}: {{t+|uk|Лао́с|m}}
* {{#if:|อูรดู|อูรดู}}: {{t|ur|لاؤس|m}}
* {{#if:|อุยกูร์|อุยกูร์}}: {{t|ug|لائوس}}
* {{#if:|อุซเบก|อุซเบก}}: {{t+|uz|Laos}}
* {{#if:|เวียดนาม|เวียดนาม}}: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* {{#if:|ยิดดิช|ยิดดิช}}: {{t|yi|לאַאָס|n}}
* {{#if:|โยรูบา|โยรูบา}}: {{t|yo|Laosi}}
* {{#if:|จ้วง|จ้วง}}: {{t|za|Laujvoh}}
* {{#if:|ไทใหญ่|ไทใหญ่}}: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
{{trans-bottom}}
gd1ay3zc3etmmjwmyq8nhabjxhvhy97
5723237
5723236
2026-05-20T03:12:37Z
OctraBot
3198
5723237
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* อับคาเซีย: {{t|ab|Лаос}}
* อาฟรีกานส์: {{t|af|Laos}}
* แอลเบเนีย: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* อัมฮารา: {{t|am|ላዎስ}}
* อาหรับ: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อารามายา:
*: อารามายาใหม่แบบอัสซีเรีย: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* อาร์มีเนีย: {{t+|hy|Լաոս}}
* อัสสัม: {{t|as|লাউচ}}
* อัสตูเรียส: {{t+|ast|Laos}}
* อาเซอร์ไบจาน: {{t+|az|Laos}}
* แบชเคียร์: {{t|ba|Лаос}}
* เบลารุส: {{t|be|Лао́с|m}}
* เบงกอล: {{t+|bn|লাওস}}
* เบรอตง: {{t|br|Laos}}
* บัลแกเรีย: {{t+|bg|Лао́с|m}}
* พม่า: {{t|my|လာအို}}
* กาตาลา: {{t+|ca|Laos|m}}
* จีน:
*: จีนกลาง: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|ไต้หวัน}}
* ตาตาร์แบบไครเมีย: {{t|crh|Laos}}
*: ตาตาร์แบบโดบรูจา: {{t|crh|Law}}
* เช็ก: {{t+|cs|Laos|m}}
* เดนมาร์ก: {{t|da|Laos|n}}
* มัลดีฟส์: {{t|dv|ލާއޯސް}}
* ดัตช์: {{t+|nl|Laos|n}}
* เอสเปรันโต: {{t+|eo|Laoso}}
* เอสโตเนีย: {{t+|et|Laos}}
* Farefare: {{t|gur|Laogo}}
* แฟโร: {{t|fo|Laos|n}}
* ฟินแลนด์: {{t+|fi|Laos}}
* ฝรั่งเศส: {{t+|fr|Laos|m}}
* จอร์เจีย: {{t+|ka|ლაოსი}}
* เยอรมัน: {{t+|de|Laos|n}}
* กรีก: {{t+|el|Λάος|n}}
* เฮาซา: {{t|ha|Laos}}
* ฮีบรู: {{t|he|לָאוֹס|f|tr=laos}}
* ฮินดี: {{t+|hi|लाओस|m}}
* ม้ง:
*: ม้งเขียว: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: ม้งขาว: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* ฮังการี: {{t+|hu|Laosz}}
* ไอซ์แลนด์: {{t+|is|Laos|n}}
* อีโด: {{t+|io|Laos}}
* อินโดนีเซีย: {{t+|id|Laos}}
* อินเทอร์ลิงกวา: {{t|ia|Laos}}
* ไอริช: {{t|ga|Laos|m}}
* อิตาลี: {{t+|it|Laos|m}}
* ญี่ปุ่น: {{t+|ja|ラオス|tr=Raosu}}
* คาซัค: {{t+|kk|Лаос}}
* เขมร: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* เกาหลี: {{t+|ko|^라오스}}
* เคิร์ด:
*: เคิร์ดเหนือ: {{t+|kmr|Laos}}
* คีร์กีซ: {{t+|ky|Лаос}}
* ลาว: {{t+|lo|ລາວ}}
* ลัตเวีย: {{t+|lv|Laosa|f}}
* ลิทัวเนีย: {{t+|lt|Laosas|m}}
* ไทลื้อ: {{t|khb|ᦟᦱᧁ}}
* มาซิโดเนีย: {{t+|mk|Лаос|m}}
* มาเลเซีย: {{t+|ms|Laos}}
* มอลตา: {{t+|mt|Laos}}
* มาวรี: {{t+|mi|Rāoho}}
* มองโกเลีย:
*: อักษรซีริลลิก: {{t+|mn|Лаос}}
*: อักษรมองโกเลีย: {{t|mn|ᠯᠠᠣᠰ}}
* นาวาโฮ: {{t|nv|Lááʼos}}
* เนปาล: {{t|ne|लाओस}}
* นอร์มัน: {{t|nrf|Laos|m}}
* นอร์เวย์:
*: นอร์เวย์แบบบุ๊กมอล: {{t+|nb|Laos|n}}
*: นอร์เวย์แบบนือนอสก์: {{t+|nn|Laos|n}}
* ปาทาน: {{t|ps|لاوس|m|tr=lāwos}}
* เปอร์เซีย:
*: ดารี: {{t|prs|لَائوس}}
*: เปอร์เซียแบบอิหร่าน: {{t+|fa-ira|لائوس}}
* โปแลนด์: {{t+|pl|Laos|m-in}}
* โปรตุเกส: {{t+|pt|Laos}}
* โรมาเนีย: {{t+|ro|Laos|n}}
* รัสเซีย: {{t+|ru|Лао́с|m}}
* สันถาลี: {{t|sat|ᱞᱟᱣᱚᱥ}}
* สกอต: {{t|sco|Laos}}
* เซอร์โบ-โครเอเชีย:
*: อักษรซีริลลิก: {{t|sh|Ла̏ос|m}}
*: อักษรละติน: {{t|sh|Lȁos|m}}
* สิงหล: {{t|si|ලාඕසය}}
* สโลวัก: {{t+|sk|Laos|m}}
* สโลวีเนีย: {{t+|sl|Laos|m}}
* สเปน: {{t+|es|Laos}}
* สวาฮีลี: {{t|sw|Laos}}
* สวีเดน: {{t+|sv|Laos|n}}
* ตากาล็อก: {{t+|tl|Laos}}
* ทาจิก: {{t+|tg|Лаос}}
* ตาตาร์: {{t|tt|Лаос}}
* เตลูกู: {{t+|te|లావోస్}}
* เตตุน: {{t|tet|Laos}}
* อังกฤษ: {{t+|en|Laos}}
* คำเมือง: {{t|nod|ᩃᩣ᩠ᩅ}}
* ทิเบต: {{t|bo|ལའོ་སུ}}
* ตุรกี: {{t+|tr|Laos}}
* เติร์กเมน: {{t|tk|Laos}}
* ยูเครน: {{t+|uk|Лао́с|m}}
* อูรดู: {{t|ur|لاؤس|m}}
* อุยกูร์: {{t|ug|لائوس}}
* อุซเบก: {{t+|uz|Laos}}
* เวียดนาม: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* ยิดดิช: {{t|yi|לאַאָס|n}}
* โยรูบา: {{t|yo|Laosi}}
* จ้วง: {{t|za|Laujvoh}}
* ไทใหญ่: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
{{trans-bottom}}
kv2a1l44i9ugvstn25407q263bidj63
5723240
5723237
2026-05-20T03:22:56Z
OctraBot
3198
5723240
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* อับคาเซีย: {{t|ab|Лаос}}
* อาฟรีกานส์: {{t|af|Laos}}
* แอลเบเนีย: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* อัมฮารา: {{t|am|ላዎስ}}
* อาหรับ: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อารามายา:
*: อารามายาใหม่แบบอัสซีเรีย: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* อาร์มีเนีย: {{t+|hy|Լաոս}}
* อัสสัม: {{t|as|লাউচ}}
* อัสตูเรียส: {{t+|ast|Laos}}
* อาเซอร์ไบจาน: {{t+|az|Laos}}
* แบชเคียร์: {{t|ba|Лаос}}
* เบลารุส: {{t|be|Лао́с|m}}
* เบงกอล: {{t+|bn|লাওস}}
* เบรอตง: {{t|br|Laos}}
* บัลแกเรีย: {{t+|bg|Лао́с|m}}
* พม่า: {{t|my|လာအို}}
* กาตาลา: {{t+|ca|Laos|m}}
* จีน:
*: จีนกลาง: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|ไต้หวัน}}
* ตาตาร์แบบไครเมีย: {{t|crh|Laos}}
*: ตาตาร์แบบโดบรูจา: {{t|crh|Law}}
* เช็ก: {{t+|cs|Laos|m}}
* เดนมาร์ก: {{t|da|Laos|n}}
* มัลดีฟส์: {{t|dv|ލާއޯސް}}
* ดัตช์: {{t+|nl|Laos|n}}
* เอสเปรันโต: {{t+|eo|Laoso}}
* เอสโตเนีย: {{t+|et|Laos}}
* ฟราฟรา: {{t|gur|Laogo}}
* แฟโร: {{t|fo|Laos|n}}
* ฟินแลนด์: {{t+|fi|Laos}}
* ฝรั่งเศส: {{t+|fr|Laos|m}}
* จอร์เจีย: {{t+|ka|ლაოსი}}
* เยอรมัน: {{t+|de|Laos|n}}
* กรีก: {{t+|el|Λάος|n}}
* เฮาซา: {{t|ha|Laos}}
* ฮีบรู: {{t|he|לָאוֹס|f|tr=laos}}
* ฮินดี: {{t+|hi|लाओस|m}}
* ม้ง:
*: ม้งเขียว: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: ม้งขาว: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* ฮังการี: {{t+|hu|Laosz}}
* ไอซ์แลนด์: {{t+|is|Laos|n}}
* อีโด: {{t+|io|Laos}}
* อินโดนีเซีย: {{t+|id|Laos}}
* อินเทอร์ลิงกวา: {{t|ia|Laos}}
* ไอริช: {{t|ga|Laos|m}}
* อิตาลี: {{t+|it|Laos|m}}
* ญี่ปุ่น: {{t+|ja|ラオス|tr=Raosu}}
* คาซัค: {{t+|kk|Лаос}}
* เขมร: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* เกาหลี: {{t+|ko|^라오스}}
* เคิร์ด:
*: เคิร์ดเหนือ: {{t+|kmr|Laos}}
* คีร์กีซ: {{t+|ky|Лаос}}
* ลาว: {{t+|lo|ລາວ}}
* ลัตเวีย: {{t+|lv|Laosa|f}}
* ลิทัวเนีย: {{t+|lt|Laosas|m}}
* ไทลื้อ: {{t|khb|ᦟᦱᧁ}}
* มาซิโดเนีย: {{t+|mk|Лаос|m}}
* มาเลเซีย: {{t+|ms|Laos}}
* มอลตา: {{t+|mt|Laos}}
* มาวรี: {{t+|mi|Rāoho}}
* มองโกเลีย:
*: อักษรซีริลลิก: {{t+|mn|Лаос}}
*: อักษรมองโกเลีย: {{t|mn|ᠯᠠᠣᠰ}}
* นาวาโฮ: {{t|nv|Lááʼos}}
* เนปาล: {{t|ne|लाओस}}
* นอร์มัน: {{t|nrf|Laos|m}}
* นอร์เวย์:
*: นอร์เวย์แบบบุ๊กมอล: {{t+|nb|Laos|n}}
*: นอร์เวย์แบบนือนอสก์: {{t+|nn|Laos|n}}
* ปาทาน: {{t|ps|لاوس|m|tr=lāwos}}
* เปอร์เซีย:
*: ดารี: {{t|prs|لَائوس}}
*: เปอร์เซียแบบอิหร่าน: {{t+|fa-ira|لائوس}}
* โปแลนด์: {{t+|pl|Laos|m-in}}
* โปรตุเกส: {{t+|pt|Laos}}
* โรมาเนีย: {{t+|ro|Laos|n}}
* รัสเซีย: {{t+|ru|Лао́с|m}}
* สันถาลี: {{t|sat|ᱞᱟᱣᱚᱥ}}
* สกอต: {{t|sco|Laos}}
* เซอร์โบ-โครเอเชีย:
*: อักษรซีริลลิก: {{t|sh|Ла̏ос|m}}
*: อักษรละติน: {{t|sh|Lȁos|m}}
* สิงหล: {{t|si|ලාඕසය}}
* สโลวัก: {{t+|sk|Laos|m}}
* สโลวีเนีย: {{t+|sl|Laos|m}}
* สเปน: {{t+|es|Laos}}
* สวาฮีลี: {{t|sw|Laos}}
* สวีเดน: {{t+|sv|Laos|n}}
* ตากาล็อก: {{t+|tl|Laos}}
* ทาจิก: {{t+|tg|Лаос}}
* ตาตาร์: {{t|tt|Лаос}}
* เตลูกู: {{t+|te|లావోస్}}
* เตตุน: {{t|tet|Laos}}
* อังกฤษ: {{t+|en|Laos}}
* คำเมือง: {{t|nod|ᩃᩣ᩠ᩅ}}
* ทิเบต: {{t|bo|ལའོ་སུ}}
* ตุรกี: {{t+|tr|Laos}}
* เติร์กเมน: {{t|tk|Laos}}
* ยูเครน: {{t+|uk|Лао́с|m}}
* อูรดู: {{t|ur|لاؤس|m}}
* อุยกูร์: {{t|ug|لائوس}}
* อุซเบก: {{t+|uz|Laos}}
* เวียดนาม: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* ยิดดิช: {{t|yi|לאַאָס|n}}
* โยรูบา: {{t|yo|Laosi}}
* จ้วง: {{t|za|Laujvoh}}
* ไทใหญ่: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
{{trans-bottom}}
9vf2gbmv6nsh869u3gr6anzu8q8wf7b
5723243
5723240
2026-05-20T03:26:51Z
OctraBot
3198
5723243
wikitext
text/x-wiki
{{trans-top|id=Q819|ประเทศในเอเชียตะวันออกเฉียงใต้}}
* กรีก: {{t+|el|Λάος|n}}
* กาตาลา: {{t+|ca|Laos|m}}
* เกาหลี: {{t+|ko|^라오스}}
* เขมร: {{t+|km|លាវ}}, {{t+|km|ឡាវ}}
* คาซัค: {{t+|kk|Лаос}}
* คำเมือง: {{t|nod|ᩃᩣ᩠ᩅ}}
* คีร์กีซ: {{t+|ky|Лаос}}
* เคิร์ด:
*: เคิร์ดเหนือ: {{t+|kmr|Laos}}
* จ้วง: {{t|za|Laujvoh}}
* จอร์เจีย: {{t+|ka|ლაოსი}}
* จีน:
*: จีนกลาง: {{t+|cmn|老撾}}, {{t+|cmn|寮國}} {{qualifier|ไต้หวัน}}
* เช็ก: {{t+|cs|Laos|m}}
* เซอร์โบ-โครเอเชีย:
*: อักษรซีริลลิก: {{t|sh|Ла̏ос|m}}
*: อักษรละติน: {{t|sh|Lȁos|m}}
* ญี่ปุ่น: {{t+|ja|ラオス|tr=Raosu}}
* ดัตช์: {{t+|nl|Laos|n}}
* เดนมาร์ก: {{t|da|Laos|n}}
* ตากาล็อก: {{t+|tl|Laos}}
* ตาตาร์: {{t|tt|Лаос}}
* ตาตาร์แบบไครเมีย: {{t|crh|Laos}}
*: ตาตาร์แบบโดบรูจา: {{t|crh|Law}}
* ตุรกี: {{t+|tr|Laos}}
* เตตุน: {{t|tet|Laos}}
* เตลูกู: {{t+|te|లావోస్}}
* เติร์กเมน: {{t|tk|Laos}}
* ทาจิก: {{t+|tg|Лаос}}
* ทิเบต: {{t|bo|ལའོ་སུ}}
* ไทลื้อ: {{t|khb|ᦟᦱᧁ}}
* ไทใหญ่: {{t|shn|လၢဝ်း}}, {{t|shn|ယူၼ်း}}
* นอร์มัน: {{t|nrf|Laos|m}}
* นอร์เวย์:
*: นอร์เวย์แบบบุ๊กมอล: {{t+|nb|Laos|n}}
*: นอร์เวย์แบบนือนอสก์: {{t+|nn|Laos|n}}
* นาวาโฮ: {{t|nv|Lááʼos}}
* เนปาล: {{t|ne|लाओस}}
* บัลแกเรีย: {{t+|bg|Лао́с|m}}
* เบงกอล: {{t+|bn|লাওস}}
* เบรอตง: {{t|br|Laos}}
* เบลารุส: {{t|be|Лао́с|m}}
* แบชเคียร์: {{t|ba|Лаос}}
* ปาทาน: {{t|ps|لاوس|m|tr=lāwos}}
* เปอร์เซีย:
*: ดารี: {{t|prs|لَائوس}}
*: เปอร์เซียแบบอิหร่าน: {{t+|fa-ira|لائوس}}
* โปรตุเกส: {{t+|pt|Laos}}
* โปแลนด์: {{t+|pl|Laos|m-in}}
* ฝรั่งเศส: {{t+|fr|Laos|m}}
* พม่า: {{t|my|လာအို}}
* ฟราฟรา: {{t|gur|Laogo}}
* ฟินแลนด์: {{t+|fi|Laos}}
* แฟโร: {{t|fo|Laos|n}}
* ม้ง:
*: ม้งเขียว: {{t|hnj|Los Tsuas}}, {{t|hnj|Nplog Teb}} {{qualifier|ไม่ทางการ}}
*: ม้งขาว: {{t|mww|Los Tsuas}}, {{t|mww|Nplog Teb}} {{qualifier|ไม่ทางการ}}
* มองโกเลีย:
*: อักษรซีริลลิก: {{t+|mn|Лаос}}
*: อักษรมองโกเลีย: {{t|mn|ᠯᠠᠣᠰ}}
* มอลตา: {{t+|mt|Laos}}
* มัลดีฟส์: {{t|dv|ލާއޯސް}}
* มาซิโดเนีย: {{t+|mk|Лаос|m}}
* มาเลเซีย: {{t+|ms|Laos}}
* มาวรี: {{t+|mi|Rāoho}}
* ยิดดิช: {{t|yi|לאַאָס|n}}
* ยูเครน: {{t+|uk|Лао́с|m}}
* เยอรมัน: {{t+|de|Laos|n}}
* โยรูบา: {{t|yo|Laosi}}
* รัสเซีย: {{t+|ru|Лао́с|m}}
* โรมาเนีย: {{t+|ro|Laos|n}}
* ลัตเวีย: {{t+|lv|Laosa|f}}
* ลาว: {{t+|lo|ລາວ}}
* ลิทัวเนีย: {{t+|lt|Laosas|m}}
* เวียดนาม: {{t+|vi|Lào}}, {{t|vi|[[nước]] [[Lào]]}}
* สกอต: {{t|sco|Laos}}
* สเปน: {{t+|es|Laos}}
* สโลวัก: {{t+|sk|Laos|m}}
* สโลวีเนีย: {{t+|sl|Laos|m}}
* สวาฮีลี: {{t|sw|Laos}}
* สวีเดน: {{t+|sv|Laos|n}}
* สันถาลี: {{t|sat|ᱞᱟᱣᱚᱥ}}
* สิงหล: {{t|si|ලාඕසය}}
* อังกฤษ: {{t+|en|Laos}}
* อับคาเซีย: {{t|ab|Лаос}}
* อัมฮารา: {{t|am|ላዎስ}}
* อัสตูเรียส: {{t+|ast|Laos}}
* อัสสัม: {{t|as|লাউচ}}
* อาเซอร์ไบจาน: {{t+|az|Laos}}
* อาฟรีกานส์: {{t|af|Laos}}
* อาร์มีเนีย: {{t+|hy|Լաոս}}
* อารามายา:
*: อารามายาใหม่แบบอัสซีเรีย: {{t|aii|ܠܵܘܣ|f|tr=laws}}
* อาหรับ: {{t|ar|لَاوْس|f}}, {{t|ar|لَاوُس|f|tr=lāwos}}
* อิตาลี: {{t+|it|Laos|m}}
* อินโดนีเซีย: {{t+|id|Laos}}
* อินเทอร์ลิงกวา: {{t|ia|Laos}}
* อีโด: {{t+|io|Laos}}
* อุซเบก: {{t+|uz|Laos}}
* อุยกูร์: {{t|ug|لائوس}}
* อูรดู: {{t|ur|لاؤس|m}}
* เอสโตเนีย: {{t+|et|Laos}}
* เอสเปรันโต: {{t+|eo|Laoso}}
* แอลเบเนีย: {{t|sq|Laos|m}} {{qualifier|ไม่ชี้เฉพาะ}}, {{t+|sq|Laosi|m}} {{qualifier|ชี้เฉพาะ}}
* ไอซ์แลนด์: {{t+|is|Laos|n}}
* ไอริช: {{t|ga|Laos|m}}
* ฮังการี: {{t+|hu|Laosz}}
* ฮินดี: {{t+|hi|लाओस|m}}
* ฮีบรู: {{t|he|לָאוֹס|f|tr=laos}}
* เฮาซา: {{t|ha|Laos}}
{{trans-bottom}}
eyz27qu10s8am3hbphwh6sz9ol3708i
ឡាវ
0
2331406
5723252
2026-05-20T03:37:37Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723252
wikitext
text/x-wiki
== ภาษาเขมร ==
{{wp|km:}}
=== รูปแบบอื่น ===
* {{l|km|លាវ}}
=== การออกเสียง ===
{{km-IPA}}
=== คำวิสามานยนาม ===
{{km-proper noun}}
# {{tcl|km|Laos|id=Q819}}
# [[ภาษาลาว]]
#: {{km-x|ភាសា ឡាវ|Lao (language)}}
===Noun===
{{km-noun}}
# [[ชาวลาว]]
#: {{km-x|ជាតិ ឡាវ|Laos (person)}}
{{C|km|ชื่อภาษา}}
gwfl45sb3yyefow1cwevia9yvct6vgw
5723253
5723252
2026-05-20T03:38:18Z
OctraBot
3198
/* คำวิสามานยนาม */
5723253
wikitext
text/x-wiki
== ภาษาเขมร ==
{{wp|km:}}
=== รูปแบบอื่น ===
* {{l|km|លាវ}}
=== การออกเสียง ===
{{km-IPA}}
=== คำวิสามานยนาม ===
{{km-proper noun}}
# {{tcl|km|ลาว|id=Q819}}
# [[ภาษาลาว]]
#: {{km-x|ភាសា ឡាវ|Lao (language)}}
===Noun===
{{km-noun}}
# [[ชาวลาว]]
#: {{km-x|ជាតិ ឡាវ|Laos (person)}}
{{C|km|ชื่อภาษา}}
1j761uezdpvoy4vum0t0efh4aay9nyy
Laujvoh
0
2331407
5723254
2026-05-20T03:41:29Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723254
wikitext
text/x-wiki
== ภาษาจ้วง ==
=== รากศัพท์ ===
{{bor+|za|cmn|-}} {{zh-l|老撾}}
=== การออกเสียง ===
* {{za-pron}}
=== คำวิสามานยนาม ===
{{za-head|proper noun}}
# {{tcl|za|ลาว|id=Q819}}
3p57n2jolpnj5m755oa5s61cpnfgvjd
Raosu
0
2331408
5723256
2026-05-20T03:43:03Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723256
wikitext
text/x-wiki
== ภาษาญี่ปุ่น ==
=== การถอดเป็นอักษรโรมัน ===
{{ja-romaji}}
# {{ja-romanization of|ラオス}}
siu9qkgxompn1h7j92943fqm06vn24q
羅宇
0
2331409
5723257
2026-05-20T03:44:42Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723257
wikitext
text/x-wiki
== ภาษาญี่ปุ่น ==
{{ja-kanjitab|ら|おす|yomi=irr}}
=== รากศัพท์ ===
รูปสะกดคันจิที่เป็นตัวอย่างหนึ่งของ {{ateji|sort=らおす}}, จาก{{bor|ja|zh|sort=らおす|羅宇}}
=== คำวิสามานยนาม ===
{{ja-pos|proper|らおす}}
# {{dated spelling of|ja|ラオス|tr=Raosu|t={{place|ja|t=ลาว|ประเทศ}}}}
=== อ้างอิง ===
* {{R:Kanjipedia Kotoba|0007017200|〈羅宇〉}}
gyj5elg5m5amz2iv6cqee7htlzk2j83
లావోస్
0
2331410
5723258
2026-05-20T03:45:50Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723258
wikitext
text/x-wiki
== ภาษาเตลูกู ==
=== คำนาม ===
{{te-noun}}
# {{tcl|te|ลาว|id=Q819}}
3erq8guserbpkit028o6wizfpkisgrr
ལའོ་སུ
0
2331411
5723259
2026-05-20T03:46:08Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723259
wikitext
text/x-wiki
== ภาษาทิเบต ==
=== คำวิสามานยนาม ===
{{head|bo|คำวิสามานยนาม}}
# {{tcl|bo|ลาว|id=Q819}}
gbtt6skub8p7wzlarhy37gnbmr6gf6w
Lááʼos
0
2331412
5723261
2026-05-20T03:52:11Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723261
wikitext
text/x-wiki
== ภาษานาวาโฮ ==
{{wp|nv:}}
=== คำวิสามานยนาม ===
{{head|nv|คำวิสามานยนาม}}
# {{tcl|nv|ลาว|id=Q819}}
c6vcorf80xgnssmoxykyt3bcgmtupen
লাওস
0
2331413
5723263
2026-05-20T03:53:37Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723263
wikitext
text/x-wiki
== ภาษาเบงกอล ==
{{wp|bn:}}
=== การออกเสียง ===
* {{audio|bn|LL-Q9610 (ben)-Titodutta-লাওস.wav}}
=== คำวิสามานยนาม ===
{{head|bn|คำวิสามานยนาม}}
# {{tcl|bn|ลาว|id=Q819}}
m570xg0agpilg2k07k1f4hccpbrdcvi
فأر
0
2331414
5723285
2026-05-20T05:09:09Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723285
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== รากศัพท์ ===
จาก{{inh|ar|sem-pro|*paʔr-}}
=== การออกเสียง ===
{{ar-pr|فَأْر}}
=== คำนาม ===
{{ar-coll-noun|فَأْر|pl=فِئْرَان|sing=+}}
# [[หนู]]
#: {{syn|ar|فَرْنِب|جُرَذ}}
# [[ฝูง]]หนู
==== การผันรูป ====
{{ar-decl-coll-noun|فَأْر|pl=فِئْرَان}}
==== คำสืบทอด ====
* {{desc|afb|فار|tr=far}}
* {{desc|mt|far}}
* {{desc|ary|فار|tr=fār}}
* {{desc|ajp|فار|tr=fār}}
{{C|ar|Rodents}}
mzw29f971tc1aj83iexs0lt2uxi4851
فئران
0
2331415
5723286
2026-05-20T05:10:09Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723286
wikitext
text/x-wiki
== ภาษาอาหรับ ==
=== การออกเสียง ===
{{ar-pr|فِئْرَان}}
=== คำนาม ===
{{ar-head|nounf|فِئْرَان|m-p}}
# {{plural of|ar|فَأْر}}, [[หนู]]
==== การผันรูป ====
{{ar-decl-noun|-|pl=فِئْرَان|number=pl}}
=== อ้างอิง ===
* {{R:ar:Baranov}}
* {{R:ar:Lane}}
* {{R:ar:Wehr-3}}
e645vq4vt63efhdmuijavizi0675y7v
แม่แบบ:ar-head
10
2331416
5723287
2026-05-20T05:10:21Z
OctraBot
3198
นำเข้าจาก enwikt
5723287
wikitext
text/x-wiki
{{#invoke:ar-headword|show}}<!--
--><noinclude>{{documentation}}</noinclude>
a5ufxtgvx8d52i2dof9ho3zn8ogqogn
Laosas
0
2331417
5723291
2026-05-20T06:53:53Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723291
wikitext
text/x-wiki
== ภาษาลิทัวเนีย ==
{{wp|lt:}}
[[ไฟล์:LocationLaos.png|thumb|Laosas]]
=== การออกเสียง ===
{{lt-pr|Laòsas}}
=== คำวิสามานยนาม ===
{{lt-proper noun|m}}
# {{tcl|lt|ลาว|id=Q819}}
==== การผันรูป ====
{{lt-noun-m-as-unc|Laos}}
==== คำพ้องความ ====
* {{l|lt|Laoso Liáudies Demokrãtinė Respùblika}}
==== คำเกี่ยวข้อง ====
* {{l|lt|laosietis|g=m}}, {{l|lt|laosietė|g=f}}
0ug1poreha50b6460lodjiavixdezl0
Los Tsuas
0
2331418
5723292
2026-05-20T06:55:02Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5723292
wikitext
text/x-wiki
== ภาษาม้งขาว ==
=== รากศัพท์ ===
จาก{{bor|mww|cmn|-}} {{zh-l|老撾|tr=Lǎozhuā|t=ลาว}}
=== การออกเสียง ===
{{mww-pron}}
=== คำวิสามานยนาม ===
{{head|mww|คำวิสามานยนาม}}
# {{tcl|mww|ลาว|id=Q819}}
=== คำคุณศัพท์ ===
{{head|mww|คำคุณศัพท์}}
# ที่เกี่ยวกับ[[ลาว]]
== ภาษาม้งเขียว ==
=== รากศัพท์ ===
จาก{{bor|hnj|cmn|-}} {{zh-l|老撾|tr=Lǎozhuā|t=ลาว}}
=== การออกเสียง ===
* {{IPA|hnj|/lɒ˩.t͡ʂu̯ə˩/}}
=== คำวิสามานยนาม ===
{{head|hnj|คำวิสามานยนาม}}
# {{tcl|hnj|ลาว|id=Q819}}
=== คำคุณศัพท์ ===
{{head|hnj|คำคุณศัพท์}}
# ที่เกี่ยวกับ[[ลาว]]
4b9z5sjgegq4a2gg0fkqgcuzl9d21xc
ލާއޯސް
0
2331419
5723293
2026-05-20T06:55:39Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723293
wikitext
text/x-wiki
== ภาษามัลดีฟส์ ==
=== รากศัพท์ ===
{{bor+|dv|en|Laos}}
=== การออกเสียง ===
* {{IPA|dv|/laː.oːs̺/|[laː.oːs̺]}}
* {{hyph|dv|ލާ|އޯސް}}
=== คำวิสามานยนาม ===
{{wp|dv:}}
{{head|dv|คำวิสามานยนาม}}
# {{tcl|dv|ลาว|id=Q819}}
3x5kaexkmfazquvtw9e2hgesd06bqts
Rāoho
0
2331420
5723294
2026-05-20T06:55:52Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723294
wikitext
text/x-wiki
== ภาษามาวรี ==
=== คำวิสามานยนาม ===
{{mi-proper noun}}
# {{tcl|mi|ลาว|id=Q819}}
hvur8y9d4f87cln9eixkq9o22jkv5ja
Laosi
0
2331421
5723295
2026-05-20T06:56:17Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723295
wikitext
text/x-wiki
== ภาษาอังกฤษ ==
=== คำวิสามานยนาม ===
{{en-proper noun}}
# {{alternative spelling of|en|Laozi}}
=== คำสลับอักษร ===
* {{anagrams|en|a=ailos|Isola|Laois|sialo-}}
{{C|en|Individuals}}
mp854xd5s7sltzzzmgb55m15901dyyq
Laosa
0
2331422
5723296
2026-05-20T06:57:15Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด เรียงลำดับหัวเรื่องภาษา
5723296
wikitext
text/x-wiki
== ภาษาลัตเวีย ==
{{wp|lv:}}
=== คำวิสามานยนาม ===
{{lv-proper noun|f|4th}}
# {{tcl|lv|ลาว|id=Q819}}
==== การผันรูป ====
{{lv-decl-noun|Laos|a|4th|no-pl||||proper}}
== ภาษาฮาวาย ==
=== รากศัพท์ ===
{{bor+|haw|en|Laos}}
=== การออกเสียง ===
* {{haw-IPA}}
=== คำวิสามานยนาม ===
{{head|haw|คำวิสามานยนาม}}
# {{tcl|haw|ลาว|id=Q819}}
# [[ชาวลาว]]
=== คำกริยา ===
{{head|haw|คำกริยา}}
# {{lb|haw|stative}} [[เป็น]]ลาว
#: {{uxi|haw|ʻōlelo '''Laosa'''|'''Lao''' language}}
=== อ้างอิง ===
* {{R:haw:Pukui:1986}}
ej1pmqsnd8eqvhsqjjehmg71a0f37wr
5723298
5723296
2026-05-20T06:58:06Z
OctraBot
3198
/* คำกริยา */
5723298
wikitext
text/x-wiki
== ภาษาลัตเวีย ==
{{wp|lv:}}
=== คำวิสามานยนาม ===
{{lv-proper noun|f|4th}}
# {{tcl|lv|ลาว|id=Q819}}
==== การผันรูป ====
{{lv-decl-noun|Laos|a|4th|no-pl||||proper}}
== ภาษาฮาวาย ==
=== รากศัพท์ ===
{{bor+|haw|en|Laos}}
=== การออกเสียง ===
* {{haw-IPA}}
=== คำวิสามานยนาม ===
{{head|haw|คำวิสามานยนาม}}
# {{tcl|haw|ลาว|id=Q819}}
# [[ชาวลาว]]
=== คำกริยา ===
{{head|haw|คำกริยา}}
# {{lb|haw|stative}} คือ/เป็นลาว
#: {{uxi|haw|ʻōlelo '''Laosa'''|'''Lao''' language}}
=== อ้างอิง ===
* {{R:haw:Pukui:1986}}
3o0030xaiq4cggekkbc930d38kmz71z
หมวดหมู่:ศัพท์ภาษาเวียดนามที่ยืมมาจากภาษาลาว
14
2331423
5723300
2026-05-20T06:59:16Z
OctraBot
3198
สร้างหมวดหมู่อัตโนมัติ
5723300
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Լաոս
0
2331424
5723301
2026-05-20T06:59:48Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723301
wikitext
text/x-wiki
== ภาษาอาร์มีเนีย ==
=== การออกเสียง ===
{{hy-IPA}}
=== คำวิสามานยนาม ===
{{wp|hy:}}
{{hy-h|propn}}
# {{tcl|hy|ลาว|id=Q819}}
==== การผันรูป ====
{{hy-noun-ի-ներ|unc=on}}
r58lse003tkyk23ujp5q7nkdakxdmzl
ܠܘܣ
0
2331425
5723302
2026-05-20T07:00:32Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723302
wikitext
text/x-wiki
== ภาษาอารามายาใหม่แบบอัสซีเรีย ==
[[ไฟล์:LocationLaos.png|thumb|{{lang|aii|ܠܘܣ}}]]
[[ไฟล์:Flag of Laos.svg|thumb|{{lang|aii|ܐܬܐ ܕܠܘܣ}}]]
=== รูปแบบอื่น ===
{{alt|aii|ܠܵܐܘܣ}}
=== รากศัพท์ ===
{{intnat|aii}} จาก{{bor|aii|fr|Laos}}
=== การออกเสียง ===
* {{IPA|aii|[laws]|a=มาตรฐาน}}
=== คำวิสามานยนาม ===
{{aii-proper-noun|ܠܵܘܣ|f}}
# {{tcl|aii|ลาว|id=Q819}}
==== ลูกคำ ====
* {{l|aii|ܠܵܘܣܵܝܵܐ|t=ที่เกี่ยวกับลาว}}
ler44bmhdgmrey97em5cj451jah7303
لائوس
0
2331426
5723303
2026-05-20T07:01:04Z
OctraBot
3198
นำเข้าจาก enwikt เก็บกวาด
5723303
wikitext
text/x-wiki
== ภาษาเปอร์เซีย ==
{{wp|fa:}}
=== การออกเสียง ===
{{fa-IPA|ir=lā`'ūs|dari=lā`'ōs}}
=== คำวิสามานยนาม ===
{{fa-regional|{{PAGENAME}}|{{PAGENAME}}|Лаос}}
{{fa-proper noun|tr=lâ'us}}
# {{tcl|fa|ลาว|id=Q819}}
m91zmqyxs4rfl3klqb55d3rsxh8pfo1
แม่แบบ:vi-type
10
2331427
5723306
2026-05-20T07:35:18Z
OctraBot
3198
นำเข้าจาก enwikt
5723306
wikitext
text/x-wiki
<includeonly>({{m|vi|{{{1}}}}} ~{{#if:{{{2|}}}|, {{m|vi|{{{2|}}}}} ~}}{{#if:{{{3|}}}|, {{m|vi|{{{3|}}}}} ~}})</includeonly><noinclude>{{documentation}}</noinclude>
eswuja732bc18kjobttku3zo5ubd45s
คุยกับผู้ใช้:Peterxy12
3
2331428
5723308
2026-05-20T10:44:56Z
Neriah
12116
Neriah ย้ายหน้า [[คุยกับผู้ใช้:Peterxy12]] ไปยัง [[คุยกับผู้ใช้:Peterxy]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Peterxy12|Peterxy12]]" เป็น "[[Special:CentralAuth/Peterxy|Peterxy]]"
5723308
wikitext
text/x-wiki
#เปลี่ยนทาง [[คุยกับผู้ใช้:Peterxy]]
ngtfhkumasfc8xo0mo1paejpp5p5vwv