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.22
case-sensitive
สื่อ
พิเศษ
พูดคุย
ผู้ใช้
คุยกับผู้ใช้
วิกิพจนานุกรม
คุยเรื่องวิกิพจนานุกรม
ไฟล์
คุยเรื่องไฟล์
มีเดียวิกิ
คุยเรื่องมีเดียวิกิ
แม่แบบ
คุยเรื่องแม่แบบ
วิธีใช้
คุยเรื่องวิธีใช้
หมวดหมู่
คุยเรื่องหมวดหมู่
ภาคผนวก
คุยเรื่องภาคผนวก
ดัชนี
คุยเรื่องดัชนี
สัมผัส
คุยเรื่องสัมผัส
อรรถาภิธาน
คุยเรื่องอรรถาภิธาน
TimedText
TimedText talk
มอดูล
คุยเรื่องมอดูล
Event
Event talk
รอ
0
10239
5771095
5375353
2026-10-03T01:38:58Z
Ai Ku Karng
17824
5771095
wikitext
text/x-wiki
{{also/auto}}
== ภาษาไทย ==
=== รากศัพท์ 1 ===
==== การออกเสียง ====
{{th-pron}}
==== คำนาม ====
{{th-noun}}
# [[หลัก]][[ปัก]][[กัน]][[กระแส]][[น้ำ]]
#: {{ux|th|ทำรอกันตลิ่งพัง}}
=== รากศัพท์ 2 ===
==== การออกเสียง ====
{{th-pron}}
==== คำกริยา ====
{{th-verb}}
# [[คอย]]
#: {{syn|th|[[รอ]][[คอย]]|คอยท่า|[[รอ]][[ท่า]]}}
#: {{ux|th|รอรถ}}
#: {{ux|th|รอเรือ}}
# [[ยับยั้ง]]
#: {{ux|th|รอการพิจารณาไว้ก่อน}}
#: {{ux|th|รอการลงอาญาไว้ก่อน}}
# [[เกือบ]][[จด]], [[จ่อ]]
#: {{ux|th|เอายาดมรอจมูก}}
#: {{ux|th|เอามีดรอคอ}}
===== คำแปลภาษาอื่น =====
{{trans-top|คอย}}
* เขมร: {{t+|km|ចាំ}}
* เขิน: {{t+|kkh|ᨳ᩶ᩣ}}, {{t+|kkh|ᨣᩬᨦ}}, {{t+|kkh|ᨻᩱ᩶}}, {{t+|kkh|ᨤᩭ}}
* คำเมือง: {{t+|nod|ᨳ᩶ᩣ}}
* จีน:
*: จีนกลาง: {{t+|cmn|等候|tr=děnɡhòu}}, {{t+|cmn|等|tr=děnɡ}}
* ดัตช์: {{t+|nl|wachten|tr=วัฅเตอน์}}
* ไทใหญ่: {{t+|shn|ပႂ်ႉ}}, {{t+|shn|ထႃႈ}}
* โปรตุเกส: {{t+|pt|esperar|tr=อีฌปือราร์}}
* ฝรั่งเศส: {{t+|fr|attendre|tr=อาต็องดร์}}
* เยอรมัน: {{t+|de|warten}}
* ลาว: {{t+|lo|ຖ້າ}}, {{t+|lo|ຄອຍ}}, {{t+|lo|ຄອງ}}, {{t+|lo|ລໍ}}
* เวียดนาม: {{t+|vi|đợi}}
* สเปน: {{t+|es|esperar}}
* อังกฤษ: {{t+|en|wait|tr=เวต}}
{{trans-bottom}}
=== รากศัพท์ 3 ===
==== การออกเสียง ====
{{th-pron|รอ-ออ}}
==== คำวิสามานยนาม ====
{{th-proper noun}}
# {{initialism of|th|ร้อยเอ็ด}} (จังหวัด)
===== ดูเพิ่ม =====
* [[ร.อ.]]
{{topics|th|จังหวัดในไทย}}
== ภาษาแสก ==
=== รากศัพท์ ===
{{inh+|skb|tai-pro|*rɯːwꟲ}}; ร่วมเชื้อสายกับ{{cog|th|รู้}}, {{cog|nod|ᩁᩪ᩶}}, {{cog|tts|ฮู้}}, {{cog|lo|ຮູ້}}, {{cog|khb|ᦣᦴᧉ}}, {{cog|blt|ꪭꪴ꫁}}, {{cog|shn|ႁူႉ}}, {{cog|aho|𑜍𑜥}} หรือ {{m|aho|𑜍𑜤𑜈𑜫}}, {{cog|za|rox}}
=== การออกเสียง ===
* {{IPA|skb|/rɔː¹/|[rɔː˧]|a=บ้านบะหว้า}}
=== คำกริยา ===
{{skb-verb}}
# [[รู้]]
57182dbbdps9jkc0oj7stmuv5lru02x
ผู้ใช้:Octahedron80
2
11037
5771094
5723069
2026-10-03T01:30:18Z
Octahedron80
267
/* สถานะโครงการ */
5771094
wikitext
text/x-wiki
{{mbox|text={{สี|red|มอดูลกำลังปรับปรุงอยู่ ถ้าคุณเห็น error จำนวนมาก ไม่ต้องตกใจ}}}}
{{mbox|text={{สี|orange|ขณะนี้กำลังใช้งานในฐานะ OctraBot เพื่อความสะดวกในการเก็บกวาด อาจตอบคำถามของท่านล่าช้าไปบ้าง}}}}
[[ไฟล์:I IZ SERIUS ADMNIM THIZ IZ SERIUS BIZNIS lolcat.jpg|thumb]]
{{#babel:th|en-3|zh-1|cmn-1|ja-1|pi-1|template-3|JS-3|Lua-3|python-2}}
{{User time zone|UTC+7}}
* 🏠 วิกิพจนานุกรมภาษาไทย มากยิ่งกว่า วิกิพีเดียภาษาไทย
* 🇹🇭 ประเทศไทย
* 🎓 วท.บ. (ศาสตร์คอมพิวเตอร์) และ บธ.บ. (การตลาด)
* 🤖 [[ผู้ใช้:OctraBot]] (ปัจจุบันใช้ PAWS)
* 😅 ขออภัยหากข้าพเจ้าแก้ไขหน้าใดหน้าหนึ่งมากครั้งเกินไป
== หน้าย่อย ==
{{Special:PrefixIndex/{{NAMESPACE}}:{{BASEPAGENAME}}|stripprefix=1}}
=== อื่น ๆ สำหรับทดสอบ ===
* [[มอดูล:User:Octahedron80/sandbox]]
* [[มอดูล:User:Octahedron80/sandbox2]]
* [[มอดูล:User:Octahedron80/sandbox3]]
* [[:หมวดหมู่:User:Octahedron80/1]]
* [[:หมวดหมู่:User:Octahedron80/2]]
* [[แม่แบบ:User:Octahedron80/test]]
* [[แม่แบบ:User:Octahedron80/test2]]
== สถานะโครงการ ==
* มีมาตรฐานรูปแบบการเขียนแล้ว แต่บางครั้งต้องสร้างแม่แบบของภาษาต่าง ๆ ขึ้นมาเฉพาะ เพราะไวยากรณ์ต่างกัน รูปแบบการเขียนของคำเก่า ๆ ต้องทยอยปรับปรุงไปเรื่อย ๆ
* หน้าที่ต้องการเก็บกวาดให้เป็นมาตรฐานมีจำนวนมาก เพราะคนเก่า ๆ สร้างไว้นานแล้ว
* ลิงก์เชื่อมโยงระหว่าง WT ภาษาอื่น '''ในหน้าคำศัพท์''' ไม่จำเป็นต้องมีอีกต่อไป เพราะส่วนขยาย Cognate เชื่อมโยงกันโดยอัตโนมัติ
** บางหน้ายังจำเป็น เช่น ภาษามือ คำยาวมาก หรือคำที่มีตัวอักษรที่ใช้ตั้งชื่อไม่ได้ (ชื่อไม่รองรับ/...)
* เนมสเปซอื่นนอกเหนือจากคำศัพท์ เช่น วิกิพจนานุกรม หมวดหมู่ เชื่อมโยงถึงกันได้จากวิกิสนเทศ บางชื่อมีรูปแบบที่ชัดเจนสามารถใช้บอตได้ นอกนั้นต้องเพิ่มด้วยมือ
* เนื่องจากเราใช้มอดูลลูอาตามแบบวิกิพจนานุกรมภาษาอังกฤษ ในเวลานี้เริ่มซับซ้อนมากขึ้น การอัปเดตมอดูลหนึ่งอาจกระทบมอดูลอื่น ทำให้เกิดข้อผิดพลาดเป็นลูกโซ่ ต้องพยายามทำให้บ่อยขึ้น เดี๋ยวจะตามไม่ทัน
* มีการก่อกวนประปราย จากผู้ใช้ลงทะเบียนและไม่ลงทะเบียน บางทีก็ลามมาจากวิกิพีเดีย
== ช่วยกันหน่อย ==
* [[วิกิพจนานุกรม:คำศัพท์ที่ต้องการ]]
* [[ผู้ใช้:Octahedron80/คำพิเศษ]] — คำที่สะกดด้วยตัวอักษรพิเศษ
* [[ผู้ใช้:Octahedron80/en diff]] — คำที่โครงการไทยยังไม่มีเมื่อเทียบกับอังกฤษ
* ช่วยเก็บกวาดการนิยามคำไทยรูปแบบเก่าให้เหมือนกันเป็นเอกภาพ
== คำแนะนำ ==
[[ไฟล์:Expanding ur stubs.jpg|thumb]]
* จำนวนคำในภาษาหนึ่งมีเป็นแสน ๆ ถ้าเขียนวันละคำชาตินี้ก็ไม่เสร็จ ดังนั้นควรเขียนวันละไม่ต่ำกว่า 100 คำ
* คำสั้นมักจะมีหลายภาษารวมกันอยู่มาก ทำให้ขี้เกียจแปลและจัดเรียง ถ้าเริ่มต้นสร้างคำยาวก่อน มีภาษาน้อย อาจจะทำได้เร็วกว่า
** ใช้[[Project:สคริปต์แมว ๆ|สคริปต์แมว ๆ]] ช่วยเก็บกวาดเนื้อหาที่ลอกมาจาก WT ภาษาอังกฤษ ประหยัดเวลาในการเขียนเอง
* ข้อความแจ้งเตือนข้อผิดพลาด และเอกสารกำกับ ของแม่แบบและมอดูล ไม่ต้องแปลก็ได้
* [[พิเศษ:หมวดหมู่ที่ต้องการ|หมวดหมู่ที่ต้องการ]] บางหมวดหมู่มีไว้เพื่อติดตามงานเท่านั้น ไม่จำเป็นต้องสร้างขึ้นมา
* ส่วนหนึ่งของชื่อภาษา
** Proto-... = ...ดั้งเดิม ส่วนชื่อข้างหน้าทับศัพท์มาเลย
** ชื่อกลุ่มภาษาทับศัพท์มาเช่นกัน
** Middle = กลาง; Central = ตอนกลาง (ยกเว้น Mandarin = จีนกลาง; Middle Chinese = จีนยุคกลาง)
** Old = เก่า; Ancient = โบราณ (เท่าที่เห็นมี Ancient Greek = กรีกโบราณ เท่านั้น ภาษาอื่นใช้เป็นชื่อพ้อง)
** dialect/minor language ที่ขยายชื่อภาษา ใช้คำว่า "แบบ" เหมือนกันหมด เพราะบางครั้งไม่ได้อ้างถึงประเทศหรือเมือง
** early = ช่วงต้น; late = ช่วงปลาย
* ชนิดของคำที่อาจสร้างความสับสน
** ในความหมายอย่างกว้าง acronym นั้นรวม initialism ไปด้วย แต่สำหรับวิกิพจนานุกรม จะแยกเป็นคนละอย่าง
*** acronym = <u>อักษรย่อรวมพยางค์</u>/ตัวย่อรวมพยางค์ (คำที่เอาอักษรตัวหน้ามาและอ่านรวมกันเป็นพยางค์ เช่น UNESCO, OPEC, NASA ฯลฯ; ศัพท์บัญญัติว่า รัสพจน์ แต่คนทั่วไปไม่รู้จัก)
*** initialism = <u>อักษรย่อ</u>/ตัวย่อ (คำที่เอาอักษรตัวหน้ามาแต่ไม่อ่านรวม; ภาษาไทยเกือบทั้งหมดเป็นอันนี้)
** clipping = คำตัดทอน (คำยาวที่ถูกตัดทอนเป็นคำสั้นลง)
** contraction = คำหดย่อ (คำที่หดย่อจากหลายคำเหลือคำเดียว เช่น isn't l'more je t'aime)
** abbreviation = คำย่อ (กรณีอื่นที่ไม่ใช่ทั้งหมดด้านบน)
** shortening = การย่อ (หมวดหมู่ใหญ่ที่คลุมทั้งหมดด้านบน)
* PSWT ก่อนหน้านี้อิงกับระบบของ Li อย่างเดียว ภายหลังพบว่า ก็ยังมีของอีกหลายคนที่เกิดขึ้นทีหลังอย่างเช่น Jonsson และต่อมา Pittayaporn ปรับปรุงระบบทั้งหมดนั่นใหม่ จึงควรเปลี่ยนไปใช้ระบบ Pittayaporn ทั้งหมด เพื่อที่จะนำไปใส่เนมสเปซ ''การสืบสร้าง'' (Reconstruction) [ยังไม่ได้โหวต] ขณะนี้ก็ยังมีระบบ Li ตกค้างอยู่หลายหน้า ส่วนวรรณยุกต์ยึดตามระบบ Gedney คือ A B C DS DL และกลุ่มพยัญชนะ 4 กลุ่มซึ่งครอบคลุมที่สุด (มีบางภาษาที่ทั้ง 4 กลุ่มผันเสียงต่างกัน จึงต้องคงไว้)
* ชื่อวันและชื่อเดือน (จันทรคติหรือสุริยคติก็ตาม) บางภาษากำหนดให้เป็นคำวิสามานยนาม บางภาษากำหนดให้เป็นคำสามานยนาม
* เอกโทษและโทโทษ ให้ใส่ในหัวข้อรูปแบบอื่น ก็ต่อเมื่อเคยมีปรากฏในร้อยกรองมาแล้ว
* การทับศัพท์ชื่อหรือภาษากลุ่มอินเดีย r=र=ร / l=ल=ล / ɭ=ळ=ฬ / ɽ=ड़=ฬฺ(ฑ̱) / ɽʱ=ढ़=ฬฺห์(ฒ̱) [แต่ก็ยังมี ऱ=รฺ(ร̱) / ऴ=ฬฺ(ฬ̱) ไม่มีในฮินดี ยังไม่พบที่ใช้] ; [[อนุสวาร]]ถอดเป็นพยัญชนะนาสิก ; ชื่อภาษาให้ตัดสระอีลงท้ายออกเพราะเป็นการผันรูปเพศหญิง (เว้นแต่คำนั้นไม่ได้มาจากการผัน) ถ้าตัดสระอีแล้วออกเสียงไม่ได้ หรืออ่านซ้ำกับชื่อภาษาอื่น ให้เลือกว่าจะเติมสระอะ หรือเติมทัณฑฆาต
== ปัญหาแปลก ๆ ด้านเทคนิค ==
* อักขระที่มองไม่เห็น สามารถสังเกตได้จาก URL หรือการถอดอักษร
** ZWSP (U+200B) หรือเครื่องหมายจัดรูปแบบอื่น ๆ ที่มองไม่เห็น มักเกิดจาก MS Word หรือ Machine Learning ต้องตัดออกเพราะถูกใช้เป็นตัวตัดคำ/บรรทัด ไม่มีผลในการค้นหา แต่จะทำให้เชื่อมโยงคำกันไม่เจอ และจะทำให้คนสร้างหน้าใหม่ซ้ำ
** ZWNJ (U+200C) และ ZWJ (U+200D) ควรคงไว้เพราะเกี่ยวกับการเปลี่ยนรูปอักษร (ภ.เปอร์เซีย, อูรดู, สิงหล, อีโมจิ, ฯลฯ) การใส่กับไม่ใส่ ZWNJ/ZWJ จะให้ผลลัพธ์เป็นคนละหน้า ถ้าการพิมพ์ปกติไม่จำเป็นต้องใช้ ZWNJ/ZWJ ควรขจัดออกให้หมด
* สัญลักษณ์วรรณยุกต์สำหรับภาษาไทดั้งเดิมและภาษาไทตะวันออกเฉียงใต้ดั้งเดิม: <big>ᴬ ᴮ ꟲ ᴰ ᴰᴸ ¹ ² ³ ⁴</big>
** มาตรฐานยูนิโคด 14.0 มี C ตัวใหญ่แล้ว คือ ꟲ (U+A7F2) (วินโดวส์ 11 รองรับแล้ว)
** มาตรฐานยูนิโคด 17.0 มี S ตัวใหญ่แล้ว คือ (U+A7F1) (กำลังรอให้มีฟอนต์รองรับก่อน)
* คุณลักษณะ OpenType ทำงานไม่ครบถ้วนในเบราว์เซอร์
** อักษรไทธรรม เวลามีพยัญชนะมากกว่า 1 ตัว เช่นอักษรซ้อนหรือตัวควบกล้ำ (เช่น ᨣᩕ) แล้วใส่สระหน้าตาม (เช่น ᩮ) บางฟอนต์/OS สระหน้าไม่ยอมไปอยู่ข้างหน้าสุด เช่น ᨣ+ᩕ+ᩮ มันควรจะเป็น ᩮ‍ᨣᩕ ไม่ใช่ ᨣᩕ‍ᩮ
** อักษรไทลื้อใหม่ อักษรไทเวียด มาตรฐานปัจจุบันกำหนดให้ใส่สระหน้าก่อนพยัญชนะ (the visual ordering) แต่บางฟอนต์/OS ดึงสระหน้าที่ตามหลังพยัญชนะไปไว้ข้างหน้า เช่น ᦃ+ᦶ+ᦈ มันควรจะเป็น ᦃ‌ᦶᦈ ไม่ใช่ ᦶᦃᦈ แล้วก็จะได้คำที่สะกดผิดทั้งที่เราคีย์ถูก
** วิธีแก้เบื้องต้นคือใส่ ZWNJ (ระหว่างพยางค์) หรือ ZWJ (อยู่ในพยางค์) มาคั่นในศัพท์ (เฉพาะการแสดงผล ไม่นำไปตั้งชื่อหน้า)
** ขณะนี้ใช้งานสคริปต์ [[มีเดียวิกิ:Gadget-legacy.js]] เพื่อแก้ไขการมองเห็นเหล่านี้ (ใช้ได้เฉพาะผู้ที่เป็นสมาชิก) เนื่องจาก DISPLAYTITLE ไม่ทำงานอีกต่อไปแล้ว ซึ่งจะเปลี่ยนเฉพาะการแสดงผลเท่านั้น การเชื่อมโยงต่าง ๆ ยังเหมือนเดิม
* ภาษาถิ่นที่ใช้อักษรไทย มีพยัญชนะบางตัวที่ประพินทุ (nuqta) หรือขีดล่าง (macron) แล้วมีสระบน/ล่าง การป้อนตามตรรกะควรเป็น พยัญชนะ+พินทุ/ขีดล่าง+สระบน/ล่าง เพื่อให้ลิงก์หากันเจอ แต่หลายฟอนต์แสดงผลโดยวางพินทุ/ขีดล่างไว้ต่ำกว่าสระล่าง หรือวางทับกัน อาจทำให้สับสนได้
* Combining Diacritical Marks ควรใช้ได้กับอักษรทุกแบบ เพราะเป็นกลุ่มอักษร Inherited แต่ในความเป็นจริงหลายฟอนต์ก็ไม่ได้ทำมาให้รองรับ เช่น การเติมสัญลักษณ์กำกับตัวอักษรไทย ทำให้ตัวอักษรทับซ้อนกัน หรือกลายเป็นกล่องว่าง เราต้องเข้าใจตามตรรกะว่าได้ใส่เครื่องหมายถูกต้องแล้ว
* อักษรยาวีของกลุ่มภาษามาเลย์อิกทั้งหมด ให้ใช้ ک และ ݢ เท่านั้น ห้ามใช้ ك และ ڬ ของกลุ่มภาษาอาหรับ เพราะมันแสดงผลต่างกัน (ระบุไว้ในเอกสารยูนิโคด)
* รูป {{lang|pi|ฐ/ญ}} ไม่มีเชิง ซึ่งใช้พิเศษสำหรับภาษาบาลี/สันสกฤต ฟอนต์ [https://fonts.google.com/noto/specimen/Noto+Sans+Thai+Looped Noto Sans Thai Looped] (ฟอนต์เดียวในขณะนี้) สามารถแสดงผลได้โดยการติดแท็กรหัสภาษา pi/sa ส่วนการตั้งชื่อหน้าให้ใช้รูป {{lang|th|ฐ/ญ}} ปกติ
** คอมพิวเตอร์สมัยก่อนใช้ฟอนต์ที่มีรูป {{lang|pi|ฐ/ญ}} ไม่มีเชิง แยกออกมาต่างหากจากรูปปกติ พอมาถึงสมัยยูนิโคด รูปเหล่านั้นถูกกำหนดให้อยู่ในช่วง PUA ซึ่งก็ไม่สามารถนำมาใช้ได้ในวิกิพจนานุกรมเนื่องจากนโยบาย
** ภาษาถิ่นบางภาษาใช้รูป {{lang|pi|ญ}} ไม่มีเชิงเช่นกัน เช่นภาษามลายูแบบปัตตานี แต่ยังไม่สามารถแสดงผลได้โดยการติดแท็กรหัสภาษา
* แม่แบบหลายแม่แบบ (มาก) ไม่ได้ทำมาให้รองรับโหมดมืด เช่น การใส่สีขาวไว้ในช่องตาราง ทำให้กลืนไปกับตัวหนังสือที่กลับสีเป็นสีสว่าง ซึ่งก็ต้องทยอยแก้ไปทีละแม่แบบ
== บันทึก ==
* {{charlist|sc=Hani|﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩}}
* [[วิกิพจนานุกรม:รายชื่อภาษา]]
* [[วิกิพจนานุกรม:รายชื่อกลุ่มภาษา]]
* [[วิกิพจนานุกรม:รายชื่ออักษร]]
* [[:หมวดหมู่:หน้าที่มีข้อผิดพลาดสคริปต์]] (ควรคัดลอกข้อมูลมาใหม่)
* [[:หมวดหมู่:หมวดหมู่ที่มีป้ายผิดพลาด]] (มอดูลทำงานถูกต้องแต่อยู่ผิดที่ผิดทาง)
* [[:หมวดหมู่:แม่แบบและมอดูลที่ต้องการเอกสารการใช้งาน]]
* [[มีเดียวิกิ:Spam-blacklist]] — ป้องกันได้เฉพาะแอสกี ส่วนยูนิโคดไปทำใน [[พิเศษ:ตัวกรองการละเมิด]]
* [[มีเดียวิกิ:Gadget-Palette/table]]
* [[w:en:Wikipedia:List of Wiktionaries|List of Wiktionaries]]
[[en:User:Octahedron80]]
77kpzd2a8j0dq8wwqt3ah051dk71pdx
nói
0
12226
5771085
1877367
2026-10-03T00:43:56Z
Ai Ku Karng
17824
/* ภาษาเวียดนาม */
5771085
wikitext
text/x-wiki
{{also/auto}}
== ภาษาเวียดนาม ==
=== รากศัพท์ ===
เทียบ{{cog|skb|น̂อย}}
=== การออกเสียง ===
{{vi-pron}}
=== คำกริยา ===
{{vi-verb}}
# [[พูด]], [[คุย]], [[กล่าว]], [[บอก]]
a5isl57gtyap1u6pxw78tp08b7q77h2
da
0
13388
5771093
5688344
2026-10-03T01:29:04Z
Ai Ku Karng
17824
/* คำนาม */
5771093
wikitext
text/x-wiki
{{also/auto}}
{{minitoc}}
== ภาษาร่วม ==
=== รากศัพท์ 1 ===
{{character info|㍲}}<!--this is for 'deca'-->
จาก {{m|en|deca-}}
==== สัญลักษณ์ ====
{{mul-symbol}}
# {{lb|mul|metrology}} [[เดคา]], อุปสรรคที่มีค่าคูณด้วย 10
=== รากศัพท์ 2 ===
{{clip|mul|da:'''da'''nsk,en:'''Da'''nish}}
==== สัญลักษณ์ ====
{{mul-symbol}}
# {{ISO 639|1}}
==== ดูเพิ่ม ====
* {{langcat}}
== ภาษากาตาลา ==
=== คำกริยา ===
{{head|ca|รูปกริยา}}
# {{ca-verb form of|dar}}
== ภาษาครีโอลกาบูเวร์ดี ==
=== รากศัพท์ ===
จาก{{der|kea|pt|dar}}
=== คำกริยา ===
{{head|kea|คำกริยา}}
# [[ให้]]
== ภาษาครีโอลกินี-บิสเซา ==
=== รากศัพท์ ===
จาก{{der|pov|pt|dar}}; ร่วมเชื้อสายกับ{{cog|kea|da}}
=== คำกริยา ===
{{head|pov|คำกริยา}}
# [[ให้]]
== ภาษาจ้วง ==
=== การออกเสียง ===
* {{za-pron}}
=== รากศัพท์ 1 ===
{{inh+|za|tai-pro|*taːᴬ}}; ร่วมเชื้อสายกับ{{cog|th|ตา}}, {{cog|lo|ຕາ}}, {{cog|khb|ᦎᦱ}}, {{cog|shn|တႃ}}, {{cog|pcc|dal}}
==== คำนาม ====
{{za-head|คำนาม|saw=[[𭖯]], [[㐲]], [[他]], [[她]], [[大]]}}
# [[ตา]] (พ่อของแม่)
=== รากศัพท์ 2 ===
{{inh+|za|tai-pro|*p.taːᴬ}}; ร่วมเชื้อสายกับ{{cog|th|ตา}}, {{cog|nod|ᨲᩣ}}, {{cog|lo|ຕາ}}, {{cog|khb|ᦎᦱ}}, {{cog|blt|ꪔꪱ}}, {{cog|shn|တႃ}}, {{cog|aio|တႃ}}, {{cog|aho|𑜄𑜠}} หรือ {{m|aho|𑜄𑜡}}, {{cog|pcc|dal}}
==== คำนาม ====
{{za-head|คำนาม|saw=[[𥅂]], [[𭾚]], [[𠯈]], 他, [[哆]], [[打]]}}
# [[ตา]] (อวัยวะ)
== ภาษาจีนกลาง ==
=== การถอดเป็นอักษรโรมัน ===
{{cmn-pinyin}}
# {{cmn-pinyin of|墰}}
# {{cmn-pinyin of|疶}}
# {{cmn-pinyin of|繨}}
# {{cmn-pinyin of|跴}}
# {{cmn-pinyin of|蹽}}
# {{cmn-pinyin of|墶}}
{{cmn-pinyin|notr=1}}
# {{nonstandard spelling of|cmn|dā}}
# {{nonstandard spelling of|cmn|dá}}
# {{nonstandard spelling of|cmn|dǎ}}
# {{nonstandard spelling of|cmn|dà}}
==== หมายเหตุการใช้ ====
* {{cmn-toneless-note}}
== ภาษาญี่ปุ่น ==
=== การถอดเป็นอักษรโรมัน ===
{{ja-romaji}}
# {{Latn-def|ja|syllable|だ|ダ|da}}
== ภาษานุง ==
=== คำกริยาวิเศษณ์ ===
{{head|nut|คำกริยาวิเศษณ์|-}}
# [[อย่า]]
#: {{ux|nut|'''Da''' [[khà]] [[cưhn]]|'''อย่า'''ฆ่าคน}}
== ภาษาบาสก์ ==
=== การออกเสียง ===
{{eu-pr|+<audio:LL-Q8752 (eus)-Xabier Cañas-da.wav>}}
=== คำกริยา ===
{{eu-verb form|izan<nor>}}
== ภาษาเยอรมัน ==
=== รากศัพท์ ===
เกิดจากการรวมตัวกันของคำวิเศษณ์ที่สัมพันธ์กันสามคำ: 1.) {{inh|de|gmh|da|dā}}, {{m|gmh|dar|dār|ที่นั่น, ณ ที่แห่งนั้น}}, จาก{{inh|de|goh|thar|thār}}, {{m|goh|dar|dār}}, จาก{{inh|de|gmw-pro|*þār}} 2.) {{inh|de|gmh|dar}}, {{m|gmh|dare||ไปยังที่นั่น}}, จาก{{inh|de|goh|thara}}, {{m|goh|dara}}, จากรูปขยายของคำก่อนหน้า 3.) {{inh|de|gmh|do|dō}}, {{m|gmh|duo||ตอนนั้น, ในเวลานั้น}}, จาก{{cog|goh|tho|thō}}, {{m|goh|do|dō}}, {{m|goh|duo}}, จาก{{inh|de|gmw-pro|*þō}}
ทั้งสามรูปนี้บางครั้งมีการใช้ปะปนกันอยู่แล้วในภาษาเยอรมันสูงเก่าและกลาง การสูญเสียความแตกต่างอย่างถาวรในภาษาเยอรมันใหม่ได้รับการตอกย้ำโดยการรวมกันทางสัทศาสตร์ในสำเนียงต่าง ๆ ปัจจุบัน ความหมายของคำกริยาวิเศษณ์ที่ 1 และ 3 ถูกครอบคลุมด้วย {{m|de||da}} ในขณะที่คำกริยาวิเศษณ์ที่ 2 ส่วนใหญ่ถูกแทนที่ด้วย {{m|de|hin}}, {{m|de|dahin}} รูป {{m|de|dar-}} ยังคงเหลืออยู่เป็นรูปที่ผันมาจาก {{m|de|da-}} เมื่อวางหน้าสระและในคำกริยาประสมบางคำ (เช่น {{m|de|darlegen}}, {{m|de|darbringen}}); คำกริยาวิเศษณ์ที่ 1 และ 2 ร่วมเชื้อสายกับ{{cog|nl|daar}}, {{cog|nds|dar}}, {{m|nds|dor}}, {{cog|en|there}}, {{cog|sv|där}}; คำกริยาวิเศษณ์ที่ 3 ร่วมเชื้อสายกับ {{cog|nl|toen}}
=== การออกเสียง ===
* {{IPA|de|/daː/|[däː]}}
* {{audio|de|De-da.ogg}}
* {{audio|de|De-da2.ogg|a=<<Germany>> (<<Berlin>>)}}
* {{audio|de|De-at-da.ogg|a=Austria}}
* {{rhymes|de|aː|s=1}}
=== คำกริยาวิเศษณ์ ===
{{de-adv}}
# {{lb|de|local}} [[ที่นั่น]]
#: {{syn|de|dort}}
#* {{quote-book|de|year=1918|author=w:de:Elisabeth von Heyking|chapter=s:de:Aus dem Lande der Ostseeritter|title=Zwei Erzählungen|publisher=Phillipp Reclam jun.|page=78
|passage=Am liebsten entfloh sie dem allem in den großen Garten. '''Da''' verbrachte sie ihre schönsten Stunden.|t=หล่อนชอบที่จะหลบหนีจากสิ่งเหล่านั้นเข้าไปในสวนใหญ่ ที่นั่นหล่อนได้ใช้เวลาช่วงที่สวยงามที่สุดของตน}}
#: {{ux|de|Wir fahren nach Hamburg. Meine Frau hat eine Freundิน, die '''da''' wohnt.|เรากำลังจะไปฮัมบูร์ก ภรรยาของผมมีเพื่อนคนหนึ่งที่อาศัยอยู่ที่นั่น}}
# {{lb|de|temporal}} [[ตอนนั้น]]; [[ดังนั้น]]; ใน[[ขณะนั้น]]
#: {{syn|de|also|dann}}
#: {{ux|de|Ich war gerade eingeschlafen, und '''da''' kam ein Anruf.|ฉันเพิ่งจะเคลิ้มหลับไป และตอนนั้นเองก็มีสายโทรศัพท์เข้ามา}}
#: {{ux|de|Er hat immer weiter auf mich eingeschrien. '''Da''' bin ich einfach gegangen.|เขายังคงตะคอกใส่ฉันไม่หยุด ดังนั้นฉันจึงเดินหนีออกมาเฉย ๆ}}
# {{lb|de|colloquial}} {{n-g|ใช้แทน [[pronominal adverb]] ใด ๆ เมื่อบริบทชัดเจนแล้ว}}
#: ''Ich wollte eigentlich Linsensuppe machen, aber '''da''''' (= {{l|de|dafür}}, {{l|de|dazu}}) ''hatte ich das Rezept nicht.''
#:: จริง ๆ ฉันอยากจะทำซุปเลนทิล แต่ฉันไม่มีสูตรสำหรับมัน
#: ''Wir haben jetzt ein Angebot gekriegt, aber '''da''''' (= {{l|de|darüber}}) ''müssen wir noch diskutieren.''
#:: ตอนนี้เราได้รับข้อเสนอมาแล้ว แต่เรายังต้องหารือกันเกี่ยวกับเรื่องนั้น
# [[ขณะนี้]], [[ที่นี่]], ที่นั่น {{gl|มาถึงแล้ว, อยู่ในสถานที่ที่เป็นหัวข้อสนทนา ไม่ว่าจะเป็นตำแหน่งเดียวกับผู้พูดหรือไม่ก็ตาม}}
#: {{ux|de|Die Gäste sind noch nicht '''da.'''|แขกยังมาไม่ถึง (ยังไม่อยู่ที่นี่)}}
==== ลูกคำ ====
* {{l|de|ebenda}}
* {{l|de|dahinten}}
* {{l|de|dahinter}}
==== คำเกี่ยวข้อง ====
* {{l|de|allda}}
* {{l|de|dar}}
=== คำสันธาน ===
{{head|de|คำสันธาน}}
# [[เนื่องจาก]]; [[เพราะว่า]]; [[ในเมื่อ]]
#: {{syn|de|weil|zumal}}
#* {{quote-book|de|year=1931|author=w:Arthur Schnitzler|title=s:de:Flucht in die Finsternis|publisher=w:S. Fischer Verlag|page=51
|passage=Und '''da''' er keinen Grund hatte, ihr seinen Namen zu verhehlen, so stellte er sich in aller Form vor.|t=และเพราะเขาไม่มีเหตุผลที่จะปิดบังชื่อของเขาจากหล่อน เขาจึงแนะนำตัวอย่างเป็นทางการ}}
#: {{ux|de|'''Da''' die Stelle mit häufigen Auslandskontakten verbunden ist, sind gute Fremdsprachenkenntnisse unerlässlich.|เนื่องจากตำแหน่งนี้ต้องติดต่อกับต่างประเทศบ่อยครั้ง ทักษะทางภาษาต่างประเทศที่ดีจึงเป็นสิ่งจำเป็น}}
# {{lb|de|literary|dated}} [[เมื่อ]]
#: {{syn|de|als|wenn|wo}}
#* '''1545''', {{w|Martin Luther|Martin Luther et al.}}, {{w|Book of Genesis|Genesis}} 7:6:
#*: {{quote|de|Er war aber sechshundert jar alt / '''da''' das wasser der Sindflut auff Erden kam.|เขามีอายุได้หกร้อยปี เมื่อน้ำท่วมโลกมาสู่พื้นดิน}}
#: {{ux|de|Am Tag, '''da''' die Wahrheit offenbar wird, ist es zur Umkehr zu spät.|ในวันที่ความจริงปรากฏขึ้น มันก็สายเกินไปที่จะกลับตัวแล้ว}}
==== หมายเหตุการใช้ ====
* ในภาษาที่เป็นทางการ นิยมใช้ {{m|de||da}} มากกว่า {{m|de||weil}} เมื่อวางไว้ในประโยคย่อยส่วนแรกของประโยค
=== อ่านเพิ่ม ===
* {{R:de:DWDS}}
* {{R:Kluge 1891}}
* {{R:de:Duden|da_Adverb_dort_hier|da}}
* {{R:de:Duden|da_Deka__Deziar|da}}
* {{R:de:Duden|da_Konjunktion_weil|da}}
== ภาษาเวียดนาม ==
=== การออกเสียง ===
{{vi-IPA}}
* {{audio|vi|LL-Q9199 (vie)-Jessica Nguyen (Pamputt)-da.wav|a=Ho Chi Minh City}}
=== รากศัพท์ 1 ===
{{inh+|vi|mkh-vie-pro|*-taː}}; ร่วมเชื้อสายกับ{{cog|mtq|-}} Bi {{m|mtq|ta}}
==== รูปแบบอื่น ====
* {{alt|vi|q=เวียดนามตอนกลางเหนือ|đa}}
==== คำนาม ====
{{vi-noun|cls=làn|[[皮]], [[䏧]], [[𤿦]], [[𪤻]]}}
# {{lb|vi|กายวิภาคศาสตร์}} [[ผิวหนัง]]
#: {{uxi|vi|'''da''' [[đầu]]|หนังศีรษะ}}
# [[หนังสัตว์]]; [[วัสดุ]]ที่ทำจากหนังสัตว์ เช่น [[หนังฟอก]]
===== ดูเพิ่ม =====
* {{l|vi|bì}}
{{col|vi|da dẻ|da thịt|nồi da xáo thịt}}
=== รากศัพท์ 2 ===
ดูที่ {{m|vi|đa}} รูปแบบนี้ถูกแทนที่โดยรูปแบบกระแสหลักอย่าง {{m|vi|đa}} ซึ่งมีต้นกำเนิดจากเวียดนามตอนกลางอย่างสมบูรณ์
==== คำนาม ====
{{vi-noun|cls=cây}}
# {{lb|vi|เดิม|_|เวียดนามเหนือ|และ|เวียดนามใต้}} {{obsolete form of|vi|đa||ต้นไทร}}
{{C|vi|Hides}}
== ภาษาอังกฤษ ==
=== รากศัพท์ 1 ===
จากภาษาเด็ก; เทียบ {{m|en|dad}} และ {{m|en|dada}}
==== การออกเสียง ====
* {{IPA|en|/dɑː/}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-da.wav|a=Southern England}}
* {{rhymes|en|ɑː|s=1}}
==== คำนาม ====
{{en-noun}}
# {{lb|en|Ireland|Scotland|Northern England}} [[พ่อ]]
#: {{alti|en|da'}}
#* {{quote-book
|en
|title=Twilight Reveries
|chapter=Yellow Man
|year=1924
|author=w:Louis Joseph Walsh
|publisher=M. H. Gill & Son, Ltd.
|url=[https://books.googleusercontent.com/books/content?req=AKW5QacjTYX8bQEiXsyaGL14HbSs4Vywvy_hFVl71j8Rm5w1hFwjDy78pKg1eQe3ouGKxjNalky9IA5uSzkbPD5Tffl2sHMl6RoYaoouIwjpwj318yPAfqobT0Meg7ZC2sQRaHJqGPvpUsXHWApnhUFw2MyFTMC92juUZdrt51vpjEZvO9rHwjAAe-noXjaJRjtzq7eraYEFA4pVuc_sQia3Uu2CMbnKemOId_ZswjqRG21lV2GhJ1G7XLXZGaHx9rYSK7ZysEEb](https://books.googleusercontent.com/books/content?req=AKW5QacjTYX8bQEiXsyaGL14HbSs4Vywvy_hFVl71j8Rm5w1hFwjDy78pKg1eQe3ouGKxjNalky9IA5uSzkbPD5Tffl2sHMl6RoYaoouIwjpwj318yPAfqobT0Meg7ZC2sQRaHJqGPvpUsXHWApnhUFw2MyFTMC92juUZdrt51vpjEZvO9rHwjAAe-noXjaJRjtzq7eraYEFA4pVuc_sQia3Uu2CMbnKemOId_ZswjqRG21lV2GhJ1G7XLXZGaHx9rYSK7ZysEEb)
|page=44–45
|passage=“Dear, but you're like your grandmother!” she continued, patting the little girl's head. “Many a penny's worth I sold to your '''da''', when he was weer than you are.”}}
#* {{quote-book|en|year=2008|author=w:James Kelman|title=Kieron Smith, Boy| publisher=Penguin 2009| page=55| passage=Oh where is yer '''da''' son? The man said it to me and was grumpy. Is yer '''da''' here?}}
#* {{quote-book|en|year=2011|author=w:Philip Reeve|title=w:Scrivener's Moon|publisher={{w|Scholastic Corporation|Scholastic}}|isbn=978-1-407189-29-1|page=48|text=Once the silky gent who ran a barge called the ''Knuckle Sandwich'' tried to persuade Borglum's ma and '''da''' to sell him their little dwarfish boy for twelve gold coins.}}
#* {{quote-song|en|year=2025|title=Euro-Country|author={{w|CMAT (musician)|CMAT}}|passage=I was twelve when the '''das''' started killing themselves all around me}}
===== คำพ้องความ =====
* {{l|en|pa}}, {{l|en|Pa}}
* {{l|en|daddy}}
=== รากศัพท์ 2 ===
{{bor+|en|ru|да|t=ใช่}}; {{dbt|en|too}}
==== การออกเสียง ====
* {{IPA|en|/dɑː/}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-da.wav|a=Southern England}}
* {{rhymes|en|ɑː|s=1}}
==== คำนาม ====
{{en-noun|-}}
# {{lb|en|slang|[[Russianism]]}} [[ใช่]]; การตอบรับเชิงยืนยัน
==== คำอุทาน ====
{{en-intj}}
# {{lb|en|slang|Russianism}} ใช่
===== คำตรงข้าม =====
* {{l|en|nyet}}
=== รากศัพท์ 3 ===
แสดงถึงการออกเสียงของ {{m|en|the}} ในภาษาพูดที่ไม่เป็นทางการ
==== การออกเสียง ====
* {{IPA|en|/diː/|/dʌ/}}
* {{IPA|en|/də/|q=unstressed}}
* {{audio|en|LL-Q1860 (eng)-Vealhurl-da2.wav|a=Southern England}}
* {{rhymes|en|iː|ʌ|s=1}}
==== คำกำกับนาม ====
{{head|en|คำกำกับนาม}}
# {{pronunciation spelling of|en|the}}
#: {{ux|en|'''Da''' New York Times}}
#: {{ux|en|'''Da''' Bears}}
#* {{quote-book|en|year=1932|year_published=1965|author=w:Delos W. Lovelace|title=[[w:King Kong (1933 film)|King Kong]]|page=11|passage="So I catch you. You stealer! Ho! Ho!" He seized the girl's wrist. "No, no, you don't run. Hey! Where is-a '''da''' cop?"}}
#* {{quote-book|en|year=2012|author=Jeffrey Arnold|title=Nobody's Laughing|page=157|passage=They are both holding onto their caps in the stiff breeze, and Zang is shouting, "Where is '''da''' main hotel going to be?"}}
===== หมายเหตุการใช้ =====
* มักใช้เพื่อเลียนเสียงการออกเสียงภาษาอังกฤษของผู้ที่ใช้ภาษาแม่ที่ไม่มีเสียง /ð/ หรือเด็กทารกที่ยังออกเสียง /ð/ ไม่ได้
* ในสหรัฐอเมริกา พบได้บ่อยในการจำลองเสียงพูดของคนจาก[[w:Chicago|ชิคาโก]] หรือ [w:New York City|นิวยอร์กซิตี้]] และ[[w:AAVE|AAVE]] และยังอาจใช้แทนภาษาถิ่นมิดเวสต์ที่ได้รับอิทธิพลจากผู้อพยพชาวเยอรมันและสแกนดิเนเวียในยุคแรกซึ่งภาษาแม่ไม่มีเสียง {{IPAchar|/ð/}}
===== ดูเพิ่มเติม =====
{{col3|en|
|tha
}}
=== รากศัพท์ 4 ===
{{onom|en|title=การเลียนเสียงธรรมชาติ}}
==== คำอุทาน ====
{{en-intj}}
# {{n-g|พยางค์ที่ไม่มีความหมาย ใช้เมื่อร้องเพลงตามทำนองหรือเพื่อแสดงจังหวะ}}
#: {{ux|en|You know that tune that goes "'''da da da''' di-dum di-dum"?}}
=== คำสลับอักษร ===
* {{anagrams|en|a=ad|'ad|-ad|A.D.|AD|Ad|ad|ad-|ad.}}
{{cln|en|heteronyms|2-letter words}}
{{C|en|Hair|Male family members}}
== ภาษาอินเทอร์ลิงกวา ==
=== คำกริยา ===
{{head|ia|รูปกริยา}}
# {{ia-form of|d|a}}
== ภาษาเอเว ==
=== คำนาม ===
{{head|ee|คำนาม}}
# [[คันธนู]]
# [[แม่]]
# [[งู]]
ca8yiubw2c3bf0ea0lhmrw84bvntamk
มีเดียวิกิ:Gadgets-definition
8
22932
5771099
5770265
2026-10-03T01:53:45Z
Octahedron80
267
5771099
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[default]|LanguagesAndScripts.css
* VectorClassic[type=styles|skins=vector]|VectorClassic.css
* HideLogo[type=styles]|HideLogo.css
* JavascriptHeadings[default|dependencies=site]|JavascriptHeadings.js
== interface-gadgets ==
* purgetab[dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups|popups.js
* UTCLiveClock[type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[dependencies=mediawiki.cookie,mediawiki.util,ext.gadget.LegacyScriptsNewNode|type=general]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* DocTabs[default|dependencies=site,mediawiki.api,mediawiki.util|type=general]|DocTabs.js|DocTabs.css
== editing-gadgets ==
* TranslationAdder[default|dependencies=ext.gadget.Editor,ext.gadget.LegacyScriptsNewNode,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data]|TranslationAdder.js
* HotCat|HotCat.js
* FastRevert[dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* Editor[hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[hidden|dependencies=mediawiki.api,mediawiki.Uri,ext.gadget.LanguageUtils]|TranslationAdder-Data.js
* catfixRegrouper[hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* VisibilityToggles[hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* defaultVisibilityToggles[hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
* Palette[hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
n0lci46ppn7p3q707f61h4j7gax99d6
5771101
5771099
2026-10-03T02:06:01Z
Octahedron80
267
5771101
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[default]|LanguagesAndScripts.css
* VectorClassic[type=styles|skins=vector]|VectorClassic.css
* HideLogo[type=styles]|HideLogo.css
* JavascriptHeadings[default|dependencies=site]|JavascriptHeadings.js
== interface-gadgets ==
* purgetab[dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups|popups.js
* UTCLiveClock[type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[dependencies=mediawiki.cookie,mediawiki.util,ext.gadget.LegacyScriptsNewNode|type=general]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* DocTabs[default|dependencies=site,mediawiki.api,mediawiki.util|type=general]|DocTabs.js|DocTabs.css
== editing-gadgets ==
* TranslationAdder[default|dependencies=ext.gadget.Editor,ext.gadget.LegacyScriptsNewNode,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data]|TranslationAdder.js
* HotCat|HotCat.js
* FastRevert[dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* Editor[hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[hidden|dependencies=mediawiki.api,mediawiki.Uri,ext.gadget.LanguageUtils]|TranslationAdder-Data.js
* catfixRegrouper[hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* VisibilityToggles[hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* defaultVisibilityToggles[hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
* Palette[hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
mn9bvon7iu6um6zmqo6lb5ey2u1m25i
5771105
5771101
2026-10-03T02:09:37Z
Octahedron80
267
5771105
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[default]|LanguagesAndScripts.css
* VectorClassic[type=styles|skins=vector]|VectorClassic.css
* HideLogo[type=styles]|HideLogo.css
* JavascriptHeadings[default|dependencies=site]|JavascriptHeadings.js
== interface-gadgets ==
* purgetab[dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups|popups.js
* UTCLiveClock[type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[dependencies=mediawiki.cookie,mediawiki.util,ext.gadget.LegacyScriptsNewNode|type=general]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* DocTabs[default|dependencies=site,mediawiki.api,mediawiki.util|type=general]|DocTabs.js|DocTabs.css
== editing-gadgets ==
* TranslationAdder[default|dependencies=ext.gadget.Editor,ext.gadget.LegacyScriptsNewNode,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data]|TranslationAdder.js
* HotCat|HotCat.js
* FastRevert[dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* Editor[hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[hidden|dependencies=mediawiki.api,mediawiki.Uri,ext.gadget.LanguageUtils]|TranslationAdder-Data.js
* catfixRegrouper[hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* VisibilityToggles[hidden|targets=desktop,mobile|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* defaultVisibilityToggles[hidden|default|targets=desktop,mobile|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
* Palette[hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
mvgjus29rcwfca8bvgp0stt82inadqh
5771106
5771105
2026-10-03T02:21:41Z
Octahedron80
267
5771106
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* JavascriptHeadings[default|dependencies=site]|JavascriptHeadings.js
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
4dg5j12skewu3h8pcblf0667vnyx246
5771108
5771106
2026-10-03T02:29:42Z
Octahedron80
267
/* appearance */
5771108
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
1zkgkfvzna30gz718kvl57voyh8fgsk
5771109
5771108
2026-10-03T02:30:50Z
Octahedron80
267
/* appearance */
5771109
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
0vp95fu29ydazc9qziykxy1cwfc6ckr
5771111
5771109
2026-10-03T02:32:09Z
Octahedron80
267
/* appearance */
5771111
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
15f21tk0w6j5ydvo83ka9tfybpgxkxr
5771115
5771111
2026-10-03T02:34:37Z
Octahedron80
267
/* appearance */
5771115
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* TreeDescs[ResourceLoader|peers=TreeDescs-pagestyles]|TreeDescs.js
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
5uf06dm6d69mzmj987ddfalpt756k1b
5771128
5771115
2026-10-03T03:04:51Z
Octahedron80
267
5771128
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* MonobookSmallerHeadings[ResourceLoader|default|skins=monobook]|MonobookSmallerHeadings.css
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* TreeDescs[ResourceLoader|peers=TreeDescs-pagestyles]|TreeDescs.js
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
sw26i1715hp17bfcugiqweh5yltc1xv
5771135
5771128
2026-10-03T03:20:21Z
Octahedron80
267
5771135
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* MonobookSmallerHeadings[ResourceLoader|default|skins=monobook]|MonobookSmallerHeadings.css
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* CatchMyAttention[ResourceLoader|type=styles]|CatchMyAttention.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* TreeDescs[ResourceLoader|peers=TreeDescs-pagestyles]|TreeDescs.js
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
o8bmf7q8fbozd0w9y0yx3hjb8ay9z78
5771141
5771135
2026-10-03T03:31:16Z
Octahedron80
267
/* appearance */
5771141
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* MonobookSmallerHeadings[ResourceLoader|default|skins=monobook]|MonobookSmallerHeadings.css
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* CatchMyAttention[ResourceLoader|type=styles]|CatchMyAttention.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* vectorTabs[ResourceLoader|skins=vector|type=styles]|vectorTabs.js|vectorTabs.css
* TreeDescs[ResourceLoader|peers=TreeDescs-pagestyles]|TreeDescs.js
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
pxh0jwpma6zh178m90vy796f4gddnjq
5771145
5771141
2026-10-03T03:35:28Z
Octahedron80
267
5771145
wikitext
text/x-wiki
{{shortcut|WT:GD}}
See [[Special:Gadgets]] for documentation of these gadgets, and [[Wiktionary:Gadgets]] for general information about gadgets on Wiktionary. See also [[WT:PREFS]] for other preferences.
{{gadgets pages}}
* LegacyScripts[default|dependencies=site,mediawiki.util,mediawiki.cookie,ext.gadget.LegacyScriptsNewNode,ext.gadget.StorageUtils|type=general]|legacy.js
== not yet sorted ==
EditTools|EditTools.css
== appearance ==
* MonobookSmallerHeadings[ResourceLoader|default|skins=monobook]|MonobookSmallerHeadings.css
* LanguagesAndScripts[ResourceLoader|default]|LanguagesAndScripts.css
* VectorClassic[ResourceLoader|type=styles|skins=vector]|VectorClassic.css
* CatchMyAttention[ResourceLoader|type=styles]|CatchMyAttention.css
* HideLogo[ResourceLoader|type=styles]|HideLogo.css
* vectorTabs[ResourceLoader|skins=vector|type=styles]|vectorTabs.js|vectorTabs.css
* WiktPreviewRightTOCs[ResourceLoader|namespaces=0]|WiktPreviewRightTOCs.css
* TreeDescs[ResourceLoader|peers=TreeDescs-pagestyles]|TreeDescs.js
* NoMiniToc[ResourceLoader|type=general]|NoMiniToc.js|NoMiniToc.css
* GraphiteFonts[ResourceLoader|type=styles]|GraphiteFonts.css
== interface-gadgets ==
* purgetab[ResourceLoader|dependencies=mediawiki.api,mediawiki.util]|purgetab.js
* Navigation_popups[ResourceLoader]|popups.js
* UTCLiveClock[ResourceLoader|type=general|dependencies=mediawiki.util,mediawiki.api|peers=UTCLiveClock-pagestyles]|UTCLiveClock.js|UTCLiveClock.css
* WiktSidebarTranslation[ResourceLoader|dependencies=ext.uls.interlanguage]|WiktSidebarTranslation.js
* TabbedLanguages[ResourceLoader|dependencies=ext.gadget.WiktGadgetPrefs,mediawiki.util|type=general|skins=vector,vector-2022,minerva,monobook,timeless,modern,cologneblue|namespaces=0,4,118|actions=view,edit,submit|supportsUrlLoad]|TabbedLanguages.js|TabbedLanguages.css
* AggregateInterprojectLinks[ResourceLoader|dependencies=mediawiki.cookie]|AggregateInterprojectLinks.js
* defaultVisibilityToggles[ResourceLoader|default|dependencies=ext.gadget.VisibilityToggles]|defaultVisibilityToggles.js
== editing-gadgets ==
* TranslationAdder[ResourceLoader|default|dependencies=site,ext.gadget.Editor,mediawiki.cookie,ext.gadget.LanguageUtils,mediawiki.util,ext.gadget.TranslationAdder-Data|categories=Entries with translation boxes]|TranslationAdder.js
* HotCat[ResourceLoader]|HotCat.js
* FastRevert[ResourceLoader|dependencies=mediawiki.util]|FastRevert.js
* DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js
== misc-gadgets ==
* zhDialMap[ResourceLoader|default|dependencies=site,oojs-ui-core|categories=Chinese dialectal equivalent maps]|zhDialMap.js|zhDialMap.css
* DialectMap[ResourceLoader|default|dependencies=site]|DialectMap.js|DialectMap.css
* NoAutoCaseRedirect[ResourceLoader]|NoAutoCaseRedirect.js
== Hidden gadgets and utils ==
* VisibilityToggles[ResourceLoader|hidden|dependencies=user,mediawiki.cookie]|VisibilityToggles.js
* DocTabs[ResourceLoader|hidden|default|dependencies=mediawiki.api,mediawiki.util|namespaces=0,1,10,11,114,828,829]|DocTabs.js|DocTabs.css
* Editor[ResourceLoader|hidden|dependencies=mediawiki.util,mediawiki.api]|Editor.js
* StorageUtils[ResourceLoader|hidden|dependencies=mediawiki.cookie,mediawiki.storage]|StorageUtils.js
* LanguageUtils[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.StorageUtils]|LanguageUtils.js
* LegacyScriptsNewNode[hidden|targets=desktop,mobile]|LegacyScriptsNewNode.js
* TranslationAdder-Data[ResourceLoader|hidden|dependencies=mediawiki.api,ext.gadget.LanguageUtils|categories=Entries with translation boxes]|TranslationAdder-Data.js
* catfixRegrouper[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title,ext.gadget.catfixRegrouper-Data|namespaces=14]|catfixRegrouper.js
* catfixRegrouper-Data[ResourceLoader|hidden|default|dependencies=site|namespaces=14]|catfixRegrouper-Data.js
* catfix[ResourceLoader|hidden|default|dependencies=site,mediawiki.Title|categories=Pages using catfix]|catfix.js
* Edittools[ResourceLoader|hidden|default|dependencies=mediawiki.cookie,jquery.textSelection]|Edittools.js|Edittools.css
* Palette[ResourceLoader|hidden|default]|Palette.css
* UTCLiveClock-pagestyles[hidden|skins=vector,monobook]|UTCLiveClock-pagestyles.css
* Site[ResourceLoader|hidden|default]|Site.css
* InflectionTable[ResourceLoader|hidden|default]|InflectionTable.css
* WiktGadgetPrefs[ResourceLoader|hidden|default|dependencies=mediawiki.user,user.options]|WiktGadgetPrefs.js
* TreeDescs-pagestyles[hidden|type=styles]|TreeDescs-pagestyles.css
4wey7wbllxpmdkk9idgcbau3ekyqw4e
มอดูล:languages/data/3/c
828
36384
5771087
5727407
2026-10-03T01:13:54Z
Octahedron80
267
5771087
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["caa"] = {
"Ch'orti'",
35177,
"myn",
"Latn",
}
m["cab"] = {
"Garifuna",
35490,
"awd-taa",
"Latn",
ancestors = "crb",
}
m["cac"] = {
"Chuj",
35233,
"myn",
"Latn",
}
m["cad"] = {
"Caddo",
56756,
"cdd",
"Latn",
}
m["cae"] = {
"Laalaa",
35564,
"alv-cng",
"Latn",
}
m["caf"] = {
"Southern Carrier",
12953426,
"ath-nor",
"Latn",
}
m["cag"] = {
"Nivaclé",
3182557,
"sai-mtc",
"Latn",
}
m["cah"] = {
"Cahuarano",
2933175,
"sai-zap",
"Latn",
}
m["caj"] = {
"Chané",
56721,
"awd",
"Latn",
}
m["cak"] = {
"Kaqchikel",
35115,
"myn",
"Latn",
}
m["cal"] = {
"Carolinian",
28427,
"poz-mic",
"Latn",
}
m["cam"] = {
"Cèmuhî",
3009690,
"poz-cln",
"Latn",
}
m["can"] = {
"Chambri",
5069707,
"paa-lsp",
"Latn",
}
m["cao"] = {
"Chácobo",
2591202,
"sai-pan",
"Latn",
}
m["cap"] = {
"Chipaya",
35235,
"sai-ucp",
"Latn",
}
m["caq"] = {
"คาร์นิโคบาร์",
35156,
"aav-nic",
"Latn, Deva",
}
m["car"] = {
"Kari'na",
56611,
"sai-gui",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. "`" .. "'%-%s"},
strip_diacritics = {
remove_diacritics = c.acute,
from = {"â", "ê", "î", "ô", "û", "ŷ"},
to = {"à", "è", "ì", "ò", "ù", "ỳ"}
},
}
m["cas"] = {
"Tsimané",
35950,
"qfa-iso",
"Latn",
}
m["cav"] = {
"Cavineña",
524102,
"sai-tac",
"Latn",
}
m["caw"] = {
"Kallawaya",
266417,
"qfa-mix",
"Latn",
}
m["cax"] = {
"Chiquitano",
1844993,
"qfa-iso",
"Latn",
}
m["cay"] = {
"Cayuga",
32967,
"iro-nor",
"Latn",
}
m["caz"] = {
"Canichana",
2936374,
"qfa-iso",
"Latn",
}
m["cbb"] = {
"Cabiyarí",
3450660,
"awd-nwk",
"Latn",
}
m["cbc"] = {
"Carapana",
924405,
"sai-tuc",
"Latn",
}
m["cbd"] = {
"Carijona",
3446655,
"sai-tar",
"Latn",
}
m["cbg"] = {
"Chimila",
2963680,
"cba",
"Latn",
}
m["cbi"] = {
"Chachi",
2591329,
"sai-bar",
"Latn",
}
m["cbj"] = {
"Ede Cabe",
33112829,
"alv-ede",
"Latn",
}
m["cbk"] = {
"ชาบากาโน",
33281,
"crp",
"Latn",
ancestors = "es",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer},
sort_key = {
from = {"ch", "ll", "ñ", "r"},
to = {"c" .. p[1], "l" .. p[1], "n" .. p[1], "r" .. p[1]}
},
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnÑñOoPpQqRrSsTtUuVvWwXxYyZz" .. c.punc,
}
m["cbl"] = {
"Bualkhaw Chin",
9229830,
"tbq-kuk",
"Latn",
}
m["cbn"] = {
"ญัฮกุร",
116849,
"mkh-mnc",
"Thai",
ancestors = "omx",
--sort_key = "Thai-sortkey",
}
m["cbo"] = {
"Izora",
3915454,
"nic-jer",
"Latn",
}
m["cbq"] = {
"Tsucuba",
62603062,
"nic-knj",
"Latn",
}
m["cbr"] = {
"Cashibo-Cacataibo",
5359560,
"sai-pan",
"Latn",
}
m["cbs"] = {
"Cashinahua",
2591230,
"sai-pan",
"Latn",
}
m["cbt"] = {
"Chayahuita",
1526525,
"sai-cah",
"Latn",
}
m["cbu"] = {
"Candoshi-Shapra",
642843,
"qfa-iso",
"Latn",
}
m["cbv"] = {
"Cacua",
3192052,
"sai-nad",
"Latn",
ancestors = "mbr",
}
m["cbw"] = {
"Kinabalian",
6410324,
"phi",
"Latn",
}
m["cby"] = {
"Carabayo",
3441762,
"sai-tyu",
"Latn",
}
m["cca"] = {
"Cauca",
5054242,
"sai-chc",
"Latn",
}
m["ccc"] = {
"Chamicuro",
2155119,
"awd",
"Latn",
}
m["ccd"] = {
"Cafundó",
3331506,
"roa-gap",
"Latn",
ancestors = "pt",
}
m["cce"] = {
"Chopi",
3437616,
"bnt-bso",
"Latn",
}
m["ccg"] = {
"Chamba Daka",
33120805,
"nic-dak",
"Latn",
}
m["cch"] = {
"Atsam",
34794,
"nic-kne",
"Latn",
}
m["ccj"] = {
"Kasanga",
35542,
"alv-nyn",
"Latn",
}
m["ccl"] = {
"Cutchi-Swahili",
5196729,
"crp",
"Latn",
ancestors = "sw",
}
m["ccm"] = {
"Malaccan Creole Malay",
12636092,
"crp",
"Latn",
ancestors = "ms",
}
m["cco"] = {
"Comaltepec Chinantec",
2963735,
"omq-chi",
"Latn",
}
m["ccp"] = {
"จักมา",
32952,
"inc-bas",
"Cakm, Beng, Latn",
ancestors = "inc-obn",
translit = {
Cakm = "Cakm-translit",
Beng = "Beng-translit",
},
}
m["ccr"] = {
"Cacaopera",
3438338,
"nai-min",
"Latn",
}
m["cda"] = {
"Choni",
2964447,
"sit-tib",
}
m["cde"] = {
"Chenchu",
32981,
"dra-tel",
"Telu",
}
m["cdf"] = {
"Chiru",
5102016,
"tbq-kuk",
"Latn, Beng",
}
m["cdh"] = {
"Chambeali",
12953424,
"him",
"Deva, Takr",
translit = {
Deva = "Deva-translit",
},
}
m["cdi"] = {
"Chodri",
5103788,
"inc-bhi",
"Gujr",
}
m["cdj"] = {
"Churahi",
12629039,
"him",
"Deva, Takr",
translit = {
Deva = "Deva-translit",
},
}
m["cdm"] = {
"Chepang",
5091700,
"sit-gma",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cdn"] = {
"Chaudangsi",
5088056,
"sit-alm",
}
m["cdo"] = {
"หมิ่นตะวันออก",
36455,
"zhx-com",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["cdr"] = {
"Cinda-Regi-Tiyal",
35596,
"nic-kmk",
"Latn",
}
m["cds"] = {
"Chadian Sign Language",
10322099,
"sgn",
"Latn", -- when documented
}
m["cdy"] = {
"Chadong",
926742,
"qfa-kms",
}
m["cdz"] = {
"Koda",
6425038,
"mun",
"Beng",
}
m["cea"] = {
"Lower Chehalis",
6693377,
"sal",
"Latn",
}
m["ceb"] = {
"เซบัวโน",
33239,
"phi",
"Latn, Tglg",
translit = {
Tglg = "ceb-translit"
},
override_translit = true,
strip_diacritics = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ
}
},
sort_key = {
Latn = "tl-sortkey",
},
standard_chars = {
Latn = "AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy",
c.punc
},
}
m["ceg"] = {
"Chamacoco",
3436637,
"sai-zam",
"Latn",
}
m["cen"] = {
"Cen",
12628777,
"nic-plc",
"Latn",
ancestors = "izr",
}
m["cet"] = {
"Centúúm",
33608,
"qfa-iso", -- northeastern Nigeria
"Latn",
}
m["cfa"] = {
"Dijim-Bwilim",
3438350,
"alv-wjk",
"Latn",
}
m["cfd"] = {
"Cara",
35048,
"nic-beo",
"Latn",
}
m["cfg"] = {
"Como Karim",
35304,
"nic-jkn",
"Latn",
}
m["cfm"] = {
"Falam Chin",
56815,
"tbq-kuk",
"Beng, Latn",
}
m["cga"] = {
"Changriwa",
5072105,
"paa-yua",
"Latn",
}
m["cgc"] = {
"Kagayanen",
6346422,
"mno",
"Latn",
}
m["cgg"] = {
"Rukiga",
3270727,
"bnt-nyg",
"Latn",
}
m["cgk"] = {
"Chocangaca",
56604,
"sit-tib",
"Tibt",
ancestors = "xct",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["chb"] = {
"Chibcha",
2356431,
"cba",
"Latn",
}
m["chc"] = {
"Catawba",
5051602,
"nai-cat",
"Latn",
}
m["chd"] = {
"Highland Oaxaca Chontal",
2964457,
"nai-tqn",
"Latn",
}
m["chf"] = {
"Chontal Maya",
35175,
"myn",
"Latn",
}
m["chg"] = {
"ชากาทาย",
36831,
"trk-kar",
"Arab, Ougr",
ancestors = "zkh",
strip_diacritics = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {u(0x0671)},
to = {u(0x0627)}
},
translit = {
Arab = "chg-translit",
Ougr = "Ougr-translit",
},
}
m["chh"] = {
"Chinook",
6693380,
"nai-ckn",
"Latn",
}
m["chj"] = {
"Ojitlán Chinantec",
5100110,
"omq-chi",
"Latn",
}
m["chk"] = {
"Chuukese",
33161,
"poz-mic",
"Latn",
}
m["chl"] = {
"Cahuilla",
56438,
"azc-cup",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.macron},
}
-- chm "Mari" is not recognized as a language, but it is a family code
m["chn"] = {
"Chinook Jargon",
35173,
"crp",
"Latn, Dupl",
ancestors = "chh, nuk",
}
m["cho"] = {
"Choctaw",
32979,
"nai-mus",
"Latn",
sort_key = {remove_diacritics = c.macronbelow .. "-"},
strip_diacritics = {remove_diacritics = c.acute .. c.dotbelow},
}
m["chp"] = {
"Chipewyan",
27692,
"ath-nor",
"Latn, Cans",
}
m["chq"] = {
"Quiotepec Chinantec",
5758709,
"omq-chi",
"Latn",
}
m["chr"] = {
"เชโรกี",
33388,
"iro",
"Cher",
translit = "Cher-translit",
}
m["cht"] = {
"Cholón",
2591243,
"qfa-unc", -- poorly attested; possibly in a Hibito-Cholon or Cholonan family
"Latn",
}
m["chw"] = {
"Chuabo",
5118412,
"bnt-mak",
"Latn",
}
m["chx"] = {
"Chantyal",
4926344,
"sit-tam",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["chy"] = {
"เชเยนน์",
33265,
"alg",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.dotabove .. "-"},
standard_chars = "AaÁáÀàĀāȦȧEeÉéÈèĒēĖėHhKkMmNnOoÓóÒòŌōȮȯPpSsŠšTtVvXx" .. c.punc, --umlaut and circumflex not allowed
}
m["chz"] = {
"Ozumacín Chinantec",
5100111,
"omq-chi",
"Latn",
}
m["cia"] = {
"Cia-Cia",
35284,
"poz-mun",
"Hang, Latn, Arab",
}
m["cib"] = {
"Ci Gbe",
12952445,
"alv-gbe",
"Latn",
}
m["cic"] = {
"Chickasaw",
33192,
"nai-mus",
"Latn",
}
m["cid"] = {
"Chimariko",
1294251,
"qfa-iso", -- possibly Hokan
"Latn",
}
m["cie"] = {
"Cineni",
56243,
"cdc-cbm",
"Latn",
}
m["cih"] = {
"Chinali",
11855245,
"inc",
"Deva",
ancestors = "sa",
translit = {
Deva = "Deva-translit",
},
}
m["cik"] = {
"Chitkuli Kinnauri",
15615982,
"sit-kin",
}
m["cim"] = {
"คิมบรี",
37053,
"gmw-hgm",
"Latn",
ancestors = "bar",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove .. c.caron},
}
m["cin"] = {
"Cinta Larga",
5121095,
"tup",
"Latn",
}
m["cip"] = {
"Chiapanec",
3364475,
"omq",
"Latn",
}
m["cir"] = {
"Tinrin",
7862281,
"poz-cln",
"Latn",
}
m["ciy"] = {
"Chaima",
12628867,
"sai-ven",
"Latn",
}
m["cja"] = {
"จามตะวันตก",
12645578,
"cmc",
"Latn, Arab, Khmr, Cham", -- Western Cham script is not yet available. Also, Arabic script is missing some glyphs.
}
m["cje"] = {
"Chru",
2967321,
"cmc",
"Latn",
}
m["cjh"] = {
"Upper Chehalis",
2962074,
"sal",
"Latn",
}
m["cji"] = {
"Chamalal",
56567,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["cjk"] = {
"Chokwe",
2422065,
"bnt-clu",
"Latn",
}
m["cjm"] = {
"จามตะวันออก",
2948019,
"cmc",
"Latn, Cham",
}
m["cjn"] = {
"Chenapian",
5091044,
"paa-spk",
"Latn",
}
m["cjo"] = {
"Ashéninka Pajonal",
3450481,
"awd",
"Latn",
}
m["cjp"] = {
"Cabécar",
27878,
"cba",
"Latn",
}
m["cjs"] = {
"โชร์",
34139,
"trk-ssb",
"Cyrl",
}
m["cjv"] = {
"Chuave",
5115226,
"ngf-chw",
"Latn",
}
m["cjy"] = {
"จิ้น",
56479,
"zhx",
"Hants",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["ckb"] = {
"เคิร์ดตอนกลาง",
36811,
"ku",
"ku-Arab",
translit = "ckb-translit",
strip_diacritics = {remove_diacritics = c.kasra .. c.sukun},
}
m["ckh"] = {
"Chak",
12628870,
"sit-luu",
"Latn",
ancestors = "kdv",
}
m["ckl"] = {
"Cibak",
56279,
"cdc-cbm",
"Latn",
}
m["ckn"] = {
"Kaang Chin",
6343432,
"tbq-kuk",
"Latn",
}
m["cko"] = {
"Anufo",
34845,
"alv-ctn",
"Latn",
}
m["ckq"] = {
"Kajakse",
3440422,
"cdc-est",
"Latn",
}
m["ckr"] = {
"Kairak",
3503002,
"paa-bng",
"Latn",
}
m["cks"] = {
"Tayo",
1133089,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["ckt"] = {
"ชุกชี",
33170,
"qfa-ckn",
"Cyrl, Latn", -- Latn is obsolete
strip_diacritics = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = {
from = {"ё", "ӄ", "ԓ", "ӈ"},
to = {"е" .. p[1], "к" .. p[1], "л" .. p[1], "н" .. p[1]}
},
}
m["cku"] = {
"Koasati",
35162,
"nai-mus",
"Latn",
}
m["ckv"] = {
"กบาลัน",
716627,
"map",
"Latn",
}
m["ckx"] = {
"Caka",
5018037,
"nic-tvc",
"Latn",
}
m["cky"] = {
"Cakfem-Mushere",
3441199,
"cdc-wst",
"Latn",
}
m["ckz"] = {
"Kaqchikel-K'iche' Mixed Language",
5054550,
"qfa-mix",
"Latn",
ancestors = "cak, quc"
}
m["cla"] = {
"Ron",
3440432,
"cdc-wst",
"Latn",
}
m["clc"] = {
"Chilcotin",
28535,
"ath-nor",
"Latn",
}
m["cld"] = {
"Chaldean Neo-Aramaic",
33236,
"sem-are",
"Syrc",
strip_diacritics = "Syrc-stripdiacritics",
}
m["cle"] = {
"Lealao Chinantec",
6509365,
"omq-chi",
"Latn",
}
m["clh"] = {
"Chilisso",
3250629,
"inc-koh",
"ur-Arab",
}
m["cli"] = {
"Chakali",
35206,
"nic-gnw",
"Latn",
}
m["clj"] = {
"Laitu Chin",
6474196,
"tbq-kuk",
}
m["clk"] = {
"Idu",
56412,
"sit-gsi",
"Tibt, Deva",
translit = {
Deva = "Deva-translit",
},
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cll"] = {
"Chala",
35190,
"nic-gne",
"Latn",
}
m["clm"] = {
"Klallam",
33404,
"sal",
"Latn",
}
m["clo"] = {
"Lowland Oaxaca Chontal",
2964450,
"nai-tqn",
"Latn",
}
m["clt"] = {
"Lutuv",
6502107,
"tbq-kuk",
"Latn",
}
m["clu"] = {
"Caluyanun",
32964,
"phi",
"Latn",
}
m["clw"] = {
"Chulym",
33125,
"trk-ssb",
"Latn, Cyrl",
}
m["cly"] = {
"Eastern Highland Chatino",
12642078,
"omq-cha",
"Latn",
}
m["cma"] = {
"หมะ",
12953680,
"mkh-ban",
"Latn",
}
m["cme"] = {
"Cerma",
35074,
"nic-gur",
"Latn",
}
m["cmg"] = {
"มองโกเลียคลาสสิก",
5128303,
"xgn-cen",
"Mong, Soyo, Zanb",
-- Mong translit, display_text and strip_diacritics in [[Module:scripts/data]]
}
m["cmi"] = {
"Emberá-Chamí",
3052042,
"sai-chc",
"Latn",
}
m["cml"] = {
"Campalagian",
5027893,
"poz-ssw",
"Latn",
}
m["cmm"] = {
"Michigamea",
12636809,
"sio-msv",
"Latn",
}
m["cmn"] = {
"จีนกลาง",
9192,
"zhx-man",
"Hants, Latn, Bopo, Brai",
wikimedia_codes = "zh",
generate_forms = "zh-generateforms",
translit = {
Hani = "zh-translit",
Bopo = "zh-translit",
},
sort_key = {
Hani = "Hani-sortkey",
Latn = {
from = {
-- Sort terms with tone numbers immediately after equivalent terms with diacritics.
"[aeiouv][" .. c.circ .. c.diaer .. "]?[nr]?g?[0-5]",
-- Add temporary breaks between syllables.
"([aeiouvmn][" .. c.circ .. c.diaer .. "]?[" .. c.macron .. c.acute .. c.caron .. c.grave .. "]?n?ŋ?g?r?)([bpmfdtnlgkhjqxzcsywrv']h?[aeiouvmn ])", p[1] .. "([ngr])$", p[1] .. "([ngr][%s%-'" .. p[1] .. "])",
-- Substitute diacritics for syllable-final tone numbers, and add tone 0 where necessary.
c.macron, c.acute, c.caron, c.grave, "([1-4])([^%s%p" .. p[1] .. "]+)", "([^0-5])%f[%z%s%p" .. p[1] .. "]",
-- Substitute "v" shorthand for "ü" for a temporary placeholder, so that the (very rare) "v" initial is not affected by the later shorthand substitutions.
"([^ " .. p[1] .. "])v",
-- Remove temporary breaks.
p[1],
-- Substitute shorthands for full forms, and sort them immediately after equivalent terms.
"%S*[csz]" .. c.circ .. "%S*", "%S*[ŋ" .. p[2] .. "]%S*", "ĉ", "ŝ", "ŋ", p[2], "ẑ",
-- "ê" comes after "e", "ü" comes after "u" and apostrophes are removed (as their function is replaced by tone numbers).
"[" .. c.circ .. c.diaer .. "]", "'",
-- Sort numbered tone 5 after tone 0.
"5!"
},
to = {
"%0!",
"%1" .. p[1] .. "%2", "%1", "%1",
"1", "2", "3", "4", "%2%1", "%10",
"%1" .. p[2],
"",
"%0\"", "%0\"", "ch", "sh", "ng", "ü", "zh",
p[1], "",
"0!!"
}
},
},
}
m["cmo"] = {
"มนองตอนกลาง",
33369881,
"mkh-ban",
"Khmr, Latn",
}
m["cmr"] = {
"Mro Chin",
16889978,
"tbq-kuk",
}
m["cms"] = {
"Messapic",
36383,
"ine",
"Ital, Latn, Polyt",
-- Ital translit in [[Module:scripts/data]]
-- Polyt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cmt"] = {
"Camtho",
10441336,
"crp",
"Latn",
ancestors = "fly, zu"
}
m["cna"] = {
"Changthang",
12952322,
"sit-lab",
"Tibt",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cnb"] = {
"Chinbon Chin",
12952327,
"tbq-kuk",
"Latn",
}
m["cnc"] = {
"Cốông",
5202780,
"tbq-bis",
"Latn",
}
m["cng"] = {
"Northern Qiang",
56559,
"sit-qia",
"Latn",
}
m["cnh"] = {
"ฮ่าค่า",
3250286,
"tbq-kuk",
"Latn, Mymr",
}
m["cni"] = {
"Asháninka",
3437230,
"awd",
"Latn",
}
m["cnk"] = {
"Khumi Chin",
56308,
"tbq-kuk",
"Latn",
}
m["cnl"] = {
"Lalana Chinantec",
12953437,
"omq-chi",
"Latn",
}
m["cno"] = {
"Con",
3440883,
"mkh-pal",
}
m["cnp"] = {
"ผิงเหนือ",
84302463,
"zhx-pin",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["cns"] = {
"Central Asmat",
11732048,
"ngf-ask",
"Latn",
}
m["cnt"] = {
"Tepetotutla Chinantec",
5100113,
"omq-chi",
"Latn",
}
m["cnu"] = {
"Chenoua",
33276,
"ber",
"Latn",
}
m["cnw"] = {
"Ngawn Chin",
6583675,
"tbq-kuk",
}
m["cnx"] = {
"Middle Cornish",
12642603,
"cel-brs",
"Latn",
ancestors = "oco",
}
m["coa"] = {
"Cocos Islands Malay",
3441699,
"crp",
"Latn",
ancestors = "ms",
}
m["cob"] = {
"Chicomuceltec",
3307204,
"myn",
"Latn",
}
m["coc"] = {
"Cocopa",
33044,
"nai-yuc",
"Latn",
}
m["cod"] = {
"Cocama",
33317,
"tup",
"Latn",
}
m["coe"] = {
"Koreguaje",
3198924,
"sai-tuc",
"Latn",
}
m["cof"] = {
"Tsafiki",
2567055,
"sai-bar",
"Latn",
}
m["cog"] = {
"ชอง",
3914630,
"mkh-pea",
"Thai, Khmr",
translit = {
Khmr = "Khmr-translit",
},
--sort_key = {
-- Thai = "Thai-sortkey"
--},
}
m["coh"] = {
"Chichonyi-Chidzihana-Chikauma",
12629011,
"bnt-mij",
"Latn",
}
m["coj"] = {
"Cochimi",
3915551,
"nai-yuc",
"Latn",
}
m["cok"] = {
"Santa Teresa Cora",
12641754,
"azc",
"Latn",
}
m["col"] = {
"Columbia-Wenatchi",
3324744,
"sal",
"Latn",
}
m["com"] = {
"Comanche",
32972,
"azc-num",
"Latn",
}
m["con"] = {
"Cofán",
2669254,
"qfa-iso",
"Latn",
}
m["coo"] = {
"Comox",
13583746,
"sal",
"Latn",
}
m["cop"] = {
"คอปติก",
36155,
"egx",
"Copt",
translit = "Copt-translit",
ancestors = "egx-dem",
strip_diacritics = {remove_diacritics = c.grave .. c.macron .. c.overline .. c.diaer .. "ˋ"},
sort_key = "Copt-sortkey",
}
m["coq"] = {
"Coquille",
12953452,
"ath-pco",
"Latn",
}
m["cot"] = {
"Caquinte",
3915557,
"awd",
"Latn",
}
m["cou"] = {
"Wamey",
36935,
"alv-ten",
"Latn",
}
m["cov"] = {
"เฉ่าเหมียว",
2936935,
"qfa-tak",
}
m["cow"] = {
"Cowlitz",
3001877,
"sal",
"Latn",
}
m["cox"] = {
"Nanti",
15342275,
"awd",
"Latn",
}
m["coy"] = {
"Coyaima",
56450,
"sai-car",
"Latn",
}
m["coz"] = {
"Chochotec",
2964262,
"omq-pop",
"Latn",
}
m["cpa"] = {
"Palantla Chinantec",
5100112,
"omq-chi",
"Latn",
}
m["cpb"] = {
"Ucayali-Yurúa Ashéninka",
3501858,
"awd",
"Latn",
}
m["cpc"] = {
"Ajyíninka Apurucayali",
3327405,
"awd",
"Latn",
}
m["cpg"] = {
"Cappadocian Greek",
853414,
"grk",
"Grek, fa-Arab",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- Grek display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cpi"] = {
"Chinese Pidgin English",
3435078,
"crp",
"Latn, Hant",
ancestors = "en",
sort_key = {
Hant = "Hani-sortkey"
},
}
m["cpn"] = {
"Cherepon",
35181,
"alv-gng",
"Latn",
}
m["cpo"] = {
"Kpee",
6435722,
"dmn-jje",
}
m["cps"] = {
"Capiznon",
2937525,
"phi",
"Latn",
}
m["cpu"] = {
"Pichis Ashéninka",
7190661,
"awd",
"Latn",
}
m["cpx"] = {
"ผูเซียน",
56583,
"zhx-com",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["cpy"] = {
"South Ucayali Ashéninka",
3501868,
"awd",
"Latn",
}
m["cqd"] = {
"Chuanqiandian Cluster Miao",
121627627,
"hmn",
"Latn, Plrd",
}
m["cra"] = {
"Chara",
5073694,
"omv",
"Latn",
}
m["crb"] = {
"Kalinago",
3450735,
"awd-taa",
"Latn",
}
m["crc"] = {
"Lonwolwol",
3259216,
"poz-vnc",
"Latn",
}
m["crd"] = {
"Coeur d'Alene",
32915,
"sal",
"Latn",
}
m["crf"] = {
"Caramanta",
3504195,
"sai-chc",
"Latn",
}
m["crg"] = {
"Michif",
13315,
"qfa-mix",
"Latn",
ancestors = "cr, fr",
}
m["crh"] = {
"ตาตาร์แบบไครเมีย",
33357,
"trk-kcu",
"Latn, Cyrl",
dotted_dotless_i = true,
sort_key = {
Latn = {
from = {
"[ıi]" .. c.breve, -- Convert ĭ into PUA so that the decomposed form does not get caught by the next step. Also cover decomposed forms with ı and i, as decomposed Ĭ is converted to ı + ̆ due to the dotted dotless I logic).
"i", -- Ensure "i" comes after "ı".
"â", "ç", "ğ", "ı", p[3], "ñ", "ö", "ş", "ü"
},
to = {
p[3],
"i" .. p[1],
"a", "c" .. p[1], "g" .. p[1], "i", "i" .. p[2], "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1],
}
},
Cyrl = {
from = {"гъ", "ё", "къ", "нъ", "дж"},
to = {"г" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "ч" .. p[1]}
},
},
}
m["cri"] = {
"Sãotomense",
36536,
"crp",
"Latn",
ancestors = "pt",
}
m["crj"] = {
"Southern East Cree",
12953464,
"alg",
"Latn, Cans",
ancestors = "cr",
translit = {
Cans = "cr-translit"
},
}
m["crk"] = {
"Plains Cree",
56699,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["crl"] = {
"Northern East Cree",
12642195,
"alg",
"Latn, Cans",
ancestors = "cr",
translit = {
Cans = "cr-translit"
},
}
m["crm"] = {
"Moose Cree",
3446671,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["crn"] = {
"Cora",
12953454,
"azc",
"Latn",
}
m["cro"] = {
"Crow",
1207611,
"sio-mor",
"Latn",
}
m["crq"] = {
"Iyo'wujwa Chorote",
3540927,
"sai-mtc",
"Latn",
}
m["crr"] = {
"Carolina Algonquian",
16113723,
"alg-eas",
"Latn",
}
m["crs"] = {
"Seychellois Creole",
34015,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["crt"] = {
"Iyojwa'ja Chorote",
3504118,
"sai-mtc",
"Latn",
}
m["crv"] = {
"Chaura",
2605680,
"aav-nic",
"Latn",
}
m["crw"] = {
"Chrau",
5105629,
"mkh-ban",
"Latn",
}
m["crx"] = {
"Carrier",
12953431,
"ath-nor",
"Latn, Cans",
}
m["cry"] = {
"Cori",
35204,
"nic-plc",
"Latn",
}
m["crz"] = {
"Cruzeño",
2967636,
"nai-chu",
"Latn",
}
m["csa"] = {
"Chiltepec Chinantec",
12953435,
"omq-chi",
"Latn",
}
m["csb"] = {
"คาชุบ",
33690,
"zlw-pom",
"Latn",
}
m["csc"] = {
"Catalan Sign Language",
35768,
"sgn",
"Latn", -- when documented
}
m["csd"] = {
"Chiangmai Sign Language",
5095211,
"sgn",
}
m["cse"] = {
"Czech Sign Language",
5201809,
"sgn",
"Latn", -- when documented
}
m["csf"] = {
"Cuban Sign Language",
5192046,
"sgn",
"Latn", -- when documented
}
m["csg"] = {
"Chilean Sign Language",
3322112,
"sgn",
"Latn", -- when documented
}
m["csh"] = {
"Asho Chin",
12627282,
"tbq-kuk",
"Latn, Mymr",
}
m["csi"] = {
"Coast Miwok",
2981109,
"nai-utn",
"Latn",
}
m["csj"] = {
"Songlai Chin",
7561280,
"tbq-kuk",
}
m["csk"] = {
"Jola-Kasa",
3446622,
"alv-jol",
"Latn",
}
m["csl"] = {
"Chinese Sign Language",
1094190,
"sgn",
}
m["csm"] = {
"Central Sierra Miwok",
2944443,
"nai-utn",
"Latn",
}
m["csn"] = {
"Colombian Sign Language",
2748229,
"sgn",
"Latn", -- when documented
}
m["cso"] = {
"Sochiapam Chinantec",
7550388,
"omq-chi",
"Latn",
}
m["csp"] = {
"ผิงใต้",
84302019,
"zhx-pin",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["csq"] = {
"Croatian Sign Language",
3507506,
"sgn",
}
m["csr"] = {
"Costa Rican Sign Language",
5174901,
"sgn",
"Latn", -- when documented
}
m["css"] = {
"Southern Ohlone",
25559664,
"nai-utn",
"Latn",
}
m["cst"] = {
"Northern Ohlone",
25559666,
"nai-utn",
"Latn",
}
m["csv"] = {
"Sumtu Chin",
7638087,
"tbq-kuk",
}
m["csw"] = {
"Swampy Cree",
56696,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["csx"] = {
"Cambodian Sign Language",
50934287,
"sgn",
}
m["csy"] = {
"Siyin Chin",
7533375,
"tbq-kuk",
}
m["csz"] = {
"Coos",
3126783,
"nai-coo",
"Latn",
}
m["cta"] = {
"Tataltepec Chatino",
7687853,
"omq-cha",
"Latn",
}
m["ctc"] = {
"Chetco-Tolowa",
12628946,
"ath-pco",
"Latn",
}
m["ctd"] = {
"Tedim Chin",
56357,
"tbq-kuk",
"Latn, Pauc",
}
m["cte"] = {
"Tepinapa Chinantec",
12953443,
"omq-chi",
"Latn",
}
m["ctg"] = {
"Chittagonian",
33173,
"inc-bas",
"Beng",
ancestors = "inc-obn",
}
m["cth"] = {
"Thaiphum Chin",
16912048,
"tbq-kuk",
}
m["ctl"] = {
"Tlacoatzintepec Chinantec",
12643657,
"omq-chi",
"Latn",
}
m["ctm"] = {
"Chitimacha",
1294227,
"qfa-iso", -- recently proposed to be in the Totozoquean family
"Latn",
}
m["ctn"] = {
"Chhintange",
32994,
"sit-kie",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cto"] = {
"Emberá-Catío",
3052039,
"sai-chc",
"Latn",
}
m["ctp"] = {
"Western Highland Chatino",
32861734,
"omq-cha",
"Latn",
strip_diacritics = {remove_diacritics = "¹²³⁴⁵"},
sort_key = {remove_diacritics = c.acute},
}
m["cts"] = {
"Northern Catanduanes Bicolano",
7130477,
"phi",
"Latn",
}
m["ctt"] = {
"Wayanad Chetti",
7975850,
"dra-mal",
"Taml",
}
m["ctu"] = {
"Chol",
35179,
"myn",
"Latn",
}
m["ctz"] = {
"Zacatepec Chatino",
8063754,
"omq-cha",
"Latn",
}
m["cua"] = {
"Cua",
3441115,
"mkh-ban",
"Latn",
}
m["cub"] = {
"Cubeo",
3006705,
"sai-tuc",
"Latn",
}
m["cuc"] = {
"Usila Chinantec",
7901979,
"omq-chi",
"Latn",
}
m["cug"] = {
"Cung",
35194,
"nic-bbe",
"Latn",
}
m["cuh"] = {
"Chuka",
12952344,
"bnt-kka",
"Latn",
}
m["cui"] = {
"Cuiba",
2980421,
"sai-guh",
"Latn",
}
m["cuj"] = {
"Mashco Piro",
3446596,
"awd",
"Latn",
}
m["cuk"] = {
"Kuna",
12953659,
"cba",
"Latn",
}
m["cul"] = {
"Culina",
2475442,
"auf",
"Latn",
}
m["cuo"] = {
"Cumanagoto",
5193784,
"sai-cpc",
"Latn",
}
m["cup"] = {
"Cupeño",
143130,
"azc-cup",
"Latn",
}
m["cuq"] = {
"จุน",
2475478,
"qfa-lic",
"Latn",
}
m["cur"] = {
"Chhulung",
5116126,
"sit-kie",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cut"] = {
"Teutila Cuicatec",
12953453,
"omq-cui",
"Latn",
}
m["cuu"] = {
"Tai Ya",
3441122,
"qfa-tak",
"Latn",
}
m["cuv"] = {
"Cuvok",
3515056,
"cdc-cbm",
"Latn",
}
m["cuw"] = {
"Chukwa",
12629033,
"sit-kic",
}
m["cux"] = {
"Tepeuxila Cuicatec",
20527242,
"omq-cui",
"Latn",
}
m["cuy"] = {
"Cuitlatec",
2030998,
"qfa-iso",
"Latn",
}
m["cvg"] = {
"Chug",
47683644,
"sit-khc",
"Tibt, Latn",
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
-- (NOTE: formerly not present, probably an accidental omission)
}
m["cvn"] = {
"Valle Nacional Chinantec",
12953442,
"omq-chi",
"Latn",
}
m["cwa"] = {
"Kabwa",
6344537,
"bnt-lok",
"Latn",
}
m["cwb"] = {
"Maindo",
11002891,
"bnt-mak",
"Latn",
ancestors = "chw",
}
m["cwd"] = {
"Woods Cree",
56305,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["cwe"] = {
"Kwere",
779632,
"bnt-ruv",
"Latn",
}
m["cwg"] = {
"Chewong",
646718,
"mkh-asl",
"Latn",
}
m["cwt"] = {
"Kuwaataay",
35699,
"alv-jol",
"Latn",
}
m["cya"] = {
"Nopala Chatino",
15616302,
"omq-cha",
"Latn",
}
m["cyb"] = {
"Cayubaba",
3183382,
"qfa-iso",
"Latn",
}
m["cyo"] = {
"Cuyunon",
33153,
"phi",
"Latn",
}
m["czh"] = {
"Huizhou",
56546,
"zhx",
"Hants", -- ?
ancestors = "ltc",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["czk"] = {
"Knaanic",
56384,
"zlw",
"Hebr",
ancestors = "zlw-ocs",
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["czn"] = {
"Zenzontepec Chatino",
603106,
"omq-cha",
"Latn",
}
m["czo"] = {
"หมิ่นตอนกลาง",
56435,
"zhx-inm",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["czt"] = {
"Zotung Chin",
8074599,
"tbq-kuk",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
75ksawbmqmcf9uek9e4azhgckxdt3fp
5771089
5771087
2026-10-03T01:27:27Z
Octahedron80
267
5771089
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["caa"] = {
"Ch'orti'",
35177,
"myn",
"Latn",
}
m["cab"] = {
"Garifuna",
35490,
"awd-taa",
"Latn",
ancestors = "crb",
}
m["cac"] = {
"Chuj",
35233,
"myn",
"Latn",
}
m["cad"] = {
"Caddo",
56756,
"cdd",
"Latn",
}
m["cae"] = {
"Laalaa",
35564,
"alv-cng",
"Latn",
}
m["caf"] = {
"Southern Carrier",
12953426,
"ath-nor",
"Latn",
}
m["cag"] = {
"Nivaclé",
3182557,
"sai-mtc",
"Latn",
}
m["cah"] = {
"Cahuarano",
2933175,
"sai-zap",
"Latn",
}
m["caj"] = {
"Chané",
56721,
"awd",
"Latn",
}
m["cak"] = {
"Kaqchikel",
35115,
"myn",
"Latn",
}
m["cal"] = {
"Carolinian",
28427,
"poz-mic",
"Latn",
}
m["cam"] = {
"Cèmuhî",
3009690,
"poz-cln",
"Latn",
}
m["can"] = {
"Chambri",
5069707,
"paa-lsp",
"Latn",
}
m["cao"] = {
"Chácobo",
2591202,
"sai-pan",
"Latn",
}
m["cap"] = {
"Chipaya",
35235,
"sai-ucp",
"Latn",
}
m["caq"] = {
"คาร์นิโคบาร์",
35156,
"aav-nic",
"Latn, Deva",
}
m["car"] = {
"Kari'na",
56611,
"sai-gui",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. "`" .. "'%-%s"},
strip_diacritics = {
remove_diacritics = c.acute,
from = {"â", "ê", "î", "ô", "û", "ŷ"},
to = {"à", "è", "ì", "ò", "ù", "ỳ"}
},
}
m["cas"] = {
"Tsimané",
35950,
"qfa-iso",
"Latn",
}
m["cav"] = {
"Cavineña",
524102,
"sai-tac",
"Latn",
}
m["caw"] = {
"Kallawaya",
266417,
"qfa-mix",
"Latn",
}
m["cax"] = {
"Chiquitano",
1844993,
"qfa-iso",
"Latn",
}
m["cay"] = {
"Cayuga",
32967,
"iro-nor",
"Latn",
}
m["caz"] = {
"Canichana",
2936374,
"qfa-iso",
"Latn",
}
m["cbb"] = {
"Cabiyarí",
3450660,
"awd-nwk",
"Latn",
}
m["cbc"] = {
"Carapana",
924405,
"sai-tuc",
"Latn",
}
m["cbd"] = {
"Carijona",
3446655,
"sai-tar",
"Latn",
}
m["cbg"] = {
"Chimila",
2963680,
"cba",
"Latn",
}
m["cbi"] = {
"Chachi",
2591329,
"sai-bar",
"Latn",
}
m["cbj"] = {
"Ede Cabe",
33112829,
"alv-ede",
"Latn",
}
m["cbk"] = {
"ชาบากาโน",
33281,
"crp",
"Latn",
ancestors = "es",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer},
sort_key = {
from = {"ch", "ll", "ñ", "r"},
to = {"c" .. p[1], "l" .. p[1], "n" .. p[1], "r" .. p[1]}
},
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnÑñOoPpQqRrSsTtUuVvWwXxYyZz" .. c.punc,
}
m["cbl"] = {
"Bualkhaw Chin",
9229830,
"tbq-kuk",
"Latn",
}
m["cbn"] = {
"ญัฮกุร",
116849,
"mkh-mnc",
"Thai",
ancestors = "omx",
--sort_key = "Thai-sortkey",
}
m["cbo"] = {
"Izora",
3915454,
"nic-jer",
"Latn",
}
m["cbq"] = {
"Tsucuba",
62603062,
"nic-knj",
"Latn",
}
m["cbr"] = {
"Cashibo-Cacataibo",
5359560,
"sai-pan",
"Latn",
}
m["cbs"] = {
"Cashinahua",
2591230,
"sai-pan",
"Latn",
}
m["cbt"] = {
"Chayahuita",
1526525,
"sai-cah",
"Latn",
}
m["cbu"] = {
"Candoshi-Shapra",
642843,
"qfa-iso",
"Latn",
}
m["cbv"] = {
"Cacua",
3192052,
"sai-nad",
"Latn",
ancestors = "mbr",
}
m["cbw"] = {
"Kinabalian",
6410324,
"phi",
"Latn",
}
m["cby"] = {
"Carabayo",
3441762,
"sai-tyu",
"Latn",
}
m["cca"] = {
"Cauca",
5054242,
"sai-chc",
"Latn",
}
m["ccc"] = {
"Chamicuro",
2155119,
"awd",
"Latn",
}
m["ccd"] = {
"Cafundó",
3331506,
"roa-gap",
"Latn",
ancestors = "pt",
}
m["cce"] = {
"Chopi",
3437616,
"bnt-bso",
"Latn",
}
m["ccg"] = {
"Chamba Daka",
33120805,
"nic-dak",
"Latn",
}
m["cch"] = {
"Atsam",
34794,
"nic-kne",
"Latn",
}
m["ccj"] = {
"Kasanga",
35542,
"alv-nyn",
"Latn",
}
m["ccl"] = {
"Cutchi-Swahili",
5196729,
"crp",
"Latn",
ancestors = "sw",
}
m["ccm"] = {
"Malaccan Creole Malay",
12636092,
"crp",
"Latn",
ancestors = "ms",
}
m["cco"] = {
"Comaltepec Chinantec",
2963735,
"omq-chi",
"Latn",
}
m["ccp"] = {
"จักมา",
32952,
"inc-bas",
"Cakm, Beng, Latn",
ancestors = "inc-obn",
translit = {
Cakm = "Cakm-translit",
Beng = "Beng-translit",
},
}
m["ccr"] = {
"Cacaopera",
3438338,
"nai-min",
"Latn",
}
m["cda"] = {
"Choni",
2964447,
"sit-tib",
}
m["cde"] = {
"Chenchu",
32981,
"dra-tel",
"Telu",
}
m["cdf"] = {
"Chiru",
5102016,
"tbq-kuk",
"Latn, Beng",
}
m["cdh"] = {
"Chambeali",
12953424,
"him",
"Deva, Takr",
translit = {
Deva = "Deva-translit",
},
}
m["cdi"] = {
"Chodri",
5103788,
"inc-bhi",
"Gujr",
}
m["cdj"] = {
"Churahi",
12629039,
"him",
"Deva, Takr",
translit = {
Deva = "Deva-translit",
},
}
m["cdm"] = {
"Chepang",
5091700,
"sit-gma",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cdn"] = {
"Chaudangsi",
5088056,
"sit-alm",
}
m["cdo"] = {
"หมิ่นตะวันออก",
36455,
"zhx-com",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["cdr"] = {
"Cinda-Regi-Tiyal",
35596,
"nic-kmk",
"Latn",
}
m["cds"] = {
"Chadian Sign Language",
10322099,
"sgn",
"Latn", -- when documented
}
m["cdy"] = {
"Chadong",
926742,
"qfa-kms",
}
m["cdz"] = {
"Koda",
6425038,
"mun",
"Beng",
}
m["cea"] = {
"Lower Chehalis",
6693377,
"sal",
"Latn",
}
m["ceb"] = {
"เซบัวโน",
33239,
"phi",
"Latn, Tglg",
translit = {
Tglg = "ceb-translit"
},
override_translit = true,
strip_diacritics = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ
}
},
sort_key = {
Latn = "tl-sortkey",
},
standard_chars = {
Latn = "AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy",
c.punc
},
}
m["ceg"] = {
"Chamacoco",
3436637,
"sai-zam",
"Latn",
}
m["cen"] = {
"Cen",
12628777,
"nic-plc",
"Latn",
ancestors = "izr",
}
m["cet"] = {
"Centúúm",
33608,
"qfa-iso", -- northeastern Nigeria
"Latn",
}
m["cfa"] = {
"Dijim-Bwilim",
3438350,
"alv-wjk",
"Latn",
}
m["cfd"] = {
"Cara",
35048,
"nic-beo",
"Latn",
}
m["cfg"] = {
"Como Karim",
35304,
"nic-jkn",
"Latn",
}
m["cfm"] = {
"Falam Chin",
56815,
"tbq-kuk",
"Beng, Latn",
}
m["cga"] = {
"Changriwa",
5072105,
"paa-yua",
"Latn",
}
m["cgc"] = {
"Kagayanen",
6346422,
"mno",
"Latn",
}
m["cgg"] = {
"Rukiga",
3270727,
"bnt-nyg",
"Latn",
}
m["cgk"] = {
"Chocangaca",
56604,
"sit-tib",
"Tibt",
ancestors = "xct",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["chb"] = {
"Chibcha",
2356431,
"cba",
"Latn",
}
m["chc"] = {
"Catawba",
5051602,
"nai-cat",
"Latn",
}
m["chd"] = {
"Highland Oaxaca Chontal",
2964457,
"nai-tqn",
"Latn",
}
m["chf"] = {
"Chontal Maya",
35175,
"myn",
"Latn",
}
m["chg"] = {
"ชากาทาย",
36831,
"trk-kar",
"Arab, Ougr",
ancestors = "zkh",
strip_diacritics = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {u(0x0671)},
to = {u(0x0627)}
},
translit = {
Arab = "chg-translit",
Ougr = "Ougr-translit",
},
}
m["chh"] = {
"Chinook",
6693380,
"nai-ckn",
"Latn",
}
m["chj"] = {
"Ojitlán Chinantec",
5100110,
"omq-chi",
"Latn",
}
m["chk"] = {
"Chuukese",
33161,
"poz-mic",
"Latn",
}
m["chl"] = {
"Cahuilla",
56438,
"azc-cup",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.macron},
}
-- chm "Mari" is not recognized as a language, but it is a family code
m["chn"] = {
"Chinook Jargon",
35173,
"crp",
"Latn, Dupl",
ancestors = "chh, nuk",
}
m["cho"] = {
"Choctaw",
32979,
"nai-mus",
"Latn",
sort_key = {remove_diacritics = c.macronbelow .. "-"},
strip_diacritics = {remove_diacritics = c.acute .. c.dotbelow},
}
m["chp"] = {
"Chipewyan",
27692,
"ath-nor",
"Latn, Cans",
}
m["chq"] = {
"Quiotepec Chinantec",
5758709,
"omq-chi",
"Latn",
}
m["chr"] = {
"เชโรกี",
33388,
"iro",
"Cher",
translit = "Cher-translit",
}
m["cht"] = {
"Cholón",
2591243,
"qfa-unc", -- poorly attested; possibly in a Hibito-Cholon or Cholonan family
"Latn",
}
m["chw"] = {
"Chuabo",
5118412,
"bnt-mak",
"Latn",
}
m["chx"] = {
"Chantyal",
4926344,
"sit-tam",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["chy"] = {
"เชเยนน์",
33265,
"alg",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.dotabove .. "-"},
standard_chars = "AaÁáÀàĀāȦȧEeÉéÈèĒēĖėHhKkMmNnOoÓóÒòŌōȮȯPpSsŠšTtVvXx" .. c.punc, --umlaut and circumflex not allowed
}
m["chz"] = {
"Ozumacín Chinantec",
5100111,
"omq-chi",
"Latn",
}
m["cia"] = {
"Cia-Cia",
35284,
"poz-mun",
"Hang, Latn, Arab",
}
m["cib"] = {
"Ci Gbe",
12952445,
"alv-gbe",
"Latn",
}
m["cic"] = {
"Chickasaw",
33192,
"nai-mus",
"Latn",
}
m["cid"] = {
"Chimariko",
1294251,
"qfa-iso", -- possibly Hokan
"Latn",
}
m["cie"] = {
"Cineni",
56243,
"cdc-cbm",
"Latn",
}
m["cih"] = {
"Chinali",
11855245,
"inc",
"Deva",
ancestors = "sa",
translit = {
Deva = "Deva-translit",
},
}
m["cik"] = {
"Chitkuli Kinnauri",
15615982,
"sit-kin",
}
m["cim"] = {
"คิมบรี",
37053,
"gmw-hgm",
"Latn",
ancestors = "bar",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove .. c.caron},
}
m["cin"] = {
"Cinta Larga",
5121095,
"tup",
"Latn",
}
m["cip"] = {
"Chiapanec",
3364475,
"omq",
"Latn",
}
m["cir"] = {
"Tinrin",
7862281,
"poz-cln",
"Latn",
}
m["ciy"] = {
"Chaima",
12628867,
"sai-ven",
"Latn",
}
m["cja"] = {
"จามตะวันตก",
12645578,
"cmc",
"Latn, Arab, Khmr, Cham", -- Western Cham script is not yet available. Also, Arabic script is missing some glyphs.
}
m["cje"] = {
"Chru",
2967321,
"cmc",
"Latn",
}
m["cjh"] = {
"Upper Chehalis",
2962074,
"sal",
"Latn",
}
m["cji"] = {
"Chamalal",
56567,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["cjk"] = {
"Chokwe",
2422065,
"bnt-clu",
"Latn",
}
m["cjm"] = {
"จามตะวันออก",
2948019,
"cmc",
"Latn, Cham",
}
m["cjn"] = {
"Chenapian",
5091044,
"paa-spk",
"Latn",
}
m["cjo"] = {
"Ashéninka Pajonal",
3450481,
"awd",
"Latn",
}
m["cjp"] = {
"Cabécar",
27878,
"cba",
"Latn",
}
m["cjs"] = {
"โชร์",
34139,
"trk-ssb",
"Cyrl",
}
m["cjv"] = {
"Chuave",
5115226,
"ngf-chw",
"Latn",
}
m["cjy"] = {
"จิ้น",
56479,
"zhx",
"Hants",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["ckb"] = {
"เคิร์ดตอนกลาง",
36811,
"ku",
"ku-Arab",
translit = "ckb-translit",
strip_diacritics = {remove_diacritics = c.kasra .. c.sukun},
}
m["ckh"] = {
"Chak",
12628870,
"sit-luu",
"Latn",
ancestors = "kdv",
}
m["ckl"] = {
"Cibak",
56279,
"cdc-cbm",
"Latn",
}
m["ckn"] = {
"Kaang Chin",
6343432,
"tbq-kuk",
"Latn",
}
m["cko"] = {
"Anufo",
34845,
"alv-ctn",
"Latn",
}
m["ckq"] = {
"Kajakse",
3440422,
"cdc-est",
"Latn",
}
m["ckr"] = {
"Kairak",
3503002,
"paa-bng",
"Latn",
}
m["cks"] = {
"Tayo",
1133089,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["ckt"] = {
"ชุกชี",
33170,
"qfa-ckn",
"Cyrl, Latn", -- Latn is obsolete
strip_diacritics = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = {
from = {"ё", "ӄ", "ԓ", "ӈ"},
to = {"е" .. p[1], "к" .. p[1], "л" .. p[1], "н" .. p[1]}
},
}
m["cku"] = {
"Koasati",
35162,
"nai-mus",
"Latn",
}
m["ckv"] = {
"กบาลัน",
716627,
"map",
"Latn",
}
m["ckx"] = {
"Caka",
5018037,
"nic-tvc",
"Latn",
}
m["cky"] = {
"Cakfem-Mushere",
3441199,
"cdc-wst",
"Latn",
}
m["ckz"] = {
"Kaqchikel-K'iche' Mixed Language",
5054550,
"qfa-mix",
"Latn",
ancestors = "cak, quc"
}
m["cla"] = {
"Ron",
3440432,
"cdc-wst",
"Latn",
}
m["clc"] = {
"Chilcotin",
28535,
"ath-nor",
"Latn",
}
m["cld"] = {
"Chaldean Neo-Aramaic",
33236,
"sem-are",
"Syrc",
strip_diacritics = "Syrc-stripdiacritics",
}
m["cle"] = {
"Lealao Chinantec",
6509365,
"omq-chi",
"Latn",
}
m["clh"] = {
"Chilisso",
3250629,
"inc-koh",
"ur-Arab",
}
m["cli"] = {
"Chakali",
35206,
"nic-gnw",
"Latn",
}
m["clj"] = {
"Laitu Chin",
6474196,
"tbq-kuk",
}
m["clk"] = {
"Idu",
56412,
"sit-gsi",
"Tibt, Deva",
translit = {
Deva = "Deva-translit",
},
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cll"] = {
"Chala",
35190,
"nic-gne",
"Latn",
}
m["clm"] = {
"Klallam",
33404,
"sal",
"Latn",
}
m["clo"] = {
"Lowland Oaxaca Chontal",
2964450,
"nai-tqn",
"Latn",
}
m["clt"] = {
"Lutuv",
6502107,
"tbq-kuk",
"Latn",
}
m["clu"] = {
"Caluyanun",
32964,
"phi",
"Latn",
}
m["clw"] = {
"Chulym",
33125,
"trk-ssb",
"Latn, Cyrl",
}
m["cly"] = {
"Eastern Highland Chatino",
12642078,
"omq-cha",
"Latn",
}
m["cma"] = {
"หมะ",
12953680,
"mkh-ban",
"Latn",
}
m["cme"] = {
"Cerma",
35074,
"nic-gur",
"Latn",
}
m["cmg"] = {
"มองโกเลียคลาสสิก",
5128303,
"xgn-cen",
"Mong, Soyo, Zanb",
-- Mong translit, display_text and strip_diacritics in [[Module:scripts/data]]
}
m["cmi"] = {
"Emberá-Chamí",
3052042,
"sai-chc",
"Latn",
}
m["cml"] = {
"Campalagian",
5027893,
"poz-ssw",
"Latn",
}
m["cmm"] = {
"Michigamea",
12636809,
"sio-msv",
"Latn",
}
m["cmn"] = {
"จีนกลาง",
9192,
"zhx-man",
"Hants, Latn, Bopo, Brai",
wikimedia_codes = "zh",
generate_forms = "zh-generateforms",
translit = {
Hani = "zh-translit",
Bopo = "zh-translit",
},
sort_key = {
Hani = "Hani-sortkey",
Latn = {
from = {
-- Sort terms with tone numbers immediately after equivalent terms with diacritics.
"[aeiouv][" .. c.circ .. c.diaer .. "]?[nr]?g?[0-5]",
-- Add temporary breaks between syllables.
"([aeiouvmn][" .. c.circ .. c.diaer .. "]?[" .. c.macron .. c.acute .. c.caron .. c.grave .. "]?n?ŋ?g?r?)([bpmfdtnlgkhjqxzcsywrv']h?[aeiouvmn ])", p[1] .. "([ngr])$", p[1] .. "([ngr][%s%-'" .. p[1] .. "])",
-- Substitute diacritics for syllable-final tone numbers, and add tone 0 where necessary.
c.macron, c.acute, c.caron, c.grave, "([1-4])([^%s%p" .. p[1] .. "]+)", "([^0-5])%f[%z%s%p" .. p[1] .. "]",
-- Substitute "v" shorthand for "ü" for a temporary placeholder, so that the (very rare) "v" initial is not affected by the later shorthand substitutions.
"([^ " .. p[1] .. "])v",
-- Remove temporary breaks.
p[1],
-- Substitute shorthands for full forms, and sort them immediately after equivalent terms.
"%S*[csz]" .. c.circ .. "%S*", "%S*[ŋ" .. p[2] .. "]%S*", "ĉ", "ŝ", "ŋ", p[2], "ẑ",
-- "ê" comes after "e", "ü" comes after "u" and apostrophes are removed (as their function is replaced by tone numbers).
"[" .. c.circ .. c.diaer .. "]", "'",
-- Sort numbered tone 5 after tone 0.
"5!"
},
to = {
"%0!",
"%1" .. p[1] .. "%2", "%1", "%1",
"1", "2", "3", "4", "%2%1", "%10",
"%1" .. p[2],
"",
"%0\"", "%0\"", "ch", "sh", "ng", "ü", "zh",
p[1], "",
"0!!"
}
},
},
}
m["cmo"] = {
"มนองตอนกลาง",
33369881,
"mkh-ban",
"Khmr, Latn",
}
m["cmr"] = {
"Mro Chin",
16889978,
"tbq-kuk",
}
m["cms"] = {
"Messapic",
36383,
"ine",
"Ital, Latn, Polyt",
-- Ital translit in [[Module:scripts/data]]
-- Polyt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cmt"] = {
"Camtho",
10441336,
"crp",
"Latn",
ancestors = "fly, zu"
}
m["cna"] = {
"Changthang",
12952322,
"sit-lab",
"Tibt",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cnb"] = {
"Chinbon Chin",
12952327,
"tbq-kuk",
"Latn",
}
m["cnc"] = {
"Cốông",
5202780,
"tbq-bis",
"Latn",
}
m["cng"] = {
"Northern Qiang",
56559,
"sit-qia",
"Latn",
}
m["cnh"] = {
"ฮาคา",
3250286,
"tbq-kuk",
"Latn, Mymr",
}
m["cni"] = {
"Asháninka",
3437230,
"awd",
"Latn",
}
m["cnk"] = {
"Khumi Chin",
56308,
"tbq-kuk",
"Latn",
}
m["cnl"] = {
"Lalana Chinantec",
12953437,
"omq-chi",
"Latn",
}
m["cno"] = {
"Con",
3440883,
"mkh-pal",
}
m["cnp"] = {
"ผิงเหนือ",
84302463,
"zhx-pin",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["cns"] = {
"Central Asmat",
11732048,
"ngf-ask",
"Latn",
}
m["cnt"] = {
"Tepetotutla Chinantec",
5100113,
"omq-chi",
"Latn",
}
m["cnu"] = {
"Chenoua",
33276,
"ber",
"Latn",
}
m["cnw"] = {
"Ngawn Chin",
6583675,
"tbq-kuk",
}
m["cnx"] = {
"Middle Cornish",
12642603,
"cel-brs",
"Latn",
ancestors = "oco",
}
m["coa"] = {
"Cocos Islands Malay",
3441699,
"crp",
"Latn",
ancestors = "ms",
}
m["cob"] = {
"Chicomuceltec",
3307204,
"myn",
"Latn",
}
m["coc"] = {
"Cocopa",
33044,
"nai-yuc",
"Latn",
}
m["cod"] = {
"Cocama",
33317,
"tup",
"Latn",
}
m["coe"] = {
"Koreguaje",
3198924,
"sai-tuc",
"Latn",
}
m["cof"] = {
"Tsafiki",
2567055,
"sai-bar",
"Latn",
}
m["cog"] = {
"ชอง",
3914630,
"mkh-pea",
"Thai, Khmr",
translit = {
Khmr = "Khmr-translit",
},
--sort_key = {
-- Thai = "Thai-sortkey"
--},
}
m["coh"] = {
"Chichonyi-Chidzihana-Chikauma",
12629011,
"bnt-mij",
"Latn",
}
m["coj"] = {
"Cochimi",
3915551,
"nai-yuc",
"Latn",
}
m["cok"] = {
"Santa Teresa Cora",
12641754,
"azc",
"Latn",
}
m["col"] = {
"Columbia-Wenatchi",
3324744,
"sal",
"Latn",
}
m["com"] = {
"Comanche",
32972,
"azc-num",
"Latn",
}
m["con"] = {
"Cofán",
2669254,
"qfa-iso",
"Latn",
}
m["coo"] = {
"Comox",
13583746,
"sal",
"Latn",
}
m["cop"] = {
"คอปติก",
36155,
"egx",
"Copt",
translit = "Copt-translit",
ancestors = "egx-dem",
strip_diacritics = {remove_diacritics = c.grave .. c.macron .. c.overline .. c.diaer .. "ˋ"},
sort_key = "Copt-sortkey",
}
m["coq"] = {
"Coquille",
12953452,
"ath-pco",
"Latn",
}
m["cot"] = {
"Caquinte",
3915557,
"awd",
"Latn",
}
m["cou"] = {
"Wamey",
36935,
"alv-ten",
"Latn",
}
m["cov"] = {
"เฉ่าเหมียว",
2936935,
"qfa-tak",
}
m["cow"] = {
"Cowlitz",
3001877,
"sal",
"Latn",
}
m["cox"] = {
"Nanti",
15342275,
"awd",
"Latn",
}
m["coy"] = {
"Coyaima",
56450,
"sai-car",
"Latn",
}
m["coz"] = {
"Chochotec",
2964262,
"omq-pop",
"Latn",
}
m["cpa"] = {
"Palantla Chinantec",
5100112,
"omq-chi",
"Latn",
}
m["cpb"] = {
"Ucayali-Yurúa Ashéninka",
3501858,
"awd",
"Latn",
}
m["cpc"] = {
"Ajyíninka Apurucayali",
3327405,
"awd",
"Latn",
}
m["cpg"] = {
"Cappadocian Greek",
853414,
"grk",
"Grek, fa-Arab",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- Grek display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cpi"] = {
"Chinese Pidgin English",
3435078,
"crp",
"Latn, Hant",
ancestors = "en",
sort_key = {
Hant = "Hani-sortkey"
},
}
m["cpn"] = {
"Cherepon",
35181,
"alv-gng",
"Latn",
}
m["cpo"] = {
"Kpee",
6435722,
"dmn-jje",
}
m["cps"] = {
"Capiznon",
2937525,
"phi",
"Latn",
}
m["cpu"] = {
"Pichis Ashéninka",
7190661,
"awd",
"Latn",
}
m["cpx"] = {
"ผูเซียน",
56583,
"zhx-com",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["cpy"] = {
"South Ucayali Ashéninka",
3501868,
"awd",
"Latn",
}
m["cqd"] = {
"Chuanqiandian Cluster Miao",
121627627,
"hmn",
"Latn, Plrd",
}
m["cra"] = {
"Chara",
5073694,
"omv",
"Latn",
}
m["crb"] = {
"Kalinago",
3450735,
"awd-taa",
"Latn",
}
m["crc"] = {
"Lonwolwol",
3259216,
"poz-vnc",
"Latn",
}
m["crd"] = {
"Coeur d'Alene",
32915,
"sal",
"Latn",
}
m["crf"] = {
"Caramanta",
3504195,
"sai-chc",
"Latn",
}
m["crg"] = {
"Michif",
13315,
"qfa-mix",
"Latn",
ancestors = "cr, fr",
}
m["crh"] = {
"ตาตาร์แบบไครเมีย",
33357,
"trk-kcu",
"Latn, Cyrl",
dotted_dotless_i = true,
sort_key = {
Latn = {
from = {
"[ıi]" .. c.breve, -- Convert ĭ into PUA so that the decomposed form does not get caught by the next step. Also cover decomposed forms with ı and i, as decomposed Ĭ is converted to ı + ̆ due to the dotted dotless I logic).
"i", -- Ensure "i" comes after "ı".
"â", "ç", "ğ", "ı", p[3], "ñ", "ö", "ş", "ü"
},
to = {
p[3],
"i" .. p[1],
"a", "c" .. p[1], "g" .. p[1], "i", "i" .. p[2], "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1],
}
},
Cyrl = {
from = {"гъ", "ё", "къ", "нъ", "дж"},
to = {"г" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "ч" .. p[1]}
},
},
}
m["cri"] = {
"Sãotomense",
36536,
"crp",
"Latn",
ancestors = "pt",
}
m["crj"] = {
"Southern East Cree",
12953464,
"alg",
"Latn, Cans",
ancestors = "cr",
translit = {
Cans = "cr-translit"
},
}
m["crk"] = {
"Plains Cree",
56699,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["crl"] = {
"Northern East Cree",
12642195,
"alg",
"Latn, Cans",
ancestors = "cr",
translit = {
Cans = "cr-translit"
},
}
m["crm"] = {
"Moose Cree",
3446671,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["crn"] = {
"Cora",
12953454,
"azc",
"Latn",
}
m["cro"] = {
"Crow",
1207611,
"sio-mor",
"Latn",
}
m["crq"] = {
"Iyo'wujwa Chorote",
3540927,
"sai-mtc",
"Latn",
}
m["crr"] = {
"Carolina Algonquian",
16113723,
"alg-eas",
"Latn",
}
m["crs"] = {
"Seychellois Creole",
34015,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["crt"] = {
"Iyojwa'ja Chorote",
3504118,
"sai-mtc",
"Latn",
}
m["crv"] = {
"Chaura",
2605680,
"aav-nic",
"Latn",
}
m["crw"] = {
"Chrau",
5105629,
"mkh-ban",
"Latn",
}
m["crx"] = {
"Carrier",
12953431,
"ath-nor",
"Latn, Cans",
}
m["cry"] = {
"Cori",
35204,
"nic-plc",
"Latn",
}
m["crz"] = {
"Cruzeño",
2967636,
"nai-chu",
"Latn",
}
m["csa"] = {
"Chiltepec Chinantec",
12953435,
"omq-chi",
"Latn",
}
m["csb"] = {
"คาชุบ",
33690,
"zlw-pom",
"Latn",
}
m["csc"] = {
"Catalan Sign Language",
35768,
"sgn",
"Latn", -- when documented
}
m["csd"] = {
"Chiangmai Sign Language",
5095211,
"sgn",
}
m["cse"] = {
"Czech Sign Language",
5201809,
"sgn",
"Latn", -- when documented
}
m["csf"] = {
"Cuban Sign Language",
5192046,
"sgn",
"Latn", -- when documented
}
m["csg"] = {
"Chilean Sign Language",
3322112,
"sgn",
"Latn", -- when documented
}
m["csh"] = {
"Asho Chin",
12627282,
"tbq-kuk",
"Latn, Mymr",
}
m["csi"] = {
"Coast Miwok",
2981109,
"nai-utn",
"Latn",
}
m["csj"] = {
"Songlai Chin",
7561280,
"tbq-kuk",
}
m["csk"] = {
"Jola-Kasa",
3446622,
"alv-jol",
"Latn",
}
m["csl"] = {
"Chinese Sign Language",
1094190,
"sgn",
}
m["csm"] = {
"Central Sierra Miwok",
2944443,
"nai-utn",
"Latn",
}
m["csn"] = {
"Colombian Sign Language",
2748229,
"sgn",
"Latn", -- when documented
}
m["cso"] = {
"Sochiapam Chinantec",
7550388,
"omq-chi",
"Latn",
}
m["csp"] = {
"ผิงใต้",
84302019,
"zhx-pin",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["csq"] = {
"Croatian Sign Language",
3507506,
"sgn",
}
m["csr"] = {
"Costa Rican Sign Language",
5174901,
"sgn",
"Latn", -- when documented
}
m["css"] = {
"Southern Ohlone",
25559664,
"nai-utn",
"Latn",
}
m["cst"] = {
"Northern Ohlone",
25559666,
"nai-utn",
"Latn",
}
m["csv"] = {
"Sumtu Chin",
7638087,
"tbq-kuk",
}
m["csw"] = {
"Swampy Cree",
56696,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["csx"] = {
"Cambodian Sign Language",
50934287,
"sgn",
}
m["csy"] = {
"Siyin Chin",
7533375,
"tbq-kuk",
}
m["csz"] = {
"Coos",
3126783,
"nai-coo",
"Latn",
}
m["cta"] = {
"Tataltepec Chatino",
7687853,
"omq-cha",
"Latn",
}
m["ctc"] = {
"Chetco-Tolowa",
12628946,
"ath-pco",
"Latn",
}
m["ctd"] = {
"Tedim Chin",
56357,
"tbq-kuk",
"Latn, Pauc",
}
m["cte"] = {
"Tepinapa Chinantec",
12953443,
"omq-chi",
"Latn",
}
m["ctg"] = {
"Chittagonian",
33173,
"inc-bas",
"Beng",
ancestors = "inc-obn",
}
m["cth"] = {
"Thaiphum Chin",
16912048,
"tbq-kuk",
}
m["ctl"] = {
"Tlacoatzintepec Chinantec",
12643657,
"omq-chi",
"Latn",
}
m["ctm"] = {
"Chitimacha",
1294227,
"qfa-iso", -- recently proposed to be in the Totozoquean family
"Latn",
}
m["ctn"] = {
"Chhintange",
32994,
"sit-kie",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cto"] = {
"Emberá-Catío",
3052039,
"sai-chc",
"Latn",
}
m["ctp"] = {
"Western Highland Chatino",
32861734,
"omq-cha",
"Latn",
strip_diacritics = {remove_diacritics = "¹²³⁴⁵"},
sort_key = {remove_diacritics = c.acute},
}
m["cts"] = {
"Northern Catanduanes Bicolano",
7130477,
"phi",
"Latn",
}
m["ctt"] = {
"Wayanad Chetti",
7975850,
"dra-mal",
"Taml",
}
m["ctu"] = {
"Chol",
35179,
"myn",
"Latn",
}
m["ctz"] = {
"Zacatepec Chatino",
8063754,
"omq-cha",
"Latn",
}
m["cua"] = {
"Cua",
3441115,
"mkh-ban",
"Latn",
}
m["cub"] = {
"Cubeo",
3006705,
"sai-tuc",
"Latn",
}
m["cuc"] = {
"Usila Chinantec",
7901979,
"omq-chi",
"Latn",
}
m["cug"] = {
"Cung",
35194,
"nic-bbe",
"Latn",
}
m["cuh"] = {
"Chuka",
12952344,
"bnt-kka",
"Latn",
}
m["cui"] = {
"Cuiba",
2980421,
"sai-guh",
"Latn",
}
m["cuj"] = {
"Mashco Piro",
3446596,
"awd",
"Latn",
}
m["cuk"] = {
"Kuna",
12953659,
"cba",
"Latn",
}
m["cul"] = {
"Culina",
2475442,
"auf",
"Latn",
}
m["cuo"] = {
"Cumanagoto",
5193784,
"sai-cpc",
"Latn",
}
m["cup"] = {
"Cupeño",
143130,
"azc-cup",
"Latn",
}
m["cuq"] = {
"จุน",
2475478,
"qfa-lic",
"Latn",
}
m["cur"] = {
"Chhulung",
5116126,
"sit-kie",
"Deva",
translit = {
Deva = "Deva-translit",
},
}
m["cut"] = {
"Teutila Cuicatec",
12953453,
"omq-cui",
"Latn",
}
m["cuu"] = {
"Tai Ya",
3441122,
"qfa-tak",
"Latn",
}
m["cuv"] = {
"Cuvok",
3515056,
"cdc-cbm",
"Latn",
}
m["cuw"] = {
"Chukwa",
12629033,
"sit-kic",
}
m["cux"] = {
"Tepeuxila Cuicatec",
20527242,
"omq-cui",
"Latn",
}
m["cuy"] = {
"Cuitlatec",
2030998,
"qfa-iso",
"Latn",
}
m["cvg"] = {
"Chug",
47683644,
"sit-khc",
"Tibt, Latn",
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
-- (NOTE: formerly not present, probably an accidental omission)
}
m["cvn"] = {
"Valle Nacional Chinantec",
12953442,
"omq-chi",
"Latn",
}
m["cwa"] = {
"Kabwa",
6344537,
"bnt-lok",
"Latn",
}
m["cwb"] = {
"Maindo",
11002891,
"bnt-mak",
"Latn",
ancestors = "chw",
}
m["cwd"] = {
"Woods Cree",
56305,
"alg",
"Latn, Cans",
ancestors = "cr",
}
m["cwe"] = {
"Kwere",
779632,
"bnt-ruv",
"Latn",
}
m["cwg"] = {
"Chewong",
646718,
"mkh-asl",
"Latn",
}
m["cwt"] = {
"Kuwaataay",
35699,
"alv-jol",
"Latn",
}
m["cya"] = {
"Nopala Chatino",
15616302,
"omq-cha",
"Latn",
}
m["cyb"] = {
"Cayubaba",
3183382,
"qfa-iso",
"Latn",
}
m["cyo"] = {
"Cuyunon",
33153,
"phi",
"Latn",
}
m["czh"] = {
"Huizhou",
56546,
"zhx",
"Hants", -- ?
ancestors = "ltc",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["czk"] = {
"Knaanic",
56384,
"zlw",
"Hebr",
ancestors = "zlw-ocs",
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["czn"] = {
"Zenzontepec Chatino",
603106,
"omq-cha",
"Latn",
}
m["czo"] = {
"หมิ่นตอนกลาง",
56435,
"zhx-inm",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["czt"] = {
"Zotung Chin",
8074599,
"tbq-kuk",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
hpxcdvz72yjfgtdkihn8blu74gssbfh
แม่แบบ:attention
10
44757
5771138
1601891
2026-10-03T03:24:23Z
Octahedron80
267
5771138
wikitext
text/x-wiki
<includeonly>{{#invoke:attention|show}}</includeonly><!--
--><noinclude>{{documentation}}</noinclude>
hq0ehxqdxrmpfumst8gymc6zvvuouoj
มีเดียวิกิ:Gadget-HideLogo
8
148338
5771139
650598
2026-10-03T03:27:23Z
Octahedron80
267
5771139
wikitext
text/x-wiki
ซ่อนโลโก้ที่มุมบนซ้าย <span class="small">([[MediaWiki:Gadget-HideLogo.css|css]])</span>
erhqh20af4z24s8fdnjzir82gkbsgr0
มอดูล:languages/code to canonical name
828
174988
5771091
5770102
2026-10-03T01:28:42Z
Octahedron80
267
5771091
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"] = "หริยาณวี",
["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"] = "เซอร์แคสเซียนดั้งเดิม",
["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"] = "คิมบรี",
["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"] = "ฮาคา",
["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"] = "รีวกีวอันดั้งเดิม",
["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"] = "แฆแลจ",
["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"] = "คิไก",
["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"] = "ลาโคตา",
["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"] = "มลายูแบบโมลุกกะเหนือ",
["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"] = "แพริกดั้งเดิม",
["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"] = "งาจู",
["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"] = "ปอร์",
["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"] = "ระแด",
["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"] = "บูร์กีญง",
["roa-can"] = "Cantabrian",
["roa-cha"] = "ช็องปาญ",
["roa-fcm"] = "ฟร็องช์-กงเต",
["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"] = "นาวาร์โร-อารากอนเก่า",
["roa-opt"] = "กาลิเซีย-โปรตุเกสเก่า",
["roa-orl"] = "Orléanais",
["roa-poi"] = "ปัวเตอแว็ง-แซ็งต็องแฌ",
["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"] = "อิสโตร-โรมาเนีย",
["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"] = "อาหรับใต้เก่า",
["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"] = "ซารามักกา",
["srn"] = "ซรานันโตโง",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "สวาซี",
["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"] = "ครีโอลช่องแคบทอร์เรส",
["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"] = "ฟรังโกเนียตะวันออก",
["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"] = "วาตีวา",
["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"] = "ไซเฟ",
["zza"] = "ซาซา",
["zzj"] = "จ้วงแบบจั่วเจียง",
}
fuldcr812u35p8ogycfthrqdkrbp8z9
มอดูล:languages/canonical names
828
211224
5771092
5770101
2026-10-03T01:28:49Z
Octahedron80
267
5771092
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",
["บูร์กีญง"] = "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",
["ช็องปาญ"] = "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",
["คิมบรี"] = "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",
["ฟรังโกเนียตะวันออก"] = "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",
["ฟร็องช์-กงเต"] = "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",
["หริยาณวี"] = "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",
["อิสโตร-โรมาเนีย"] = "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",
["แฆแลจ"] = "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",
["คิไก"] = "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",
["ฮาคา"] = "cnh",
["Laimbue"] = "lmx",
["Laitu Chin"] = "clj",
["Laiyolo"] = "lji",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["ลาโคตา"] = "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",
["งาจู"] = "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",
["มลายูแบบโมลุกกะเหนือ"] = "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",
["นาวาร์โร-อารากอนเก่า"] = "roa-ona",
["Old Novgorodian"] = "zle-ono",
["Old Prussian"] = "prg",
["รูซินเก่า"] = "zle-ort",
["อาหรับใต้เก่า"] = "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",
["ปอร์"] = "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",
["ปัวเตอแว็ง-แซ็งต็องแฌ"] = "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",
["เซอร์แคสเซียนดั้งเดิม"] = "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",
["แพริกดั้งเดิม"] = "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",
["รีวกีวอันดั้งเดิม"] = "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",
["ระแด"] = "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",
["ซารามักกา"] = "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",
["ซรานันโตโง"] = "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",
["สวาซี"] = "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",
["ครีโอลช่องแคบทอร์เรส"] = "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",
["วาตีวา"] = "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",
["ไซเฟ"] = "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",
}
8eo5q07khck0gpa9lr65rjladg1rnxu
มีเดียวิกิ:Gadget-VectorClassic
8
259321
5771131
1076782
2026-10-03T03:15:35Z
Octahedron80
267
5771131
wikitext
text/x-wiki
การจัดรูปแบบตัวอักษรแบบคลาสสิกในสกิน Vector (ยกเลิกที่ทำโดย Typography Refresh) <span class="small">([[MediaWiki:Gadget-VectorClassic.css|css]])</span>
ouizs69u54y3jnc8xty6dp1950z8fmt
5771132
5771131
2026-10-03T03:17:43Z
Octahedron80
267
5771132
wikitext
text/x-wiki
การจัดรูปแบบตัวอักษรแบบคลาสสิกในสกิน Vector (ยกเลิกที่ทำโดยตัวรีเฟรชการจัดรูปแบบ) <span class="small">([[MediaWiki:Gadget-VectorClassic.css|css]])</span>
cp0tkixfcrxmwn0p3iq9x9l4xeifzhp
มอดูล:ja-bungo-infl
828
264274
5771096
5687411
2026-10-03T01:47:58Z
Octahedron80
267
5771096
Scribunto
text/plain
local export = {}
local rm_spaces_hyphens = require("Module:ja").rm_spaces_hyphens
local kana_to_romaji = require("Module:Hrkt-translit").tr
function export.japanese_classical_conjugation(frame)
local args = frame:getParent().args
local function _i(t, i)
if type(t) == 'table' then return t[i]
else return t end
end
local function behead(s)
return mw.ustring.gsub(s, '[ぁ-ゖァ-ヶ]', '', 1)
end
local function _l(s)
return '<span class="Jpan" lang="ja">[[' .. _i(s, 1) .. '#ภาษาญี่ปุ่น|' .. _i(s, 2) ..']]</span>'
end
local t = {
['4-k'] = {
'か', 'き', 'く', 'く', 'け', 'け',
['t_percon'] = { 'けり', 'きたり' }
},
['4-g'] = {
'が', 'ぎ', 'ぐ', 'ぐ', 'げ', 'げ',
['t_percon'] = { 'げり', 'ぎたり' }
},
['4-s'] = {
'さ', 'し', 'す', 'す', 'せ', 'せ',
['t_percon'] = { 'せり', 'したり' }
},
['4-t'] = {
'た', 'ち', 'つ', 'つ', 'て', 'て',
['t_percon'] = { 'てり', 'ちたり' }
},
['4-p'] = {
'は', 'ひ', 'ふ', 'ふ', 'へ', 'へ',
['t_percon'] = { 'へり', 'ひたり' }
},
['4-b'] = {
'ば', 'び', 'ぶ', 'ぶ', 'べ', 'べ',
['t_percon'] = { 'べり', 'びたり' }
},
['4-m'] = {
'ま', 'み', 'む', 'む', 'め', 'め',
['t_percon'] = { 'めり', 'みたり' }
},
['4-r'] = {
'ら', 'り', 'る', 'る', 'れ', 'れ',
['t_percon'] = { 'れり', 'りたり' }
},
['2u-k'] = { 'き', 'き', 'く', 'くる', 'くれ', 'き.よ' },
['2u-g'] = { 'ぎ', 'ぎ', 'ぐ', 'ぐる', 'ぐれ', 'ぎ.よ' },
['2u-z'] = { 'じ', 'じ', 'ず', 'ずる', 'ずれ', 'じ.よ' },
['2u-t'] = { 'ち', 'ち', 'つ', 'つる', 'つれ', 'ち.よ' },
['2u-d'] = { 'ぢ', 'ぢ', 'づ', 'づる', 'づれ', 'ぢ.よ' },
['2u-p'] = { 'ひ', 'ひ', 'ふ', 'ふる', 'ふれ', 'ひ.よ' },
['2u-b'] = { 'び', 'び', 'ぶ', 'ぶる', 'ぶれ', 'び.よ' },
['2u-m'] = { 'み', 'み', 'む', 'むる', 'むれ', 'み.よ' },
['2u-y'] = { '.い', '.い', '.ゆ', '.ゆる', '.ゆれ', '.い.よ' },
['2u-r'] = { 'り', 'り', 'る', 'るる', 'るれ', 'り.よ' },
['2d-a'] = { '.え', '.え', '.う', '.うる', '.うれ', '.えよ' },
['2d-k'] = { 'け', 'け', 'く', 'くる', 'くれ', 'けよ' },
['2d-g'] = { 'げ', 'げ', 'ぐ', 'ぐる', 'ぐれ', 'げよ' },
['2d-s'] = { 'せ', 'せ', 'す', 'する', 'すれ', 'せよ' },
['2d-z'] = { 'ぜ', 'ぜ', 'ず', 'ずる', 'ずれ', 'ぜよ' },
['2d-t'] = { 'て', 'て', 'つ', 'つる', 'つれ', 'てよ' },
['2d-d'] = { 'で', 'で', 'づ', 'づる', 'づれ', 'でよ' },
['2d-n'] = { 'ね', 'ね', 'ぬ', 'ぬる', 'ぬれ', 'ねよ' },
['2d-p'] = { 'へ', 'へ', 'ふ', 'ふる', 'ふれ', 'へよ' },
['2d-b'] = { 'べ', 'べ', 'ぶ', 'ぶる', 'ぶれ', 'べよ' },
['2d-m'] = { 'め', 'め', 'む', 'むる', 'むれ', 'めよ' },
['2d-y'] = { '.え', '.え', '.ゆ', '.ゆる', '.ゆれ', '.えよ' },
['2d-y-ye'] = { '.𛀁', '.𛀁', '.ゆ', '.ゆる', '.ゆれ', '.𛀁よ' },
['2d-r'] = { 'れ', 'れ', 'る', 'るる', 'るれ', 'れよ' },
['2d-w'] = { 'ゑ', 'ゑ', '.う', '.うる', '.うれ', 'ゑよ' },
['1u-k'] = { 'き', 'き', 'きる', 'きる', 'きれ', 'き.よ' },
['1u-n'] = { 'に', 'に', 'にる', 'にる', 'にれ', 'に.よ' },
['1u-p'] = { 'ひ', 'ひ', 'ひる', 'ひる', 'ひれ', 'ひ.よ' },
['1u-m'] = { 'み', 'み', 'みる', 'みる', 'みれ', 'み.よ' },
['1u-y'] = { '.い', '.い', '.いる', '.いる', '.いれ', '.い.よ' },
['1u-w'] = { 'ゐ', 'ゐ', 'ゐる', 'ゐる', 'ゐれ', 'ゐ.よ' },
['1d-k'] = { 'け', 'け', 'ける', 'ける', 'けれ', 'けよ' },
['1d-kw'] = { 'くゑ', 'くゑ', 'くゑる', 'くゑる', 'くゑれ', 'くゑよ' },
['irreg-k'] = {
'こ', 'き', 'く', 'くる', 'くれ', { 'こ', 'こよ' },
['t_pas_ki'] = { 'こし', 'きし' }
},
['irreg-s'] = {
'せ', 'し', 'す', 'する', 'すれ', 'せよ',
['t_percon'] = { 'せり', 'したり' }
},
['irreg-s-z'] = {
'ぜ', 'じ', 'ず', 'ずる', 'ずれ', 'ぜよ',
['t_percon'] = { 'ぜり', 'じたり' }
},
['irreg-n'] = { 'な', 'に', 'ぬ', 'ぬる', 'ぬれ', 'ね' },
['irreg-r'] = { 'ら', 'り', 'り', 'る', 'れ', 'れ' },
['adj-ku'] = {
{ 'く', 'から' }, { 'く', 'かり' }, 'し', { 'き', 'かる' }, 'けれ', 'かれ',
['irr_1'] = 'く', ['irr_2'] = 'から', ['adv_1'] = 'く', ['adv_2'] = 'かり',
},
['adj-shiku'] = {
{ 'しく', 'しから' }, { 'しく', 'しかり' }, 'し', { 'しき', 'しかる' }, 'しけれ', 'しかれ',
['irr_1'] = 'しく', ['irr_2'] = 'しから', ['adv_1'] = 'しく', ['adv_2'] = 'しかり',
},
['adj-shiku-z'] = {
{ 'じく', 'じから' }, { 'じく', 'じかり' }, 'じ', { 'じき', 'じかる' }, 'じけれ', 'じかれ',
['irr_1'] = 'じく', ['irr_2'] = 'じから', ['adv_1'] = 'じく', ['adv_2'] = 'じかり',
},
['adj-nar'] = {
'なら', { 'に', 'なり' }, 'なり', 'なる', 'なれ', 'なれ',
['adv_1'] = 'に', ['adv_2'] = 'なり'
},
['adj-tar'] = {
'たら', { 'と', 'たり' }, 'たり', 'たる', 'たれ', 'たれ',
['adv_1'] = 'と', ['adv_2'] = 'たり',
},
}
local t_note = {
['irreg-k'] = { ['t_pas_ki'] = 'Attributive form, as the terminal form (lemma) does not exist for this construction in this conjugation.' },
['irreg-r'] = { ['t_percon'] = 'Often proscribed due to a redundancy of having 2 '.._l('あり')..'.' },
['adj-ku'] = { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
['adj-shiku'] = { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
['adj-shiku-z'] = { { 'Without auxiliary verb.', 'With auxiliary verb.' }, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
['adj-nar'] = { nil, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
['adj-tar'] = { nil, { 'Without auxiliary verb.', 'With auxiliary verb.' } },
}
local conj_name = {
['4-k'] = { '四段活用', 'カ行四段活用' },
['4-g'] = { '四段活用', 'ガ行四段活用' },
['4-s'] = { '四段活用', 'サ行四段活用' },
['4-t'] = { '四段活用', 'タ行四段活用' },
['4-p'] = { '四段活用', 'ハ行四段活用' },
['4-b'] = { '四段活用', 'バ行四段活用' },
['4-m'] = { '四段活用', 'マ行四段活用' },
['4-r'] = { '四段活用', 'ラ行四段活用' },
['2u-k'] = { '上二段活用', 'カ行上二段活用' },
['2u-g'] = { '上二段活用', 'ガ行上二段活用' },
['2u-z'] = { '上二段活用', 'ザ行上二段活用' },
['2u-t'] = { '上二段活用', 'タ行上二段活用' },
['2u-d'] = { '上二段活用', 'ダ行上二段活用' },
['2u-p'] = { '上二段活用', 'ハ行上二段活用' },
['2u-b'] = { '上二段活用', 'バ行上二段活用' },
['2u-m'] = { '上二段活用', 'マ行上二段活用' },
['2u-y'] = { '上二段活用', 'ヤ行上二段活用' },
['2u-r'] = { '上二段活用', 'ラ行上二段活用' },
['2d-a'] = { '下二段活用', 'ア行下二段活用' },
['2d-k'] = { '下二段活用', 'カ行下二段活用' },
['2d-g'] = { '下二段活用', 'ガ行下二段活用' },
['2d-s'] = { '下二段活用', 'サ行下二段活用' },
['2d-z'] = { '下二段活用', 'ザ行下二段活用' },
['2d-t'] = { '下二段活用', 'タ行下二段活用' },
['2d-d'] = { '下二段活用', 'ダ行下二段活用' },
['2d-n'] = { '下二段活用', 'ナ行下二段活用' },
['2d-p'] = { '下二段活用', 'ハ行下二段活用' },
['2d-b'] = { '下二段活用', 'バ行下二段活用' },
['2d-m'] = { '下二段活用', 'マ行下二段活用' },
['2d-y'] = { '下二段活用', 'ヤ行下二段活用' },
['2d-y-ye'] = { '下二段活用', 'ヤ行下二段活用' },
['2d-r'] = { '下二段活用', 'ラ行下二段活用' },
['2d-w'] = { '下二段活用', 'ワ行下二段活用' },
['1u-k'] = { '上一段活用', 'カ行上一段活用' },
['1u-n'] = { '上一段活用', 'ナ行上一段活用' },
['1u-p'] = { '上一段活用', 'ハ行上一段活用' },
['1u-m'] = { '上一段活用', 'マ行上一段活用' },
['1u-y'] = { '上一段活用', 'ヤ行上一段活用' },
['1u-w'] = { '上一段活用', 'ワ行上一段活用' },
['1d-k'] = { '下一段活用', 'カ行下一段活用' },
['1d-kw'] = { '下一段活用', 'カ行下一段活用' },
['irreg-k'] = 'カ行変格活用',
['irreg-s'] = 'サ行変格活用',
['irreg-s-z'] = 'サ行変格活用',
['irreg-n'] = 'ナ行変格活用',
['irreg-r'] = 'ラ行変格活用',
['adj-ku'] = 'ク活用',
['adj-shiku'] = 'シク活用',
['adj-shiku-z'] = 'シク活用',
['adj-nar'] = 'ナリ活用',
['adj-tar'] = 'タリ活用',
}
local t_assumed_pagename_ending = {
['4-k'] = 'く',
['4-g'] = 'ぐ',
['4-s'] = 'す',
['4-t'] = 'つ',
['4-p'] = { 'ふ', 'う' },
['4-b'] = 'ぶ',
['4-m'] = 'む',
['4-r'] = 'る',
['2u-k'] = { 'く', 'きる' },
['2u-g'] = { 'ぐ', 'ぎる' },
['2u-z'] = { 'ず', 'じる' },
['2u-t'] = { 'つ', 'ちる' },
['2u-d'] = { 'づ', 'ぢる', 'じる' },
['2u-p'] = { 'ふ', 'いる', 'ひる' },
['2u-b'] = { 'ぶ', 'びる' },
['2u-m'] = { 'む', 'みる' },
['2u-y'] = { 'ゆ', 'いる' },
['2u-r'] = { 'りる', 'る' },
['2d-a'] = { 'う', 'える' },
['2d-k'] = { 'く', 'ける' },
['2d-g'] = { 'ぐ', 'げる' },
['2d-s'] = { 'す', 'せる' },
['2d-z'] = { 'ず', 'ぜる' },
['2d-t'] = { 'つ', 'てる' },
['2d-d'] = { 'づ', 'でる' },
['2d-n'] = { 'ぬ', 'ねる' },
['2d-p'] = { 'ふ', 'える', 'へる' },
['2d-b'] = { 'ぶ', 'べる' },
['2d-m'] = { 'む', 'める' },
['2d-y'] = { 'ゆ', 'える' },
['2d-y-ye'] = { 'ゆ', 'える', '𛀁る'},
['2d-r'] = { 'れる', 'る' },
['2d-w'] = { 'う', 'える', 'ゑる' },
['1u-k'] = 'きる',
['1u-n'] = 'にる',
['1u-p'] = { 'ひる', 'いる' },
['1u-m'] = 'みる',
['1u-y'] = 'いる',
['1u-w'] = { 'ゐる', 'いる' },
['1d-k'] = 'ける',
['1d-kw'] = 'くゑる',
['irreg-k'] = { 'く', 'くる' },
['irreg-s'] = { 'す', 'する' },
['irreg-s-z'] = { 'ず', 'ずる', 'じる' },
['irreg-n'] = 'ぬ',
['irreg-r'] = { 'り', 'る' },
['adj-ku'] = { 'し', 'い' },
['adj-shiku'] = { 'し', 'しい' },
['adj-shiku-z'] = { 'じ', 'じい' },
['adj-nar'] = { 'なり', 'な' },
['adj-tar'] = { 'たり', 'と' },
}
local pagename = args['pagename'] or mw.loadData("Module:headword/data").pagename
local stem = args['stem'] or args[1] or args['s'] or ''
local ctype = args['ctype'] or args[2] or args['c'] or ''
local kanji = args['kanji'] or args[3] or args['k']
local suffix_in_kanji = args['suffix_in_kanji'] or args['sik']
local lemma = args['lemma'] or args['l']
local function guess_kanji_from_pagename()
local suf
if type(t_assumed_pagename_ending[ctype]) == 'table' then
suf = t_assumed_pagename_ending[ctype]
else
suf = { t_assumed_pagename_ending[ctype] }
end
local lemma_ending
if suffix_in_kanji then
for _, v in ipairs(suf) do
lemma_ending = behead(v)
if lemma_ending ~= '' and string.sub(pagename, - string.len(lemma_ending)) == lemma_ending then
kanji = kanji or string.sub(pagename, 1, - (string.len(lemma_ending) + 1))
break
end
end
kanji = kanji or pagename
lemma = lemma or kanji .. behead(_i(t[ctype][3], 1))
else
for _, v in ipairs(suf) do
lemma_ending = v
if string.sub(pagename, - string.len(lemma_ending)) == lemma_ending then
kanji = kanji or string.sub(pagename, 1, - (string.len(lemma_ending) + 1))
break
end
end
kanji = kanji or pagename
lemma = lemma or kanji .. _i(t[ctype][3], 1)
end
return
end
if conj_name[ctype] == nil then
kanji = kanji or pagename
lemma = lemma or pagename
else
guess_kanji_from_pagename()
end
local f_irr = args['f_irr'] or args['f1']
local f_adv = args['f_adv'] or args['f2']
local f_ter = args['f_ter'] or args['f3']
local f_adn = args['f_adn'] or args['f4']
local f_rea = args['f_rea'] or args['f5']
local f_imp = args['f_imp'] or args['f6']
local f_neg = args['f_neg'] or args['f7']
local f_conj_contr = args['f_conj_contr'] or args['f8']
local f_conj_caus = args['f_conj_caus'] or args['f9']
local f_conj_cond = args['f_conj_cond'] or args['f10']
local f_t_pas_ki = args['f_t_pas_ki'] or args['f11']
local f_t_pas_ker = args['f_t_pas_ker'] or args['f12']
local f_t_per_t = args['f_t_per_t'] or args['f13']
local f_t_per_n = args['f_t_per_n'] or args['f14']
local f_t_percon = args['f_t_percon'] or args['f15']
local f_adverb = args['f_adverb'] or args['f16']
local f_volit = args['f_volit'] or args['f17']
local f_irr__p = args['f_irr+']
local f_adv__p = args['f_adv+']
local f_ter__p = args['f_ter+']
local f_adn__p = args['f_adn+']
local f_rea__p = args['f_rea+']
local f_imp__p = args['f_imp+']
local f_neg__p = args['f_neg+']
local f_conj_contr__p = args['f_conj_contr+']
local f_conj_caus__p = args['f_conj_caus+']
local f_conj_cond__p = args['f_conj_cond+']
local f_t_pas_ki__p = args['f_t_pas_ki+']
local f_t_pas_ker__p = args['f_t_pas_ker+']
local f_t_per_t__p = args['f_t_per_t+']
local f_t_per_n__p = args['f_t_per_n+']
local f_t_percon__p = args['f_t_percon+']
local f_adverb__p = args['f_adverb+']
local f_volit__p = args['f_volit+']
local hide_key_constructions = args['hide_key_constructions'] or args['hkc']
local notes = {}
local notes_rev ={}
local notes_string = ''
local note_num = 0
local function insert_note(note)
local note_id
note_id = notes_rev[note]
if note_id == nil then
note_num = note_num + 1
notes[note_num] = note
notes_rev[note] = note_num
note_id = note_num
end
return note_id
end
local function japanese_conj_row_classical_manual(form)
local r1, r2, r3 = {}, {}, {}
local form_no_note, kanji, kana, note
local forms = {}
local p1, p2
local identical_kanji_kana = true
string.gsub(form, '[^;]+', function(w) table.insert(forms, w) end)
for _, form_single in ipairs(forms) do
p1 = string.find(form_single, '?')
if p1 then
note = string.sub(form_single, p1 + 1)
form_no_note = string.sub(form_single, 1, p1 - 1)
else
note = nil
form_no_note = form_single
end
p2 = string.find(form_no_note, ':')
if p2 then
kanji = string.sub(form_no_note, 1, p2 - 1)
kana = string.sub(form_no_note, p2 + 1)
else
kanji = form_no_note
kana = form_no_note
end
identical_kanji_kana = identical_kanji_kana and kanji == kana
if note then
table.insert(r1,
'<span class="Jpan" lang="ja">'
.. rm_spaces_hyphens(kanji)
.. '</span><small><sup>['
.. insert_note(note)
.. ']</sup></small>')
else
table.insert(r1,
'<span class="Jpan" lang="ja">'
.. rm_spaces_hyphens(kanji)
.. '</span>')
end
table.insert(r2,
'<span class="Jpan" lang="ja">'
.. rm_spaces_hyphens(kana)
.. '</span>')
table.insert(r3,
'<span class="Latn" lang="ja-Latn">'
.. kana_to_romaji(kana, "ja", nil, {hist = true})
.. '</span>')
end
if identical_kanji_kana then
return '| colspan ="2" |'
.. table.concat(r1, '<br/>')
.. '||'
.. table.concat(r3, '<br/>')
else
return '||'
.. table.concat(r1, '<br/>')
.. '||'
.. table.concat(r2, '<br/>')
.. '||'
.. table.concat(r3, '<br/>')
end
end
local function japanese_conj_row_classical_auto(_stem, _kanji, _suffix, _suffix_in_kanji, _note, _tail)
local result = {}
if type(_suffix) ~= 'table' then
if type(_suffix) == 'string' then
_suffix = { _suffix }
else
return '-'
end
end
_tail = _tail or ''
if _suffix_in_kanji then
if type(_note) == 'table' then
for i, suf in ipairs(_suffix) do
if _note[i] then
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note[i])
else
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
elseif type(_note) == 'string' then
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
end
else
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. behead(suf) .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
else
if type(_note) == 'table' then
for i, suf in ipairs(_suffix) do
if _note[i] then
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note[i])
else
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
elseif type(_note) == 'string' then
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail .. '?' .. _note)
end
else
for _, suf in ipairs(_suffix) do
table.insert(result, _kanji .. suf .. _tail .. ':' .. _stem .. suf .. _tail)
end
end
end
return table.concat(result, ';')
end
f_irr = f_irr or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 1), suffix_in_kanji, _i(t_note[ctype], 1))
f_adv = f_adv or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 2))
f_ter = f_ter or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 3), suffix_in_kanji, _i(t_note[ctype], 3))
f_adn = f_adn or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 4), suffix_in_kanji, _i(t_note[ctype], 4))
f_rea = f_rea or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 5), suffix_in_kanji, _i(t_note[ctype], 5))
f_imp = f_imp or japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 6), suffix_in_kanji, _i(t_note[ctype], 6))
if not hide_key_constructions and t[ctype] then
f_neg = f_neg or
_i(t[ctype], 'neg') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'neg'), suffix_in_kanji, _i(t_note[ctype], 'neg')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'irr_2') or _i(t[ctype], 1), suffix_in_kanji, _i(t_note[ctype], 'neg'), 'ず')
f_conj_contr = f_conj_contr or
_i(t[ctype], 'conj_contr') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'conj_contr'), suffix_in_kanji, _i(t_note[ctype], 'conj_contr')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 5), suffix_in_kanji, _i(t_note[ctype], 'conj_contr'), 'ど')
f_conj_caus = f_conj_caus or
_i(t[ctype], 'conj_caus') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'conj_caus'), suffix_in_kanji, _i(t_note[ctype], 'conj_caus')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 5), suffix_in_kanji, _i(t_note[ctype], 'conj_caus'), 'ば')
f_conj_cond = f_conj_cond or
_i(t[ctype], 'conj_cond') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'conj_cond'), suffix_in_kanji, _i(t_note[ctype], 'conj_cond')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'irr_1') or _i(t[ctype], 1), suffix_in_kanji, _i(t_note[ctype], 'conj_cond'), 'ば')
f_t_pas_ki = f_t_pas_ki or
_i(t[ctype], 't_pas_ki') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 't_pas_ki'), suffix_in_kanji, _i(t_note[ctype], 't_pas_ki')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_2') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 't_pas_ki'), 'き')
f_t_pas_ker = f_t_pas_ker or
_i(t[ctype], 't_pas_ker') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 't_pas_ker'), suffix_in_kanji, _i(t_note[ctype], 't_pas_ker')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_2') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 't_pas_ker'), 'けり')
if string.sub(ctype, 1, 3) == 'adj' then
f_adverb = f_adverb or
_i(t[ctype], 'adverb') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adverb'), suffix_in_kanji, _i(t_note[ctype], 'adverb')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_1') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 'adverb'))
else
f_t_per_t = f_t_per_t or
_i(t[ctype], 't_per_t') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 't_per_t'), suffix_in_kanji, _i(t_note[ctype], 't_per_t')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_2') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 't_per_t'), 'つ')
f_t_per_n = f_t_per_n or
_i(t[ctype], 't_per_n') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 't_per_n'), suffix_in_kanji, _i(t_note[ctype], 't_per_n')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_2') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 't_per_n'), 'ぬ')
f_t_percon = f_t_percon or
_i(t[ctype], 't_percon') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 't_percon'), suffix_in_kanji, _i(t_note[ctype], 't_percon')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'adv_2') or _i(t[ctype], 2), suffix_in_kanji, _i(t_note[ctype], 't_percon'), 'たり')
f_volit = f_volit or
_i(t[ctype], 'volit') and japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'volit'), suffix_in_kanji, _i(t_note[ctype], 'volit')) or
japanese_conj_row_classical_auto(stem, kanji, _i(t[ctype], 'irr_1') or _i(t[ctype], 1), suffix_in_kanji, _i(t_note[ctype], 'volit'), 'む')
end
end
f_irr = f_irr and f_irr__p and f_irr ..';'.. f_irr__p or f_irr or f_irr__p
f_adv = f_adv and f_adv__p and f_adv ..';'.. f_adv__p or f_adv or f_adv__p
f_ter = f_ter and f_ter__p and f_ter ..';'.. f_ter__p or f_ter or f_ter__p
f_adn = f_adn and f_adn__p and f_adn ..';'.. f_adn__p or f_adn or f_adn__p
f_rea = f_rea and f_rea__p and f_rea ..';'.. f_rea__p or f_rea or f_rea__p
f_imp = f_imp and f_imp__p and f_imp ..';'.. f_imp__p or f_imp or f_imp__p
f_neg = f_neg and f_neg__p and f_neg ..';'.. f_neg__p or f_neg or f_neg__p
f_conj_contr = f_conj_contr and f_conj_contr__p and f_conj_contr ..';'.. f_conj_contr__p or f_conj_contr or f_conj_contr__p
f_conj_caus = f_conj_caus and f_conj_caus__p and f_conj_caus ..';'.. f_conj_caus__p or f_conj_caus or f_conj_caus__p
f_conj_cond = f_conj_cond and f_conj_cond__p and f_conj_cond ..';'.. f_conj_cond__p or f_conj_cond or f_conj_cond__p
f_t_pas_ki = f_t_pas_ki and f_t_pas_ki__p and f_t_pas_ki ..';'.. f_t_pas_ki__p or f_t_pas_ki or f_t_pas_ki__p
f_t_pas_ker = f_t_pas_ker and f_t_pas_ker__p and f_t_pas_ker ..';'.. f_t_pas_ker__p or f_t_pas_ker or f_t_pas_ker__p
f_t_per_t = f_t_per_t and f_t_per_t__p and f_t_per_t ..';'.. f_t_per_t__p or f_t_per_t or f_t_per_t__p
f_t_per_n = f_t_per_n and f_t_per_n__p and f_t_per_n ..';'.. f_t_per_n__p or f_t_per_n or f_t_per_n__p
f_t_percon = f_t_percon and f_t_percon__p and f_t_percon ..';'.. f_t_percon__p or f_t_percon or f_t_percon__p
local result = ''
.. '! colspan="4" class="outer" | Stem forms\n|-\n! style="width:20%;" |'
.. 'Irrealis ('.._l('未然形')..')\n'
.. japanese_conj_row_classical_manual(f_irr)
.. '\n|-\n!Continuative ('.._l('連用形')..')\n'
.. japanese_conj_row_classical_manual(f_adv)
.. '\n|-\n!Terminal ('.._l('終止形')..')\n'
.. japanese_conj_row_classical_manual(f_ter)
.. '\n|-\n!Attributive ('.._l('連体形')..')\n'
.. japanese_conj_row_classical_manual(f_adn)
.. '\n|-\n!Realis ('.._l('已然形')..')\n'
.. japanese_conj_row_classical_manual(f_rea)
.. '\n|-\n!Imperative ('.._l('命令形')..')\n'
.. japanese_conj_row_classical_manual(f_imp)
.. (not hide_key_constructions and '\n|-\n! colspan="4" class="outer" | Key constructions' or '')
.. (f_neg and '\n|-\n! Negative\n' .. japanese_conj_row_classical_manual(f_neg) or '')
.. (f_conj_contr and '\n|-\n! Contrasting conjunction\n' .. japanese_conj_row_classical_manual(f_conj_contr) or '')
.. (f_conj_caus and '\n|-\n! Causal conjunction\n' .. japanese_conj_row_classical_manual(f_conj_caus) or '')
.. (f_conj_cond and '\n|-\n! Conditional conjunction\n' .. japanese_conj_row_classical_manual(f_conj_cond) or '')
.. (f_t_pas_ki and '\n|-\n! Past tense (firsthand knowledge)\n' .. japanese_conj_row_classical_manual(f_t_pas_ki) or '')
.. (f_t_pas_ker and '\n|-\n! Past tense (secondhand knowledge)\n' .. japanese_conj_row_classical_manual(f_t_pas_ker) or '')
.. (f_t_per_t and '\n|-\n! Perfect tense (conscious action)\n' .. japanese_conj_row_classical_manual(f_t_per_t) or '')
.. (f_t_per_n and '\n|-\n! Perfect tense (natural event)\n' .. japanese_conj_row_classical_manual(f_t_per_n) or '')
.. (f_t_percon and '\n|-\n! Perfect-continuative tense\n' .. japanese_conj_row_classical_manual(f_t_percon) or '')
.. (f_adverb and '\n|-\n! Adverbial\n' .. japanese_conj_row_classical_manual(f_adverb) or '')
.. (f_volit and '\n|-\n! Volitional\n' .. japanese_conj_row_classical_manual(f_volit) or '')
.. '\n'
if note_num > 0 then
for i, v in ipairs(notes) do
notes_string = notes_string .. '<sup>[' .. i .. ']</sup>' .. v .. '<br/>'
end
end
result = require("Module:inflection-table").make_table({
palette = "rose",
tall = true,
title = 'การผันรูปคลาสสิกของ "<span class="Jpan" lang="ja">'..rm_spaces_hyphens(lemma)..'</span>" '
.. (conj_name[ctype] and '('.._l(conj_name[ctype])..', ดูที่ [[ภาคผนวก:คำกริยาภาษาญี่ปุ่น]].)' or '(ไม่ปรกติ)'),
notes = notes_string,
}, result)
return result
end
return export
fe5dco24o0ptdxfktg8431v1pficokj
มีเดียวิกิ:Gadget-zhDialMap.js
8
264510
5771103
2019537
2026-10-03T02:07:20Z
Octahedron80
267
5771103
javascript
text/javascript
// Chinese dialectal maps, part of gadget zhDialMap
// designed by [[User:Suzukaze-c]], originally posted at User:Suzukaze-c/zhDialMap.js
// discussion: [[Module talk:User:Suzukaze-c/zh-dial-map]]
// ideas:
// * group locations in the popup by lect
'use strict';
mw.loader.load('oojs-ui-core');
var classes = {
dotHover: 'zh-dial-map__dot--hover',
dotSuperHover: 'zh-dial-map__dot--superHover',
legendRowHover: 'zh-dial-map__legend-row--hover',
};
var groupZH = {
'Mandarin': '官話',
'Northeastern Mandarin': '東北官話',
'Jilu Mandarin': '冀魯官話',
'Jiaoliao Mandarin': '膠遼官話',
'Central Plains Mandarin': '中原官話',
'Lanyin Mandarin': '蘭銀官話',
'Southwestern Mandarin': '西南官話',
'Jianghuai Mandarin': '江淮官話',
'Cantonese': '粵語',
'Hakka': '客家話',
'Huizhou': '徽語',
'Gan': '贛語',
'Jin': '晉語',
'Jiuxing Yumin': '九姓漁民方言',
'Northern Min': '閩北語',
'Eastern Min': '閩東語',
'Southern Min': '閩南語',
'Puxian Min': '莆仙閩語',
'Zhongshan Min': '中山閩語',
'Central Min': '閩中語',
'Shaojiang Min': '邵將閩語',
'Southern Pinghua': '桂南平話',
'Northern Pinghua': '桂北平話',
'Shehua': '畬話',
'Waxiang': '瓦鄉話',
'Wu': '吳語',
'Xiang': '湘語',
'Xiangnan Tuhua': '湘南土話',
'Yuebei Tuhua': '粵北土話',
};
function zh(data) {
var element;
if (data.type == 'lang') {
element = $('<span>');
} else if (data.type == 'link') {
element = $('<a>').attr('href', '/wiki/' + data.word + '#Chinese');
}
element.addClass('Hani').attr('lang', 'zh').text(data.alt ? data.alt : data.word);
if (data.red) element.addClass('new');
return element;
}
function updateGroupSelection() {
var groupSelectionStyle = $("style.zh-dial-map__groupSelectionStyle");
var groupInputChecked = $("input.zh-dial-map__groupItem:checked");
var checkedGroups = [];
for (var i = 0; i < groupInputChecked.length; i++) {
checkedGroups.push($(groupInputChecked[i]).attr('data-group'));
}
if (checkedGroups.length === 0) {
groupSelectionStyle.text('');
} else {
var checkedGroupsNotSelector = '';
for (var i = 0; i < checkedGroups.length; i++) {
checkedGroupsNotSelector += ':not([data-group="' + checkedGroups[i] + '"])'
}
groupSelectionStyle.text('.zh-dial-map__dot' + checkedGroupsNotSelector + ' { display: none; }');
}
}
function main() {
var dots;
var redLinks = {}; // Record which pages don't exist (for the "other terms" popup links)
var wordLocations = {}; // Initialize object that will contain locations for each dialectal word. Cache instead of regenerating all the time
var otherTerms = [];
var activePopup;
var popups = [];
var mapImg = $('.zh-dial-map__map img');
// take original pixel dimensions from the image
// and give them to the image and the container holding the image
$('.zh-dial-map__map, .zh-dial-map__map img')
.css('width', mapImg.attr('width') + 'em')
.css('height', mapImg.attr('height') + 'em')
;
// <s>change image source to svg</s>
// and remove dimension attributes
mapImg
.removeAttr('width')
.removeAttr('height')
.attr('src', function(index, attr) {
return attr.replace('1200px', '2400px');
})
.removeAttr('srcset')
/*
.attr('src', function(index, attr) {
return attr.replace('thumb/', '').replace(/(svg).+/, '$1')
})
.removeAttr('srcset')
*/
;
var inputContainer = $('<span>');
inputContainer
.addClass('zh-dial-map__inputContainer')
.prependTo('.zh-dial-map__container')
;
var zoomContainer = $('<span>');
var zoomController = $('<input>');
zoomContainer
.addClass('zh-dial-map__zoomContainer')
.appendTo('.zh-dial-map__inputContainer')
;
zoomController
.addClass('zh-dial-map__zoomController')
.attr('type', 'range')
.attr('min', 0.1)
.attr('max', 4)
.attr('step', 0.1)
.val(1) // default zoom at 100%
.on("change", function() {
//console.log($(this).val());
$('.zh-dial-map__map').css("font-size", $(this).val() + "px");
})
.appendTo('.zh-dial-map__zoomContainer')
;
var groupSelectionContainer = $('<span>');
var groupSelectionStyle = $("<style>");
groupSelectionContainer
.addClass('zh-dial-map__groupSelectionContainer')
.appendTo('.zh-dial-map__inputContainer')
;
groupSelectionStyle
.addClass('zh-dial-map__groupSelectionStyle')
.appendTo('head')
;
for (var group in groupZH) {
var groupItem = $('<input>');
var groupLabel = $('<label>');
var id = 'zh-dial-map__groupItem--' + group.replace(' ', '-');
groupItem
.attr('type', 'checkbox')
.addClass('zh-dial-map__groupItem')
.attr('id', id)
.attr('name', 'zh-dial-map__groupItem')
.attr('data-group', group)
.on("change", updateGroupSelection)
.appendTo('.zh-dial-map__groupSelectionContainer')
;
groupLabel
.attr('for', id)
.text(group)
.appendTo('.zh-dial-map__groupSelectionContainer')
;
}
$('.zh-dial-map__legend-row').on("touchstart mouseenter",
function() {
var word = $(this).data('word'); // Get the dialectal word for the active legend row
var isOther = (word == 'other'); // Is our row the "other terms" row?
if (isOther) {
dots = $('.zh-dial-map__dot-other'); // Get all grey dots
} else {
dots = $('.zh-dial-map__dot[data-word=' + word + ']'); // Get every dot corresponding to our word
}
$(this).addClass(classes.legendRowHover); // Add hovered class to the legend row
dots.addClass(classes.dotHover); // Add hovered class to every corresponding dot
if (! wordLocations[word]) {
wordLocations[word] = [];
dots.each(
function(index) {
var location = [$(this).data('location-en'), $(this).data('location-zh'), $(this).data('group')]; // Get location of dot
wordLocations[word].push(location);
if (isOther) {
var otherWord = $(this).data('word'); // For "other terms", collect the terms too
otherTerms.push(otherWord);
if (! redLinks[otherWord]) redLinks[otherWord] = $(this).parent().hasClass('new');
//console.log(otherWord, redLinks[otherWord]);
}
}
);
//console.log(word, wordLocations[word]);
//if (isOther) { console.log(otherTerms) };
}
if (! popups[word]) {
var locationsList = $('<ul>').addClass('zh-dial-map__legend-row-locations'); // Popup contents
$.each(wordLocations[word], function(index, value) { // Do stuff related to each location recorded for this word
if (isOther) word = otherTerms[index];
var locationEn = value[0], locationZh = value[1], group = value[2];
var listItem = $('<li>');
listItem.append(zh({type: 'lang', word: locationZh + groupZH[group]})).append(' (' + locationEn + ' ' + group + ')'); // FIXME: this feels really hacky
if (isOther) listItem.append(': ').append(zh({type: 'link', word: otherTerms[index], red: redLinks[word]})); // FIXME: this too
var locationDot = $('[data-location-zh=' + locationZh + '][data-word=' + word + ']'); // Find the dot for this word at this location
//console.log('[data-location-zh=' + locationZh + '][data-word=' + word + ']', locationDot);
listItem.hover(
function() {
locationDot.addClass(classes.dotSuperHover);
},
function() {
locationDot.removeClass(classes.dotSuperHover);
}
);
listItem.appendTo(locationsList);
});
popups[word] = new OO.ui.PopupWidget({
$content: locationsList,
$container: $('.zh-dial-map__container'),
});
$(this).append(popups[word].$element); // Add cool popup to DOM
}
popups[word].toggle(true); // Make the popup visible
activePopup = popups[word];
}
);
$('.zh-dial-map__legend-row').on("touchend mouseleave",
function() {
$(this).removeClass(classes.legendRowHover); // Remove hovered class from legend row
dots.removeClass(classes.dotHover); // Remove hovered class from every dot that corresponds to that word
activePopup.toggle(false); // Hide popup
}
);
}
if ($('.zh-dial-map__map').length) {
main();
}
qb252rtmpllf3cwpa1ja22c4zd74234
5771104
5771103
2026-10-03T02:08:26Z
Octahedron80
267
revert. it just change anchor
5771104
javascript
text/javascript
// Chinese dialectal maps, part of gadget zhDialMap
// designed by [[User:Suzukaze-c]], originally posted at User:Suzukaze-c/zhDialMap.js
// discussion: [[Module talk:User:Suzukaze-c/zh-dial-map]]
// ideas:
// * group locations in the popup by lect
'use strict';
mw.loader.load('oojs-ui-core');
var classes = {
dotHover: 'zh-dial-map__dot--hover',
dotSuperHover: 'zh-dial-map__dot--superHover',
legendRowHover: 'zh-dial-map__legend-row--hover',
};
var groupZH = {
'Mandarin': '官話',
'Northeastern Mandarin': '東北官話',
'Jilu Mandarin': '冀魯官話',
'Jiaoliao Mandarin': '膠遼官話',
'Central Plains Mandarin': '中原官話',
'Lanyin Mandarin': '蘭銀官話',
'Southwestern Mandarin': '西南官話',
'Jianghuai Mandarin': '江淮官話',
'Cantonese': '粵語',
'Hakka': '客家話',
'Huizhou': '徽語',
'Gan': '贛語',
'Jin': '晉語',
'Jiuxing Yumin': '九姓漁民方言',
'Northern Min': '閩北語',
'Eastern Min': '閩東語',
'Southern Min': '閩南語',
'Puxian Min': '莆仙閩語',
'Zhongshan Min': '中山閩語',
'Central Min': '閩中語',
'Shaojiang Min': '邵將閩語',
'Southern Pinghua': '桂南平話',
'Northern Pinghua': '桂北平話',
'Shehua': '畬話',
'Waxiang': '瓦鄉話',
'Wu': '吳語',
'Xiang': '湘語',
'Xiangnan Tuhua': '湘南土話',
'Yuebei Tuhua': '粵北土話',
};
function zh(data) {
var element;
if (data.type == 'lang') {
element = $('<span>');
} else if (data.type == 'link') {
element = $('<a>').attr('href', '/wiki/' + data.word + '#ภาษาจีน');
}
element.addClass('Hani').attr('lang', 'zh').text(data.alt ? data.alt : data.word);
if (data.red) element.addClass('new');
return element;
}
function updateGroupSelection() {
var groupSelectionStyle = $("style.zh-dial-map__groupSelectionStyle");
var groupInputChecked = $("input.zh-dial-map__groupItem:checked");
var checkedGroups = [];
for (var i = 0; i < groupInputChecked.length; i++) {
checkedGroups.push($(groupInputChecked[i]).attr('data-group'));
}
if (checkedGroups.length === 0) {
groupSelectionStyle.text('');
} else {
var checkedGroupsNotSelector = '';
for (var i = 0; i < checkedGroups.length; i++) {
checkedGroupsNotSelector += ':not([data-group="' + checkedGroups[i] + '"])'
}
groupSelectionStyle.text('.zh-dial-map__dot' + checkedGroupsNotSelector + ' { display: none; }');
}
}
function main() {
var dots;
var redLinks = {}; // Record which pages don't exist (for the "other terms" popup links)
var wordLocations = {}; // Initialize object that will contain locations for each dialectal word. Cache instead of regenerating all the time
var otherTerms = [];
var activePopup;
var popups = [];
var mapImg = $('.zh-dial-map__map img');
// take original pixel dimensions from the image
// and give them to the image and the container holding the image
$('.zh-dial-map__map, .zh-dial-map__map img')
.css('width', mapImg.attr('width') + 'em')
.css('height', mapImg.attr('height') + 'em')
;
// <s>change image source to svg</s>
// and remove dimension attributes
mapImg
.removeAttr('width')
.removeAttr('height')
.attr('src', function(index, attr) {
return attr.replace('1200px', '2400px');
})
.removeAttr('srcset')
/*
.attr('src', function(index, attr) {
return attr.replace('thumb/', '').replace(/(svg).+/, '$1')
})
.removeAttr('srcset')
*/
;
var inputContainer = $('<span>');
inputContainer
.addClass('zh-dial-map__inputContainer')
.prependTo('.zh-dial-map__container')
;
var zoomContainer = $('<span>');
var zoomController = $('<input>');
zoomContainer
.addClass('zh-dial-map__zoomContainer')
.appendTo('.zh-dial-map__inputContainer')
;
zoomController
.addClass('zh-dial-map__zoomController')
.attr('type', 'range')
.attr('min', 0.1)
.attr('max', 4)
.attr('step', 0.1)
.val(1) // default zoom at 100%
.on("change", function() {
//console.log($(this).val());
$('.zh-dial-map__map').css("font-size", $(this).val() + "px");
})
.appendTo('.zh-dial-map__zoomContainer')
;
var groupSelectionContainer = $('<span>');
var groupSelectionStyle = $("<style>");
groupSelectionContainer
.addClass('zh-dial-map__groupSelectionContainer')
.appendTo('.zh-dial-map__inputContainer')
;
groupSelectionStyle
.addClass('zh-dial-map__groupSelectionStyle')
.appendTo('head')
;
for (var group in groupZH) {
var groupItem = $('<input>');
var groupLabel = $('<label>');
var id = 'zh-dial-map__groupItem--' + group.replace(' ', '-');
groupItem
.attr('type', 'checkbox')
.addClass('zh-dial-map__groupItem')
.attr('id', id)
.attr('name', 'zh-dial-map__groupItem')
.attr('data-group', group)
.on("change", updateGroupSelection)
.appendTo('.zh-dial-map__groupSelectionContainer')
;
groupLabel
.attr('for', id)
.text(group)
.appendTo('.zh-dial-map__groupSelectionContainer')
;
}
$('.zh-dial-map__legend-row').on("touchstart mouseenter",
function() {
var word = $(this).data('word'); // Get the dialectal word for the active legend row
var isOther = (word == 'other'); // Is our row the "other terms" row?
if (isOther) {
dots = $('.zh-dial-map__dot-other'); // Get all grey dots
} else {
dots = $('.zh-dial-map__dot[data-word=' + word + ']'); // Get every dot corresponding to our word
}
$(this).addClass(classes.legendRowHover); // Add hovered class to the legend row
dots.addClass(classes.dotHover); // Add hovered class to every corresponding dot
if (! wordLocations[word]) {
wordLocations[word] = [];
dots.each(
function(index) {
var location = [$(this).data('location-en'), $(this).data('location-zh'), $(this).data('group')]; // Get location of dot
wordLocations[word].push(location);
if (isOther) {
var otherWord = $(this).data('word'); // For "other terms", collect the terms too
otherTerms.push(otherWord);
if (! redLinks[otherWord]) redLinks[otherWord] = $(this).parent().hasClass('new');
//console.log(otherWord, redLinks[otherWord]);
}
}
);
//console.log(word, wordLocations[word]);
//if (isOther) { console.log(otherTerms) };
}
if (! popups[word]) {
var locationsList = $('<ul>').addClass('zh-dial-map__legend-row-locations'); // Popup contents
$.each(wordLocations[word], function(index, value) { // Do stuff related to each location recorded for this word
if (isOther) word = otherTerms[index];
var locationEn = value[0], locationZh = value[1], group = value[2];
var listItem = $('<li>');
listItem.append(zh({type: 'lang', word: locationZh + groupZH[group]})).append(' (' + locationEn + ' ' + group + ')'); // FIXME: this feels really hacky
if (isOther) listItem.append(': ').append(zh({type: 'link', word: otherTerms[index], red: redLinks[word]})); // FIXME: this too
var locationDot = $('[data-location-zh=' + locationZh + '][data-word=' + word + ']'); // Find the dot for this word at this location
//console.log('[data-location-zh=' + locationZh + '][data-word=' + word + ']', locationDot);
listItem.hover(
function() {
locationDot.addClass(classes.dotSuperHover);
},
function() {
locationDot.removeClass(classes.dotSuperHover);
}
);
listItem.appendTo(locationsList);
});
popups[word] = new OO.ui.PopupWidget({
$content: locationsList,
$container: $('.zh-dial-map__container'),
});
$(this).append(popups[word].$element); // Add cool popup to DOM
}
popups[word].toggle(true); // Make the popup visible
activePopup = popups[word];
}
);
$('.zh-dial-map__legend-row').on("touchend mouseleave",
function() {
$(this).removeClass(classes.legendRowHover); // Remove hovered class from legend row
dots.removeClass(classes.dotHover); // Remove hovered class from every dot that corresponds to that word
activePopup.toggle(false); // Hide popup
}
);
}
if ($('.zh-dial-map__map').length) {
main();
}
1kou9yynsnz5emdssvab013er20yecn
มีเดียวิกิ:Gadget-VisibilityToggles.js
8
266558
5771107
1560115
2026-10-03T02:25:35Z
Octahedron80
267
5771107
javascript
text/javascript
/* eslint-env es5, browser, jquery */
/* eslint semi: "error" */
/* jshint esversion: 5, eqeqeq: true */
/* globals $, mw */
/* requires mw.cookie, mw.storage */
(function VisibilityTogglesIIFE () {
"use strict";
// Toggle object that is constructed so that `toggle.status = !toggle.status`
// automatically calls either `toggle.show()` or `toggle.hide()` as appropriate.
// Creating toggle also automatically calls either the show or the hide function.
function Toggle (showFunction, hideFunction) {
this.show = showFunction, this.hide = hideFunction;
}
Toggle.prototype = {
get status () {
return this._status;
},
set status (newStatus) {
if (typeof newStatus !== "boolean")
throw new TypeError("Value of 'status' must be a boolean.");
if (newStatus === this._status)
return;
this._status = newStatus;
if (this._status !== this.toggleCategory.status)
this.toggleCategory.updateToggle(this._status);
if (this._status)
this.show();
else
this.hide();
},
};
/*
* Handles storing a boolean value associated with a `name` stored in
* localStorage under `key`.
*
* The `get` method returns `true`, `false`, or `undefined` (if the storage
* hasn't been tampered with).
* The `set` method only allows setting `true` or `false`.
*/
function BooleanStorage(key, name) {
if (typeof key !== "string")
throw new TypeError("Expected string");
if (!(typeof name === "string" && name !== "")) {
throw new TypeError("Expected non-empty string");
}
this.key = key; // key for localStorage
this.name = name; // name of toggle category
function convertOldCookie(cookie) {
return cookie.split(';')
.filter(function(e) { return e !== ''; })
.reduce(function(memo, currentValue) {
var match = /(.+?)=(\d)/.exec(currentValue); // only to test for temporary =[01] format
if (match) {
memo[match[1]] = Boolean(Number(match[2]));
} else {
memo[currentValue] = true;
}
return memo;
}, {});
}
// Look for cookie in old format.
var cookie = mw.cookie.get(key);
if (cookie !== null) {
this.obj = $.extend(this.obj, convertOldCookie(cookie));
mw.cookie.set(key, null); // Remove cookie.
}
}
BooleanStorage.prototype = {
get: function () {
return this.obj[this.name];
},
set: function (value) {
if (typeof value !== "boolean")
throw new TypeError("Expected boolean");
var obj = this.obj;
if (obj[this.name] !== value) {
obj[this.name] = value;
this.obj = obj;
}
},
// obj allows getting and setting the object version of the stored value.
get obj() {
if (typeof this.rawValue !== "string")
return {};
try {
return JSON.parse(this.rawValue);
} catch (e) {
if (e instanceof SyntaxError) {
return {};
} else {
throw e;
}
}
},
set obj(value) {
// throws TypeError ("cyclic object value")
this.rawValue = JSON.stringify(value);
},
// rawValue allows simple getting and setting of the stringified object.
get rawValue () {
return mw.storage.get(this.key);
},
set rawValue (value) {
return mw.storage.set(this.key, value);
},
};
// This is a version of the actual CSS identifier syntax (described here:
// https://stackoverflow.com/a/2812097), with only ASCII and that must begin
// with an alphabetic character.
var asciiCssIdentifierRegex = /^[a-zA-Z][a-zA-Z0-9_-]+$/;
function ToggleCategory (name, defaultStatus) {
this.name = name;
this.sidebarToggle = this.newSidebarToggle();
this.storage = new BooleanStorage("Visibility", name);
this.status = this.getInitialStatus(defaultStatus);
}
// Have toggle category inherit array methods.
ToggleCategory.prototype = [];
ToggleCategory.prototype.addToggle = function (showFunction, hideFunction) {
var toggle = new Toggle(showFunction, hideFunction);
toggle.toggleCategory = this;
this.push(toggle);
toggle.status = this.status;
return toggle;
};
// Generate an identifier consisting of a lowercase ASCII letter and a random integer.
function randomAsciiCssIdentifier() {
var digits = 9;
var lowCodepoint = "a".codePointAt(0), highCodepoint = "z".codePointAt(0);
return String.fromCodePoint(
lowCodepoint + Math.floor(Math.random() * (highCodepoint - lowCodepoint)))
+ String(Math.floor(Math.random() * Math.pow(10, digits)));
}
function getCssIdentifier(name) {
name = name.replace(/\s+/g, "-");
// Generate a valid ASCII CSS identifier.
if (!asciiCssIdentifierRegex.test(name)) {
// Remove characters that are invalid in an ASCII CSS identifier.
name = name.replace(/^[^a-zA-Z]+/, "").replace(/[^a-zA-Z_-]+/g, "");
if (!asciiCssIdentifierRegex.test(name))
name = randomAsciiCssIdentifier();
}
return name;
}
// Add a new global toggle to the sidebar.
ToggleCategory.prototype.newSidebarToggle = function () {
var name = getCssIdentifier(this.name);
var id = "p-visibility-" + name;
var sidebarToggle = $("#" + id);
if (sidebarToggle.length > 0)
return sidebarToggle;
var listEntry = $("<li>");
if (mw.config.get("skin") === "vector-2022")
listEntry.addClass("mw-list-item");
sidebarToggle = $("<a>", {
id: id,
href: "#visibility-" + this.name,
})
.click((function () {
this.status = !this.status;
this.storage.set(this.status);
return false;
}).bind(this));
listEntry.append(sidebarToggle).appendTo(this.buttons);
return sidebarToggle;
};
// Update the status of the sidebar toggle for the category when all of its
// toggles on the page are toggled one way.
ToggleCategory.prototype.updateToggle = function (status) {
if (this.length > 0 && this.every(function (toggle) { return toggle.status === status; }))
this.status = status;
};
// getInitialStatus is only called when a category is first created.
ToggleCategory.prototype.getInitialStatus = function (defaultStatus) {
function isFragmentSet(name) {
return location.hash.toLowerCase().split("_")[0] === "#" + name.toLowerCase();
}
function isHideCatsSet(name) {
var match = /^.+?\?(?:.*?&)*?hidecats=(.+?)(?:&.*)?$/.exec(location.href);
if (match !== null) {
var hidecats = match[1].split(",");
for (var i = 0; i < hidecats.length; ++i) {
switch (hidecats[i]) {
case name: case "all":
return false;
case "!" + name: case "none":
return true;
}
}
}
return false;
}
function isWiktionaryPreferencesCookieSet() {
return mw.cookie.get("WiktionaryPreferencesShowNav") === "true";
}
// TODO check category-specific cookies
return isFragmentSet(this.name)
|| isHideCatsSet(this.name)
|| isWiktionaryPreferencesCookieSet()
|| (function(storedValue) {
return storedValue !== undefined ? storedValue : Boolean(defaultStatus);
}(this.storage.get()));
};
Object.defineProperties(ToggleCategory.prototype, {
status: {
get: function () {
return this._status;
},
set: function (status) {
if (typeof status !== "boolean")
throw new TypeError("Value of 'status' must be a boolean.");
if (status === this._status)
return;
this._status = status;
// Change the state of all Toggles in the ToggleCategory.
for (var i = 0; i < this.length; i++)
this[i].status = status;
this.sidebarToggle.text((status ? "ซ่อน" : "แสดง") + this.name);
},
},
buttons: {
get: function () {
var buttons = $("#p-visibility ul");
if (buttons.length > 0)
return buttons;
buttons = $("<ul>");
// unused var collapsed = mw.cookie.get("vector-nav-p-visibility") === "false";
if (mw.config.get("skin") === "vector-2022") {
/* add to right-hand side ('tools') bar */
var toolbox = $("<div>", {
"class": "vector-menu mw-portlet mw-portlet-visibility",
"id": "p-visibility"
})
.append($('<div id="p-visibility-label" aria-label="" class="vector-menu-heading">ซ่อน/แสดง</div>'))
.append($("<div>", { class: "vector-menu-content" }).append(buttons.addClass("vector-menu-content-list")));
$('#vector-page-tools').append(toolbox);
} else {
var toolbox = $("<div>", {
"class": "vector-menu vector-menu-portal portal portlet",
"id": "p-visibility"
})
.append($('<label id="p-visibility-label" aria-label="" class="vector-menu-heading"><span class="vector-menu-heading-label">ซ่อน/แสดง</span></label>'))
.append($("<div>", { class: "pBody body vector-menu-content" }).append(buttons));
var insert = document.getElementById("p-lang") || document.getElementById("p-feedback");
if (insert) {
$(insert).before(toolbox);
} else {
var sidebar = document.getElementById("mw-panel") || document.getElementById("column-one");
$(sidebar).append(toolbox);
}
}
return buttons;
}
}
});
function VisibilityToggles () {
// table containing ToggleCategories
this.togglesByCategory = {};
}
// Add a new toggle, adds a Show/Hide category button in the toolbar.
// Returns a function that when called, calls showFunction and hideFunction
// alternately and updates the sidebar toggle for the category if necessary.
VisibilityToggles.prototype.register = function (category, showFunction, hideFunction, defaultStatus) {
if (!(typeof category === "string" && category !== ""))
return;
var toggle = this.addToggleCategory(category, defaultStatus)
.addToggle(showFunction, hideFunction);
return function () {
toggle.status = !toggle.status;
};
};
VisibilityToggles.prototype.addToggleCategory = function (name, defaultStatus) {
return (this.togglesByCategory[name] = this.togglesByCategory[name] || new ToggleCategory(name, defaultStatus));
};
window.alternativeVisibilityToggles = new VisibilityToggles();
window.VisibilityToggles = window.alternativeVisibilityToggles;
})();
bct44ncyufyavsahszvci5dmwn2zc47
มีเดียวิกิ:Gadget-defaultVisibilityToggles
8
266559
5771149
1097980
2026-10-03T03:54:42Z
Octahedron80
267
5771149
wikitext
text/x-wiki
Enables several types of visibility toggles, with category-specific buttons in the sidebar: [[w:NavFrame|NavFrame]], vsSwitcher, quotations, synonyms and other semantic relations after a definition, list switcher {{gadget tag|on by default, disable at your own risk}}
galxn13dsoy9l7qvphlel3fj1t4feek
มอดูล:languages/data/3/c/extra
828
312386
5771086
5727408
2026-10-03T01:13:54Z
Octahedron80
267
5771086
Scribunto
text/plain
local m = {}
m["caa"] = {
aliases = {"Chorti", "Chʼortiʼ"},
}
m["cab"] = {
}
m["cac"] = {
}
m["cad"] = {
}
m["cae"] = {
}
m["caf"] = {
}
m["cag"] = {
}
m["cah"] = {
}
m["caj"] = {
}
m["cak"] = {
aliases = {"Cakchiquel", "Kakchiquel", "Cachiquel"},
}
m["cal"] = {
}
m["cam"] = {
}
m["can"] = {
}
m["cao"] = {
}
m["cap"] = {
}
m["caq"] = {
aliases = {"Car Nicobarese", "Car"},
}
m["car"] = {
other_names = {"Carib", "Caribe", "Carina", "Cariña", "Cari'na", "Galibi", "Galibí", "Galibi Carib", "Kalihna", "Kalina", "Kali'na", "Kalinya", "Karìna", "Kari'nja", "Mainland Carib", "Maraworno", "Marworno"},
}
m["cas"] = {
other_names = {"Chimané", "Mosetén"},
}
m["cav"] = {
aliases = {"Cavinena"},
}
m["caw"] = {
}
m["cax"] = {
}
m["cay"] = {
}
m["caz"] = {
}
m["cbb"] = {
}
m["cbc"] = {
}
m["cbd"] = {
other_names = {"Carihona", "Karijona", "Karihona", "Jianacoto", "Jianácoto", "Hianakoto", "Hianacoto", "Hianákoto", "Guaque", "Omagua", "Umaua", "Umawa"},
}
m["cbg"] = {
}
m["cbi"] = {
aliases = {"Cha'palaa", "Chapalaa", "Cha'palaachi", "Chapalaachi", "Cayapa"},
}
m["cbj"] = {
}
m["cbk"] = {
aliases = {"ชาวากาโน", "ชาวาคาโน", "Chavacano", "Zamboanga Chavacano"},
}
m["cbl"] = {
other_names = {"Bualkhaw"},
}
m["cbn"] = {
aliases = {"Nyah Kur", "Nyahkur"},
}
m["cbo"] = {
}
m["cbq"] = {
aliases = {"Cuba", "Shuba"},
}
m["cbr"] = {
other_names = {"Cashibo", "Cacataibo"},
}
m["cbs"] = {
}
m["cbt"] = {
}
m["cbu"] = {
}
m["cbv"] = {
}
m["cbw"] = {
}
m["cby"] = {
other_names = {"Caraballo", "Yuri", "Aroje", "Yacumo", "Maku", "Macu", "Macusa"},
}
m["cca"] = {
}
m["ccc"] = {
}
m["ccd"] = {
}
m["cce"] = {
}
m["ccg"] = {
other_names = {"Samba Daka", "Nakanyare"},
}
m["cch"] = {
}
m["ccj"] = {
}
m["ccl"] = {
}
m["ccm"] = {
}
m["cco"] = {
}
m["ccp"] = {
aliases = {"Chakma", "Changmha"},
}
m["ccr"] = {
}
m["cda"] = {
}
m["cde"] = {
}
m["cdf"] = {
}
m["cdh"] = {
}
m["cdi"] = {
}
m["cdj"] = {
}
m["cdm"] = {
}
m["cdn"] = {
}
m["cdo"] = {
aliases = {"หมิ่นตง", "Min Dong", "Min Dong Chinese"},
}
m["cdr"] = {
}
m["cds"] = {
}
m["cdy"] = {
}
m["cdz"] = {
}
m["cea"] = {
}
m["ceb"] = {
aliases = {"เซบู", "Cebuano"},
}
m["ceg"] = {
}
m["cen"] = {
other_names = {"Cèn", "Chen"},
}
m["cet"] = {
other_names = {"Jalaa", "Cèntûm", "Cen Tuum"},
}
m["cfa"] = {
}
m["cfd"] = {
}
m["cfg"] = {
}
m["cfm"] = {
aliases = {"Falam"},
}
m["cga"] = {
}
m["cgc"] = {
}
m["cgg"] = {
}
m["cgk"] = {
}
m["chb"] = {
}
m["chc"] = {
}
m["chd"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Tequistlatec", "Mountain Tequistlateco", "Highland Chontal", "Mountain Chontal"},
}
m["chf"] = {
}
m["chg"] = {
aliases = {"ชะกะไต", "จักกาไท", "Chagatai"},
}
m["chh"] = {
}
m["chj"] = {
}
m["chk"] = {
}
m["chl"] = {
}
m["chn"] = {
}
m["cho"] = {
}
m["chp"] = {
other_names = {"Dëne Sųłiné", "Dënesųłiné", "Dëne", "Dene Suline", "Denesuline", "Dene"},
}
m["chq"] = {
}
m["chr"] = {
aliases = {"Cherokee", "Tsalagi"},
varieties = {"Lower Cherokee", {"Middle Cherokee", "Kituwah", "Kituhwa", "Eastern Cherokee"}, {"Overhill Cherokee", "Otali", "Western Cherokee"}},
}
m["cht"] = {
}
m["chw"] = {
aliases = {"Chuwabu", "Cuwabo", "Cuwabu", "Cuabo", "Txuwabo", "Echuabo"},
}
m["chx"] = {
}
m["chy"] = {
aliases = {"Cheyenne"},
}
m["chz"] = {
}
m["cia"] = {
}
m["cib"] = {
}
m["cic"] = {
}
m["cid"] = {
}
m["cie"] = {
}
m["cih"] = {
}
m["cik"] = {
}
m["cim"] = {
aliases = {"คิมเบรียน", "ซิมบรี", "ซิมเบรียน", "Cimbrian"},
varieties = {"Luserna Cimbrian", "Sette Comuni Cimbrian", "Thirteen Communities Cimbrian"},
}
m["cin"] = {
}
m["cip"] = {
}
m["cir"] = {
other_names = {"Tiri", "Ciri", "Tinrin", "Méa", "Haméa"},
}
m["ciy"] = {
}
m["cja"] = {
aliases = {"Western Cham"},
}
m["cje"] = {
}
m["cjh"] = {
}
m["cji"] = {
}
m["cjk"] = {
}
m["cjm"] = {
aliases = {"Eastern Cham"},
}
m["cjn"] = {
}
m["cjo"] = {
}
m["cjp"] = {
}
m["cjs"] = {
aliases = {"Shor"},
}
m["cjv"] = {
}
m["cjy"] = {
aliases = {"จีนจิ้น", "ซานซี", "Jin", "Jinyu", "Jinhua", "Jinese", "Shanxinese", "Jin Chinese", "Jinyu Chinese"},
}
m["ckb"] = {
aliases = {"โซรานี", "Central Kurdish", "Sorani"},
}
m["ckh"] = {
aliases = {"Sak"},
}
m["ckl"] = {
aliases = {"Chibuk", "Chibok", "Chibbak", "Chibbuk", "Kyibaku", "Kibbaku", "Kibaku"},
}
m["ckn"] = {
aliases = {"Kaang"},
}
m["cko"] = {
aliases = {"Chakosi"},
}
m["ckq"] = {
}
m["ckr"] = {
}
m["cks"] = {
}
m["ckt"] = {
aliases = {"Chukchi"},
}
m["cku"] = {
}
m["ckv"] = {
aliases = {"กาวาลัน", "Kbalan", "Kebalan", "Kavalan"},
}
m["ckx"] = {
}
m["cky"] = {
}
m["ckz"] = {
other_names = {"Cauque Mayan"},
}
m["cla"] = {
other_names = {"Bokkos", "Daffo-Butura", "Shagawu"},
}
m["clc"] = {
aliases = {"Tsilhqot'in", "Tsilhqut'in", "Tzilkotin"},
}
m["cld"] = {
}
m["cle"] = {
}
m["clh"] = {
}
m["cli"] = {
}
m["clj"] = {
aliases = {"Laitu"},
}
m["clk"] = {
other_names = {"Idu-Mishmi", "Idu Mishmi"},
}
m["cll"] = {
}
m["clm"] = {
aliases = {"Clallam", "S'Klallam"},
}
m["clo"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Huamelultec", "Huamelula Chontal", "Coastal Chontal"},
}
m["clt"] = {
aliases = {"Lautu"},
}
m["clu"] = {
}
m["clw"] = {
other_names = {"Chulim", "Chulym-Turkic", "Küerik", "Chulym Tatar", "Melets Tatar"},
}
m["cly"] = {
}
m["cma"] = {
aliases = {"Mạ", "Maa"},
}
m["cme"] = {
}
m["cmg"] = {
aliases = {"Classical Mongolian"},
}
m["cmi"] = {
}
m["cml"] = {
}
m["cmm"] = {
}
m["cmn"] = {
aliases = {"จีนแมนดาริน", "แมนดาริน", "Mandarin", "Mandarin Chinese", "Putonghua", "Guoyu", "Huayu", "Guanhua", "Beifanghua", "Standard Chinese"},
}
m["cmo"] = {
aliases = {"Central Mnong"},
}
m["cmr"] = {
other_names = {"Mro-Khimi Chin", "Mro", "Mro-Khimi"},
}
m["cms"] = {
aliases = {"Messapian"},
}
m["cmt"] = {
}
m["cna"] = {
}
m["cnb"] = {
aliases = {"Chinbon"},
}
m["cnc"] = {
aliases = {"Côông", "Coong"},
}
m["cng"] = {
}
m["cnh"] = {
aliases = {"ฮาคา", "ชีนแบบฮ่าค่า", "ชีนแบบฮาคา", "Lai", "Hakha Chin", "Hakha", "Haka Chin", "Haka"},
}
m["cni"] = {
aliases = {"Ashaninka"},
}
m["cnk"] = {
other_names = {"Khumi", "Khami", "Nisay", "Nise", "Eastern Khumi", "Eastern Khumi Chin"},
}
m["cnl"] = {
}
m["cno"] = {
}
m["cnp"] = {
aliases = {"Northern Pinghua", "Northern Ping"},
}
m["cns"] = {
}
m["cnt"] = {
}
m["cnu"] = {
aliases = {"Shenwa"},
}
m["cnw"] = {
aliases = {"Ngawn"},
}
m["cnx"] = {
}
m["coa"] = {
aliases = {"Cocos Malay"},
}
m["cob"] = {
}
m["coc"] = {
}
m["cod"] = {
other_names = {"Kokama", "Kokáma", "Cocama-Cocamilla", "Kukama-Kukamiria", "Cocamilla", "Kokamíya", "Cocaima"},
}
m["coe"] = {
}
m["cof"] = {
other_names = {"Colorado", "Tsáchila"},
}
m["cog"] = {
aliases = {"Chong"},
}
m["coh"] = {
}
m["coj"] = {
}
m["cok"] = {
}
m["col"] = {
other_names = {"Columbia-Wenatchee", "Columbia-Moses", "Nxaamxcin", "Wenatchi", "Wenatchee"},
}
m["com"] = {
}
m["con"] = {
other_names = {"Cofan", "Kofan", "Kofane", "A'ingae", "Maku", "Macu"},
}
m["coo"] = {
}
m["cop"] = {
aliases = {"Coptic"},
-- Don't include varieties in [[Module:etymology languages/data]]
}
m["coq"] = {
}
m["cot"] = {
}
m["cou"] = {
}
m["cov"] = {
aliases = {"Cao Miao"},
}
m["cow"] = {
}
m["cox"] = {
}
m["coy"] = {
}
m["coz"] = {
other_names = {"Chocho", "Chocholtec"},
}
m["cpa"] = {
}
m["cpb"] = {
}
m["cpc"] = {
}
m["cpg"] = {
aliases = {"Cappadocian"},
}
m["cpi"] = {
}
m["cpn"] = {
other_names = {"Chiripon", "Chiripong", "Kyerepong", "Okere"},
}
m["cpo"] = {
other_names = {"Kpeego", "Kpeen", "Numu"},
}
m["cps"] = {
}
m["cpu"] = {
}
m["cpx"] = {
aliases = {"หมิ่นแบบผู้เซียน", "หมิ่นผูเซียน", "Puxian Min", "Puxian", "Pu-Xian", "Pu-Xian Min", "Pu Xian", "Pu Xian Min", "Putian", "Xinghua", "Henghua", "Hinghua", "Henghwa", "Hinghwa"}
}
m["cpy"] = {
}
m["cqd"] = {
}
m["cra"] = {
}
m["crb"] = {
other_names = {"Igneri", "Inyeri", "Iñeri", "Island Carib", "Kalhiphona", "Karifuna"},
}
m["crc"] = {
}
m["crd"] = {
}
m["crf"] = {
}
m["crg"] = {
}
m["crh"] = {
aliases = {"Crimean Tatar"},
}
m["cri"] = {
aliases = {"Forro", "São Tomense"},
}
m["crj"] = {
}
m["crk"] = {
}
m["crl"] = {
}
m["crm"] = {
}
m["crn"] = {
}
m["cro"] = {
other_names = {"Apsalooke"},
}
m["crq"] = {
}
m["crr"] = {
}
m["crs"] = {
}
m["crt"] = {
}
m["crv"] = {
other_names = {"Tutet"},
}
m["crw"] = {
}
m["crx"] = {
}
m["cry"] = {
}
m["crz"] = {
}
m["csa"] = {
}
m["csb"] = {
aliases = {"Kashubian"},
}
m["csc"] = {
}
m["csd"] = {
}
m["cse"] = {
}
m["csf"] = {
}
m["csg"] = {
}
m["csh"] = {
aliases = {"Asho"},
}
m["csi"] = {
}
m["csj"] = {
aliases = {"Songlai"},
}
m["csk"] = {
}
m["csl"] = {
}
m["csm"] = {
}
m["csn"] = {
}
m["cso"] = {
}
m["csp"] = {
aliases = {"Southern Pinghua", "Southern Ping"},
}
m["csq"] = {
}
m["csr"] = {
}
m["css"] = {
other_names = {"Mutsun", "San Juan Bautista Costanoan", "Rumsien", "San Carlos Costanoan", "Carmeleno"},
}
m["cst"] = {
}
m["csv"] = {
aliases = {"Sumtu"},
}
m["csw"] = {
}
m["csy"] = {
aliases = {"Siyin"},
}
m["csz"] = {
other_names = {"Hanis", "Hanis Coos"},
}
m["cta"] = {
}
m["ctc"] = {
other_names = {"Chetco", "Siletz Dee-ni", "Deeni", "Tututni", "Siletz"},
}
m["ctd"] = {
other_names = {"Tedim", "Tiddim", "Sukte"},
}
m["cte"] = {
}
m["ctg"] = {
}
m["cth"] = {
aliases = {"Thaiphum"},
}
m["ctl"] = {
}
m["ctm"] = {
}
m["ctn"] = {
}
m["cto"] = {
}
m["ctp"] = {
}
m["cts"] = {
}
m["ctt"] = {
aliases = {"Chetti"},
}
m["ctu"] = {
}
m["ctz"] = {
}
m["cua"] = {
}
m["cub"] = {
aliases = {"Cuveo", "Kubéo", "Kubeo", "Kubéu", "Kubeu", "Cobewa", "Cobéua", "Cobeua", "Kubéwa", "Kubewa", "Kobéua", "Kobeua", "Kobewa", "Pamiwa"},
}
m["cuc"] = {
}
m["cug"] = {
other_names = {"Chung", "Chungmboko", "Chung-Mboko", "Mboko"},
}
m["cuh"] = {
}
m["cui"] = {
}
m["cuj"] = {
}
m["cuk"] = {
}
m["cul"] = {
other_names = {"Kulina", "Kulína", "Kulyna", "Curina", "Corina", "Korina", "Culina-Madijá", "Madijá", "Madija", "Madiha", "Madihá"},
}
m["cuo"] = {
other_names = {"Cumanogota", "Cumana", "Cumaná", "Kumana", "Kumaná"},
}
m["cup"] = {
}
m["cuq"] = {
aliases = {"เกอหลง", "Cun", "Gelong"},
}
m["cur"] = {
}
m["cut"] = {
}
m["cuu"] = {
}
m["cuv"] = {
}
m["cuw"] = {
}
m["cux"] = {
}
m["cuy"] = {
aliases = {"Cuitlateco"},
}
m["cvg"] = {
}
m["cvn"] = {
}
m["cwa"] = {
}
m["cwb"] = {
}
m["cwd"] = {
}
m["cwe"] = {
}
m["cwg"] = {
aliases = {"Cheq Wong", "Cheq-Wong", "Ceq Wong"},
}
m["cwt"] = {
}
m["cya"] = {
}
m["cyb"] = {
aliases = {"Cayuvava", "Cayuwaba"},
}
m["cyo"] = {
}
m["czh"] = {
aliases = {"Huizhou Chinese"},
}
m["czk"] = {
}
m["czn"] = {
}
m["czo"] = {
aliases = {"หมิ่นจง", "หมิ่นกลาง", "Min Zhong", "Min Zhong Chinese"},
}
m["czt"] = {
aliases = {"Zotung"},
}
return m
t5ymorm9lz9zzdihdgfgriuv5zkman4
5771088
5771086
2026-10-03T01:15:06Z
Octahedron80
267
5771088
Scribunto
text/plain
local m = {}
m["caa"] = {
aliases = {"Chorti", "Chʼortiʼ"},
}
m["cab"] = {
}
m["cac"] = {
}
m["cad"] = {
}
m["cae"] = {
}
m["caf"] = {
}
m["cag"] = {
}
m["cah"] = {
}
m["caj"] = {
}
m["cak"] = {
aliases = {"Cakchiquel", "Kakchiquel", "Cachiquel"},
}
m["cal"] = {
}
m["cam"] = {
}
m["can"] = {
}
m["cao"] = {
}
m["cap"] = {
}
m["caq"] = {
aliases = {"Car Nicobarese", "Car"},
}
m["car"] = {
other_names = {"Carib", "Caribe", "Carina", "Cariña", "Cari'na", "Galibi", "Galibí", "Galibi Carib", "Kalihna", "Kalina", "Kali'na", "Kalinya", "Karìna", "Kari'nja", "Mainland Carib", "Maraworno", "Marworno"},
}
m["cas"] = {
other_names = {"Chimané", "Mosetén"},
}
m["cav"] = {
aliases = {"Cavinena"},
}
m["caw"] = {
}
m["cax"] = {
}
m["cay"] = {
}
m["caz"] = {
}
m["cbb"] = {
}
m["cbc"] = {
}
m["cbd"] = {
other_names = {"Carihona", "Karijona", "Karihona", "Jianacoto", "Jianácoto", "Hianakoto", "Hianacoto", "Hianákoto", "Guaque", "Omagua", "Umaua", "Umawa"},
}
m["cbg"] = {
}
m["cbi"] = {
aliases = {"Cha'palaa", "Chapalaa", "Cha'palaachi", "Chapalaachi", "Cayapa"},
}
m["cbj"] = {
}
m["cbk"] = {
aliases = {"ชาวากาโน", "ชาวาคาโน", "Chavacano", "Zamboanga Chavacano"},
}
m["cbl"] = {
other_names = {"Bualkhaw"},
}
m["cbn"] = {
aliases = {"Nyah Kur", "Nyahkur"},
}
m["cbo"] = {
}
m["cbq"] = {
aliases = {"Cuba", "Shuba"},
}
m["cbr"] = {
other_names = {"Cashibo", "Cacataibo"},
}
m["cbs"] = {
}
m["cbt"] = {
}
m["cbu"] = {
}
m["cbv"] = {
}
m["cbw"] = {
}
m["cby"] = {
other_names = {"Caraballo", "Yuri", "Aroje", "Yacumo", "Maku", "Macu", "Macusa"},
}
m["cca"] = {
}
m["ccc"] = {
}
m["ccd"] = {
}
m["cce"] = {
}
m["ccg"] = {
other_names = {"Samba Daka", "Nakanyare"},
}
m["cch"] = {
}
m["ccj"] = {
}
m["ccl"] = {
}
m["ccm"] = {
}
m["cco"] = {
}
m["ccp"] = {
aliases = {"Chakma", "Changmha"},
}
m["ccr"] = {
}
m["cda"] = {
}
m["cde"] = {
}
m["cdf"] = {
}
m["cdh"] = {
}
m["cdi"] = {
}
m["cdj"] = {
}
m["cdm"] = {
}
m["cdn"] = {
}
m["cdo"] = {
aliases = {"หมิ่นตง", "Min Dong", "Min Dong Chinese"},
}
m["cdr"] = {
}
m["cds"] = {
}
m["cdy"] = {
}
m["cdz"] = {
}
m["cea"] = {
}
m["ceb"] = {
aliases = {"เซบู", "Cebuano"},
}
m["ceg"] = {
}
m["cen"] = {
other_names = {"Cèn", "Chen"},
}
m["cet"] = {
other_names = {"Jalaa", "Cèntûm", "Cen Tuum"},
}
m["cfa"] = {
}
m["cfd"] = {
}
m["cfg"] = {
}
m["cfm"] = {
aliases = {"Falam"},
}
m["cga"] = {
}
m["cgc"] = {
}
m["cgg"] = {
}
m["cgk"] = {
}
m["chb"] = {
}
m["chc"] = {
}
m["chd"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Tequistlatec", "Mountain Tequistlateco", "Highland Chontal", "Mountain Chontal"},
}
m["chf"] = {
}
m["chg"] = {
aliases = {"ชะกะไต", "จักกาไท", "Chagatai"},
}
m["chh"] = {
}
m["chj"] = {
}
m["chk"] = {
}
m["chl"] = {
}
m["chn"] = {
}
m["cho"] = {
}
m["chp"] = {
other_names = {"Dëne Sųłiné", "Dënesųłiné", "Dëne", "Dene Suline", "Denesuline", "Dene"},
}
m["chq"] = {
}
m["chr"] = {
aliases = {"Cherokee", "Tsalagi"},
varieties = {"Lower Cherokee", {"Middle Cherokee", "Kituwah", "Kituhwa", "Eastern Cherokee"}, {"Overhill Cherokee", "Otali", "Western Cherokee"}},
}
m["cht"] = {
}
m["chw"] = {
aliases = {"Chuwabu", "Cuwabo", "Cuwabu", "Cuabo", "Txuwabo", "Echuabo"},
}
m["chx"] = {
}
m["chy"] = {
aliases = {"Cheyenne"},
}
m["chz"] = {
}
m["cia"] = {
}
m["cib"] = {
}
m["cic"] = {
}
m["cid"] = {
}
m["cie"] = {
}
m["cih"] = {
}
m["cik"] = {
}
m["cim"] = {
aliases = {"คิมเบรียน", "ซิมบรี", "ซิมเบรียน", "Cimbrian"},
varieties = {"Luserna Cimbrian", "Sette Comuni Cimbrian", "Thirteen Communities Cimbrian"},
}
m["cin"] = {
}
m["cip"] = {
}
m["cir"] = {
other_names = {"Tiri", "Ciri", "Tinrin", "Méa", "Haméa"},
}
m["ciy"] = {
}
m["cja"] = {
aliases = {"Western Cham"},
}
m["cje"] = {
}
m["cjh"] = {
}
m["cji"] = {
}
m["cjk"] = {
}
m["cjm"] = {
aliases = {"Eastern Cham"},
}
m["cjn"] = {
}
m["cjo"] = {
}
m["cjp"] = {
}
m["cjs"] = {
aliases = {"Shor"},
}
m["cjv"] = {
}
m["cjy"] = {
aliases = {"จีนจิ้น", "ซานซี", "Jin", "Jinyu", "Jinhua", "Jinese", "Shanxinese", "Jin Chinese", "Jinyu Chinese"},
}
m["ckb"] = {
aliases = {"โซรานี", "Central Kurdish", "Sorani"},
}
m["ckh"] = {
aliases = {"Sak"},
}
m["ckl"] = {
aliases = {"Chibuk", "Chibok", "Chibbak", "Chibbuk", "Kyibaku", "Kibbaku", "Kibaku"},
}
m["ckn"] = {
aliases = {"Kaang"},
}
m["cko"] = {
aliases = {"Chakosi"},
}
m["ckq"] = {
}
m["ckr"] = {
}
m["cks"] = {
}
m["ckt"] = {
aliases = {"Chukchi"},
}
m["cku"] = {
}
m["ckv"] = {
aliases = {"กาวาลัน", "Kbalan", "Kebalan", "Kavalan"},
}
m["ckx"] = {
}
m["cky"] = {
}
m["ckz"] = {
other_names = {"Cauque Mayan"},
}
m["cla"] = {
other_names = {"Bokkos", "Daffo-Butura", "Shagawu"},
}
m["clc"] = {
aliases = {"Tsilhqot'in", "Tsilhqut'in", "Tzilkotin"},
}
m["cld"] = {
}
m["cle"] = {
}
m["clh"] = {
}
m["cli"] = {
}
m["clj"] = {
aliases = {"Laitu"},
}
m["clk"] = {
other_names = {"Idu-Mishmi", "Idu Mishmi"},
}
m["cll"] = {
}
m["clm"] = {
aliases = {"Clallam", "S'Klallam"},
}
m["clo"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Huamelultec", "Huamelula Chontal", "Coastal Chontal"},
}
m["clt"] = {
aliases = {"Lautu"},
}
m["clu"] = {
}
m["clw"] = {
other_names = {"Chulim", "Chulym-Turkic", "Küerik", "Chulym Tatar", "Melets Tatar"},
}
m["cly"] = {
}
m["cma"] = {
aliases = {"Mạ", "Maa"},
}
m["cme"] = {
}
m["cmg"] = {
aliases = {"Classical Mongolian"},
}
m["cmi"] = {
}
m["cml"] = {
}
m["cmm"] = {
}
m["cmn"] = {
aliases = {"จีนแมนดาริน", "แมนดาริน", "Mandarin", "Mandarin Chinese", "Putonghua", "Guoyu", "Huayu", "Guanhua", "Beifanghua", "Standard Chinese"},
}
m["cmo"] = {
aliases = {"Central Mnong"},
}
m["cmr"] = {
other_names = {"Mro-Khimi Chin", "Mro", "Mro-Khimi"},
}
m["cms"] = {
aliases = {"Messapian"},
}
m["cmt"] = {
}
m["cna"] = {
}
m["cnb"] = {
aliases = {"Chinbon"},
}
m["cnc"] = {
aliases = {"Côông", "Coong"},
}
m["cng"] = {
}
m["cnh"] = {
aliases = {"ฮาคา", "ชีนแบบฮ่าค่า", "ชีนแบบฮาคา", "ปาวี", "Lai", "Hakha Chin", "Hakha", "Haka Chin", "Haka", "Pawi"},
}
m["cni"] = {
aliases = {"Ashaninka"},
}
m["cnk"] = {
other_names = {"Khumi", "Khami", "Nisay", "Nise", "Eastern Khumi", "Eastern Khumi Chin"},
}
m["cnl"] = {
}
m["cno"] = {
}
m["cnp"] = {
aliases = {"Northern Pinghua", "Northern Ping"},
}
m["cns"] = {
}
m["cnt"] = {
}
m["cnu"] = {
aliases = {"Shenwa"},
}
m["cnw"] = {
aliases = {"Ngawn"},
}
m["cnx"] = {
}
m["coa"] = {
aliases = {"Cocos Malay"},
}
m["cob"] = {
}
m["coc"] = {
}
m["cod"] = {
other_names = {"Kokama", "Kokáma", "Cocama-Cocamilla", "Kukama-Kukamiria", "Cocamilla", "Kokamíya", "Cocaima"},
}
m["coe"] = {
}
m["cof"] = {
other_names = {"Colorado", "Tsáchila"},
}
m["cog"] = {
aliases = {"Chong"},
}
m["coh"] = {
}
m["coj"] = {
}
m["cok"] = {
}
m["col"] = {
other_names = {"Columbia-Wenatchee", "Columbia-Moses", "Nxaamxcin", "Wenatchi", "Wenatchee"},
}
m["com"] = {
}
m["con"] = {
other_names = {"Cofan", "Kofan", "Kofane", "A'ingae", "Maku", "Macu"},
}
m["coo"] = {
}
m["cop"] = {
aliases = {"Coptic"},
-- Don't include varieties in [[Module:etymology languages/data]]
}
m["coq"] = {
}
m["cot"] = {
}
m["cou"] = {
}
m["cov"] = {
aliases = {"Cao Miao"},
}
m["cow"] = {
}
m["cox"] = {
}
m["coy"] = {
}
m["coz"] = {
other_names = {"Chocho", "Chocholtec"},
}
m["cpa"] = {
}
m["cpb"] = {
}
m["cpc"] = {
}
m["cpg"] = {
aliases = {"Cappadocian"},
}
m["cpi"] = {
}
m["cpn"] = {
other_names = {"Chiripon", "Chiripong", "Kyerepong", "Okere"},
}
m["cpo"] = {
other_names = {"Kpeego", "Kpeen", "Numu"},
}
m["cps"] = {
}
m["cpu"] = {
}
m["cpx"] = {
aliases = {"หมิ่นแบบผู้เซียน", "หมิ่นผูเซียน", "Puxian Min", "Puxian", "Pu-Xian", "Pu-Xian Min", "Pu Xian", "Pu Xian Min", "Putian", "Xinghua", "Henghua", "Hinghua", "Henghwa", "Hinghwa"}
}
m["cpy"] = {
}
m["cqd"] = {
}
m["cra"] = {
}
m["crb"] = {
other_names = {"Igneri", "Inyeri", "Iñeri", "Island Carib", "Kalhiphona", "Karifuna"},
}
m["crc"] = {
}
m["crd"] = {
}
m["crf"] = {
}
m["crg"] = {
}
m["crh"] = {
aliases = {"Crimean Tatar"},
}
m["cri"] = {
aliases = {"Forro", "São Tomense"},
}
m["crj"] = {
}
m["crk"] = {
}
m["crl"] = {
}
m["crm"] = {
}
m["crn"] = {
}
m["cro"] = {
other_names = {"Apsalooke"},
}
m["crq"] = {
}
m["crr"] = {
}
m["crs"] = {
}
m["crt"] = {
}
m["crv"] = {
other_names = {"Tutet"},
}
m["crw"] = {
}
m["crx"] = {
}
m["cry"] = {
}
m["crz"] = {
}
m["csa"] = {
}
m["csb"] = {
aliases = {"Kashubian"},
}
m["csc"] = {
}
m["csd"] = {
}
m["cse"] = {
}
m["csf"] = {
}
m["csg"] = {
}
m["csh"] = {
aliases = {"Asho"},
}
m["csi"] = {
}
m["csj"] = {
aliases = {"Songlai"},
}
m["csk"] = {
}
m["csl"] = {
}
m["csm"] = {
}
m["csn"] = {
}
m["cso"] = {
}
m["csp"] = {
aliases = {"Southern Pinghua", "Southern Ping"},
}
m["csq"] = {
}
m["csr"] = {
}
m["css"] = {
other_names = {"Mutsun", "San Juan Bautista Costanoan", "Rumsien", "San Carlos Costanoan", "Carmeleno"},
}
m["cst"] = {
}
m["csv"] = {
aliases = {"Sumtu"},
}
m["csw"] = {
}
m["csy"] = {
aliases = {"Siyin"},
}
m["csz"] = {
other_names = {"Hanis", "Hanis Coos"},
}
m["cta"] = {
}
m["ctc"] = {
other_names = {"Chetco", "Siletz Dee-ni", "Deeni", "Tututni", "Siletz"},
}
m["ctd"] = {
other_names = {"Tedim", "Tiddim", "Sukte"},
}
m["cte"] = {
}
m["ctg"] = {
}
m["cth"] = {
aliases = {"Thaiphum"},
}
m["ctl"] = {
}
m["ctm"] = {
}
m["ctn"] = {
}
m["cto"] = {
}
m["ctp"] = {
}
m["cts"] = {
}
m["ctt"] = {
aliases = {"Chetti"},
}
m["ctu"] = {
}
m["ctz"] = {
}
m["cua"] = {
}
m["cub"] = {
aliases = {"Cuveo", "Kubéo", "Kubeo", "Kubéu", "Kubeu", "Cobewa", "Cobéua", "Cobeua", "Kubéwa", "Kubewa", "Kobéua", "Kobeua", "Kobewa", "Pamiwa"},
}
m["cuc"] = {
}
m["cug"] = {
other_names = {"Chung", "Chungmboko", "Chung-Mboko", "Mboko"},
}
m["cuh"] = {
}
m["cui"] = {
}
m["cuj"] = {
}
m["cuk"] = {
}
m["cul"] = {
other_names = {"Kulina", "Kulína", "Kulyna", "Curina", "Corina", "Korina", "Culina-Madijá", "Madijá", "Madija", "Madiha", "Madihá"},
}
m["cuo"] = {
other_names = {"Cumanogota", "Cumana", "Cumaná", "Kumana", "Kumaná"},
}
m["cup"] = {
}
m["cuq"] = {
aliases = {"เกอหลง", "Cun", "Gelong"},
}
m["cur"] = {
}
m["cut"] = {
}
m["cuu"] = {
}
m["cuv"] = {
}
m["cuw"] = {
}
m["cux"] = {
}
m["cuy"] = {
aliases = {"Cuitlateco"},
}
m["cvg"] = {
}
m["cvn"] = {
}
m["cwa"] = {
}
m["cwb"] = {
}
m["cwd"] = {
}
m["cwe"] = {
}
m["cwg"] = {
aliases = {"Cheq Wong", "Cheq-Wong", "Ceq Wong"},
}
m["cwt"] = {
}
m["cya"] = {
}
m["cyb"] = {
aliases = {"Cayuvava", "Cayuwaba"},
}
m["cyo"] = {
}
m["czh"] = {
aliases = {"Huizhou Chinese"},
}
m["czk"] = {
}
m["czn"] = {
}
m["czo"] = {
aliases = {"หมิ่นจง", "หมิ่นกลาง", "Min Zhong", "Min Zhong Chinese"},
}
m["czt"] = {
aliases = {"Zotung"},
}
return m
4ue9iwo77if75um10e98obtvmx0d7ml
5771090
5771088
2026-10-03T01:27:40Z
Octahedron80
267
5771090
Scribunto
text/plain
local m = {}
m["caa"] = {
aliases = {"Chorti", "Chʼortiʼ"},
}
m["cab"] = {
}
m["cac"] = {
}
m["cad"] = {
}
m["cae"] = {
}
m["caf"] = {
}
m["cag"] = {
}
m["cah"] = {
}
m["caj"] = {
}
m["cak"] = {
aliases = {"Cakchiquel", "Kakchiquel", "Cachiquel"},
}
m["cal"] = {
}
m["cam"] = {
}
m["can"] = {
}
m["cao"] = {
}
m["cap"] = {
}
m["caq"] = {
aliases = {"Car Nicobarese", "Car"},
}
m["car"] = {
other_names = {"Carib", "Caribe", "Carina", "Cariña", "Cari'na", "Galibi", "Galibí", "Galibi Carib", "Kalihna", "Kalina", "Kali'na", "Kalinya", "Karìna", "Kari'nja", "Mainland Carib", "Maraworno", "Marworno"},
}
m["cas"] = {
other_names = {"Chimané", "Mosetén"},
}
m["cav"] = {
aliases = {"Cavinena"},
}
m["caw"] = {
}
m["cax"] = {
}
m["cay"] = {
}
m["caz"] = {
}
m["cbb"] = {
}
m["cbc"] = {
}
m["cbd"] = {
other_names = {"Carihona", "Karijona", "Karihona", "Jianacoto", "Jianácoto", "Hianakoto", "Hianacoto", "Hianákoto", "Guaque", "Omagua", "Umaua", "Umawa"},
}
m["cbg"] = {
}
m["cbi"] = {
aliases = {"Cha'palaa", "Chapalaa", "Cha'palaachi", "Chapalaachi", "Cayapa"},
}
m["cbj"] = {
}
m["cbk"] = {
aliases = {"ชาวากาโน", "ชาวาคาโน", "Chavacano", "Zamboanga Chavacano"},
}
m["cbl"] = {
other_names = {"Bualkhaw"},
}
m["cbn"] = {
aliases = {"Nyah Kur", "Nyahkur"},
}
m["cbo"] = {
}
m["cbq"] = {
aliases = {"Cuba", "Shuba"},
}
m["cbr"] = {
other_names = {"Cashibo", "Cacataibo"},
}
m["cbs"] = {
}
m["cbt"] = {
}
m["cbu"] = {
}
m["cbv"] = {
}
m["cbw"] = {
}
m["cby"] = {
other_names = {"Caraballo", "Yuri", "Aroje", "Yacumo", "Maku", "Macu", "Macusa"},
}
m["cca"] = {
}
m["ccc"] = {
}
m["ccd"] = {
}
m["cce"] = {
}
m["ccg"] = {
other_names = {"Samba Daka", "Nakanyare"},
}
m["cch"] = {
}
m["ccj"] = {
}
m["ccl"] = {
}
m["ccm"] = {
}
m["cco"] = {
}
m["ccp"] = {
aliases = {"Chakma", "Changmha"},
}
m["ccr"] = {
}
m["cda"] = {
}
m["cde"] = {
}
m["cdf"] = {
}
m["cdh"] = {
}
m["cdi"] = {
}
m["cdj"] = {
}
m["cdm"] = {
}
m["cdn"] = {
}
m["cdo"] = {
aliases = {"หมิ่นตง", "Min Dong", "Min Dong Chinese"},
}
m["cdr"] = {
}
m["cds"] = {
}
m["cdy"] = {
}
m["cdz"] = {
}
m["cea"] = {
}
m["ceb"] = {
aliases = {"เซบู", "Cebuano"},
}
m["ceg"] = {
}
m["cen"] = {
other_names = {"Cèn", "Chen"},
}
m["cet"] = {
other_names = {"Jalaa", "Cèntûm", "Cen Tuum"},
}
m["cfa"] = {
}
m["cfd"] = {
}
m["cfg"] = {
}
m["cfm"] = {
aliases = {"Falam"},
}
m["cga"] = {
}
m["cgc"] = {
}
m["cgg"] = {
}
m["cgk"] = {
}
m["chb"] = {
}
m["chc"] = {
}
m["chd"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Tequistlatec", "Mountain Tequistlateco", "Highland Chontal", "Mountain Chontal"},
}
m["chf"] = {
}
m["chg"] = {
aliases = {"ชะกะไต", "จักกาไท", "Chagatai"},
}
m["chh"] = {
}
m["chj"] = {
}
m["chk"] = {
}
m["chl"] = {
}
m["chn"] = {
}
m["cho"] = {
}
m["chp"] = {
other_names = {"Dëne Sųłiné", "Dënesųłiné", "Dëne", "Dene Suline", "Denesuline", "Dene"},
}
m["chq"] = {
}
m["chr"] = {
aliases = {"Cherokee", "Tsalagi"},
varieties = {"Lower Cherokee", {"Middle Cherokee", "Kituwah", "Kituhwa", "Eastern Cherokee"}, {"Overhill Cherokee", "Otali", "Western Cherokee"}},
}
m["cht"] = {
}
m["chw"] = {
aliases = {"Chuwabu", "Cuwabo", "Cuwabu", "Cuabo", "Txuwabo", "Echuabo"},
}
m["chx"] = {
}
m["chy"] = {
aliases = {"Cheyenne"},
}
m["chz"] = {
}
m["cia"] = {
}
m["cib"] = {
}
m["cic"] = {
}
m["cid"] = {
}
m["cie"] = {
}
m["cih"] = {
}
m["cik"] = {
}
m["cim"] = {
aliases = {"คิมเบรียน", "ซิมบรี", "ซิมเบรียน", "Cimbrian"},
varieties = {"Luserna Cimbrian", "Sette Comuni Cimbrian", "Thirteen Communities Cimbrian"},
}
m["cin"] = {
}
m["cip"] = {
}
m["cir"] = {
other_names = {"Tiri", "Ciri", "Tinrin", "Méa", "Haméa"},
}
m["ciy"] = {
}
m["cja"] = {
aliases = {"Western Cham"},
}
m["cje"] = {
}
m["cjh"] = {
}
m["cji"] = {
}
m["cjk"] = {
}
m["cjm"] = {
aliases = {"Eastern Cham"},
}
m["cjn"] = {
}
m["cjo"] = {
}
m["cjp"] = {
}
m["cjs"] = {
aliases = {"Shor"},
}
m["cjv"] = {
}
m["cjy"] = {
aliases = {"จีนจิ้น", "ซานซี", "Jin", "Jinyu", "Jinhua", "Jinese", "Shanxinese", "Jin Chinese", "Jinyu Chinese"},
}
m["ckb"] = {
aliases = {"โซรานี", "Central Kurdish", "Sorani"},
}
m["ckh"] = {
aliases = {"Sak"},
}
m["ckl"] = {
aliases = {"Chibuk", "Chibok", "Chibbak", "Chibbuk", "Kyibaku", "Kibbaku", "Kibaku"},
}
m["ckn"] = {
aliases = {"Kaang"},
}
m["cko"] = {
aliases = {"Chakosi"},
}
m["ckq"] = {
}
m["ckr"] = {
}
m["cks"] = {
}
m["ckt"] = {
aliases = {"Chukchi"},
}
m["cku"] = {
}
m["ckv"] = {
aliases = {"กาวาลัน", "Kbalan", "Kebalan", "Kavalan"},
}
m["ckx"] = {
}
m["cky"] = {
}
m["ckz"] = {
other_names = {"Cauque Mayan"},
}
m["cla"] = {
other_names = {"Bokkos", "Daffo-Butura", "Shagawu"},
}
m["clc"] = {
aliases = {"Tsilhqot'in", "Tsilhqut'in", "Tzilkotin"},
}
m["cld"] = {
}
m["cle"] = {
}
m["clh"] = {
}
m["cli"] = {
}
m["clj"] = {
aliases = {"Laitu"},
}
m["clk"] = {
other_names = {"Idu-Mishmi", "Idu Mishmi"},
}
m["cll"] = {
}
m["clm"] = {
aliases = {"Clallam", "S'Klallam"},
}
m["clo"] = {
other_names = {"Oaxaca Chontal", "Oaxacan Chontal", "Chontal", "Huamelultec", "Huamelula Chontal", "Coastal Chontal"},
}
m["clt"] = {
aliases = {"Lautu"},
}
m["clu"] = {
}
m["clw"] = {
other_names = {"Chulim", "Chulym-Turkic", "Küerik", "Chulym Tatar", "Melets Tatar"},
}
m["cly"] = {
}
m["cma"] = {
aliases = {"Mạ", "Maa"},
}
m["cme"] = {
}
m["cmg"] = {
aliases = {"Classical Mongolian"},
}
m["cmi"] = {
}
m["cml"] = {
}
m["cmm"] = {
}
m["cmn"] = {
aliases = {"จีนแมนดาริน", "แมนดาริน", "Mandarin", "Mandarin Chinese", "Putonghua", "Guoyu", "Huayu", "Guanhua", "Beifanghua", "Standard Chinese"},
}
m["cmo"] = {
aliases = {"Central Mnong"},
}
m["cmr"] = {
other_names = {"Mro-Khimi Chin", "Mro", "Mro-Khimi"},
}
m["cms"] = {
aliases = {"Messapian"},
}
m["cmt"] = {
}
m["cna"] = {
}
m["cnb"] = {
aliases = {"Chinbon"},
}
m["cnc"] = {
aliases = {"Côông", "Coong"},
}
m["cng"] = {
}
m["cnh"] = {
aliases = {"ฮ่าค่า", "ชีนแบบฮาคา", "ชีนแบบฮ่าค่า", "ปาวี", "Lai", "Hakha Chin", "Hakha", "Haka Chin", "Haka", "Pawi"},
}
m["cni"] = {
aliases = {"Ashaninka"},
}
m["cnk"] = {
other_names = {"Khumi", "Khami", "Nisay", "Nise", "Eastern Khumi", "Eastern Khumi Chin"},
}
m["cnl"] = {
}
m["cno"] = {
}
m["cnp"] = {
aliases = {"Northern Pinghua", "Northern Ping"},
}
m["cns"] = {
}
m["cnt"] = {
}
m["cnu"] = {
aliases = {"Shenwa"},
}
m["cnw"] = {
aliases = {"Ngawn"},
}
m["cnx"] = {
}
m["coa"] = {
aliases = {"Cocos Malay"},
}
m["cob"] = {
}
m["coc"] = {
}
m["cod"] = {
other_names = {"Kokama", "Kokáma", "Cocama-Cocamilla", "Kukama-Kukamiria", "Cocamilla", "Kokamíya", "Cocaima"},
}
m["coe"] = {
}
m["cof"] = {
other_names = {"Colorado", "Tsáchila"},
}
m["cog"] = {
aliases = {"Chong"},
}
m["coh"] = {
}
m["coj"] = {
}
m["cok"] = {
}
m["col"] = {
other_names = {"Columbia-Wenatchee", "Columbia-Moses", "Nxaamxcin", "Wenatchi", "Wenatchee"},
}
m["com"] = {
}
m["con"] = {
other_names = {"Cofan", "Kofan", "Kofane", "A'ingae", "Maku", "Macu"},
}
m["coo"] = {
}
m["cop"] = {
aliases = {"Coptic"},
-- Don't include varieties in [[Module:etymology languages/data]]
}
m["coq"] = {
}
m["cot"] = {
}
m["cou"] = {
}
m["cov"] = {
aliases = {"Cao Miao"},
}
m["cow"] = {
}
m["cox"] = {
}
m["coy"] = {
}
m["coz"] = {
other_names = {"Chocho", "Chocholtec"},
}
m["cpa"] = {
}
m["cpb"] = {
}
m["cpc"] = {
}
m["cpg"] = {
aliases = {"Cappadocian"},
}
m["cpi"] = {
}
m["cpn"] = {
other_names = {"Chiripon", "Chiripong", "Kyerepong", "Okere"},
}
m["cpo"] = {
other_names = {"Kpeego", "Kpeen", "Numu"},
}
m["cps"] = {
}
m["cpu"] = {
}
m["cpx"] = {
aliases = {"หมิ่นแบบผู้เซียน", "หมิ่นผูเซียน", "Puxian Min", "Puxian", "Pu-Xian", "Pu-Xian Min", "Pu Xian", "Pu Xian Min", "Putian", "Xinghua", "Henghua", "Hinghua", "Henghwa", "Hinghwa"}
}
m["cpy"] = {
}
m["cqd"] = {
}
m["cra"] = {
}
m["crb"] = {
other_names = {"Igneri", "Inyeri", "Iñeri", "Island Carib", "Kalhiphona", "Karifuna"},
}
m["crc"] = {
}
m["crd"] = {
}
m["crf"] = {
}
m["crg"] = {
}
m["crh"] = {
aliases = {"Crimean Tatar"},
}
m["cri"] = {
aliases = {"Forro", "São Tomense"},
}
m["crj"] = {
}
m["crk"] = {
}
m["crl"] = {
}
m["crm"] = {
}
m["crn"] = {
}
m["cro"] = {
other_names = {"Apsalooke"},
}
m["crq"] = {
}
m["crr"] = {
}
m["crs"] = {
}
m["crt"] = {
}
m["crv"] = {
other_names = {"Tutet"},
}
m["crw"] = {
}
m["crx"] = {
}
m["cry"] = {
}
m["crz"] = {
}
m["csa"] = {
}
m["csb"] = {
aliases = {"Kashubian"},
}
m["csc"] = {
}
m["csd"] = {
}
m["cse"] = {
}
m["csf"] = {
}
m["csg"] = {
}
m["csh"] = {
aliases = {"Asho"},
}
m["csi"] = {
}
m["csj"] = {
aliases = {"Songlai"},
}
m["csk"] = {
}
m["csl"] = {
}
m["csm"] = {
}
m["csn"] = {
}
m["cso"] = {
}
m["csp"] = {
aliases = {"Southern Pinghua", "Southern Ping"},
}
m["csq"] = {
}
m["csr"] = {
}
m["css"] = {
other_names = {"Mutsun", "San Juan Bautista Costanoan", "Rumsien", "San Carlos Costanoan", "Carmeleno"},
}
m["cst"] = {
}
m["csv"] = {
aliases = {"Sumtu"},
}
m["csw"] = {
}
m["csy"] = {
aliases = {"Siyin"},
}
m["csz"] = {
other_names = {"Hanis", "Hanis Coos"},
}
m["cta"] = {
}
m["ctc"] = {
other_names = {"Chetco", "Siletz Dee-ni", "Deeni", "Tututni", "Siletz"},
}
m["ctd"] = {
other_names = {"Tedim", "Tiddim", "Sukte"},
}
m["cte"] = {
}
m["ctg"] = {
}
m["cth"] = {
aliases = {"Thaiphum"},
}
m["ctl"] = {
}
m["ctm"] = {
}
m["ctn"] = {
}
m["cto"] = {
}
m["ctp"] = {
}
m["cts"] = {
}
m["ctt"] = {
aliases = {"Chetti"},
}
m["ctu"] = {
}
m["ctz"] = {
}
m["cua"] = {
}
m["cub"] = {
aliases = {"Cuveo", "Kubéo", "Kubeo", "Kubéu", "Kubeu", "Cobewa", "Cobéua", "Cobeua", "Kubéwa", "Kubewa", "Kobéua", "Kobeua", "Kobewa", "Pamiwa"},
}
m["cuc"] = {
}
m["cug"] = {
other_names = {"Chung", "Chungmboko", "Chung-Mboko", "Mboko"},
}
m["cuh"] = {
}
m["cui"] = {
}
m["cuj"] = {
}
m["cuk"] = {
}
m["cul"] = {
other_names = {"Kulina", "Kulína", "Kulyna", "Curina", "Corina", "Korina", "Culina-Madijá", "Madijá", "Madija", "Madiha", "Madihá"},
}
m["cuo"] = {
other_names = {"Cumanogota", "Cumana", "Cumaná", "Kumana", "Kumaná"},
}
m["cup"] = {
}
m["cuq"] = {
aliases = {"เกอหลง", "Cun", "Gelong"},
}
m["cur"] = {
}
m["cut"] = {
}
m["cuu"] = {
}
m["cuv"] = {
}
m["cuw"] = {
}
m["cux"] = {
}
m["cuy"] = {
aliases = {"Cuitlateco"},
}
m["cvg"] = {
}
m["cvn"] = {
}
m["cwa"] = {
}
m["cwb"] = {
}
m["cwd"] = {
}
m["cwe"] = {
}
m["cwg"] = {
aliases = {"Cheq Wong", "Cheq-Wong", "Ceq Wong"},
}
m["cwt"] = {
}
m["cya"] = {
}
m["cyb"] = {
aliases = {"Cayuvava", "Cayuwaba"},
}
m["cyo"] = {
}
m["czh"] = {
aliases = {"Huizhou Chinese"},
}
m["czk"] = {
}
m["czn"] = {
}
m["czo"] = {
aliases = {"หมิ่นจง", "หมิ่นกลาง", "Min Zhong", "Min Zhong Chinese"},
}
m["czt"] = {
aliases = {"Zotung"},
}
return m
snf916cjncw8h44vyknoz6v0f2tqlxe
มีเดียวิกิ:Gadget-LanguagesAndScripts
8
572387
5771129
2180619
2026-10-03T03:12:04Z
Octahedron80
267
5771129
wikitext
text/x-wiki
เพิ่มแบบอย่างเริ่มต้นให้กับข้อความที่ไม่ใช่ภาษาอังกฤษ (ตระกูลฟอนต์, ตัวหนา, ตัวเอน, ขนาดข้อความ) {{gadget tag|เปิดใช้งานโดยปริยาย, หากปิดใช้งานต้องรับความเสี่ยงเอง}}
eabtc0h5asxo1xihajfnu08n3u6u6qd
5771130
5771129
2026-10-03T03:12:50Z
Octahedron80
267
5771130
wikitext
text/x-wiki
เพิ่มสไตล์เริ่มต้นให้กับข้อความที่ไม่ใช่ภาษาอังกฤษ (ตระกูลฟอนต์, ตัวหนา, ตัวเอน, ขนาดข้อความ) {{gadget tag|เปิดใช้งานโดยปริยาย, หากปิดใช้งานต้องรับความเสี่ยงเอง}}
qomtgtgsuwl0rwenxu1i62d9ms5syr0
มีเดียวิกิ:Gadget-NoAutoCaseRedirect
8
572388
5771120
2180620
2026-10-03T02:53:36Z
Octahedron80
267
5771120
wikitext
text/x-wiki
ปิดใช้งานการเปลี่ยนทางอัตโนมัติตามเวลาที่กำหนด ระหว่างหน้าเว็บที่ต่างกันเฉพาะอักษรตัวใหญ่เล็กเท่านั้น
rn40p6ck4cav6e3ii9ewbol5s2h835h
มีเดียวิกิ:Gadget-InflectionTable.css
8
577910
5771097
5653281
2026-10-03T01:50:29Z
Octahedron80
267
Octahedron80 ย้ายหน้า [[แม่แบบ:inflection-table-top/style.css]] ไปยัง [[มีเดียวิกิ:Gadget-InflectionTable.css]] โดยไม่สร้างหน้าเปลี่ยนทางตามมา: per en
5653281
sanitized-css
text/css
/**
* This CSS page provides styling for the {{inflection-table-top}} family of templates.
*
* The style rules are complex and have various dependencies on one another.
* They have been comprehensively tested on desktop and mobile.
* Take care before making any changes. If you're not confident with CSS,
* consider requesting help from an interface administrator.
*/
.inflection-table-wrapper {
padding: 3px;
margin: 0.5em 0; /* matches styling for <p> elements in Vector classic */
background: var(--wikt-palette-paleblue); /* standard MediaWiki table background colour. Note this color also appears a few other times in this file - search for BGC */
border: 1px solid var(--wikt-palette-grey);
position: relative; /* needed for NavToggle styles */
/* SHOULD BE width: fit-content, BUT THE CSS SANITIZER DOESN'T LIKE IT.. */
max-width: 100%;
box-sizing: border-box;
overflow-x: auto;
}
.inflection-table-wrapper.inflection-table-collapsed {
overflow: hidden;
}
.inflection-table-wrapper.inflection-table-no-title {
border: 0;
padding: 0;
}
.inflection-table-wrapper > table {
display: table; /* override Minerva styles */
width: 100%; /* of containing div - needed when the notes are wider than the table itself */
margin: 0; /* override Minerva styles */
text-align: center;
border-collapse: collapse;
border: 1px solid var(--wikt-palette-grey-6);
background: var(--wikt-palette-white);
}
.inflection-table-wrapper > table > caption {
display: table-caption; /* override Minerva styles */
background: var(--wikt-palette-paleblue); /* BGC - Minerva resets this, so we have to set it back again */
text-align: left;
font-size: 95%;
padding: 0.1em 0.5em;
font-weight: bold;
}
.inflection-table-wrapper.wide > table > tbody > tr {
font-size: 90%;
}
.inflection-table-wrapper > table > tbody > tr > td,
.inflection-table-wrapper > table > tbody > tr > th {
padding: 0.15em 0.6em;
border: solid var(--wikt-palette-grey-6);
border-width: 0 1px 1px 0;
}
.inflection-table-wrapper > table > tbody > tr > td:not(.secondary):not(.separator) {
min-width: 5em;
}
/* very-narrow class for use on tables of unusually short words (e.g. pronouns) */
/* note, this rule needs to have higher specificity than the previous rule, so even
though the :not selectors are unnecessary styling-wise, we need to keep them */
.inflection-table-wrapper.very-narrow > table > tbody > tr > td:not(.secondary):not(.separator) {
min-width: auto;
}
.inflection-table-wrapper > table > tbody > tr > td.secondary {
background: var(--wikt-palette-lightergrey);
}
.inflection-table-wrapper > table > tbody > tr > th.secondary,
.inflection-table-wrapper > table > tbody > tr > th.outer {
font-style: italic;
}
.inflection-table-wrapper > table > tbody > tr > th.secondary > sup,
.inflection-table-wrapper > table > tbody > tr > th.outer > sup {
font-style: normal;
}
/* separator cells, or blank cells: see [[Template:la-adecl]] and [[Template:ga-decl-noun]] */
.inflection-table-wrapper .separator {
height: 0.5em;
width: 0.5em;
min-height: 0.5em;
min-width: 0.5em;
padding: 0;
background: var(--wikt-palette-paleblue); /* BGC */
}
.inflection-table-wrapper .separator[rowspan] { /* vertical separator */
border-top: 1px solid var(--wikt-palette-paleblue); /* BGC */
border-bottom: 1px solid var(--wikt-palette-paleblue); /* BGC */
}
.inflection-table-wrapper .separator[colspan] { /* horizontal separator */
border-left: 1px solid var(--wikt-palette-paleblue); /* BGC */
border-right: 1px solid var(--wikt-palette-paleblue); /* BGC */
}
/* blank cell at end of row: see [[Template:sco-conj-be]] */
.inflection-table-wrapper .blank-end-row {
background: var(--wikt-palette-paleblue); /* BGC */
border-right: 1px solid var(--wikt-palette-paleblue); /* BGC */
border-top: 1px solid var(--wikt-palette-paleblue); /* BGC */
border-bottom: 1px solid var(--wikt-palette-paleblue); /* BGC */
}
/* Notes at foot of table */
.inflection-table-notes {
text-align: left; /* undo centering in inflection boxes */
margin: 0.2em 0.5em 0.2em;
}
.inflection-table-notes p {
margin: 0.5em 0 0.2em;
}
.inflection-table-wrapper.wide > .inflection-table-notes {
font-size: 90%;
}
/* Collapsibility */
html.client-js .inflection-table-collapsed > table,
html.client-js .inflection-table-collapsed > table > tbody > tr > td,
html.client-js .inflection-table-collapsed > table > tbody > tr > th {
border-color: transparent;
}
html.client-js .inflection-table-collapsed > table > tbody {
visibility: collapse; /* the perfect solution for this use case, but is not implemented in some browsers (Safari - the new IE) */
}
html.client-js .inflection-table-collapsed > table > caption {
margin-bottom: -0.15em; /* reduce excessive height of collapsed box - not entirely sure where this height originates from, so this is a hack */
}
html.client-js .inflection-table-collapsed .inflection-table-notes {
display: none; /* collapse notes */
}
/* workaround for browsers that do not support visibility: collapse. The .no-vc class is removed by JS code when not needed */
html.client-js .inflection-table-collapsible.no-vc.inflection-table-collapsed {
max-height: calc(1.5em + 8px); /* almost 1lh (= 1.6em) + padding and border on .inflection-table-wrapper */
overflow: hidden;
}
html.client-js .inflection-table-collapsible.no-vc.inflection-table-collapsed > table > tbody {
visibility: hidden;
}
html.client-js .inflection-table-collapsible.no-vc > table > caption {
white-space: nowrap; /* if there was ever more than one line of text, it would get occluded by the <div>'s max-height */
}
.no-vc-spacer {
display: inline-block;
width: 4em;
}
/* make sure [hide] link doesn't scroll away when table is uncollapsed */
.inflection-table-wrapper .NavToggle {
position: sticky;
right: 0.5em; /* matches padding on <caption> */
background: inherit;
}
/* Single border display style - EXPERIMENTAL! */
.inflection-table-wrapper.single-border {
padding: 0;
border: 0;
}
.inflection-table-wrapper.single-border > table > caption {
border: 1px solid var(--wikt-palette-grey);
border-bottom: 0;
}
html.client-js .inflection-table-collapsed.single-border > table > caption {
border-bottom: 1px solid var(--wikt-palette-grey);
}
.inflection-table-wrapper.inflection-table-collapsible.single-border .inflection-table-notes {
border: 1px solid var(--wikt-palette-grey);
border-top: 0;
}
/* Mobile styling */
@media all and (max-width: 639px) { /* matches calc(640px - 1px) in Minerva CSS */
.inflection-table-wrapper {
overflow: auto;
max-width: 100%;
width: auto !important; /* override inline style that is being used to avoid a CSS sanitiser bug/lacuna - has to have !important to allow this */
}
/* fix for collapsed tables */
.inflection-table-collapsed tbody {
display: none;
}
/* make sure [hide] link doesn't scroll away when table is uncollapsed */
.inflection-table-wrapper .NavToggle {
position: sticky;
right: 0.5em; /* matches padding on <caption> */
background: inherit;
}
/* when there is a single column of header cells down the left, "stick" this column in place */
.inflection-table-wrapper.sticky-left-column > table > tbody > tr > th:first-child {
position: sticky;
left: -4px; /* counteract 3px padding on .inflection-table-wrapper + 1px border on table */
max-width: 35vw; /* limit these cells to 35% of screen width */
}
.inflection-table-wrapper.inflection-table-no-title.sticky-left-column > table > tbody > tr > th:first-child {
left: -1px; /* counteract 1px border on table */
}
}
/* Place transliterations in a paler colour on their own line */
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.tr {
color: var(--wikt-palette-grey-9); /* TODO this is just slightly below AAA contrast when used on a -0 coloured background */
}
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.tr:before {
content: "\a"; /* newline */
white-space: pre;
}
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.mention-gloss-paren {
display: none; /* hide parens surrounding translit */
}
/* Inflection boxes - multiple tables inside one box */
.inflection-box > table {
background: none;
border: 0;
}
.inflection-box > table > tbody > tr > td {
padding: 0 0.2em;
border: 0;
vertical-align: top;
}
.inflection-box .inflection-table-wrapper {
display: inline-block;
vertical-align: top;
margin: 0.2em 0.1em;
}
/* overqualified on purpose to increase specificity */
.inflection-box .inflection-table-wrapper > table.inflection-table {
background: var(--wikt-palette-white); /* override no-title palette rules below */
}
.inflection-box.flow-vertical .inflection-table-wrapper {
display: block;
width: auto !important; /* override inline style that is being used to avoid a CSS sanitiser bug/lacuna - has to have !important to allow this */
}
.inflection-box.flow-vertical .inflection-table-wrapper + .inflection-table-wrapper {
margin-top: 0.5em; /* mimic a .separator row between adjacent tables */
}
/* Individual palettes: dark-on-light */
/* Generate this in your browser's JavaScript console by running the following code
and right-clicking on the output to "copy string contents"
colors = ['red', 'scarlet', 'orange', 'amber', 'yellow', 'lime', 'green', 'teal', 'cyan', 'blue', 'indigo', 'purple', 'magenta', 'rose', 'grey', 'brown']
css = ''
for (let color of colors) css += `
.inflection-table-${color}.inflection-table-no-title table {
background-color: var(--wikt-palette-${color}-0); /* when no title, provide a colour that gently contrasts with the page background *\/
}
.inflection-table-${color} tr.secondary > th,
.inflection-table-${color} th.secondary,
.inflection-table tr.inflection-table-${color}.secondary > th,
.inflection-table tr.inflection-table-${color} > th.secondary,
.inflection-table tr.secondary > th.inflection-table-${color},
.inflection-table th.inflection-table-${color}.secondary {
background-color: var(--wikt-palette-${color}-1);
}
.inflection-table-${color} th,
.inflection-table tr.inflection-table-${color} > th,
.inflection-table th.inflection-table-${color} {
background-color: var(--wikt-palette-${color}-2);
}
.inflection-table-${color} tr.outer > th,
.inflection-table-${color} th.outer,
.inflection-table tr.inflection-table-${color}.outer > th,
.inflection-table tr.inflection-table-${color} > th.outer,
.inflection-table tr.outer > th.inflection-table-${color},
.inflection-table th.inflection-table-${color}.outer {
background-color: var(--wikt-palette-${color}-4);
}
.inflection-table-${color} tr.darker > td,
.inflection-table-${color} td.darker,
.inflection-table tr.inflection-table-${color}.darker > td,
.inflection-table tr.inflection-table-${color} > td.darker,
.inflection-table tr.darker > td.inflection-table-${color},
.inflection-table td.inflection-table-${color}.darker {
background-color: var(--wikt-palette-grey-${color}-1) !important;
}`
*/
.inflection-table-red.inflection-table-no-title table {
background-color: var(--wikt-palette-red-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-red tr.secondary > th,
.inflection-table-red th.secondary,
.inflection-table tr.inflection-table-red.secondary > th,
.inflection-table tr.inflection-table-red > th.secondary,
.inflection-table tr.secondary > th.inflection-table-red,
.inflection-table th.inflection-table-red.secondary {
background-color: var(--wikt-palette-red-1);
}
.inflection-table-red th,
.inflection-table tr.inflection-table-red > th,
.inflection-table th.inflection-table-red {
background-color: var(--wikt-palette-red-2);
}
.inflection-table-red tr.outer > th,
.inflection-table-red th.outer,
.inflection-table tr.inflection-table-red.outer > th,
.inflection-table tr.inflection-table-red > th.outer,
.inflection-table tr.outer > th.inflection-table-red,
.inflection-table th.inflection-table-red.outer {
background-color: var(--wikt-palette-red-4);
}
.inflection-table-red tr.darker > td,
.inflection-table-red td.darker,
.inflection-table tr.inflection-table-red.darker > td,
.inflection-table tr.inflection-table-red > td.darker,
.inflection-table tr.darker > td.inflection-table-red,
.inflection-table td.inflection-table-red.darker {
background-color: var(--wikt-palette-grey-red-1) !important;
}
.inflection-table-scarlet.inflection-table-no-title table {
background-color: var(--wikt-palette-scarlet-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-scarlet tr.secondary > th,
.inflection-table-scarlet th.secondary,
.inflection-table tr.inflection-table-scarlet.secondary > th,
.inflection-table tr.inflection-table-scarlet > th.secondary,
.inflection-table tr.secondary > th.inflection-table-scarlet,
.inflection-table th.inflection-table-scarlet.secondary {
background-color: var(--wikt-palette-scarlet-1);
}
.inflection-table-scarlet th,
.inflection-table tr.inflection-table-scarlet > th,
.inflection-table th.inflection-table-scarlet {
background-color: var(--wikt-palette-scarlet-2);
}
.inflection-table-scarlet tr.outer > th,
.inflection-table-scarlet th.outer,
.inflection-table tr.inflection-table-scarlet.outer > th,
.inflection-table tr.inflection-table-scarlet > th.outer,
.inflection-table tr.outer > th.inflection-table-scarlet,
.inflection-table th.inflection-table-scarlet.outer {
background-color: var(--wikt-palette-scarlet-4);
}
.inflection-table-scarlet tr.darker > td,
.inflection-table-scarlet td.darker,
.inflection-table tr.inflection-table-scarlet.darker > td,
.inflection-table tr.inflection-table-scarlet > td.darker,
.inflection-table tr.darker > td.inflection-table-scarlet,
.inflection-table td.inflection-table-scarlet.darker {
background-color: var(--wikt-palette-grey-scarlet-1) !important;
}
.inflection-table-orange.inflection-table-no-title table {
background-color: var(--wikt-palette-orange-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-orange tr.secondary > th,
.inflection-table-orange th.secondary,
.inflection-table tr.inflection-table-orange.secondary > th,
.inflection-table tr.inflection-table-orange > th.secondary,
.inflection-table tr.secondary > th.inflection-table-orange,
.inflection-table th.inflection-table-orange.secondary {
background-color: var(--wikt-palette-orange-1);
}
.inflection-table-orange th,
.inflection-table tr.inflection-table-orange > th,
.inflection-table th.inflection-table-orange {
background-color: var(--wikt-palette-orange-2);
}
.inflection-table-orange tr.outer > th,
.inflection-table-orange th.outer,
.inflection-table tr.inflection-table-orange.outer > th,
.inflection-table tr.inflection-table-orange > th.outer,
.inflection-table tr.outer > th.inflection-table-orange,
.inflection-table th.inflection-table-orange.outer {
background-color: var(--wikt-palette-orange-4);
}
.inflection-table-orange tr.darker > td,
.inflection-table-orange td.darker,
.inflection-table tr.inflection-table-orange.darker > td,
.inflection-table tr.inflection-table-orange > td.darker,
.inflection-table tr.darker > td.inflection-table-orange,
.inflection-table td.inflection-table-orange.darker {
background-color: var(--wikt-palette-grey-orange-1) !important;
}
.inflection-table-amber.inflection-table-no-title table {
background-color: var(--wikt-palette-amber-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-amber tr.secondary > th,
.inflection-table-amber th.secondary,
.inflection-table tr.inflection-table-amber.secondary > th,
.inflection-table tr.inflection-table-amber > th.secondary,
.inflection-table tr.secondary > th.inflection-table-amber,
.inflection-table th.inflection-table-amber.secondary {
background-color: var(--wikt-palette-amber-1);
}
.inflection-table-amber th,
.inflection-table tr.inflection-table-amber > th,
.inflection-table th.inflection-table-amber {
background-color: var(--wikt-palette-amber-2);
}
.inflection-table-amber tr.outer > th,
.inflection-table-amber th.outer,
.inflection-table tr.inflection-table-amber.outer > th,
.inflection-table tr.inflection-table-amber > th.outer,
.inflection-table tr.outer > th.inflection-table-amber,
.inflection-table th.inflection-table-amber.outer {
background-color: var(--wikt-palette-amber-4);
}
.inflection-table-amber tr.darker > td,
.inflection-table-amber td.darker,
.inflection-table tr.inflection-table-amber.darker > td,
.inflection-table tr.inflection-table-amber > td.darker,
.inflection-table tr.darker > td.inflection-table-amber,
.inflection-table td.inflection-table-amber.darker {
background-color: var(--wikt-palette-grey-amber-1) !important;
}
.inflection-table-yellow.inflection-table-no-title table {
background-color: var(--wikt-palette-yellow-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-yellow tr.secondary > th,
.inflection-table-yellow th.secondary,
.inflection-table tr.inflection-table-yellow.secondary > th,
.inflection-table tr.inflection-table-yellow > th.secondary,
.inflection-table tr.secondary > th.inflection-table-yellow,
.inflection-table th.inflection-table-yellow.secondary {
background-color: var(--wikt-palette-yellow-1);
}
.inflection-table-yellow th,
.inflection-table tr.inflection-table-yellow > th,
.inflection-table th.inflection-table-yellow {
background-color: var(--wikt-palette-yellow-2);
}
.inflection-table-yellow tr.outer > th,
.inflection-table-yellow th.outer,
.inflection-table tr.inflection-table-yellow.outer > th,
.inflection-table tr.inflection-table-yellow > th.outer,
.inflection-table tr.outer > th.inflection-table-yellow,
.inflection-table th.inflection-table-yellow.outer {
background-color: var(--wikt-palette-yellow-4);
}
.inflection-table-yellow tr.darker > td,
.inflection-table-yellow td.darker,
.inflection-table tr.inflection-table-yellow.darker > td,
.inflection-table tr.inflection-table-yellow > td.darker,
.inflection-table tr.darker > td.inflection-table-yellow,
.inflection-table td.inflection-table-yellow.darker {
background-color: var(--wikt-palette-grey-yellow-1) !important;
}
.inflection-table-lime.inflection-table-no-title table {
background-color: var(--wikt-palette-lime-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-lime tr.secondary > th,
.inflection-table-lime th.secondary,
.inflection-table tr.inflection-table-lime.secondary > th,
.inflection-table tr.inflection-table-lime > th.secondary,
.inflection-table tr.secondary > th.inflection-table-lime,
.inflection-table th.inflection-table-lime.secondary {
background-color: var(--wikt-palette-lime-1);
}
.inflection-table-lime th,
.inflection-table tr.inflection-table-lime > th,
.inflection-table th.inflection-table-lime {
background-color: var(--wikt-palette-lime-2);
}
.inflection-table-lime tr.outer > th,
.inflection-table-lime th.outer,
.inflection-table tr.inflection-table-lime.outer > th,
.inflection-table tr.inflection-table-lime > th.outer,
.inflection-table tr.outer > th.inflection-table-lime,
.inflection-table th.inflection-table-lime.outer {
background-color: var(--wikt-palette-lime-4);
}
.inflection-table-lime tr.darker > td,
.inflection-table-lime td.darker,
.inflection-table tr.inflection-table-lime.darker > td,
.inflection-table tr.inflection-table-lime > td.darker,
.inflection-table tr.darker > td.inflection-table-lime,
.inflection-table td.inflection-table-lime.darker {
background-color: var(--wikt-palette-grey-lime-1) !important;
}
.inflection-table-green.inflection-table-no-title table {
background-color: var(--wikt-palette-green-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-green tr.secondary > th,
.inflection-table-green th.secondary,
.inflection-table tr.inflection-table-green.secondary > th,
.inflection-table tr.inflection-table-green > th.secondary,
.inflection-table tr.secondary > th.inflection-table-green,
.inflection-table th.inflection-table-green.secondary {
background-color: var(--wikt-palette-green-1);
}
.inflection-table-green th,
.inflection-table tr.inflection-table-green > th,
.inflection-table th.inflection-table-green {
background-color: var(--wikt-palette-green-2);
}
.inflection-table-green tr.outer > th,
.inflection-table-green th.outer,
.inflection-table tr.inflection-table-green.outer > th,
.inflection-table tr.inflection-table-green > th.outer,
.inflection-table tr.outer > th.inflection-table-green,
.inflection-table th.inflection-table-green.outer {
background-color: var(--wikt-palette-green-4);
}
.inflection-table-green tr.darker > td,
.inflection-table-green td.darker,
.inflection-table tr.inflection-table-green.darker > td,
.inflection-table tr.inflection-table-green > td.darker,
.inflection-table tr.darker > td.inflection-table-green,
.inflection-table td.inflection-table-green.darker {
background-color: var(--wikt-palette-grey-green-1) !important;
}
.inflection-table-teal.inflection-table-no-title table {
background-color: var(--wikt-palette-teal-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-teal tr.secondary > th,
.inflection-table-teal th.secondary,
.inflection-table tr.inflection-table-teal.secondary > th,
.inflection-table tr.inflection-table-teal > th.secondary,
.inflection-table tr.secondary > th.inflection-table-teal,
.inflection-table th.inflection-table-teal.secondary {
background-color: var(--wikt-palette-teal-1);
}
.inflection-table-teal th,
.inflection-table tr.inflection-table-teal > th,
.inflection-table th.inflection-table-teal {
background-color: var(--wikt-palette-teal-2);
}
.inflection-table-teal tr.outer > th,
.inflection-table-teal th.outer,
.inflection-table tr.inflection-table-teal.outer > th,
.inflection-table tr.inflection-table-teal > th.outer,
.inflection-table tr.outer > th.inflection-table-teal,
.inflection-table th.inflection-table-teal.outer {
background-color: var(--wikt-palette-teal-4);
}
.inflection-table-teal tr.darker > td,
.inflection-table-teal td.darker,
.inflection-table tr.inflection-table-teal.darker > td,
.inflection-table tr.inflection-table-teal > td.darker,
.inflection-table tr.darker > td.inflection-table-teal,
.inflection-table td.inflection-table-teal.darker {
background-color: var(--wikt-palette-grey-teal-1) !important;
}
.inflection-table-cyan.inflection-table-no-title table {
background-color: var(--wikt-palette-cyan-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-cyan tr.secondary > th,
.inflection-table-cyan th.secondary,
.inflection-table tr.inflection-table-cyan.secondary > th,
.inflection-table tr.inflection-table-cyan > th.secondary,
.inflection-table tr.secondary > th.inflection-table-cyan,
.inflection-table th.inflection-table-cyan.secondary {
background-color: var(--wikt-palette-cyan-1);
}
.inflection-table-cyan th,
.inflection-table tr.inflection-table-cyan > th,
.inflection-table th.inflection-table-cyan {
background-color: var(--wikt-palette-cyan-2);
}
.inflection-table-cyan tr.outer > th,
.inflection-table-cyan th.outer,
.inflection-table tr.inflection-table-cyan.outer > th,
.inflection-table tr.inflection-table-cyan > th.outer,
.inflection-table tr.outer > th.inflection-table-cyan,
.inflection-table th.inflection-table-cyan.outer {
background-color: var(--wikt-palette-cyan-4);
}
.inflection-table-cyan tr.darker > td,
.inflection-table-cyan td.darker,
.inflection-table tr.inflection-table-cyan.darker > td,
.inflection-table tr.inflection-table-cyan > td.darker,
.inflection-table tr.darker > td.inflection-table-cyan,
.inflection-table td.inflection-table-cyan.darker {
background-color: var(--wikt-palette-grey-cyan-1) !important;
}
.inflection-table-blue.inflection-table-no-title table {
background-color: var(--wikt-palette-blue-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-blue tr.secondary > th,
.inflection-table-blue th.secondary,
.inflection-table tr.inflection-table-blue.secondary > th,
.inflection-table tr.inflection-table-blue > th.secondary,
.inflection-table tr.secondary > th.inflection-table-blue,
.inflection-table th.inflection-table-blue.secondary {
background-color: var(--wikt-palette-blue-1);
}
.inflection-table-blue th,
.inflection-table tr.inflection-table-blue > th,
.inflection-table th.inflection-table-blue {
background-color: var(--wikt-palette-blue-2);
}
.inflection-table-blue tr.outer > th,
.inflection-table-blue th.outer,
.inflection-table tr.inflection-table-blue.outer > th,
.inflection-table tr.inflection-table-blue > th.outer,
.inflection-table tr.outer > th.inflection-table-blue,
.inflection-table th.inflection-table-blue.outer {
background-color: var(--wikt-palette-blue-4);
}
.inflection-table-blue tr.darker > td,
.inflection-table-blue td.darker,
.inflection-table tr.inflection-table-blue.darker > td,
.inflection-table tr.inflection-table-blue > td.darker,
.inflection-table tr.darker > td.inflection-table-blue,
.inflection-table td.inflection-table-blue.darker {
background-color: var(--wikt-palette-grey-blue-1) !important;
}
.inflection-table-indigo.inflection-table-no-title table {
background-color: var(--wikt-palette-indigo-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-indigo tr.secondary > th,
.inflection-table-indigo th.secondary,
.inflection-table tr.inflection-table-indigo.secondary > th,
.inflection-table tr.inflection-table-indigo > th.secondary,
.inflection-table tr.secondary > th.inflection-table-indigo,
.inflection-table th.inflection-table-indigo.secondary {
background-color: var(--wikt-palette-indigo-1);
}
.inflection-table-indigo th,
.inflection-table tr.inflection-table-indigo > th,
.inflection-table th.inflection-table-indigo {
background-color: var(--wikt-palette-indigo-2);
}
.inflection-table-indigo tr.outer > th,
.inflection-table-indigo th.outer,
.inflection-table tr.inflection-table-indigo.outer > th,
.inflection-table tr.inflection-table-indigo > th.outer,
.inflection-table tr.outer > th.inflection-table-indigo,
.inflection-table th.inflection-table-indigo.outer {
background-color: var(--wikt-palette-indigo-4);
}
.inflection-table-indigo tr.darker > td,
.inflection-table-indigo td.darker,
.inflection-table tr.inflection-table-indigo.darker > td,
.inflection-table tr.inflection-table-indigo > td.darker,
.inflection-table tr.darker > td.inflection-table-indigo,
.inflection-table td.inflection-table-indigo.darker {
background-color: var(--wikt-palette-grey-indigo-1) !important;
}
.inflection-table-purple.inflection-table-no-title table {
background-color: var(--wikt-palette-purple-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-purple tr.secondary > th,
.inflection-table-purple th.secondary,
.inflection-table tr.inflection-table-purple.secondary > th,
.inflection-table tr.inflection-table-purple > th.secondary,
.inflection-table tr.secondary > th.inflection-table-purple,
.inflection-table th.inflection-table-purple.secondary {
background-color: var(--wikt-palette-purple-1);
}
.inflection-table-purple th,
.inflection-table tr.inflection-table-purple > th,
.inflection-table th.inflection-table-purple {
background-color: var(--wikt-palette-purple-2);
}
.inflection-table-purple tr.outer > th,
.inflection-table-purple th.outer,
.inflection-table tr.inflection-table-purple.outer > th,
.inflection-table tr.inflection-table-purple > th.outer,
.inflection-table tr.outer > th.inflection-table-purple,
.inflection-table th.inflection-table-purple.outer {
background-color: var(--wikt-palette-purple-4);
}
.inflection-table-purple tr.darker > td,
.inflection-table-purple td.darker,
.inflection-table tr.inflection-table-purple.darker > td,
.inflection-table tr.inflection-table-purple > td.darker,
.inflection-table tr.darker > td.inflection-table-purple,
.inflection-table td.inflection-table-purple.darker {
background-color: var(--wikt-palette-grey-purple-1) !important;
}
.inflection-table-magenta.inflection-table-no-title table {
background-color: var(--wikt-palette-magenta-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-magenta tr.secondary > th,
.inflection-table-magenta th.secondary,
.inflection-table tr.inflection-table-magenta.secondary > th,
.inflection-table tr.inflection-table-magenta > th.secondary,
.inflection-table tr.secondary > th.inflection-table-magenta,
.inflection-table th.inflection-table-magenta.secondary {
background-color: var(--wikt-palette-magenta-1);
}
.inflection-table-magenta th,
.inflection-table tr.inflection-table-magenta > th,
.inflection-table th.inflection-table-magenta {
background-color: var(--wikt-palette-magenta-2);
}
.inflection-table-magenta tr.outer > th,
.inflection-table-magenta th.outer,
.inflection-table tr.inflection-table-magenta.outer > th,
.inflection-table tr.inflection-table-magenta > th.outer,
.inflection-table tr.outer > th.inflection-table-magenta,
.inflection-table th.inflection-table-magenta.outer {
background-color: var(--wikt-palette-magenta-4);
}
.inflection-table-magenta tr.darker > td,
.inflection-table-magenta td.darker,
.inflection-table tr.inflection-table-magenta.darker > td,
.inflection-table tr.inflection-table-magenta > td.darker,
.inflection-table tr.darker > td.inflection-table-magenta,
.inflection-table td.inflection-table-magenta.darker {
background-color: var(--wikt-palette-grey-magenta-1) !important;
}
.inflection-table-rose.inflection-table-no-title table {
background-color: var(--wikt-palette-rose-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-rose tr.secondary > th,
.inflection-table-rose th.secondary,
.inflection-table tr.inflection-table-rose.secondary > th,
.inflection-table tr.inflection-table-rose > th.secondary,
.inflection-table tr.secondary > th.inflection-table-rose,
.inflection-table th.inflection-table-rose.secondary {
background-color: var(--wikt-palette-rose-1);
}
.inflection-table-rose th,
.inflection-table tr.inflection-table-rose > th,
.inflection-table th.inflection-table-rose {
background-color: var(--wikt-palette-rose-2);
}
.inflection-table-rose tr.outer > th,
.inflection-table-rose th.outer,
.inflection-table tr.inflection-table-rose.outer > th,
.inflection-table tr.inflection-table-rose > th.outer,
.inflection-table tr.outer > th.inflection-table-rose,
.inflection-table th.inflection-table-rose.outer {
background-color: var(--wikt-palette-rose-4);
}
.inflection-table-rose tr.darker > td,
.inflection-table-rose td.darker,
.inflection-table tr.inflection-table-rose.darker > td,
.inflection-table tr.inflection-table-rose > td.darker,
.inflection-table tr.darker > td.inflection-table-rose,
.inflection-table td.inflection-table-rose.darker {
background-color: var(--wikt-palette-grey-rose-1) !important;
}
.inflection-table-grey.inflection-table-no-title table {
background-color: var(--wikt-palette-grey-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-grey tr.secondary > th,
.inflection-table-grey th.secondary,
.inflection-table tr.inflection-table-grey.secondary > th,
.inflection-table tr.inflection-table-grey > th.secondary,
.inflection-table tr.secondary > th.inflection-table-grey,
.inflection-table th.inflection-table-grey.secondary {
background-color: var(--wikt-palette-grey-1);
}
.inflection-table-grey th,
.inflection-table tr.inflection-table-grey > th,
.inflection-table th.inflection-table-grey {
background-color: var(--wikt-palette-grey-2);
}
.inflection-table-grey tr.outer > th,
.inflection-table-grey th.outer,
.inflection-table tr.inflection-table-grey.outer > th,
.inflection-table tr.inflection-table-grey > th.outer,
.inflection-table tr.outer > th.inflection-table-grey,
.inflection-table th.inflection-table-grey.outer {
background-color: var(--wikt-palette-grey-4);
}
.inflection-table-grey tr.darker > td,
.inflection-table-grey td.darker,
.inflection-table tr.inflection-table-grey.darker > td,
.inflection-table tr.inflection-table-grey > td.darker,
.inflection-table tr.darker > td.inflection-table-grey,
.inflection-table td.inflection-table-grey.darker {
background-color: var(--wikt-palette-grey-grey-1) !important;
}
.inflection-table-brown.inflection-table-no-title table {
background-color: var(--wikt-palette-brown-0); /* when no title, provide a colour that gently contrasts with the page background */
}
.inflection-table-brown tr.secondary > th,
.inflection-table-brown th.secondary,
.inflection-table tr.inflection-table-brown.secondary > th,
.inflection-table tr.inflection-table-brown > th.secondary,
.inflection-table tr.secondary > th.inflection-table-brown,
.inflection-table th.inflection-table-brown.secondary {
background-color: var(--wikt-palette-brown-1);
}
.inflection-table-brown th,
.inflection-table tr.inflection-table-brown > th,
.inflection-table th.inflection-table-brown {
background-color: var(--wikt-palette-brown-2);
}
.inflection-table-brown tr.outer > th,
.inflection-table-brown th.outer,
.inflection-table tr.inflection-table-brown.outer > th,
.inflection-table tr.inflection-table-brown > th.outer,
.inflection-table tr.outer > th.inflection-table-brown,
.inflection-table th.inflection-table-brown.outer {
background-color: var(--wikt-palette-brown-4);
}
.inflection-table-brown tr.darker > td,
.inflection-table-brown td.darker,
.inflection-table tr.inflection-table-brown.darker > td,
.inflection-table tr.inflection-table-brown > td.darker,
.inflection-table tr.darker > td.inflection-table-brown,
.inflection-table td.inflection-table-brown.darker {
background-color: var(--wikt-palette-grey-brown-1) !important;
}
0ybztmwlg9bq6qihsdz58s0862omjax
5771098
5771097
2026-10-03T01:51:02Z
Octahedron80
267
5771098
sanitized-css
text/css
/**
* This CSS page provides styling for the {{inflection-table-top}} family of templates.
*
* The style rules are complex and have various dependencies on one another.
* They have been comprehensively tested on desktop and mobile.
* Take care before making any changes. If you're not confident with CSS,
* consider requesting help from an interface administrator.
*/
.inflection-table-wrapper {
padding: 3px;
margin: 0.5em 0;
background: var(--wikt-palette-paleblue);
border: 1px solid var(--wikt-palette-grey);
position: relative;
max-width: 100%;
box-sizing: border-box;
overflow-x: auto;
}
.inflection-table-wrapper.inflection-table-collapsed {
overflow: hidden;
}
.inflection-table-wrapper.inflection-table-no-title {
border: 0;
padding: 0;
}
.inflection-table-wrapper > table {
display: table;
width: 100%;
margin: 0;
text-align: center;
border-collapse: collapse;
border: 1px solid var(--wikt-palette-grey-6);
background: var(--wikt-palette-white);
}
.inflection-table-wrapper > table > caption {
display: table-caption;
background: var(--wikt-palette-paleblue);
text-align: left;
font-size: 95%;
padding: 0.1em 0.5em;
font-weight: bold;
}
.inflection-table-wrapper.wide > table > tbody > tr {
font-size: 90%;
}
.inflection-table-wrapper > table > tbody > tr > td,
.inflection-table-wrapper > table > tbody > tr > th {
padding: 0.15em 0.6em;
border: solid var(--wikt-palette-grey-6);
border-width: 0 1px 1px 0;
}
.inflection-table-wrapper > table > tbody > tr > td:not(.secondary):not(.separator) {
min-width: 5em;
}
/* very-narrow is for tables of unusually short words (e.g. pronouns). The :not
selectors are styling-wise unnecessary but must stay: they give this rule the
specificity it needs to beat the previous one. */
.inflection-table-wrapper.very-narrow > table > tbody > tr > td:not(.secondary):not(.separator) {
min-width: auto;
}
.inflection-table-wrapper > table > tbody > tr > td.secondary {
background: var(--wikt-palette-lightergrey);
}
.inflection-table-wrapper > table > tbody > tr > th.secondary,
.inflection-table-wrapper > table > tbody > tr > th.outer {
font-style: italic;
}
.inflection-table-wrapper > table > tbody > tr > th.secondary > sup,
.inflection-table-wrapper > table > tbody > tr > th.outer > sup {
font-style: normal;
}
/* separator and blank cells: see [[Template:la-adecl]], [[Template:ga-decl-noun]] */
.inflection-table-wrapper .separator {
height: 0.5em;
width: 0.5em;
min-height: 0.5em;
min-width: 0.5em;
padding: 0;
background: var(--wikt-palette-paleblue);
}
.inflection-table-wrapper .separator[rowspan] {
border-top: 1px solid var(--wikt-palette-paleblue);
border-bottom: 1px solid var(--wikt-palette-paleblue);
}
.inflection-table-wrapper .separator[colspan] {
border-left: 1px solid var(--wikt-palette-paleblue);
border-right: 1px solid var(--wikt-palette-paleblue);
}
/* blank cell at end of row: see [[Template:sco-conj-be]] */
.inflection-table-wrapper .blank-end-row {
background: var(--wikt-palette-paleblue);
border-right: 1px solid var(--wikt-palette-paleblue);
border-top: 1px solid var(--wikt-palette-paleblue);
border-bottom: 1px solid var(--wikt-palette-paleblue);
}
/* Notes at foot of table */
.inflection-table-notes {
text-align: left;
margin: 0.2em 0.5em 0.2em;
}
.inflection-table-notes p {
margin: 0.5em 0 0.2em;
}
.inflection-table-wrapper.wide > .inflection-table-notes {
font-size: 90%;
}
/* Collapsibility */
html.client-js .inflection-table-collapsed > table,
html.client-js .inflection-table-collapsed > table > tbody > tr > td,
html.client-js .inflection-table-collapsed > table > tbody > tr > th {
border-color: transparent;
}
html.client-js .inflection-table-collapsed > table > tbody {
visibility: collapse; /* not implemented in Safari - see the .no-vc fallback below */
}
html.client-js .inflection-table-collapsed > table > caption {
margin-bottom: -0.15em; /* hack: trims excess height from the collapsed box */
}
html.client-js .inflection-table-collapsed .inflection-table-notes {
display: none;
}
/* Fallback for browsers without visibility: collapse. JS removes .no-vc when unneeded. */
html.client-js .inflection-table-collapsible.no-vc.inflection-table-collapsed {
max-height: calc(1.5em + 8px); /* almost 1lh (= 1.6em) + wrapper padding and border */
overflow: hidden;
}
html.client-js .inflection-table-collapsible.no-vc.inflection-table-collapsed > table > tbody {
visibility: hidden;
}
html.client-js .inflection-table-collapsible.no-vc > table > caption {
white-space: nowrap; /* a second line would be occluded by the max-height above */
}
.inflection-table-wrapper .no-vc-spacer {
display: inline-block;
width: 4em;
}
/* keeps the [hide] link from scrolling away when the table is uncollapsed */
.inflection-table-wrapper .NavToggle {
position: sticky;
right: 0.5em; /* matches padding on <caption> */
background: inherit;
}
/* Single border display style - EXPERIMENTAL! */
.inflection-table-wrapper.single-border {
padding: 0;
border: 0;
}
.inflection-table-wrapper.single-border > table > caption {
border: 1px solid var(--wikt-palette-grey);
border-bottom: 0;
}
html.client-js .inflection-table-collapsed.single-border > table > caption {
border-bottom: 1px solid var(--wikt-palette-grey);
}
.inflection-table-wrapper.inflection-table-collapsible.single-border .inflection-table-notes {
border: 1px solid var(--wikt-palette-grey);
border-top: 0;
}
/* Mobile styling */
@media all and (max-width: 639px) { /* matches calc(640px - 1px) in Minerva CSS */
.inflection-table-wrapper {
overflow: auto;
max-width: 100%;
width: auto !important; /* overrides the inline style that works around a CSS sanitiser lacuna; !important is required to win */
}
.inflection-table-collapsed tbody {
display: none;
}
.inflection-table-wrapper .NavToggle {
position: sticky;
right: 0.5em;
background: inherit;
}
/* stick a single left-hand column of header cells in place */
.inflection-table-wrapper.sticky-left-column > table > tbody > tr > th:first-child {
position: sticky;
left: -4px; /* counteracts 3px wrapper padding + 1px table border */
max-width: 35vw;
}
.inflection-table-wrapper.inflection-table-no-title.sticky-left-column > table > tbody > tr > th:first-child {
left: -1px; /* counteracts 1px table border */
}
}
/* Transliterations: paler, on their own line */
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.tr {
color: var(--wikt-palette-grey-9); /* TODO slightly below AAA contrast on a -0 background */
}
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.tr:before {
content: "\a"; /* newline */
white-space: pre;
}
.inflection-table-wrapper:not(.tr-alongside) table > tbody td span.mention-gloss-paren {
display: none;
}
/* Inflection boxes - multiple tables inside one box */
.inflection-box > table {
background: none;
border: 0;
}
.inflection-box > table > tbody > tr > td {
padding: 0 0.2em;
border: 0;
vertical-align: top;
}
.inflection-box .inflection-table-wrapper {
display: inline-block;
vertical-align: top;
margin: 0.2em 0.1em;
}
/* overqualified on purpose, to beat the no-title palette rule below */
.inflection-box .inflection-table-wrapper > table.inflection-table {
background: var(--wikt-palette-white);
}
.inflection-box.flow-vertical .inflection-table-wrapper {
display: block;
width: auto !important; /* see the note on the mobile rule above */
}
.inflection-box.flow-vertical .inflection-table-wrapper + .inflection-table-wrapper {
margin-top: 0.5em;
}
/* Palettes: dark-on-light */
.inflection-table-wrapper.inflection-table-no-title > table {
background-color: var(--wikt-p-0);
}
.inflection-table tr.secondary > th,
.inflection-table th.secondary {
background-color: var(--wikt-p-1);
}
.inflection-table th {
background-color: var(--wikt-p-2);
}
.inflection-table tr.outer > th,
.inflection-table th.outer {
background-color: var(--wikt-p-4);
}
.inflection-table tr.darker > td,
.inflection-table td.darker {
background-color: var(--wikt-p-g-1) !important; /* !important beats the more specific td.secondary rule */
}
nyqjz103vuorcxh3kh6hiehkkfh889b
คุยกับผู้ใช้:Ajumma 77
3
1843498
5771152
4916927
2026-10-03T09:35:52Z
Veritas Sapientiae
14283
Veritas Sapientiae ย้ายหน้า [[คุยกับผู้ใช้:Iamppkc]] ไปยัง [[คุยกับผู้ใช้:Ajumma 77]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Iamppkc|Iamppkc]]" เป็น "[[Special:CentralAuth/Ajumma 77|Ajumma 77]]"
4916927
wikitext
text/x-wiki
{{Template:Welcome|realName=|name=Iamppkc}}
-- [[ผู้ใช้:New user message|New user message]] ([[คุยกับผู้ใช้:New user message|คุย]]) 18:58, 27 สิงหาคม 2568 (+07)
9ief6p8grniw94ghfrlvx98x9xpxprj
มีเดียวิกิ:Gadget-DialectMap.js
8
2300895
5771100
5656983
2026-10-03T02:04:24Z
Octahedron80
267
5771100
javascript
text/javascript
// <nowiki>
/* jshint esversion: 8 */
/**
* Dialect Map Renderer
*
* This gadget transforms static GeoJSON data into a fully interactive dialect map
* using the Leaflet library (via the Kartographer extension).
*
* @author [[User:Fenakhay]]
*/
(function (mw) {
"use strict";
const P = {
MAP: "dialect-map",
FILTER: "dialect-filter",
TREE: "dialect-tree",
MARKER: "dialect-marker",
POPUP: "dialect-popup",
UTIL: "dialect-element",
};
function withPrefix(prefix, suffixes) {
const o = {};
for (const [k, v] of Object.entries(suffixes)) {
o[k] = v === "" ? prefix : prefix + "-" + v;
}
return o;
}
const CLASSES = {
MAP: Object.assign(withPrefix(P.MAP, {
PLACEHOLDER: "placeholder",
PLACEHOLDER_MISSING_CONFIG: "placeholder--missing-config",
DATA: "data",
APP: "app",
PANEL: "panel",
HEADER_CONTAINER: "header-container",
PANEL_HEADER: "panel-header",
MAP_LINK: "link",
SCROLL_CONTAINER: "scroll-container",
FOOTER_CONTAINER: "footer-container",
LEGEND_STATIC: "legend-static",
LEGEND_GRID: "legend-grid",
LEGEND_GROUP: "legend-group",
LEGEND_ROW: "legend-row",
LEGEND_ROW_HIGHLIGHTED: "legend-row--highlighted",
LEGEND_ROW_NESTED: "legend-row--nested",
GROUP_HEADER: "group-header",
TOGGLE_ICON: "toggle-icon",
LEGEND_ROW_DOT: "legend-row-dot",
LEGEND_LABEL: "legend-label",
LEGEND_TERM_ROW: "legend-term-row",
LEGEND_TERMS: "legend-terms",
LEGEND_TERMS_COLLAPSED: "legend-terms--collapsed",
LEGEND_LOCS_TOGGLE: "legend-locs-toggle",
LEGEND_LOCS: "legend-locs",
LEGEND_LOCS_COLLAPSED: "legend-locs--collapsed",
LEGEND_LOCS_TOPLEVEL: "legend-locs--toplevel",
LEGEND_LOCS_NESTED: "legend-locs--nested",
LEGEND_LOCS_LIST: "legend-locs-list",
LEGEND_LOCS_ITEM: "legend-locs-item",
CONTENT_WRAPPER: "content-wrapper",
CUSTOM_POPUP: "custom-popup",
SEARCH_INPUT: "search-input",
EXPORT_BTN: "export-btn",
PROCESSED: "processed",
}), {
CONTROL_BTN: "dialect-map-control-btn",
CONTROL_BTN_FULLSCREEN: "dialect-map-control-btn--fullscreen",
DEPTH_CONTROL: "dialect-depth-control",
DEPTH_CONTROL_HIDDEN: "dialect-depth-control--hidden",
}),
FILTER: withPrefix(P.FILTER, {
CHECKBOX: "checkbox",
CHECKBOX_VISUAL: "checkbox-visual",
EXPANDER: "expander",
CONTROL: "control",
BTN: "btn",
}),
TREE: withPrefix(P.TREE, { ROW: "row", LABEL: "label" }),
MARKER: withPrefix(P.MARKER, {
ROOT: "",
SHAPE: "shape",
POPUP: "popup",
FOCUSED: "focused",
HIGHLIGHTED: "highlighted",
DIMMED: "dimmed",
}),
POPUP: withPrefix(P.POPUP, { TITLE: "title", COLOR_DOT: "color-dot" }),
UTIL: withPrefix(P.UTIL, { ELEMENT_HIDDEN: "hidden" }),
EXT: {
VSSWITCHER: "vsSwitcher",
VSTOGGLE_ELEMENT: "vsToggleElement",
VSHIDE: "vsHide",
},
};
function selectorsFrom(classes) {
const sel = {};
for (const [comp, obj] of Object.entries(classes)) {
if (typeof obj === "object" && obj !== null) {
sel[comp] = {};
for (const [k, v] of Object.entries(obj)) {
if (typeof v === "string") sel[comp][k] = "." + v;
}
}
}
return sel;
}
const SELECTORS = selectorsFrom(CLASSES);
SELECTORS.FILTER.CHECKBOX_INPUT = SELECTORS.FILTER.CHECKBOX + " input";
SELECTORS.ICON_SHAPES = "path, circle, rect, polygon";
SELECTORS.ICON_SHAPES_PIE = "path, circle";
const UI_STRINGS = {
FILTER_HEADER: "Filter",
FILTER_GROUPS_TITLE: "Filter Groups",
ALL: "All",
NONE: "None",
LECTS_EXPAND: "[lects ▼]",
LECTS_COLLAPSE: "[lects ▲]",
LEVEL_PREFIX: "Level ",
SEARCH_PLACEHOLDER: "Search location or term...",
EXPORT_BTN: "Download Data (GeoJSON)",
TOGGLE_FULLSCREEN: "Toggle Fullscreen",
EXIT_FULLSCREEN: "Exit Fullscreen",
MARKER_MODE_PIE: "P",
MARKER_MODE_CLUSTER: "S",
SWITCH_TO_PIE: "Switch to pie chart",
SWITCH_TO_CLUSTER: "Switch to separate markers",
ICON_EXPAND_RIGHT: "►",
ICON_EXPAND_DOWN: "▼",
};
const CONFIG = {
CACHE_EXPIRY_MS: 30 * 24 * 60 * 60 * 1000,
WIKITEXT_BATCH_SIZE: 100,
MARKER_SIZE: 12,
SORT_BY_SIMILARITY_MAX: 100,
SORT_BY_SIMILARITY_MAX_CANDIDATES: 50,
HIGHLIGHT_Z_INDEX: 1000,
MAP_MIN_ZOOM: 2,
MAP_MAX_ZOOM: 19,
FIT_BOUNDS_PADDING: 50,
FIT_BOUNDS_MAX_ZOOM: 10,
FLY_TO_MIN_ZOOM: 8,
POPUP_MIN_WIDTH: 200,
DEFAULT_MARKER_COLOR: "#333",
DEFAULT_POLYGON_COLOR: "#3388ff",
DEFAULT_MARKER_COLOR_HEX: "000000",
MARKER_STROKE_WIDTH: 1.5,
CLUSTER_SPREAD_RADIUS_DEG: 0.01,
CLUSTER_SPREAD_REF_ZOOM: 10,
CLUSTER_SPREAD_ZOOM_CLAMP: [4, 16],
MULTI_MARKER_MODES: ["pie", "cluster"],
MULTI_MARKER_DEFAULT: "pie",
CLASSES,
SELECTORS,
};
const PROPS = {
MARKER_GROUP: "marker-group",
GROUP_ID: "group-id",
TERM_GROUP: "term-group",
MARKER_LANG: "marker-lang",
MARKER_COLOR: "marker-color",
STROKE_WIDTH: "stroke-width",
STROKE_OPACITY: "stroke-opacity",
FILL_OPACITY: "fill-opacity",
PARSED_WIKITEXT: "parsedWikitext",
PARSED_LEGEND_WIKITEXT: "parsedLegendWikitext",
PARSED_LOCATION: "parsedLocation",
PARSED_GROUP: "parsedGroup",
};
const DATA_ATTR = {
PATH: "data-path",
GROUP_ID: "data-group-id",
MARKER_GROUP: "data-marker-group",
LAT: "data-lat",
LON: "data-lon",
ZOOM: "data-zoom",
MODE: "data-mode",
MAPSTYLE: "data-mapstyle",
SHOW_GROUP: "data-show-group",
MULTI_MARKER: "data-multi-marker",
IDX: "data-idx",
MISSING_CONFIG: "data-missing-config",
};
function isRTL(container) {
return container && container.getAttribute("dir") === "rtl";
}
function leafletControlPosition(container, atInlineStart) {
return isRTL(container)
? (atInlineStart ? "topright" : "topleft")
: (atInlineStart ? "topleft" : "topright");
}
function applyPageDirection(container) {
const pageDir = document.documentElement.getAttribute("dir") || "ltr";
if (pageDir === "rtl") container.setAttribute("dir", "rtl");
}
function createMapControl(_container, position, options) {
const Control = L.Control.extend({
options: { position },
onAdd: function (map) {
const wrapClass = "leaflet-bar leaflet-control" + (options.extraWrapClass ? " " + options.extraWrapClass : "");
const wrap = L.DomUtil.create("div", wrapClass);
L.DomEvent.disableClickPropagation(wrap);
if (options.appendToWrap) {
L.DomEvent.disableScrollPropagation(wrap);
}
const isHtml = typeof options.content === "string" && options.content.trim().startsWith("<");
const extraClass = (options.extraBtnClass || "") + (!isHtml && options.content ? " dialect-map-control-btn--text" : "");
const btn = L.DomUtil.create("a", CONFIG.CLASSES.MAP.CONTROL_BTN + (extraClass ? " " + extraClass.trim() : ""), wrap);
btn.href = "#";
btn.title = options.title || "";
if (isHtml) {
btn.innerHTML = options.content;
} else {
btn.innerText = options.content || "";
}
if (!options.appendToWrap) {
btn.onclick = function (e) {
e.preventDefault();
if (options.onClick) options.onClick(e);
};
}
if (options.appendToWrap) options.appendToWrap(wrap, btn);
if (options.onAfterAdd) options.onAfterAdd(btn);
return wrap;
},
onRemove: function () {
if (options.onRemove) options.onRemove();
},
});
return new Control();
}
function getClusterSpreadRadiusDeg(zoom) {
const [minZ, maxZ] = CONFIG.CLUSTER_SPREAD_ZOOM_CLAMP;
const z = Math.max(minZ, Math.min(maxZ, zoom));
return CONFIG.CLUSTER_SPREAD_RADIUS_DEG * Math.pow(2, CONFIG.CLUSTER_SPREAD_REF_ZOOM - z);
}
const SVG_ICONS = {
CHECKBOX_CHECKED: '<svg width="10" height="10" viewBox="0 0 10 10"><path d="M1 5 L4 8 L9 2" fill="none" stroke="var(--wikt-palette-white)" stroke-width="1.5"/></svg>',
EXPANDER_DOWN: '<svg width="10" height="10" viewBox="0 0 10 10"><path d="M1 3 L5 7 L9 3" fill="none" stroke="var(--wikt-palette-black)" stroke-width="1.5"/></svg>',
EXPANDER_RIGHT: '<svg width="10" height="10" viewBox="0 0 10 10"><path d="M3 1 L7 5 L3 9" fill="none" stroke="var(--wikt-palette-black)" stroke-width="1.5"/></svg>',
FILTER: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>',
FULLSCREEN_EXPAND: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>',
FULLSCREEN_COLLAPSE: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg>',
};
function markerSvgOpen(size) {
return `<svg width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">`;
}
function markerPathEl(d, color, dataAttr) {
return '<path class="' + CONFIG.CLASSES.MARKER.SHAPE + '" data-is-shape="true" data-original-d="' +
escapeHtml(d) + '" d="' + escapeHtml(d) + '" fill="' + escapeHtml(color) + '" fill-opacity="1"' + dataAttr + " />";
}
function markerPieSliceEl(d, color, dataAttr) {
return '<path class="' + CONFIG.CLASSES.MARKER.SHAPE + '" data-original-d="' +
escapeHtml(d) + '" d="' + escapeHtml(d) + '" fill="' + escapeHtml(color) + '" fill-opacity="1"' + dataAttr + " />";
}
function markerCircleEl(center, r, color, dataAttr) {
return '<circle class="' + CONFIG.CLASSES.MARKER.SHAPE + '" data-is-shape="true" cx="' + center +
'" cy="' + center + '" r="' + r + '" fill="' + escapeHtml(color) + '" fill-opacity="1"' + dataAttr + " />";
}
function shapeSquare(c, r) {
const s = r * 1.6;
return ["M", c - s * 0.5, c - s * 0.5, "h", s, "v", s, "h", -s, "z"].join(" ");
}
function shapeTriangleUp(c, r) {
return ["M", c, c - r * 1.3, "L", c + r * 1.2, c + r * 0.7, "L", c - r * 1.2, c + r * 0.7, "z"].join(" ");
}
function shapeDiamond(c, r) {
return ["M", c, c - r * 1.3, "L", c + r * 1.3, c, "L", c, c + r * 1.3, "L", c - r * 1.3, c, "z"].join(" ");
}
function shapeTriangleDown(c, r) {
return ["M", c, c + r * 1.3, "L", c + r * 1.2, c - r * 0.7, "L", c - r * 1.2, c - r * 0.7, "z"].join(" ");
}
function shapePentagon(c, r) {
return ["M", c, c - r * 1.1, "L", c + r, c - r * 0.35, "L", c + r * 0.65, c + r * 0.9, "L", c - r * 0.65, c + r * 0.9, "L", c - r, c - r * 0.35, "z"].join(" ");
}
function shapeStar(c, r) {
const outer = r * 1.3;
const inner = r * 0.5;
return [
"M", c, c - outer,
"L", c + inner * 0.6, c - inner * 0.6,
"L", c + outer, c - outer * 0.3,
"L", c + inner, c + inner * 0.3,
"L", c + outer * 0.6, c + outer,
"L", c, c + inner,
"L", c - outer * 0.6, c + outer,
"L", c - inner, c + inner * 0.3,
"L", c - outer, c - outer * 0.3,
"L", c - inner * 0.6, c - inner * 0.6,
"z",
].join(" ");
}
function shapePlus(c, r) {
const t = r * 0.4;
const l = r * 1.2;
return [
"M", c - t, c - l,
"h", t * 2, "v", l - t, "h", l - t, "v", t * 2,
"h", -(l - t), "v", l - t, "h", -t * 2, "v", -(l - t), "h", -(l - t), "v", -t * 2,
"h", l - t,
"z",
].join(" ");
}
const MARKER_SHAPE_PATHS = [
shapeSquare,
shapeTriangleUp,
shapeDiamond,
shapeTriangleDown,
shapePentagon,
shapeStar,
shapePlus,
];
function markerShapePathD(shapeIndex, center, fr) {
return MARKER_SHAPE_PATHS[shapeIndex](center, fr);
}
function escapeHtml(text) {
if (!text) return "";
return String(text)
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
function setElementHTML(el, html) {
el.innerHTML = html;
}
function sanitizeUrl(url) {
if (!url) return "";
if (/^(https?:|\/\/|\/)/i.test(url)) {
return url.replace(/"/g, "%22");
}
return "#";
}
async function hashString(str) {
const encoder = new TextEncoder();
const data = encoder.encode(str);
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => b.toString(16).padStart(2, "0")).join("");
}
class WikitextCache {
constructor() {
this.dbName = "DialectMapCache";
this.storeName = "parsedContent";
this.db = null;
this.CACHE_EXPIRY_MS = CONFIG.CACHE_EXPIRY_MS;
}
async init() {
if (this.db) return;
if (typeof indexedDB === "undefined") return;
try {
return await new Promise((resolve, reject) => {
const request = indexedDB.open(this.dbName, 1);
request.onerror = () => reject(request.error);
request.onsuccess = () => {
this.db = request.result;
resolve();
};
request.onupgradeneeded = (event) => {
const db = event.target.result;
if (!db.objectStoreNames.contains(this.storeName)) {
db.createObjectStore(this.storeName, { keyPath: "hash" });
}
};
});
} catch (e) {
this.db = null;
}
}
async get(hash) {
if (!this.db) return null;
return new Promise((resolve) => {
const tx = this.db.transaction(this.storeName, "readwrite");
const store = tx.objectStore(this.storeName);
const request = store.get(hash);
request.onsuccess = () => {
const result = request.result;
if (!result || !result.html) {
resolve(null);
return;
}
const now = Date.now();
const age = now - (result.timestamp || 0);
if (age > this.CACHE_EXPIRY_MS) {
try { store.delete(hash); } catch (e) { }
resolve(null);
} else {
resolve(result.html);
}
};
request.onerror = () => resolve(null);
});
}
async set(hash, html) {
if (!this.db) return;
return new Promise((resolve) => {
const tx = this.db.transaction(this.storeName, "readwrite");
const store = tx.objectStore(this.storeName);
store.put({ hash, html, timestamp: Date.now() });
tx.oncomplete = () => resolve();
tx.onerror = () => resolve();
});
}
}
const wikitextCache = new WikitextCache();
class ColorUtils {
static resolveColor(rawColor) {
rawColor = rawColor || "333";
if (rawColor.indexOf("var(") === 0) {
return rawColor.replace(/-\d+\)$/, ")");
}
return "#" + rawColor.replace("#", "");
}
static damerauLevenshtein(str1, str2) {
const len1 = str1.length;
const len2 = str2.length;
if (len1 === 0) return len2;
if (len2 === 0) return len1;
if (str1 === str2) return 0;
const lenDiff = Math.abs(len1 - len2);
const maxLen = Math.max(len1, len2);
if (lenDiff > maxLen * 0.7) return maxLen;
const matrix = new Array(len1 + 1);
for (let i = 0; i <= len1; i++) {
matrix[i] = new Array(len2 + 1);
matrix[i][0] = i;
}
for (let j = 0; j <= len2; j++) {
matrix[0][j] = j;
}
for (let i = 1; i <= len1; i++) {
const ci = str1[i - 1];
for (let j = 1; j <= len2; j++) {
const cj = str2[j - 1];
const cost = (ci === cj) ? 0 : 1;
matrix[i][j] = Math.min(
matrix[i - 1][j] + 1,
matrix[i][j - 1] + 1,
matrix[i - 1][j - 1] + cost
);
if (i > 1 && j > 1 && ci === str2[j - 2] && str1[i - 2] === cj) {
matrix[i][j] = Math.min(
matrix[i][j],
matrix[i - 2][j - 2] + 1
);
}
}
}
return matrix[len1][len2];
}
static sortBySimilarity(list) {
if (list.length <= 1) return list;
if (list.length > CONFIG.SORT_BY_SIMILARITY_MAX) return list.sort();
const getComparisonText = (key) => {
const trMatch = key.match(/::tr:(.+)$/);
if (trMatch) return trMatch[1];
return key.replace(/::.*$/, "");
};
const comparisonTexts = new Map();
list.forEach(key => {
if (!comparisonTexts.has(key)) {
comparisonTexts.set(key, getComparisonText(key));
}
});
const distanceCache = new Map();
const getDistance = (text1, text2) => {
if (text1 === text2) return 0;
const key1 = text1 < text2 ? text1 : text2;
const key2 = text1 < text2 ? text2 : text1;
const cacheKey = `${key1}|${key2}`;
if (!distanceCache.has(cacheKey)) {
const lenDiff = Math.abs(text1.length - text2.length);
if (lenDiff > Math.max(text1.length, text2.length) * 0.5) {
distanceCache.set(cacheKey, lenDiff);
} else {
distanceCache.set(cacheKey, ColorUtils.damerauLevenshtein(text1, text2));
}
}
return distanceCache.get(cacheKey);
};
const sorted = [...list].sort();
const result = [sorted.shift()];
const maxCandidates = Math.min(CONFIG.SORT_BY_SIMILARITY_MAX_CANDIDATES, sorted.length);
while (sorted.length > 0) {
const currentKey = result[result.length - 1];
const currentText = comparisonTexts.get(currentKey);
let bestIdx = 0;
let bestDist = getDistance(currentText, comparisonTexts.get(sorted[0]));
if (bestDist === 0) {
result.push(sorted.splice(0, 1)[0]);
continue;
}
const checkCount = Math.min(maxCandidates, sorted.length);
for (let i = 1; i < checkCount; i++) {
const candText = comparisonTexts.get(sorted[i]);
const dist = getDistance(currentText, candText);
if (dist === 0) {
bestIdx = i;
bestDist = 0;
break;
}
if (dist < bestDist) {
bestDist = dist;
bestIdx = i;
} else if (dist === bestDist) {
if (sorted[i] < sorted[bestIdx]) {
bestIdx = i;
}
}
}
result.push(sorted.splice(bestIdx, 1)[0]);
}
return result;
}
static hslToHex(h, s, l) {
let r, g, b;
if (s === 0) {
r = g = b = l;
} else {
const hue2rgb = (p, q, t) => {
if (t < 0) t += 1;
if (t > 1) t -= 1;
if (t < 1/6) return p + (q - p) * 6 * t;
if (t < 1/2) return q;
if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
};
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
const p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
return ((Math.floor(r * 255) << 16) | (Math.floor(g * 255) << 8) | Math.floor(b * 255)).toString(16).padStart(6, "0");
}
}
class FeatureManager {
constructor() {
this.groupVisibility = {};
this.geoJSON = null;
this.maxGroupDepth = 0;
}
isVisible(feature) {
const group = feature.properties && feature.properties[PROPS.MARKER_GROUP];
if (!group) return true;
return this.groupVisibility[group] !== false;
}
toggleGroup(path, visible) {
this.groupVisibility[path] = visible;
}
getFeatures() {
if (!this.geoJSON) return [];
return Array.isArray(this.geoJSON)
? this.geoJSON
: (this.geoJSON.features || []);
}
}
class FilterCheckbox {
constructor(parent, path, checked, onChange) {
this.path = path;
this.checked = checked;
this.onChange = onChange;
this.wrapper = L.DomUtil.create(
"label",
CONFIG.CLASSES.FILTER.CHECKBOX,
parent,
);
this.input = L.DomUtil.create("input", "", this.wrapper);
this.input.type = "checkbox";
this.input.checked = checked;
this.input.setAttribute(DATA_ATTR.PATH, path);
this.input._filterCheckbox = this;
this.visual = L.DomUtil.create(
"span",
CONFIG.CLASSES.FILTER.CHECKBOX_VISUAL,
this.wrapper,
);
this._updateVisual();
const self = this;
this.input.onchange = function () {
self.checked = this.checked;
self._updateVisual();
if (self.onChange) {
self.onChange(self.checked);
}
};
}
setChecked(checked) {
this.checked = checked;
this.input.checked = checked;
this._updateVisual();
}
_updateVisual() {
if (this.checked) {
L.DomUtil.addClass(this.visual, "checked");
} else {
L.DomUtil.removeClass(this.visual, "checked");
}
this.visual.innerHTML = this.checked
? SVG_ICONS.CHECKBOX_CHECKED
: "";
}
}
class FilterExpander {
constructor(parent, hasChildren, onToggle) {
this.expanded = false;
this.hasChildren = hasChildren;
this.onToggle = onToggle;
this.element = L.DomUtil.create(
"span",
CONFIG.CLASSES.FILTER.EXPANDER,
parent,
);
if (hasChildren) {
L.DomUtil.addClass(this.element, "has-children");
}
this._updateVisual();
if (hasChildren) {
const self = this;
this.element.onclick = (e) => {
e.stopPropagation();
e.preventDefault();
self.toggle();
};
}
}
toggle() {
if (!this.hasChildren) return;
this.expanded = !this.expanded;
this._updateVisual();
if (this.onToggle) {
this.onToggle(this.expanded);
}
}
_updateVisual() {
if (!this.hasChildren) return;
if (this.expanded) {
this.element.innerHTML = SVG_ICONS.EXPANDER_DOWN;
} else {
this.element.innerHTML = SVG_ICONS.EXPANDER_RIGHT;
}
}
}
class FilterController {
constructor(container, featureManager, onUpdate) {
this.container = container;
this.featureManager = featureManager;
this.onUpdate = onUpdate;
this.childPathsCache = {};
this.descendantPathsCache = {};
this.groupLayers = {};
}
initUI(groupLayers) {
this.groupLayers = groupLayers;
this._buildCache();
this._render();
}
_buildCache() {
this.childPathsCache = {};
this.descendantPathsCache = {};
let allPaths = new Set();
Object.keys(this.groupLayers).forEach((path) => {
allPaths.add(path);
const parts = path.split("/");
for (let i = 1; i < parts.length; i++) {
allPaths.add(parts.slice(0, i).join("/"));
}
});
allPaths = Array.from(allPaths);
allPaths.forEach((path) => {
const parentPath = this._getParentPath(path);
if (parentPath) {
if (!this.childPathsCache[parentPath]) {
this.childPathsCache[parentPath] = [];
}
this.childPathsCache[parentPath].push(path);
}
});
allPaths.sort();
const pathCount = allPaths.length;
const self = this;
allPaths.forEach((path) => {
const prefix = path + "/";
const prefixEnd = path + "0";
var lower = 0, upper = pathCount;
while (lower < upper) {
var middle = (lower + upper) >> 1;
if (allPaths[middle] < prefix) lower = middle + 1;
else upper = middle;
}
var rangeStart = lower;
lower = rangeStart;
upper = pathCount;
while (lower < upper) {
middle = (lower + upper) >> 1;
if (allPaths[middle] < prefixEnd) lower = middle + 1;
else upper = middle;
}
self.descendantPathsCache[path] = allPaths.slice(rangeStart, lower);
});
}
_getParentPath(path) {
const lastSlash = path.lastIndexOf("/");
if (lastSlash === -1) return null;
return path.substring(0, lastSlash);
}
_render() {
const self = this;
this.control = createMapControl(
this.container,
leafletControlPosition(this.container, true),
{
content: SVG_ICONS.FILTER,
title: UI_STRINGS.FILTER_GROUPS_TITLE,
extraWrapClass: CONFIG.CLASSES.FILTER.CONTROL,
extraBtnClass: CONFIG.CLASSES.FILTER.BTN,
appendToWrap: function (wrap, btn) {
const panel = L.DomUtil.create("div", CONFIG.CLASSES.MAP.PANEL, wrap);
L.DomEvent.disableClickPropagation(panel);
L.DomUtil.addClass(panel, CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN);
const headerContainer = L.DomUtil.create(
"div",
CONFIG.CLASSES.MAP.HEADER_CONTAINER,
panel,
);
const header = L.DomUtil.create(
"div",
CONFIG.CLASSES.MAP.PANEL_HEADER,
headerContainer,
);
header.innerHTML = "<strong>" + UI_STRINGS.FILTER_HEADER + "</strong>";
const actions = L.DomUtil.create("div", "", header);
const allBtn = L.DomUtil.create("span", CONFIG.CLASSES.MAP.MAP_LINK, actions);
allBtn.innerText = UI_STRINGS.ALL;
allBtn.onclick = () => self._setAllVisibility(true, panel);
const noneBtn = L.DomUtil.create("span", CONFIG.CLASSES.MAP.MAP_LINK, actions);
noneBtn.innerText = UI_STRINGS.NONE;
noneBtn.onclick = () => self._setAllVisibility(false, panel);
const scrollContainer = L.DomUtil.create(
"div",
CONFIG.CLASSES.MAP.SCROLL_CONTAINER,
panel,
);
const treeContainer = L.DomUtil.create("div", "", scrollContainer);
const tree = self._buildGroupTree(Object.keys(self.groupLayers));
self._renderTree(tree, treeContainer);
const footerContainer = L.DomUtil.create(
"div",
CONFIG.CLASSES.MAP.FOOTER_CONTAINER,
panel,
);
self.footerContainer = footerContainer;
self.headerContainer = headerContainer;
btn.onclick = function (e) {
e.preventDefault();
const hiddenClass = CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN;
if (L.DomUtil.hasClass(panel, hiddenClass)) {
L.DomUtil.removeClass(panel, hiddenClass);
} else {
L.DomUtil.addClass(panel, hiddenClass);
}
};
self.panel = panel;
self.mainBtn = btn;
self._documentClickHandler = function (e) {
if (!wrap.contains(e.target)) {
if (!L.DomUtil.hasClass(panel, CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN)) {
L.DomUtil.addClass(panel, CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN);
}
}
};
document.addEventListener("click", self._documentClickHandler);
},
onRemove: function () {
if (self._documentClickHandler) {
document.removeEventListener("click", self._documentClickHandler);
self._documentClickHandler = null;
}
},
}
);
}
addTo(map) {
this.control.addTo(map);
}
_buildGroupTree(paths) {
const tree = {};
paths.sort().forEach((path) => {
const parts = path.split("/");
let current = tree;
parts.forEach((part, i) => {
if (!current[part]) {
current[part] = {
_children: {},
_path: parts.slice(0, i + 1).join("/"),
};
}
current = current[part]._children;
});
});
return tree;
}
_renderTree(tree, container, depth, parentLabel) {
depth = depth || 0;
parentLabel = parentLabel || "";
const self = this;
const keys = Object.keys(tree).sort();
if (keys.length === 1) {
const key = keys[0];
const node = tree[key];
const childKeys = Object.keys(node._children);
if (childKeys.length > 0) {
self._renderTree(node._children, container, depth, "");
return;
}
}
keys.forEach((key) => {
const node = tree[key];
const displayLabel = parentLabel ? parentLabel + "/" + key : key;
const row = L.DomUtil.create("div", CONFIG.CLASSES.TREE.ROW, container);
row.style.setProperty("--tree-depth", String(depth));
const hasChildren = Object.keys(node._children).length > 0;
const childContainer = L.DomUtil.create(
"div",
CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN,
container,
);
const hiddenClass = CONFIG.CLASSES.UTIL.ELEMENT_HIDDEN;
const expander = new FilterExpander(row, hasChildren, (expanded) => {
if (expanded) {
L.DomUtil.removeClass(childContainer, hiddenClass);
} else {
L.DomUtil.addClass(childContainer, hiddenClass);
}
});
row.insertBefore(expander.element, row.firstChild);
new FilterCheckbox(
row,
node._path,
self.featureManager.groupVisibility[node._path] !== false,
(checked) => {
self._toggleGroup(node._path, checked);
self._syncDescendantCheckboxUI(node._path, checked);
if (self.onUpdate) self.onUpdate();
},
);
const label = L.DomUtil.create("span", CONFIG.CLASSES.TREE.LABEL, row);
label.innerText = displayLabel;
if (hasChildren) L.DomUtil.addClass(label, "bold");
if (hasChildren) {
self._renderTree(node._children, childContainer, depth + 1, "");
}
});
}
_toggleGroup(groupPath, targetVisible) {
this.featureManager.toggleGroup(groupPath, targetVisible);
const descendants = this.descendantPathsCache[groupPath] || [];
descendants.forEach((path) => {
this.featureManager.toggleGroup(path, targetVisible);
});
this._updateAncestorStates(groupPath);
}
_updateAncestorStates(startPath) {
let parentPath = this._getParentPath(startPath);
while (parentPath) {
this._syncParentWithChildren(parentPath);
parentPath = this._getParentPath(parentPath);
}
}
_syncParentWithChildren(parentPath) {
const childPaths = this.childPathsCache[parentPath] || [];
if (childPaths.length === 0) return;
const anyChecked = childPaths.some(
(p) => this.featureManager.groupVisibility[p] !== false,
);
if (this.featureManager.groupVisibility[parentPath] !== anyChecked) {
this.featureManager.toggleGroup(parentPath, anyChecked);
this._syncParentCheckboxUI(parentPath, anyChecked);
}
}
_syncParentCheckboxUI(path, checked) {
const input = document.querySelector(
CONFIG.SELECTORS.FILTER.CHECKBOX + ' input[' + DATA_ATTR.PATH + '="' + CSS.escape(path) + '"]',
);
if (input && input._filterCheckbox) {
input._filterCheckbox.setChecked(checked);
}
}
_syncDescendantCheckboxUI(groupPath, checked) {
const descendants = this.descendantPathsCache[groupPath] || [];
descendants.forEach((path) => {
const input = document.querySelector(
'input[' + DATA_ATTR.PATH + '="' + CSS.escape(path) + '"]',
);
if (input && input._filterCheckbox) {
input._filterCheckbox.setChecked(checked);
}
});
}
_setAllVisibility(visible, panel) {
const inputs = panel.querySelectorAll(CONFIG.SELECTORS.FILTER.CHECKBOX_INPUT);
inputs.forEach((input) => {
const path = input.getAttribute(DATA_ATTR.PATH);
this.featureManager.toggleGroup(path, visible);
if (input._filterCheckbox) {
input._filterCheckbox.setChecked(visible);
}
});
if (this.onUpdate) this.onUpdate();
}
}
class LegendController {
constructor(container, onHover, mode, onRowClick) {
this.container = container;
this.onHover = onHover;
this.onRowClick = onRowClick || null;
this.mode = mode || "term";
this.legendElement = null;
}
render(groups) {
let legend = this.container.querySelector(CONFIG.SELECTORS.MAP.LEGEND_STATIC);
if (!legend) {
legend = document.createElement("div");
legend.className = CONFIG.CLASSES.MAP.LEGEND_STATIC + " " + CONFIG.CLASSES.MAP.LEGEND_GRID;
this.container.appendChild(legend);
} else {
legend.innerHTML = "";
}
this.legendElement = legend;
groups.forEach((g) => {
const groupContainer = document.createElement("div");
groupContainer.className = CONFIG.CLASSES.MAP.LEGEND_GROUP;
const termKeys = Object.keys(g.terms);
termKeys.sort((a, b) => {
const tA = g.terms[a];
const tB = g.terms[b];
if (tA.locs.length !== tB.locs.length)
return tB.locs.length - tA.locs.length;
return (tA.term || "").localeCompare(tB.term || "");
});
if (termKeys.length === 1 && this.mode !== "all") {
const termKey = termKeys[0];
const termData = g.terms[termKey];
this._renderLegendRow(groupContainer, g, termData, true);
} else {
const groupHeader = document.createElement("div");
groupHeader.className = CONFIG.CLASSES.MAP.LEGEND_ROW + " " + CONFIG.CLASSES.MAP.GROUP_HEADER;
groupHeader.setAttribute(DATA_ATTR.GROUP_ID, g.gid);
const switcher = document.createElement("div");
switcher.className = CONFIG.CLASSES.EXT.VSSWITCHER;
const toggleIcon = document.createElement("span");
toggleIcon.className = CONFIG.CLASSES.MAP.TOGGLE_ICON;
toggleIcon.innerText = UI_STRINGS.ICON_EXPAND_RIGHT;
const dot = document.createElement("span");
dot.className = CONFIG.CLASSES.MAP.LEGEND_ROW_DOT;
dot.style.backgroundColor = g.color;
const labelSpan = document.createElement("span");
labelSpan.className = CONFIG.CLASSES.MAP.LEGEND_LABEL;
if (g.parsedGroup) {
setElementHTML(labelSpan, g.parsedGroup);
} else {
labelSpan.innerText = g.label;
}
switcher.appendChild(toggleIcon);
switcher.appendChild(dot);
switcher.appendChild(labelSpan);
groupHeader.appendChild(switcher);
const termsContainer = document.createElement("div");
termsContainer.className = CONFIG.CLASSES.MAP.LEGEND_TERMS + " " + CONFIG.CLASSES.MAP.LEGEND_TERMS_COLLAPSED;
groupHeader.onclick = () => {
termsContainer.classList.toggle(CONFIG.CLASSES.MAP.LEGEND_TERMS_COLLAPSED);
toggleIcon.innerText = termsContainer.classList.contains(CONFIG.CLASSES.MAP.LEGEND_TERMS_COLLAPSED) ? UI_STRINGS.ICON_EXPAND_RIGHT : UI_STRINGS.ICON_EXPAND_DOWN;
if (this.onRowClick) this.onRowClick(g.gid);
};
if (this.onHover) {
groupHeader.onmouseenter = () => this.onHover(g.gid, true);
groupHeader.onmouseleave = () => this.onHover(g.gid, false);
}
groupContainer.appendChild(groupHeader);
groupContainer.appendChild(termsContainer);
termKeys.forEach((key) => {
const termData = g.terms[key];
this._renderLegendRow(termsContainer, g, termData, false);
});
}
legend.appendChild(groupContainer);
});
}
_renderLegendRow(container, groupData, termData, isTopLevel) {
const count = termData.locs.length;
let labelHtml = termData.legendWikitext || `<strong>${escapeHtml(termData.term || "")}</strong>`;
if (count > 0) {
labelHtml += ` (${count})`;
}
const row = document.createElement("div");
row.className = CONFIG.CLASSES.MAP.LEGEND_ROW;
if (!isTopLevel) {
row.classList.add(CONFIG.CLASSES.MAP.LEGEND_ROW_NESTED, CONFIG.CLASSES.MAP.LEGEND_TERM_ROW);
}
row.setAttribute(DATA_ATTR.GROUP_ID, groupData.gid);
if (this.onHover) {
row.onmouseenter = () => this.onHover(groupData.gid, true);
row.onmouseleave = () => this.onHover(groupData.gid, false);
}
if (this.onRowClick) {
row.onclick = () => this.onRowClick(groupData.gid);
}
const switcher = document.createElement("div");
switcher.className = CONFIG.CLASSES.EXT.VSSWITCHER;
if (isTopLevel) {
const dot = document.createElement("span");
dot.className = CONFIG.CLASSES.MAP.LEGEND_ROW_DOT;
dot.style.backgroundColor = groupData.color;
switcher.appendChild(dot);
}
const labelSpan = document.createElement("span");
labelSpan.className = CONFIG.CLASSES.MAP.LEGEND_LABEL;
setElementHTML(labelSpan, labelHtml);
switcher.appendChild(labelSpan);
if (count > 0) {
const toggleEl = document.createElement("span");
toggleEl.className = CONFIG.CLASSES.EXT.VSTOGGLE_ELEMENT + " " + CONFIG.CLASSES.MAP.LEGEND_LOCS_TOGGLE;
toggleEl.innerText = UI_STRINGS.LECTS_EXPAND;
const hideDiv = document.createElement("div");
hideDiv.className = CONFIG.CLASSES.EXT.VSHIDE + " " + CONFIG.CLASSES.MAP.LEGEND_LOCS + " " + CONFIG.CLASSES.MAP.LEGEND_LOCS_COLLAPSED + " " + (isTopLevel ? CONFIG.CLASSES.MAP.LEGEND_LOCS_TOPLEVEL : CONFIG.CLASSES.MAP.LEGEND_LOCS_NESTED);
const ul = document.createElement("ul");
ul.className = CONFIG.CLASSES.MAP.LEGEND_LOCS_LIST;
termData.locs.sort((a, b) => a.localeCompare(b));
termData.locs.forEach((loc) => {
const li = document.createElement("li");
li.className = CONFIG.CLASSES.MAP.LEGEND_LOCS_ITEM;
setElementHTML(li, loc);
ul.appendChild(li);
});
hideDiv.appendChild(ul);
switcher.appendChild(toggleEl);
row.appendChild(switcher);
row.appendChild(hideDiv);
toggleEl.onclick = (e) => {
e.stopPropagation();
hideDiv.classList.toggle(CONFIG.CLASSES.MAP.LEGEND_LOCS_COLLAPSED);
toggleEl.innerText = hideDiv.classList.contains(CONFIG.CLASSES.MAP.LEGEND_LOCS_COLLAPSED) ? UI_STRINGS.LECTS_EXPAND : UI_STRINGS.LECTS_COLLAPSE;
};
} else {
row.appendChild(switcher);
}
container.appendChild(row);
}
highlightGroup(gid, active) {
const safeValue = CSS.escape(gid || "");
const query = CONFIG.SELECTORS.MAP.LEGEND_ROW + '[' + DATA_ATTR.GROUP_ID + '="' + safeValue + '"]';
const row = this.container.querySelector(query);
if (row) {
row.classList.toggle(CONFIG.CLASSES.MAP.LEGEND_ROW_HIGHLIGHTED, active);
}
}
}
class DialectMarker {
constructor(dialectMap, features, latlng) {
this.dialectMap = dialectMap;
this.features = features;
this.latlng = latlng;
this.leafletLayer = null;
this.size = CONFIG.MARKER_SIZE;
this.features.forEach((f) => {
if (!f.properties._originalColor) {
f.properties._originalColor = f.properties[PROPS.MARKER_COLOR];
}
});
}
render() {
const visibleFeatures = this.getVisibleFeatures();
if (visibleFeatures.length === 0) return;
this.leafletLayer = L.marker(this.latlng, {
icon: this._buildIcon(visibleFeatures),
});
this._setupPopup();
this._setupHover();
this._registerGroups();
this.leafletLayer.addTo(this.dialectMap.map);
}
update() {
const visibleFeatures = this.getVisibleFeatures();
if (visibleFeatures.length === 0) {
if (this.dialectMap.map.hasLayer(this.leafletLayer)) {
this.dialectMap.map.removeLayer(this.leafletLayer);
}
return;
}
if (!this.dialectMap.map.hasLayer(this.leafletLayer)) {
this.leafletLayer.addTo(this.dialectMap.map);
}
this.leafletLayer.setIcon(this._buildIcon(visibleFeatures));
this._setupSliceHover();
}
getVisibleFeatures() {
return this.features.filter((f) =>
this.dialectMap.featureManager.isVisible(f),
);
}
_buildIcon(visibleFeatures) {
const size = this.size;
const strokeWidth = CONFIG.MARKER_STROKE_WIDTH;
const r = (size - strokeWidth) / 2;
const center = size / 2;
const total = visibleFeatures.length;
let svg;
if (total === 1) {
const f = visibleFeatures[0];
const color = ColorUtils.resolveColor(f.properties[PROPS.MARKER_COLOR]);
const gid = f.properties[PROPS.GROUP_ID] || "";
const symbol = f.properties._derivedSymbol || 0;
const options = {
strokeWidth: CONFIG.MARKER_STROKE_WIDTH,
groupId: gid,
markerGroup: f.properties[PROPS.MARKER_GROUP] || "",
};
svg = this._getShapeSvg(symbol, color, size, options);
} else {
svg = markerSvgOpen(size);
let startAngle = -Math.PI / 2;
const anglePerSlice = (2 * Math.PI) / total;
visibleFeatures.forEach((f) => {
const color = ColorUtils.resolveColor(f.properties[PROPS.MARKER_COLOR]);
const gid = f.properties[PROPS.GROUP_ID] || "";
const endAngle = startAngle + anglePerSlice;
const x1 = center + r * Math.cos(startAngle);
const y1 = center + r * Math.sin(startAngle);
const x2 = center + r * Math.cos(endAngle);
const y2 = center + r * Math.sin(endAngle);
const largeArc = anglePerSlice > Math.PI ? 1 : 0;
const d = [
"M",
center,
center,
"L",
x1,
y1,
"A",
r,
r,
0,
largeArc,
1,
x2,
y2,
"Z",
].join(" ");
const dataAttr = ' ' + DATA_ATTR.GROUP_ID + '="' + escapeHtml(gid) + '"' +
' ' + DATA_ATTR.MARKER_GROUP + '="' + escapeHtml(f.properties[PROPS.MARKER_GROUP] || "") + '"';
svg += markerPieSliceEl(d, color, dataAttr);
startAngle = endAngle;
});
}
svg += "</svg>";
return L.divIcon({
className: CONFIG.CLASSES.MARKER.ROOT,
html: svg,
iconSize: [size, size],
iconAnchor: [size / 2, size / 2],
});
}
_getShapeSvg(symbolIndex, color, size, options) {
size = size || 10;
options = options || {};
const r = size / 2;
const center = size / 2;
const strokeWidth = options.strokeWidth || CONFIG.MARKER_STROKE_WIDTH;
const dataAttr = (options.groupId
? ' ' + DATA_ATTR.GROUP_ID + '="' + escapeHtml(options.groupId) + '"'
: "") + (options.markerGroup
? ' ' + DATA_ATTR.MARKER_GROUP + '="' + escapeHtml(options.markerGroup) + '"'
: "");
let svg = markerSvgOpen(size);
let d = "";
let fr = r - strokeWidth / 2;
if (fr < 0) fr = 0;
const shapeIndex = symbolIndex % 8;
if (shapeIndex === 0) {
svg += markerCircleEl(center, fr, color, dataAttr);
} else {
d = markerShapePathD(shapeIndex - 1, center, fr);
if (d) {
svg += markerPathEl(d, color, dataAttr);
}
}
svg += "</svg>";
return svg;
}
_setupPopup() {
const self = this;
this.leafletLayer.bindPopup(() => self._buildPopup(), {
className: CONFIG.CLASSES.MAP.CUSTOM_POPUP,
minWidth: CONFIG.POPUP_MIN_WIDTH,
});
}
_buildPopup() {
const dialectMap = this.dialectMap;
const featuresForPopup = this._popupFeatures
? this._popupFeatures.filter((f) => dialectMap.featureManager.isVisible(f))
: this.getVisibleFeatures();
const contentByLoc = new Map();
featuresForPopup.forEach((feature) => {
const props = feature.properties || {};
const term = props.term || "";
const loc = props.loc || "";
const gid = props[PROPS.GROUP_ID] || "";
const symbol = props._derivedSymbol || 0;
const langCode = props[PROPS.MARKER_LANG] || "";
const tr = props.tr || "";
const isIPA = props.isIPA ? "1" : "";
let color = ColorUtils.resolveColor(props[PROPS.MARKER_COLOR]);
let termKey = `term::${term}::${langCode}::${tr}::${isIPA}`;
if (props.wikitext) {
termKey = props.wikitext;
}
let displayTerm = escapeHtml(term);
if (dialectMap.contentCache && dialectMap.contentCache.has(termKey)) {
displayTerm = dialectMap.contentCache.get(termKey);
} else if (props.url) {
displayTerm = `<a href="${sanitizeUrl(props.url)}">${escapeHtml(
term,
)}</a>`;
}
let displayLoc = escapeHtml(loc);
const locKey = `loc::${loc}`;
if (dialectMap.contentCache && dialectMap.contentCache.has(locKey)) {
displayLoc = dialectMap.contentCache.get(locKey);
}
const rawGroup = props[PROPS.TERM_GROUP];
let displayGroup = rawGroup;
if (displayGroup) {
const groupCacheKey = `group::${displayGroup}::${langCode}`;
if (
dialectMap.contentCache &&
dialectMap.contentCache.has(groupCacheKey)
) {
displayGroup = dialectMap.contentCache.get(groupCacheKey);
} else {
displayGroup = escapeHtml(displayGroup);
}
}
if (!contentByLoc.has(displayLoc)) {
contentByLoc.set(displayLoc, new Map());
}
const groupsInLoc = contentByLoc.get(displayLoc);
const uniqueGroupKey = `${loc}::${gid}::${color}::${rawGroup || ""}`;
if (!groupsInLoc.has(uniqueGroupKey)) {
groupsInLoc.set(uniqueGroupKey, {
groupName: displayGroup,
color: color,
symbol: symbol,
terms: [],
});
}
groupsInLoc.get(uniqueGroupKey).terms.push(displayTerm);
});
let html = '<div class="' + CONFIG.CLASSES.MARKER.POPUP + '">';
contentByLoc.forEach((groups, locationTitle) => {
html += `<div><span class="${CONFIG.CLASSES.POPUP.TITLE}">${locationTitle}</span>`;
groups.forEach((group) => {
html += `<br><span class="${CONFIG.CLASSES.POPUP.COLOR_DOT}" style="background:${escapeHtml(group.color)
};"></span> ${group.terms.join(", ")}`;
if (dialectMap.config.showGroup && group.groupName) {
html += ` (${group.groupName})`;
}
});
html += "</div>";
});
html += "</div>";
return html;
}
_setupHover() {
const self = this;
const dialectMap = this.dialectMap;
this.leafletLayer.on("add", () => {
self._setupSliceHover();
});
this.leafletLayer.on("mouseover", () => {
dialectMap._closePolygonTooltips();
});
}
_setupSliceHover() {
const self = this;
const dialectMap = this.dialectMap;
const icon = this.leafletLayer.getElement();
if (!icon) return;
if (icon._sliceHoverBound) return;
icon._sliceHoverBound = true;
const paths = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
paths.forEach((path) => {
path.addEventListener("mouseenter", function () {
dialectMap._setPieFocus(icon, [this]);
const gid = path.getAttribute(DATA_ATTR.GROUP_ID);
self.features.forEach((f) => {
if (f.properties[PROPS.GROUP_ID] === gid) {
dialectMap._handleFeatureHover(f, true);
}
});
});
path.addEventListener("mouseleave", function () {
dialectMap._resetPieFocus(icon);
const gid = path.getAttribute(DATA_ATTR.GROUP_ID);
self.features.forEach((f) => {
if (f.properties[PROPS.GROUP_ID] === gid) {
dialectMap._handleFeatureHover(f, false);
}
});
});
});
}
_registerGroups() {
const dialectMap = this.dialectMap;
const layer = this.leafletLayer;
this.features.forEach((feature) => {
const props = feature.properties || {};
const groupId = props[PROPS.GROUP_ID];
const group = props[PROPS.MARKER_GROUP];
if (groupId) {
if (!dialectMap.groupIdLayers[groupId]) {
dialectMap.groupIdLayers[groupId] = [];
}
dialectMap.groupIdLayers[groupId].push(layer);
}
if (group) {
if (!dialectMap.groupLayers[group]) {
dialectMap.groupLayers[group] = L.layerGroup();
}
}
});
}
}
class DialectMap {
constructor(container) {
this.container = container;
applyPageDirection(container);
this.map = null;
this.config = {};
this.mapContainer = null;
this.contentCache = new Map();
this.currentDepthMode = 2;
this.featureManager = new FeatureManager();
this.filterController = new FilterController(
this.container,
this.featureManager,
() => {
this._updateAllMarkers();
this._refreshLegend();
},
);
const mode = this.container.getAttribute(DATA_ATTR.MODE) || "term";
this.legendController = new LegendController(
this.container,
(gid, active) => { this._handleLegendHover(gid, active); },
mode,
(gid) => { this._handleLegendRowClick(gid); },
);
this.groupLayers = {};
this.groupIdLayers = {};
this.pinnedLegendGroupId = null;
}
init() {
const missingConfigLang = this.container.getAttribute(DATA_ATTR.MISSING_CONFIG);
if (missingConfigLang) {
this._setPlaceholderMissingConfig(missingConfigLang);
return;
}
if (!this._parseData()) return;
if (this.config.mode === "all") {
this.currentDepthMode = this.featureManager.maxGroupDepth;
}
const self = this;
mw.loader.using(["ext.kartographer.box", "mediawiki.api"]).then(
function () {
if (!self._renderMap()) return;
self.filterController.initUI(self.groupLayers);
self.filterController.addTo(self.map);
const features = self.featureManager.getFeatures();
self.legendController.render(self._getLegendData(features));
self._legendClickHandler = function (e) {
if (e.target.closest(CONFIG.SELECTORS.MAP.LEGEND_ROW)) return;
self._clearPinnedLegend();
};
document.addEventListener("click", self._legendClickHandler);
self._setupSearch();
self._createFullscreenControl();
self._createMarkerModeControl();
if (self.config.mode === "all") {
self._createDepthControl();
}
self._fetchMissingContent().then(() => {
self.legendController.render(
self._getLegendData(self.featureManager.getFeatures()),
);
}).catch(function (e) {
console.warn("Dialect Map: Failed to fetch wikitext content", e);
});
},
function () {
self._setPlaceholderError("Error: Kartographer extension not available.");
},
);
}
_setPlaceholderError(message, options) {
const el = this.container.querySelector(CONFIG.SELECTORS.MAP.PLACEHOLDER);
if (!el) return;
if (options && options.asHtml) {
setElementHTML(el, message);
if (options.placeholderClass) el.classList.add(options.placeholderClass);
} else {
el.textContent = message;
}
}
_setPlaceholderMissingConfig(langCode) {
const modulePath = "Module:dialect map/data/" + langCode;
const example = "return {\n\tconfig = {\n\t\tlang_code = \"" + langCode + "\",\n\t\tlat = 0,\n\t\tlong = 0,\n\t\tzoom = 2,\n\t\twidth = \"100%\",\n\t\theight = 600,\n\t\tmapstyle = \"osm-intl\",\n\t},\n\tgroups = {},\n}";
const html = [
"<strong>Missing map config for language: " + escapeHtml(langCode) + "</strong>",
"<p>No config module was found. Create <strong><a href=\"" + escapeHtml(mw.util.getUrl(modulePath)) + "\">" + escapeHtml(modulePath) + "</a></strong> and export a table with a <em>config</em> (and optionally <em>groups</em>) key.</p>",
"<p><strong>Example:</strong></p>",
"<pre>" + escapeHtml(example) + "</pre>",
"<p>Adjust <em>lat</em>, <em>long</em>, and <em>zoom</em> for your language's map view.</p>",
].join("\n");
this._setPlaceholderError(html, { asHtml: true, placeholderClass: CONFIG.CLASSES.MAP.PLACEHOLDER_MISSING_CONFIG });
}
_parseData() {
const dataEl = this.container.querySelector(CONFIG.SELECTORS.MAP.DATA);
if (!dataEl) {
this._setPlaceholderError("No map data.");
return false;
}
let rawData;
try {
rawData = JSON.parse(dataEl.textContent);
} catch (e) {
this._setPlaceholderError("Error parsing map data.");
return false;
}
if (rawData.d && rawData.f) {
const dict = rawData.d;
const minifiedFeatures = rawData.f;
const self = this;
const decompress = (obj) => {
if (typeof obj === "string") {
if (obj.startsWith("@@") && obj.endsWith("@@")) {
const id = obj.substring(2, obj.length - 2);
return dict[id] || obj;
}
} else if (Array.isArray(obj)) {
for (let i = 0; i < obj.length; i++) {
obj[i] = decompress(obj[i]);
}
} else if (typeof obj === "object" && obj !== null) {
for (const key in obj) {
obj[key] = decompress(obj[key]);
}
}
return obj;
};
this.featureManager.geoJSON = minifiedFeatures.map((mf) => {
let feature;
if (Array.isArray(mf)) {
const lat = mf[1];
const lon = mf[2];
const props = {
wikitext: decompress(mf[3]),
legendWikitext: decompress(mf[4]),
term: decompress(mf[5]),
url: decompress(mf[6]),
[PROPS.TERM_GROUP]: decompress(mf[7]),
[PROPS.MARKER_GROUP]: decompress(mf[8]),
[PROPS.MARKER_COLOR]: mf[9],
[PROPS.MARKER_LANG]: mf[10],
[PROPS.GROUP_ID]: mf[11],
loc: decompress(mf[12]),
};
feature = {
type: "Feature",
properties: props,
geometry: {
type: "Point",
coordinates: [lon, lat],
},
};
} else {
feature = {
type: "Feature",
properties: decompress(mf.p || {}),
geometry: null,
};
if (mf.g) {
const geom = {
coordinates: mf.g.c,
};
if (mf.g.t === "pt") {
geom.type = "Point";
} else if (mf.g.t === "pl") {
geom.type = "Polygon";
} else {
geom.type = mf.g.t;
}
feature.geometry = geom;
}
}
if (feature.properties[PROPS.MARKER_GROUP]) {
const depth = feature.properties[PROPS.MARKER_GROUP].split("/").length;
if (depth > self.featureManager.maxGroupDepth) {
self.featureManager.maxGroupDepth = depth;
}
}
return feature;
});
} else {
this.featureManager.geoJSON = rawData;
}
this._deriveSymbols();
this._generateColors();
const multiMarkerRaw = (this.container.getAttribute(DATA_ATTR.MULTI_MARKER) || CONFIG.MULTI_MARKER_DEFAULT).toLowerCase();
const multiMarker = CONFIG.MULTI_MARKER_MODES.includes(multiMarkerRaw)
? multiMarkerRaw
: CONFIG.MULTI_MARKER_DEFAULT;
this.config = {
lat: parseFloat(this.container.getAttribute(DATA_ATTR.LAT)),
lon: parseFloat(this.container.getAttribute(DATA_ATTR.LON)),
zoom: parseInt(this.container.getAttribute(DATA_ATTR.ZOOM), 10),
style: (this.container.getAttribute(DATA_ATTR.MAPSTYLE) || "osm-intl").replace(/[^a-zA-Z0-9\-]/g, ""),
showGroup: this.container.getAttribute(DATA_ATTR.SHOW_GROUP) === "true",
mode: this.container.getAttribute(DATA_ATTR.MODE) || "term",
multiMarker,
};
const features = this.featureManager.getFeatures();
if (!features || features.length === 0) {
this._setPlaceholderError("No features to display.");
return false;
}
return true;
}
_deriveSymbols() {
const groups = {};
const features = this.featureManager.getFeatures();
features.forEach((f) => {
const p = f.properties || {};
const groupName = p[PROPS.TERM_GROUP];
if (groupName) {
const key = `${groupName}::${p[PROPS.MARKER_LANG] || ""}`;
if (!groups[key]) groups[key] = new Set();
const term = p.term || "";
groups[key].add(term);
}
});
const variantMap = {};
Object.keys(groups).forEach((key) => {
const terms = Array.from(groups[key]);
if (terms.length > 1) {
terms.sort();
const termToSymbol = {};
terms.forEach((t, i) => {
termToSymbol[t] = i;
});
variantMap[key] = termToSymbol;
}
});
features.forEach((f) => {
const p = f.properties || {};
const groupName = p[PROPS.TERM_GROUP];
if (groupName) {
const key = `${groupName}::${p[PROPS.MARKER_LANG] || ""}`;
if (variantMap[key]) {
const term = p.term || "";
const symbolIndex = variantMap[key][term];
if (symbolIndex !== undefined) {
p._derivedSymbol = symbolIndex;
}
}
}
});
}
_generateColors() {
const features = this.featureManager.getFeatures();
const groupIdToFormKey = new Map();
features.forEach((f) => {
if (f.geometry && f.geometry.type === "Point") {
const p = f.properties || {};
const groupId = p[PROPS.GROUP_ID];
if (!groupId) return;
if (groupIdToFormKey.has(groupId)) return;
let formKey = p[PROPS.TERM_GROUP] || p.term || "";
if (p.tr && !p[PROPS.TERM_GROUP]) {
formKey = formKey + "::tr:" + p.tr;
}
if (formKey) {
groupIdToFormKey.set(groupId, formKey);
}
}
});
const groupIds = Array.from(groupIdToFormKey.keys());
const formKeys = groupIds.map(gid => groupIdToFormKey.get(gid));
const mode = this.container.getAttribute(DATA_ATTR.MODE) || "term";
let sortedFormKeys;
if (mode === "all") {
sortedFormKeys = [...formKeys].sort();
} else {
sortedFormKeys = ColorUtils.sortBySimilarity(formKeys);
}
const formKeyToGroupId = new Map();
groupIds.forEach(gid => {
const fk = groupIdToFormKey.get(gid);
if (fk) formKeyToGroupId.set(fk, gid);
});
const sortedGroupIds = sortedFormKeys
.map(fk => formKeyToGroupId.get(fk))
.filter(gid => gid !== undefined);
const formColors = {};
sortedGroupIds.forEach((groupId, idx) => {
const hue = (idx / (sortedGroupIds.length > 0 ? sortedGroupIds.length : 1)) % 1;
const sat = ((idx + 1) % 2 === 0) ? 0.7 : 1.0;
const light = ((idx + 1) % 3 === 0) ? 0.4 : 0.5;
formColors[groupId] = ColorUtils.hslToHex(hue, sat, light);
});
features.forEach((f) => {
if (f.geometry && f.geometry.type === "Point") {
const p = f.properties || {};
const groupId = p[PROPS.GROUP_ID];
if (groupId && formColors[groupId]) {
p[PROPS.MARKER_COLOR] = formColors[groupId];
} else if (!p[PROPS.MARKER_COLOR] || p[PROPS.MARKER_COLOR] === "") {
p[PROPS.MARKER_COLOR] = CONFIG.DEFAULT_MARKER_COLOR_HEX;
}
}
});
}
_renderMap() {
const placeholder = this.container.querySelector(
CONFIG.SELECTORS.MAP.PLACEHOLDER,
);
if (!placeholder) {
this._setPlaceholderError("No map container.");
return false;
}
const lat = this.config.lat;
const lon = this.config.lon;
const zoom = this.config.zoom;
if (
typeof lat !== "number" || !Number.isFinite(lat) ||
typeof lon !== "number" || !Number.isFinite(lon) ||
typeof zoom !== "number" || !Number.isFinite(zoom)
) {
this._setPlaceholderError("Invalid map configuration.");
return false;
}
placeholder.innerHTML = "";
this.mapContainer = placeholder;
try {
this.map = L.map(this.mapContainer, {
center: [lat, lon],
zoom: zoom,
maxBounds: [
[-90, -180],
[90, 180],
],
maxBoundsViscosity: 1.0,
minZoom: CONFIG.MAP_MIN_ZOOM,
});
} catch (e) {
this._setPlaceholderError("Error initializing map.");
return false;
}
L.tileLayer(
"https://maps.wikimedia.org/" +
this.config.style +
"/{z}/{x}/{y}{r}.png?lang=en",
{
attribution:
'<a href="https://wikimediafoundation.org/wiki/Maps_Terms_of_Use">Wikimedia</a> | © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
maxZoom: CONFIG.MAP_MAX_ZOOM,
noWrap: true,
},
).addTo(this.map);
const features = this.featureManager.getFeatures();
this._createPointMarkers();
this.polygonLayers = [];
features.forEach((feature) => {
if (feature.geometry && feature.geometry.type === "Polygon") {
const ringCoords = feature.geometry.coordinates[0];
const latlngs = ringCoords.map((coord) => [coord[1], coord[0]]);
const props = feature.properties || {};
const polygon = L.polygon(latlngs, {
color: props.stroke || props.fill || CONFIG.DEFAULT_POLYGON_COLOR,
weight:
props[PROPS.STROKE_WIDTH] !== undefined ? props[PROPS.STROKE_WIDTH] : 1,
opacity:
props[PROPS.STROKE_OPACITY] !== undefined
? props[PROPS.STROKE_OPACITY]
: 0.5,
fillColor: props.fill || CONFIG.DEFAULT_POLYGON_COLOR,
fillOpacity:
props[PROPS.FILL_OPACITY] !== undefined ? props[PROPS.FILL_OPACITY] : 0.2,
bubblingMouseEvents: true,
});
if (props.title) {
polygon.bindTooltip(escapeHtml(props.title), { sticky: true });
}
polygon.on("mouseover", function () {
this.bringToBack();
});
polygon.addTo(this.map);
polygon.bringToBack();
this.polygonLayers.push(polygon);
}
});
return true;
}
async _fetchMissingContent() {
const features = this.featureManager.getFeatures();
const self = this;
await wikitextCache.init();
const pendingItems = [];
const featuresByKey = {};
features.forEach((f) => {
const p = f.properties || {};
if (p.wikitext) {
pendingItems.push({ key: p.wikitext, wikitext: p.wikitext, feature: f, prop: PROPS.PARSED_WIKITEXT });
}
if (p.legendWikitext) {
pendingItems.push({ key: `legend::${p.legendWikitext}`, wikitext: p.legendWikitext, feature: f, prop: PROPS.PARSED_LEGEND_WIKITEXT });
} else if (p[PROPS.TERM_GROUP]) {
const groupName = p[PROPS.TERM_GROUP];
const groupWikitext = `${groupName}`;
pendingItems.push({ key: `legend::${groupWikitext}`, wikitext: groupWikitext, feature: f, prop: PROPS.PARSED_LEGEND_WIKITEXT });
}
const loc = p.loc || "";
if (loc && loc.indexOf("[[") !== -1) {
pendingItems.push({ key: `loc::${loc}`, wikitext: loc, feature: f, prop: PROPS.PARSED_LOCATION });
}
if (p[PROPS.TERM_GROUP]) {
const groupName = p[PROPS.TERM_GROUP];
pendingItems.push({
key: `group::${groupName}::${p[PROPS.MARKER_LANG] || ""}`,
wikitext: groupName,
feature: f,
prop: PROPS.PARSED_GROUP
});
}
});
const seen = new Set();
const uniqueItems = [];
pendingItems.forEach((item) => {
if (!featuresByKey[item.key]) featuresByKey[item.key] = [];
featuresByKey[item.key].push({ feature: item.feature, prop: item.prop });
if (!seen.has(item.key)) {
seen.add(item.key);
uniqueItems.push(item);
}
});
const cacheResults = await Promise.all(
uniqueItems.map(async (item) => {
const hash = await hashString(item.wikitext);
const cached = await wikitextCache.get(hash);
return Object.assign({}, item, { hash: hash, cached: cached });
})
);
const itemsToFetch = [];
cacheResults.forEach((item) => {
if (item.cached) {
self.contentCache.set(item.key, item.cached);
featuresByKey[item.key].forEach((entry) => {
entry.feature.properties[entry.prop] = item.cached;
});
} else {
itemsToFetch.push(item);
}
});
if (itemsToFetch.length === 0) return;
const API_HEADERS = {
"Api-User-Agent": "Dialect Map (Gadget developed by [[User:Fenakhay]])",
};
const actionAPI = new mw.Api({ ajax: { headers: API_HEADERS } });
for (let i = 0; i < itemsToFetch.length; i += CONFIG.WIKITEXT_BATCH_SIZE) {
const batch = itemsToFetch.slice(i, i + CONFIG.WIKITEXT_BATCH_SIZE);
const wikitext = batch
.map(
(item, idx) =>
`<div class="${CONFIG.CLASSES.MAP.CONTENT_WRAPPER}" ${DATA_ATTR.IDX}="${idx}">${item.wikitext}</div>`,
)
.join("");
try {
const data = await actionAPI.post({
action: "parse",
text: wikitext,
prop: "text",
contentmodel: "wikitext",
disablelimitreport: true,
});
const parseText = data.parse && data.parse.text && data.parse.text["*"];
if (parseText === undefined) {
console.warn("Dialect Map: Parse API returned unexpected shape", data);
continue;
}
const tempDiv = document.createElement("div");
setElementHTML(tempDiv, parseText);
const wrappers = tempDiv.querySelectorAll(CONFIG.SELECTORS.MAP.CONTENT_WRAPPER);
const cachePromises = [];
wrappers.forEach((wrapper) => {
const idx = parseInt(wrapper.getAttribute(DATA_ATTR.IDX));
if (!isNaN(idx) && idx < batch.length) {
const item = batch[idx];
const content = wrapper.innerHTML;
self.contentCache.set(item.key, content);
cachePromises.push(wikitextCache.set(item.hash, content));
if (featuresByKey[item.key]) {
featuresByKey[item.key].forEach((entry) => {
entry.feature.properties[entry.prop] = content;
});
}
}
});
await Promise.all(cachePromises);
} catch (e) {
console.warn("Dialect Map: Batch formatting failed", e);
}
}
}
_handleLegendHover(groupId, active) {
if (this.pinnedLegendGroupId && active && groupId !== this.pinnedLegendGroupId) {
this._clearPinnedLegend();
}
if (this.pinnedLegendGroupId) {
this._highlightLegendRow(this.pinnedLegendGroupId, true);
if (this.config.mode === "all") {
this._highlightPath(this.pinnedLegendGroupId, true);
} else {
this._highlightGroup(this.pinnedLegendGroupId, true);
}
return;
}
this._highlightLegendRow(groupId, active);
if (this.config.mode === "all") {
this._highlightPath(groupId, active);
} else {
this._highlightGroup(groupId, active);
}
}
_handleLegendRowClick(gid) {
if (this.pinnedLegendGroupId === gid) {
this._clearPinnedLegend();
} else {
this._setPinnedLegend(gid);
}
}
_setPinnedLegend(gid) {
this.pinnedLegendGroupId = gid;
this._handleLegendHover(gid, true);
}
_clearPinnedLegend() {
const prev = this.pinnedLegendGroupId;
this.pinnedLegendGroupId = null;
if (prev) {
this._highlightLegendRow(prev, false);
if (this.config.mode === "all") {
this._highlightPath(prev, false);
} else {
this._highlightGroup(prev, false);
}
}
}
_setLayerHighlight(layer, active, groupId, markerGroupPath) {
const self = this;
if (active) {
if (layer.setIcon) {
const icon = layer.getElement();
if (icon) {
let highlightedSlices = null;
if (markerGroupPath) {
const safePath = CSS.escape(markerGroupPath);
const slices = icon.querySelectorAll(
`[${DATA_ATTR.MARKER_GROUP}="${safePath}"], [${DATA_ATTR.MARKER_GROUP}^="${safePath}/"]`,
);
const allPaths = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
if (slices.length > 0) {
highlightedSlices = slices;
if (slices.length === allPaths.length) {
const svg = icon.querySelector("svg");
if (svg) L.DomUtil.addClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
} else {
self._setPieFocus(icon, slices);
}
}
} else if (groupId) {
const safeGroupId = CSS.escape(groupId);
const slices = icon.querySelectorAll(
`[${DATA_ATTR.GROUP_ID}="${safeGroupId}"]`,
);
const allPaths = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
if (slices.length > 0) {
highlightedSlices = slices;
if (slices.length === allPaths.length) {
const svg = icon.querySelector("svg");
if (svg) L.DomUtil.addClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
} else {
self._setPieFocus(icon, slices);
}
} else {
const svg = icon.querySelector("svg");
if (svg) L.DomUtil.addClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
highlightedSlices = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES_PIE);
}
} else {
const svg = icon.querySelector("svg");
if (svg) L.DomUtil.addClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
highlightedSlices = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
}
if (highlightedSlices) {
highlightedSlices.forEach(p => {
L.DomUtil.addClass(p, CONFIG.CLASSES.MARKER.HIGHLIGHTED);
});
}
layer.setZIndexOffset(CONFIG.HIGHLIGHT_Z_INDEX);
}
}
} else {
if (layer.setIcon) {
const icon = layer.getElement();
if (icon) {
self._resetPieFocus(icon);
const paths = icon.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
paths.forEach(p => {
L.DomUtil.removeClass(p, CONFIG.CLASSES.MARKER.HIGHLIGHTED);
});
layer.setZIndexOffset(0);
}
}
}
}
_highlightLegendRow(groupId, active) {
this.legendController.highlightGroup(groupId, active);
}
_highlightGroup(groupId, active) {
const self = this;
const layers = this.groupIdLayers[groupId];
if (layers) {
layers.forEach((layer) => {
self._setLayerHighlight(layer, active, groupId, null);
});
}
}
_highlightPath(path, active) {
if (!this.markers) return;
const self = this;
const pathPrefix = path + "/";
this.markers.forEach((marker) => {
if (marker.leafletLayer) {
const hasMatch = marker.features.some((f) => {
const markerGroup = f.properties && f.properties[PROPS.MARKER_GROUP];
return markerGroup && (markerGroup === path || markerGroup.startsWith(pathPrefix));
});
if (hasMatch) {
self._setLayerHighlight(marker.leafletLayer, active, null, path);
}
}
});
}
_closePolygonTooltips() {
if (!this.polygonLayers) return;
this.polygonLayers.forEach(function (polygon) {
polygon.closeTooltip();
});
}
_updateAllMarkers() {
if (!this.markers) return;
this.markers.forEach(function (marker) {
marker.update();
});
}
_updateClusterSpread() {
if (this.config.multiMarker !== "cluster" || !this.markers || !this.map) return;
const zoom = this.map.getZoom();
const spreadRadiusDeg = getClusterSpreadRadiusDeg(zoom);
this.markers.forEach((marker) => {
const c = marker._clusterCenter;
if (!c || !marker.leafletLayer) return;
const centerLat = c.lat;
const centerLon = c.lon;
const featureCount = marker._clusterFeatureCount;
const featureIndex = marker._clusterFeatureIndex;
const angle = featureCount === 1 ? 0 : (2 * Math.PI * featureIndex) / featureCount;
const markerLat = centerLat + spreadRadiusDeg * Math.cos(angle);
const markerLon = centerLon + (spreadRadiusDeg * Math.sin(angle)) / Math.max(0.01, Math.cos(centerLat * Math.PI / 180));
marker.latlng = L.latLng(markerLat, markerLon);
marker.leafletLayer.setLatLng(marker.latlng);
});
}
_removePointMarkers() {
if (!this.markers) return;
this.markers.forEach((marker) => {
if (marker.leafletLayer && this.map && this.map.hasLayer(marker.leafletLayer)) {
this.map.removeLayer(marker.leafletLayer);
}
});
this.markers = [];
this.groupIdLayers = {};
this.groupLayers = {};
if (this._clusterZoomHandler && this.map) {
this.map.off("zoomend", this._clusterZoomHandler);
this._clusterZoomHandler = null;
}
}
_groupFeaturesByLocation(pointFeatures) {
const featuresByLocation = {};
pointFeatures.forEach((feature) => {
const coords = feature.geometry.coordinates;
const locationKey = coords[1].toFixed(6) + "," + coords[0].toFixed(6);
if (!featuresByLocation[locationKey]) featuresByLocation[locationKey] = [];
featuresByLocation[locationKey].push(feature);
});
return featuresByLocation;
}
_createPointMarkers() {
const self = this;
const features = this.featureManager.getFeatures();
const pointFeatures = features.filter((f) => f.geometry && f.geometry.type === "Point");
this.markers = [];
if (this.config.multiMarker === "cluster") {
const featuresByLocation = this._groupFeaturesByLocation(pointFeatures);
const initialZoom = self.map.getZoom();
const spreadRadiusDeg = getClusterSpreadRadiusDeg(initialZoom);
Object.keys(featuresByLocation).forEach((locationKey) => {
const featuresAtLocation = featuresByLocation[locationKey];
const centerLat = featuresAtLocation[0].geometry.coordinates[1];
const centerLon = featuresAtLocation[0].geometry.coordinates[0];
const featureCount = featuresAtLocation.length;
featuresAtLocation.forEach((feature, featureIndex) => {
const angle = featureCount === 1 ? 0 : (2 * Math.PI * featureIndex) / featureCount;
const markerLat = centerLat + spreadRadiusDeg * Math.cos(angle);
const markerLon = centerLon + (spreadRadiusDeg * Math.sin(angle)) / Math.max(0.01, Math.cos(centerLat * Math.PI / 180));
const markerLatLng = L.latLng(markerLat, markerLon);
const marker = new DialectMarker(self, [feature], markerLatLng);
marker._clusterCenter = { lat: centerLat, lon: centerLon };
marker._clusterFeatureIndex = featureIndex;
marker._clusterFeatureCount = featureCount;
marker._popupFeatures = featuresAtLocation;
marker.render();
self.markers.push(marker);
});
});
this._clusterZoomHandler = () => this._updateClusterSpread();
this.map.on("zoomend", this._clusterZoomHandler);
} else {
const featuresByLocation = this._groupFeaturesByLocation(pointFeatures);
Object.keys(featuresByLocation).forEach((locationKey) => {
const featuresAtLocation = featuresByLocation[locationKey];
const firstFeature = featuresAtLocation[0];
const markerLatLng = L.latLng(
firstFeature.geometry.coordinates[1],
firstFeature.geometry.coordinates[0],
);
const marker = new DialectMarker(self, featuresAtLocation, markerLatLng);
marker._popupFeatures = featuresAtLocation;
marker.render();
self.markers.push(marker);
});
}
}
_switchMarkerMode() {
this.config.multiMarker = this.config.multiMarker === "cluster" ? "pie" : "cluster";
this._removePointMarkers();
this._createPointMarkers();
if (this._markerModeBtn) {
this._markerModeBtn.innerText = this.config.multiMarker === "cluster" ? UI_STRINGS.MARKER_MODE_CLUSTER : UI_STRINGS.MARKER_MODE_PIE;
this._markerModeBtn.title = this.config.multiMarker === "cluster" ? UI_STRINGS.SWITCH_TO_PIE : UI_STRINGS.SWITCH_TO_CLUSTER;
}
}
_refreshLegend() {
const features = this.featureManager.getFeatures();
const visibleFeatures = features.filter((f) => this.featureManager.isVisible(f));
const legendData = this._getLegendData(visibleFeatures);
this.legendController.render(legendData);
}
_createFullscreenControl() {
const self = this;
var fullscreenUpdateIcon = null;
const control = createMapControl(this.container, leafletControlPosition(this.container, true), {
content: SVG_ICONS.FULLSCREEN_EXPAND,
title: UI_STRINGS.TOGGLE_FULLSCREEN,
extraBtnClass: CONFIG.CLASSES.MAP.CONTROL_BTN_FULLSCREEN,
onClick: function () {
const mapContainer = self.map.getContainer();
const isFullscreen = document.fullscreenElement || document.webkitFullscreenElement;
if (!isFullscreen) {
if (mapContainer.requestFullscreen) {
mapContainer.requestFullscreen().catch(function () { });
} else if (mapContainer.webkitRequestFullscreen) {
mapContainer.webkitRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
}
},
onAfterAdd: function (btn) {
fullscreenUpdateIcon = function () {
const isFullscreen = document.fullscreenElement || document.webkitFullscreenElement;
if (isFullscreen) {
btn.title = UI_STRINGS.EXIT_FULLSCREEN;
btn.innerHTML = SVG_ICONS.FULLSCREEN_COLLAPSE;
} else {
btn.title = UI_STRINGS.TOGGLE_FULLSCREEN;
btn.innerHTML = SVG_ICONS.FULLSCREEN_EXPAND;
}
};
document.addEventListener("fullscreenchange", fullscreenUpdateIcon);
document.addEventListener("webkitfullscreenchange", fullscreenUpdateIcon);
},
onRemove: function () {
if (fullscreenUpdateIcon) {
document.removeEventListener("fullscreenchange", fullscreenUpdateIcon);
document.removeEventListener("webkitfullscreenchange", fullscreenUpdateIcon);
fullscreenUpdateIcon = null;
}
},
});
this.map.addControl(control);
}
_createMarkerModeControl() {
const self = this;
const control = createMapControl(this.container, leafletControlPosition(this.container, true), {
content: self.config.multiMarker === "cluster" ? UI_STRINGS.MARKER_MODE_CLUSTER : UI_STRINGS.MARKER_MODE_PIE,
title: self.config.multiMarker === "cluster" ? UI_STRINGS.SWITCH_TO_PIE : UI_STRINGS.SWITCH_TO_CLUSTER,
onClick: function () { self._switchMarkerMode(); },
onAfterAdd: function (btn) { self._markerModeBtn = btn; },
});
this.map.addControl(control);
}
_getLegendData(features) {
const groups = {};
const groupOrder = [];
const self = this;
features.forEach((f) => {
const p = f.properties || {};
let gid, label, color;
if (self.config.mode === "all") {
const fullGroup = p[PROPS.MARKER_GROUP];
if (!fullGroup) {
gid = "ungrouped";
label = "Other";
color = p[PROPS.MARKER_COLOR] || CONFIG.DEFAULT_MARKER_COLOR;
} else {
const parts = fullGroup.split("/");
const sliceLen = Math.min(parts.length, self.currentDepthMode);
gid = parts.slice(0, sliceLen).join("/");
label = parts[sliceLen - 1] || gid;
color = ColorUtils.resolveColor(p[PROPS.MARKER_COLOR]);
}
} else {
gid = p[PROPS.GROUP_ID];
if (!gid) return;
label = p.term;
color = ColorUtils.resolveColor(p[PROPS.MARKER_COLOR]);
}
if (!groups[gid]) {
groups[gid] = {
gid: gid,
label: label,
color: color,
parsedGroup: p.parsedGroup,
terms: {},
};
groupOrder.push(gid);
}
const loc = p.parsedLocation || p.loc;
if (loc) {
const termKey = `term::${p.term}::${p[PROPS.MARKER_LANG] || ""}::${p.tr || ""}`;
if (!groups[gid].terms[termKey]) {
groups[gid].terms[termKey] = {
term: p.term,
alt: p.alt || p.term,
tr: p.tr || "",
wikitext: p.wikitext,
parsedWikitext: p.parsedWikitext,
legendWikitext: p.parsedLegendWikitext,
url: p.url,
locs: [],
};
}
groups[gid].terms[termKey].locs.push(loc);
}
});
function getGroupLocCount(gid) {
return Object.values(groups[gid].terms).reduce(
(acc, t) => acc + t.locs.length,
0,
);
}
const sorter = (a, b) => {
const countA = getGroupLocCount(a);
const countB = getGroupLocCount(b);
if (countA !== countB) return countB - countA;
return a.localeCompare(b);
};
if (self.config.mode === "all") {
groupOrder.sort(sorter);
} else {
groupOrder.sort((a, b) => {
const countA = getGroupLocCount(a);
const countB = getGroupLocCount(b);
if (countA !== countB) return countB - countA;
const numA = parseInt(a.replace("term-group-", "")) || 0;
const numB = parseInt(b.replace("term-group-", "")) || 0;
return numA - numB;
});
}
return groupOrder.map((gid) => groups[gid]);
}
_setupSearch() {
if (!this.filterController || !this.filterController.headerContainer)
return;
const self = this;
const headerContainer = this.filterController.headerContainer;
const searchInput = L.DomUtil.create("input", CONFIG.CLASSES.MAP.SEARCH_INPUT);
searchInput.type = "text";
searchInput.placeholder = UI_STRINGS.SEARCH_PLACEHOLDER;
if (headerContainer.firstChild) {
headerContainer.insertBefore(searchInput, headerContainer.firstChild);
} else {
headerContainer.appendChild(searchInput);
}
this.searchInput = searchInput;
this.searchInput.addEventListener("keydown", function (e) {
if (e.key !== "Enter") return;
const query = this.value.toLowerCase();
if (!query) return;
const matchedLocs = [];
for (let i = 0; i < self.markers.length; i++) {
const marker = self.markers[i];
const features = marker.features;
let matched = false;
for (let j = 0; j < features.length; j++) {
const props = features[j].properties;
const loc = (props.loc || "").toLowerCase();
const term = (props.term || "").toLowerCase();
const group = (props[PROPS.TERM_GROUP] || "").toLowerCase();
if (
loc.indexOf(query) !== -1 ||
term.indexOf(query) !== -1 ||
group.indexOf(query) !== -1
) {
matched = true;
break;
}
}
if (matched) {
matchedLocs.push(marker.latlng);
}
}
if (matchedLocs.length === 1) {
self.map.flyTo(matchedLocs[0], Math.max(self.map.getZoom(), CONFIG.FLY_TO_MIN_ZOOM));
} else if (matchedLocs.length > 1) {
const bounds = L.latLngBounds(matchedLocs);
const pad = CONFIG.FIT_BOUNDS_PADDING;
self.map.fitBounds(bounds, { padding: [pad, pad], maxZoom: CONFIG.FIT_BOUNDS_MAX_ZOOM });
}
});
this._setupExport();
}
_setupExport() {
if (!this.filterController || !this.filterController.footerContainer)
return;
const self = this;
const footerContainer = this.filterController.footerContainer;
const exportBtn = L.DomUtil.create(
"button",
CONFIG.CLASSES.MAP.EXPORT_BTN,
footerContainer,
);
exportBtn.innerText = UI_STRINGS.EXPORT_BTN;
exportBtn.onclick = function () {
self._exportData();
};
}
_exportData() {
let dataToExport = JSON.parse(JSON.stringify(this.featureManager.geoJSON));
let features = [];
if (Array.isArray(dataToExport)) {
features = dataToExport;
dataToExport = {
type: "FeatureCollection",
features: features,
};
} else if (dataToExport && !dataToExport.type) {
if (dataToExport.features) {
features = dataToExport.features;
dataToExport.type = "FeatureCollection";
}
} else if (dataToExport && dataToExport.features) {
features = dataToExport.features;
}
features.forEach(function (f) {
if (f.properties) {
const props = f.properties;
Object.keys(props).forEach(function (key) {
const val = props[key];
if (val === null || val === undefined || val === "") {
delete props[key];
}
});
if (props[PROPS.MARKER_COLOR] && !props[PROPS.MARKER_COLOR].startsWith("#")) {
props[PROPS.MARKER_COLOR] = "#" + props[PROPS.MARKER_COLOR];
}
if (props[PROPS.MARKER_LANG] && !props.lang) {
props.lang = props[PROPS.MARKER_LANG];
}
}
});
const pairs = new Set();
features.forEach(function (f) {
if (f.properties && f.properties.lang && f.properties.term) {
const safeLang = f.properties.lang.replace(/[^a-zA-Z0-9\-_]/g, "");
const safeTerm = f.properties.term.replace(/[^a-zA-Z0-9\-_]/g, "");
if (safeLang && safeTerm) {
pairs.add(safeLang + "-" + safeTerm);
}
}
});
let filename = "dialect_map";
const suffix = Array.from(pairs).join("-and-");
if (suffix) {
filename += "_" + suffix;
}
filename += ".json";
const jsonStr = JSON.stringify(dataToExport, null, 2);
const blob = new Blob([jsonStr], { type: "application/json" });
const url = URL.createObjectURL(blob);
const downloadAnchorNode = document.createElement("a");
downloadAnchorNode.href = url;
downloadAnchorNode.download = filename;
document.body.appendChild(downloadAnchorNode);
downloadAnchorNode.click();
downloadAnchorNode.remove();
URL.revokeObjectURL(url);
}
_setPieFocus(container, featuresToFocus) {
const svg = container.querySelector("svg");
if (svg) L.DomUtil.addClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
const allPaths = container.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
const isFocused = function (el) {
for (let i = 0; i < featuresToFocus.length; i++) {
if (featuresToFocus[i] === el) return true;
}
return false;
};
allPaths.forEach(function (p) {
if (isFocused(p)) {
if (!p.getAttribute("data-is-shape")) {
p.setAttribute(
"d",
"M 6,6 m -5.25,0 a 5.25,5.25 0 1,0 10.5,0 a 5.25,5.25 0 1,0 -10.5,0",
);
p.parentNode.appendChild(p);
}
L.DomUtil.addClass(p, CONFIG.CLASSES.MARKER.FOCUSED);
} else {
L.DomUtil.addClass(p, CONFIG.CLASSES.MARKER.DIMMED);
}
});
}
_resetPieFocus(container) {
const svg = container.querySelector("svg");
if (svg) L.DomUtil.removeClass(svg, CONFIG.CLASSES.MARKER.FOCUSED);
const allPaths = container.querySelectorAll(CONFIG.SELECTORS.ICON_SHAPES);
allPaths.forEach(function (p) {
if (!p.getAttribute("data-is-shape")) {
const originalD = p.getAttribute("data-original-d");
if (originalD) {
p.setAttribute("d", originalD);
}
}
L.DomUtil.removeClass(p, CONFIG.CLASSES.MARKER.FOCUSED);
L.DomUtil.removeClass(p, CONFIG.CLASSES.MARKER.DIMMED);
});
}
_createDepthControl() {
const control = L.control({ position: leafletControlPosition(this.container, false) });
const self = this;
control.onAdd = function (map) {
const container = L.DomUtil.create(
"div",
"leaflet-bar leaflet-control " + CONFIG.CLASSES.MAP.DEPTH_CONTROL,
);
if (self.featureManager.maxGroupDepth < 2) {
container.classList.add(CONFIG.CLASSES.MAP.DEPTH_CONTROL_HIDDEN);
return container;
}
const select = L.DomUtil.create("select", "", container);
if (!self.currentDepthMode)
self.currentDepthMode = self.featureManager.maxGroupDepth;
for (let d = 2; d <= self.featureManager.maxGroupDepth; d++) {
const levelIndex = d - 1;
const text = UI_STRINGS.LEVEL_PREFIX + levelIndex;
const el = document.createElement("option");
el.value = d;
el.innerText = text;
if (d === self.currentDepthMode) el.selected = true;
select.appendChild(el);
}
L.DomEvent.disableClickPropagation(container);
select.onchange = function () {
self.currentDepthMode = parseInt(this.value, 10);
self._updateAllColors();
};
return container;
};
this.map.addControl(control);
}
_handleFeatureHover(feature, active) {
let key;
if (this.config.mode === "all") {
const group = feature.properties[PROPS.MARKER_GROUP];
if (group) {
const parts = group.split("/");
const sliceLen = Math.min(parts.length, this.currentDepthMode);
key = parts.slice(0, sliceLen).join("/");
}
} else {
key = feature.properties[PROPS.GROUP_ID];
}
if (key) {
this._handleLegendHover(key, active);
}
}
_updateAllColors() {
const self = this;
const seenKeys = {};
const groupKeys = [];
this.markers.forEach((marker) => {
marker.features.forEach((f) => {
const groupId = f.properties[PROPS.MARKER_GROUP];
if (groupId) {
const parts = groupId.split("/");
const sliceLen = Math.min(parts.length, self.currentDepthMode);
const key = parts.slice(0, sliceLen).join("/");
if (!seenKeys[key]) {
seenKeys[key] = true;
groupKeys.push(key);
}
}
});
});
const repColors = {};
const sortedKeys = ColorUtils.sortBySimilarity(groupKeys);
sortedKeys.forEach((key, idx) => {
const hue = (idx / (sortedKeys.length > 0 ? sortedKeys.length : 1)) % 1;
const sat = ((idx + 1) % 2 === 0) ? 0.7 : 1.0;
const light = ((idx + 1) % 3 === 0) ? 0.4 : 0.5;
repColors[key] = ColorUtils.hslToHex(hue, sat, light);
});
this.markers.forEach((marker) => {
marker.features.forEach((f) => {
let color;
const groupId = f.properties[PROPS.MARKER_GROUP];
const pointColor = f.properties._originalColor || CONFIG.DEFAULT_MARKER_COLOR;
if (!groupId) {
color = pointColor;
} else {
const parts = groupId.split("/");
const sliceLen = Math.min(parts.length, self.currentDepthMode);
const key = parts.slice(0, sliceLen).join("/");
color = repColors[key] || pointColor;
}
f.properties[PROPS.MARKER_COLOR] = color;
});
marker.update();
});
this._refreshLegend();
}
destroy() {
if (this._legendClickHandler) {
document.removeEventListener("click", this._legendClickHandler);
this._legendClickHandler = null;
}
this._removePointMarkers();
if (this.polygonLayers) {
this.polygonLayers.forEach((polygon) => {
if (this.map && this.map.hasLayer(polygon)) {
this.map.removeLayer(polygon);
}
});
this.polygonLayers = [];
}
if (this.map) {
this.map.remove();
this.map = null;
}
this.contentCache.clear();
this.groupIdLayers = {};
this.groupLayers = {};
}
}
mw.hook("wikipage.content").add((content) => {
const rawContent = content instanceof jQuery ? content[0] : content;
if (!rawContent) return;
const apps = rawContent.querySelectorAll(CONFIG.SELECTORS.MAP.APP);
apps.forEach((app) => {
if (app.classList.contains(CONFIG.CLASSES.MAP.PROCESSED)) return;
app.classList.add(CONFIG.CLASSES.MAP.PROCESSED);
new DialectMap(app).init();
});
});
})(mediaWiki);
// </nowiki>
dfn21e48omv65fbhff343ylcqanx8t8
มีเดียวิกิ:Gadget-DialectMap.css
8
2300897
5771102
5656985
2026-10-03T02:06:35Z
Octahedron80
267
5771102
css
text/css
.dialect-map-panel,
.dialect-map-custom-popup .leaflet-popup-content-wrapper {
background: white;
border: 1px solid #ccc;
border-radius: 4px;
box-shadow: none;
color: #333;
}
.dialect-map-panel {
padding: 0;
min-width: 200px;
max-height: 300px;
position: absolute;
top: 0;
inset-inline-start: 36px;
display: flex;
flex-direction: column;
}
.dialect-map-header-container {
padding: 10px 10px 0 10px;
background: white;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
flex-shrink: 0;
}
.dialect-map-scroll-container {
padding: 0 10px;
overflow-y: auto;
scrollbar-width: thin;
flex-grow: 1;
}
.dialect-map-footer-container {
padding: 10px;
background: white;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
flex-shrink: 0;
border-top: 1px solid #eee;
}
.dialect-map-custom-popup .leaflet-popup-content {
margin: 10px;
font-size: 13px;
line-height: 1.4;
}
.dialect-map-custom-popup .leaflet-popup-tip {
background: white;
border: 1px solid #ccc;
box-shadow: none;
}
.dialect-map-custom-popup .leaflet-popup-close-button {
color: #666;
}
.dialect-map-panel a,
.dialect-map-custom-popup a,
.dialect-map-link {
color: #0645ad;
text-decoration: none;
cursor: pointer;
}
.dialect-map-custom-popup .dialect-marker-popup a.new {
color: #ba0000;
}
.dialect-map-panel a:hover,
.dialect-map-custom-popup a:hover,
.dialect-map-link:hover {
text-decoration: underline;
}
.dialect-map-link + .dialect-map-link {
margin-inline-start: 8px;
}
.dialect-map-panel-header {
margin-bottom: 8px;
border-bottom: 1px solid #eee;
padding-bottom: 4px;
display: flex;
justify-content: space-between;
}
.dialect-marker-popup > div {
padding: 3px 0;
border-bottom: 1px solid #eee;
}
.dialect-marker-popup > div:last-child {
border-bottom: none;
}
.dialect-filter-checkbox {
display: inline-flex;
align-items: center;
cursor: pointer;
margin-inline-end: 4px;
}
.dialect-filter-checkbox input {
display: none;
}
.dialect-filter-checkbox-visual {
width: 14px;
height: 14px;
border: 1px solid #666;
border-radius: 2px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.dialect-filter-checkbox-visual.checked {
background-color: #0645ad;
}
.dialect-filter-expander {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
margin-inline-end: 4px;
}
.dialect-filter-expander.has-children {
cursor: pointer;
}
.leaflet-bar .dialect-map-control-btn {
display: flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
padding: 0;
margin: 0;
text-decoration: none;
font-size: 0;
line-height: 0;
background: white;
color: #333;
cursor: pointer;
}
.leaflet-bar .dialect-map-control-btn svg {
display: block;
margin: 0;
}
.leaflet-bar .dialect-map-control-btn:hover {
background: #f4f4f4;
color: #000;
}
.leaflet-bar .dialect-map-control-btn--text {
font-size: inherit;
line-height: inherit;
}
@media (max-width: 768px) {
.leaflet-bar .dialect-map-control-btn--fullscreen {
display: none;
}
}
.dialect-popup-color-dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-inline-end: 6px;
vertical-align: middle;
}
.dialect-marker {
overflow: visible;
}
.dialect-marker path,
.dialect-marker circle,
.dialect-marker rect,
.dialect-marker polygon {
cursor: pointer;
transition: all 0.2s ease;
transform-origin: center center;
stroke: rgba(255, 255, 255, 0.4);
stroke-width: 1.5px;
vector-effect: non-scaling-stroke;
}
.dialect-marker path.dialect-marker-highlighted,
.dialect-marker circle.dialect-marker-highlighted,
.dialect-marker rect.dialect-marker-highlighted,
.dialect-marker polygon.dialect-marker-highlighted {
stroke: rgba(0, 0, 0, 0.4);
stroke-width: 1px;
}
.dialect-map-app .dialect-element-hidden {
display: none;
}
.dialect-tree-row {
--tree-depth: 0;
margin-bottom: 2px;
display: flex;
align-items: center;
padding-inline-start: calc(var(--tree-depth) * 15px);
}
.dialect-tree-label {
font-size: 13px;
font-weight: normal;
}
.dialect-tree-label.bold {
font-weight: bold;
}
.dialect-marker svg {
overflow: visible;
}
.dialect-marker-focused {
transform: scale(1.2);
transform-box: fill-box;
stroke: #000;
stroke-width: 1.33px;
opacity: 1;
}
.dialect-marker-dimmed {
opacity: 0.5;
transform: scale(0.8);
}
.dialect-map-legend-row-dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-inline-end: 5px;
}
.dialect-marker-popup {
text-align: center;
}
.dialect-marker-popup .dialect-popup-title,
.dialect-marker-popup .dialect-popup-title a {
font-weight: bold;
}
.dialect-map-search-input {
width: 100%;
padding: 6px;
margin-bottom: 8px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
font-family: sans-serif;
font-size: 13px;
background: #fff;
color: #202122;
}
.dialect-map-export-btn {
display: block;
width: 100%;
margin-top: 10px;
padding: 6px;
background-color: #f8f9fa;
border: 1px solid #a2a9b1;
border-radius: 2px;
text-align: center;
cursor: pointer;
font-size: 13px;
color: #202122;
}
.dialect-map-export-btn:hover {
background-color: #ffffff;
border-color: #72777d;
}
.dialect-depth-control {
background: #fff;
padding: 5px;
border-radius: 4px;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
}
.dialect-depth-control--hidden {
display: none;
}
.dialect-depth-control select {
font-size: 12px;
padding: 2px 4px;
min-width: 120px;
border: 1px solid #ccc;
background: #fff;
color: #202122;
}
.dialect-map-legend-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 10px;
margin-top: 15px;
width: 100%;
}
.dialect-map-legend-group {
display: flex;
flex-direction: column;
}
.dialect-map-legend-row {
break-inside: avoid;
background: var(--wikt-palette-paleblue);
color: var(--wikt-palette-black);
padding: 5px 10px;
border-radius: 4px;
border: 1px solid var(--wikt-palette-dulllighterblue);
}
.dialect-map-legend-row .vsSwitcher {
display: flex;
align-items: center;
width: 100%;
}
.dialect-map-legend-row-dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-inline-end: 5px;
}
.dialect-map-legend-label {
flex-grow: 1;
}
.dialect-map-legend-row .vsToggleElement {
cursor: pointer;
font-size: 0.8em;
margin-inline-start: auto;
color: var(--wikt-palette-blue);
white-space: nowrap;
}
.dialect-map-legend-row .vsHide {
width: 100%;
margin-top: 5px;
}
.dialect-map-legend-row .vsHide ul {
margin: 0;
padding-inline-start: 20px;
}
.dialect-map-legend-row--highlighted {
background: var(--wikt-palette-dulllighterblue);
}
.dialect-map-legend-row--nested {
margin-inline-start: 20px;
}
.dialect-map-group-header .dialect-map-legend-label {
font-weight: bold;
}
.dialect-map-legend-terms--collapsed {
display: none;
}
.dialect-map-legend-locs-toggle {
cursor: pointer;
margin-inline-start: 5px;
font-size: 0.9em;
color: var(--wikt-palette-blue);
}
.dialect-map-legend-locs--collapsed {
display: none;
}
.dialect-map-legend-locs--toplevel {
padding-inline-start: 20px;
}
.dialect-map-legend-locs--nested {
padding-inline-start: 15px;
}
.dialect-map-legend-locs-list {
list-style-type: none;
padding: 0;
margin: 5px 0;
}
.dialect-map-legend-locs-item {
font-size: 0.9em;
color: var(--wikt-palette-darkgrey);
}
.dialect-map-group-header {
cursor: pointer;
}
.dialect-map-toggle-icon {
display: inline-block;
margin-inline-end: 5px;
font-size: 0.8em;
transition: transform 0.2s;
}
[dir="rtl"] .dialect-map-custom-popup .leaflet-popup-content {
text-align: center;
direction: rtl;
}
.dialect-map-app {
position: relative;
width: 100%;
}
.dialect-map-placeholder {
width: 100%;
height: 600px;
display: flex;
align-items: center;
justify-content: center;
background-color: #f8f9fa;
border: 1px solid #c8ccd1;
color: #72777d;
}
.dialect-map-placeholder--missing-config {
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
padding: 1em;
overflow: auto;
text-align: left;
}
.dialect-map-placeholder pre {
background: #fff;
border: 1px solid #c8ccd1;
padding: 0.75em;
white-space: pre;
overflow-x: auto;
max-width: 100%;
box-sizing: border-box;
}
64lmurkiblqcdkn6wfdqclm4pccgrem
มีเดียวิกิ:Gadget-WiktGadgetPrefs.js
8
2317492
5771148
5673944
2026-10-03T03:51:22Z
Octahedron80
267
5771148
javascript
text/javascript
/* global mw, $ */
// <nowiki>
/*jshint shadow:true, undef:true, latedef:true, unused:true, esversion:3 */
/**
* WiktGadgetPrefs -- developed by [[wikt:en:User:Surjection]]
*
* ***********************************************************************
* Documentation for gadget authors:
* Example usage (remember to add ext.gadget.WiktGadgetPrefs as a dependency):
const preferences = mw.wiktGadgetPrefs.get("gadgetfoobar",
{
"label": {
"en": "Foobar Gadget"
}
},
{
"frobulate": {
"type": "boolean",
"default": false,
"label": {
"en": "Whether this gadget should frobulate"
}
}
}
);
const shouldFrobulate = preferences.frobulate;
// strenum example
const preferences = mw.wiktGadgetPrefs.get("gadgetfoobar",
{
"label": {
"en": "Foobar Gadget"
}
},
{
"frobulate": {
"type": "strenum",
"default": "yes",
"label": {
"en": "Whether this gadget should frobulate"
},
"choices": [
"yes",
"no",
"maybe"
],
"choiceLabels": {
"en": {
"yes": "Yes!",
"no": "No!!",
"maybe": "Maybe?"
}
}
}
}
);
const shouldFrobulate = preferences.frobulate;
// stringlist example
const preferences = mw.wiktGadgetPrefs.get("gadgetfoobar",
{
"label": {
"en": "Foobar Gadget"
}
},
{
"frobulateFirst": {
"type": "stringlist",
"default": [],
"maximumItems": 10,
"label": {
"en": "Things to frobulate first"
}
}
}
);
const frobulateFirst = preferences.frobulateFirst; // e.g. ["foo", "bar"]
// saving from a gadget (after get); preferences not given keep their values
mw.wiktGadgetPrefs.set("gadgetfoobar", { frobulate: true }).then(function () {
// saved to the user's options, or to localStorage for logged-out users and temporary accounts
});
***********************************************************************
*
* Dependencies needed: mw.user, user.options
*/
(function() {
"use strict";
/**
* @typedef WiktGadgetOptions
* - Represents gadget options.
* @property {{[languageCode: string]: string}} [label]
* - The label to display on the preferences page for this
* gadget/namespace. The language code should be a MediaWiki
* language code, e.g. "en" for English.
*/
/**
* @typedef WiktGadgetPreference
* - Represents a single preference.
* @property {{"boolean"|"integer"|"string"|"strenum"|"stringlist"|"object"}} type
* - Must be one of the following:
* - "boolean" for boolean values, either true or false.
* - "integer" for an integer value.
* - "string" for a string value.
* - "strenum" for a string value that must be one of the options.
* - "stringlist" for an array of strings, in order.
* - "object" for an arbitrary JSON value, including null.
* No type checks are done.
* @property {any} default
* - The default value for this preference if missing, or if
* the value is invalid.
* - The developer is responsible for ensuring that this value is
* given, and that it meets the preconditions defined below.
* @property {string[]} [choices]
* - If the type is "strenum", then this must be an array of
* allowed options. If the value is not in this list, the default
* value will be returned.
* @property {number} [minimum]
* - If the type is "integer", this is the minimum allowed value.
* @property {number} [maximum]
* - If the type is "integer", this is the maximum allowed value.
* @property {number} [maximumLength]
* - If the type is "string", this is the maximum allowed length.
* If the type is "stringlist", it applies to each string.
* @property {number} [maximumItems]
* - If the type is "stringlist", this is the maximum number of strings.
* @property {boolean} [unique]
* - If the type is "stringlist", whether the strings must all be
* different. Defaults to true.
* @property {{[languageCode: string]: string}} [label]
* - The label to display on the preferences page for this
* preference. The language code should be a MediaWiki
* language code, e.g. "en" for English.
* @property {{[languageCode: string]: {[choice: string]: string}}} [choiceLabels]
* - The label to display on the preferences page for the choices
* of this preference (if it is an enum type). The language code
* should be a MediaWiki language code, e.g. "en" for English.
*/
var wiktGadgetPrefs__registeredPrefs = {};
var wiktGadgetPrefs__error = (Error ?
function (message) {
return new Error(message);
} :
function (message) {
return message;
});
var wiktGadgetPrefs__asciify = function (text) {
return text.replace(/[^A-Za-z0-9-]/g, function (match) {
if (match == "_") {
return "__";
} else {
return "_" + match.charCodeAt(0).toString(16) + "_";
}
});
};
var wiktGadgetPrefs__namespace_to_key = function (namespace) {
return "wiktgadgetprefs-" + wiktGadgetPrefs__asciify(namespace);
};
var wiktGadgetPrefs__is_integer = function (num) {
return num == (num | 0);
};
var wiktGadgetPrefs__parse_one = function (value, preference, key) {
var defaultValue = preference["default"];
switch (preference.type) {
case "boolean":
// data type
if (typeof value != "boolean") return defaultValue;
return value;
case "integer":
// data type
if (typeof value != "number") return defaultValue;
// integer check
if (!wiktGadgetPrefs__is_integer(value)) return defaultValue;
// constraints
if ((preference.minimum != null && value < preference.minimum) ||
(preference.maximum != null && value > preference.maximum))
return defaultValue;
return value;
case "string":
// data type
if (typeof value != "string") return defaultValue;
// constraints
if (preference.maximumLength != null && value.length > preference.maximumLength)
return defaultValue;
return value;
case "strenum":
// data type
if (typeof value != "string") return defaultValue;
// constraints
if (preference.choices.indexOf(value) < 0)
return defaultValue;
return value;
case "stringlist":
// data type
if (Object.prototype.toString.call(value) != "[object Array]") return defaultValue;
// constraints
if (preference.maximumItems != null && value.length > preference.maximumItems)
return defaultValue;
for (var i = 0; i < value.length; i++) {
if (typeof value[i] != "string") return defaultValue;
if (preference.maximumLength != null && value[i].length > preference.maximumLength)
return defaultValue;
if (preference.unique !== false && value.indexOf(value[i]) < i)
return defaultValue;
}
return value;
case "object":
if (typeof value == "undefined") return defaultValue;
return value;
}
throw wiktGadgetPrefs__error("Invalid preference specification '" + key + "'");
};
var wiktGadgetPrefs__parse_all = function (values, preferences) {
var parsed = {};
if (!values) values = {};
for (var key in preferences) {
if (preferences.hasOwnProperty(key)) {
parsed[key] = wiktGadgetPrefs__parse_one(values[key], preferences[key], key);
}
}
return parsed;
};
// Note: if you change the logic in this function, make sure to also update store in [[MediaWiki:WiktGadgetPrefsPage.js]]
var wiktGadgetPrefs__resolve = function (namespaceKey, preferences) {
var resolved;
var mwOptions;
try {
mwOptions = mw.user.options;
} catch (e) {
}
if (!resolved && window.localStorage && window.localStorage.getItem("anon" + namespaceKey) != null) {
try {
resolved = JSON.parse(window.localStorage.getItem("anon" + namespaceKey));
} catch (e) { }
}
if (!resolved && mwOptions && mwOptions.exists("userjs-" + namespaceKey)) {
try {
resolved = JSON.parse(mwOptions.get("userjs-" + namespaceKey));
} catch (e) { }
}
return wiktGadgetPrefs__parse_all(resolved || {}, preferences);
};
/**
* Resolve preferences.
*
* Note that there is a maximum length imposed by MediaWiki
* on the total size of the preferences for each namespace.
*
* @param {string} namespace
* - An arbitrary string. This should be unique to each gadget.
* @param {WiktGadgetOptions} options
* - Options.
* @param {{[key: string]: WiktGadgetPreference}} preferences
* - Requested preferences, indexed by name.
* @returns {{[key: string]: any}}
*/
var wiktGadgetPrefs_get = function (namespace, options, preferences) {
if (wiktGadgetPrefs__registeredPrefs[namespace]) {
throw wiktGadgetPrefs__error("wiktGadgetPrefs_get has already been called with the namespace '" + namespace + "'.");
}
wiktGadgetPrefs__registeredPrefs[namespace] = {
options: options,
preferences: preferences
};
var namespaceKey = wiktGadgetPrefs__namespace_to_key(namespace);
if (namespaceKey.length >= 240) {
throw wiktGadgetPrefs__error("Namespace key '" + namespace + "' is too long. " +
"Please prefer ASCII characters A-Z, a-z, 0-9 and the hyphen, " +
"as other characters need to be converted, which increases their size.");
}
return wiktGadgetPrefs__resolve(namespaceKey, preferences);
};
/**
* Save preferences for a namespace registered with get().
*
* Preferences not given keep their current values. Each value is checked
* as in get(), and an invalid one is saved as the default. Registered
* users' preferences go to their user options, as on
* [[Wiktionary:Gadget preferences]], and this browser's copy from when they
* were logged out is then removed, because get() reads that copy first.
* Logged-out users and temporary accounts can't save options through the
* API, so theirs stay in localStorage.
*
* @param {string} namespace
* - The namespace passed to get().
* @param {{[key: string]: any}} values
* - The preferences to change, indexed by name.
* @returns {jQuery.Promise}
* - Resolved once the preferences are stored.
*/
var wiktGadgetPrefs_set = function (namespace, values) {
var registered = wiktGadgetPrefs__registeredPrefs[namespace];
if (!registered) {
throw wiktGadgetPrefs__error("wiktGadgetPrefs_set called before wiktGadgetPrefs_get for the namespace '" + namespace + "'.");
}
var namespaceKey = wiktGadgetPrefs__namespace_to_key(namespace);
var merged = wiktGadgetPrefs__resolve(namespaceKey, registered.preferences);
for (var key in values) {
if (values.hasOwnProperty(key) && registered.preferences.hasOwnProperty(key)) {
merged[key] = values[key];
}
}
var json = JSON.stringify(wiktGadgetPrefs__parse_all(merged, registered.preferences));
if (!mw.user.isNamed()) {
try {
window.localStorage.setItem("anon" + namespaceKey, json);
} catch (e) {
return $.Deferred().reject(e).promise();
}
return $.Deferred().resolve().promise();
}
mw.user.options.set("userjs-" + namespaceKey, json);
return mw.loader.using("mediawiki.api").then(function () {
return new mw.Api().saveOption("userjs-" + namespaceKey, json);
}).then(function () {
// get() would read this browser's copy first; the saved values already include it
try {
window.localStorage.removeItem("anon" + namespaceKey);
} catch (e) { }
});
};
mw.wiktGadgetPrefs = {};
mw.wiktGadgetPrefs.get = wiktGadgetPrefs_get;
mw.wiktGadgetPrefs.set = wiktGadgetPrefs_set;
// Only to be used by the preferences page.
mw.wiktGadgetPrefs._namespaceToKey = wiktGadgetPrefs__namespace_to_key;
mw.wiktGadgetPrefs._resolve = wiktGadgetPrefs__resolve;
mw.wiktGadgetPrefs._registeredPrefs = wiktGadgetPrefs__registeredPrefs;
})();
// </nowiki>
ao4lgiz29agdjxqmk2vcek6e13ndjd3
น̂อย
0
2359087
5771084
5771030
2026-10-03T00:43:14Z
Ai Ku Karng
17824
/* ภาษาแสก */
5771084
wikitext
text/x-wiki
== ภาษาแสก ==
=== รากศัพท์ ===
เทียบ{{cog|vi|nói}}
=== การออกเสียง ===
* {{IPA|skb|/nɔːj³/|[nɔːj˧˩ˀ]|a=บ้านบะหว้า}}
=== คำกริยา ===
{{skb-verb}}
# [[พูด]]
#: {{syn|skb|ตร̂าว}}
lecqm6neiqf2qr3z90mc5i1hrpd8jvp
มีเดียวิกิ:Gadget-GraphiteFonts.css
8
2359096
5771110
2026-10-03T02:31:32Z
Octahedron80
267
สร้างหน้าด้วย "/* Nastaliq */ .Aran.Aran.Aran { font-family: 'Awami Nastaliq', /* OpenType fallback: */ 'Noto Nastaliq Urdu', sans-serif; }"
5771110
css
text/css
/* Nastaliq */
.Aran.Aran.Aran {
font-family: 'Awami Nastaliq',
/* OpenType fallback: */ 'Noto Nastaliq Urdu', sans-serif;
}
3tf052havthuyq7bcs82zm9yykuwken
มีเดียวิกิ:Gadget-NoMiniToc.css
8
2359097
5771112
2026-10-03T02:32:28Z
Octahedron80
267
สร้างหน้าด้วย ".minitoc { display: none; } /* increased specificity */ .minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc { display: none; } /* selector intentionally repeated a bunch of times - CSS specificity trick */ div[data-toc-length][data-toc-length][data-toc-length][data-toc-le..."
5771112
css
text/css
.minitoc { display: none; }
/* increased specificity */
.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc.minitoc { display: none; }
/* selector intentionally repeated a bunch of times - CSS specificity trick */
div[data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length][data-toc-length] > #toc { display: inline-block; }
.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc.mammoth-minitoc { display: block; }
oh53ebe99fwlaunck0mn8xdzcph7qfw
มีเดียวิกิ:Gadget-NoMiniToc.js
8
2359098
5771113
2026-10-03T02:32:49Z
Octahedron80
267
สร้างหน้าด้วย "// <nowiki> /* jshint maxerr:1048576, strict:true, undef:true, latedef:true, esversion:6 */ /* global $, mw */ $(document).ready(() => { // If the TOC is inside a div with the data-toc-length attribute, move it out of there. const toc = document.querySelector("#mw-content-text #toc"); if (toc) { const minitocWrapped = toc.closest("[data-toc-length]"); if (minitocWrapped) { minitocWrapped.parentNode.insertBefore(toc, minitocWrapped);..."
5771113
javascript
text/javascript
// <nowiki>
/* jshint maxerr:1048576, strict:true, undef:true, latedef:true, esversion:6 */
/* global $, mw */
$(document).ready(() => {
// If the TOC is inside a div with the data-toc-length attribute, move it out of there.
const toc = document.querySelector("#mw-content-text #toc");
if (toc) {
const minitocWrapped = toc.closest("[data-toc-length]");
if (minitocWrapped) {
minitocWrapped.parentNode.insertBefore(toc, minitocWrapped);
minitocWrapped.style.display = "none";
}
}
});
t0zb45l3ptr8xj0nyq01roj43h4k2ek
มีเดียวิกิ:Gadget-TreeDescs.js
8
2359099
5771114
2026-10-03T02:34:19Z
Octahedron80
267
สร้างหน้าด้วย "mw.loader.load("ext.gadget.TreeDescs-pagestyles"); $(".mw-heading").filter(function() { return $(this).children().first().text() === "คำสืบทอด" }).each(function() { let $selected = $(this).nextUntil(".mw-heading"); $selected.find("ul + ul").each(function () { $(this).prev("ul").append($(this).children()); $(this).remove(); }); $selected.filter("ul").addClass("treeview"); $selected.filter(":not(ul)").find("ul").addClass("tr..."
5771114
javascript
text/javascript
mw.loader.load("ext.gadget.TreeDescs-pagestyles");
$(".mw-heading").filter(function() {
return $(this).children().first().text() === "คำสืบทอด"
}).each(function() {
let $selected = $(this).nextUntil(".mw-heading");
$selected.find("ul + ul").each(function () {
$(this).prev("ul").append($(this).children());
$(this).remove();
});
$selected.filter("ul").addClass("treeview");
$selected.filter(":not(ul)").find("ul").addClass("treeview");
});
ponak23i04prbwh1yvk439dmq5lhyt5
มีเดียวิกิ:Gadget-TreeDescs
8
2359100
5771116
2026-10-03T02:42:53Z
Octahedron80
267
สร้างหน้าด้วย "แสดงส่วนคำสืบทอดด้วยโครงสร้างคล้ายต้นไม้"
5771116
wikitext
text/x-wiki
แสดงส่วนคำสืบทอดด้วยโครงสร้างคล้ายต้นไม้
l8pqikak6upg8mvfit1rdhm9drskm5s
มีเดียวิกิ:Gadget-TreeDescs-pagestyles
8
2359101
5771117
2026-10-03T02:46:26Z
Octahedron80
267
สร้างหน้าด้วย "CSS (ที่ใช้งานจริงและสำรอง) สำหรับ TreeDescs"
5771117
wikitext
text/x-wiki
CSS (ที่ใช้งานจริงและสำรอง) สำหรับ TreeDescs
dgz10n2dylqu9108mp28rtdjj18wnik
มีเดียวิกิ:Gadget-NoMiniToc
8
2359102
5771118
2026-10-03T02:47:22Z
Octahedron80
267
สร้างหน้าด้วย "ปิดใช้งาน {{tl|minitoc}} และแสดงสารบัญแบบเต็มแทน"
5771118
wikitext
text/x-wiki
ปิดใช้งาน {{tl|minitoc}} และแสดงสารบัญแบบเต็มแทน
77u4hqtuyzsqcnotlobzik2xkl2hcf4
มีเดียวิกิ:Gadget-GraphiteFonts
8
2359103
5771119
2026-10-03T02:50:21Z
Octahedron80
267
สร้างหน้าด้วย "เปิดใช้งานฟอนต์ที่ใช้[[w:en:Graphite (smart font technology)|แกรไฟต์]] ซึ่งปัจจุบันรองรับเฉพาะไฟร์ฟอกซ์เท่านั้น ดู[[MediaWiki:Gadget-GraphiteFonts.css|รายการฟอนต์]]"
5771119
wikitext
text/x-wiki
เปิดใช้งานฟอนต์ที่ใช้[[w:en:Graphite (smart font technology)|แกรไฟต์]] ซึ่งปัจจุบันรองรับเฉพาะไฟร์ฟอกซ์เท่านั้น ดู[[MediaWiki:Gadget-GraphiteFonts.css|รายการฟอนต์]]
2ldvx8bkhhqm2pv856yedk472qw7dd1
แม่แบบ:gadget tag
10
2359104
5771121
2026-10-03T02:55:26Z
Octahedron80
267
สร้างหน้าด้วย "<span style="font-size: 90%; background: var(--background-color-neutral,#ddd); color: var(--color-base,black); border-radius: 4px; border: 1px solid var(--border-color-base,#808080); padding: 0.1em 0.3em;{{#if:{{{2|}}}| cursor: help}}" {{#if:{{{2|}}}|title="{{{2|}}}"}}>{{{1}}}</span>"
5771121
wikitext
text/x-wiki
<span style="font-size: 90%; background: var(--background-color-neutral,#ddd); color: var(--color-base,black); border-radius: 4px; border: 1px solid var(--border-color-base,#808080); padding: 0.1em 0.3em;{{#if:{{{2|}}}| cursor: help}}" {{#if:{{{2|}}}|title="{{{2|}}}"}}>{{{1}}}</span>
q2umsf9ygy0s5vzek09dfq0rubxmob0
มีเดียวิกิ:Gadget-DialectMap
8
2359105
5771122
2026-10-03T02:57:31Z
Octahedron80
267
สร้างหน้าด้วย "เปิดใช้งาน[[แม่แบบ:dialect map|แผนที่ภาษาถิ่น]] และจัดเตรียมการกรองกลุ่ม {{gadget tag|เปิดใช้งานโดยค่าเริ่มต้น}}"
5771122
wikitext
text/x-wiki
เปิดใช้งาน[[แม่แบบ:dialect map|แผนที่ภาษาถิ่น]] และจัดเตรียมการกรองกลุ่ม {{gadget tag|เปิดใช้งานโดยค่าเริ่มต้น}}
r88lr9bbzcu1q663bvo7hf0r0r5bqoy
5771125
5771122
2026-10-03T03:00:21Z
Octahedron80
267
5771125
wikitext
text/x-wiki
เปิดใช้งาน[[แม่แบบ:dialect map|แผนที่ภาษาถิ่น]] และจัดเตรียมการกรองกลุ่ม {{gadget tag|เปิดใช้งานโดยปริยาย}}
cw64lour1xe897qiwt8elyz6lxcudi4
แม่แบบ:dialect map
10
2359106
5771123
2026-10-03T02:57:47Z
Octahedron80
267
นำเข้าจาก enwikt
5771123
wikitext
text/x-wiki
<includeonly><templatestyles src="แม่แบบ:dialect map/styles.css" />{{#invoke:dialect map|show}}</includeonly><noinclude>{{documentation}}</noinclude>
3oq78qdiob3pzdit59lsru36h037xy1
แม่แบบ:dialect map/styles.css
10
2359107
5771124
2026-10-03T02:58:29Z
Octahedron80
267
สร้างหน้าด้วย ".dialect-map__container { margin: auto; max-width: 1100px; position: relative; } .dialect-map__map { position: relative; margin: auto; } .dialect-map__legend { line-height: 1.4; padding: 0.5em; } .dialect-map__legend-grid { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; align-items: flex-start; } .dialect-map__legend-row { background-color: rgba(255, 255, 255, 0.75); text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5); padding..."
5771124
sanitized-css
text/css
.dialect-map__container {
margin: auto;
max-width: 1100px;
position: relative;
}
.dialect-map__map {
position: relative;
margin: auto;
}
.dialect-map__legend {
line-height: 1.4;
padding: 0.5em;
}
.dialect-map__legend-grid {
display: flex;
flex-wrap: wrap;
gap: 8px;
width: 100%;
align-items: flex-start;
}
.dialect-map__legend-row {
background-color: rgba(255, 255, 255, 0.75);
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
padding: 4px 8px;
min-height: 44px;
flex: 0 0 calc(20% - 8px);
box-sizing: border-box;
}
@media (max-width: 1200px) {
.dialect-map__legend-row {
flex: 0 0 calc(25% - 8px);
}
}
@media (max-width: 900px) {
.dialect-map__legend-row {
flex: 0 0 calc(33.33% - 8px);
}
}
@media (max-width: 600px) {
.dialect-map__legend-row {
flex: 0 0 calc(50% - 8px);
}
}
@media (max-width: 400px) {
.dialect-map__legend-row {
flex: 0 0 100%;
}
}
.dialect-map__legend-row-dot {
height: 12px;
width: 12px;
border-radius: 100%;
text-indent: 100%;
overflow: hidden;
display: inline-block;
margin-right: 0.5em;
flex-shrink: 0;
}
/* dark mode colors */
@media screen {
html.skin-theme-clientpref-night .dialect-map__legend-row {
background-color: rgba(32, 32, 32, 0.75);
text-shadow: 1px 1px 0 rgba(32, 32, 32, 0.5);
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .dialect-map__legend-row {
background-color: rgba(32, 32, 32, 0.75);
text-shadow: 1px 1px 0 rgba(32, 32, 32, 0.5);
}
}
ol49gn8edhaxbnpkxboj45tab3ocnz2
มีเดียวิกิ:Gadget-MonobookSmallerHeadings
8
2359108
5771126
2026-10-03T03:03:07Z
Octahedron80
267
สร้างหน้าด้วย "หัวเรื่องขนาดเล็กลงในสกิน Monobook {{gadget tag|เปิดใช้งานโดยปริยาย}}"
5771126
wikitext
text/x-wiki
หัวเรื่องขนาดเล็กลงในสกิน Monobook {{gadget tag|เปิดใช้งานโดยปริยาย}}
9rc1wjjeamgy8dz3oq2b7nt2gi1h8e2
มีเดียวิกิ:Gadget-MonobookSmallerHeadings.css
8
2359109
5771127
2026-10-03T03:03:51Z
Octahedron80
267
สร้างหน้าด้วย "/* headings a bit more balanced in size */ h1 { font-size:160%; font-weight:bold; } h2 { font-size:140%; font-weight:bold; } h3 { font-size:130%; } h4 { font-size:120%; } h5 { font-size:110%; } h6 { font-size:100%; }"
5771127
css
text/css
/* headings a bit more balanced in size */
h1 {
font-size:160%;
font-weight:bold;
}
h2 {
font-size:140%;
font-weight:bold;
}
h3 {
font-size:130%;
}
h4 {
font-size:120%;
}
h5 {
font-size:110%;
}
h6 {
font-size:100%;
}
sc9io20biiqcj7j28lpmq4tf913rv08
มีเดียวิกิ:Gadget-CatchMyAttention
8
2359110
5771133
2026-10-03T03:19:23Z
Octahedron80
267
สร้างหน้าด้วย "ดึงดูดความสนใจของฉัน – แสดงแม่แบบ {{tl|attention}} ขณะอ่านรายการ"
5771133
wikitext
text/x-wiki
ดึงดูดความสนใจของฉัน – แสดงแม่แบบ {{tl|attention}} ขณะอ่านรายการ
6ued5sosmn9p24qlwpldcd573uyx8qy
มีเดียวิกิ:Gadget-CatchMyAttention.css
8
2359111
5771134
2026-10-03T03:19:47Z
Octahedron80
267
สร้างหน้าด้วย "/* <nowiki> */ .attentionseeking { border: 1px solid var(--wikt-palette-red, #d73333); padding: 0.5em; background: var(--wikt-palette-lightred, #fee7e6); color: var(--color-base, black); border-radius: 5px; } .attentionseeking::before { content: '⚠️ {{attention|' attr(data-lang) '}}'; font-family: monospace, 'something'; } .attentionseeking::after { content: ' ' attr(title); } /* </nowiki> */"
5771134
css
text/css
/* <nowiki> */
.attentionseeking {
border: 1px solid var(--wikt-palette-red, #d73333);
padding: 0.5em;
background: var(--wikt-palette-lightred, #fee7e6);
color: var(--color-base, black);
border-radius: 5px;
}
.attentionseeking::before {
content: '⚠️ {{attention|' attr(data-lang) '}}';
font-family: monospace, 'something';
}
.attentionseeking::after {
content: ' ' attr(title);
}
/* </nowiki> */
2hn8q0db31m98ro5jhjsfal6q5ubgwx
มอดูล:attention
828
2359112
5771136
2026-10-03T03:22:33Z
Octahedron80
267
สร้างหน้าด้วย "local export = {} local format_categories = require("Module:utilities").format_categories local html_create = mw.html.create local insert = table.insert local process_params = require("Module:parameters").process function export.show(frame) local args = process_params(frame:getParent().args, { [1] = {required = true, type = "language"}, [2] = true, ["id"] = true, ["sort"] = true, }) local lang = args[1] local lang_code = lang:getCode()..."
5771136
Scribunto
text/plain
local export = {}
local format_categories = require("Module:utilities").format_categories
local html_create = mw.html.create
local insert = table.insert
local process_params = require("Module:parameters").process
function export.show(frame)
local args = process_params(frame:getParent().args, {
[1] = {required = true, type = "language"},
[2] = true,
["id"] = true,
["sort"] = true,
})
local lang = args[1]
local lang_code = lang:getCode()
local title = args[2]
local id = args["id"] or ""
local categories = {"Requests for attention concerning " .. lang:getCanonicalName()}
if not title then
insert(categories, {cat = "attention lacking explanation", sort_key = "-"})
end
-- mw.html escapes special characters in the id and title attributes.
local ret = html_create("span")
:addClass("attentionseeking")
:attr("data-lang", lang_code)
if id ~= "" then
ret = ret:attr("id", "attentionseeking" .. lang_code .. id)
end
if title then
ret = ret:attr("title", title)
end
return tostring(ret) .. format_categories(categories, lang, args.sort)
end
return export
q3y41ve83j8zdz4ho0m280bteqe8ugg
5771137
5771136
2026-10-03T03:23:38Z
Octahedron80
267
5771137
Scribunto
text/plain
local export = {}
local format_categories = require("Module:utilities").format_categories
local html_create = mw.html.create
local insert = table.insert
local process_params = require("Module:parameters").process
function export.show(frame)
local args = process_params(frame:getParent().args, {
[1] = {required = true, type = "language"},
[2] = true,
["id"] = true,
["sort"] = true,
})
local lang = args[1]
local lang_code = lang:getCode()
local title = args[2]
local id = args["id"] or ""
local categories = {"การร้องขอความสนใจเกี่ยวกับ" .. lang:getCategoryName()} --th
if not title then
insert(categories, {cat = "การร้องขอความสนใจที่ไม่มีการอธิบาย", sort_key = "-"})
end
-- mw.html escapes special characters in the id and title attributes.
local ret = html_create("span")
:addClass("attentionseeking")
:attr("data-lang", lang_code)
if id ~= "" then
ret = ret:attr("id", "attentionseeking" .. lang_code .. id)
end
if title then
ret = ret:attr("title", title)
end
return tostring(ret) .. format_categories(categories, lang, args.sort)
end
return export
61627kuo97hrlktxobwk1hqpw7nqdri
มีเดียวิกิ:Gadget-vectorTabs
8
2359113
5771140
2026-10-03T03:30:54Z
Octahedron80
267
สร้างหน้าด้วย "[[มีเดียวิกิ:Gadget-vectorTabs.js/documentation|แสดงปุ่มต่าง ๆ]] ในเมนู Vector"
5771140
wikitext
text/x-wiki
[[มีเดียวิกิ:Gadget-vectorTabs.js/documentation|แสดงปุ่มต่าง ๆ]] ในเมนู Vector
j6b418tjgct2ml9fi7c293e7ojpr0l5
มีเดียวิกิ:Gadget-vectorTabs.js/documentation
8
2359114
5771142
2026-10-03T03:32:36Z
Octahedron80
267
สร้างหน้าด้วย "{{documentation subpage}} <!--Add description here. This subpage initially added just for categorization.--> See also: [[Special:Gadgets]]. See also: [[MediaWiki:Gadget-vectorTabs.css]] <includeonly> [[Category:Wiktionary gadgets]] </includeonly>"
5771142
wikitext
text/x-wiki
{{documentation subpage}}
<!--Add description here. This subpage initially added just for categorization.-->
See also: [[Special:Gadgets]].
See also: [[MediaWiki:Gadget-vectorTabs.css]]
<includeonly>
[[Category:Wiktionary gadgets]]
</includeonly>
btas0vusm2f7ef3ndk81j8b7ag67yb9
มีเดียวิกิ:Gadget-WiktPreviewRightTOCs
8
2359115
5771143
2026-10-03T03:34:41Z
Octahedron80
267
สร้างหน้าด้วย "ย้ายสารบัญไปไว้ทางด้านขวาของรายการ (ไม่มีผลกับ Vector 2022)"
5771143
wikitext
text/x-wiki
ย้ายสารบัญไปไว้ทางด้านขวาของรายการ (ไม่มีผลกับ Vector 2022)
dxeus6s5wjhssccaeramb3n68boffhp
มีเดียวิกิ:Gadget-WiktPreviewRightTOCs.css
8
2359116
5771144
2026-10-03T03:35:05Z
Octahedron80
267
สร้างหน้าด้วย "html:not([dummyparam]) .ns-0 #toc { float: right; clear: right; margin-left: 7px; margin-bottom: 6px; }"
5771144
css
text/css
html:not([dummyparam]) .ns-0 #toc {
float: right;
clear: right;
margin-left: 7px;
margin-bottom: 6px;
}
97xoqtgvaxinybefujx240ftm0v7mhb
มีเดียวิกิ:WiktGadgetPrefsPage.js
8
2359117
5771146
2026-10-03T03:42:37Z
Octahedron80
267
สร้างหน้าด้วย "// <nowiki> /*jshint shadow:true, undef:true, latedef:true, unused:true, esversion:6 */ /* global mw, $, OO */ /* *********************************************************************** * For gadget authors: * Please read the documentation at [[MediaWiki:Gadget-WiktGadgetPrefs.js]]. *********************************************************************** */ (function () { "use strict"; if (!document.getElementById("wikt-gadget-prefs-go-here")..."
5771146
javascript
text/javascript
// <nowiki>
/*jshint shadow:true, undef:true, latedef:true, unused:true, esversion:6 */
/* global mw, $, OO */
/* ***********************************************************************
* For gadget authors:
* Please read the documentation at [[MediaWiki:Gadget-WiktGadgetPrefs.js]].
*********************************************************************** */
(function () {
"use strict";
if (!document.getElementById("wikt-gadget-prefs-go-here")) return;
// Only registered users can save options through the API; temporary accounts keep their
// preferences in localStorage like logged-out users.
const isNamedUser = mw.config.get("wgUserId") != null && !mw.config.get("wgUserIsTemp");
const userLanguage = mw.config.get("wgUserLanguage");
const projectLanguage = "en";
const strings = {
"en": {
wiktLangCode: "en",
noGadgets: "None of your currently enabled gadgets have any preferences.",
savedOk: "Saved successfully! Reloading...",
saveError: "Failed to save preferences.",
saveAndReload: "Save and reload",
resetOne: "Reset defaults for this gadget",
resetAll: "Reset defaults for all gadgets",
resetAllConfirm: "Are you sure you want to reset defaults for all gadgets?",
migrate: "Migrate preferences to this account",
migrateConfirm: "Are you sure you want to migrate the preferences stored on the browser from when you were not logged in? They may overwrite the gadget preferences stored on your account.",
}
};
const resolveString = (strings, stringKey, defaultValue) => {
if (defaultValue == null && stringKey)
defaultValue = stringKey;
try {
// try to use user language first, then fall back to project language
for (const language of [userLanguage, projectLanguage]) {
const languageStrings = strings[language];
if (languageStrings == null)
continue;
if (stringKey == null)
return languageStrings;
if (languageStrings[stringKey] != null)
return languageStrings[stringKey];
}
} catch (_) {
// no strings object, or an invalid one
}
return defaultValue;
};
let markUnsaved = null;
const pendingChanges = {};
const recordChange = (namespace, preferenceKey, value) => {
if (markUnsaved) markUnsaved();
if (!pendingChanges[namespace])
pendingChanges[namespace] = {};
pendingChanges[namespace][preferenceKey] = value;
};
// The input widget for each preference type, with setValue to show a value and getValue to read
// what was entered (undefined when it isn't valid).
const controlTypes = {
boolean: (preference, initialValue) => {
const widget = new OO.ui.CheckboxInputWidget({ selected: !!initialValue });
return {
widget,
setValue: (value) => widget.setSelected(value),
getValue: () => widget.isSelected()
};
},
integer: (preference, initialValue) => {
const prefs = { input: { value: initialValue } };
if (preference.minimum != null)
prefs.min = preference.minimum;
if (preference.maximum != null)
prefs.max = preference.maximum;
const widget = new OO.ui.NumberInputWidget(prefs);
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = Number(widget.getValue());
if (!Number.isNaN(value) &&
(preference.minimum == null || value >= preference.minimum) &&
(preference.maximum == null || value <= preference.maximum))
return value;
}
};
},
string: (preference, initialValue) => {
const prefs = { value: initialValue };
if (preference.maximumLength != null)
prefs.maxLength = preference.maximumLength;
const widget = new OO.ui.TextInputWidget(prefs);
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
if (preference.maximumLength == null || value.length <= preference.maximumLength)
return value;
}
};
},
strenum: (preference, initialValue) => {
const widget = new OO.ui.DropdownInputWidget({
value: initialValue,
options: (preference.choices || []).map((choice) => ({
data: choice,
label: resolveString(preference.choiceLabels, choice, choice)
}))
});
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
if (preference.choices.includes(value))
return value;
}
};
},
stringlist: (preference, initialValue) => {
const prefs = {
selected: initialValue,
allowArbitrary: true,
inputPosition: "inline"
};
if (preference.maximumItems != null)
prefs.tagLimit = preference.maximumItems;
if (preference.maximumLength != null)
prefs.input = { maxLength: preference.maximumLength };
if (preference.unique === false)
prefs.allowDuplicates = true;
const widget = new OO.ui.TagMultiselectWidget(prefs);
widget.on("add", (tag) => {
const data = tag.getData();
if (data === data.trim()) return;
widget.removeItems([tag]);
if (data.trim())
widget.addTag(data.trim());
});
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
for (const tag of widget.getItems())
tag.toggleValid(preference.maximumLength == null || tag.getData().length <= preference.maximumLength);
widget.toggleValid(widget.checkValidity() &&
(preference.maximumItems == null || value.length <= preference.maximumItems));
if (widget.isValid())
return value;
}
};
},
object: (preference, initialValue) => {
const widget = new OO.ui.MultilineTextInputWidget({ value: JSON.stringify(initialValue, null, 4) });
return {
widget,
setValue: (value) => widget.setValue(JSON.stringify(value, null, 4)),
getValue: () => {
try {
const value = JSON.parse(widget.getValue());
widget.setValidityFlag(true);
return value;
} catch (_) {
widget.setValidityFlag(false);
}
}
};
}
};
const controls = {};
const buildControlFor = (namespace, preferenceKey, preference, initialValue) => {
const createControl = controlTypes[preference.type];
if (!createControl) {
console.error(`Failed to build preference control for ${namespace}.${preferenceKey}`);
return null;
}
const control = createControl(preference, initialValue);
controls[namespace][preferenceKey] = control;
control.widget.on("change", () => {
const value = control.getValue();
if (value !== undefined)
recordChange(namespace, preferenceKey, value);
});
const field = new OO.ui.FieldLayout(control.widget, {
label: $('<span></span>').text(resolveString(preference.label, null, preferenceKey)),
align: "inline"
});
return field.$element;
};
const makeButton = (labelKey, config, onClick) => {
const button = new OO.ui.ButtonWidget(Object.assign({ label: resolveString(strings, labelKey) }, config));
button.on("click", onClick);
return button;
};
$.when(mw.loader.using(["mediawiki.api", "mediawiki.util", "mediawiki.user", "oojs-ui-core", "oojs-ui-widgets", "oojs-ui-windows", "ext.gadget.WiktGadgetPrefs"]), $.ready).done(function() {
const placeholder = $("#wikt-gadget-prefs-go-here");
if (!placeholder.length) return;
const container = $('<div id="wikt-gadget-prefs-controls">');
placeholder.replaceWith(container);
const namespaceToKey = mw.wiktGadgetPrefs._namespaceToKey;
const registeredPrefs = mw.wiktGadgetPrefs._registeredPrefs;
const resolve = mw.wiktGadgetPrefs._resolve;
// A gadget's preferences are stored as JSON under namespaceToKey(namespace): in the user option
// "userjs-<key>" for registered users, in localStorage as "anon<key>" for everyone else.
const keyPrefix = namespaceToKey("");
const storedKeys = (names, prefix) => names
.filter((name) => name.startsWith(prefix + keyPrefix))
.map((name) => name.slice(prefix.length));
const browserKeys = () => storedKeys(Object.keys(window.localStorage), "anon");
const accountKeys = () => storedKeys(Object.keys(mw.user.options.values), "userjs-");
// Stores each key's JSON value, or resets the key when the value is null. After a registered
// user's save, this browser's copies of those keys are removed: WiktGadgetPrefs reads them first
// (wiktGadgetPrefs__resolve in [[MediaWiki:Gadget-WiktGadgetPrefs.js]]), so they would keep
// overriding the saved values.
const store = (values) => {
const keys = Object.keys(values);
if (isNamedUser) {
const options = {};
for (const key of keys)
options[`userjs-${key}`] = values[key];
return new mw.Api().saveOptions(options).then(() => {
for (const key of keys) {
try {
window.localStorage.removeItem(`anon${key}`);
} catch (_) {
}
}
});
}
try {
for (const key of keys) {
if (values[key] == null)
window.localStorage.removeItem(`anon${key}`);
else
window.localStorage.setItem(`anon${key}`, values[key]);
}
} catch (e) {
return $.Deferred().reject(e).promise();
}
return $.Deferred().resolve().promise();
};
const storeAndReload = (values) => {
store(values).then(() => {
mw.notify(resolveString(strings, "savedOk"));
setTimeout(() => location.reload(), 1500);
}, () => {
mw.notify(resolveString(strings, "saveError"));
});
};
// A changed gadget is stored with all its preferences, so the ones left alone keep their values.
const save = () => {
const values = {};
for (const [namespace, changes] of Object.entries(pendingChanges)) {
const key = namespaceToKey(namespace);
const resolvedValues = resolve(key, registeredPrefs[namespace].preferences);
values[key] = JSON.stringify(Object.assign(resolvedValues, changes));
}
storeAndReload(values);
};
const confirmResetAll = () => {
OO.ui.confirm(resolveString(strings, "resetAllConfirm")).done((confirmed) => {
if (!confirmed) return;
const values = {};
for (const key of browserKeys().concat(isNamedUser ? accountKeys() : []))
values[key] = null;
storeAndReload(values);
});
};
const confirmMigrate = () => {
OO.ui.confirm(resolveString(strings, "migrateConfirm")).done((confirmed) => {
if (!confirmed || !isNamedUser) return;
const values = {};
for (const key of browserKeys())
values[key] = window.localStorage.getItem(`anon${key}`);
storeAndReload(values);
});
};
const seenNamespaces = new Set();
const addControlsFor = (namespace, options, preferences) => {
if (seenNamespaces.has(namespace)) return;
seenNamespaces.add(namespace);
// no section if there are no preferences
if (!Object.keys(preferences).length) return;
const key = namespaceToKey(namespace);
const resolvedValues = resolve(key, preferences);
controls[namespace] = {};
// create wrapper and heading
const section = $('<div>');
container.append(section);
section.append($("<h2>")
.attr("id", `wikt-gadget-prefs-${key.slice(keyPrefix.length)}`)
.text(resolveString(options.label, null, namespace)));
// add reset button
const resetButton = makeButton("resetOne", { flags: ["destructive"], framed: false }, () => {
for (const [preferenceKey, preference] of Object.entries(preferences)) {
recordChange(namespace, preferenceKey, preference.default);
const control = controls[namespace][preferenceKey];
if (control != null)
control.setValue(preference.default);
}
});
section.append(resetButton.$element);
// add control for each preference
for (const [preferenceKey, preference] of Object.entries(preferences)) {
const field = buildControlFor(namespace, preferenceKey, preference, resolvedValues[preferenceKey]);
if (field != null)
section.append(field);
}
};
const saveButton = makeButton("saveAndReload", { flags: ["primary", "progressive"] }, save);
saveButton.setDisabled(true);
markUnsaved = () => saveButton.setDisabled(false);
const resetAllButton = makeButton("resetAll", { flags: ["primary", "destructive"] }, confirmResetAll);
const migrateButton = makeButton("migrate", { flags: ["primary"] }, confirmMigrate);
migrateButton.setDisabled(!isNamedUser || !browserKeys().length);
$('<div>')
.css("margin-top", "1em")
.append(saveButton.$element, resetAllButton.$element, migrateButton.$element)
.insertAfter(container);
// placeholder text
mw.util.addCSS(`
#wikt-gadget-prefs-controls:empty::after {
content: "${resolveString(strings, 'noGadgets').replace(/["\\]/g, "\\$&")}";
}
`);
// bit of a hook, but we hook onto the WiktGadgetPrefs get function
// to capture all registrations
const originalGet = mw.wiktGadgetPrefs.get;
mw.wiktGadgetPrefs.get = function (namespace, options, preferences) {
const result = originalGet(namespace, options, preferences);
addControlsFor(namespace, options, preferences);
return result;
};
// add gadgets that have already registered
for (const [namespace, { options, preferences }] of Object.entries(registeredPrefs)) {
try {
addControlsFor(namespace, options, preferences);
} catch (e) {
console.error(e);
}
}
// retarget to current anchor
window.requestAnimationFrame(() => {
if (window.location.hash && window.location.hash.match(/^#wikt-gadget-prefs-/)) {
const targetId = window.location.hash.replace(/^#/, "");
const targetElement = document.getElementById(targetId);
if (targetElement)
targetElement.scrollIntoView();
}
});
});
})();
// </nowiki>
js6m0eylcrjdkxdxf8s4049gwggpr17
5771147
5771146
2026-10-03T03:43:19Z
Octahedron80
267
5771147
javascript
text/javascript
// <nowiki>
/*jshint shadow:true, undef:true, latedef:true, unused:true, esversion:6 */
/* global mw, $, OO */
/* ***********************************************************************
* For gadget authors:
* Please read the documentation at [[MediaWiki:Gadget-WiktGadgetPrefs.js]].
*********************************************************************** */
(function () {
"use strict";
if (!document.getElementById("wikt-gadget-prefs-go-here")) return;
// Only registered users can save options through the API; temporary accounts keep their
// preferences in localStorage like logged-out users.
const isNamedUser = mw.config.get("wgUserId") != null && !mw.config.get("wgUserIsTemp");
const userLanguage = mw.config.get("wgUserLanguage");
const projectLanguage = "th";
const strings = {
"th": {
wiktLangCode: "th",
noGadgets: "None of your currently enabled gadgets have any preferences.",
savedOk: "Saved successfully! Reloading...",
saveError: "Failed to save preferences.",
saveAndReload: "Save and reload",
resetOne: "Reset defaults for this gadget",
resetAll: "Reset defaults for all gadgets",
resetAllConfirm: "Are you sure you want to reset defaults for all gadgets?",
migrate: "Migrate preferences to this account",
migrateConfirm: "Are you sure you want to migrate the preferences stored on the browser from when you were not logged in? They may overwrite the gadget preferences stored on your account.",
}
};
const resolveString = (strings, stringKey, defaultValue) => {
if (defaultValue == null && stringKey)
defaultValue = stringKey;
try {
// try to use user language first, then fall back to project language
for (const language of [userLanguage, projectLanguage]) {
const languageStrings = strings[language];
if (languageStrings == null)
continue;
if (stringKey == null)
return languageStrings;
if (languageStrings[stringKey] != null)
return languageStrings[stringKey];
}
} catch (_) {
// no strings object, or an invalid one
}
return defaultValue;
};
let markUnsaved = null;
const pendingChanges = {};
const recordChange = (namespace, preferenceKey, value) => {
if (markUnsaved) markUnsaved();
if (!pendingChanges[namespace])
pendingChanges[namespace] = {};
pendingChanges[namespace][preferenceKey] = value;
};
// The input widget for each preference type, with setValue to show a value and getValue to read
// what was entered (undefined when it isn't valid).
const controlTypes = {
boolean: (preference, initialValue) => {
const widget = new OO.ui.CheckboxInputWidget({ selected: !!initialValue });
return {
widget,
setValue: (value) => widget.setSelected(value),
getValue: () => widget.isSelected()
};
},
integer: (preference, initialValue) => {
const prefs = { input: { value: initialValue } };
if (preference.minimum != null)
prefs.min = preference.minimum;
if (preference.maximum != null)
prefs.max = preference.maximum;
const widget = new OO.ui.NumberInputWidget(prefs);
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = Number(widget.getValue());
if (!Number.isNaN(value) &&
(preference.minimum == null || value >= preference.minimum) &&
(preference.maximum == null || value <= preference.maximum))
return value;
}
};
},
string: (preference, initialValue) => {
const prefs = { value: initialValue };
if (preference.maximumLength != null)
prefs.maxLength = preference.maximumLength;
const widget = new OO.ui.TextInputWidget(prefs);
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
if (preference.maximumLength == null || value.length <= preference.maximumLength)
return value;
}
};
},
strenum: (preference, initialValue) => {
const widget = new OO.ui.DropdownInputWidget({
value: initialValue,
options: (preference.choices || []).map((choice) => ({
data: choice,
label: resolveString(preference.choiceLabels, choice, choice)
}))
});
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
if (preference.choices.includes(value))
return value;
}
};
},
stringlist: (preference, initialValue) => {
const prefs = {
selected: initialValue,
allowArbitrary: true,
inputPosition: "inline"
};
if (preference.maximumItems != null)
prefs.tagLimit = preference.maximumItems;
if (preference.maximumLength != null)
prefs.input = { maxLength: preference.maximumLength };
if (preference.unique === false)
prefs.allowDuplicates = true;
const widget = new OO.ui.TagMultiselectWidget(prefs);
widget.on("add", (tag) => {
const data = tag.getData();
if (data === data.trim()) return;
widget.removeItems([tag]);
if (data.trim())
widget.addTag(data.trim());
});
return {
widget,
setValue: (value) => widget.setValue(value),
getValue: () => {
const value = widget.getValue();
for (const tag of widget.getItems())
tag.toggleValid(preference.maximumLength == null || tag.getData().length <= preference.maximumLength);
widget.toggleValid(widget.checkValidity() &&
(preference.maximumItems == null || value.length <= preference.maximumItems));
if (widget.isValid())
return value;
}
};
},
object: (preference, initialValue) => {
const widget = new OO.ui.MultilineTextInputWidget({ value: JSON.stringify(initialValue, null, 4) });
return {
widget,
setValue: (value) => widget.setValue(JSON.stringify(value, null, 4)),
getValue: () => {
try {
const value = JSON.parse(widget.getValue());
widget.setValidityFlag(true);
return value;
} catch (_) {
widget.setValidityFlag(false);
}
}
};
}
};
const controls = {};
const buildControlFor = (namespace, preferenceKey, preference, initialValue) => {
const createControl = controlTypes[preference.type];
if (!createControl) {
console.error(`Failed to build preference control for ${namespace}.${preferenceKey}`);
return null;
}
const control = createControl(preference, initialValue);
controls[namespace][preferenceKey] = control;
control.widget.on("change", () => {
const value = control.getValue();
if (value !== undefined)
recordChange(namespace, preferenceKey, value);
});
const field = new OO.ui.FieldLayout(control.widget, {
label: $('<span></span>').text(resolveString(preference.label, null, preferenceKey)),
align: "inline"
});
return field.$element;
};
const makeButton = (labelKey, config, onClick) => {
const button = new OO.ui.ButtonWidget(Object.assign({ label: resolveString(strings, labelKey) }, config));
button.on("click", onClick);
return button;
};
$.when(mw.loader.using(["mediawiki.api", "mediawiki.util", "mediawiki.user", "oojs-ui-core", "oojs-ui-widgets", "oojs-ui-windows", "ext.gadget.WiktGadgetPrefs"]), $.ready).done(function() {
const placeholder = $("#wikt-gadget-prefs-go-here");
if (!placeholder.length) return;
const container = $('<div id="wikt-gadget-prefs-controls">');
placeholder.replaceWith(container);
const namespaceToKey = mw.wiktGadgetPrefs._namespaceToKey;
const registeredPrefs = mw.wiktGadgetPrefs._registeredPrefs;
const resolve = mw.wiktGadgetPrefs._resolve;
// A gadget's preferences are stored as JSON under namespaceToKey(namespace): in the user option
// "userjs-<key>" for registered users, in localStorage as "anon<key>" for everyone else.
const keyPrefix = namespaceToKey("");
const storedKeys = (names, prefix) => names
.filter((name) => name.startsWith(prefix + keyPrefix))
.map((name) => name.slice(prefix.length));
const browserKeys = () => storedKeys(Object.keys(window.localStorage), "anon");
const accountKeys = () => storedKeys(Object.keys(mw.user.options.values), "userjs-");
// Stores each key's JSON value, or resets the key when the value is null. After a registered
// user's save, this browser's copies of those keys are removed: WiktGadgetPrefs reads them first
// (wiktGadgetPrefs__resolve in [[MediaWiki:Gadget-WiktGadgetPrefs.js]]), so they would keep
// overriding the saved values.
const store = (values) => {
const keys = Object.keys(values);
if (isNamedUser) {
const options = {};
for (const key of keys)
options[`userjs-${key}`] = values[key];
return new mw.Api().saveOptions(options).then(() => {
for (const key of keys) {
try {
window.localStorage.removeItem(`anon${key}`);
} catch (_) {
}
}
});
}
try {
for (const key of keys) {
if (values[key] == null)
window.localStorage.removeItem(`anon${key}`);
else
window.localStorage.setItem(`anon${key}`, values[key]);
}
} catch (e) {
return $.Deferred().reject(e).promise();
}
return $.Deferred().resolve().promise();
};
const storeAndReload = (values) => {
store(values).then(() => {
mw.notify(resolveString(strings, "savedOk"));
setTimeout(() => location.reload(), 1500);
}, () => {
mw.notify(resolveString(strings, "saveError"));
});
};
// A changed gadget is stored with all its preferences, so the ones left alone keep their values.
const save = () => {
const values = {};
for (const [namespace, changes] of Object.entries(pendingChanges)) {
const key = namespaceToKey(namespace);
const resolvedValues = resolve(key, registeredPrefs[namespace].preferences);
values[key] = JSON.stringify(Object.assign(resolvedValues, changes));
}
storeAndReload(values);
};
const confirmResetAll = () => {
OO.ui.confirm(resolveString(strings, "resetAllConfirm")).done((confirmed) => {
if (!confirmed) return;
const values = {};
for (const key of browserKeys().concat(isNamedUser ? accountKeys() : []))
values[key] = null;
storeAndReload(values);
});
};
const confirmMigrate = () => {
OO.ui.confirm(resolveString(strings, "migrateConfirm")).done((confirmed) => {
if (!confirmed || !isNamedUser) return;
const values = {};
for (const key of browserKeys())
values[key] = window.localStorage.getItem(`anon${key}`);
storeAndReload(values);
});
};
const seenNamespaces = new Set();
const addControlsFor = (namespace, options, preferences) => {
if (seenNamespaces.has(namespace)) return;
seenNamespaces.add(namespace);
// no section if there are no preferences
if (!Object.keys(preferences).length) return;
const key = namespaceToKey(namespace);
const resolvedValues = resolve(key, preferences);
controls[namespace] = {};
// create wrapper and heading
const section = $('<div>');
container.append(section);
section.append($("<h2>")
.attr("id", `wikt-gadget-prefs-${key.slice(keyPrefix.length)}`)
.text(resolveString(options.label, null, namespace)));
// add reset button
const resetButton = makeButton("resetOne", { flags: ["destructive"], framed: false }, () => {
for (const [preferenceKey, preference] of Object.entries(preferences)) {
recordChange(namespace, preferenceKey, preference.default);
const control = controls[namespace][preferenceKey];
if (control != null)
control.setValue(preference.default);
}
});
section.append(resetButton.$element);
// add control for each preference
for (const [preferenceKey, preference] of Object.entries(preferences)) {
const field = buildControlFor(namespace, preferenceKey, preference, resolvedValues[preferenceKey]);
if (field != null)
section.append(field);
}
};
const saveButton = makeButton("saveAndReload", { flags: ["primary", "progressive"] }, save);
saveButton.setDisabled(true);
markUnsaved = () => saveButton.setDisabled(false);
const resetAllButton = makeButton("resetAll", { flags: ["primary", "destructive"] }, confirmResetAll);
const migrateButton = makeButton("migrate", { flags: ["primary"] }, confirmMigrate);
migrateButton.setDisabled(!isNamedUser || !browserKeys().length);
$('<div>')
.css("margin-top", "1em")
.append(saveButton.$element, resetAllButton.$element, migrateButton.$element)
.insertAfter(container);
// placeholder text
mw.util.addCSS(`
#wikt-gadget-prefs-controls:empty::after {
content: "${resolveString(strings, 'noGadgets').replace(/["\\]/g, "\\$&")}";
}
`);
// bit of a hook, but we hook onto the WiktGadgetPrefs get function
// to capture all registrations
const originalGet = mw.wiktGadgetPrefs.get;
mw.wiktGadgetPrefs.get = function (namespace, options, preferences) {
const result = originalGet(namespace, options, preferences);
addControlsFor(namespace, options, preferences);
return result;
};
// add gadgets that have already registered
for (const [namespace, { options, preferences }] of Object.entries(registeredPrefs)) {
try {
addControlsFor(namespace, options, preferences);
} catch (e) {
console.error(e);
}
}
// retarget to current anchor
window.requestAnimationFrame(() => {
if (window.location.hash && window.location.hash.match(/^#wikt-gadget-prefs-/)) {
const targetId = window.location.hash.replace(/^#/, "");
const targetElement = document.getElementById(targetId);
if (targetElement)
targetElement.scrollIntoView();
}
});
});
})();
// </nowiki>
jdlxzg1l4tyqal36l3p7eq9cffx1lfz
สิษฐพงศ์ วามะศิริภัทร
0
2359118
5771150
2026-10-03T07:42:33Z
Louisvama
19648
สร้างหน้าด้วย "''''สิษฐพงศ์ วามะศิริภัทร''' (อังกฤษ: ''Sithpong Vamasiripatt'') เป็นนักธุรกิจและผู้บริหารชาวไทย มีบทบาทในองค์กรนายจ้าง งานด้านแรงงาน และงานด้านกฎหมาย ปัจจุบันดำรงตำแหน่งกรรมการขอ..."
5771150
wikitext
text/x-wiki
''''สิษฐพงศ์ วามะศิริภัทร''' (อังกฤษ: ''Sithpong Vamasiripatt'') เป็นนักธุรกิจและผู้บริหารชาวไทย มีบทบาทในองค์กรนายจ้าง งานด้านแรงงาน และงานด้านกฎหมาย ปัจจุบันดำรงตำแหน่งกรรมการของสภาองค์การนายจ้างผู้ประกอบการค้าและอุตสาหกรรมไทย (ECONTHAI)<ref name="ECONTHAI">[https://econthai.com/board/ คณะกรรมการ] สภาองค์การนายจ้างผู้ประกอบการค้าและอุตสาหกรรมไทย, สืบค้นเมื่อ 3 ตุลาคม 2569.</ref> และได้รับแต่งตั้งเป็นผู้พิพากษาสมทบในศาลทรัพย์สินทางปัญญาและการค้าระหว่างประเทศกลาง<ref name="Ratchakitcha">[https://ratchakitcha.soc.go.th/documents/70594.pdf ประกาศสำนักนายกรัฐมนตรี เรื่อง แต่งตั้งผู้พิพากษาสมทบในศาลทรัพย์สินทางปัญญาและการค้าระหว่างประเทศกลาง] ราชกิจจานุเบกษา, 11 มิถุนายน 2568.</ref><ref name="BangkokBiz">[https://www.bangkokbiznews.com/news/news-update/1184431 แต่งตั้งผู้พิพากษาสมทบในศาลทรัพย์สินทางปัญญาและการค้าระหว่างประเทศกลาง] กรุงเทพธุรกิจ, 11 มิถุนายน 2568.</ref>
== การศึกษาและงานวิชาการ ==
สิษฐพงศ์สำเร็จการศึกษาระดับปริญญาโทจากคณะนิติศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย สาขากฎหมายเศรษฐกิจ โดยฐานข้อมูล Chulalongkorn University Theses and Dissertations ระบุชื่อผลงานเอกัตศึกษาในปี พ.ศ. 2566 เรื่อง ''แนวทางในการพัฒนาการให้สิทธิประโยชน์ทางภาษีอากร แก่นายจ้างที่ได้จัดฝึกอบรมพัฒนาทักษะฝีมือลูกจ้าง เพื่อยกระดับฝีมือแรงงานตามพระราชบัญญัติส่งเสริมการพัฒนาฝีมือแรงงาน พ.ศ. 2545''<ref name="Chula">[https://digital.car.chula.ac.th/chulaetd/13123/ แนวทางในการพัฒนาการให้สิทธิประโยชน์ทางภาษีอากร แก่นายจ้างที่ได้จัดฝึกอบรมพัฒนาทักษะฝีมือลูกจ้าง เพื่อยกระดับฝีมือแรงงานตามพระราชบัญญัติส่งเสริมการพัฒนาฝีมือแรงงาน พ.ศ. 2545] Chulalongkorn University Theses and Dissertations, จุฬาลงกรณ์มหาวิทยาลัย, 2023.</ref>
== บทบาทในองค์กรนายจ้างและภาคธุรกิจ ==
สิษฐพงศ์ดำรงตำแหน่งกรรมการของสภาองค์การนายจ้างผู้ประกอบการค้าและอุตสาหกรรมไทย หรือ ECONTHAI<ref name="ECONTHAI"/>
ข้อมูลของกรมการจัดหางาน กระทรวงแรงงาน ระบุชื่อสิษฐพงศ์เป็นผู้รับอนุญาตของบริษัทจัดหางาน คีย์แมน จำกัด ซึ่งได้รับใบอนุญาตจัดหางานให้คนหางานทำงานในประเทศ เลขที่ น.1838/2566<ref name="DOE">[https://www.doe.go.th/prd/download/download_by_pool_file/111968 รายชื่อบริษัท/สำนักงานที่ได้รับใบอนุญาตจัดหางานให้คนหางานทำงานในประเทศ] กรมการจัดหางาน กระทรวงแรงงาน.</ref>
== บทบาทด้านแรงงานระหว่างประเทศ ==
ในการประชุมใหญ่ประจำปีขององค์การแรงงานระหว่างประเทศ ครั้งที่ 112 (112th Session of the International Labour Conference) ในปี พ.ศ. 2567 สิษฐพงศ์มีชื่ออยู่ในรายชื่อคณะผู้แทนประเทศไทยในส่วนฝ่ายนายจ้าง หมวดที่ปรึกษา (Advisers) โดยองค์การแรงงานระหว่างประเทศระบุสถานะว่าเป็นสมาชิกของ Employers’ Confederation of Thai Trade and Industry (ECONTHAI)<ref name="ILO">[https://www.ilo.org/sites/default/files/2024-06/ILC112-final-list-of-delegations-19-June2024.pdf Final List of Delegations, 112th Session of the International Labour Conference] International Labour Organization, 19 June 2024.</ref>
== ผู้พิพากษาสมทบ ==
สิษฐพงศ์ได้รับแต่งตั้งเป็นผู้พิพากษาสมทบในศาลทรัพย์สินทางปัญญาและการค้าระหว่างประเทศกลาง ตามประกาศสำนักนายกรัฐมนตรีที่เผยแพร่ในราชกิจจานุเบกษาเมื่อวันที่ 11 มิถุนายน พ.ศ. 2568 โดยการแต่งตั้งมีผลตั้งแต่วันที่ 23 ธันวาคม พ.ศ. 2567<ref name="Ratchakitcha"/><ref name="BangkokBiz"/>
== การเลือกตั้งคณะกรรมการประกันสังคม พ.ศ. 2569 ==
ในปี พ.ศ. 2569 สิษฐพงศ์สมัครรับเลือกตั้งเป็นผู้แทนฝ่ายนายจ้างในคณะกรรมการประกันสังคม หมายเลข 24<ref name="Prachachat">[https://www.prachachat.net/politics/news-2068037 เช็กรายชื่อ 85 ผู้สมัครฝั่งนายจ้าง ศึกเลือกตั้ง ‘บอร์ดประกันสังคม 2569’ ทั้งบิ๊กธุรกิจ-ผู้นำหน่วยงาน] ประชาชาติธุรกิจ, 19 กันยายน 2569.</ref>
สื่อมวลชนรายงานว่า สิษฐพงศ์เป็นหนึ่งในผู้สมัครฝ่ายนายจ้าง 7 คนของกลุ่มที่ใช้ชื่อ “ทีมประกันสังคมไทยยั่งยืน”<ref name="MatichonTeam">[https://www.matichon.co.th/local/news_5900879 เปิดตัว 'ทีมประกันสังคมไทยยั่งยืน' รวมพลังภาคนายจ้าง เสนอ 7 ผู้สมัครกรรมการฯฝ่ายนายจ้าง] มติชน, 23 กันยายน 2569.</ref><ref name="MatichonCandidates">[https://www.matichon.co.th/local/quality-life/news_5901432 รวมให้แล้ว! เปิดรายชื่อ-นโยบายผู้สมัครชิงบอร์ดประกันสังคม 27 ก.ย. เช็กก่อนเข้าคูหา] มติชน, 23 กันยายน 2569.</ref>
การเลือกตั้งเดิมกำหนดไว้ในวันที่ 27 กันยายน พ.ศ. 2569 ก่อนที่คณะกรรมการการเลือกตั้งผู้แทนฝ่ายนายจ้างและผู้แทนฝ่ายผู้ประกันตนจะมีมติเลื่อนการเลือกตั้งทั่วประเทศเป็นวันที่ 11 ตุลาคม พ.ศ. 2569 เนื่องจากสถานการณ์อุทกภัยในหลายพื้นที่<ref name="PRD">[https://pscd.prd.go.th/th/content/category/detail/id/39/iid/545197 สำนักงานประกันสังคม เลื่อนเลือกตั้งบอร์ดประกันสังคมจาก 27 ก.ย. 69 เป็น 11 ต.ค. 69] กรมประชาสัมพันธ์, 26 กันยายน 2569.</ref><ref name="ThaiPBS">[https://www.thaipbs.or.th/news/content/558623 เลื่อนเลือกตั้งบอร์ดประกันสังคม เป็น 11 ต.ค.69 เหตุฝนตกหนัก-น้ำท่วม] Thai PBS, 26 กันยายน 2569.</ref>
== ผลงานทางวิชาการ ==
* สิษฐพงศ์ วามะศิริภัทร. ''แนวทางในการพัฒนาการให้สิทธิประโยชน์ทางภาษีอากร แก่นายจ้างที่ได้จัดฝึกอบรมพัฒนาทักษะฝีมือลูกจ้าง เพื่อยกระดับฝีมือแรงงานตามพระราชบัญญัติส่งเสริมการพัฒนาฝีมือแรงงาน พ.ศ. 2545''. คณะนิติศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย, พ.ศ. 2566.<ref name="Chula"/>
== อ้างอิง ==
<references />
[[หมวดหมู่:นักธุรกิจชาวไทย]]
ktoqhwfssd7zz25c3ozzxmmv7acpjl2
คุยกับผู้ใช้:Louisvama
3
2359119
5771151
2026-10-03T07:42:34Z
New user message
2698
เพิ่ม[[Template:Welcome|สารต้อนรับ]]ในหน้าคุยของผู้ใช้ใหม่
5771151
wikitext
text/x-wiki
{{Template:Welcome|name=Louisvama}}
-- [[ผู้ใช้:New user message|New user message]] ([[คุยกับผู้ใช้:New user message|คุย]]) 14:42, 3 ตุลาคม 2569 (+07)
87f6ms0c8u78vqxl1mkf3wrx8dyup7h
คุยกับผู้ใช้:Iamppkc
3
2359120
5771153
2026-10-03T09:35:52Z
Veritas Sapientiae
14283
Veritas Sapientiae ย้ายหน้า [[คุยกับผู้ใช้:Iamppkc]] ไปยัง [[คุยกับผู้ใช้:Ajumma 77]]: ย้ายหน้าอัตโนมัติขณะเปลี่ยนชื่อผู้ใช้ "[[Special:CentralAuth/Iamppkc|Iamppkc]]" เป็น "[[Special:CentralAuth/Ajumma 77|Ajumma 77]]"
5771153
wikitext
text/x-wiki
#เปลี่ยนทาง [[คุยกับผู้ใช้:Ajumma 77]]
30af3902409k37u5xs2jisfsttn1llx